You've already forked FFmpeg
							
							
				mirror of
				https://github.com/FFmpeg/FFmpeg.git
				synced 2025-10-30 23:18:11 +02:00 
			
		
		
		
	ffmpeg_opt: Do not overwrite output if there is no input
Fixes Ticket4254 Reviewed-by: Nicolas George <george@nsup.org> Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
		
							
								
								
									
										15
									
								
								ffmpeg_opt.c
									
									
									
									
									
								
							
							
						
						
									
										15
									
								
								ffmpeg_opt.c
									
									
									
									
									
								
							| @@ -110,6 +110,7 @@ static int no_file_overwrite  = 0; | ||||
| static int do_psnr            = 0; | ||||
| static int input_sync; | ||||
| static int override_ffserver  = 0; | ||||
| static int input_stream_potentially_available = 0; | ||||
|  | ||||
| static void uninit_options(OptionsContext *o) | ||||
| { | ||||
| @@ -1008,6 +1009,8 @@ static int open_input_file(OptionsContext *o, const char *filename) | ||||
|         av_dict_free(&opts[i]); | ||||
|     av_freep(&opts); | ||||
|  | ||||
|     input_stream_potentially_available = 1; | ||||
|  | ||||
|     return 0; | ||||
| } | ||||
|  | ||||
| @@ -2104,6 +2107,12 @@ loop_end: | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     if (!(oc->oformat->flags & AVFMT_NOSTREAMS) && !input_stream_potentially_available) { | ||||
|         av_log(NULL, AV_LOG_ERROR, | ||||
|                "No input streams but output needs an input stream\n"); | ||||
|         exit_program(1); | ||||
|     } | ||||
|  | ||||
|     if (!(oc->oformat->flags & AVFMT_NOFILE)) { | ||||
|         /* test if it already exists to avoid losing precious files */ | ||||
|         assert_file_overwrite(filename); | ||||
| @@ -2608,6 +2617,9 @@ static int opt_filter_complex(void *optctx, const char *opt, const char *arg) | ||||
|     filtergraphs[nb_filtergraphs - 1]->graph_desc = av_strdup(arg); | ||||
|     if (!filtergraphs[nb_filtergraphs - 1]->graph_desc) | ||||
|         return AVERROR(ENOMEM); | ||||
|  | ||||
|     input_stream_potentially_available = 1; | ||||
|  | ||||
|     return 0; | ||||
| } | ||||
|  | ||||
| @@ -2622,6 +2634,9 @@ static int opt_filter_complex_script(void *optctx, const char *opt, const char * | ||||
|         return AVERROR(ENOMEM); | ||||
|     filtergraphs[nb_filtergraphs - 1]->index      = nb_filtergraphs - 1; | ||||
|     filtergraphs[nb_filtergraphs - 1]->graph_desc = graph_desc; | ||||
|  | ||||
|     input_stream_potentially_available = 1; | ||||
|  | ||||
|     return 0; | ||||
| } | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user