interlace: Add support for more telecine patterns

This commit is contained in:
Robert Swain 2010-12-27 23:21:10 +01:00 committed by Wim Taymans
parent 0fc9b0b289
commit 4513a48e8a

View file

@ -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