Merge commit '73c6ec6d659bab11ac424a4ba6ce3a56246295ee' into merge
* commit '73c6ec6d659bab11ac424a4ba6ce3a56246295ee': avconv: create simple filtergraphs earlier Merged-by: Timothy Gu <timothygu99@gmail.com>
This commit is contained in:
		
						commit
						1b04ea1a6c
					
				
							
								
								
									
										9
									
								
								ffmpeg.c
									
									
									
									
									
								
							
							
						
						
									
										9
									
								
								ffmpeg.c
									
									
									
									
									
								
							| @ -3069,11 +3069,10 @@ static int transcode_init(void) | |||||||
|                 exit_program(1); |                 exit_program(1); | ||||||
| #endif | #endif | ||||||
| 
 | 
 | ||||||
|             if (!ost->filter && |             if ((enc_ctx->codec_type == AVMEDIA_TYPE_VIDEO || | ||||||
|                 (enc_ctx->codec_type == AVMEDIA_TYPE_VIDEO || |                  enc_ctx->codec_type == AVMEDIA_TYPE_AUDIO) && | ||||||
|                  enc_ctx->codec_type == AVMEDIA_TYPE_AUDIO)) { |                  filtergraph_is_simple(ost->filter->graph)) { | ||||||
|                     FilterGraph *fg; |                     FilterGraph *fg = ost->filter->graph; | ||||||
|                     fg = init_simple_filtergraph(ist, ost); |  | ||||||
|                     if (configure_filtergraph(fg)) { |                     if (configure_filtergraph(fg)) { | ||||||
|                         av_log(NULL, AV_LOG_FATAL, "Error opening filters!\n"); |                         av_log(NULL, AV_LOG_FATAL, "Error opening filters!\n"); | ||||||
|                         exit_program(1); |                         exit_program(1); | ||||||
|  | |||||||
							
								
								
									
										2
									
								
								ffmpeg.h
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								ffmpeg.h
									
									
									
									
									
								
							| @ -574,7 +574,7 @@ int configure_filtergraph(FilterGraph *fg); | |||||||
| int configure_output_filter(FilterGraph *fg, OutputFilter *ofilter, AVFilterInOut *out); | int configure_output_filter(FilterGraph *fg, OutputFilter *ofilter, AVFilterInOut *out); | ||||||
| int ist_in_filtergraph(FilterGraph *fg, InputStream *ist); | int ist_in_filtergraph(FilterGraph *fg, InputStream *ist); | ||||||
| int filtergraph_is_simple(FilterGraph *fg); | int filtergraph_is_simple(FilterGraph *fg); | ||||||
| FilterGraph *init_simple_filtergraph(InputStream *ist, OutputStream *ost); | int init_simple_filtergraph(InputStream *ist, OutputStream *ost); | ||||||
| int init_complex_filtergraph(FilterGraph *fg); | int init_complex_filtergraph(FilterGraph *fg); | ||||||
| 
 | 
 | ||||||
| int ffmpeg_parse_options(int argc, char **argv); | int ffmpeg_parse_options(int argc, char **argv); | ||||||
|  | |||||||
| @ -193,7 +193,7 @@ DEF_CHOOSE_FORMAT(int, sample_rate, supported_samplerates, 0, | |||||||
| DEF_CHOOSE_FORMAT(uint64_t, channel_layout, channel_layouts, 0, | DEF_CHOOSE_FORMAT(uint64_t, channel_layout, channel_layouts, 0, | ||||||
|                   GET_CH_LAYOUT_NAME) |                   GET_CH_LAYOUT_NAME) | ||||||
| 
 | 
 | ||||||
| FilterGraph *init_simple_filtergraph(InputStream *ist, OutputStream *ost) | int init_simple_filtergraph(InputStream *ist, OutputStream *ost) | ||||||
| { | { | ||||||
|     FilterGraph *fg = av_mallocz(sizeof(*fg)); |     FilterGraph *fg = av_mallocz(sizeof(*fg)); | ||||||
| 
 | 
 | ||||||
| @ -221,7 +221,7 @@ FilterGraph *init_simple_filtergraph(InputStream *ist, OutputStream *ost) | |||||||
|     GROW_ARRAY(filtergraphs, nb_filtergraphs); |     GROW_ARRAY(filtergraphs, nb_filtergraphs); | ||||||
|     filtergraphs[nb_filtergraphs - 1] = fg; |     filtergraphs[nb_filtergraphs - 1] = fg; | ||||||
| 
 | 
 | ||||||
|     return fg; |     return 0; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| static void init_input_filter(FilterGraph *fg, AVFilterInOut *in) | static void init_input_filter(FilterGraph *fg, AVFilterInOut *in) | ||||||
|  | |||||||
							
								
								
									
										16
									
								
								ffmpeg_opt.c
									
									
									
									
									
								
							
							
						
						
									
										16
									
								
								ffmpeg_opt.c
									
									
									
									
									
								
							| @ -1923,7 +1923,7 @@ static int configure_complex_filters(void) | |||||||
|     int i, ret = 0; |     int i, ret = 0; | ||||||
| 
 | 
 | ||||||
|     for (i = 0; i < nb_filtergraphs; i++) |     for (i = 0; i < nb_filtergraphs; i++) | ||||||
|         if (!filtergraphs[i]->graph && |         if (!filtergraph_is_simple(filtergraphs[i]) && | ||||||
|             (ret = configure_filtergraph(filtergraphs[i])) < 0) |             (ret = configure_filtergraph(filtergraphs[i])) < 0) | ||||||
|             return ret; |             return ret; | ||||||
|     return 0; |     return 0; | ||||||
| @ -2290,7 +2290,7 @@ loop_end: | |||||||
|     } |     } | ||||||
|     av_dict_free(&unused_opts); |     av_dict_free(&unused_opts); | ||||||
| 
 | 
 | ||||||
|     /* set the encoding/decoding_needed flags */ |     /* set the encoding/decoding_needed flags and create simple filtergraphs*/ | ||||||
|     for (i = of->ost_index; i < nb_output_streams; i++) { |     for (i = of->ost_index; i < nb_output_streams; i++) { | ||||||
|         OutputStream *ost = output_streams[i]; |         OutputStream *ost = output_streams[i]; | ||||||
| 
 | 
 | ||||||
| @ -2298,6 +2298,18 @@ loop_end: | |||||||
|         if (ost->encoding_needed && ost->source_index >= 0) { |         if (ost->encoding_needed && ost->source_index >= 0) { | ||||||
|             InputStream *ist = input_streams[ost->source_index]; |             InputStream *ist = input_streams[ost->source_index]; | ||||||
|             ist->decoding_needed |= DECODING_FOR_OST; |             ist->decoding_needed |= DECODING_FOR_OST; | ||||||
|  | 
 | ||||||
|  |             if (ost->st->codec->codec_type == AVMEDIA_TYPE_VIDEO || | ||||||
|  |                 ost->st->codec->codec_type == AVMEDIA_TYPE_AUDIO) { | ||||||
|  |                 err = init_simple_filtergraph(ist, ost); | ||||||
|  |                 if (err < 0) { | ||||||
|  |                     av_log(NULL, AV_LOG_ERROR, | ||||||
|  |                            "Error initializing a simple filtergraph between streams " | ||||||
|  |                            "%d:%d->%d:%d\n", ist->file_index, ost->source_index, | ||||||
|  |                            nb_output_files - 1, ost->st->index); | ||||||
|  |                     exit_program(1); | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user