mirror of https://git.ffmpeg.org/ffmpeg.git
mpeg12enc: add seq_disp_ext option for deciding when to write a sequence_display_extension
Signed-off-by: Marton Balint <cus@passwd.hu> Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
parent
66f4891e64
commit
9236f7b5a2
|
@ -2042,6 +2042,30 @@ fastest.
|
||||||
|
|
||||||
@end table
|
@end table
|
||||||
|
|
||||||
|
@section mpeg2
|
||||||
|
|
||||||
|
MPEG-2 video encoder.
|
||||||
|
|
||||||
|
@subsection Options
|
||||||
|
|
||||||
|
@table @option
|
||||||
|
@item seq_disp_ext @var{integer}
|
||||||
|
Specifies if the encoder should write a sequence_display_extension to the
|
||||||
|
output.
|
||||||
|
@table @option
|
||||||
|
@item -1
|
||||||
|
@itemx auto
|
||||||
|
Decide automatically to write it or not (this is the default) by checking if
|
||||||
|
the data to be written is different from the default or unspecified values.
|
||||||
|
@item 0
|
||||||
|
@itemx never
|
||||||
|
Never write it.
|
||||||
|
@item 1
|
||||||
|
@itemx always
|
||||||
|
Always write it.
|
||||||
|
@end table
|
||||||
|
@end table
|
||||||
|
|
||||||
@section png
|
@section png
|
||||||
|
|
||||||
PNG image encoder.
|
PNG image encoder.
|
||||||
|
|
|
@ -350,7 +350,7 @@ static void mpeg1_encode_sequence_header(MpegEncContext *s)
|
||||||
s->avctx->color_trc != AVCOL_TRC_UNSPECIFIED ||
|
s->avctx->color_trc != AVCOL_TRC_UNSPECIFIED ||
|
||||||
s->avctx->colorspace != AVCOL_SPC_UNSPECIFIED);
|
s->avctx->colorspace != AVCOL_SPC_UNSPECIFIED);
|
||||||
|
|
||||||
if (use_seq_disp_ext) {
|
if (s->seq_disp_ext == 1 || (s->seq_disp_ext == -1 && use_seq_disp_ext)) {
|
||||||
put_header(s, EXT_START_CODE);
|
put_header(s, EXT_START_CODE);
|
||||||
put_bits(&s->pb, 4, 2); // sequence display extension
|
put_bits(&s->pb, 4, 2); // sequence display extension
|
||||||
put_bits(&s->pb, 3, 0); // video_format: 0 is components
|
put_bits(&s->pb, 3, 0); // video_format: 0 is components
|
||||||
|
@ -1123,6 +1123,10 @@ static const AVOption mpeg2_options[] = {
|
||||||
COMMON_OPTS
|
COMMON_OPTS
|
||||||
{ "non_linear_quant", "Use nonlinear quantizer.", OFFSET(q_scale_type), AV_OPT_TYPE_INT, { .i64 = 0 }, 0, 1, VE },
|
{ "non_linear_quant", "Use nonlinear quantizer.", OFFSET(q_scale_type), AV_OPT_TYPE_INT, { .i64 = 0 }, 0, 1, VE },
|
||||||
{ "alternate_scan", "Enable alternate scantable.", OFFSET(alternate_scan), AV_OPT_TYPE_INT, { .i64 = 0 }, 0, 1, VE },
|
{ "alternate_scan", "Enable alternate scantable.", OFFSET(alternate_scan), AV_OPT_TYPE_INT, { .i64 = 0 }, 0, 1, VE },
|
||||||
|
{ "seq_disp_ext", "Write sequence_display_extension blocks.", OFFSET(seq_disp_ext), AV_OPT_TYPE_INT, { .i64 = -1 }, -1, 1, VE, "seq_disp_ext" },
|
||||||
|
{ "auto", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = -1}, 0, 0, VE, "seq_disp_ext" },
|
||||||
|
{ "never", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = 0 }, 0, 0, VE, "seq_disp_ext" },
|
||||||
|
{ "always", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = 1 }, 0, 0, VE, "seq_disp_ext" },
|
||||||
FF_MPV_COMMON_OPTS
|
FF_MPV_COMMON_OPTS
|
||||||
{ NULL },
|
{ NULL },
|
||||||
};
|
};
|
||||||
|
|
|
@ -588,6 +588,7 @@ typedef struct MpegEncContext {
|
||||||
int q_scale_type;
|
int q_scale_type;
|
||||||
int intra_vlc_format;
|
int intra_vlc_format;
|
||||||
int alternate_scan;
|
int alternate_scan;
|
||||||
|
int seq_disp_ext;
|
||||||
int repeat_first_field;
|
int repeat_first_field;
|
||||||
int chroma_420_type;
|
int chroma_420_type;
|
||||||
int chroma_format;
|
int chroma_format;
|
||||||
|
|
|
@ -30,7 +30,7 @@
|
||||||
|
|
||||||
#define LIBAVCODEC_VERSION_MAJOR 55
|
#define LIBAVCODEC_VERSION_MAJOR 55
|
||||||
#define LIBAVCODEC_VERSION_MINOR 66
|
#define LIBAVCODEC_VERSION_MINOR 66
|
||||||
#define LIBAVCODEC_VERSION_MICRO 100
|
#define LIBAVCODEC_VERSION_MICRO 101
|
||||||
|
|
||||||
#define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \
|
#define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \
|
||||||
LIBAVCODEC_VERSION_MINOR, \
|
LIBAVCODEC_VERSION_MINOR, \
|
||||||
|
|
Loading…
Reference in New Issue