summaryrefslogtreecommitdiff
path: root/gst/interlace
diff options
context:
space:
mode:
authorRobert Swain <robert.swain@collabora.co.uk>2010-12-27 23:21:10 +0100
committerWim Taymans <wim.taymans@collabora.co.uk>2013-02-05 13:40:39 +0100
commit4513a48e8af2807398983390bd60f59053231ce5 (patch)
treeb2f5634b98b502e2ba1dde82aaeec325a8c8d474 /gst/interlace
parent0fc9b0b289cb7c886df65c950df56ee1ae27bbff (diff)
downloadgstreamer-plugins-bad-4513a48e8af2807398983390bd60f59053231ce5.tar.gz
interlace: Add support for more telecine patterns
Diffstat (limited to 'gst/interlace')
-rw-r--r--gst/interlace/gstinterlace.c30
1 files changed, 28 insertions, 2 deletions
diff --git a/gst/interlace/gstinterlace.c b/gst/interlace/gstinterlace.c
index 6e2978468..81251a03b 100644
--- a/gst/interlace/gstinterlace.c
+++ b/gst/interlace/gstinterlace.c
@@ -126,7 +126,13 @@ typedef enum
GST_INTERLACE_PATTERN_2_2,
GST_INTERLACE_PATTERN_2_3,
GST_INTERLACE_PATTERN_2_3_3_2,
- GST_INTERLACE_PATTERN_EURO
+ GST_INTERLACE_PATTERN_EURO,
+ GST_INTERLACE_PATTERN_3_4R3,
+ GST_INTERLACE_PATTERN_3R7_4,
+ GST_INTERLACE_PATTERN_3_3_4,
+ GST_INTERLACE_PATTERN_3_3,
+ GST_INTERLACE_PATTERN_3_2R4,
+ GST_INTERLACE_PATTERN_1_2R4,
} GstInterlacePattern;
#define GST_INTERLACE_PATTERN (gst_interlace_pattern_get_type ())
@@ -142,6 +148,14 @@ gst_interlace_pattern_get_type (void)
"2:3:3:2"},
{GST_INTERLACE_PATTERN_EURO, "Euro 2-11:3 (e.g. 24p -> 50i telecine)",
"2-11:3"},
+ {GST_INTERLACE_PATTERN_3_4R3, "3:4-3 (e.g. 16p -> 60i telecine)", "3:4-3"},
+ {GST_INTERLACE_PATTERN_3R7_4, "3-7:4 (e.g. 16p -> 50i telecine)", "3-7:4"},
+ {GST_INTERLACE_PATTERN_3_3_4, "3:3:4 (e.g. 18p -> 60i telecine)", "3:3:4"},
+ {GST_INTERLACE_PATTERN_3_3, "3:3 (e.g. 20p -> 60i telecine)", "3:3"},
+ {GST_INTERLACE_PATTERN_3_2R4, "3:2-4 (e.g. 27.5p -> 60i telecine)",
+ "3:2-4"},
+ {GST_INTERLACE_PATTERN_1_2R4, "1:2-4 (e.g. 27.5p -> 50i telecine)",
+ "1:2-4"},
{0, NULL, NULL}
};
@@ -301,7 +315,19 @@ static const PulldownFormat formats[] = {
{"2:3", 5, 4, {2, 3,}},
{"2:3:3:2", 5, 4, {2, 3, 3, 2,}},
/* 24p -> 50i Euro pulldown */
- {"2-11:3", 25, 24, {2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3,}}
+ {"2-11:3", 25, 24, {2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3,}},
+ /* 16p (16000/1001) -> 60i (NTSC 30000/1001) */
+ {"3:4-3", 15, 8, {3, 4, 4, 4,}},
+ /* 16p -> 50i (PAL) */
+ {"3-7:4", 25, 16, {3, 3, 3, 3, 3, 3, 3, 4,}},
+ /* 18p to NTSC 60i */
+ {"3:3:4", 5, 3, {3, 3, 4,}},
+ /* 20p to NTSC 60i */
+ {"3:3", 3, 2, {3, 3,}},
+ /* 27.5 to NTSC 60i */
+ {"3:2-4", 11, 10, {3, 2, 2, 2, 2,}},
+ /* 27.5 to PAL 50i */
+ {"1:2-4", 9, 10, {1, 2, 2, 2, 2,}},
};
static void