summaryrefslogtreecommitdiff
path: root/gst/interlace/gstinterlace.c
diff options
context:
space:
mode:
Diffstat (limited to 'gst/interlace/gstinterlace.c')
-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