[Bug 687684] New: gstavviddec doesn't set top field first and repeat field flags in some cases
GStreamer (bugzilla.gnome.org)
bugzilla at gnome.org
Mon Nov 5 12:00:01 PST 2012
https://bugzilla.gnome.org/show_bug.cgi?id=687684
GStreamer | gst-libav | 1.0.2
Summary: gstavviddec doesn't set top field first and repeat
field flags in some cases
Classification: Platform
Product: GStreamer
Version: 1.0.2
OS/Version: Windows
Status: UNCONFIRMED
Severity: normal
Priority: Normal
Component: gst-libav
AssignedTo: gstreamer-bugs at lists.freedesktop.org
ReportedBy: mrubinstein at weather.com
QAContact: gstreamer-bugs at lists.freedesktop.org
GNOME version: ---
We're using avdec_mpeg2video to decode MPEG2 from a broadcast encoder. All are
content is interlaced. We find that the "top field first" and "repeat first
field" flags are not always set in the decoded buffers.
gstavviddec.c only sets GST_VIDEO_BUFFER_FLAG_TFF and GST_VIDEO_BUFFER_FLAG_RFF
when it thinks that the content is interlaced.
The code in question is in gst_ffmpegviddec_video_frame().
if (ffmpegdec->ctx_interlaced) {
/* set interlaced flags */
if (ffmpegdec->picture->repeat_pict)
GST_BUFFER_FLAG_SET (out_frame->output_buffer,
GST_VIDEO_BUFFER_FLAG_RFF);
if (ffmpegdec->picture->top_field_first)
GST_BUFFER_FLAG_SET (out_frame->output_buffer,
GST_VIDEO_BUFFER_FLAG_TFF);
if (ffmpegdec->picture->interlaced_frame)
GST_BUFFER_FLAG_SET (out_frame->output_buffer,
GST_VIDEO_BUFFER_FLAG_INTERLACED);
}
The frames in question have these variables:
progressive_sequence=0
picture_structure=3 (Frame)
progressive_frame=1
The MPEG spec. says that TFF and RFF have meaning in this case.
mpegvideo.c contains this line:
s->current_picture_ptr->f.interlaced_frame = !s->progressive_frame &&
!s->progressive_sequence;
Also, the above definition of interlaced causes our system to renegotiate
frequently.
I'm not sure if these frames should be called "interlaced" but the flags should
be set. IMHO I don't think we should renegotiate.
--
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