ffmpeg: add the -canvas_size option.
Allows, amongst other things, to override the size guessed by the sub2video hack. Note: the -s option could have more or less the same semantic, but it receives a special treatment by the options system.
This commit is contained in:
		
							
								
								
									
										12
									
								
								ffmpeg_opt.c
									
									
									
									
									
								
							
							
						
						
									
										12
									
								
								ffmpeg_opt.c
									
									
									
									
									
								
							@@ -617,11 +617,19 @@ static void add_input_streams(OptionsContext *o, AVFormatContext *ic)
 | 
			
		||||
 | 
			
		||||
            break;
 | 
			
		||||
        case AVMEDIA_TYPE_DATA:
 | 
			
		||||
        case AVMEDIA_TYPE_SUBTITLE:
 | 
			
		||||
        case AVMEDIA_TYPE_SUBTITLE: {
 | 
			
		||||
            char *canvas_size = NULL;
 | 
			
		||||
            if(!ist->dec)
 | 
			
		||||
                ist->dec = avcodec_find_decoder(dec->codec_id);
 | 
			
		||||
            MATCH_PER_STREAM_OPT(fix_sub_duration, i, ist->fix_sub_duration, ic, st);
 | 
			
		||||
            MATCH_PER_STREAM_OPT(canvas_sizes, str, canvas_size, ic, st);
 | 
			
		||||
            if (canvas_size &&
 | 
			
		||||
                av_parse_video_size(&dec->width, &dec->height, canvas_size) < 0) {
 | 
			
		||||
                av_log(NULL, AV_LOG_FATAL, "Invalid canvas size: %s.\n", canvas_size);
 | 
			
		||||
                exit(1);
 | 
			
		||||
            }
 | 
			
		||||
            break;
 | 
			
		||||
        }
 | 
			
		||||
        case AVMEDIA_TYPE_ATTACHMENT:
 | 
			
		||||
        case AVMEDIA_TYPE_UNKNOWN:
 | 
			
		||||
            break;
 | 
			
		||||
@@ -2593,6 +2601,8 @@ const OptionDef options[] = {
 | 
			
		||||
        , "force subtitle tag/fourcc", "fourcc/tag" },
 | 
			
		||||
    { "fix_sub_duration", OPT_BOOL | OPT_EXPERT | OPT_SUBTITLE | OPT_SPEC, { .off = OFFSET(fix_sub_duration) },
 | 
			
		||||
        "fix subtitles duration" },
 | 
			
		||||
    { "canvas_size", OPT_SUBTITLE | HAS_ARG | OPT_STRING | OPT_SPEC, { .off = OFFSET(canvas_sizes) },
 | 
			
		||||
        "set canvas size (WxH or abbreviation)", "size" },
 | 
			
		||||
 | 
			
		||||
    /* grab options */
 | 
			
		||||
    { "vc", HAS_ARG | OPT_EXPERT | OPT_VIDEO, { .func_arg = opt_video_channel },
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user