From patchwork Sun Mar 21 09:47:18 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 26509 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 A3D45449A95 for ; Sun, 21 Mar 2021 11:47:40 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 7CDBF68A831; Sun, 21 Mar 2021 11:47:40 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wr1-f45.google.com (mail-wr1-f45.google.com [209.85.221.45]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 5D6E168A688 for ; Sun, 21 Mar 2021 11:47:34 +0200 (EET) Received: by mail-wr1-f45.google.com with SMTP id x13so13540188wrs.9 for ; Sun, 21 Mar 2021 02:47:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:reply-to:mime-version :content-transfer-encoding; bh=SjYJWjrxbaGxKc3ZAmBha973JQ1h5r0TF2qtoTGQMvc=; b=GodGMCFHpidJfLIl8rG18Mf75DMM04SY+TTYjvK8GQiM1IX7LRe3wQkLTnK57p1SOo URGTQYMdtKCQag+8kaxd4Glb0TzL7xP6D+H1v8klRwrJ5ziWR/6rJZryo9Xmhag7UF4R c/C/RNPqRut8lvaQ37ujg5k1fpK/YIh9zyvsSJ0Csx3Mx4QQMUxH3sSUpu1dRvXcRDcA VmxZ4GFq6ku5AZh0PJ1Dv0zuX+Rg9zkqaEPuQuRlWMkKfXfgLGCHaTYX26e0t/9laqys Xr9hbexmVEMNlDmrJ1aHJT/5+/qbQOYZ9W4ra9ehazVX97UkSpavTEdQiQ/7Q2GmhMyO YFyw== 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:reply-to :mime-version:content-transfer-encoding; bh=SjYJWjrxbaGxKc3ZAmBha973JQ1h5r0TF2qtoTGQMvc=; b=eir4AGTI0FFPlQmuT3CT/w2C0cej+cmvaimnJMrP4sD7ZCdIBewFjKp4KAfNK55X8G m0WBmA+U+QKZe+un/oyy+BsI/a+7J1PLMvTnN30csvkt3zbsqEDSave2uibNDOrPUjtj xOjG7oe8C3UU/B1TZfGHwioNvnXhfaezp2z5FGbYmMtA0FQZ0iXtG38okPULt+FIxsxA hvd/3Yl28q717hwPtT4TI6ANfRQ+81+Zt/Lk4UqipdDish8zeef1OsgmYrIAX7rYg+ag JmCWWad8Owyd0+suialyzNmSLsYgOMOXqN5q460LWak4s07u7WZPAVme9A9QhuispvzP Ls6A== X-Gm-Message-State: AOAM530C+IK4A7XEUSOWH2kh/cny1363saHaKmT4Bvm5EqbniAr/5MNt x0v6cFhAA7uPmfqky105j6heYXxOTa/1vQ== X-Google-Smtp-Source: ABdhPJww4KuUBFrp2wAJ8aMuPNNoY0SB0dBby0sCLtpNeEi0gHn+Sk5ImWh8DNuyYczkTsE0nGu//w== X-Received: by 2002:a5d:6a81:: with SMTP id s1mr13145939wru.401.1616320053651; Sun, 21 Mar 2021 02:47:33 -0700 (PDT) Received: from sblaptop.fritz.box (ipbcc08960.dynamic.kabel-deutschland.de. [188.192.137.96]) by smtp.gmail.com with ESMTPSA id m14sm11649387wmi.27.2021.03.21.02.47.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 21 Mar 2021 02:47:33 -0700 (PDT) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Sun, 21 Mar 2021 10:47:18 +0100 Message-Id: <20210321094722.447294-1-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.27.0 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 1/5] avcodec/avcodec: Use dedicated pointer to access AVCodecInternal 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 --- libavcodec/avcodec.c | 48 +++++++++++++++++++++++--------------------- 1 file changed, 25 insertions(+), 23 deletions(-) diff --git a/libavcodec/avcodec.c b/libavcodec/avcodec.c index 2f3896dcc4..3088d2ff3f 100644 --- a/libavcodec/avcodec.c +++ b/libavcodec/avcodec.c @@ -527,45 +527,47 @@ av_cold int avcodec_close(AVCodecContext *avctx) return 0; if (avcodec_is_open(avctx)) { + AVCodecInternal *avci = avctx->internal; + if (CONFIG_FRAME_THREAD_ENCODER && - avctx->internal->frame_thread_encoder && avctx->thread_count > 1) { + avci->frame_thread_encoder && avctx->thread_count > 1) { ff_frame_thread_encoder_free(avctx); } - if (HAVE_THREADS && avctx->internal->thread_ctx) + if (HAVE_THREADS && avci->thread_ctx) ff_thread_free(avctx); if (avctx->codec && avctx->codec->close) avctx->codec->close(avctx); - avctx->internal->byte_buffer_size = 0; - av_freep(&avctx->internal->byte_buffer); + avci->byte_buffer_size = 0; + av_freep(&avci->byte_buffer); #if FF_API_OLD_ENCDEC - av_frame_free(&avctx->internal->to_free); - av_frame_free(&avctx->internal->compat_decode_frame); - av_packet_free(&avctx->internal->compat_encode_packet); + av_frame_free(&avci->to_free); + av_frame_free(&avci->compat_decode_frame); + av_packet_free(&avci->compat_encode_packet); #endif - av_frame_free(&avctx->internal->buffer_frame); - av_packet_free(&avctx->internal->buffer_pkt); - av_packet_unref(avctx->internal->last_pkt_props); - while (av_fifo_size(avctx->internal->pkt_props) >= - sizeof(*avctx->internal->last_pkt_props)) { - av_fifo_generic_read(avctx->internal->pkt_props, - avctx->internal->last_pkt_props, - sizeof(*avctx->internal->last_pkt_props), + av_frame_free(&avci->buffer_frame); + av_packet_free(&avci->buffer_pkt); + av_packet_unref(avci->last_pkt_props); + while (av_fifo_size(avci->pkt_props) >= + sizeof(*avci->last_pkt_props)) { + av_fifo_generic_read(avci->pkt_props, + avci->last_pkt_props, + sizeof(*avci->last_pkt_props), NULL); - av_packet_unref(avctx->internal->last_pkt_props); + av_packet_unref(avci->last_pkt_props); } - av_packet_free(&avctx->internal->last_pkt_props); - av_fifo_freep(&avctx->internal->pkt_props); + av_packet_free(&avci->last_pkt_props); + av_fifo_freep(&avci->pkt_props); - av_packet_free(&avctx->internal->ds.in_pkt); - av_frame_free(&avctx->internal->es.in_frame); + av_packet_free(&avci->ds.in_pkt); + av_frame_free(&avci->es.in_frame); - av_buffer_unref(&avctx->internal->pool); + av_buffer_unref(&avci->pool); if (avctx->hwaccel && avctx->hwaccel->uninit) avctx->hwaccel->uninit(avctx); - av_freep(&avctx->internal->hwaccel_priv_data); + av_freep(&avci->hwaccel_priv_data); - av_bsf_free(&avctx->internal->bsf); + av_bsf_free(&avci->bsf); av_freep(&avctx->internal); } From patchwork Sun Mar 21 09:47:19 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 26510 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 D6E3A449A95 for ; Sun, 21 Mar 2021 11:47:59 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 86B1668A987; Sun, 21 Mar 2021 11:47:59 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wm1-f53.google.com (mail-wm1-f53.google.com [209.85.128.53]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 5A26868A862 for ; Sun, 21 Mar 2021 11:47:53 +0200 (EET) Received: by mail-wm1-f53.google.com with SMTP id g20so7796684wmk.3 for ; Sun, 21 Mar 2021 02:47:53 -0700 (PDT) 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:reply-to :mime-version:content-transfer-encoding; bh=m21EqJTDG/KVslCWIfzhccDbjXc/qGrzWLUmH7Y9WU8=; b=FL7f2WbVljPeLWEP35CLVzKwxsfdjEiE0CQI66g0P6H1ZBK/0xVw1gSIR1jS65qqiT VqM6vNNlXVjh4syZB23HrZBPRPdgbL+xQfue8QmUfzsxPk9axm1xmWH9sv8lwKE7rAJE fLcq4OuX6XAd3vR6e+laErPw9SGPpHBMFhNOWaIzHNhDV3gM97nAvwcoeTE5dsoAy2Pb bBQ87hMOBJq6iWrkbWOYKir/gb7Th03DHtz63aWC9e0tRMByb6r2RgnsMpybKVoUwaIY lDQ9i1A2HjmbMHNR+WATEcQGwJ1ATq5CN2C7al161pC6zBLHv7RUlU9BpyD1KI+MFZEE ED2w== 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:reply-to:mime-version:content-transfer-encoding; bh=m21EqJTDG/KVslCWIfzhccDbjXc/qGrzWLUmH7Y9WU8=; b=Q4zxbuWqi/HdLNjruDSnCVx2DadMNTGSAgUTh/Wmp16H43Pfp3XnFgJg8fXxDNEPCX 0M8Ij1sje1723uIBMDWWxq1TT7/iB+juzxt60N4LHsM3O3ZVGHXA6XeFrYqtXvsmP7QK lj6+WeVxsKwLUv3v9JjIkzAGc8NKxQ+8C4/gqP7L0PN7/EgzVM3wliHj6VSAexG5CnNa WlaRSk5HxOk9sxHraqwKRdQmQE4DCdhnTc1R0EqRt+L9RYLrvJo8vNb33AdbMh8Ps28e WWR9nmvN4qffe0LLAKdHE2JoeokzfKIIjo/CTalYZzEleX7P0LXpQByGIFO9+LsY7ifG HKNw== X-Gm-Message-State: AOAM531m7UgMD+lOGxcrq8FsvRUq5SO8ZodemeWxzL711FGQEvqDST8M GhhQMfVFhSI8MAvLuqj+zscMhJARdAH3zg== X-Google-Smtp-Source: ABdhPJxrq+K09WxuKKf/NpL673Wsaxnd+1xpXbp1MFjrmc2Qh05e21pld5dBXAGlqoRvbT+VV1sT/g== X-Received: by 2002:a1c:1f4c:: with SMTP id f73mr10997553wmf.25.1616320072602; Sun, 21 Mar 2021 02:47:52 -0700 (PDT) Received: from sblaptop.fritz.box (ipbcc08960.dynamic.kabel-deutschland.de. [188.192.137.96]) by smtp.gmail.com with ESMTPSA id m14sm11649387wmi.27.2021.03.21.02.47.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 21 Mar 2021 02:47:51 -0700 (PDT) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Sun, 21 Mar 2021 10:47:19 +0100 Message-Id: <20210321094722.447294-2-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20210321094722.447294-1-andreas.rheinhardt@gmail.com> References: <20210321094722.447294-1-andreas.rheinhardt@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 2/5] avcodec/avcodec: Don't use NULL for %s printf specifier 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" Our "get name" functions can return NULL for invalid/unknown arguments. So check for this. Signed-off-by: Andreas Rheinhardt --- av_get_colorspace_name() can even return NULL for supported colorspaces. libavcodec/avcodec.c | 33 +++++++++++++++++---------------- 1 file changed, 17 insertions(+), 16 deletions(-) diff --git a/libavcodec/avcodec.c b/libavcodec/avcodec.c index 3088d2ff3f..93383dc9fb 100644 --- a/libavcodec/avcodec.c +++ b/libavcodec/avcodec.c @@ -607,6 +607,7 @@ void avcodec_string(char *buf, int buf_size, AVCodecContext *enc, int encode) int new_line = 0; AVRational display_aspect_ratio; const char *separator = enc->dump_separator ? (const char *)enc->dump_separator : ", "; + const char *str; if (!buf || buf_size <= 0) return; @@ -642,14 +643,14 @@ void avcodec_string(char *buf, int buf_size, AVCodecContext *enc, int encode) av_strlcat(buf, separator, buf_size); snprintf(buf + strlen(buf), buf_size - strlen(buf), - "%s", enc->pix_fmt == AV_PIX_FMT_NONE ? "none" : - av_get_pix_fmt_name(enc->pix_fmt)); + "%s", enc->pix_fmt == AV_PIX_FMT_NONE ? "none" : + av_x_if_null(av_get_pix_fmt_name(enc->pix_fmt), "unknown")); if (enc->bits_per_raw_sample && enc->pix_fmt != AV_PIX_FMT_NONE && enc->bits_per_raw_sample < av_pix_fmt_desc_get(enc->pix_fmt)->comp[0].depth) av_strlcatf(detail, sizeof(detail), "%d bpc, ", enc->bits_per_raw_sample); - if (enc->color_range != AVCOL_RANGE_UNSPECIFIED) - av_strlcatf(detail, sizeof(detail), "%s, ", - av_color_range_name(enc->color_range)); + if (enc->color_range != AVCOL_RANGE_UNSPECIFIED && + (str = av_color_range_name(enc->color_range))) + av_strlcatf(detail, sizeof(detail), "%s, ", str); if (enc->colorspace != AVCOL_SPC_UNSPECIFIED || enc->color_primaries != AVCOL_PRI_UNSPECIFIED || @@ -658,12 +659,11 @@ void avcodec_string(char *buf, int buf_size, AVCodecContext *enc, int encode) enc->colorspace != (int)enc->color_trc) { new_line = 1; av_strlcatf(detail, sizeof(detail), "%s/%s/%s, ", - av_color_space_name(enc->colorspace), - av_color_primaries_name(enc->color_primaries), - av_color_transfer_name(enc->color_trc)); - } else - av_strlcatf(detail, sizeof(detail), "%s, ", - av_get_colorspace_name(enc->colorspace)); + av_x_if_null(av_color_space_name(enc->colorspace), "unknown"), + av_x_if_null(av_color_primaries_name(enc->color_primaries), "unknown"), + av_x_if_null(av_color_transfer_name(enc->color_trc), "unkown")); + } else if (str = av_get_colorspace_name(enc->colorspace)) + av_strlcatf(detail, sizeof(detail), "%s, ", str); } if (enc->field_order != AV_FIELD_UNKNOWN) { @@ -681,9 +681,9 @@ void avcodec_string(char *buf, int buf_size, AVCodecContext *enc, int encode) } if (av_log_get_level() >= AV_LOG_VERBOSE && - enc->chroma_sample_location != AVCHROMA_LOC_UNSPECIFIED) - av_strlcatf(detail, sizeof(detail), "%s, ", - av_chroma_location_name(enc->chroma_sample_location)); + enc->chroma_sample_location != AVCHROMA_LOC_UNSPECIFIED && + (str = av_chroma_location_name(enc->chroma_sample_location))) + av_strlcatf(detail, sizeof(detail), "%s, ", str); if (strlen(detail) > 1) { detail[strlen(detail) - 2] = 0; @@ -741,9 +741,10 @@ void avcodec_string(char *buf, int buf_size, AVCodecContext *enc, int encode) "%d Hz, ", enc->sample_rate); } av_get_channel_layout_string(buf + strlen(buf), buf_size - strlen(buf), enc->channels, enc->channel_layout); - if (enc->sample_fmt != AV_SAMPLE_FMT_NONE) { + if (enc->sample_fmt != AV_SAMPLE_FMT_NONE && + (str = av_get_sample_fmt_name(enc->sample_fmt))) { snprintf(buf + strlen(buf), buf_size - strlen(buf), - ", %s", av_get_sample_fmt_name(enc->sample_fmt)); + ", %s", str); } if ( enc->bits_per_raw_sample > 0 && enc->bits_per_raw_sample != av_get_bytes_per_sample(enc->sample_fmt) * 8) From patchwork Sun Mar 21 09:47:20 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 26511 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 95082449A95 for ; Sun, 21 Mar 2021 11:48:00 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 8027768A995; Sun, 21 Mar 2021 11:48:00 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wr1-f48.google.com (mail-wr1-f48.google.com [209.85.221.48]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 7699368A867 for ; Sun, 21 Mar 2021 11:47:54 +0200 (EET) Received: by mail-wr1-f48.google.com with SMTP id o16so13561037wrn.0 for ; Sun, 21 Mar 2021 02:47:54 -0700 (PDT) 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:reply-to :mime-version:content-transfer-encoding; bh=ZGEILQYRUMdCjSlcEmOO6cxBJd7DTG5hcHUWT3UpQIw=; b=rDEaGggBiPjUW5hCiJ8NjfYT8GRXjjtXruGzoIqIcUXBMDa4bsZFCkcQ66/K9lgnjH e1GM6YKv5WiA/XCh6N5AbOotJNLyiiHuoDUY7ZLXdPdWdxldH5tjPUFl4saXZXL68S+X EAoYb0NTB7Se4PpoGcRqr8tf5H6KjJ2a6zM0TYZfFXqkREgYCyh+6VES/nA01KVXsJVu nsYMaRip25yr3CS8EFcpwKN1EjEw3NjmzQLQWIFLLe/CZQs5WZ/K/Q2Nkzj3n8eKmSfp nUT7Y430jBCn8rCHFwwsfNYbOh3dltFZiVUFuxcqvWM6pDRAzSjCFfDg+uVfQzi9g3Gm U0Tg== 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:reply-to:mime-version:content-transfer-encoding; bh=ZGEILQYRUMdCjSlcEmOO6cxBJd7DTG5hcHUWT3UpQIw=; b=Ik+nTyvpZIX7tDS4IZ/Pk1hFcGmpyA0vbp5h7R8yDV0QVAf2lcLr0ZIVFcS0JeLlnc TpQsUCMl4tOSe7ElrRVeCJd+kxNa7BWwvWc2bmPe351uLLd8kCmpf9TPtBS7fQeuVqvM ShL4mou757gD9ymAjve9vkq7nQeijXsu30OPgzbMpNw+OzUvOJlMpGW3LNQBcSI3r6pD x4JHf5mFTA3JteAstoPIuTvK9TH28xhIYHh2RQWxjRlbvP8I+mf+RFwYrk7MbRYMD5lY sqCSnDB60KNjDa6n3JE+9//Lc2gdBwTgz3ZU85TpkboZU+McK6iRAp39PSm849uurngs WgmA== X-Gm-Message-State: AOAM5321VoXU+NJ9w5RWd2mQmUVyWIdj9OVdT6nDnFxNopBZRj+Zsmvp 9QmK35MVJxr2vFKgMKIjgoMoiJeQhCnmKA== X-Google-Smtp-Source: ABdhPJx8B1Kn7ArNPF+GqrNaFrftcRmr2TQQMRKin/y43JlP2avTgaQOw2WClCC0ZECN9nOTgjIaOA== X-Received: by 2002:adf:fb05:: with SMTP id c5mr13434550wrr.302.1616320073614; Sun, 21 Mar 2021 02:47:53 -0700 (PDT) Received: from sblaptop.fritz.box (ipbcc08960.dynamic.kabel-deutschland.de. [188.192.137.96]) by smtp.gmail.com with ESMTPSA id m14sm11649387wmi.27.2021.03.21.02.47.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 21 Mar 2021 02:47:53 -0700 (PDT) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Sun, 21 Mar 2021 10:47:20 +0100 Message-Id: <20210321094722.447294-3-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20210321094722.447294-1-andreas.rheinhardt@gmail.com> References: <20210321094722.447294-1-andreas.rheinhardt@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 3/5] avcodec/avcodec: Update check for identical colorspace/primaries/trc names 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" If the numerical constants for colorspace, transfer characteristics and color primaries coincide, the current code presumes the corresponding names to be identical and prints only one of them obtained via av_get_colorspace_name(). There are two issues with this: The first is that the underlying assumption is wrong: The names only coincide in the 0-7 range, they differ for more recent additions. The second is that av_get_colorspace_name() is outdated itself; it has not been updated with the names of the newly defined colorspaces. Fix both of this by using the names from av_color_(space|primaries|transfer)_name() and comparing them via strcmp; don't use av_get_colorspace_name() at all. Signed-off-by: Andreas Rheinhardt --- This was our last internal user of av_get_colorspace_name(). libavcodec/avcodec.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/libavcodec/avcodec.c b/libavcodec/avcodec.c index 93383dc9fb..68a3179b07 100644 --- a/libavcodec/avcodec.c +++ b/libavcodec/avcodec.c @@ -655,15 +655,15 @@ void avcodec_string(char *buf, int buf_size, AVCodecContext *enc, int encode) if (enc->colorspace != AVCOL_SPC_UNSPECIFIED || enc->color_primaries != AVCOL_PRI_UNSPECIFIED || enc->color_trc != AVCOL_TRC_UNSPECIFIED) { - if (enc->colorspace != (int)enc->color_primaries || - enc->colorspace != (int)enc->color_trc) { + const char *col = av_x_if_null(av_color_space_name(enc->colorspace), "unknown"); + const char *pri = av_x_if_null(av_color_primaries_name(enc->color_primaries), "unknown"); + const char *trc = av_x_if_null(av_color_transfer_name(enc->color_trc), "unkown"); + if (strcmp(col, pri) || strcmp(col, trc)) { new_line = 1; av_strlcatf(detail, sizeof(detail), "%s/%s/%s, ", - av_x_if_null(av_color_space_name(enc->colorspace), "unknown"), - av_x_if_null(av_color_primaries_name(enc->color_primaries), "unknown"), - av_x_if_null(av_color_transfer_name(enc->color_trc), "unkown")); - } else if (str = av_get_colorspace_name(enc->colorspace)) - av_strlcatf(detail, sizeof(detail), "%s, ", str); + col, pri, trc); + } else + av_strlcatf(detail, sizeof(detail), "%s, ", col); } if (enc->field_order != AV_FIELD_UNKNOWN) { From patchwork Sun Mar 21 09:47:21 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 26514 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 85332449A95 for ; Sun, 21 Mar 2021 11:48:02 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 717F868A993; Sun, 21 Mar 2021 11:48:02 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wm1-f44.google.com (mail-wm1-f44.google.com [209.85.128.44]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id D5F5668A9BE for ; Sun, 21 Mar 2021 11:47:55 +0200 (EET) Received: by mail-wm1-f44.google.com with SMTP id j4-20020a05600c4104b029010c62bc1e20so7542766wmi.3 for ; Sun, 21 Mar 2021 02:47:55 -0700 (PDT) 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:reply-to :mime-version:content-transfer-encoding; bh=bkvOWOiMc21djAiuTLMtgGjUpNUcXWhhDF420Rv83XI=; b=frmNdYgKglFHjqo0t1GoKs2oX6mMANKcGYamDhXdjxivpakZrgjmQqhhd/5Ez7FSVy pIm/8JktFpVesu4wQ5V/L2vAxOuwETa1EOjiJVYdUui5T88wXtW/O8jyQ2dJKRe3aRJp op6ypyswutEuesmecdk3rxMLIE11eWC8ZCuE8a1RI+2be+L1jSxBwMwhb7CDZutnkfch bxbg2cEfDtq5XKu8QVdFJUHwbTP9E0r88MJIZOVoBNloACslebU8JU6T+NbzaPM6M8db Bt4zJqEh7J7PVIiyNBh927oYrsAuk6EsMWCIY5sueRdpAqMm4mRI1iwCQ7rUm4Z7HTmE TLyQ== 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:reply-to:mime-version:content-transfer-encoding; bh=bkvOWOiMc21djAiuTLMtgGjUpNUcXWhhDF420Rv83XI=; b=O2s0eAbfaffUfbyJEu5fEp2lfVeKPT+aYNU1f+ahc6V20rZ8Y639yTdiW18xeU6Zj2 T70Fa/k0uPTiYkgssG83ClhKyWPODU0Fh6RgV66ijoa2wykT5FrwHxujvFl6CdGXs3o7 CzR8BPkIKzgQKu3RHNhN7HgjBeYqSK4pG2IEDiRO72anqbdXpeTWMSj62Yz+NsSapCz8 Q8RvIQJWcvKuJSJgUcRLMamIJb6iHeHdjhAsyrtm1gxjffdUhSIq7oKj3TIrVNn1MBhM siWcmEcbjP3SjPM2XoWIKyEddPJ4pkq6X712vjRvM+PqOVAWJ/RaxGOGoWi/Aphuq2FA 7EXA== X-Gm-Message-State: AOAM533N3tyQP0x8Md5aXa9cNs5qBOA+bhoPmmWBUzaeGioiaXRFRB9G OkMMb1bdk3UjenCZVRztYPegKxoauCqtdQ== X-Google-Smtp-Source: ABdhPJx3gQd/Fz9FwlGWR1GLxktYWZuEonxXtZJNKZtDyMUIftqJZv/RpYdJXS9BOJ1zfPK97CPTlg== X-Received: by 2002:a7b:ce19:: with SMTP id m25mr11231002wmc.74.1616320074962; Sun, 21 Mar 2021 02:47:54 -0700 (PDT) Received: from sblaptop.fritz.box (ipbcc08960.dynamic.kabel-deutschland.de. [188.192.137.96]) by smtp.gmail.com with ESMTPSA id m14sm11649387wmi.27.2021.03.21.02.47.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 21 Mar 2021 02:47:54 -0700 (PDT) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Sun, 21 Mar 2021 10:47:21 +0100 Message-Id: <20210321094722.447294-4-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20210321094722.447294-1-andreas.rheinhardt@gmail.com> References: <20210321094722.447294-1-andreas.rheinhardt@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 4/5] avcodec/avcodec: Use AVBPrint in avcodec_string() 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" It automatically records the current length of the string, whereas the current code contains lots of instances of snprintf(buf + strlen(buf), buf_size - strlen(buf), ...). Signed-off-by: Andreas Rheinhardt --- libavcodec/avcodec.c | 133 +++++++++++++++++++++---------------------- 1 file changed, 65 insertions(+), 68 deletions(-) diff --git a/libavcodec/avcodec.c b/libavcodec/avcodec.c index 68a3179b07..20a237b086 100644 --- a/libavcodec/avcodec.c +++ b/libavcodec/avcodec.c @@ -26,6 +26,7 @@ #include "config.h" #include "libavutil/avassert.h" #include "libavutil/avstring.h" +#include "libavutil/bprint.h" #include "libavutil/imgutils.h" #include "libavutil/mem.h" #include "libavutil/opt.h" @@ -603,6 +604,7 @@ void avcodec_string(char *buf, int buf_size, AVCodecContext *enc, int encode) const char *codec_type; const char *codec_name; const char *profile = NULL; + AVBPrint bprint; int64_t bitrate; int new_line = 0; AVRational display_aspect_ratio; @@ -611,46 +613,54 @@ void avcodec_string(char *buf, int buf_size, AVCodecContext *enc, int encode) if (!buf || buf_size <= 0) return; + av_bprint_init_for_buffer(&bprint, buf, buf_size); codec_type = av_get_media_type_string(enc->codec_type); codec_name = avcodec_get_name(enc->codec_id); profile = avcodec_profile_name(enc->codec_id, enc->profile); - snprintf(buf, buf_size, "%s: %s", codec_type ? codec_type : "unknown", - codec_name); + av_bprintf(&bprint, "%s: %s", codec_type ? codec_type : "unknown", + codec_name); buf[0] ^= 'a' ^ 'A'; /* first letter in uppercase */ if (enc->codec && strcmp(enc->codec->name, codec_name)) - snprintf(buf + strlen(buf), buf_size - strlen(buf), " (%s)", enc->codec->name); + av_bprintf(&bprint, " (%s)", enc->codec->name); if (profile) - snprintf(buf + strlen(buf), buf_size - strlen(buf), " (%s)", profile); + av_bprintf(&bprint, " (%s)", profile); if ( enc->codec_type == AVMEDIA_TYPE_VIDEO && av_log_get_level() >= AV_LOG_VERBOSE && enc->refs) - snprintf(buf + strlen(buf), buf_size - strlen(buf), - ", %d reference frame%s", - enc->refs, enc->refs > 1 ? "s" : ""); + av_bprintf(&bprint, ", %d reference frame%s", + enc->refs, enc->refs > 1 ? "s" : ""); if (enc->codec_tag) - snprintf(buf + strlen(buf), buf_size - strlen(buf), " (%s / 0x%04X)", - av_fourcc2str(enc->codec_tag), enc->codec_tag); + av_bprintf(&bprint, " (%s / 0x%04X)", + av_fourcc2str(enc->codec_tag), enc->codec_tag); switch (enc->codec_type) { case AVMEDIA_TYPE_VIDEO: { - char detail[256] = "("; + unsigned len; - av_strlcat(buf, separator, buf_size); + av_bprintf(&bprint, "%s%s", separator, + enc->pix_fmt == AV_PIX_FMT_NONE ? "none" : + av_x_if_null(av_get_pix_fmt_name(enc->pix_fmt), "unknown")); + + av_bprint_chars(&bprint, '(', 1); + len = bprint.len; + + /* The following check ensures that '(' has been written + * and therefore allows us to erase it if it turns out + * to be unnecessary. */ + if (!av_bprint_is_complete(&bprint)) + return; - snprintf(buf + strlen(buf), buf_size - strlen(buf), - "%s", enc->pix_fmt == AV_PIX_FMT_NONE ? "none" : - av_x_if_null(av_get_pix_fmt_name(enc->pix_fmt), "unknown")); if (enc->bits_per_raw_sample && enc->pix_fmt != AV_PIX_FMT_NONE && enc->bits_per_raw_sample < av_pix_fmt_desc_get(enc->pix_fmt)->comp[0].depth) - av_strlcatf(detail, sizeof(detail), "%d bpc, ", enc->bits_per_raw_sample); + av_bprintf(&bprint, "%d bpc, ", enc->bits_per_raw_sample); if (enc->color_range != AVCOL_RANGE_UNSPECIFIED && (str = av_color_range_name(enc->color_range))) - av_strlcatf(detail, sizeof(detail), "%s, ", str); + av_bprintf(&bprint, "%s, ", str); if (enc->colorspace != AVCOL_SPC_UNSPECIFIED || enc->color_primaries != AVCOL_PRI_UNSPECIFIED || @@ -660,10 +670,9 @@ void avcodec_string(char *buf, int buf_size, AVCodecContext *enc, int encode) const char *trc = av_x_if_null(av_color_transfer_name(enc->color_trc), "unkown"); if (strcmp(col, pri) || strcmp(col, trc)) { new_line = 1; - av_strlcatf(detail, sizeof(detail), "%s/%s/%s, ", - col, pri, trc); + av_bprintf(&bprint, "%s/%s/%s, ", col, pri, trc); } else - av_strlcatf(detail, sizeof(detail), "%s, ", col); + av_bprintf(&bprint, "%s, ", col); } if (enc->field_order != AV_FIELD_UNKNOWN) { @@ -677,120 +686,108 @@ void avcodec_string(char *buf, int buf_size, AVCodecContext *enc, int encode) else if (enc->field_order == AV_FIELD_BT) field_order = "bottom coded first (swapped)"; - av_strlcatf(detail, sizeof(detail), "%s, ", field_order); + av_bprintf(&bprint, "%s, ", field_order); } if (av_log_get_level() >= AV_LOG_VERBOSE && enc->chroma_sample_location != AVCHROMA_LOC_UNSPECIFIED && (str = av_chroma_location_name(enc->chroma_sample_location))) - av_strlcatf(detail, sizeof(detail), "%s, ", str); - - if (strlen(detail) > 1) { - detail[strlen(detail) - 2] = 0; - av_strlcatf(buf, buf_size, "%s)", detail); + av_bprintf(&bprint, "%s, ", str); + + if (len == bprint.len) { + bprint.str[len - 1] = '\0'; + bprint.len--; + } else { + if (bprint.len - 2 < bprint.size) { + /* Erase the last ", " */ + bprint.len -= 2; + bprint.str[bprint.len] = '\0'; + } + av_bprint_chars(&bprint, ')', 1); } } if (enc->width) { - av_strlcat(buf, new_line ? separator : ", ", buf_size); - - snprintf(buf + strlen(buf), buf_size - strlen(buf), - "%dx%d", - enc->width, enc->height); + av_bprintf(&bprint, "%s%dx%d", new_line ? separator : ", ", + enc->width, enc->height); if (av_log_get_level() >= AV_LOG_VERBOSE && (enc->width != enc->coded_width || enc->height != enc->coded_height)) - snprintf(buf + strlen(buf), buf_size - strlen(buf), - " (%dx%d)", enc->coded_width, enc->coded_height); + av_bprintf(&bprint, " (%dx%d)", + enc->coded_width, enc->coded_height); if (enc->sample_aspect_ratio.num) { av_reduce(&display_aspect_ratio.num, &display_aspect_ratio.den, enc->width * (int64_t)enc->sample_aspect_ratio.num, enc->height * (int64_t)enc->sample_aspect_ratio.den, 1024 * 1024); - snprintf(buf + strlen(buf), buf_size - strlen(buf), - " [SAR %d:%d DAR %d:%d]", + av_bprintf(&bprint, " [SAR %d:%d DAR %d:%d]", enc->sample_aspect_ratio.num, enc->sample_aspect_ratio.den, display_aspect_ratio.num, display_aspect_ratio.den); } if (av_log_get_level() >= AV_LOG_DEBUG) { int g = av_gcd(enc->time_base.num, enc->time_base.den); - snprintf(buf + strlen(buf), buf_size - strlen(buf), - ", %d/%d", - enc->time_base.num / g, enc->time_base.den / g); + av_bprintf(&bprint, ", %d/%d", + enc->time_base.num / g, enc->time_base.den / g); } } if (encode) { - snprintf(buf + strlen(buf), buf_size - strlen(buf), - ", q=%d-%d", enc->qmin, enc->qmax); + av_bprintf(&bprint, ", q=%d-%d", enc->qmin, enc->qmax); } else { if (enc->properties & FF_CODEC_PROPERTY_CLOSED_CAPTIONS) - snprintf(buf + strlen(buf), buf_size - strlen(buf), - ", Closed Captions"); + av_bprintf(&bprint, ", Closed Captions"); if (enc->properties & FF_CODEC_PROPERTY_LOSSLESS) - snprintf(buf + strlen(buf), buf_size - strlen(buf), - ", lossless"); + av_bprintf(&bprint, ", lossless"); } break; case AVMEDIA_TYPE_AUDIO: - av_strlcat(buf, separator, buf_size); + av_bprintf(&bprint, "%s", separator); if (enc->sample_rate) { - snprintf(buf + strlen(buf), buf_size - strlen(buf), - "%d Hz, ", enc->sample_rate); + av_bprintf(&bprint, "%d Hz, ", enc->sample_rate); } - av_get_channel_layout_string(buf + strlen(buf), buf_size - strlen(buf), enc->channels, enc->channel_layout); + av_bprint_channel_layout(&bprint, enc->channels, enc->channel_layout); if (enc->sample_fmt != AV_SAMPLE_FMT_NONE && (str = av_get_sample_fmt_name(enc->sample_fmt))) { - snprintf(buf + strlen(buf), buf_size - strlen(buf), - ", %s", str); + av_bprintf(&bprint, ", %s", str); } if ( enc->bits_per_raw_sample > 0 && enc->bits_per_raw_sample != av_get_bytes_per_sample(enc->sample_fmt) * 8) - snprintf(buf + strlen(buf), buf_size - strlen(buf), - " (%d bit)", enc->bits_per_raw_sample); + av_bprintf(&bprint, " (%d bit)", enc->bits_per_raw_sample); if (av_log_get_level() >= AV_LOG_VERBOSE) { if (enc->initial_padding) - snprintf(buf + strlen(buf), buf_size - strlen(buf), - ", delay %d", enc->initial_padding); + av_bprintf(&bprint, ", delay %d", enc->initial_padding); if (enc->trailing_padding) - snprintf(buf + strlen(buf), buf_size - strlen(buf), - ", padding %d", enc->trailing_padding); + av_bprintf(&bprint, ", padding %d", enc->trailing_padding); } break; case AVMEDIA_TYPE_DATA: if (av_log_get_level() >= AV_LOG_DEBUG) { int g = av_gcd(enc->time_base.num, enc->time_base.den); if (g) - snprintf(buf + strlen(buf), buf_size - strlen(buf), - ", %d/%d", - enc->time_base.num / g, enc->time_base.den / g); + av_bprintf(&bprint, ", %d/%d", + enc->time_base.num / g, enc->time_base.den / g); } break; case AVMEDIA_TYPE_SUBTITLE: if (enc->width) - snprintf(buf + strlen(buf), buf_size - strlen(buf), - ", %dx%d", enc->width, enc->height); + av_bprintf(&bprint, ", %dx%d", enc->width, enc->height); break; default: return; } if (encode) { if (enc->flags & AV_CODEC_FLAG_PASS1) - snprintf(buf + strlen(buf), buf_size - strlen(buf), - ", pass 1"); + av_bprintf(&bprint, ", pass 1"); if (enc->flags & AV_CODEC_FLAG_PASS2) - snprintf(buf + strlen(buf), buf_size - strlen(buf), - ", pass 2"); + av_bprintf(&bprint, ", pass 2"); } bitrate = get_bit_rate(enc); if (bitrate != 0) { - snprintf(buf + strlen(buf), buf_size - strlen(buf), - ", %"PRId64" kb/s", bitrate / 1000); + av_bprintf(&bprint, ", %"PRId64" kb/s", bitrate / 1000); } else if (enc->rc_max_rate > 0) { - snprintf(buf + strlen(buf), buf_size - strlen(buf), - ", max. %"PRId64" kb/s", enc->rc_max_rate / 1000); + av_bprintf(&bprint, ", max. %"PRId64" kb/s", enc->rc_max_rate / 1000); } } From patchwork Sun Mar 21 09:47:22 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 26515 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 4A8CC449A95 for ; Sun, 21 Mar 2021 11:48:03 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 3492368AA07; Sun, 21 Mar 2021 11:48:03 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wm1-f49.google.com (mail-wm1-f49.google.com [209.85.128.49]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id D70D868A862 for ; Sun, 21 Mar 2021 11:47:56 +0200 (EET) Received: by mail-wm1-f49.google.com with SMTP id 12so7790823wmf.5 for ; Sun, 21 Mar 2021 02:47:56 -0700 (PDT) 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:reply-to :mime-version:content-transfer-encoding; bh=WvGVxg8hof3HVadB+YiQAQunA40G7cih0aUiegeIxJM=; b=SloVbTWd4oHjXw+G8RquSbaJMyaKyk4ZNVR+taL0ewwnb5xz8Mr1l6fstfItbWsWMk 4Hdzye4nmyEyxWc6B00DKDhKfh+eCqm7uUATfwjwb6MGPcLx/84m8Uz5hH2XRxwN1wwh +LKw2uWpBf14QOyS3aGUtepdyzWCZ7LMae1ShSR0/fzSCNtO2VboNEPWHVqZYxGwCXkR fEozUn0k7eNJLAJPu2Bw2vEAN/lNYQtSLiNg3Ht/IHQH192cfRz3MAaxRTr4HdaHR9tc 1hXJeDBCh1Q8Paqr30HpAbsC10iIjYwSDoY/bDTcEQ0LP7nCpuqcydbGjMi9+o6B3quJ gqDw== 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:reply-to:mime-version:content-transfer-encoding; bh=WvGVxg8hof3HVadB+YiQAQunA40G7cih0aUiegeIxJM=; b=lCBoKgxhMhzGFIMWkfFldI+d73bKCrPeC7Q00Ufdv5U+BuWPOXfdAqFYEZo3T5MHSB CP5UMN3W3AP1rLhicl5+xxLaZ084CAUA/ZpqT01Hh3AmfZeN+wSqXh1sahaUhYrGGxZ0 2e2jkAb29YY81e68x/wAs1Mejbv14DyobyFwfg9w5j1wjcV3s2ydi9VcyT+f6CF2fOHz yYKPjDRZrq9l9J2J7elkg/jyyT9rVqZkoy0fzrXuf3RLTyfqa+pEEo2qd6m1KgmOAgnC e76Zx2XxbROBCwP06hwmIV1K3qCqS0B3owuOEn3q6yOl0mjGV6XPJSuq5gRZYnDpU260 92xg== X-Gm-Message-State: AOAM5303gydJBkBjuXmvJ2nSRI7akqkFclBbRFskbTztIVrd2QThEPgN J8w/J+yJgQOpOZUdbwqkWHeZ1BfYpivNdg== X-Google-Smtp-Source: ABdhPJyS2PaoCoIXQSiRLz8j0+ygg7MC3Le+OluRyYoeU5C560rpc5lO3KM5ZRzUznI0KR618P6ILw== X-Received: by 2002:a7b:c35a:: with SMTP id l26mr11211815wmj.104.1616320076165; Sun, 21 Mar 2021 02:47:56 -0700 (PDT) Received: from sblaptop.fritz.box (ipbcc08960.dynamic.kabel-deutschland.de. [188.192.137.96]) by smtp.gmail.com with ESMTPSA id m14sm11649387wmi.27.2021.03.21.02.47.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 21 Mar 2021 02:47:55 -0700 (PDT) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Sun, 21 Mar 2021 10:47:22 +0100 Message-Id: <20210321094722.447294-5-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20210321094722.447294-1-andreas.rheinhardt@gmail.com> References: <20210321094722.447294-1-andreas.rheinhardt@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 5/5] avutil/frame: Deprecate av_get_colorspace_name() 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" Contrary to av_color_space_name() it doesn't even support newer colorspaces. Signed-off-by: Andreas Rheinhardt --- doc/APIchanges | 4 ++++ libavutil/frame.c | 3 ++- libavutil/frame.h | 5 ++++- libavutil/version.h | 5 ++++- 4 files changed, 14 insertions(+), 3 deletions(-) diff --git a/doc/APIchanges b/doc/APIchanges index c928887f79..b41dadee8d 100644 --- a/doc/APIchanges +++ b/doc/APIchanges @@ -15,6 +15,10 @@ libavutil: 2017-10-21 API changes, most recent first: +2021-03-21 - xxxxxxxxxx - lavu 56.72.100 - frame.h + Deprecated av_get_colorspace_name(). + Use av_color_space_name() instead. + -------- 8< --------- FFmpeg 4.4 was cut here -------- 8< --------- 2021-03-19 - e8c0bca6bd - lavu 56.69.100 - adler32.h diff --git a/libavutil/frame.c b/libavutil/frame.c index 75e347bf2f..31a2117b82 100644 --- a/libavutil/frame.c +++ b/libavutil/frame.c @@ -120,6 +120,7 @@ FF_ENABLE_DEPRECATION_WARNINGS } #endif +#if FF_API_COLORSPACE_NAME const char *av_get_colorspace_name(enum AVColorSpace val) { static const char * const name[] = { @@ -135,7 +136,7 @@ const char *av_get_colorspace_name(enum AVColorSpace val) return NULL; return name[val]; } - +#endif static void get_frame_defaults(AVFrame *frame) { if (frame->extended_data != frame->data) diff --git a/libavutil/frame.h b/libavutil/frame.h index 7d1f8e2935..c24d52d1c6 100644 --- a/libavutil/frame.h +++ b/libavutil/frame.h @@ -754,12 +754,15 @@ attribute_deprecated void av_frame_set_color_range(AVFrame *frame, enum AVColorRange val); #endif +#if FF_API_COLORSPACE_NAME /** * Get the name of a colorspace. * @return a static string identifying the colorspace; can be NULL. + * @deprecated use av_color_space_name */ +attribute_deprecated const char *av_get_colorspace_name(enum AVColorSpace val); - +#endif /** * Allocate an AVFrame and set its fields to default values. The resulting * struct must be freed using av_frame_free(). diff --git a/libavutil/version.h b/libavutil/version.h index 55072f8246..e88e1ad08d 100644 --- a/libavutil/version.h +++ b/libavutil/version.h @@ -79,7 +79,7 @@ */ #define LIBAVUTIL_VERSION_MAJOR 56 -#define LIBAVUTIL_VERSION_MINOR 71 +#define LIBAVUTIL_VERSION_MINOR 72 #define LIBAVUTIL_VERSION_MICRO 100 #define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \ @@ -141,6 +141,9 @@ #ifndef FF_API_DECLARE_ALIGNED #define FF_API_DECLARE_ALIGNED (LIBAVUTIL_VERSION_MAJOR < 58) #endif +#ifndef FF_API_COLORSPACE_NAME +#define FF_API_COLORSPACE_NAME (LIBAVUTIL_VERSION_MAJOR < 58) +#endif /** * @}