From patchwork Fri Dec 6 10:16:57 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anton Khirnov X-Patchwork-Id: 16628 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 50F7444ABC2 for ; Fri, 6 Dec 2019 12:19:15 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 31DD268B698; Fri, 6 Dec 2019 12:19:15 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail.red.khirnov.net (red.khirnov.net [176.97.15.12]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 615EC68B68D for ; Fri, 6 Dec 2019 12:19:12 +0200 (EET) Received: from localhost (localhost [IPv6:::1]) by mail.red.khirnov.net (Postfix) with ESMTP id E23592945B5 for ; Fri, 6 Dec 2019 11:19:11 +0100 (CET) Received: from mail.red.khirnov.net ([IPv6:::1]) by localhost (mail.red.khirnov.net [IPv6:::1]) (amavisd-new, port 10024) with ESMTP id bNKg71bOtlqB for ; Fri, 6 Dec 2019 11:19:11 +0100 (CET) Received: from quelana.khirnov.net (unknown [IPv6:2002:b061:f0a:201:5e:e696:5100:0]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) client-signature RSA-PSS (2048 bits)) (Client CN "quelana.khirnov.net", Issuer "smtp.khirnov.net SMTP CA" (verified OK)) by mail.red.khirnov.net (Postfix) with ESMTPS id 718412945B4 for ; Fri, 6 Dec 2019 11:19:11 +0100 (CET) Received: from localhost (quelana.khirnov.net [IPv6:::1]) by quelana.khirnov.net (Postfix) with ESMTP id 1EF057F85D for ; Fri, 6 Dec 2019 11:19:11 +0100 (CET) Received: from quelana.khirnov.net ([IPv6:::1]) by localhost (quelana.khirnov.net [IPv6:::1]) (amavisd-new, port 10024) with ESMTP id QsNjl5TgFrr8 for ; Fri, 6 Dec 2019 11:19:09 +0100 (CET) Received: from libav.daenerys.khirnov.net (libav.daenerys.khirnov.net [IPv6:2a00:c500:561:201::7]) by quelana.khirnov.net (Postfix) with ESMTP id BA0E27F98B for ; Fri, 6 Dec 2019 11:18:47 +0100 (CET) Received: by libav.daenerys.khirnov.net (Postfix, from userid 1000) id 4F88E20E0147; Fri, 6 Dec 2019 11:17:48 +0100 (CET) From: Anton Khirnov To: ffmpeg-devel@ffmpeg.org Date: Fri, 6 Dec 2019 11:16:57 +0100 Message-Id: <20191206101710.22028-3-anton@khirnov.net> X-Mailer: git-send-email 2.24.0 In-Reply-To: <20191206101710.22028-1-anton@khirnov.net> References: <20191206101710.22028-1-anton@khirnov.net> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 003/244] lavc: deprecate channel count/layout changing side data 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" They are incompatible with the new channel layout scheme and no decoder uses them. Signed-off-by: Vittorio Giovara --- libavcodec/avcodec.h | 5 +++++ libavcodec/decode.c | 4 ++++ libavformat/dump.c | 9 ++++++++- libavformat/nutenc.c | 2 ++ libavformat/utils.c | 9 +++++++++ 5 files changed, 28 insertions(+), 1 deletion(-) diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h index 735a3c2d76..43fa7d8292 100644 --- a/libavcodec/avcodec.h +++ b/libavcodec/avcodec.h @@ -1534,8 +1534,13 @@ typedef struct AVPacket { enum AVSideDataParamChangeFlags { +#if FF_API_OLD_CHANNEL_LAYOUT + /** + * @deprecated those are not used by any decoder + */ AV_SIDE_DATA_PARAM_CHANGE_CHANNEL_COUNT = 0x0001, AV_SIDE_DATA_PARAM_CHANGE_CHANNEL_LAYOUT = 0x0002, +#endif AV_SIDE_DATA_PARAM_CHANGE_SAMPLE_RATE = 0x0004, AV_SIDE_DATA_PARAM_CHANGE_DIMENSIONS = 0x0008, }; diff --git a/libavcodec/decode.c b/libavcodec/decode.c index 0883c7209c..809f309b8c 100644 --- a/libavcodec/decode.c +++ b/libavcodec/decode.c @@ -69,6 +69,8 @@ static int apply_param_change(AVCodecContext *avctx, const AVPacket *avpkt) flags = bytestream_get_le32(&data); size -= 4; +#if FF_API_OLD_CHANNEL_LAYOUT +FF_DISABLE_DEPRECATION_WARNINGS if (flags & AV_SIDE_DATA_PARAM_CHANGE_CHANNEL_COUNT) { if (size < 4) goto fail; @@ -87,6 +89,8 @@ static int apply_param_change(AVCodecContext *avctx, const AVPacket *avpkt) avctx->channel_layout = bytestream_get_le64(&data); size -= 8; } +FF_ENABLE_DEPRECATION_WARNINGS +#endif if (flags & AV_SIDE_DATA_PARAM_CHANGE_SAMPLE_RATE) { if (size < 4) goto fail; diff --git a/libavformat/dump.c b/libavformat/dump.c index 56814ff7d2..5dd3b1a87e 100644 --- a/libavformat/dump.c +++ b/libavformat/dump.c @@ -161,8 +161,11 @@ static void dump_paramchange(void *ctx, AVPacketSideData *sd) { int size = sd->size; const uint8_t *data = sd->data; - uint32_t flags, channels, sample_rate, width, height; + uint32_t flags, sample_rate, width, height; +#if FF_API_OLD_CHANNEL_LAYOUT + uint32_t channels; uint64_t layout; +#endif if (!data || sd->size < 4) goto fail; @@ -171,6 +174,8 @@ static void dump_paramchange(void *ctx, AVPacketSideData *sd) data += 4; size -= 4; +#if FF_API_OLD_CHANNEL_LAYOUT +FF_DISABLE_DEPRECATION_WARNINGS if (flags & AV_SIDE_DATA_PARAM_CHANGE_CHANNEL_COUNT) { if (size < 4) goto fail; @@ -188,6 +193,8 @@ static void dump_paramchange(void *ctx, AVPacketSideData *sd) av_log(ctx, AV_LOG_INFO, "channel layout: %s, ", av_get_channel_name(layout)); } +FF_ENABLE_DEPRECATION_WARNINGS +#endif /* FF_API_OLD_CHANNEL_LAYOUT */ if (flags & AV_SIDE_DATA_PARAM_CHANGE_SAMPLE_RATE) { if (size < 4) goto fail; diff --git a/libavformat/nutenc.c b/libavformat/nutenc.c index 46dce7722d..94d2e65a37 100644 --- a/libavformat/nutenc.c +++ b/libavformat/nutenc.c @@ -888,6 +888,7 @@ static int write_sm_data(AVFormatContext *s, AVIOContext *bc, AVPacket *pkt, int break; case AV_PKT_DATA_PARAM_CHANGE: flags = bytestream_get_le32(&data); +#if FF_API_OLD_CHANNEL_LAYOUT if (flags & AV_SIDE_DATA_PARAM_CHANGE_CHANNEL_COUNT) { put_str(dyn_bc, "Channels"); put_s(dyn_bc, bytestream_get_le32(&data)); @@ -901,6 +902,7 @@ static int write_sm_data(AVFormatContext *s, AVIOContext *bc, AVPacket *pkt, int avio_write(dyn_bc, data, 8); data+=8; sm_data_count++; } +#endif if (flags & AV_SIDE_DATA_PARAM_CHANGE_SAMPLE_RATE) { put_str(dyn_bc, "SampleRate"); put_s(dyn_bc, bytestream_get_le32(&data)); diff --git a/libavformat/utils.c b/libavformat/utils.c index 4d18880acb..b6b5f0f308 100644 --- a/libavformat/utils.c +++ b/libavformat/utils.c @@ -5067,6 +5067,9 @@ int ff_add_param_change(AVPacket *pkt, int32_t channels, uint8_t *data; if (!pkt) return AVERROR(EINVAL); + +#if FF_API_OLD_CHANNEL_LAYOUT +FF_DISABLE_DEPRECATION_WARNINGS if (channels) { size += 4; flags |= AV_SIDE_DATA_PARAM_CHANGE_CHANNEL_COUNT; @@ -5075,6 +5078,8 @@ int ff_add_param_change(AVPacket *pkt, int32_t channels, size += 8; flags |= AV_SIDE_DATA_PARAM_CHANGE_CHANNEL_LAYOUT; } +FF_ENABLE_DEPRECATION_WARNINGS +#endif if (sample_rate) { size += 4; flags |= AV_SIDE_DATA_PARAM_CHANGE_SAMPLE_RATE; @@ -5087,10 +5092,14 @@ int ff_add_param_change(AVPacket *pkt, int32_t channels, if (!data) return AVERROR(ENOMEM); bytestream_put_le32(&data, flags); +#if FF_API_OLD_CHANNEL_LAYOUT +FF_DISABLE_DEPRECATION_WARNINGS if (channels) bytestream_put_le32(&data, channels); if (channel_layout) bytestream_put_le64(&data, channel_layout); +FF_ENABLE_DEPRECATION_WARNINGS +#endif if (sample_rate) bytestream_put_le32(&data, sample_rate); if (width || height) {