From patchwork Wed Apr 20 12:32:00 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Dawid Kozinski/Multimedia \\(PLT\\) /SRPOL/Staff Engineer/Samsung Electronics" X-Patchwork-Id: 35360 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:3b9e:b0:7d:cfb5:dc7c with SMTP id b30csp846484pzh; Wed, 20 Apr 2022 05:32:23 -0700 (PDT) X-Google-Smtp-Source: ABdhPJx8k5h5rWzwyjVbk4NXVYeJXNaCSPg+TuUIow51byIOhXLPhkghk9vLuRbbq7VoQstAUdOT X-Received: by 2002:a17:907:9803:b0:6db:ab21:738e with SMTP id ji3-20020a170907980300b006dbab21738emr17551159ejc.112.1650457943153; Wed, 20 Apr 2022 05:32:23 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1650457943; cv=none; d=google.com; s=arc-20160816; b=CfslG0aFZjcE4D3RJljUS+jA4GcUpvjRtrpr2GCTQHtyT3DdDE3jtu9yStRxlzWZs8 5zEDJCfvbXhABpuKGdHZn5JFArsuvfjPSvDX+8YRqxu9+lY7mS/pdbCxCZY+tiRBGvUA eETOOVOz35vnPw/xCbBx4yAwvn2gvarvsu1z9SZjIsVileuQ93ChLZG8wIorhZa8RAlV mqizLjdIvwyQ3oIzRx2Ae3Fe9xXEH/IiK5sukxxJI762/n3XGCUiQm11MNnmR1Lc74IA A6xv8AFXXc0WXSxkPNVUAnSDE9S1u3qBprmL5Q0/c0UkUPISbyBKO+IAlg6KHAWOhOun UIeg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:reply-to:list-subscribe :list-help:list-post:list-archive:list-unsubscribe:list-id :precedence:subject:references:cms-type:content-language :thread-index:mime-version:message-id:date:to:from:dkim-signature :dkim-filter:delivered-to; bh=VfNjdky1H77OfgFguonNVgfS0jWtY3dozdETfQt6wwA=; b=uMCElyR7ZHo0ZYreIG1dKF/slMFZHPQrrb+e3a6AW38P6k/z3sYZ0z8qH4/gcyat58 70gCHp1cFBhLqKCIdewAECo6xgzJ7VV60mKrxlGfef+oH0XstFuYGSmbeJ1EioG4bKPX O2c3SsVXQutSN93t9TDaXFNx9hogdUzY27MqupJJzgbJ72gIIajfvzHcAFO/CWgc5W0y 8QojVf+/nmAANErcEOqMlPysgSxDKrJ9JwqIkK7qPi+k2yiZvlaD7zlz/hEcVCrrb58K Z+lsPPAkqS/bC9gWMD3YrqFV70z8lFffa9NBBASUq4b0GueRGCW4zS9OggwYKayLfCwH 5KSA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@samsung.com header.s=mail20170921 header.b=R9r3OgPx; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=samsung.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id t6-20020a170906a10600b006e8ac17c002si1568037ejy.175.2022.04.20.05.32.22; Wed, 20 Apr 2022 05:32:23 -0700 (PDT) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@samsung.com header.s=mail20170921 header.b=R9r3OgPx; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=samsung.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 9585368B3AA; Wed, 20 Apr 2022 15:32:17 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mailout1.w1.samsung.com (mailout1.w1.samsung.com [210.118.77.11]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 7466C68B0B9 for ; Wed, 20 Apr 2022 15:32:10 +0300 (EEST) Received: from eucas1p1.samsung.com (unknown [182.198.249.206]) by mailout1.w1.samsung.com (KnoxPortal) with ESMTP id 20220420123202euoutp012d2208f5956140dfad24ae6c1cf9cf72~nmrx2BBr71191911919euoutp01K for ; Wed, 20 Apr 2022 12:32:02 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout1.w1.samsung.com 20220420123202euoutp012d2208f5956140dfad24ae6c1cf9cf72~nmrx2BBr71191911919euoutp01K DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1650457922; bh=Cgkx5Jv7vA2x1kWcDhyBfOKP0waxvIWciA/eVhA6nhg=; h=From:To:Subject:Date:References:From; b=R9r3OgPxh5et8qXwIeP4Ui56IkGLM85lqdncofpzjH7DQlskntUW3vA+GXqdaCJVW ZH95jt3qJPH2ZR2TJNfghQRdw+I08tKY1J4PzD4sXwzypQ+0Vmpfr3s61+zKls19Ya B6MsGjzvKbbgXyybvI8QKiI11assBdPLJq4ZWxQ0= Received: from eusmges2new.samsung.com (unknown [203.254.199.244]) by eucas1p2.samsung.com (KnoxPortal) with ESMTP id 20220420123202eucas1p2481497de27d2096d2e05ed95cfd23ad1~nmrxhJYHG2885728857eucas1p2Y for ; Wed, 20 Apr 2022 12:32:02 +0000 (GMT) Received: from eucas1p2.samsung.com ( [182.198.249.207]) by eusmges2new.samsung.com (EUCPMTA) with SMTP id CB.F0.09887.24DFF526; Wed, 20 Apr 2022 13:32:02 +0100 (BST) Received: from eusmtrp1.samsung.com (unknown [182.198.249.138]) by eucas1p2.samsung.com (KnoxPortal) with ESMTPA id 20220420123201eucas1p2638768c00ff47b3820f837dc78b17c46~nmrwhJFuq2884328843eucas1p2c for ; Wed, 20 Apr 2022 12:32:01 +0000 (GMT) Received: from eusmgms1.samsung.com (unknown [182.198.249.179]) by eusmtrp1.samsung.com (KnoxPortal) with ESMTP id 20220420123201eusmtrp1c3a98f9afce3c82ec18437ec7a16a6ca~nmrwgmY230717407174eusmtrp1J for ; Wed, 20 Apr 2022 12:32:01 +0000 (GMT) X-AuditID: cbfec7f4-45bff7000000269f-25-625ffd42ae3e Received: from eusmtip2.samsung.com ( [203.254.199.222]) by eusmgms1.samsung.com (EUCPMTA) with SMTP id E2.59.09522.14DFF526; Wed, 20 Apr 2022 13:32:01 +0100 (BST) Received: from AMDN3260 (unknown [106.210.132.171]) by eusmtip2.samsung.com (KnoxPortal) with ESMTPA id 20220420123200eusmtip28f0375e365eb9cd6fd1b39eff8b0cfda~nmrwQXUWj2126521265eusmtip2u for ; Wed, 20 Apr 2022 12:32:00 +0000 (GMT) From: "Dawid Kozinski" To: Date: Wed, 20 Apr 2022 14:32:00 +0200 Message-ID: <005401d854b2$a23fc630$e6bf5290$@samsung.com> MIME-Version: 1.0 X-Mailer: Microsoft Outlook 16.0 Thread-Index: AdhUsGhnWfpq1aQRT8eLp6jZOiXrZA== Content-Language: pl X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrFIsWRmVeSWpSXmKPExsWy7djP87pOf+OTDGY9F7D49ukMswOjx59F m1kCGKO4bFJSczLLUov07RK4Mr5NnM5U0B1acflSE1MD40eXLkZODgkBE4nzW68ydTFycQgJ rGCUuLz3MzOEM4lJYmv7KShnIpPE0StTmGFaOre+ZodILGeUeN/wjBXCaWOS+N3ZzwZSxSag LzFz0ScwW0RAVmL1vylgtrBAqMSOA19ZQGwWAVWJb4sWsoLYvAKWEp/2v4eyBSVOznwCVsMs YCSxZPV8JghbXmL72zlQVyhI/Hy6jBVivp7E+X0QvcwCIhI3HrUwghwkIfCRXeJA4xOoBheJ lt3roWxhiVfHt7BD2DISpyf3AC3jALKLJQ71O0CYNRKHfqRDVFhLvG08zggRdpT4sD0AwuST uPFWEGIpn8SkbdOZIcK8Eh1tQhCmikRfpxjEDCmJp8tgTveQWLj+IuMERsVZSL6dheTbWUi+ nYXkqwWMLKsYxVNLi3PTU4uN8lLL9YoTc4tL89L1kvNzNzECk8Ppf8e/7GBc/uqj3iFGJg7G Q4wSHMxKIryhM+OThHhTEiurUovy44tKc1KLDzFKc7AoifMmZ25IFBJITyxJzU5NLUgtgsky cXBKNTBt1vjPcs5KfaOprFrD93Xc+97Lt1+8eWUX3/JCx3WH79YyPeNYpbH8RU7Brg++3Yen GG4Qfr/gX3XT9fDHZ/dI1GwK+O26JsIkbUVQXIEG10Jb4zfyf+TyD1+qMDsyoSxcSTTg9fcv Mi2XxcuS3tfeX/7KM6Y99+TczQU62Y0z9rAUqc9Xc4oKu/lo0dbq8Jc/zjE8k/o3uX1F/fZO DQ8On02m+c7Psl79/5H6JSbv4C35C4LPdQzVdqrfbrj35MqeLDeuyYdWCmenyh2e9muC+qMK jtSg88u2/bmYmBK30Obey3mJj5zM3iZ1cV7/uHlbxIPLjw/rS3Rdkfs1d7F62sVNR48duvD5 Rtu6DTVpd5VYijMSDbWYi4oTAZG8Q/x9AwAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrOLMWRmVeSWpSXmKPExsVy+t/xe7qOf+OTDNoauSy+fTrD7MDo8WfR ZpYAxig9m6L80pJUhYz84hJbpWhDCyM9Q0sLPSMTSz1DY/NYKyNTJX07m5TUnMyy1CJ9uwS9 jG8TpzMVdIdWXL7UxNTA+NGli5GTQ0LARKJz62v2LkYuDiGBpYwSEy4dZIJISEksXbqIEcIW lvhzrYsNoqiFSaJpYgtYEZuAvsTMRZ/YQGwRAVmJ1f+mgNnCAsES385/ZwGxWQRUJb4tWsgK YvMKWEp82v8eyhaUODnzCVgNM9AVjYe7oWx5ie1v5zBDLFaQ+Pl0GSvEfD2J8/sgepkFRCRu PGphnMAoMAvJqFlIRs1CMmoWkpYFjCyrGEVSS4tz03OLDfWKE3OLS/PS9ZLzczcxAkN827Gf m3cwznv1Ue8QIxMH4yFGCQ5mJRHe0JnxSUK8KYmVValF+fFFpTmpxYcYTYF+m8gsJZqcD4yy vJJ4QzMDU0MTM0sDU0szYyVxXs+CjkQhgfTEktTs1NSC1CKYPiYOTqkGpuI3K3ZnbLPaH/1x q0NNf7yHsKdZ/i+ptnerdh2Y8kVwk22YmFBEfXL/rBnO4aEijEUFVkuWeLslnc4SWzGt4fnJ Zdd6Mk+2bnQzZT6+9WiAM2ftl/BzzLPml8j073Dx/Ml+I3jW+aQHM0wnh/Qq/X2wLz1K5dPa d0rVCYc7kje6l93fa+s7/cOkmfPeOOwNatDnsj2rmsxT/HtR7s0P9x3Skx52xhm++mFzi0m+ y9QnReKB1Jz+2kUs8b5/N6vZXlO0mpDXNWHWhsK3ImKbjmnPWPW+oTbp5fZ1/ycU5i+rcE4L P1P66J5HVIbl5oMVH3/6O4f9YDdRXZhgVeU5SZCPg6foXfFn3QMFkSvZlFiKMxINtZiLihMB WjMeqfoCAAA= X-CMS-MailID: 20220420123201eucas1p2638768c00ff47b3820f837dc78b17c46 X-Msg-Generator: CA X-RootMTR: 20220420123201eucas1p2638768c00ff47b3820f837dc78b17c46 X-EPHeader: CA CMS-TYPE: 201P X-CMS-RootMailID: 20220420123201eucas1p2638768c00ff47b3820f837dc78b17c46 References: Subject: [FFmpeg-devel] [PATCH 1/3] Provided support for MPEG-5 EVC (Essential Video Coding) codec X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 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" X-TUID: JZfxl6J+eDEq ####################################### 1. Genaral info ####################################### The patch provided below contains an integration layer between ffmpeg framework and EVC codec implementation. In nutshell, it enables using EVC codec (encoding, decoding) by the means of ffmpeg API. I'd like to emphasize one more time, that (as mentioned before) it isn't codec implementation. The provided implementation serves as an integration layer between ffmpeg framework and the EVC codec. EVC codec has been published as two separate libraries. The first one called XEVE (eXtra-fast Essential Video Encoder) is an opensource MPEG-5 EVC encoder. The second one called XEVD (eXtra-fast Essential Video Decoder ) is an opensource MPEG-5 EVC decoder. For more information on both libraries please follow the links below: * https://github.com/mpeg5/xeve * https://github.com/mpeg5/xevd The patch provided below should be apply to FFmpeg 5.0 release (commit b655beb025cb54ba19cad89e731990910643f208 release/5.0) ####################################### 2. Building ####################################### 3.1. Download, build and install dependencies Dependencies: * eXtra-fast Essential Video Encoder (XEVE) (https://github.com/mpeg5/xeve) * eXtra-fast Essential Video Decoder (XEVD) (https://github.com/mpeg5/xevd) ------------------- 2.1.1. XEVE ------------------- git clone git@github.com:mpeg5/xeve.git cd xeve ------------------- base profile ------------------- mkdir build_base cd buid_base cmake .. -DSET_PROF=BASE make make install ------------------- main profile ------------------- mkdir build_main cd buid_base cmake .. -DSET_PROF=MAIN make make install ------------------- 2.1.2. XEVD ------------------- git clone git@github.com:mpeg5/xeve.git cd xeve ------------------- base profile ------------------- mkdir build_base cd buid_base cmake .. -DSET_PROF=BASE make make install ------------------- main profile ------------------- mkdir build_main cd buid_base cmake .. -DSET_PROF=MAIN make make install --------------------------------------- 2.2. Build ffmpeg with libxeve and libxevd --------------------------------------- It is required ffmpeg to be configfured with --enable-libxeve and --enable- libxevd Please find below exaple configuration. PATH="$HOME/bin:$PATH" PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./configure \ --prefix="$HOME/ffmpeg_build" \ --pkg-config-flags="--static" \ --extra-cflags="-I$HOME/ffmpeg_build/include" \ --extra-ldflags="- L$HOME/ffmpeg_build/lib" \ --extra-libs="-lpthread -lm" \ -- bindir="$HOME/bin" \ --enable-gpl \ --enable-gnutls \ --enable-libaom \ -- enable-libass \ --enable-libfdk-aac \ --enable-libfreetype \ --enable- libmp3lame \ --enable-libopus \ --enable-libdav1d \ --enable-libvorbis \ -- enable-libvpx \ --enable-libx264 \ --enable-libx265 \ --enable-libxeve \ --enable-libxevd \ --enable-nonfree && \ PATH="$HOME/bin:$PATH" make -j $(nproc) make install ####################################### 3. Examples ####################################### Please find below examples on how to use EVC coded with ffmpeg commandline tool. (All samples are available in https://drive.google.com/drive/folders/1YtCLlSuTAjpLziTKI_QBuQrIOm2ss9LB?usp =sharing ) #!/bin/bash #======================================= #(YUV420P) -> (EVC) #======================================= ffmpeg -f rawvideo -pix_fmt yuv420p -s:v 352x288 -r 30 -i Test_Video_cif.yuv -c:v libxeve -f rawvideo Test_Video_cif.yuv.evc ffplay - autoexit Test_Video_cif.yuv.evc #======================================= #(YUV420P10LE) -> (EVC) #======================================= ffmpeg -f rawvideo -pix_fmt yuv420p10le -s:v 352x288 -r 30 -i Test_Video_cif_10le.yuv -c:v libxeve -f rawvideo Test_Video_cif_10le.yuv.evc ffplay -autoexit Test_Video_cif_10le.yuv.evc #======================================= #(EVC) -> (YUV420P) #======================================= ffmpeg -i Test_Video_cif.yuv.evc -pix_fmt yuv420p Test_Video_cif.evc.yuv ffplay -autoexit -f rawvideo -pixel_format yuv420p -video_size 352x288 Test_Video_cif.evc.yuv #======================================= #(EVC) -> (YUV420Pi10LE) #======================================= ffmpeg -i Test_Video_cif_10le.yuv.evc -pix_fmt yuv420p10le Test_Video_cif_10le.evc.yuv ffplay -autoexit -f rawvideo -pixel_format yuv420p10le -video_size 352x288 Test_Video_cif_10le.evc.yuv #======================================= #(YUV420P) -> (MP4) #======================================= ffmpeg -f rawvideo -pix_fmt yuv420p -s:v 352x288 -r 30 -i Test_Video_cif.yuv -c:v libxeve -f rawvideo Test_Video_cif.yuv.mp4 ffplay - autoexit Test_Video_cif.yuv.mp4 #======================================= #(YUV420P10LE) -> (MP4) #======================================= ffmpeg -f rawvideo -pix_fmt yuv420p10le -s:v 352x288 -r 30 -i Test_Video_cif_10le.yuv -c:v libxeve -f rawvideo Test_Video_cif_10le.yuv.mp4 ffplay -autoexit Test_Video_cif_10le.yuv.mp4 #======================================= #(MP4) -> (YUV420P) #======================================= ffmpeg -i Test_Video_cif.yuv.mp4 -f rawvideo -pix_fmt yuv420p Test_Video_cif.mp4.yuv ffplay -autoexit -f rawvideo -pixel_format yuv420p - video_size 352x288 Test_Video_cif.mp4.yuv #======================================= #(MP4) -> (YUV420P10LE) #======================================= ffmpeg -i Test_Video_cif_10le.yuv.mp4 -f rawvideo -pix_fmt yuv420p10le Test_Video_cif_10le.mp4.yuv ffplay -autoexit -f rawvideo -pixel_format yuv420p10le -video_size 352x288 Test_Video_cif_10le.mp4.yuv #======================================= #(EVC) -> (MP4) #======================================= ffmpeg -i Test_Video_cif.yuv.evc -c:v copy Test_Video_cif.evc.mp4 ffplay - autoexit Test_Video_cif.evc.mp4 #======================================= #(MP4) -> (EVC) #======================================= ffmpeg -i Test_Video_cif.evc.mp4 -vcodec copy -an -f rawvideo Test_Video_cif.evc.mp4.evc ffplay -autoexit Test_Video_cif.evc.mp4.evc #======================================= #(MP4 [h264,aac]) -> (MP4 [evc,aac]) #======================================= ffmpeg -i Test_Video_cif.mp4 -c:v libxeve Test_Video_cif_evc.mp4 ffplay - autoexit Test_Video_cif_evc.mp4 Prerequisites that must be met before adding new codec - Added new entry to codec IDs list - Added new entry to the codec descriptor list - Bumped libavcodec minor version - Changes in Changelog and MAINTAINERS files Signed-off-by: Dawid Kozinski --- Changelog | 3 ++- MAINTAINERS | 2 ++ libavcodec/codec_desc.c | 8 ++++++++ libavcodec/codec_id.h | 1 + libavcodec/profiles.c | 6 ++++++ libavcodec/profiles.h | 1 + libavcodec/version.h | 3 ++- 7 files changed, 22 insertions(+), 2 deletions(-) diff --git a/Changelog b/Changelog index 7ce7052387..3fea84f030 100644 --- a/Changelog +++ b/Changelog @@ -57,7 +57,8 @@ version 5.0: - VideoToolbox ProRes encoder - anlmf audio filter - IMF demuxer (experimental) - +- eXtra-fast Essential Video Encoder (XEVE) +- eXtra-fast Essential Video Decoder (XEVD) version 4.4: - AudioToolbox output device diff --git a/MAINTAINERS b/MAINTAINERS index 8c71605339..d05e685f15 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -204,6 +204,7 @@ Codecs: libvpx* James Zern libxavs.c Stefan Gehrer libxavs2.c Huiwen Ren + libxev*.c, evc_parser.c Dawid Kozinski libzvbi-teletextdec.c Marton Balint lzo.h, lzo.c Reimar Doeffinger mdec.c Michael Niedermayer @@ -424,6 +425,7 @@ Muxers/Demuxers: dv.c Roman Shaposhnik electronicarts.c Peter Ross epafdec.c Paul B Mahol + evcdec.c Dawid Kozinski ffm* Baptiste Coudurier flic.c Mike Melanson flvdec.c Michael Niedermayer diff --git a/libavcodec/codec_desc.c b/libavcodec/codec_desc.c index c08854cc93..8541683722 100644 --- a/libavcodec/codec_desc.c +++ b/libavcodec/codec_desc.c @@ -1870,6 +1870,14 @@ static const AVCodecDescriptor codec_descriptors[] = { .long_name = NULL_IF_CONFIG_SMALL("Vizrt Binary Image"), .props = AV_CODEC_PROP_LOSSY, }, + { + .id = AV_CODEC_ID_EVC, + .type = AVMEDIA_TYPE_VIDEO, + .name = "evc", + .long_name = NULL_IF_CONFIG_SMALL("MPEG-5 EVC (Essential Video Coding)"), + .props = AV_CODEC_PROP_LOSSY | AV_CODEC_PROP_REORDER, + .profiles = NULL_IF_CONFIG_SMALL(ff_evc_profiles), + }, /* various PCM "codecs" */ { diff --git a/libavcodec/codec_id.h b/libavcodec/codec_id.h index 43c72ce8e4..5729c78ec3 100644 --- a/libavcodec/codec_id.h +++ b/libavcodec/codec_id.h @@ -309,6 +309,7 @@ enum AVCodecID { AV_CODEC_ID_SGA_VIDEO, AV_CODEC_ID_GEM, AV_CODEC_ID_VBN, + AV_CODEC_ID_EVC, /* various PCM "codecs" */ AV_CODEC_ID_FIRST_AUDIO = 0x10000, ///< A dummy id pointing at the start of audio codecs diff --git a/libavcodec/profiles.c b/libavcodec/profiles.c index 7af7fbeb13..a31244e0db 100644 --- a/libavcodec/profiles.c +++ b/libavcodec/profiles.c @@ -181,4 +181,10 @@ const AVProfile ff_arib_caption_profiles[] = { { FF_PROFILE_UNKNOWN } }; +const AVProfile ff_evc_profiles[] = { + { FF_PROFILE_EVC_BASELINE, "Baseline" }, + { FF_PROFILE_EVC_MAIN, "Main" }, + { FF_PROFILE_UNKNOWN }, +}; + #endif /* !CONFIG_SMALL */ diff --git a/libavcodec/profiles.h b/libavcodec/profiles.h index 41a19aa9ad..cf92b5f126 100644 --- a/libavcodec/profiles.h +++ b/libavcodec/profiles.h @@ -72,5 +72,6 @@ extern const AVProfile ff_sbc_profiles[]; extern const AVProfile ff_prores_profiles[]; extern const AVProfile ff_mjpeg_profiles[]; extern const AVProfile ff_arib_caption_profiles[]; +extern const AVProfile ff_evc_profiles[]; #endif /* AVCODEC_PROFILES_H */ diff --git a/libavcodec/version.h b/libavcodec/version.h index 26ee41eb1f..8c82835d22 100644 --- a/libavcodec/version.h +++ b/libavcodec/version.h @@ -29,7 +29,8 @@ #include "version_major.h" -#define LIBAVCODEC_VERSION_MINOR 26 +#define LIBAVCODEC_VERSION_MINOR 27 + #define LIBAVCODEC_VERSION_MICRO 100 #define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \