<div dir="auto"><div><br><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Le ven. 22 févr. 2019 03 h 42, Duchassin Frederic <<a href="mailto:duchassin@sefram.fr">duchassin@sefram.fr</a>> a écrit :<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
  

    
  
  <div text="#000000" bgcolor="#FFFFFF">
    <div class="m_-8548043190975939072jive-rendered-content">
      <p>Hello,</p>
      <p style="min-height:8pt;padding:0px"> </p>
      <p>I try to make my own PCIE gstreamer source.</p>
      <p>My goal is to feed an mpeg2ts stream to gstreamer pipeline on
        my IMX8M som.(kernel 4.9.88)</p>
      <p>In order to do that, i've created my own source based on
        GstBaseSrc.</p>
      <p>On many stream i get no problem....but on others my pipeline
        doesn't want to work  and it seems that MPEG2 parser is the
        problem.</p>
      <p>This is the log of the failure :</p></div></div></blockquote></div></div><div dir="auto"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div text="#000000" bgcolor="#FFFFFF"><div class="m_-8548043190975939072jive-rendered-content">
      <blockquote class="m_-8548043190975939072jive_macro_quote m_-8548043190975939072jive-quote m_-8548043190975939072jive_text_macro">
        <p>root@cl-som-imx8:/home/sefram/debug# gst-launch-1.0 pciesrc
          do-timestamp=false blocksize=4096 ! queue ! tee ! typefind !
          aiurdemux</p></blockquote></div></div></blockquote></div></div><div dir="auto">aiurdemux is the multicontainer demuxer by Freescale. I didn't know it was ported to 1.0. It is known to have all sort of small glitches. I would suggest to replace it by tsdemux. Same API to select the pid. This is the upstream demuxer.</div><div dir="auto"><br></div><div dir="auto">Note that normally this type of HW is implemented as a V4L2 capture driver, and a source already exist, v4l2src. </div><div dir="auto"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div text="#000000" bgcolor="#FFFFFF"><div class="m_-8548043190975939072jive-rendered-content"><blockquote class="m_-8548043190975939072jive_macro_quote m_-8548043190975939072jive-quote m_-8548043190975939072jive_text_macro"><p>program-numberr=5901 name=d ! fakesink async=false<br>
          0:00:00.409990158 13052       0x7f72d0 LOG               
          aiurdemux
          aiurdemux.c:478:gst_aiurdemux_init:<GstAiurDemux@0x8202e0>
          gst_aiurdemux_init<br>
          Setting pipeline to PAUSED ...<br>
          0:00:00.413664153 13052       0x7f72d0 LOG               
          aiurdemux aiurdemux.c:519:gst_aiurdemux_change_state:<d>
          change_state transition=a<br>
          0:00:00.413973989 13052       0x7f72d0 DEBUG             
          aiurdemux aiurdemux.c:508:gst_aiurdemux_change_state:<d>
          change_state READY_TO_PAUSED<br>
          0:00:00.414040469 13052       0x7f72d0 LOG               
          aiurdemux
          aiurdemux.c:894:aiurdemux_sink_activate:<d:sink>
          activating push<br>
          Pipeline is live and does not need PREROLL ...<br>
          Setting pipeline to PLAYING ...<br>
          0:00:00.416130963 13052       0x7f72d0 LOG               
          aiurdemux aiurdemux.c:519:gst_aiurdemux_change_state:<d>
          change_state transition=1c<br>
          New clock: GstSystemClock<br>
          0:00:00.417412908 13052       0x8124a0 LOG               
          aiurdemux
          aiurdemux.c:669:gst_aiurdemux_handle_sink_event:<d>
          gst_aiurdemux_handle_sink_event event=280e<br>
          0:00:00.434010267 13052       0x8124a0 DEBUG             
          aiurdemux aiurdemux.c:1082:gst_aiurdemux_setcaps:<d>
          gst_aiurdemux_setcaps=video/mpegts,
          systemstream=(boolean)true, packetsize=(int)188<br>
          <br>
          ====== AIUR: 4.3.5 build on Jan 21 2019 17:47:10. ======<br>
                  Core: BLN_MAD-MMLAYER_MPG2PARSER_04.05.16  build on
          Sep 14 2017 02:37:53<br>
           file:
          /usr/lib/imx-mm/parser/lib_mpg2_parser_arm_elinux.so.3.1<br>
          0:00:00.434538141 13052       0x8124a0 INFO              
          aiurdemux aiurdemux.c:1094:gst_aiurdemux_setcaps:<d>
          Container: MPEG<br>
          0:00:00.434606900 13052       0x8124a0 DEBUG             
          aiurdemux
          aiurdemux.c:596:gst_aiurdemux_handle_sink_event:<d>
          handling new segment from0<br>
          0:00:00.571159247 13052       0x812280 LOG               
          aiurdemux aiurdemux.c:1197:aiurdemux_loop_state_init:<d>
          aiurdemux_loop_state_init SUCCESS<br>
          0:00:00.571239646 13052       0x812280 DEBUG             
          aiurdemux aiurdemux.c:1518:aiurdemux_set_readmode:<d>
          read mode = track mode<br>
          0:00:00.571300125 13052       0x812280 LOG               
          aiurdemux aiurdemux.c:1979:aiurdemux_parse_streams:<d>
          aiurdemux_parse_streams ret=0<br>
          0:00:00.571578522 13052       0x812280 LOG               
          aiurdemux
          aiurdemux.c:1308:aiurdemux_loop_state_header:<d>
          aiurdemux_loop_state_header SUCCESS<br>
          0:00:00.571616321 13052       0x812280 LOG               
          aiurdemux
          aiurdemux.c:1313:aiurdemux_loop_state_header:<d>
          aiurdemux_loop_state_header FAILED<br>
          0:00:00.571648601 13052       0x812280 LOG               
          aiurdemux aiurdemux.c:1061:aiurdemux_push_task:<d>
          pausing task, reason error<br>
          <br>
          0:00:00.571694320 13052       0x812280 WARN              
          aiurdemux aiurdemux.c:1068:aiurdemux_push_task:<d>
          error: streaming stopped, reason error, state 2<br>
          WARNING: from element /GstPipeline:pipeline0/GstAiurDemux:d:
          Delayed linking failed.<br>
          Additional debug info:<br>
          ../../../git/gst/parse/grammar.y(510): gst_parse_no_more_pads
          (): /GstPipeline:pipeline0/GstAiurDemux:d:<br>
          failed delayed linking some pad of GstAiurDemux named d to
          some pad of GstFakeSink named fakesink0<br>
          ERROR: from element /GstPipeline:pipeline0/GstAiurDemux:d:
          GStreamer encountered a general stream error.<br>
          Additional debug info:<br>
          ../../../git/plugins/aiurdemux/aiurdemux.c(1068):
          aiurdemux_push_task (): /GstPipeline:pipeline0/GstAiurDemux:d:<br>
          streaming stopped, reason error, state 2<br>
          Execution ended after 0:00:00.155683236<br>
          Setting pipeline to PAUSED ...<br>
          0:00:00.572143715 13052       0x7f72d0 LOG               
          aiurdemux aiurdemux.c:519:gst_aiurdemux_change_state:<d>
          change_state transition=23<br>
          Setting pipeline to READY ...<br>
          0:00:00.572622629 13052       0x7f72d0 LOG               
          aiurdemux aiurdemux.c:519:gst_aiurdemux_change_state:<d>
          change_state transition=1a<br>
          0:00:01.571911494 13052       0x7f72d0 DEBUG             
          aiurdemux aiurdemux.c:528:gst_aiurdemux_change_state:<d>
          change_state PAUSED_TO_READY<br>
          Setting pipeline to NULL ...<br>
          0:00:01.573297478 13052       0x7f72d0 LOG               
          aiurdemux aiurdemux.c:519:gst_aiurdemux_change_state:<d>
          change_state transition=11<br>
          Freeing pipeline ...<br>
          0:00:01.573816591 13052       0x7f72d0 LOG               
          aiurdemux aiurdemux.c:486:gst_aiurdemux_finalize:<d>
          gst_aiurdemux_finalize</p>
      </blockquote>
      <p style="min-height:8pt;padding:0px"> </p>
      <p>I've recorder this stream . On this stream only program 5902 is
        working. Others programs gives errors.</p>
      <p>I just add that reading this file with "filesrc" gives no error
        on every programs <strong>(it just do many seek before decoding</strong>):</p>
      <p style="min-height:8pt;padding:0px"> </p>
      <blockquote class="m_-8548043190975939072jive_macro_quote m_-8548043190975939072jive-quote m_-8548043190975939072jive_text_macro">
        <p>root@cl-som-imx8:/home/sefram/debug# gst-launch-1.0 filesrc
          location=/home/sefram/TS/essai.ts ! queue ! tee ! typefind !
          aiurdemux program-number=5901 name=d ! fakesink<br>
          0:00:00.083554268 13082       0x66e460 LOG               
          aiurdemux
          aiurdemux.c:478:gst_aiurdemux_init:<GstAiurDemux@0x670270>
          gst_aiurdemux_init<br>
          Setting pipeline to PAUSED ...<br>
          0:00:00.086178037 13082       0x66e460 LOG               
          aiurdemux aiurdemux.c:519:gst_aiurdemux_change_state:<d>
          change_state transition=a<br>
          0:00:00.086412994 13082       0x66e460 DEBUG             
          aiurdemux aiurdemux.c:508:gst_aiurdemux_change_state:<d>
          change_state READY_TO_PAUSED<br>
          0:00:00.086458473 13082       0x66e460 LOG               
          aiurdemux
          aiurdemux.c:894:aiurdemux_sink_activate:<d:sink>
          activating push<br>
          Pipeline is PREROLLING ...<br>
          0:00:00.093662346 13082       0x654cf0 LOG               
          aiurdemux
          aiurdemux.c:669:gst_aiurdemux_handle_sink_event:<d>
          gst_aiurdemux_handle_sink_event event=280e<br>
          0:00:00.108879842 13082       0x654cf0 DEBUG             
          aiurdemux aiurdemux.c:1082:gst_aiurdemux_setcaps:<d>
          gst_aiurdemux_setcaps=video/mpegts,
          systemstream=(boolean)true, packetsize=(int)188<br>
          <br>
          ====== AIUR: 4.3.5 build on Jan 21 2019 17:47:10. ======<br>
                  Core: BLN_MAD-MMLAYER_MPG2PARSER_04.05.16  build on
          Sep 14 2017 02:37:53<br>
           file:
          /usr/lib/imx-mm/parser/lib_mpg2_parser_arm_elinux.so.3.1<br>
          0:00:00.109289877 13082       0x654cf0 INFO              
          aiurdemux aiurdemux.c:1094:gst_aiurdemux_setcaps:<d>
          Container: MPEG<br>
          0:00:00.109348556 13082       0x654cf0 DEBUG             
          aiurdemux
          aiurdemux.c:608:gst_aiurdemux_handle_sink_event:<d>
          Pushing newseg  rate 1, format 3, start 0:00:00.000000000,
          stop 99:99:99.999999999<br>
          0:00:00.109487395 13082       0x654a30 DEBUG             
          aiurdemux aiurcontent.c:576:aiurcontent_query_content_info:
          can not mkdir /home/root/.aiur<br>
          0:00:00.132204560 13082       0x654a30 DEBUG             
          aiurdemux aiurcontent.c:351:aiurcontent_callback_seek_push:
          seek to 0<br>
          0:00:00.132278479 13082       0x654a30 DEBUG             
          aiurdemux aiurstreamcache.c:340:gst_aiur_stream_cache_seek:
          Flush cache, backward seek addr 0, cachestart 2814646, offset
          200010<br>
          0:00:00.132311118 13082       0x654a30 INFO              
          aiurdemux aiurstreamcache.c:365:gst_aiur_stream_cache_seek:
          stream cache try seek to 0<br>
          0:00:01.133119765 13082       0x654cf0 DEBUG             
          aiurdemux
          aiurdemux.c:608:gst_aiurdemux_handle_sink_event:<d>
          Pushing newseg  rate 1, format 3, start 0:00:00.000000000,
          stop 99:99:99.999999999<br>
          0:00:01.179763321 13082       0x654a30 DEBUG             
          aiurdemux aiurcontent.c:351:aiurcontent_callback_seek_push:
          seek to 0<br>
          0:00:01.179851879 13082       0x654a30 DEBUG             
          aiurdemux aiurstreamcache.c:340:gst_aiur_stream_cache_seek:
          Flush cache, backward seek addr 0, cachestart 3666614, offset
          200010<br>
          0:00:01.179895199 13082       0x654a30 INFO              
          aiurdemux aiurstreamcache.c:365:gst_aiur_stream_cache_seek:
          stream cache try seek to 0<br>
          0:00:02.180303771 13082       0x654cf0 DEBUG             
          aiurdemux
          aiurdemux.c:608:gst_aiurdemux_handle_sink_event:<d>
          Pushing newseg  rate 1, format 3, start 0:00:00.000000000,
          stop 99:99:99.999999999<br>
          0:00:02.182863220 13082       0x654a30 DEBUG             
          aiurdemux aiurcontent.c:351:aiurcontent_callback_seek_push:
          seek to 130314240<br>
          0:00:02.182958379 13082       0x654a30 INFO              
          aiurdemux aiurstreamcache.c:365:gst_aiur_stream_cache_seek:
          stream cache try seek to 130314240<br>
          0:00:02.183825128 13082       0x654cf0 DEBUG             
          aiurdemux
          aiurdemux.c:608:gst_aiurdemux_handle_sink_event:<d>
          Pushing newseg  rate 1, format 3, start 0:00:00.130314240,
          stop 99:99:99.999999999<br>
          0:00:02.185594987 13082       0x654a30 DEBUG             
          aiurdemux aiurcontent.c:351:aiurcontent_callback_seek_push:
          seek to 130052096<br>
          0:00:02.185642026 13082       0x654a30 DEBUG             
          aiurdemux aiurstreamcache.c:340:gst_aiur_stream_cache_seek:
          Flush cache, backward seek addr 130052096, cachestart
          130314240, offset 131072<br>
          0:00:02.185683666 13082       0x654a30 INFO              
          aiurdemux aiurstreamcache.c:365:gst_aiur_stream_cache_seek:
          stream cache try seek to 130052096<br>
          0:00:02.186139900 13082       0x654cf0 DEBUG             
          aiurdemux
          aiurdemux.c:608:gst_aiurdemux_handle_sink_event:<d>
          Pushing newseg  rate 1, format 3, start 0:00:00.130052096,
          stop 99:99:99.999999999<br>
          0:00:02.192078748 13082       0x654a30 DEBUG             
          aiurdemux aiurcontent.c:351:aiurcontent_callback_seek_push:
          seek to 0<br>
          0:00:02.192145227 13082       0x654a30 DEBUG             
          aiurdemux aiurstreamcache.c:340:gst_aiur_stream_cache_seek:
          Flush cache, backward seek addr 0, cachestart</p>
      </blockquote>
      <p style="min-height:8pt;padding:0px"> </p>
      <p>I hope somebody could help me because i don't really understand
        the problem. My custom plugin should be bad...I can send my
        source code if someone can look at it.<br>
      </p>
      <p style="min-height:8pt;padding:0px"> </p>
      <p>BR</p>
      <p style="min-height:8pt;padding:0px"> </p>
      <p>Frédéric</p>
    </div>
  </div>

_______________________________________________<br>
gstreamer-devel mailing list<br>
<a href="mailto:gstreamer-devel@lists.freedesktop.org" target="_blank" rel="noreferrer">gstreamer-devel@lists.freedesktop.org</a><br>
<a href="https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel" rel="noreferrer noreferrer" target="_blank">https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel</a></blockquote></div></div></div>