[FFmpeg-devel] [PATCH 1/2] ffmpeg: Separated check_init_output_file() from init_output_stream()
Purpose: Separated the call to check_init_output_file() from init_output_stream(), and now check_init_output_file() is called by the parent after calling init_output_stream(). Additionally, moved some static function declarations to the beginning of the file. Signed-off-by: Aaron Levinson--- ffmpeg.c | 27 +++ 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/ffmpeg.c b/ffmpeg.c index e798d92277..3cd45ba665 100644 --- a/ffmpeg.c +++ b/ffmpeg.c @@ -141,6 +141,9 @@ AVIOContext *progress_avio = NULL; static uint8_t *subtitle_out; +static int init_output_stream(OutputStream *ost, char *error, int error_len); +static int check_init_output_file(OutputFile *of, int file_index); + InputStream **input_streams = NULL; intnb_input_streams = 0; InputFile **input_files = NULL; @@ -1400,8 +1403,6 @@ static void do_video_stats(OutputStream *ost, int frame_size) } } -static int init_output_stream(OutputStream *ost, char *error, int error_len); - static void finish_output_stream(OutputStream *ost) { OutputFile *of = output_files[ost->file_index]; @@ -1446,6 +1447,10 @@ static int reap_filters(int flush) ost->file_index, ost->index, error); exit_program(1); } + +ret = check_init_output_file(of, ost->file_index); +if (ret < 0) +exit_program(1); } if (!ost->filtered_frame && !(ost->filtered_frame = av_frame_alloc())) { @@ -1894,6 +1899,10 @@ static void flush_encoders(void) ost->file_index, ost->index, error); exit_program(1); } + +ret = check_init_output_file(of, ost->file_index); +if (ret < 0) +exit_program(1); } if (enc->codec_type == AVMEDIA_TYPE_AUDIO && enc->frame_size <= 1) @@ -3564,10 +3573,6 @@ static int init_output_stream(OutputStream *ost, char *error, int error_len) ost->initialized = 1; -ret = check_init_output_file(output_files[ost->file_index], ost->file_index); -if (ret < 0) -return ret; - return ret; } @@ -3629,11 +3634,17 @@ static int transcode_init(void) /* open each encoder */ for (i = 0; i < nb_output_streams; i++) { +ost = output_streams[i]; // skip streams fed from filtergraphs until we have a frame for them -if (output_streams[i]->filter) +if (ost->filter) continue; -ret = init_output_stream(output_streams[i], error, sizeof(error)); +ret = init_output_stream(ost, error, sizeof(error)); +if (ret < 0) +goto dump_format; + +ret = check_init_output_file(output_files[ost->file_index], + ost->file_index); if (ret < 0) goto dump_format; } -- 2.12.2.windows.2 ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
Re: [FFmpeg-devel] [PATCH 1/2] ffmpeg: Separated check_init_output_file() from, init_output_stream()
Please disregard--I messed up the subject. I'll send a new one. Aaron Levinson On 5/12/2017 1:22 PM, Aaron Levinson wrote: Purpose: Separated the call to check_init_output_file() from init_output_stream(), and now check_init_output_file() is called by the parent after calling init_output_stream(). Additionally, moved some static function declarations to the beginning of the file. Signed-off-by: Aaron Levinson--- ffmpeg.c | 27 +++ 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/ffmpeg.c b/ffmpeg.c index e798d92277..3cd45ba665 100644 --- a/ffmpeg.c +++ b/ffmpeg.c @@ -141,6 +141,9 @@ AVIOContext *progress_avio = NULL; static uint8_t *subtitle_out; +static int init_output_stream(OutputStream *ost, char *error, int error_len); +static int check_init_output_file(OutputFile *of, int file_index); + InputStream **input_streams = NULL; intnb_input_streams = 0; InputFile **input_files = NULL; @@ -1400,8 +1403,6 @@ static void do_video_stats(OutputStream *ost, int frame_size) } } -static int init_output_stream(OutputStream *ost, char *error, int error_len); - static void finish_output_stream(OutputStream *ost) { OutputFile *of = output_files[ost->file_index]; @@ -1446,6 +1447,10 @@ static int reap_filters(int flush) ost->file_index, ost->index, error); exit_program(1); } + +ret = check_init_output_file(of, ost->file_index); +if (ret < 0) +exit_program(1); } if (!ost->filtered_frame && !(ost->filtered_frame = av_frame_alloc())) { @@ -1894,6 +1899,10 @@ static void flush_encoders(void) ost->file_index, ost->index, error); exit_program(1); } + +ret = check_init_output_file(of, ost->file_index); +if (ret < 0) +exit_program(1); } if (enc->codec_type == AVMEDIA_TYPE_AUDIO && enc->frame_size <= 1) @@ -3564,10 +3573,6 @@ static int init_output_stream(OutputStream *ost, char *error, int error_len) ost->initialized = 1; -ret = check_init_output_file(output_files[ost->file_index], ost->file_index); -if (ret < 0) -return ret; - return ret; } @@ -3629,11 +3634,17 @@ static int transcode_init(void) /* open each encoder */ for (i = 0; i < nb_output_streams; i++) { +ost = output_streams[i]; // skip streams fed from filtergraphs until we have a frame for them -if (output_streams[i]->filter) +if (ost->filter) continue; -ret = init_output_stream(output_streams[i], error, sizeof(error)); +ret = init_output_stream(ost, error, sizeof(error)); +if (ret < 0) +goto dump_format; + +ret = check_init_output_file(output_files[ost->file_index], + ost->file_index); if (ret < 0) goto dump_format; } ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
[FFmpeg-devel] [PATCH 1/2] ffmpeg: Separated check_init_output_file() from, init_output_stream()
Purpose: Separated the call to check_init_output_file() from init_output_stream(), and now check_init_output_file() is called by the parent after calling init_output_stream(). Additionally, moved some static function declarations to the beginning of the file. Signed-off-by: Aaron Levinson--- ffmpeg.c | 27 +++ 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/ffmpeg.c b/ffmpeg.c index e798d92277..3cd45ba665 100644 --- a/ffmpeg.c +++ b/ffmpeg.c @@ -141,6 +141,9 @@ AVIOContext *progress_avio = NULL; static uint8_t *subtitle_out; +static int init_output_stream(OutputStream *ost, char *error, int error_len); +static int check_init_output_file(OutputFile *of, int file_index); + InputStream **input_streams = NULL; intnb_input_streams = 0; InputFile **input_files = NULL; @@ -1400,8 +1403,6 @@ static void do_video_stats(OutputStream *ost, int frame_size) } } -static int init_output_stream(OutputStream *ost, char *error, int error_len); - static void finish_output_stream(OutputStream *ost) { OutputFile *of = output_files[ost->file_index]; @@ -1446,6 +1447,10 @@ static int reap_filters(int flush) ost->file_index, ost->index, error); exit_program(1); } + +ret = check_init_output_file(of, ost->file_index); +if (ret < 0) +exit_program(1); } if (!ost->filtered_frame && !(ost->filtered_frame = av_frame_alloc())) { @@ -1894,6 +1899,10 @@ static void flush_encoders(void) ost->file_index, ost->index, error); exit_program(1); } + +ret = check_init_output_file(of, ost->file_index); +if (ret < 0) +exit_program(1); } if (enc->codec_type == AVMEDIA_TYPE_AUDIO && enc->frame_size <= 1) @@ -3564,10 +3573,6 @@ static int init_output_stream(OutputStream *ost, char *error, int error_len) ost->initialized = 1; -ret = check_init_output_file(output_files[ost->file_index], ost->file_index); -if (ret < 0) -return ret; - return ret; } @@ -3629,11 +3634,17 @@ static int transcode_init(void) /* open each encoder */ for (i = 0; i < nb_output_streams; i++) { +ost = output_streams[i]; // skip streams fed from filtergraphs until we have a frame for them -if (output_streams[i]->filter) +if (ost->filter) continue; -ret = init_output_stream(output_streams[i], error, sizeof(error)); +ret = init_output_stream(ost, error, sizeof(error)); +if (ret < 0) +goto dump_format; + +ret = check_init_output_file(output_files[ost->file_index], + ost->file_index); if (ret < 0) goto dump_format; } -- 2.12.2.windows.2 ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel