[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