[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