[gstreamer-bugs] [Bug 634759] New: [gstffmpegdec] timestamping wrong for non-reordered output decoding
GStreamer (bugzilla.gnome.org)
bugzilla at gnome.org
Sat Nov 13 07:55:33 PST 2010
https://bugzilla.gnome.org/show_bug.cgi?id=634759
GStreamer | gst-ffmpeg | git
Summary: [gstffmpegdec] timestamping wrong for non-reordered
output decoding
Classification: Desktop
Product: GStreamer
Version: git
OS/Version: Linux
Status: UNCONFIRMED
Severity: normal
Priority: Normal
Component: gst-ffmpeg
AssignedTo: gstreamer-bugs at lists.sourceforge.net
ReportedBy: bilboed at gmail.com
QAContact: gstreamer-bugs at lists.sourceforge.net
GNOME target: ---
GNOME version: ---
When provided a stream that:
* incremental timestamps coming IN
* incremental timestamps coming OUT (i.e. the reordered_opaque field coming
back from libavcodec is always increasing)
the timestamping algorithm thinks the timestamps are reordered and applies the
interpolation algorithm.
The problem is that if the incoming durations aren't correct (most visible with
asf/flv content, but can also be seen in other formats) and the interpolation
algorithms creates completely wrong timestamps.
When taking into account the reordered_out field (present but wasn't used) to
determine whether the content was *actually* reordered, the incoming timestamps
will be used.
I therefore propose the following change which takes into account both the
input and output reordering to know whether to use the interpolation algorithm:
@@ -1774,7 +1780,7 @@ gst_ffmpegdec_video_frame (GstFFMpegDec * ffmpegdec,
/* we assume DTS as input timestamps unless we see reordered input
* timestamps */
- if (!ffmpegdec->reordered_in) {
+ if (!ffmpegdec->reordered_in && ffmpegdec->reordered_out) {
/* PTS and DTS are the same for keyframes */
if (!iskeyframe && ffmpegdec->next_out != -1) {
/* interpolate all timestamps except for keyframes, FIXME, this is
--
Configure bugmail: https://bugzilla.gnome.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
You are the assignee for the bug.
More information about the Gstreamer-bugs
mailing list