[FFmpeg-devel] [PATCH 01/33] fftools/ffmpeg_mux_init: return errors from of_open() instead of aborting

"zhilizhao(赵志立)" quinkblack at foxmail.com
Thu Jul 13 15:01:48 EEST 2023



> On Jul 13, 2023, at 18:55, Anton Khirnov <anton at khirnov.net> wrote:
> 
> ---
> fftools/ffmpeg_mux_init.c | 16 ++++++++--------
> 1 file changed, 8 insertions(+), 8 deletions(-)
> 
> diff --git a/fftools/ffmpeg_mux_init.c b/fftools/ffmpeg_mux_init.c
> index 6ab541d7c5..8a3e7b98cf 100644
> --- a/fftools/ffmpeg_mux_init.c
> +++ b/fftools/ffmpeg_mux_init.c
> @@ -2380,7 +2380,7 @@ int of_open(const OptionsContext *o, const char *filename)
>         int64_t start_time = o->start_time == AV_NOPTS_VALUE ? 0 : o->start_time;
>         if (stop_time <= start_time) {
>             av_log(mux, AV_LOG_ERROR, "-to value smaller than -ss; aborting.\n");
> -            exit_program(1);
> +            return AVERROR(EINVAL);

The log message still says ‘aborting’.

>         } else {
>             recording_time = stop_time - start_time;
>         }
> @@ -2401,7 +2401,7 @@ int of_open(const OptionsContext *o, const char *filename)
>     if (!oc) {
>         av_log(mux, AV_LOG_FATAL, "Error initializing the muxer for %s: %s\n",
>                filename, av_err2str(err));
> -        exit_program(1);
> +        return err;
>     }
>     mux->fc = oc;
> 
> @@ -2437,7 +2437,7 @@ int of_open(const OptionsContext *o, const char *filename)
>                "Output filename '%s' does not contain a numeric pattern like "
>                "'%%d', which is required by output format '%s'.\n",
>                oc->url, oc->oformat->name);
> -        exit_program(1);
> +        return AVERROR(EINVAL);
>     }
> 
>     if (!(oc->oformat->flags & AVFMT_NOFILE)) {
> @@ -2450,7 +2450,7 @@ int of_open(const OptionsContext *o, const char *filename)
>                               &mux->opts)) < 0) {
>             av_log(mux, AV_LOG_FATAL, "Error opening output %s: %s\n",
>                    filename, av_err2str(err));
> -            exit_program(1);
> +            return err;
>         }
>     } else if (strcmp(oc->oformat->name, "image2")==0 && !av_filename_number_test(filename))
>         assert_file_overwrite(filename);
> @@ -2469,7 +2469,7 @@ int of_open(const OptionsContext *o, const char *filename)
>     err = set_dispositions(mux, o);
>     if (err < 0) {
>         av_log(mux, AV_LOG_FATAL, "Error setting output stream dispositions\n");
> -        exit_program(1);
> +        return err;
>     }
> 
>     // parse forced keyframe specifications;
> @@ -2477,13 +2477,13 @@ int of_open(const OptionsContext *o, const char *filename)
>     err = process_forced_keyframes(mux, o);
>     if (err < 0) {
>         av_log(mux, AV_LOG_FATAL, "Error processing forced keyframes\n");
> -        exit_program(1);
> +        return err;
>     }
> 
>     err = setup_sync_queues(mux, oc, o->shortest_buf_duration * AV_TIME_BASE);
>     if (err < 0) {
>         av_log(mux, AV_LOG_FATAL, "Error setting up output sync queues\n");
> -        exit_program(1);
> +        return err;
>     }
> 
>     of->url        = filename;
> @@ -2500,7 +2500,7 @@ int of_open(const OptionsContext *o, const char *filename)
> 
>         err = init_output_stream_nofilter(ost);
>         if (err < 0)
> -            report_and_exit(err);
> +            return err;
>     }
> 
>     /* write the header for files with no streams */
> -- 
> 2.40.1
> 
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
> 
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request at ffmpeg.org with subject "unsubscribe".



More information about the ffmpeg-devel mailing list