2016-05-14 140 views
2

我剛剛從https://gstreamer.freedesktop.org/data/pkg/ios/1.8.1/下載了gstreamer ios二進制文件。以及來自https://cgit.freedesktop.org/~slomo/gst-sdk-tutorials/的gstreamer sdk(它還沒有更新7個月? - 是否有更新的版本)?缺少Gstreamer IOS教程中的符號

當我在gst_ios_init.h中啓用以下功能時,我無法解析符號,如下所示。有沒有更新的SDK?我不需要liveadder或零散或編輯工具,但ios壓縮支持似乎是有用的。

當啓用:

#define GST_IOS_PLUGINS_EFFECTS 

我得到:

Undefined symbols for architecture x86_64: 
    "_gst_plugin_liveadder_register", referenced from: 
     _gst_ios_init in gst_ios_init.o 

當啓用:

#define GST_IOS_PLUGINS_CODECS 

我得到:

Undefined symbols for architecture x86_64: 
    "_gst_plugin_fragmented_register", referenced from: 
     _gst_ios_init in gst_ios_init.o 

當啓用:

#define GST_IOS_PLUGINS_EDITING 

我得到:

Undefined symbols for architecture x86_64: 
    "_gst_plugin_gnonlin_register", referenced from: 
     _gst_ios_init in gst_ios_init.o 

當啓用:

#define GST_IOS_PLUGINS_SYS 

我得到:

Undefined symbols for architecture x86_64: 
    "_VTCompressionSessionCompleteFrames", referenced from: 
     _gst_vtenc_finish in GStreamer(libgstapplemedia_a_x86_64_-libgstapplemedia_la-vtenc.o) 
    "_VTCompressionSessionCreate", referenced from: 
     _plugin_init in GStreamer(libgstapplemedia_a_x86_64_-libgstapplemedia_la-plugin.o) 
     _gst_vtenc_set_format in GStreamer(libgstapplemedia_a_x86_64_-libgstapplemedia_la-vtenc.o) 
    "_VTCompressionSessionEncodeFrame", referenced from: 
     _gst_vtenc_handle_frame in GStreamer(libgstapplemedia_a_x86_64_-libgstapplemedia_la-vtenc.o) 
    "_VTCompressionSessionInvalidate", referenced from: 
     _gst_vtenc_destroy_session in GStreamer(libgstapplemedia_a_x86_64_-libgstapplemedia_la-vtenc.o) 
    "_VTCompressionSessionPrepareToEncodeFrames", referenced from: 
     _gst_vtenc_set_format in GStreamer(libgstapplemedia_a_x86_64_-libgstapplemedia_la-vtenc.o) 
    "_VTDecompressionSessionCreate", referenced from: 
     _gst_vtdec_negotiate in GStreamer(libgstapplemedia_a_x86_64_-libgstapplemedia_la-vtdec.o) 
    "_VTDecompressionSessionDecodeFrame", referenced from: 
     _gst_vtdec_handle_frame in GStreamer(libgstapplemedia_a_x86_64_-libgstapplemedia_la-vtdec.o) 
    "_VTDecompressionSessionInvalidate", referenced from: 
     _gst_vtdec_invalidate_session in GStreamer(libgstapplemedia_a_x86_64_-libgstapplemedia_la-vtdec.o) 
    "_VTDecompressionSessionWaitForAsynchronousFrames", referenced from: 
     _gst_vtdec_push_frames_if_needed in GStreamer(libgstapplemedia_a_x86_64_-libgstapplemedia_la-vtdec.o) 
    "_VTSessionCopyProperty", referenced from: 
     _gst_vtenc_handle_frame in GStreamer(libgstapplemedia_a_x86_64_-libgstapplemedia_la-vtenc.o) 
     _gst_vtenc_session_dump_property in GStreamer(libgstapplemedia_a_x86_64_-libgstapplemedia_la-vtenc.o) 
    "_VTSessionCopySupportedPropertyDictionary", referenced from: 
     _gst_vtenc_set_format in GStreamer(libgstapplemedia_a_x86_64_-libgstapplemedia_la-vtenc.o) 
    "_VTSessionSetProperty", referenced from: 
     _gst_vtenc_set_property in GStreamer(libgstapplemedia_a_x86_64_-libgstapplemedia_la-vtenc.o) 
     _gst_vtenc_set_format in GStreamer(libgstapplemedia_a_x86_64_-libgstapplemedia_la-vtenc.o) 
     _gst_vtenc_session_configure_property_double in GStreamer(libgstapplemedia_a_x86_64_-libgstapplemedia_la-vtenc.o) 
     _gst_vtenc_session_configure_property_int in GStreamer(libgstapplemedia_a_x86_64_-libgstapplemedia_la-vtenc.o) 
    "_kVTCompressionPropertyKey_AllowFrameReordering", referenced from: 
     _gst_vtenc_set_property in GStreamer(libgstapplemedia_a_x86_64_-libgstapplemedia_la-vtenc.o) 
     _gst_vtenc_set_format in GStreamer(libgstapplemedia_a_x86_64_-libgstapplemedia_la-vtenc.o) 
    "_kVTCompressionPropertyKey_AllowTemporalCompression", referenced from: 
     _gst_vtenc_set_format in GStreamer(libgstapplemedia_a_x86_64_-libgstapplemedia_la-vtenc.o) 
    "_kVTCompressionPropertyKey_AverageBitRate", referenced from: 
     _gst_vtenc_set_property in GStreamer(libgstapplemedia_a_x86_64_-libgstapplemedia_la-vtenc.o) 
     _gst_vtenc_set_format in GStreamer(libgstapplemedia_a_x86_64_-libgstapplemedia_la-vtenc.o) 
    "_kVTCompressionPropertyKey_ExpectedFrameRate", referenced from: 
     _gst_vtenc_set_format in GStreamer(libgstapplemedia_a_x86_64_-libgstapplemedia_la-vtenc.o) 
    "_kVTCompressionPropertyKey_MaxKeyFrameInterval", referenced from: 
     _gst_vtenc_set_property in GStreamer(libgstapplemedia_a_x86_64_-libgstapplemedia_la-vtenc.o) 
     _gst_vtenc_set_format in GStreamer(libgstapplemedia_a_x86_64_-libgstapplemedia_la-vtenc.o) 
    "_kVTCompressionPropertyKey_MaxKeyFrameIntervalDuration", referenced from: 
     _gst_vtenc_set_property in GStreamer(libgstapplemedia_a_x86_64_-libgstapplemedia_la-vtenc.o) 
     _gst_vtenc_set_format in GStreamer(libgstapplemedia_a_x86_64_-libgstapplemedia_la-vtenc.o) 
    "_kVTCompressionPropertyKey_NumberOfPendingFrames", referenced from: 
     _gst_vtenc_handle_frame in GStreamer(libgstapplemedia_a_x86_64_-libgstapplemedia_la-vtenc.o) 
    "_kVTCompressionPropertyKey_ProfileLevel", referenced from: 
     _gst_vtenc_set_format in GStreamer(libgstapplemedia_a_x86_64_-libgstapplemedia_la-vtenc.o) 
    "_kVTCompressionPropertyKey_Quality", referenced from: 
     _gst_vtenc_set_quality in GStreamer(libgstapplemedia_a_x86_64_-libgstapplemedia_la-vtenc.o) 
    "_kVTCompressionPropertyKey_RealTime", referenced from: 
     _gst_vtenc_set_property in GStreamer(libgstapplemedia_a_x86_64_-libgstapplemedia_la-vtenc.o) 
     _gst_vtenc_set_format in GStreamer(libgstapplemedia_a_x86_64_-libgstapplemedia_la-vtenc.o) 
    "_kVTEncodeFrameOptionKey_ForceKeyFrame", referenced from: 
     _gst_vtenc_init in GStreamer(libgstapplemedia_a_x86_64_-libgstapplemedia_la-vtenc.o) 
+0

[this](http://stackoverflow.com/questions/36127066/gstreamer-ios-undefined-symbol-gst-plugin-liveadder-register)似乎是相似的 – nayana

+0

你有沒有找到答案?我有個類似的問題! –

+0

sdk教程通常包含一個gst_ios_init.m文件。在這個文件中,所有的靜態gstreamer函數都被聲明瞭。如果您將liveadder元素的部分和碎片元素的部分註釋掉,則應該取得一些進展。這些元素在當前構建的gstreamer ios sdk中不提供。 – jhludwig

回答

0

這是因爲你的gstreamer框架在停滯不前的教程不一樣。根據gst_ios_init.hgst_ios_init.m複製到教程項目將修復問題

0

只需將VideoToolBox框架添加到您的項目。