tiomap-dev team mailing list archive
-
tiomap-dev team
-
Mailing list archive
-
Message #01839
[Bug 1024761] [NEW] Issues playing most video files on Pandaboard ES
Public bug reported:
I tested today the new multimedia-extras packages released yesterday and
I found that I can't play correctly most video files, both MPEG-4/AVI
and H.264/MP4. The most visible issue is a constant "jerkiness" of the
videos, that immediately made me think of out-of-order frames.
Playing the videos with the gst-launch pipeline:
GST_DEBUG=3 gst-launch filesrc location=filename.mp4 ! qtdemux
qtdemux0.video_00 ! h264parse ! "video/x-h264" ! ducatih264dec !
dri2videosink
showed a lot of warnings in the output:
0:00:04.421264649 8902 0x147dc60 INFO GST_ERROR_SYSTEM gstelement.c:1964:gst_element_message_full:<dri2videosink0> posting message: A lot of buffers are being dropped.
WARNING: from element /GstPipeline:pipeline0/GstDRI2VideoSink:dri2videosink0: A lot of buffers are being dropped.
Additional debug info:
gstbasesink.c(2875): gst_base_sink_is_too_late (): /GstPipeline:pipeline0/GstDRI2VideoSink:dri2videosink0:
There may be a timestamping problem, or this computer is too slow.
Disabling sync (dri2videosink sync=false) makes the messages disappear,
and the video plays smoothly again but too fast (I'd say at least 2x the
expected framerate). A mailing list message I found suggested using
fakesink to check the timestamps, and in fact running the pipeline:
GST_DEBUG=3 gst-launch -v filesrc location=filename.mp4 ! qtdemux
qtdemux0.video_00 ! h264parse ! "video/x-h264" ! ducatih264dec !
fakesink sync=true
gives this:
New clock: GstSystemClock
/GstPipeline:pipeline0/GstFakeSink:fakesink0: last-message = "chain ******* (fakesink0:sink) (774144 bytes, timestamp: 0:00:00.120000000, duration: none, offset: -1, offset_end: -1, flags: 0 ) 0xb5d10490"
/GstPipeline:pipeline0/GstFakeSink:fakesink0: last-message = "chain ******* (fakesink0:sink) (774144 bytes, timestamp: 0:00:00.160000000, duration: none, offset: -1, offset_end: -1, flags: 0 ) 0xb5d10580"
/GstPipeline:pipeline0/GstFakeSink:fakesink0: last-message = "chain ******* (fakesink0:sink) (774144 bytes, timestamp: 0:00:00.200000000, duration: none, offset: -1, offset_end: -1, flags: 0 ) 0xb5d10508"
/GstPipeline:pipeline0/GstFakeSink:fakesink0: last-message = "chain ******* (fakesink0:sink) (774144 bytes, timestamp: 0:00:00.240000000, duration: none, offset: -1, offset_end: -1, flags: 0 ) 0xb5d10580"
/GstPipeline:pipeline0/GstFakeSink:fakesink0: last-message = "chain ******* (fakesink0:sink) (774144 bytes, timestamp: 0:00:00.280000000, duration: none, offset: -1, offset_end: -1, flags: 0 ) 0xb5d105f8"
/GstPipeline:pipeline0/GstFakeSink:fakesink0: last-message = "chain ******* (fakesink0:sink) (774144 bytes, timestamp: 0:00:00.320000000, duration: none, offset: -1, offset_end: -1, flags: 0 ) 0xb5d10580"
/GstPipeline:pipeline0/GstFakeSink:fakesink0: last-message = "chain ******* (fakesink0:sink) (774144 bytes, timestamp: 0:00:00.360000000, duration: none, offset: -1, offset_end: -1, flags: 0 ) 0xb5d10670"
/GstPipeline:pipeline0/GstFakeSink:fakesink0: last-message = "chain ******* (fakesink0:sink) (774144 bytes, timestamp: 0:00:00.440000000, duration: none, offset: -1, offset_end: -1, flags: 0 ) 0xb5d10580"
/GstPipeline:pipeline0/GstFakeSink:fakesink0: last-message = "chain ******* (fakesink0:sink) (774144 bytes, timestamp: 0:00:00.400000000, duration: none, offset: -1, offset_end: -1, flags: 0 ) 0xb5d10760"
/GstPipeline:pipeline0/GstFakeSink:fakesink0: last-message = "chain ******* (fakesink0:sink) (774144 bytes, timestamp: 0:00:00.480000000, duration: none, offset: -1, offset_end: -1, flags: 0 ) 0xb5d10820"
/GstPipeline:pipeline0/GstFakeSink:fakesink0: last-message = "chain ******* (fakesink0:sink) (774144 bytes, timestamp: 0:00:00.520000000, duration: none, offset: -1, offset_end: -1, flags: 0 ) 0xb5d106e8"
/GstPipeline:pipeline0/GstFakeSink:fakesink0: last-message = "chain ******* (fakesink0:sink) (774144 bytes, timestamp: 0:00:00.600000000, duration: none, offset: -1, offset_end: -1, flags: 0 ) 0xb5d10820"
/GstPipeline:pipeline0/GstFakeSink:fakesink0: last-message = "chain ******* (fakesink0:sink) (774144 bytes, timestamp: 0:00:00.560000000, duration: none, offset: -1, offset_end: -1, flags: 0 ) 0xb5d10508"
/GstPipeline:pipeline0/GstFakeSink:fakesink0: last-message = "chain ******* (fakesink0:sink) (774144 bytes, timestamp: 0:00:00.640000000, duration: none, offset: -1, offset_end: -1, flags: 0 ) 0xb5d105f8"
/GstPipeline:pipeline0/GstFakeSink:fakesink0: last-message = "chain ******* (fakesink0:sink) (774144 bytes, timestamp: 0:00:00.680000000, duration: none, offset: -1, offset_end: -1, flags: 0 ) 0xb5d10760"
As you can see after the first few frames two out of every four frames
are swapped and this goes on for the rest of the video.
This happens with pretty much all my media files, mostly DVR recordings
(DVB-T MPEG2 TS streams directly dumped to disk) transcoded to MP4
(usually h264 high profile encoded with x264) or AVI (usually XVID or
FMP4 MPEG-4 ASP encoded with mencoder). There's another issue specific
to MPEG-4 files but I'll file another report.
The only videos that seem to work are a couple of MP4/H.264 files
downloaded from Youtube, and checking with fakesink I can see that the
timestamps increase monotonically as expected.
I'm using a new installation of Precise with the TI OMAP PPA repository
added to the APT sources. Please tell me if you need other information
or sample files.
** Affects: ubuntu-omap4-extras-multimedia
Importance: Undecided
Status: New
--
You received this bug notification because you are a member of TI OMAP
Developers, which is subscribed to ubuntu-omap4-extras-multimedia.
https://bugs.launchpad.net/bugs/1024761
Title:
Issues playing most video files on Pandaboard ES
Status in OMAP4 Ubuntu Multimedia addons:
New
Bug description:
I tested today the new multimedia-extras packages released yesterday
and I found that I can't play correctly most video files, both
MPEG-4/AVI and H.264/MP4. The most visible issue is a constant
"jerkiness" of the videos, that immediately made me think of out-of-
order frames.
Playing the videos with the gst-launch pipeline:
GST_DEBUG=3 gst-launch filesrc location=filename.mp4 ! qtdemux
qtdemux0.video_00 ! h264parse ! "video/x-h264" ! ducatih264dec !
dri2videosink
showed a lot of warnings in the output:
0:00:04.421264649 8902 0x147dc60 INFO GST_ERROR_SYSTEM gstelement.c:1964:gst_element_message_full:<dri2videosink0> posting message: A lot of buffers are being dropped.
WARNING: from element /GstPipeline:pipeline0/GstDRI2VideoSink:dri2videosink0: A lot of buffers are being dropped.
Additional debug info:
gstbasesink.c(2875): gst_base_sink_is_too_late (): /GstPipeline:pipeline0/GstDRI2VideoSink:dri2videosink0:
There may be a timestamping problem, or this computer is too slow.
Disabling sync (dri2videosink sync=false) makes the messages
disappear, and the video plays smoothly again but too fast (I'd say at
least 2x the expected framerate). A mailing list message I found
suggested using fakesink to check the timestamps, and in fact running
the pipeline:
GST_DEBUG=3 gst-launch -v filesrc location=filename.mp4 ! qtdemux
qtdemux0.video_00 ! h264parse ! "video/x-h264" ! ducatih264dec !
fakesink sync=true
gives this:
New clock: GstSystemClock
/GstPipeline:pipeline0/GstFakeSink:fakesink0: last-message = "chain ******* (fakesink0:sink) (774144 bytes, timestamp: 0:00:00.120000000, duration: none, offset: -1, offset_end: -1, flags: 0 ) 0xb5d10490"
/GstPipeline:pipeline0/GstFakeSink:fakesink0: last-message = "chain ******* (fakesink0:sink) (774144 bytes, timestamp: 0:00:00.160000000, duration: none, offset: -1, offset_end: -1, flags: 0 ) 0xb5d10580"
/GstPipeline:pipeline0/GstFakeSink:fakesink0: last-message = "chain ******* (fakesink0:sink) (774144 bytes, timestamp: 0:00:00.200000000, duration: none, offset: -1, offset_end: -1, flags: 0 ) 0xb5d10508"
/GstPipeline:pipeline0/GstFakeSink:fakesink0: last-message = "chain ******* (fakesink0:sink) (774144 bytes, timestamp: 0:00:00.240000000, duration: none, offset: -1, offset_end: -1, flags: 0 ) 0xb5d10580"
/GstPipeline:pipeline0/GstFakeSink:fakesink0: last-message = "chain ******* (fakesink0:sink) (774144 bytes, timestamp: 0:00:00.280000000, duration: none, offset: -1, offset_end: -1, flags: 0 ) 0xb5d105f8"
/GstPipeline:pipeline0/GstFakeSink:fakesink0: last-message = "chain ******* (fakesink0:sink) (774144 bytes, timestamp: 0:00:00.320000000, duration: none, offset: -1, offset_end: -1, flags: 0 ) 0xb5d10580"
/GstPipeline:pipeline0/GstFakeSink:fakesink0: last-message = "chain ******* (fakesink0:sink) (774144 bytes, timestamp: 0:00:00.360000000, duration: none, offset: -1, offset_end: -1, flags: 0 ) 0xb5d10670"
/GstPipeline:pipeline0/GstFakeSink:fakesink0: last-message = "chain ******* (fakesink0:sink) (774144 bytes, timestamp: 0:00:00.440000000, duration: none, offset: -1, offset_end: -1, flags: 0 ) 0xb5d10580"
/GstPipeline:pipeline0/GstFakeSink:fakesink0: last-message = "chain ******* (fakesink0:sink) (774144 bytes, timestamp: 0:00:00.400000000, duration: none, offset: -1, offset_end: -1, flags: 0 ) 0xb5d10760"
/GstPipeline:pipeline0/GstFakeSink:fakesink0: last-message = "chain ******* (fakesink0:sink) (774144 bytes, timestamp: 0:00:00.480000000, duration: none, offset: -1, offset_end: -1, flags: 0 ) 0xb5d10820"
/GstPipeline:pipeline0/GstFakeSink:fakesink0: last-message = "chain ******* (fakesink0:sink) (774144 bytes, timestamp: 0:00:00.520000000, duration: none, offset: -1, offset_end: -1, flags: 0 ) 0xb5d106e8"
/GstPipeline:pipeline0/GstFakeSink:fakesink0: last-message = "chain ******* (fakesink0:sink) (774144 bytes, timestamp: 0:00:00.600000000, duration: none, offset: -1, offset_end: -1, flags: 0 ) 0xb5d10820"
/GstPipeline:pipeline0/GstFakeSink:fakesink0: last-message = "chain ******* (fakesink0:sink) (774144 bytes, timestamp: 0:00:00.560000000, duration: none, offset: -1, offset_end: -1, flags: 0 ) 0xb5d10508"
/GstPipeline:pipeline0/GstFakeSink:fakesink0: last-message = "chain ******* (fakesink0:sink) (774144 bytes, timestamp: 0:00:00.640000000, duration: none, offset: -1, offset_end: -1, flags: 0 ) 0xb5d105f8"
/GstPipeline:pipeline0/GstFakeSink:fakesink0: last-message = "chain ******* (fakesink0:sink) (774144 bytes, timestamp: 0:00:00.680000000, duration: none, offset: -1, offset_end: -1, flags: 0 ) 0xb5d10760"
As you can see after the first few frames two out of every four frames
are swapped and this goes on for the rest of the video.
This happens with pretty much all my media files, mostly DVR
recordings (DVB-T MPEG2 TS streams directly dumped to disk) transcoded
to MP4 (usually h264 high profile encoded with x264) or AVI (usually
XVID or FMP4 MPEG-4 ASP encoded with mencoder). There's another issue
specific to MPEG-4 files but I'll file another report.
The only videos that seem to work are a couple of MP4/H.264 files
downloaded from Youtube, and checking with fakesink I can see that the
timestamps increase monotonically as expected.
I'm using a new installation of Precise with the TI OMAP PPA
repository added to the APT sources. Please tell me if you need other
information or sample files.
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu-omap4-extras-multimedia/+bug/1024761/+subscriptions
Follow ups
References