<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css" style="display:none;"><!-- P {margin-top:0;margin-bottom:0;} --></style>
</head>
<body dir="ltr">
<div id="divtagdefaultwrapper" style="font-size:12pt;color:#000000;background-color:#FFFFFF;font-family:Calibri,Arial,Helvetica,sans-serif;">
<p>Hi there,</p>
<p><br>
</p>
<p>I'm trying to create a video source which can output an MP4 stream (with H264 video and ALAC sound) into a qtdemux for demuxing.</p>
<p><br>
</p>
<p>The MP4 stream itself has been created by the mp4mux element.</p>
<p><br>
</p>
<p>I can not manage to get the video source and qtdemux to link.</p>
<p><br>
</p>
<p>My source outputs the following: caps = "video/x-h264, stream-format=(string)avc, alignment=(string)au"</p>
<p><br>
</p>
<p>This is similar to what is output if I read the MP4 using filesrc. I have also tried with video/quicktime and video/mpeg4 but never manage to get the pipe to link.</p>
<p><br>
</p>
<p>If I do gst-launch1.0 mysrc ! queue ! qtdemux ! fakesink I get the output below. Any advice would be great!</p>
<p><br>
</p>
<p><br>
</p>
<p>0:00:00.004574667 527 0xf6e680 INFO GST_INIT gstmessage.c:119:_priv_gst_message_initialize: init messages</p>
<p>0:00:00.009506667 527 0xf6e680 INFO GST_INIT gstcontext.c:77:_priv_gst_context_initialize: init contexts</p>
<p>0:00:00.010783334 527 0xf6e680 INFO GST_PLUGIN_LOADING gstplugin.c:317:_priv_gst_plugin_initialize: registering 0 static plugins</p>
<p>0:00:00.011394667 527 0xf6e680 INFO GST_PLUGIN_LOADING gstplugin.c:225:gst_plugin_register_static: registered static plugin "staticelements"</p>
<p>0:00:00.011451000 527 0xf6e680 INFO GST_PLUGIN_LOADING gstplugin.c:227:gst_plugin_register_static: added static plugin "staticelements", result: 1</p>
<p>0:00:00.011570667 527 0xf6e680 INFO GST_REGISTRY gstregistry.c:1722:ensure_current_registry: reading registry cache: /home/root/.cache/gstreamer-1.0/r</p>
<p>egistry.arm.bin</p>
<p>0:00:00.058968667 527 0xf6e680 INFO GST_REGISTRY gstregistrybinary.c:619:priv_gst_registry_binary_read_cache: loaded /home/root/.cache/gstreamer-1.0/r</p>
<p>egistry.arm.bin in 0.047270 seconds</p>
<p>0:00:00.059206000 527 0xf6e680 INFO GST_REGISTRY gstregistry.c:1578:scan_and_update_registry: Validating plugins from registry cache: /home/root/.cach</p>
<p>e/gstreamer-1.0/registry.arm.bin</p>
<p>0:00:00.059928334 527 0xf6e680 INFO GST_REGISTRY gstregistry.c:1680:scan_and_update_registry: Registry cache has not changed</p>
<p>0:00:00.059974000 527 0xf6e680 INFO GST_REGISTRY gstregistry.c:1757:ensure_current_registry: registry reading and updating done, result = 1</p>
<p>0:00:00.060027667 527 0xf6e680 INFO GST_INIT gst.c:709:init_post: GLib runtime version: 2.44.1</p>
<p>0:00:00.060078000 527 0xf6e680 INFO GST_INIT gst.c:711:init_post: GLib headers version: 2.44.1</p>
<p>0:00:00.060174334 527 0xf6e680 INFO GST_PIPELINE gstparse.c:323:gst_parse_launch_full: parsing pipeline description 'v4l2src_userptr imx-capture-mode=</p>
<p>9 queue-size=20 width=1920 height=1080 pixel_format=877088845 ! queue ! qtdemux ! fakesink '</p>
<p>0:00:00.065080667 527 0xf6e680 INFO GST_PLUGIN_LOADING gstplugin.c:833:gst_plugin_load_file: plugin "/usr/lib/gstreamer-1.0/libgstimxv4l2videosrc-userptr.so</p>
<p>" loaded</p>
<p>0:00:00.065167334 527 0xf6e680 INFO GST_ELEMENT_FACTORY gstelementfactory.c:364:gst_element_factory_create: creating element "v4l2src_userptr"</p>
<p>0:00:00.065984667 527 0xf6e680 INFO GST_ELEMENT_PADS gstelement.c:643:gst_element_add_pad:<GstBaseSrc@0xfec230> adding pad 'src'</p>
<p>0:00:00.068641667 527 0xf6e680 INFO GST_PLUGIN_LOADING gstplugin.c:833:gst_plugin_load_file: plugin "/usr/lib/gstreamer-1.0/libgstcoreelements.so" loaded</p>
<p>0:00:00.068749000 527 0xf6e680 INFO GST_ELEMENT_FACTORY gstelementfactory.c:364:gst_element_factory_create: creating element "queue"</p>
<p>0:00:00.069353667 527 0xf6e680 INFO GST_ELEMENT_PADS gstelement.c:643:gst_element_add_pad:<GstQueue@0xff0018> adding pad 'sink'</p>
<p>0:00:00.069526667 527 0xf6e680 INFO GST_ELEMENT_PADS gstelement.c:643:gst_element_add_pad:<GstQueue@0xff0018> adding pad 'src'</p>
<p>0:00:00.077179667 527 0xf6e680 INFO GST_PLUGIN_LOADING gstplugin.c:833:gst_plugin_load_file: plugin "/usr/lib/gstreamer-1.0/libgstisomp4.so" loaded</p>
<p>0:00:00.077250334 527 0xf6e680 INFO GST_ELEMENT_FACTORY gstelementfactory.c:364:gst_element_factory_create: creating element "qtdemux"</p>
<p>0:00:00.078158000 527 0xf6e680 INFO GST_ELEMENT_PADS gstelement.c:643:gst_element_add_pad:<GstQTDemux@0xffa018> adding pad 'sink'</p>
<p>0:00:00.078352000 527 0xf6e680 INFO GST_ELEMENT_FACTORY gstelementfactory.c:364:gst_element_factory_create: creating element "fakesink"</p>
<p>0:00:00.079010334 527 0xf6e680 INFO GST_ELEMENT_PADS gstelement.c:643:gst_element_add_pad:<GstBaseSink@0xffe2c8> adding pad 'sink'</p>
<p>0:00:00.079125000 527 0xf6e680 INFO GST_ELEMENT_FACTORY gstelementfactory.c:364:gst_element_factory_create: creating element "pipeline"</p>
<p>0:00:00.079580334 527 0xf6e680 INFO GST_PIPELINE grammar.y:570:gst_parse_perform_link: linking imxv4l2userptrsrc0:(any) to queue0:(any) (0/0) with cap</p>
<p>s "(NULL)"</p>
<p>0:00:00.079698667 527 0xf6e680 INFO GST_ELEMENT_PADS gstutils.c:1545:gst_element_link_pads_full: trying to link element imxv4l2userptrsrc0:(any) to elemen</p>
<p>t queue0:(any)</p>
<p>0:00:00.079777000 527 0xf6e680 INFO GST_PADS gstutils.c:937:gst_pad_check_link: trying to link imxv4l2userptrsrc0:src and queue0:sink</p>
<p>0:00:00.079947334 527 0xf6e680 INFO v4l2src_userptr v4l2src.c:353:gst_imx_v4l2src_get_caps:<imxv4l2userptrsrc0> get caps filter (NULL)</p>
<p>0:00:00.080016667 527 0xf6e680 INFO v4l2src_userptr v4l2src.c:372:gst_imx_v4l2src_get_caps:<imxv4l2userptrsrc0> get caps video/x-h264, stream-format=(str</p>
<p>ing)avc, alignment=(string)au</p>
<p>0:00:00.080169000 527 0xf6e680 INFO GST_PADS gstpad.c:3745:gst_pad_peer_query:<queue0:src> pad has no peer</p>
<p>0:00:00.080254334 527 0xf6e680 INFO GST_PADS gstutils.c:1445:prepare_link_maybe_ghosting: imxv4l2userptrsrc0 and queue0 in same bin, no need for g</p>
<p>host pads</p>
<p>0:00:00.413484001 527 0xf6e680 INFO GST_PADS gstpad.c:2186:gst_pad_link_prepare: trying to link imxv4l2userptrsrc0:src and queue0:sink</p>
<p>0:00:00.413641667 527 0xf6e680 INFO v4l2src_userptr v4l2src.c:353:gst_imx_v4l2src_get_caps:<imxv4l2userptrsrc0> get caps filter (NULL)</p>
<p>0:00:00.413767667 527 0xf6e680 INFO v4l2src_userptr v4l2src.c:372:gst_imx_v4l2src_get_caps:<imxv4l2userptrsrc0> get caps video/x-h264, stream-format=(str</p>
<p>ing)avc, alignment=(string)au</p>
<p>0:00:00.413945667 527 0xf6e680 INFO GST_PADS gstpad.c:3745:gst_pad_peer_query:<queue0:src> pad has no peer</p>
<p>0:00:00.414071334 527 0xf6e680 INFO GST_PADS gstpad.c:2388:gst_pad_link_full: linked imxv4l2userptrsrc0:src and queue0:sink, successful</p>
<p>0:00:00.414192334 527 0xf6e680 INFO GST_EVENT gstevent.c:1373:gst_event_new_reconfigure: creating reconfigure event</p>
<p>0:00:00.414359334 527 0xf6e680 INFO GST_EVENT gstpad.c:5182:gst_pad_send_event_unchecked:<imxv4l2userptrsrc0:src> Received event on flushing pad. D</p>
<p>iscarding</p>
<p>0:00:00.414542001 527 0xf6e680 INFO GST_PIPELINE grammar.y:570:gst_parse_perform_link: linking queue0:(any) to qtdemux0:(any) (0/0) with caps "(NULL)"</p>
<p>0:00:00.414667001 527 0xf6e680 INFO GST_ELEMENT_PADS gstutils.c:1545:gst_element_link_pads_full: trying to link element queue0:(any) to element qtdemux0:(</p>
<p>any)</p>
<p>0:00:00.414784667 527 0xf6e680 INFO GST_PADS gstutils.c:937:gst_pad_check_link: trying to link queue0:src and qtdemux0:sink</p>
<p>0:00:00.414935667 527 0xf6e680 INFO v4l2src_userptr v4l2src.c:353:gst_imx_v4l2src_get_caps:<imxv4l2userptrsrc0> get caps filter (NULL)</p>
<p>0:00:00.415062001 527 0xf6e680 INFO v4l2src_userptr v4l2src.c:372:gst_imx_v4l2src_get_caps:<imxv4l2userptrsrc0> get caps video/x-h264, stream-format=(str</p>
<p>ing)avc, alignment=(string)au</p>
<p>0:00:00.415341001 527 0xf6e680 INFO v4l2src_userptr v4l2src.c:353:gst_imx_v4l2src_get_caps:<imxv4l2userptrsrc0> get caps filter (NULL)</p>
<p>0:00:00.415467001 527 0xf6e680 INFO v4l2src_userptr v4l2src.c:372:gst_imx_v4l2src_get_caps:<imxv4l2userptrsrc0> get caps video/x-h264, stream-format=(str</p>
<p>ing)avc, alignment=(string)au</p>
<p>0:00:00.415824667 527 0xf6e680 INFO GST_ELEMENT_PADS gstutils.c:1125:gst_element_get_compatible_pad:<qtdemux0> Could not find a compatible pad to link to </p>
<p>queue0:src</p>
<p>0:00:00.415998001 527 0xf6e680 INFO GST_PADS gstutils.c:937:gst_pad_check_link: trying to link queue0:src and qtdemux0:sink</p>
<p>0:00:00.416180001 527 0xf6e680 INFO v4l2src_userptr v4l2src.c:353:gst_imx_v4l2src_get_caps:<imxv4l2userptrsrc0> get caps filter (NULL)</p>
<p>0:00:00.416303334 527 0xf6e680 INFO v4l2src_userptr v4l2src.c:372:gst_imx_v4l2src_get_caps:<imxv4l2userptrsrc0> get caps video/x-h264, stream-format=(str</p>
<p>ing)avc, alignment=(string)au</p>
<p>0:00:00.416621334 527 0xf6e680 INFO GST_ELEMENT_PADS gstelement.c:895:gst_element_get_static_pad: found pad queue0:src</p>
<p>0:00:00.416736001 527 0xf6e680 INFO GST_PADS gstutils.c:1445:prepare_link_maybe_ghosting: queue0 and qtdemux0 in same bin, no need for ghost pads</p>
<p>0:00:00.416869334 527 0xf6e680 INFO GST_PADS gstpad.c:2186:gst_pad_link_prepare: trying to link queue0:src and qtdemux0:sink</p>
<p>0:00:00.417233667 527 0xf6e680 INFO v4l2src_userptr v4l2src.c:353:gst_imx_v4l2src_get_caps:<imxv4l2userptrsrc0> get caps filter (NULL)</p>
<p>0:00:00.417363667 527 0xf6e680 INFO v4l2src_userptr v4l2src.c:372:gst_imx_v4l2src_get_caps:<imxv4l2userptrsrc0> get caps video/x-h264, stream-format=(str</p>
<p>ing)avc, alignment=(string)au</p>
<p>0:00:00.749517667 527 0xf6e680 INFO GST_PADS gstpad.c:2242:gst_pad_link_prepare: caps are incompatible</p>
<p>0:00:00.749682667 527 0xf6e680 INFO default gstutils.c:1891:gst_element_link_pads_filtered: Could not link pads: queue0:(null) - qtdemux0:(null)</p>
<p>0:00:00.749804001 527 0xf6e680 ERROR GST_PIPELINE grammar.y:616:gst_parse_perform_link: could not link queue0 to qtdemux0</p>
<p>0:00:00.749921667 527 0xf6e680 INFO GST_PIPELINE grammar.y:570:gst_parse_perform_link: linking qtdemux0:(any) to fakesink0:(any) (0/0) with caps "(NUL</p>
<p>L)"</p>
<p>0:00:00.750037001 527 0xf6e680 INFO GST_ELEMENT_PADS gstutils.c:1545:gst_element_link_pads_full: trying to link element qtdemux0:(any) to element fakesink</p>
<p>0:(any)</p>
<p>0:00:00.750346334 527 0xf6e680 INFO GST_ELEMENT_PADS gstelement.c:892:gst_element_get_static_pad: no such pad 'video_%u' in element "qtdemux0"</p>
<p>0:00:00.750479667 527 0xf6e680 INFO GST_ELEMENT_PADS gstutils.c:1125:gst_element_get_compatible_pad:<qtdemux0> Could not find a compatible pad to link to </p>
<p>fakesink0:sink</p>
<p>0:00:00.750571334 527 0xf6e680 INFO default gstutils.c:1891:gst_element_link_pads_filtered: Could not link pads: qtdemux0:(null) - fakesink0:(nul</p>
<p>l)</p>
<p>WARNING: erroneous pipeline: could not link queue0 to qtdemux0</p>
<p><br>
</p>
<p><br>
</p>
</div>
</body>
</html>