[gstreamer-bugs] [Bug 629165] interlace: Add telecine mode support

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Fri Sep 17 15:10:31 PDT 2010


https://bugzilla.gnome.org/show_bug.cgi?id=629165
  GStreamer | gst-plugins-bad | git

--- Comment #5 from David Schleef <ds at schleef.org> 2010-09-17 22:10:27 UTC ---
I'm going to go a little meta for a second and talk somewhat ramblingly.

There are two main concepts: the telecine/interlacing properties of the
content, and the telecine/interlacing properties of the encoding.  I use the
term "encoding" in the loose sense that includes raw video -- film content is
"encoded" to raw NTSC video using a telecine process.

So, given a base format like NTSC that describes size/framerate, etc., the
content can be described as:

  - progressive, different rate (i.e., 24 fps film content)
  - progressive, same rate (30 fps progressive video content)
  - interlaced (60 field per second video content)
  - content changing over time

The encoding for NTSC is fundamentally 60 fields per second, however, in
GstBuffers, it has the following possibilities:

  - consistent 1 field per buffer (ONEFIELD set)
  - consistent 2 fields per buffer (RFF unset, TFF set or unset consistently)
  - consistent 2/3 fields per buffer, mainly for 24 fps film (RFF, TFF set
appropriately)
  - varying number of fields per buffer (i.e., random crap)

I'm going to try to start using standard nomenclature to refer to these: 24p,
30p, 60i, varying, for the former.  1fpb, 2fpb, 23fpb, vfpb, for the latter.

Stuff on a DVD, including titles, would be "varying/60i/vfpb".  Sections of
film content on a DVD would be "24p/60i/23fpb".  HDV in 24p mode can be either
"24p/60i/23fpb" or "24p/60i/2fpb" depending on the manufacturer of the camera. 
Progressive content and encoding (e.g, internet video) would be "30p/30p" or
similar.

The original goal of invtelecine was to detect the content and convert
varying/60i/vfpb to cleaner streams: 24p/24p, 30p/30p, or 60i/60i/2fpb.  This
is different from deinterlace and interlace, which converts *the content* to a
different content format:  deinterlace converts 60i/60i/2fpb to 60p/60p, and
interlace does the reverse.  deinterlace will also convert 24p/60i/2fpb to
24p/60p, but that's not ideal.

Another thing we need is rebuffering:  24p/60i/2fpb to and from 24p/60i/23fpb. 
And then also converting 24p/24p into 24p/60i/(2fpb|23fpb).

Also, we need pattern generation for all these modes, and then fix all the
plugins to handle 1fpb/2fpb/23fpb/varying gracefully, which I doubt they
currently do.

-- 
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