<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
</head>
<body text="#000000" bgcolor="#FFFFFF">
<div class="jive-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>
<p style="min-height: 8pt; padding: 0px;"> </p>
<blockquote class="jive_macro_quote jive-quote jive_text_macro">
<p>root@cl-som-imx8:/home/sefram/debug# gst-launch-1.0 pciesrc
do-timestamp=false blocksize=4096 ! queue ! tee ! typefind !
aiurdemux program-number=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="jive_macro_quote jive-quote jive_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>
</body>
</html>