Hi All,
i'm working with a dvb-t dongle, aiming to watch tv on a MX6Q.
i'm using ltib filesystem with kernel 3.0.35
this is my not-working pipeline:
gst-launch-0.10 dvbbasebin bandwidth=8 code-rate-lp=AUTO code-rate-hp=AUTO guard=AUTO hierarchy=AUTO modulation=AUTO trans-mode=AUTO inversion=AUTO frequency=$f program-numbers=$pn ! mpegtsdemux name=demux ! queue max-size-buffers=0 max-size-time=0 ! mfw_mpeg2decoder ! mfw_v4lsink axis-top=0 axis-left=0 disp-width=$WIDTH disp-height=$HEIGHT axis-top=$Y setpara=1
! consider that substituting mfw_mpeg2decoder with ffdec_mpeg2video there is not segfault (but video has frames dropped) !
please give me an hint to solve this problem!
this is my console output:
//-----------------
root@freescale /$ export GST_DEBUG=mfw*:5
MPEG2D_ARM11_02.02.00 build on Apr 19 2011 19:06:38.
MFW_GST_MPEG2_DECODER_PLUGIN 3.0.5 build on Jan 31 2013 08:30:42.
0:00:01.057304156 2606 0x17050 INFO mfw_v4lsink mfw_gst_v4lsink.c:262:mfw_gst_get_first_odev: Get first device:/dev/video16, capabilities 0x4000002
0:00:01.057596823 2606 0x17050 INFO mfw_v4lsink mfw_gst_v4lsink.c:300:mfw_gst_v4l2sink_query_support_formats: supported format:[RGBP]RGB565
0:00:01.057674822 2606 0x17050 INFO mfw_v4lsink mfw_gst_v4lsink.c:300:mfw_gst_v4l2sink_query_support_formats: supported format:[BGR3]BGR24
0:00:01.057745822 2606 0x17050 INFO mfw_v4lsink mfw_gst_v4lsink.c:300:mfw_gst_v4l2sink_query_support_formats: supported format:[RGB3]RGB24
0:00:01.057812822 2606 0x17050 INFO mfw_v4lsink mfw_gst_v4lsink.c:300:mfw_gst_v4l2sink_query_support_formats: supported format:[RGB4]RGB32
0:00:01.057879489 2606 0x17050 INFO mfw_v4lsink mfw_gst_v4lsink.c:300:mfw_gst_v4l2sink_query_support_formats: supported format:[BGR4]BGR32
0:00:01.057944156 2606 0x17050 INFO mfw_v4lsink mfw_gst_v4lsink.c:300:mfw_gst_v4l2sink_query_support_formats: supported format:[NV12]NV12
0:00:01.058009156 2606 0x17050 INFO mfw_v4lsink mfw_gst_v4lsink.c:300:mfw_gst_v4l2sink_query_support_formats: supported format:[UYVY]UYVY
0:00:01.058073156 2606 0x17050 INFO mfw_v4lsink mfw_gst_v4lsink.c:300:mfw_gst_v4l2sink_query_support_formats: supported format:[YUYV]YUYV
0:00:01.058138489 2606 0x17050 INFO mfw_v4lsink mfw_gst_v4lsink.c:300:mfw_gst_v4l2sink_query_support_formats: supported format:[422P]YUV422 planar
0:00:01.058202489 2606 0x17050 WARN mfw_v4lsink mfw_gst_v4lsink.c:303:mfw_gst_v4l2sink_query_support_formats: unrecognized format:[Y444]YUV444
0:00:01.058268822 2606 0x17050 INFO mfw_v4lsink mfw_gst_v4lsink.c:300:mfw_gst_v4l2sink_query_support_formats: supported format:[YU12]YUV420
0:00:01.058333489 2606 0x17050 INFO mfw_v4lsink mfw_gst_v4lsink.c:300:mfw_gst_v4l2sink_query_support_formats: supported format:[YV12]YVU420
0:00:01.058397489 2606 0x17050 INFO mfw_v4lsink mfw_gst_v4lsink.c:300:mfw_gst_v4l2sink_query_support_formats: supported format:[TNVP]TILED NV12P
0:00:01.058461489 2606 0x17050 INFO mfw_v4lsink mfw_gst_v4lsink.c:300:mfw_gst_v4l2sink_query_support_formats: supported format:[TNVF]TILED NV12F
0:00:01.058525155 2606 0x17050 INFO mfw_v4lsink mfw_gst_v4lsink.c:300:mfw_gst_v4l2sink_query_support_formats: supported format:[444P]YUV444 planar
MFW_GST_V4LSINK_PLUGIN 3.0.5 build on Jan 31 2013 08:29:57.
0:00:01.060863154 2606 0x17050 DEBUG mfw_v4lsink mfw_gst_v4lsink.c:782:mfw_gst_v4lsink_set_property: axis_top = 0
0:00:01.060979487 2606 0x17050 DEBUG mfw_v4lsink mfw_gst_v4lsink.c:786:mfw_gst_v4lsink_set_property: axis_left = 0
0:00:01.061081154 2606 0x17050 DEBUG mfw_v4lsink mfw_gst_v4lsink.c:774:mfw_gst_v4lsink_set_property: width = 800
0:00:01.061181487 2606 0x17050 DEBUG mfw_v4lsink mfw_gst_v4lsink.c:778:mfw_gst_v4lsink_set_property: height = 450
0:00:01.061282154 2606 0x17050 DEBUG mfw_v4lsink mfw_gst_v4lsink.c:782:mfw_gst_v4lsink_set_property: axis_top = 85
Setting pipeline to PAUSED ...
0:00:01.062855153 2606 0x17050 DEBUG mfw_v4lsink mfw_gst_v4lsink.c:1468:mfw_gst_v4lsink_change_state:
>>V4LSINK: State: 10
0:00:01.705054828 2606 0x17050 DEBUG mfw_v4lsink mfw_gst_v4lsink.c:1468:mfw_gst_v4lsink_change_state:
>>V4LSINK: State: 19
Pipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
** (gst-launch-0.10:2606): CRITICAL **: Could not convert string: Conversion from character set 'iso8859-9' to 'utf-8' is not supported
** (gst-launch-0.10:2606): CRITICAL **: Could not convert string: Conversion from character set 'iso8859-9' to 'utf-8' is not supported
** (gst-launch-0.10:2606): CRITICAL **: Could not convert string: Conversion from character set 'iso8859-9' to 'utf-8' is not supported
** (gst-launch-0.10:2606): CRITICAL **: Could not convert string: Conversion from character set 'iso8859-9' to 'utf-8' is not supported
** (gst-launch-0.10:2606): CRITICAL **: Could not convert string: Conversion from character set 'iso8859-9' to 'utf-8' is not supported
(gst-launch-0.10:2606): GStreamer-WARNING **: Trying to set string on structure field 'extended-text', but string is not valid UTF-8. Please file a bug.
** (gst-launch-0.10:2606): CRITICAL **: Could not convert string: Conversion from character set 'iso8859-9' to 'utf-8' is not supported
** (gst-launch-0.10:2606): CRITICAL **: Could not convert string: Conversion from character set 'iso8859-9' to 'utf-8' is not supported
** (gst-launch-0.10:2606): CRITICAL **: Could not convert string: Conversion from character set 'iso8859-9' to 'utf-8' is not supported
(gst-launch-0.10:2606): GStreamer-WARNING **: Trying to set string on structure field 'extended-text', but string is not valid UTF-8. Please file a bug.
** (gst-launch-0.10:2606): CRITICAL **: Could not convert string: Conversion from character set 'iso8859-9' to 'utf-8' is not supported
** (gst-launch-0.10:2606): CRITICAL **: Could not convert string: Conversion from character set 'iso8859-9' to 'utf-8' is not supported
** (gst-launch-0.10:2606): CRITICAL **: Could not convert string: Conversion from character set 'iso8859-9' to 'utf-8' is not supported
(gst-launch-0.10:2606): GStreamer-WARNING **: Trying to set string on structure field 'extended-text', but string is not valid UTF-8. Please file a bug.
** (gst-launch-0.10:2606): CRITICAL **: Could not convert string: Conversion from character set 'iso8859-9' to 'utf-8' is not supported
** (gst-launch-0.10:2606): CRITICAL **: Could not convert string: Conversion from character set 'iso8859-9' to 'utf-8' is not supported
** (gst-launch-0.10:2606): CRITICAL **: Could not convert string: Conversion from character set 'iso8859-9' to 'utf-8' is not supported
(gst-launch-0.10:2606): GStreamer-WARNING **: Trying to set string on structure field 'extended-text', but string is not valid UTF-8. Please file a bug.
** (gst-launch-0.10:2606): CRITICAL **: Could not convert string: Conversion from character set 'iso8859-9' to 'utf-8' is not supported
** (gst-launch-0.10:2606): CRITICAL **: Could not convert string: Conversion from character set 'iso8859-9' to 'utf-8' is not supported
** (gst-launch-0.10:2606): CRITICAL **: Could not convert string: Conversion from character set 'iso8859-9' to 'utf-8' is not supported
(gst-launch-0.10:2606): GStreamer-WARNING **: Trying to set string on structure field 'extended-text', but string is not valid UTF-8. Please file a bug.
** (gst-launch-0.10:2606): CRITICAL **: Could not convert string: Conversion from character set 'iso6937' to 'utf-8' is not supported
** (gst-launch-0.10:2606): CRITICAL **: Could not convert string: Conversion from character set 'iso6937' to 'utf-8' is not supported
** (gst-launch-0.10:2606): CRITICAL **: Could not convert string: Conversion from character set 'iso6937' to 'utf-8' is not supported
** (gst-launch-0.10:2606): CRITICAL **: Could not convert string: Conversion from character set 'iso6937' to 'utf-8' is not supported
** (gst-launch-0.10:2606): CRITICAL **: Could not convert string: Conversion from character set 'iso6937' to 'utf-8' is not supported
** (gst-launch-0.10:2606): CRITICAL **: Could not convert string: Conversion from character set 'iso6937' to 'utf-8' is not supported
** (gst-launch-0.10:2606): CRITICAL **: Could not convert string: Conversion from character set 'iso6937' to 'utf-8' is not supported
** (gst-launch-0.10:2606): CRITICAL **: Could not convert string: Conversion from character set 'iso6937' to 'utf-8' is not supported
** (gst-launch-0.10:2606): CRITICAL **: Could not convert string: Conversion from character set 'iso6937' to 'utf-8' is not supported
** (gst-launch-0.10:2606): CRITICAL **: Could not convert string: Conversion from character set 'iso6937' to 'utf-8' is not supported
** (gst-launch-0.10:2606): CRITICAL **: Could not convert string: Conversion from character set 'iso6937' to 'utf-8' is not supported
** (gst-launch-0.10:2606): CRITICAL **: Could not convert string: Conversion from character set 'iso6937' to 'utf-8' is not supported
** (gst-launch-0.10:2606): CRITICAL **: Could not convert string: Conversion from character set 'iso6937' to 'utf-8' is not supported
** (gst-launch-0.10:2606): CRITICAL **: Could not convert string: Conversion from character set 'iso6937' to 'utf-8' is not supported
** (gst-launch-0.10:2606): CRITICAL **: Could not convert string: Conversion from character set 'iso6937' to 'utf-8' is not supported
** (gst-launch-0.10:2606): CRITICAL **: Could not convert string: Conversion from character set 'iso6937' to 'utf-8' is not supported
** (gst-launch-0.10:2606): CRITICAL **: Could not convert string: Conversion from character set 'iso6937' to 'utf-8' is not supported
** (gst-launch-0.10:2606): CRITICAL **: Could not convert string: Conversion from character set 'iso6937' to 'utf-8' is not supported
** (gst-launch-0.10:2606): CRITICAL **: Could not convert string: Conversion from character set 'iso6937' to 'utf-8' is not supported
** (gst-launch-0.10:2606): CRITICAL **: Could not convert string: Conversion from character set 'iso6937' to 'utf-8' is not supported
** (gst-launch-0.10:2606): CRITICAL **: Could not convert string: Conversion from character set 'iso6937' to 'utf-8' is not supported
** (gst-launch-0.10:2606): CRITICAL **: Could not convert string: Conversion from character set 'iso6937' to 'utf-8' is not supported
** (gst-launch-0.10:2606): CRITICAL **: Could not convert string: Conversion from character set 'iso6937' to 'utf-8' is not supported
** (gst-launch-0.10:2606): CRITICAL **: Could not convert string: Conversion from character set 'iso6937' to 'utf-8' is not supported
0:00:08.375314161 2606 0x106348 DEBUG mfw_mpeg2decoder mfw_gst_mpeg2dec.c:1007:mfw_gst_mpeg2dec_sink_event: handling newsegment event
0:00:08.375504494 2606 0x106348 DEBUG mfw_mpeg2decoder mfw_gst_mpeg2dec.c:1019:mfw_gst_mpeg2dec_sink_event: receiving new seg
0:00:08.375590828 2606 0x106348 DEBUG mfw_mpeg2decoder mfw_gst_mpeg2dec.c:1020:mfw_gst_mpeg2dec_sink_event: start = 20:22:25.317944444
0:00:08.375658161 2606 0x106348 DEBUG mfw_mpeg2decoder mfw_gst_mpeg2dec.c:1021:mfw_gst_mpeg2dec_sink_event: stop = 99:99:99.999999999
0:00:08.375721828 2606 0x106348 DEBUG mfw_mpeg2decoder mfw_gst_mpeg2dec.c:1024:mfw_gst_mpeg2dec_sink_event: position in mpeg2dec =0:00:00.000000000
0:00:08.375952161 2606 0x106348 DEBUG mfw_mpeg2decoder mfw_gst_mpeg2dec.c:1116:mfw_gst_mpeg2dec_set_caps: in mfw_gst_mpeg2dec_set_caps function
0:00:08.376037828 2606 0x106348 DEBUG mfw_mpeg2decoder mfw_gst_mpeg2dec.c:1127:mfw_gst_mpeg2dec_set_caps: Frame Rate = nan
0:00:08.376215828 2606 0x106348 DEBUG mfw_mpeg2decoder mfw_gst_mpeg2dec.c:681:mfw_gst_mpeg2dec_chain:
Coming for the first time to do the decoder initialization
Caught SIGSEGV accessing address 0x14
Spinning. Please run 'gdb gst-launch 2606' to continue debugging, Ctrl-C to quit, or Ctrl-\ to dump core.
root@freescale /$
//-----------------
Solved! Go to Solution.
JianLi Jun 23, 2013 11:36 PM (in response to Karina Valencia Aguilar)
customer is using mpegtsdemux, which is listed in gst-plugins-bad package, not sure if this plugin can work correctly with the ts stream. One way customer can try is to play the ts file from local disk with this plugin to see if still have the AV out of sync issue, if yes, it's this plugins issue.
There are some other open source plugins for ts demux, customer also can have a try: tsdemux, tsparse, mpegtsparse.
Finally i solved my smoothness troubles upgrading gst-plugins-bad to version 0.10.22 and using "tsdemux" demuxer.
Thank you all for your support.
But i'm not out of issues : when i tune on some channels i have this warning on console:
GStreamer-WARNING **: Trying to set string on structure field'description', but string is not valid UTF-8. Please file a bug
do someone knows what i'm missing?
i installed libiconv in ltib; but i noticed i miss /usr/lib/gconv folder; maybe this is my problem? how to have /usr/lib/gconv folder correctly installed?
I know you probably solved your problem, but to me it looks like you have a clock problem. Have you tried sync=no on the v4lsink?
Regards!
As explained upper in this discussion,
i'm using mpegtsdemux (the one in gst-plugins-bad bundled in ltib 4.0.0).
Playing from local disk (you can download stream.ts from DepositFiles) , instead of streaming live, i experience the same framedrop issue that, using IMX6's vpudec, entail the audio/video out-of-sync (~10sec/60sec of video are dropped!!!, after ~1min audio is ~10 sec later than video... actually video is ahead than audio) . On PC, using mpeg2dec, the local stream.ts is played smoothly, with in-sync audio.
The gst-plugins-bad version bundled in ltib misses tsdemux plugin. I'll upgrade the package to a newer version and give a try to tsdemux.
ok, switched to LTIB 4.0.0, nothing changed.
also, this message remains:
[WARN] VPU iram is less than needed, some parts don't use iram
i have a video captured **from my PC** with the following commandline:
cat /dev/dvb/adapter0/dvr0 > /tmp/stream.ts #ctrl+C after ~60sec
its reproduced smoothly (audio and video in sync!) on the PC with following pipeline
pn=8585
cat /tmp/stream.ts | gst-launch-0.10 fdsrc fd=0 ! mpegtsdemux program-number=$pn name=demux ! queue max-size-buffers=0 max-size-time=0 ! mpeg2dec ! xvimagesink demux. ! queue max-size-buffers=0 max-size-time=0 ! mad ! alsasink
fyi these are the programs contained into the stream:
Rai Premium:514000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:431:441:8581
Rai yoyo:514000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:432:442:8582
Rai 4:514000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:433:443:8583
Rai Gulp:514000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:434:445:8584
Rai Movie:514000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:435:446:8585
on target i.MX6 DualLite i use following pipeline:
pn=8585
export WIDTH=800
export HEIGHT=450
export Y=85
cat stream.ts | gst-launch-0.10 fdsrc fd=0 ! \
mpegtsdemux program-number=$pn name=demux ! queue max-size-buffers=0 max-size-time=0 ! vpudec ! mfw_v4lsink axis-top=0 axis-left=0 disp-width=$WIDTH disp-height=$HEIGHT axis-top=$Y setpara=1 \
demux. ! queue max-size-buffers=0 max-size-time=0 ! mad ! alsasink &
audio is out of sync (seconds late..), it seems this happens because some frames are dropped (on the "real case" where the source is live and not recorded on disk, video is also stuttering.)
this is cpu load:
PID PPID USER STAT VSZ %VSZ CPU %CPU COMMAND
3008 2708 root S 78100 12.2 0 6.4 gst-launch-0.10 fdsrc fd=0 ! mpegt
p.s.: wher can i upload the file stream.ts so you can try to reproduce the issue? it is ~150MB
you can download stream.ts here:
JianLi Jun 23, 2013 11:36 PM (in response to Karina Valencia Aguilar)
customer is using mpegtsdemux, which is listed in gst-plugins-bad package, not sure if this plugin can work correctly with the ts stream. One way customer can try is to play the ts file from local disk with this plugin to see if still have the AV out of sync issue, if yes, it's this plugins issue.
There are some other open source plugins for ts demux, customer also can have a try: tsdemux, tsparse, mpegtsparse.
i noticed this message in gstreamer output:
[WARN] VPU iram is less than needed, some parts don't use iram
what's that mean?
i also notice jerky video output, audio/video out-of-sync and sometimes i lost audio.... some hints?
about audio/video out of sync, are you sure your media file is in sink? Have you tried to play it on your PC using, like, VLC?
About the gstreamer output, I´m not sure, maybe karinavalencia could point someone to help on this.
What do you mean by jerky? Have you tried to drop some frames?
my source is a dvb-t tv dongle. No problems with similar pipeline on my pc; no problems with mplayer and vlc too on pc.
i suspect vpudec is losing frames... i experience "occasional" stuttering (it's smooth for a couple of secs, but then some stutter... and after it's smooth for some other sec... etc... and the audio gets out of sync.)
Sometimes the pipeline "starts badly" and i experience really bad audio jittering
any option to obtain better results? buffering? some kernel optimization? some fancy option in the gstreamer pipeline elements?
There is a framedrop parameter on vpudec, set it false and see if that helps. Also post your question to the gstreamer-devel list, and ask if your pipeline can be tuned a for better performance. A suggestion: In order to identify the video artifacts you are seeing, do not add the audio elements into the pipeline.
Leo
setting vpudec framedrop=false results in really bad stuttering after a few secs, after a (really small) while image freezes and gets updated only every few sec
I see. In the other hand, This is a time to create your own packages on your current BSP, so moving to 4.0.0 is not so hard :smileyhappy: Not sure if you will see any improvement on that particular pipeline but it is worth trying it 4.0.0. it has all fixes and improvements on all layers, including GST.
Leo
Thanks for your reply.
No, I don´t know any other fancy option for gstreamer. No one that you would not know, at least. (queues, caps, this stuff)
Did you tried using the latest plugins from 4.0.0 BSP?
uhm, no, did not noticed a new BSP release! I'm with the previous one.... downloading 4.0.0... i'm not really excited to install it from scratch and apply all my modifications and packages on it.. :smileysad:
is it present an "update" feature i'm not aware of?
thank you all for support and good suggestions.
Please give 4.0.0 a try, or only take a look in the release notes. If you think it's not enough, please, reopen this thread (it's marked as "answered", please, unmark that)
And try to get a way we can reproduce the issue you see. I don't have an dvb-t dongle but you may create a movie to reproduce the same behavior. This way we can reproduce and even escalate the issue.
i'm able to play movies using gplay and also using playbin2; but in this case it's not a movie, it's a live streaming from a dvb-t dongle source... so i need to write my pipeline; i'm trying to get best performance possible using hw acceleration whereever possible.
Oh, sorry.
demux
the demux provided by freescale is not hardware accelerated. It has some "optimization" for the hardware, but it is not developed for streaming packages, it was tested using media files. I mean, I´m not sure it would be your best choice. You should consider to calculate the performance for both cases and decide which one is the best (i mean, compare freescale with opensource plugin)
video decoder
Was you able to decode it?
audio decoder
When you try a local media file, does beepdec work?
Hi Daiane, thank you for your reply.
currently my best result is using the following pipeline:
dvbbasebin ! mpegtsdemux
! vpu_dec ! mfw_v4lsink !
! mad ! alsasink
demux: using aiurdemux my pipeline doesn't start rolling... remains "freezed" waiting for can't say what. is still the issue described in https://community.freescale.com/thread/269124 present?
video decoder: yes i had success using either mpeg2dec, ffdec_mpeg2video or vpudec
audio decoder: i had troubles also trying to play a local mp3 using beepdec; mad worked fine.
luca santini wrote:
Hi Daiane, thank you for your reply.
currently my best result is using the following pipeline:
dvbbasebin ! mpegtsdemux
! vpu_dec ! mfw_v4lsink !
! mad ! alsasink
demux: using aiurdemux my pipeline doesn't start rolling... remains "freezed" waiting for can't say what. is still the issue described in https://community.freescale.com/thread/269124 present?
I don´t know, you and the link are using completely different gst-plugins versions. As I know aiurdemux is not optimized to streaming (over ethernet or something like that). As you have your mpegtsdemux I would keep it.
video decoder: yes i had success using either mpeg2dec, ffdec_mpeg2video or vpudec
audio decoder: i had troubles also trying to play a local mp3 using beepdec; mad worked fine.
My local tests (not official and not properly verified) shows that beepdec and mad has almost the same cpu load. I would keep using mad.
What´s your status right now? (I mean, I think I missed the goal here)
no more comments from customer.