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
 | 
			
		||||
 | 
			
		||||
@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
 | 
			
		||||
 | 
			
		||||
PNG image encoder.
 | 
			
		||||
 | 
			
		||||
@ -350,7 +350,7 @@ static void mpeg1_encode_sequence_header(MpegEncContext *s)
 | 
			
		||||
                                s->avctx->color_trc != AVCOL_TRC_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_bits(&s->pb, 4, 2);                         // sequence display extension
 | 
			
		||||
                put_bits(&s->pb, 3, 0);                         // video_format: 0 is components
 | 
			
		||||
@ -1123,6 +1123,10 @@ static const AVOption mpeg2_options[] = {
 | 
			
		||||
    COMMON_OPTS
 | 
			
		||||
    { "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 },
 | 
			
		||||
    { "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
 | 
			
		||||
    { NULL },
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
@ -588,6 +588,7 @@ typedef struct MpegEncContext {
 | 
			
		||||
    int q_scale_type;
 | 
			
		||||
    int intra_vlc_format;
 | 
			
		||||
    int alternate_scan;
 | 
			
		||||
    int seq_disp_ext;
 | 
			
		||||
    int repeat_first_field;
 | 
			
		||||
    int chroma_420_type;
 | 
			
		||||
    int chroma_format;
 | 
			
		||||
 | 
			
		||||
@ -30,7 +30,7 @@
 | 
			
		||||
 | 
			
		||||
#define LIBAVCODEC_VERSION_MAJOR 55
 | 
			
		||||
#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, \
 | 
			
		||||
                                               LIBAVCODEC_VERSION_MINOR, \
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user