From patchwork Thu Feb 25 14:05:02 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 25985 Return-Path: X-Original-To: patchwork@ffaux-bg.ffmpeg.org Delivered-To: patchwork@ffaux-bg.ffmpeg.org Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by ffaux.localdomain (Postfix) with ESMTP id F32D544A8D8 for ; Thu, 25 Feb 2021 16:05:19 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id B89CC689A63; Thu, 25 Feb 2021 16:05:19 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wr1-f42.google.com (mail-wr1-f42.google.com [209.85.221.42]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 70761688126 for ; Thu, 25 Feb 2021 16:05:13 +0200 (EET) Received: by mail-wr1-f42.google.com with SMTP id h98so5343110wrh.11 for ; Thu, 25 Feb 2021 06:05:13 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=sUrKrtP6frK2SgJahcLg3ydsyLaOKLawOqCbGKPYFTA=; b=uTcSpAFunNRQTTW9tBZ+iGPk15NxWkEMSXUZF7Lc4PhgBcXRJYmA4VDsrThVOUL35t lSoQ7w6HefVhwF1fhk9sf3VQIlQAeCjfuT8OtsJNRS4Ryy3Qj+1oCtueMSLSrdZAcDye ejKwu9RQ6kObAQ5BuNN3QLU+jjtH4u75ERVmVF/Dqnc08F6h90ckKzcod/nzg7dAdlcl vLtNZ2/tEjSW7BxtVk9YQRj1kl420bAgbWwDuxy1TtE2755K8+cBCs6EeGiRdWvKHrH3 KnBKRhiiCmlN2oYBcXK6ozHDwuggaKuOy5oAzM2ZEE+OXzPyhu636zlmFp4BMEyp8cmB Bgtg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=sUrKrtP6frK2SgJahcLg3ydsyLaOKLawOqCbGKPYFTA=; b=GfW0+8BanQ83o2NsgN1GawZNM5rhvGHlK1bwmW2wVgKma2KGe+bPB3+Qd2536OygXS 4MQ9H0VXMjGpxobwIsODSW3GdSAA7dChAr0Ocs85xVy/Gn5DVe3IlE813bsBTMOre2ck S50tD5Jv+aPyv1p6776fra7TD9KT1+khUsohhaW7hOf+xr6xntM3azWYAQI9XuC6WAnd ADdndExcbJ6pZrN64qUQbPwWP0DCZCHyWUBFRNTtBe8Us7tA1RL6mcUXDUDCdqTmCpxv xecMs0L8iSjS/ISD6s68Io8b849/9sT0KzA8x6w+9nXhBrqvd1RbZqOH5GrEZNGTgg/K AcFA== X-Gm-Message-State: AOAM530D6WHFXma2P6iPHjHnwi9mE1sTo66ROiCKVavjBj04U27EibTz XBiQ7NzZRPdCR+RLkD+AlZVlSKVTmbo= X-Google-Smtp-Source: ABdhPJwU3sIgXhREaQVCXzvm0ae1F/rwQR7jJvnROTylXS/FOSNHqAZ/CgHmw8FcNyti7UIFF6l9qQ== X-Received: by 2002:adf:a2d3:: with SMTP id t19mr3670124wra.299.1614261912519; Thu, 25 Feb 2021 06:05:12 -0800 (PST) Received: from sblaptop.fritz.box (ipbcc1aa4b.dynamic.kabel-deutschland.de. [188.193.170.75]) by smtp.gmail.com with ESMTPSA id j11sm7952229wrm.13.2021.02.25.06.05.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 25 Feb 2021 06:05:11 -0800 (PST) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Thu, 25 Feb 2021 15:05:02 +0100 Message-Id: <20210225140505.1249855-1-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.27.0 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 1/4] avformat/wavenc: Improve unsupported codec error messages X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Cc: Andreas Rheinhardt Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Signed-off-by: Andreas Rheinhardt --- The actual aim is of course to remove a nonconst AVCodec. libavformat/wavenc.c | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/libavformat/wavenc.c b/libavformat/wavenc.c index b65b8b0940..078b7fcd9a 100644 --- a/libavformat/wavenc.c +++ b/libavformat/wavenc.c @@ -159,9 +159,8 @@ static av_cold int peak_init_writer(AVFormatContext *s) par->codec_id != AV_CODEC_ID_PCM_S16LE && par->codec_id != AV_CODEC_ID_PCM_U8 && par->codec_id != AV_CODEC_ID_PCM_U16LE) { - AVCodec *codec = avcodec_find_decoder(s->streams[0]->codecpar->codec_id); - av_log(s, AV_LOG_ERROR, "%s codec not supported for Peak Chunk\n", - codec ? codec->name : "NONE"); + av_log(s, AV_LOG_ERROR, "Codec %s not supported for Peak Chunk\n", + avcodec_get_name(par->codec_id)); return -1; } @@ -325,9 +324,8 @@ static int wav_write_header(AVFormatContext *s) /* format header */ fmt = ff_start_tag(pb, "fmt "); if (ff_put_wav_header(s, pb, s->streams[0]->codecpar, 0) < 0) { - const AVCodecDescriptor *desc = avcodec_descriptor_get(s->streams[0]->codecpar->codec_id); - av_log(s, AV_LOG_ERROR, "%s codec not supported in WAVE format\n", - desc ? desc->name : "unknown"); + av_log(s, AV_LOG_ERROR, "Codec %s not supported in WAVE format\n", + avcodec_get_name(s->streams[0]->codecpar->codec_id)); return AVERROR(ENOSYS); } ff_end_tag(pb, fmt); @@ -553,9 +551,8 @@ static int w64_write_header(AVFormatContext *s) avio_write(pb, ff_w64_guid_wave, sizeof(ff_w64_guid_wave)); start_guid(pb, ff_w64_guid_fmt, &start); if ((ret = ff_put_wav_header(s, pb, s->streams[0]->codecpar, 0)) < 0) { - AVCodec *codec = avcodec_find_decoder(s->streams[0]->codecpar->codec_id); - av_log(s, AV_LOG_ERROR, "%s codec not supported\n", - codec ? codec->name : "NONE"); + av_log(s, AV_LOG_ERROR, "Codec %s not supported\n", + avcodec_get_name(s->streams[0]->codecpar->codec_id)); return ret; } end_guid(pb, start); From patchwork Thu Feb 25 14:05:03 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 25986 Return-Path: X-Original-To: patchwork@ffaux-bg.ffmpeg.org Delivered-To: patchwork@ffaux-bg.ffmpeg.org Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by ffaux.localdomain (Postfix) with ESMTP id 4AC0D441455 for ; Thu, 25 Feb 2021 16:05:40 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 337DC68A42C; Thu, 25 Feb 2021 16:05:40 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wr1-f43.google.com (mail-wr1-f43.google.com [209.85.221.43]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id F147F68A32C for ; Thu, 25 Feb 2021 16:05:33 +0200 (EET) Received: by mail-wr1-f43.google.com with SMTP id d11so5354399wrj.7 for ; Thu, 25 Feb 2021 06:05:33 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=/H3BYKpeh+wk5+TAiPCaYUN5EBS6dmBEAVQReoaUTYg=; b=stl7OG3NQ790AfN3GXzXOL0aHaaJIlBBlyI4PQw7+NH4Z1xUFHVQWN5spxc4HT1DtT dhqjviIXHArjcQhA4BIadPnO9OVRNjllDl24EJqu1DdbJAGRVMY+KtQKQw3KPFLeHCFS YFAfTz+1Y8BqNV6HycKzKbVfwwbVg8BrTxhcsgqSCYMzs+kr3G9VTKFlbAe7sVeKJcfK cnyJpShjqPebE4o89Wb43ID2RgMXMQoaC5hRGyf/G2sQrRAN/bFJb4dgNNffL6zW42hV 3440PpxhYabt4/3N6NrPlJBZHmb+rMMsB9wI/v659I6ipM075K5JQ4q6lZVE1SeiloJU ft4Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=/H3BYKpeh+wk5+TAiPCaYUN5EBS6dmBEAVQReoaUTYg=; b=eYXCJ4n16mYcu3UiFgucOIxl2U1pVPO17chTEF+4lloo37clLdJA4gz0Uewn7jkgLp lqjvpiPMAJZgQCr7VE07cOO//U4pfsvOxi3PJRgtPnuiS5vJqkH3bgtsIRbnDL6iY8tH fSjImShv+WHr5NBtY+7KSLVMyFFB4IwnTrauTdKP4h0nqFsNAGsOmQNx9ep1azsUwKzv Um0IsvfZINx4BEMehNhfGYhELfJ/GZaFIsVd4Vza/DZweoC13lEOH/ydcC+xahBUbfjC K/0N/8kJHRsWGZ6BimueXJeEkxJ2gUWKqzr8MNbWN02D7QCKEdd8kkwRgwNKeKHi5UX/ /Q2g== X-Gm-Message-State: AOAM530aWOHNBlj6/USQIIQKTm1ZwbFnarz89O3dLPreQSr4oRIJd+IN liqZECp/KRPgdpgJiJSznP2bhkxeUK0= X-Google-Smtp-Source: ABdhPJwGsOsvLN4DaDfDV5JbEHuZUVcaIlLK4plY7xNP1XS3ASX6pY8G6VuIK653ks4NO12rWQXPxA== X-Received: by 2002:adf:d84d:: with SMTP id k13mr3824033wrl.164.1614261933239; Thu, 25 Feb 2021 06:05:33 -0800 (PST) Received: from sblaptop.fritz.box (ipbcc1aa4b.dynamic.kabel-deutschland.de. [188.193.170.75]) by smtp.gmail.com with ESMTPSA id j11sm7952229wrm.13.2021.02.25.06.05.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 25 Feb 2021 06:05:32 -0800 (PST) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Thu, 25 Feb 2021 15:05:03 +0100 Message-Id: <20210225140505.1249855-2-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20210225140505.1249855-1-andreas.rheinhardt@gmail.com> References: <20210225140505.1249855-1-andreas.rheinhardt@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 2/4] avcodec/libx264: Don't use init_static_data for newer versions X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Cc: Andreas Rheinhardt Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" x264 versions >= 153 can support multiple bitdepths; they also don't export x264_bit_depth any more. The actual check whether a bitdepth is supported is therefore performed at runtime in x264_encoder_open. Ergo it is unnecessary to use init_static_data for these versions: One can already set ff_libx264_encoder.pix_fmts to the value that X264_init_static always sets it to. Signed-off-by: Andreas Rheinhardt --- The actual aim is of course to enable to make ff_libx264_encoder const after the next major bump if a new libx264 version is used. I am currently working on this. libavcodec/libx264.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/libavcodec/libx264.c b/libavcodec/libx264.c index ca7cc3a540..212ed7d015 100644 --- a/libavcodec/libx264.c +++ b/libavcodec/libx264.c @@ -1051,19 +1051,17 @@ static const enum AVPixelFormat pix_fmts_8bit_rgb[] = { }; #endif +#if X264_BUILD < 153 static av_cold void X264_init_static(AVCodec *codec) { -#if X264_BUILD < 153 if (x264_bit_depth == 8) codec->pix_fmts = pix_fmts_8bit; else if (x264_bit_depth == 9) codec->pix_fmts = pix_fmts_9bit; else if (x264_bit_depth == 10) codec->pix_fmts = pix_fmts_10bit; -#else - codec->pix_fmts = pix_fmts_all; -#endif } +#endif #define OFFSET(x) offsetof(X264Context, x) #define VE AV_OPT_FLAG_VIDEO_PARAM | AV_OPT_FLAG_ENCODING_PARAM @@ -1208,7 +1206,11 @@ AVCodec ff_libx264_encoder = { AV_CODEC_CAP_ENCODER_REORDERED_OPAQUE, .priv_class = &x264_class, .defaults = x264_defaults, +#if X264_BUILD < 153 .init_static_data = X264_init_static, +#else + .pix_fmts = pix_fmts_all, +#endif #if X264_BUILD >= 158 .caps_internal = FF_CODEC_CAP_INIT_CLEANUP | FF_CODEC_CAP_INIT_THREADSAFE, #else From patchwork Thu Feb 25 14:05:04 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 25987 Return-Path: X-Original-To: patchwork@ffaux-bg.ffmpeg.org Delivered-To: patchwork@ffaux-bg.ffmpeg.org Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by ffaux.localdomain (Postfix) with ESMTP id 715F4449789 for ; Thu, 25 Feb 2021 16:05:44 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 5AED168A583; Thu, 25 Feb 2021 16:05:44 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wm1-f45.google.com (mail-wm1-f45.google.com [209.85.128.45]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id EB085687FA1 for ; Thu, 25 Feb 2021 16:05:37 +0200 (EET) Received: by mail-wm1-f45.google.com with SMTP id a11so1430898wmd.5 for ; Thu, 25 Feb 2021 06:05:37 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=a9O6PBM3DW+fWvqN7XR9EcInqbK3GB5QuZ9x8ACqJBA=; b=K5iwS58wNIlT458jh/IPMkqLi4Mag9oRNU7WFMgCK7bhVpfpzzTwz3o1F/Z4s+UblA ACZ78iGpa6o276z6BhqlLUyL316ktB3DmqjGKaiGLDKsHnkFEwNYUHSJmu3Yk3DSJvBp h3ycPeBdKU0FsXyhRWz6Tam0/GKgvMF9SUEiTEzM5wssjrPwE7UqKPueFnvRhBpL5Wdg 9XUbXtHmbcVBpMMkj8tcpLuRf6E+uLNmGfFGJqGaVDhpM10U9GTpYcKnDJlKiJH8jWg/ 18SkYLU7+lw9NCAxrcbinz+EfNP3KNKARR3eUhDS4hY1nwn5eDXyMMIKe7qf87QBrrNd UJPQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=a9O6PBM3DW+fWvqN7XR9EcInqbK3GB5QuZ9x8ACqJBA=; b=ZTzZooK6qPQqB+vfTq/ECdbfZ9oxjKLnr1nC8t1OrGFGOIVThHpnP7xshc2MrH3G4u MzC03NFf8io2fsIU7V2pXcctVgSrfSeoJtB73QrMaXx/R0yYTjEDjNq4z5qrn+GxaHLM yw1oOy5B4NRrCWWLNkwhnfnnxlcD6t7P5vlYvfSDxIkGY+6HiI2z2cK/Hz6SJBtdl644 vO8glDRyMg2IarVeA3Bs1mDrsIbkigYUCzctElcClVIQ/BVzZJlXe0b154W4uLIrndns DaArREuGoCCwaDbQB6UbB4q2qO/oBVNHsuLUy0XZzjL9rqX49zdoeOAC/jDPRTS73rlT h4eA== X-Gm-Message-State: AOAM530LQNE3lHi+OIzsvS7UHpzoHT3MBsX520t8flUqIVpkxWyxpowk CzbG1xjLfnWGwe6QZebggMZZ9zmyqvI= X-Google-Smtp-Source: ABdhPJxj2BKUFJ+KHTPeVDh+4mitlnMZCF9JHXOR7KUt9Mz5+HLQlcWkaE+zlyOsDbtGNEWJAKIvmA== X-Received: by 2002:a05:600c:2048:: with SMTP id p8mr3472006wmg.170.1614261937082; Thu, 25 Feb 2021 06:05:37 -0800 (PST) Received: from sblaptop.fritz.box (ipbcc1aa4b.dynamic.kabel-deutschland.de. [188.193.170.75]) by smtp.gmail.com with ESMTPSA id j11sm7952229wrm.13.2021.02.25.06.05.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 25 Feb 2021 06:05:36 -0800 (PST) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Thu, 25 Feb 2021 15:05:04 +0100 Message-Id: <20210225140505.1249855-3-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20210225140505.1249855-1-andreas.rheinhardt@gmail.com> References: <20210225140505.1249855-1-andreas.rheinhardt@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 3/4] fftools: Switch to const AVCodec * where possible X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Cc: Andreas Rheinhardt Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" The obstacle to do so was in filter_codec_opts: It uses searches the AVCodec for options via the AV_OPT_SEARCH_FAKE_OBJ method, which requires using a void * that points to a pointer to a const AVClass. When using const AVCodec *, one can not simply use a pointer that points to the AVCodec's pointer to its AVClass, as said pointer is const, too. This is fixed by using a temporary pointer to the AVClass. Signed-off-by: Andreas Rheinhardt --- The actual obstacle in av_opt_find2 is in the fact that the child_next callback uses a void* for the object. (Is it really intended that any child_next ever modifies it?) fftools/cmdutils.c | 7 ++++--- fftools/cmdutils.h | 2 +- fftools/ffmpeg.c | 6 +++--- fftools/ffmpeg.h | 4 ++-- fftools/ffmpeg_opt.c | 4 ++-- fftools/ffplay.c | 2 +- fftools/ffprobe.c | 2 +- 7 files changed, 14 insertions(+), 13 deletions(-) diff --git a/fftools/cmdutils.c b/fftools/cmdutils.c index 4eb68d2201..dca6ae3d23 100644 --- a/fftools/cmdutils.c +++ b/fftools/cmdutils.c @@ -2103,7 +2103,7 @@ int check_stream_specifier(AVFormatContext *s, AVStream *st, const char *spec) } AVDictionary *filter_codec_opts(AVDictionary *opts, enum AVCodecID codec_id, - AVFormatContext *s, AVStream *st, AVCodec *codec) + AVFormatContext *s, AVStream *st, const AVCodec *codec) { AVDictionary *ret = NULL; AVDictionaryEntry *t = NULL; @@ -2132,6 +2132,7 @@ AVDictionary *filter_codec_opts(AVDictionary *opts, enum AVCodecID codec_id, } while (t = av_dict_get(opts, "", t, AV_DICT_IGNORE_SUFFIX)) { + const AVClass *priv_class; char *p = strchr(t->key, ':'); /* check stream specification in opt name */ @@ -2144,8 +2145,8 @@ AVDictionary *filter_codec_opts(AVDictionary *opts, enum AVCodecID codec_id, if (av_opt_find(&cc, t->key, NULL, flags, AV_OPT_SEARCH_FAKE_OBJ) || !codec || - (codec->priv_class && - av_opt_find(&codec->priv_class, t->key, NULL, flags, + ((priv_class = codec->priv_class) && + av_opt_find(&priv_class, t->key, NULL, flags, AV_OPT_SEARCH_FAKE_OBJ))) av_dict_set(&ret, t->key, t->value, 0); else if (t->key[0] == prefix && diff --git a/fftools/cmdutils.h b/fftools/cmdutils.h index 1917510589..5da9f4c88f 100644 --- a/fftools/cmdutils.h +++ b/fftools/cmdutils.h @@ -414,7 +414,7 @@ int check_stream_specifier(AVFormatContext *s, AVStream *st, const char *spec); * @return a pointer to the created dictionary */ AVDictionary *filter_codec_opts(AVDictionary *opts, enum AVCodecID codec_id, - AVFormatContext *s, AVStream *st, AVCodec *codec); + AVFormatContext *s, AVStream *st, const AVCodec *codec); /** * Setup AVCodecContext options for avformat_find_stream_info(). diff --git a/fftools/ffmpeg.c b/fftools/ffmpeg.c index add5a3e505..5d52d36470 100644 --- a/fftools/ffmpeg.c +++ b/fftools/ffmpeg.c @@ -688,7 +688,7 @@ void assert_avoptions(AVDictionary *m) } } -static void abort_codec_experimental(AVCodec *c, int encoder) +static void abort_codec_experimental(const AVCodec *c, int encoder) { exit_program(1); } @@ -2943,7 +2943,7 @@ static int init_input_stream(int ist_index, char *error, int error_len) InputStream *ist = input_streams[ist_index]; if (ist->decoding_needed) { - AVCodec *codec = ist->dec; + const AVCodec *codec = ist->dec; if (!codec) { snprintf(error, error_len, "Decoder (codec %s) not found for input stream #%d:%d", avcodec_get_name(ist->dec_ctx->codec_id), ist->file_index, ist->st->index); @@ -3523,7 +3523,7 @@ static int init_output_stream(OutputStream *ost, AVFrame *frame, int ret = 0; if (ost->encoding_needed) { - AVCodec *codec = ost->enc; + const AVCodec *codec = ost->enc; AVCodecContext *dec = NULL; InputStream *ist; diff --git a/fftools/ffmpeg.h b/fftools/ffmpeg.h index 423da071dc..8813eaf2e3 100644 --- a/fftools/ffmpeg.h +++ b/fftools/ffmpeg.h @@ -307,7 +307,7 @@ typedef struct InputStream { #define DECODING_FOR_FILTER 2 AVCodecContext *dec_ctx; - AVCodec *dec; + const AVCodec *dec; AVFrame *decoded_frame; AVFrame *filter_frame; /* a ref of decoded_frame, to be sent to filters */ @@ -470,7 +470,7 @@ typedef struct OutputStream { AVCodecContext *enc_ctx; AVCodecParameters *ref_par; /* associated input codec parameters with encoders options applied */ - AVCodec *enc; + const AVCodec *enc; int64_t max_frames; AVFrame *filtered_frame; AVFrame *last_frame; diff --git a/fftools/ffmpeg_opt.c b/fftools/ffmpeg_opt.c index 1cb601f7c7..85feeb89f2 100644 --- a/fftools/ffmpeg_opt.c +++ b/fftools/ffmpeg_opt.c @@ -766,13 +766,13 @@ static AVCodec *find_codec_or_die(const char *name, enum AVMediaType type, int e return codec; } -static AVCodec *choose_decoder(OptionsContext *o, AVFormatContext *s, AVStream *st) +static const AVCodec *choose_decoder(OptionsContext *o, AVFormatContext *s, AVStream *st) { char *codec_name = NULL; MATCH_PER_STREAM_OPT(codec_names, str, codec_name, s, st); if (codec_name) { - AVCodec *codec = find_codec_or_die(codec_name, st->codecpar->codec_type, 0); + const AVCodec *codec = find_codec_or_die(codec_name, st->codecpar->codec_type, 0); st->codecpar->codec_id = codec->id; return codec; } else diff --git a/fftools/ffplay.c b/fftools/ffplay.c index b9a30cdb11..cce3b538a9 100644 --- a/fftools/ffplay.c +++ b/fftools/ffplay.c @@ -2573,7 +2573,7 @@ static int stream_component_open(VideoState *is, int stream_index) { AVFormatContext *ic = is->ic; AVCodecContext *avctx; - AVCodec *codec; + const AVCodec *codec; const char *forced_codec_name = NULL; AVDictionary *opts = NULL; AVDictionaryEntry *t = NULL; diff --git a/fftools/ffprobe.c b/fftools/ffprobe.c index de70c20eb4..740e759958 100644 --- a/fftools/ffprobe.c +++ b/fftools/ffprobe.c @@ -2996,7 +2996,7 @@ static int open_input_file(InputFile *ifile, const char *filename, for (i = 0; i < fmt_ctx->nb_streams; i++) { InputStream *ist = &ifile->streams[i]; AVStream *stream = fmt_ctx->streams[i]; - AVCodec *codec; + const AVCodec *codec; ist->st = stream; From patchwork Thu Feb 25 14:05:05 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 25988 Return-Path: X-Original-To: patchwork@ffaux-bg.ffmpeg.org Delivered-To: patchwork@ffaux-bg.ffmpeg.org Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by ffaux.localdomain (Postfix) with ESMTP id 6F7A5449789 for ; Thu, 25 Feb 2021 16:05:45 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 4FE6B68A5E4; Thu, 25 Feb 2021 16:05:45 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wm1-f41.google.com (mail-wm1-f41.google.com [209.85.128.41]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 71B75687FA1 for ; Thu, 25 Feb 2021 16:05:38 +0200 (EET) Received: by mail-wm1-f41.google.com with SMTP id k66so4959132wmf.1 for ; Thu, 25 Feb 2021 06:05:38 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=mqitqOjh8f+DqK5U7GUttf06zfUZ4QAemdc+uj7ByeE=; b=aBxEgEGuN4LZqakUN/a4xGkW1WUJUwYkH98W3Xa9yd2RRcdpPnpS4PO4aHcOp+wzLL V/K+oOMMh1K8FHxV78k7ld6yspGZHN0GSg6e3Jx5FWUkfaaiZttSk4OnRgJI8sVk3DfS RYRJ4kA3P1T/EGFmXLpvKORmhp40GtP7u/SYoB7BguOJTt1pMb7lHHVJlESBtbenWimz n7VYmlqG0ykRvtH1p/ZTkalT9+MuuBseBiO0p6rislDFyNc8crOWSuFRCyNFt1tjWuqR AuE1qLN6a0EflakiVmEVMbv5AVMShQbJMW8saT9OEn/fWyuTPQS8l5QvVHqcO1k9CRnd qm3Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=mqitqOjh8f+DqK5U7GUttf06zfUZ4QAemdc+uj7ByeE=; b=gNSNiruVVUfVoVPlIzROii8/CWEE/VN2Hkuy1xH3oaQ5re1uZvzGHrNpOuAhdzucnu OPRaebPHtGfFe8yfsFT1g1OdiVPiOw6mLsKru5e2ctDPk396xbwyAi100yphO6gdUGM+ Ax/dfqpyz5Fi9KT1gtV+LYIsUyovFUnjIxNTh0BDRuhMGnz8CRarYDBHGMTPAq0O3sf0 3ru6o6wb3Kaa3mtWWqZZdhStF5UHZCR7X16BJybO3S0DK4MD+HDw8A+3FvmgeN3824bG FOE5xo2t5wWozNAxxT3vpVwLKbXMeNZ013Hh/0i449zhRRTIh8hJx3ev1z7Ds117K1ST kw2A== X-Gm-Message-State: AOAM533SmppI/wUFck7DcW601bPXVzmPZsKsdphFU3y6JeenklGOJXUJ E38Q1kie+BLEqgFTFs/g0laQfN+R0vQ= X-Google-Smtp-Source: ABdhPJwK4c8rN/LIjIqNj4dcRwQgiYu0beanqWil7fw35MhPY1a2dqJkvmIq7E2nPEwmOCr4ZPxj9A== X-Received: by 2002:a1c:6441:: with SMTP id y62mr3416512wmb.97.1614261937834; Thu, 25 Feb 2021 06:05:37 -0800 (PST) Received: from sblaptop.fritz.box (ipbcc1aa4b.dynamic.kabel-deutschland.de. [188.193.170.75]) by smtp.gmail.com with ESMTPSA id j11sm7952229wrm.13.2021.02.25.06.05.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 25 Feb 2021 06:05:37 -0800 (PST) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Thu, 25 Feb 2021 15:05:05 +0100 Message-Id: <20210225140505.1249855-4-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20210225140505.1249855-1-andreas.rheinhardt@gmail.com> References: <20210225140505.1249855-1-andreas.rheinhardt@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 4/4] avcodec/avcodec: Add missing deprecation to AVCodecParser.next X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Cc: Andreas Rheinhardt Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" The whole old next API has been deprecated in commit 7e8eba2d8755962d9dca5eade57bf8f591a73c0c, yet deprecating the next pointer has been forgotten (the next pointers of other structures are below the public API delimiter, but such a delimiter doesn't exist for AVCodecParser). Signed-off-by: Andreas Rheinhardt --- libavcodec/avcodec.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h index 5df6a8aedc..b0cb91f555 100644 --- a/libavcodec/avcodec.h +++ b/libavcodec/avcodec.h @@ -3512,7 +3512,10 @@ typedef struct AVCodecParser { const uint8_t *buf, int buf_size); void (*parser_close)(AVCodecParserContext *s); int (*split)(AVCodecContext *avctx, const uint8_t *buf, int buf_size); +#if FF_API_NEXT +attribute_deprecated struct AVCodecParser *next; +#endif } AVCodecParser; /**