From b3eacd7dec68b1d5f426c5798fbdfe27711ca449 Mon Sep 17 00:00:00 2001 From: Robert Swain Date: Tue, 17 Jan 2012 18:13:43 +0100 Subject: [PATCH] docs: interlaced video: Update docs --- docs/design/part-interlaced-video.txt | 48 ++++++++++++--------------- 1 file changed, 22 insertions(+), 26 deletions(-) diff --git a/docs/design/part-interlaced-video.txt b/docs/design/part-interlaced-video.txt index 9bd30441b2..efa889a537 100644 --- a/docs/design/part-interlaced-video.txt +++ b/docs/design/part-interlaced-video.txt @@ -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.