From patchwork Mon May 18 16:33:24 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 19745 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 2486744AD8C for ; Mon, 18 May 2020 19:33:54 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 0F8A568A7E1; Mon, 18 May 2020 19:33:54 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qv1-f43.google.com (mail-qv1-f43.google.com [209.85.219.43]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id A9ECC687FA0 for ; Mon, 18 May 2020 19:33:47 +0300 (EEST) Received: by mail-qv1-f43.google.com with SMTP id z5so5009338qvw.4 for ; Mon, 18 May 2020 09:33:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:mime-version :content-transfer-encoding; bh=r7Iy96rRg+xWURudwcUoX4BrnENdOsp5fTUiMKiR6kM=; b=fZPjaQ0ohUM4IuRZ2NZAwptpWKkLUgfVZBTpjg0zpEOsxk5Gl7lksEVicj6ghmn8/V g4rFqBem87FIbG8aSrfYSyB7viNI3F/5uo4gxGKnBNgY0S73v3UQuZCfIYrCrCkH/2P6 gISxHzKOkRJ8qfafzo1EKLtdbRM2DIDS+K3k7ytI8SjTkHClMM9QypJvzTEYd8F+mVpY mVkxlxa7kckIOGHuT0+SA4oihq0Qdjdp5vobXka9IxSab2hu7vmlrcD24o+FYI99obZR M6Ay4dPj/gbCAB3TBW5nv/FO947/g0tkIiJFhZ8OB8e7Wu6jb96jipwKErewvUXRo9Ka ipPw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:mime-version :content-transfer-encoding; bh=r7Iy96rRg+xWURudwcUoX4BrnENdOsp5fTUiMKiR6kM=; b=Vtmb/LZgesPZwlDy2drJ3XPxuu+jLfQTECId+Wx8TC3bLmCRZ0q+CqgnQ4gt9/YEiB Rz8M8cDCJzFjaU9qdHNDr28yC26vkze+BqHg/CFsgApiZlZfiwtOaJgZnLlZ7yzvOZfl YShs9wsEMYRO6ezMxVwUsDaC9atAk60N3k812pQKM7N8ZwF+lBTuL30rBc2Q7MGBgHso Aykv0swIizHxkuCkaZZjHl8608YWRc0Ks1n1NbZ6aBiHook61Ua/B14UV+znWydDRAkK CC6gLYFKPpY8K7PMOlsnPDza1O86WB8ML1szsR+LFl6vWsfZSJYK6PkwY0YAO+2Ntwbx WRFQ== X-Gm-Message-State: AOAM532pzA+yMj97DhRwuzlXvfF5EmVuelUYanRm2ETbru2Vfbs4kISp /0SUqrTwkZiXojOg8xKAtoIadPRD X-Google-Smtp-Source: ABdhPJxISBc/s9D5YJP+t9y5nAyYQmNfXvljAvgSOKGQS5KkYN24E4ITEGi1V6oqEoHPvtk02adRNQ== X-Received: by 2002:a0c:e6c2:: with SMTP id l2mr16768491qvn.91.1589819626044; Mon, 18 May 2020 09:33:46 -0700 (PDT) Received: from localhost.localdomain ([191.83.209.22]) by smtp.gmail.com with ESMTPSA id t21sm9794146qtb.0.2020.05.18.09.33.44 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 18 May 2020 09:33:44 -0700 (PDT) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Mon, 18 May 2020 13:33:24 -0300 Message-Id: <20200518163326.4932-1-jamrial@gmail.com> X-Mailer: git-send-email 2.26.2 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 1/3] fftools/ffmpeg_filter: check the codec's descriptor to see if it's lossless 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" Signed-off-by: James Almer --- fftools/ffmpeg_filter.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/fftools/ffmpeg_filter.c b/fftools/ffmpeg_filter.c index 8b5b157be7..422e1268e9 100644 --- a/fftools/ffmpeg_filter.c +++ b/fftools/ffmpeg_filter.c @@ -99,7 +99,8 @@ void choose_sample_fmt(AVStream *st, AVCodec *codec) break; } if (*p == -1) { - if((codec->capabilities & AV_CODEC_CAP_LOSSLESS) && av_get_sample_fmt_name(st->codecpar->format) > av_get_sample_fmt_name(codec->sample_fmts[0])) + const AVCodecDescriptor *desc = avcodec_descriptor_get(codec->id); + if(desc && (desc->props & AV_CODEC_PROP_LOSSLESS) && av_get_sample_fmt_name(st->codecpar->format) > av_get_sample_fmt_name(codec->sample_fmts[0])) av_log(NULL, AV_LOG_ERROR, "Conversion will not be lossless.\n"); if(av_get_sample_fmt_name(st->codecpar->format)) av_log(NULL, AV_LOG_WARNING, From patchwork Mon May 18 16:33:25 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 19746 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 1BDE344AD8C for ; Mon, 18 May 2020 19:33:56 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 0844868A8E9; Mon, 18 May 2020 19:33:56 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qk1-f193.google.com (mail-qk1-f193.google.com [209.85.222.193]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id BDCB0687FA0 for ; Mon, 18 May 2020 19:33:49 +0300 (EEST) Received: by mail-qk1-f193.google.com with SMTP id z80so10752652qka.0 for ; Mon, 18 May 2020 09:33:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=NEyv41vJM6OChmUmRmzMcTqerDQFAkc/oCade99KfbI=; b=G0bB3jGvPP8bGLsHasW7TFcvZmDfjThFN8rJc5beXUZyBfqu4OZ2IT09yzXxJvBRHX tx4OxUUxjNc83u8whTDJw2slnNEXkUijzX6a6+TqSJj4cjIjMr/l5bKW0DQ8RUgs4EG0 +RbjCMrSwD7csXaQ0nwsQfNh12tukqM5u79XNMgkC4ccLWuxxdYmjaDeRs/jPrFvYJ3g UFDXvZH2MsTf9oyS9Ysk8XL+274pS9AJ8s5CYptIBX85mB1RtIXWA/X7c9wEJSZdHZew iS28t8hgKaVSuMil4vcg+WOBv3rP9Sxp4WFlhXPS7HZ6v3OoqzWIXoczAGzP6rNjgNJd 4/Zg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=NEyv41vJM6OChmUmRmzMcTqerDQFAkc/oCade99KfbI=; b=c6dVB4xrevFKQt22S0LmUTvV/qCg9upwc+iT9Wg/rRQrFGReW0vm2eLboCdUMUcKIG qhtNIfMlRB973i4JZmynmDmoN9R5PcHqOhlGoyouQDSIWagUARoPEqbbHqNd5MeSiTah nJy8HLnFHGpJtAo3RENinWyAsluDHCo9U1z6FFHr3NSqPGWVyhMNDEBNyL67IiPUfBVe 0FcAnjBOHGEuQiy68ld6CkZ6J6Dsodl6qIMDpY2WoRIOZFhKur1f8udn7T37hTWFBPQf 7IWnW4LGtHQLnxAfIid+2sSKq9qMTaV6VbqViDwvBpA+R3xsekbc8VOFS0Iecl4z713j lqGA== X-Gm-Message-State: AOAM530L3yt/IaHMl+YEuBz2rTl5k3pxJBcwWNep8268CPK57PmUtzPM RnzlnDUM6pLcvuRK0H2ddbGkqKgl X-Google-Smtp-Source: ABdhPJwSKHes+UX0O6DOhu9SAYPXaTdbp5+/yoqL/9an/8Njkp/M7qtAZKk3++YStTb/ObZQbtXi+Q== X-Received: by 2002:a37:a896:: with SMTP id r144mr16829009qke.251.1589819627847; Mon, 18 May 2020 09:33:47 -0700 (PDT) Received: from localhost.localdomain ([191.83.209.22]) by smtp.gmail.com with ESMTPSA id t21sm9794146qtb.0.2020.05.18.09.33.46 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 18 May 2020 09:33:46 -0700 (PDT) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Mon, 18 May 2020 13:33:25 -0300 Message-Id: <20200518163326.4932-2-jamrial@gmail.com> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20200518163326.4932-1-jamrial@gmail.com> References: <20200518163326.4932-1-jamrial@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 2/3] fftools/cmdutils: remove lossless and intra only capability entries from print_codec() 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 codec properties, not encoder capabilities. Signed-off-by: James Almer --- fftools/cmdutils.c | 4 ---- 1 file changed, 4 deletions(-) diff --git a/fftools/cmdutils.c b/fftools/cmdutils.c index 7f5a5ca664..7bec1db18b 100644 --- a/fftools/cmdutils.c +++ b/fftools/cmdutils.c @@ -1423,10 +1423,6 @@ static void print_codec(const AVCodec *c) printf("threads "); if (c->capabilities & AV_CODEC_CAP_AVOID_PROBING) printf("avoidprobe "); - if (c->capabilities & AV_CODEC_CAP_INTRA_ONLY) - printf("intraonly "); - if (c->capabilities & AV_CODEC_CAP_LOSSLESS) - printf("lossless "); if (c->capabilities & AV_CODEC_CAP_HARDWARE) printf("hardware "); if (c->capabilities & AV_CODEC_CAP_HYBRID) From patchwork Mon May 18 16:33:26 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 19747 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 127F444AD8C for ; Mon, 18 May 2020 19:34:00 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id F346668AA64; Mon, 18 May 2020 19:33:59 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qk1-f194.google.com (mail-qk1-f194.google.com [209.85.222.194]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 983C7687FA0 for ; Mon, 18 May 2020 19:33:52 +0300 (EEST) Received: by mail-qk1-f194.google.com with SMTP id 190so10754407qki.1 for ; Mon, 18 May 2020 09:33:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=O3+2xkBXs2uBrMNcQs1d6EV3pLkLiRDs2Z+ploXKNOE=; b=Oc/ZKTbSU6P4jgSKjO8PpmNpBDYGyN0+jHG6VbeMrqnTg38L2Pn1SU+54MzmcGzH4x GTO3w3YIInWiRxuyC5KCYce2xqaOa4XSWsi3C20L/snnDaKH2dFgnvrRL2wHS1c6Mzhl ibiLmpoLwQcGbqTeX28zLtayTb8llryzRYUeYFgqjrecdkBf09zdssL6AORfZfzhlBDq G/FBEuqo45f5ux/c+G0LMwTvVOEtoNka5QCtRN8yu8j6DeikNb8T2AOWHlznxnOdKKrL f36Vn6ktYW5NRfFuVdegCu1vSqJOSZe/qEtU3bz7993cKJNhhwxu2/99iDPGRPNaLc+W hM9w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=O3+2xkBXs2uBrMNcQs1d6EV3pLkLiRDs2Z+ploXKNOE=; b=iejAsJJe0Rw4f6rG94odpHwkFRwplgUiWtO78bdFGSSIWzLKo+GK2+lMv3RU0Hb9oK JXZ2Dz24RZXO30H6fpl6+ELXA5IIwVQrAEFh/DWXpBcz/F+q/t2EIb38W/59cluW0R++ gGIkAKT2UUp/Uo1lx4U8ZDvsvYTuYFwsr6BL9WKFOSmKwA7bSkeBDSPWtpEOuVhgYmpV O5wULgvWG6/WxTPof2lVxnoxAVlFXDhLVO7qiRqWQVzyH4u8mFfyHQ8oADYSKX+oL6cY OjZHNnqiQNVe97pzNNIqy9/HwnJoYcSvNlz15iQObOEFGJt/bFaUt+8lKTelnbtn/C+I eYHg== X-Gm-Message-State: AOAM531JG+qvMT5caryeaZn1WRyUpXzYosHr7V1b84rWg9+qDOYaxnPD 9+0PGGPSkxeUugG3V/yo2Vm+YdaN X-Google-Smtp-Source: ABdhPJzmFKGxfBEYCF/Yya9xnfCMRRAZ4AUjurbT5kWNDoUv0ZLRoouKBfKsfyLSVl4zGalQIJV6OQ== X-Received: by 2002:a05:620a:641:: with SMTP id a1mr16810244qka.298.1589819630186; Mon, 18 May 2020 09:33:50 -0700 (PDT) Received: from localhost.localdomain ([191.83.209.22]) by smtp.gmail.com with ESMTPSA id t21sm9794146qtb.0.2020.05.18.09.33.48 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 18 May 2020 09:33:48 -0700 (PDT) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Mon, 18 May 2020 13:33:26 -0300 Message-Id: <20200518163326.4932-3-jamrial@gmail.com> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20200518163326.4932-1-jamrial@gmail.com> References: <20200518163326.4932-1-jamrial@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 3/3] avcodec: deprecate Lossless and Intra Only encoder capabilites 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" Both are codec properties and not encoder capabilities. The relevant AVCodecDescriptor.props flags exist for this purpose. Signed-off-by: James Almer --- doc/APIchanges | 3 +++ libavcodec/audiotoolboxenc.c | 2 +- libavcodec/avcodec.h | 7 +++++-- libavcodec/avuienc.c | 2 +- libavcodec/dnxhdenc.c | 2 +- libavcodec/dvenc.c | 2 +- libavcodec/flacenc.c | 2 +- libavcodec/huffyuvenc.c | 4 ++-- libavcodec/jpeglsenc.c | 2 +- libavcodec/lclenc.c | 2 +- libavcodec/libopenjpegenc.c | 2 +- libavcodec/librsvgdec.c | 2 +- libavcodec/ljpegenc.c | 2 +- libavcodec/magicyuvenc.c | 2 +- libavcodec/mjpegenc.c | 2 +- libavcodec/pngenc.c | 2 +- libavcodec/proresenc_anatoliy.c | 4 ++-- libavcodec/proresenc_kostya.c | 2 +- libavcodec/r210enc.c | 3 --- libavcodec/tiffenc.c | 2 +- libavcodec/ttaenc.c | 2 +- libavcodec/utvideoenc.c | 2 +- libavcodec/v308enc.c | 1 - libavcodec/v408enc.c | 2 -- libavcodec/vaapi_encode_mjpeg.c | 3 +-- libavcodec/version.h | 5 ++++- libavcodec/xfaceenc.c | 1 - libavcodec/y41penc.c | 1 - libavcodec/yuv4enc.c | 1 - 29 files changed, 34 insertions(+), 35 deletions(-) diff --git a/doc/APIchanges b/doc/APIchanges index 986ca9f206..39428308c4 100644 --- a/doc/APIchanges +++ b/doc/APIchanges @@ -15,6 +15,9 @@ libavutil: 2017-10-21 API changes, most recent first: +2020-05-xx - xxxxxxxxxx - lavc 56.85.100 - avcodec.h + Deprecated AV_CODEC_CAP_INTRA_ONLY and AV_CODEC_CAP_LOSSLESS. + 2020-05-xx - xxxxxxxxxx - lavu 56.46.100 - common.h Add av_sat_add64() and av_sat_sub64() diff --git a/libavcodec/audiotoolboxenc.c b/libavcodec/audiotoolboxenc.c index 27632decf5..e8748b3c68 100644 --- a/libavcodec/audiotoolboxenc.c +++ b/libavcodec/audiotoolboxenc.c @@ -656,7 +656,7 @@ static const uint64_t aac_at_channel_layouts[] = { FFAT_ENC(aac, AV_CODEC_ID_AAC, aac_profiles, , .channel_layouts = aac_at_channel_layouts) //FFAT_ENC(adpcm_ima_qt, AV_CODEC_ID_ADPCM_IMA_QT, NULL) -FFAT_ENC(alac, AV_CODEC_ID_ALAC, NULL, | AV_CODEC_CAP_VARIABLE_FRAME_SIZE | AV_CODEC_CAP_LOSSLESS) +FFAT_ENC(alac, AV_CODEC_ID_ALAC, NULL, | AV_CODEC_CAP_VARIABLE_FRAME_SIZE) FFAT_ENC(ilbc, AV_CODEC_ID_ILBC, NULL) FFAT_ENC(pcm_alaw, AV_CODEC_ID_PCM_ALAW, NULL) FFAT_ENC(pcm_mulaw, AV_CODEC_ID_PCM_MULAW, NULL) diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h index c9baf859ac..4d04787b2d 100644 --- a/libavcodec/avcodec.h +++ b/libavcodec/avcodec.h @@ -483,14 +483,17 @@ typedef struct RcOverride{ * choice for probing. */ #define AV_CODEC_CAP_AVOID_PROBING (1 << 17) + +#if FF_API_UNUSED_CODEC_CAPS /** - * Codec is intra only. + * Deprecated and unused. Use AVCodecDescriptor.props instead */ #define AV_CODEC_CAP_INTRA_ONLY 0x40000000 /** - * Codec is lossless. + * Deprecated and unused. Use AVCodecDescriptor.props instead */ #define AV_CODEC_CAP_LOSSLESS 0x80000000 +#endif /** * Codec is backed by a hardware implementation. Typically used to diff --git a/libavcodec/avuienc.c b/libavcodec/avuienc.c index b219906706..2091309e7e 100644 --- a/libavcodec/avuienc.c +++ b/libavcodec/avuienc.c @@ -98,6 +98,6 @@ AVCodec ff_avui_encoder = { .id = AV_CODEC_ID_AVUI, .init = avui_encode_init, .encode2 = avui_encode_frame, - .capabilities = AV_CODEC_CAP_EXPERIMENTAL | AV_CODEC_CAP_INTRA_ONLY, + .capabilities = AV_CODEC_CAP_EXPERIMENTAL, .pix_fmts = (const enum AVPixelFormat[]){ AV_PIX_FMT_UYVY422, AV_PIX_FMT_NONE }, }; diff --git a/libavcodec/dnxhdenc.c b/libavcodec/dnxhdenc.c index 32ac90f751..fad8400c21 100644 --- a/libavcodec/dnxhdenc.c +++ b/libavcodec/dnxhdenc.c @@ -1396,7 +1396,7 @@ AVCodec ff_dnxhd_encoder = { .init = dnxhd_encode_init, .encode2 = dnxhd_encode_picture, .close = dnxhd_encode_end, - .capabilities = AV_CODEC_CAP_SLICE_THREADS | AV_CODEC_CAP_FRAME_THREADS | AV_CODEC_CAP_INTRA_ONLY, + .capabilities = AV_CODEC_CAP_SLICE_THREADS | AV_CODEC_CAP_FRAME_THREADS, .caps_internal = FF_CODEC_CAP_INIT_CLEANUP, .pix_fmts = (const enum AVPixelFormat[]) { AV_PIX_FMT_YUV422P, diff --git a/libavcodec/dvenc.c b/libavcodec/dvenc.c index dca57feb4f..3e98d1b38c 100644 --- a/libavcodec/dvenc.c +++ b/libavcodec/dvenc.c @@ -1220,7 +1220,7 @@ AVCodec ff_dvvideo_encoder = { .priv_data_size = sizeof(DVVideoContext), .init = dvvideo_encode_init, .encode2 = dvvideo_encode_frame, - .capabilities = AV_CODEC_CAP_SLICE_THREADS | AV_CODEC_CAP_FRAME_THREADS | AV_CODEC_CAP_INTRA_ONLY, + .capabilities = AV_CODEC_CAP_SLICE_THREADS | AV_CODEC_CAP_FRAME_THREADS, .pix_fmts = (const enum AVPixelFormat[]) { AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV420P, AV_PIX_FMT_NONE diff --git a/libavcodec/flacenc.c b/libavcodec/flacenc.c index 170c3caf48..8e7dbc52b4 100644 --- a/libavcodec/flacenc.c +++ b/libavcodec/flacenc.c @@ -1508,7 +1508,7 @@ AVCodec ff_flac_encoder = { .init = flac_encode_init, .encode2 = flac_encode_frame, .close = flac_encode_close, - .capabilities = AV_CODEC_CAP_SMALL_LAST_FRAME | AV_CODEC_CAP_DELAY | AV_CODEC_CAP_LOSSLESS, + .capabilities = AV_CODEC_CAP_SMALL_LAST_FRAME | AV_CODEC_CAP_DELAY, .sample_fmts = (const enum AVSampleFormat[]){ AV_SAMPLE_FMT_S16, AV_SAMPLE_FMT_S32, AV_SAMPLE_FMT_NONE }, diff --git a/libavcodec/huffyuvenc.c b/libavcodec/huffyuvenc.c index a6f0d06445..28a5534535 100644 --- a/libavcodec/huffyuvenc.c +++ b/libavcodec/huffyuvenc.c @@ -1091,7 +1091,7 @@ AVCodec ff_huffyuv_encoder = { .init = encode_init, .encode2 = encode_frame, .close = encode_end, - .capabilities = AV_CODEC_CAP_FRAME_THREADS | AV_CODEC_CAP_INTRA_ONLY, + .capabilities = AV_CODEC_CAP_FRAME_THREADS, .priv_class = &normal_class, .pix_fmts = (const enum AVPixelFormat[]){ AV_PIX_FMT_YUV422P, AV_PIX_FMT_RGB24, @@ -1111,7 +1111,7 @@ AVCodec ff_ffvhuff_encoder = { .init = encode_init, .encode2 = encode_frame, .close = encode_end, - .capabilities = AV_CODEC_CAP_FRAME_THREADS | AV_CODEC_CAP_INTRA_ONLY, + .capabilities = AV_CODEC_CAP_FRAME_THREADS, .priv_class = &ff_class, .pix_fmts = (const enum AVPixelFormat[]){ AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUV411P, diff --git a/libavcodec/jpeglsenc.c b/libavcodec/jpeglsenc.c index 1208cda396..5ecd430db7 100644 --- a/libavcodec/jpeglsenc.c +++ b/libavcodec/jpeglsenc.c @@ -471,7 +471,7 @@ AVCodec ff_jpegls_encoder = { .priv_data_size = sizeof(JPEGLSContext), .priv_class = &jpegls_class, .init = encode_init_ls, - .capabilities = AV_CODEC_CAP_FRAME_THREADS | AV_CODEC_CAP_INTRA_ONLY, + .capabilities = AV_CODEC_CAP_FRAME_THREADS, .encode2 = encode_picture_ls, .pix_fmts = (const enum AVPixelFormat[]) { AV_PIX_FMT_BGR24, AV_PIX_FMT_RGB24, diff --git a/libavcodec/lclenc.c b/libavcodec/lclenc.c index 357313df49..4fe52b40da 100644 --- a/libavcodec/lclenc.c +++ b/libavcodec/lclenc.c @@ -176,7 +176,7 @@ AVCodec ff_zlib_encoder = { .init = encode_init, .encode2 = encode_frame, .close = encode_end, - .capabilities = AV_CODEC_CAP_FRAME_THREADS | AV_CODEC_CAP_INTRA_ONLY, + .capabilities = AV_CODEC_CAP_FRAME_THREADS, .pix_fmts = (const enum AVPixelFormat[]) { AV_PIX_FMT_BGR24, AV_PIX_FMT_NONE }, .caps_internal = FF_CODEC_CAP_INIT_THREADSAFE | FF_CODEC_CAP_INIT_CLEANUP, diff --git a/libavcodec/libopenjpegenc.c b/libavcodec/libopenjpegenc.c index 199800898e..e4641235f5 100644 --- a/libavcodec/libopenjpegenc.c +++ b/libavcodec/libopenjpegenc.c @@ -763,7 +763,7 @@ AVCodec ff_libopenjpeg_encoder = { .priv_data_size = sizeof(LibOpenJPEGContext), .init = libopenjpeg_encode_init, .encode2 = libopenjpeg_encode_frame, - .capabilities = AV_CODEC_CAP_FRAME_THREADS | AV_CODEC_CAP_INTRA_ONLY, + .capabilities = AV_CODEC_CAP_FRAME_THREADS, .pix_fmts = (const enum AVPixelFormat[]) { AV_PIX_FMT_RGB24, AV_PIX_FMT_RGBA, AV_PIX_FMT_RGB48, AV_PIX_FMT_RGBA64, AV_PIX_FMT_GBR24P, diff --git a/libavcodec/librsvgdec.c b/libavcodec/librsvgdec.c index 6697785026..e9a181d092 100644 --- a/libavcodec/librsvgdec.c +++ b/libavcodec/librsvgdec.c @@ -125,6 +125,6 @@ AVCodec ff_librsvg_decoder = { .id = AV_CODEC_ID_SVG, .decode = librsvg_decode_frame, .priv_data_size = sizeof(LibRSVGContext), - .capabilities = AV_CODEC_CAP_LOSSLESS | AV_CODEC_CAP_DR1, + .capabilities = AV_CODEC_CAP_DR1, .wrapper_name = "librsvg", }; diff --git a/libavcodec/ljpegenc.c b/libavcodec/ljpegenc.c index 924d2e2fff..70eff9e6fe 100644 --- a/libavcodec/ljpegenc.c +++ b/libavcodec/ljpegenc.c @@ -360,7 +360,7 @@ AVCodec ff_ljpeg_encoder = { .init = ljpeg_encode_init, .encode2 = ljpeg_encode_frame, .close = ljpeg_encode_close, - .capabilities = AV_CODEC_CAP_FRAME_THREADS | AV_CODEC_CAP_INTRA_ONLY, + .capabilities = AV_CODEC_CAP_FRAME_THREADS, .pix_fmts = (const enum AVPixelFormat[]){ AV_PIX_FMT_BGR24 , AV_PIX_FMT_BGRA , AV_PIX_FMT_BGR0, AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_YUVJ422P, diff --git a/libavcodec/magicyuvenc.c b/libavcodec/magicyuvenc.c index 16e9a1c28d..e9fe3bf519 100644 --- a/libavcodec/magicyuvenc.c +++ b/libavcodec/magicyuvenc.c @@ -581,7 +581,7 @@ AVCodec ff_magicyuv_encoder = { .init = magy_encode_init, .close = magy_encode_close, .encode2 = magy_encode_frame, - .capabilities = AV_CODEC_CAP_FRAME_THREADS | AV_CODEC_CAP_INTRA_ONLY, + .capabilities = AV_CODEC_CAP_FRAME_THREADS, .pix_fmts = (const enum AVPixelFormat[]) { AV_PIX_FMT_GBRP, AV_PIX_FMT_GBRAP, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUVA444P, AV_PIX_FMT_GRAY8, diff --git a/libavcodec/mjpegenc.c b/libavcodec/mjpegenc.c index 0ea7bd3d10..7bf4de27ea 100644 --- a/libavcodec/mjpegenc.c +++ b/libavcodec/mjpegenc.c @@ -414,7 +414,7 @@ AVCodec ff_mjpeg_encoder = { .init = ff_mpv_encode_init, .encode2 = ff_mpv_encode_picture, .close = ff_mpv_encode_end, - .capabilities = AV_CODEC_CAP_SLICE_THREADS | AV_CODEC_CAP_FRAME_THREADS | AV_CODEC_CAP_INTRA_ONLY, + .capabilities = AV_CODEC_CAP_SLICE_THREADS | AV_CODEC_CAP_FRAME_THREADS, .pix_fmts = (const enum AVPixelFormat[]) { AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_YUVJ422P, AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_NONE }, diff --git a/libavcodec/pngenc.c b/libavcodec/pngenc.c index d4d8dc8b5e..331a0aa687 100644 --- a/libavcodec/pngenc.c +++ b/libavcodec/pngenc.c @@ -1146,7 +1146,7 @@ AVCodec ff_png_encoder = { .init = png_enc_init, .close = png_enc_close, .encode2 = encode_png, - .capabilities = AV_CODEC_CAP_FRAME_THREADS | AV_CODEC_CAP_INTRA_ONLY, + .capabilities = AV_CODEC_CAP_FRAME_THREADS, .pix_fmts = (const enum AVPixelFormat[]) { AV_PIX_FMT_RGB24, AV_PIX_FMT_RGBA, AV_PIX_FMT_RGB48BE, AV_PIX_FMT_RGBA64BE, diff --git a/libavcodec/proresenc_anatoliy.c b/libavcodec/proresenc_anatoliy.c index 11d05022dc..1128978330 100644 --- a/libavcodec/proresenc_anatoliy.c +++ b/libavcodec/proresenc_anatoliy.c @@ -952,7 +952,7 @@ AVCodec ff_prores_aw_encoder = { .close = prores_encode_close, .encode2 = prores_encode_frame, .pix_fmts = (const enum AVPixelFormat[]){AV_PIX_FMT_YUV422P10, AV_PIX_FMT_YUV444P10, AV_PIX_FMT_YUVA444P10, AV_PIX_FMT_NONE}, - .capabilities = AV_CODEC_CAP_FRAME_THREADS | AV_CODEC_CAP_INTRA_ONLY, + .capabilities = AV_CODEC_CAP_FRAME_THREADS, .priv_class = &proresaw_enc_class, .profiles = NULL_IF_CONFIG_SMALL(ff_prores_profiles), }; @@ -967,7 +967,7 @@ AVCodec ff_prores_encoder = { .close = prores_encode_close, .encode2 = prores_encode_frame, .pix_fmts = (const enum AVPixelFormat[]){AV_PIX_FMT_YUV422P10, AV_PIX_FMT_YUV444P10, AV_PIX_FMT_YUVA444P10, AV_PIX_FMT_NONE}, - .capabilities = AV_CODEC_CAP_FRAME_THREADS | AV_CODEC_CAP_INTRA_ONLY, + .capabilities = AV_CODEC_CAP_FRAME_THREADS, .priv_class = &prores_enc_class, .profiles = NULL_IF_CONFIG_SMALL(ff_prores_profiles), }; diff --git a/libavcodec/proresenc_kostya.c b/libavcodec/proresenc_kostya.c index 6215f8e651..8e6f905a9f 100644 --- a/libavcodec/proresenc_kostya.c +++ b/libavcodec/proresenc_kostya.c @@ -1428,7 +1428,7 @@ AVCodec ff_prores_ks_encoder = { .init = encode_init, .close = encode_close, .encode2 = encode_frame, - .capabilities = AV_CODEC_CAP_SLICE_THREADS | AV_CODEC_CAP_FRAME_THREADS | AV_CODEC_CAP_INTRA_ONLY, + .capabilities = AV_CODEC_CAP_SLICE_THREADS | AV_CODEC_CAP_FRAME_THREADS, .pix_fmts = (const enum AVPixelFormat[]) { AV_PIX_FMT_YUV422P10, AV_PIX_FMT_YUV444P10, AV_PIX_FMT_YUVA444P10, AV_PIX_FMT_NONE diff --git a/libavcodec/r210enc.c b/libavcodec/r210enc.c index b24dc1a358..be1943f5f9 100644 --- a/libavcodec/r210enc.c +++ b/libavcodec/r210enc.c @@ -94,7 +94,6 @@ AVCodec ff_r210_encoder = { .init = encode_init, .encode2 = encode_frame, .pix_fmts = (const enum AVPixelFormat[]) { AV_PIX_FMT_GBRP10, AV_PIX_FMT_NONE }, - .capabilities = AV_CODEC_CAP_INTRA_ONLY, }; #endif #if CONFIG_R10K_ENCODER @@ -106,7 +105,6 @@ AVCodec ff_r10k_encoder = { .init = encode_init, .encode2 = encode_frame, .pix_fmts = (const enum AVPixelFormat[]) { AV_PIX_FMT_GBRP10, AV_PIX_FMT_NONE }, - .capabilities = AV_CODEC_CAP_INTRA_ONLY, }; #endif #if CONFIG_AVRP_ENCODER @@ -118,6 +116,5 @@ AVCodec ff_avrp_encoder = { .init = encode_init, .encode2 = encode_frame, .pix_fmts = (const enum AVPixelFormat[]) { AV_PIX_FMT_GBRP10, AV_PIX_FMT_NONE }, - .capabilities = AV_CODEC_CAP_INTRA_ONLY, }; #endif diff --git a/libavcodec/tiffenc.c b/libavcodec/tiffenc.c index f59816ec82..a122f51de4 100644 --- a/libavcodec/tiffenc.c +++ b/libavcodec/tiffenc.c @@ -582,7 +582,7 @@ AVCodec ff_tiff_encoder = { .priv_data_size = sizeof(TiffEncoderContext), .init = encode_init, .close = encode_close, - .capabilities = AV_CODEC_CAP_FRAME_THREADS | AV_CODEC_CAP_INTRA_ONLY, + .capabilities = AV_CODEC_CAP_FRAME_THREADS, .encode2 = encode_frame, .pix_fmts = (const enum AVPixelFormat[]) { AV_PIX_FMT_RGB24, AV_PIX_FMT_RGB48LE, AV_PIX_FMT_PAL8, diff --git a/libavcodec/ttaenc.c b/libavcodec/ttaenc.c index 08a0d0483a..ac8a432873 100644 --- a/libavcodec/ttaenc.c +++ b/libavcodec/ttaenc.c @@ -209,7 +209,7 @@ AVCodec ff_tta_encoder = { .init = tta_encode_init, .close = tta_encode_close, .encode2 = tta_encode_frame, - .capabilities = AV_CODEC_CAP_SMALL_LAST_FRAME | AV_CODEC_CAP_LOSSLESS, + .capabilities = AV_CODEC_CAP_SMALL_LAST_FRAME, .sample_fmts = (const enum AVSampleFormat[]){ AV_SAMPLE_FMT_U8, AV_SAMPLE_FMT_S16, AV_SAMPLE_FMT_S32, diff --git a/libavcodec/utvideoenc.c b/libavcodec/utvideoenc.c index db00e1eff5..f1b9d11c96 100644 --- a/libavcodec/utvideoenc.c +++ b/libavcodec/utvideoenc.c @@ -677,7 +677,7 @@ AVCodec ff_utvideo_encoder = { .init = utvideo_encode_init, .encode2 = utvideo_encode_frame, .close = utvideo_encode_close, - .capabilities = AV_CODEC_CAP_FRAME_THREADS | AV_CODEC_CAP_INTRA_ONLY, + .capabilities = AV_CODEC_CAP_FRAME_THREADS, .pix_fmts = (const enum AVPixelFormat[]) { AV_PIX_FMT_GBRP, AV_PIX_FMT_GBRAP, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV444P, AV_PIX_FMT_NONE diff --git a/libavcodec/v308enc.c b/libavcodec/v308enc.c index e88f1f4648..29b7f8bedd 100644 --- a/libavcodec/v308enc.c +++ b/libavcodec/v308enc.c @@ -82,5 +82,4 @@ AVCodec ff_v308_encoder = { .encode2 = v308_encode_frame, .close = v308_encode_close, .pix_fmts = (const enum AVPixelFormat[]){ AV_PIX_FMT_YUV444P, AV_PIX_FMT_NONE }, - .capabilities = AV_CODEC_CAP_INTRA_ONLY, }; diff --git a/libavcodec/v408enc.c b/libavcodec/v408enc.c index e12965b7ad..a2ab66d911 100644 --- a/libavcodec/v408enc.c +++ b/libavcodec/v408enc.c @@ -88,7 +88,6 @@ AVCodec ff_ayuv_encoder = { .encode2 = v408_encode_frame, .close = v408_encode_close, .pix_fmts = (const enum AVPixelFormat[]){ AV_PIX_FMT_YUVA444P, AV_PIX_FMT_NONE }, - .capabilities = AV_CODEC_CAP_INTRA_ONLY, }; #endif #if CONFIG_V408_ENCODER @@ -101,6 +100,5 @@ AVCodec ff_v408_encoder = { .encode2 = v408_encode_frame, .close = v408_encode_close, .pix_fmts = (const enum AVPixelFormat[]){ AV_PIX_FMT_YUVA444P, AV_PIX_FMT_NONE }, - .capabilities = AV_CODEC_CAP_INTRA_ONLY, }; #endif diff --git a/libavcodec/vaapi_encode_mjpeg.c b/libavcodec/vaapi_encode_mjpeg.c index 8b441d36c3..9f9ed811a4 100644 --- a/libavcodec/vaapi_encode_mjpeg.c +++ b/libavcodec/vaapi_encode_mjpeg.c @@ -563,8 +563,7 @@ AVCodec ff_mjpeg_vaapi_encoder = { .receive_packet = &ff_vaapi_encode_receive_packet, .close = &vaapi_encode_mjpeg_close, .priv_class = &vaapi_encode_mjpeg_class, - .capabilities = AV_CODEC_CAP_HARDWARE | - AV_CODEC_CAP_INTRA_ONLY, + .capabilities = AV_CODEC_CAP_HARDWARE, .caps_internal = FF_CODEC_CAP_INIT_CLEANUP, .defaults = vaapi_encode_mjpeg_defaults, .pix_fmts = (const enum AVPixelFormat[]) { diff --git a/libavcodec/version.h b/libavcodec/version.h index 9d260c80da..f968bf8eff 100644 --- a/libavcodec/version.h +++ b/libavcodec/version.h @@ -28,7 +28,7 @@ #include "libavutil/version.h" #define LIBAVCODEC_VERSION_MAJOR 58 -#define LIBAVCODEC_VERSION_MINOR 84 +#define LIBAVCODEC_VERSION_MINOR 85 #define LIBAVCODEC_VERSION_MICRO 100 #define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \ @@ -141,6 +141,9 @@ #ifndef FF_API_OPENH264_CABAC #define FF_API_OPENH264_CABAC (LIBAVCODEC_VERSION_MAJOR < 59) #endif +#ifndef FF_API_UNUSED_CODEC_CAPS +#define FF_API_UNUSED_CODEC_CAPS (LIBAVCODEC_VERSION_MAJOR < 59) +#endif #endif /* AVCODEC_VERSION_H */ diff --git a/libavcodec/xfaceenc.c b/libavcodec/xfaceenc.c index bfb9fb9ece..dd5bb689c2 100644 --- a/libavcodec/xfaceenc.c +++ b/libavcodec/xfaceenc.c @@ -219,5 +219,4 @@ AVCodec ff_xface_encoder = { .priv_data_size = sizeof(XFaceContext), .encode2 = xface_encode_frame, .pix_fmts = (const enum AVPixelFormat[]) { AV_PIX_FMT_MONOWHITE, AV_PIX_FMT_NONE }, - .capabilities = AV_CODEC_CAP_INTRA_ONLY, }; diff --git a/libavcodec/y41penc.c b/libavcodec/y41penc.c index ca94a3c171..63752e2b44 100644 --- a/libavcodec/y41penc.c +++ b/libavcodec/y41penc.c @@ -90,5 +90,4 @@ AVCodec ff_y41p_encoder = { .close = y41p_encode_close, .pix_fmts = (const enum AVPixelFormat[]) { AV_PIX_FMT_YUV411P, AV_PIX_FMT_NONE }, - .capabilities = AV_CODEC_CAP_INTRA_ONLY, }; diff --git a/libavcodec/yuv4enc.c b/libavcodec/yuv4enc.c index cc8846d7e5..f21b1f36ce 100644 --- a/libavcodec/yuv4enc.c +++ b/libavcodec/yuv4enc.c @@ -76,5 +76,4 @@ AVCodec ff_yuv4_encoder = { .encode2 = yuv4_encode_frame, .close = yuv4_encode_close, .pix_fmts = (const enum AVPixelFormat[]){ AV_PIX_FMT_YUV420P, AV_PIX_FMT_NONE }, - .capabilities = AV_CODEC_CAP_INTRA_ONLY, };