[FFmpeg-devel] [PATCH] ffmpeg: default hwaccel_output_format to cuda when hwaccel is cuvid
James Almer
jamrial at gmail.com
Sat Mar 7 17:20:09 EET 2020
On 3/7/2020 9:27 AM, Timo Rothenpieler wrote:
> This ensures old commandlines using -hwaccel cuvid don't break due to
> the recent removal of the the cuvid-specific hwaccel bringup.
> ---
> fftools/ffmpeg_opt.c | 31 +++++++++++++++++++------------
> 1 file changed, 19 insertions(+), 12 deletions(-)
>
> diff --git a/fftools/ffmpeg_opt.c b/fftools/ffmpeg_opt.c
> index 1b721c4954..043919faeb 100644
> --- a/fftools/ffmpeg_opt.c
> +++ b/fftools/ffmpeg_opt.c
> @@ -817,6 +817,25 @@ static void add_input_streams(OptionsContext *o, AVFormatContext *ic)
> MATCH_PER_STREAM_OPT(top_field_first, i, ist->top_field_first, ic, st);
>
> MATCH_PER_STREAM_OPT(hwaccels, str, hwaccel, ic, st);
> + MATCH_PER_STREAM_OPT(hwaccel_output_formats, str,
> + hwaccel_output_format, ic, st);
> +
> + if (!hwaccel_output_format && hwaccel && !strcmp(hwaccel, "cuvid")) {
> + av_log(NULL, AV_LOG_WARNING,
> + "WARNING: defaulting hwaccel_output_format to cuda for compatibility "
> + "with old commandlines. This behaviour is DEPRECATED and will be removed "
> + "in the future. Please explicitly set \"-hwaccel_output_format cuda\".\n");
So deprecating only the forced output format and leaving the alias alone?
LGTM either way.
> + ist->hwaccel_output_format = AV_PIX_FMT_CUDA;
> + } else if (hwaccel_output_format) {
> + ist->hwaccel_output_format = av_get_pix_fmt(hwaccel_output_format);
> + if (ist->hwaccel_output_format == AV_PIX_FMT_NONE) {
> + av_log(NULL, AV_LOG_FATAL, "Unrecognised hwaccel output "
> + "format: %s", hwaccel_output_format);
> + }
> + } else {
> + ist->hwaccel_output_format = AV_PIX_FMT_NONE;
> + }
> +
> if (hwaccel) {
> // The NVDEC hwaccels use a CUDA device, so remap the name here.
> if (!strcmp(hwaccel, "nvdec") || !strcmp(hwaccel, "cuvid"))
> @@ -868,18 +887,6 @@ static void add_input_streams(OptionsContext *o, AVFormatContext *ic)
> exit_program(1);
> }
>
> - MATCH_PER_STREAM_OPT(hwaccel_output_formats, str,
> - hwaccel_output_format, ic, st);
> - if (hwaccel_output_format) {
> - ist->hwaccel_output_format = av_get_pix_fmt(hwaccel_output_format);
> - if (ist->hwaccel_output_format == AV_PIX_FMT_NONE) {
> - av_log(NULL, AV_LOG_FATAL, "Unrecognised hwaccel output "
> - "format: %s", hwaccel_output_format);
> - }
> - } else {
> - ist->hwaccel_output_format = AV_PIX_FMT_NONE;
> - }
> -
> ist->hwaccel_pix_fmt = AV_PIX_FMT_NONE;
>
> break;
>
More information about the ffmpeg-devel
mailing list