mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-18 07:47:17 +00:00
docs: interlaced video: Update docs
This commit is contained in:
parent
8dcb565221
commit
b3eacd7dec
1 changed files with 22 additions and 26 deletions
|
@ -1,5 +1,3 @@
|
|||
** outdated **
|
||||
|
||||
Interlaced Video
|
||||
================
|
||||
|
||||
|
@ -22,15 +20,14 @@ Possible states:
|
|||
- Three fields - this should be a progressive buffer with a repeated 'first'
|
||||
field that can be used for telecine pulldown
|
||||
|
||||
Note: it can be seen that the different between the plain interlaced and
|
||||
Note: It can be seen that the difference between the plain interlaced and
|
||||
telecine states is that in the telecine state, buffers containing two fields may
|
||||
be progressive.
|
||||
|
||||
Tools for identification:
|
||||
- Caps
|
||||
- interlaced - boolean
|
||||
- interlacing-method - string - "unknown"/"telecine"
|
||||
- Flags - GST_VIDEO_BUFFER_...
|
||||
- interlace-mode - string - "progressive"/"interleaved"/"mixed"
|
||||
- Flags - GST_VIDEO_FLAG_...
|
||||
- TFF
|
||||
- RFF
|
||||
- ONEFIELD
|
||||
|
@ -47,42 +44,41 @@ different states nor are they necessarily required nor make sense in all cases.
|
|||
Progressive
|
||||
...........
|
||||
|
||||
If the caps have no interlaced field, or have interlaced=false, then the buffer
|
||||
is progressive. Note the possibility for progressive buffers in telecine streams
|
||||
as well.
|
||||
If the caps have no interlace-mode field on a source pad, or have
|
||||
interlace-mode="progressive", then the buffer is progressive. The lack of the
|
||||
interlace-mode field on a sink pad means that the element is not concerned
|
||||
about the mode and can handle all. Note the possibility for progressive buffers
|
||||
in telecine streams as well.
|
||||
|
||||
|
||||
Plain Interlaced
|
||||
................
|
||||
|
||||
If the caps have interlaced=true and either do not contain the
|
||||
interlacing-method field or contain interlacing-method=unknown, then the buffer
|
||||
is plain interlaced.
|
||||
If the caps have interlace-mode="interleaved" or "fields", then the buffer is
|
||||
plain interlaced.
|
||||
|
||||
GST_VIDEO_BUFFER_TFF indicates whether the top or bottom field is to be
|
||||
GST_VIDEO_FLAG_TFF indicates whether the top or bottom field is to be
|
||||
displayed first. The timestamp on the buffer corresponds to the first field.
|
||||
(FIXME - is the duration of the buffer the duration of both fields; each field's
|
||||
duration is half the buffer duration)
|
||||
|
||||
GST_VIDEO_BUFFER_RFF indicates that the first field (indicated by the TFF flag)
|
||||
GST_VIDEO_FLAG_RFF indicates that the first field (indicated by the TFF flag)
|
||||
should be repeated. This is generally only used for telecine purposes but as the
|
||||
telecine state was added long after the interlaced state was added and defined,
|
||||
this flag remains valid for plain interlaced buffers.
|
||||
|
||||
GST_VIDEO_BUFFER_ONEFIELD means that only the field indicated through the TFF
|
||||
GST_VIDEO_FLAG_ONEFIELD means that only the field indicated through the TFF
|
||||
flag is to be used. The other field should be ignored.
|
||||
|
||||
|
||||
Telecine
|
||||
........
|
||||
|
||||
If the caps have interlaced=true and interlacing-method=telecine then the
|
||||
buffers are in some form of telecine state.
|
||||
If the caps have interlace-mode=mixed then the buffers are in some form of
|
||||
telecine state.
|
||||
|
||||
The TFF and ONEFIELD flags have the same semantics as for the plain interlaced
|
||||
state.
|
||||
|
||||
GST_VIDEO_BUFFER_RFF in the telecine state indicates that the buffer contains
|
||||
GST_VIDEO_FLAG_RFF in the telecine state indicates that the buffer contains
|
||||
only repeated fields that are present in other buffers and are as such
|
||||
unneeded. For example, in a sequence of three telecined frames, we might have:
|
||||
|
||||
|
@ -91,11 +87,11 @@ AtAb AtBb BtBb
|
|||
In this situation, we only need the first and third buffers as the second
|
||||
buffer contains fields present in the first and third.
|
||||
|
||||
The telecine state require one additional flag to be able to identify
|
||||
The telecine state requires one additional flag to be able to identify
|
||||
progressive buffers.
|
||||
|
||||
GST_VIDEO_BUFFER_PROGRESSIVE means that the buffer containing two fields is a
|
||||
progressive frame. The implication is that if this flag is not set, the buffer
|
||||
is an 'interlaced' or 'mixed' buffer that contains two fields that, when
|
||||
combined with fields from adjacent buffers, allow reconstruction of progressive
|
||||
frames.
|
||||
The presence of the GST_VIDEO_FLAG_INTERLACED means that the buffer is an
|
||||
'interlaced' or 'mixed' buffer that contains two fields that, when combined
|
||||
with fields from adjacent buffers, allow reconstruction of progressive frames.
|
||||
The absence of the flag implies the buffer containing two fields is a
|
||||
progressive frame.
|
||||
|
|
Loading…
Reference in a new issue