From patchwork Wed Apr 20 09:54:10 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dawid Kozinski X-Patchwork-Id: 35355 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:3b9e:b0:7d:cfb5:dc7c with SMTP id b30csp780838pzh; Wed, 20 Apr 2022 02:54:26 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyeMahTHx5jb0Hjp/Gu+G6B0DlTt5bcrwiqqvbItfmVMvIb06GK6QGARM39M0UJO74idmi4 X-Received: by 2002:a17:907:97cc:b0:6df:83bc:314c with SMTP id js12-20020a17090797cc00b006df83bc314cmr17368223ejc.587.1650448466148; Wed, 20 Apr 2022 02:54:26 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1650448466; cv=none; d=google.com; s=arc-20160816; b=bDX9k5+4Le1qYBDoP8mOYeN1Cz6vXQREd46+9j0IMuU53jZyAg7V4OQF0ZgJfRG49U +nQ0BzDnG3tq7Pp4yGg8j7mYi7FUxILRRv6bvmjgA6JHUma1Mdzm6EH48FXE0G4joKdT 9T/lURNNAgEzUxBK6jqLycYodkX4/1B/SWfelaYUSW/ppBAhq0ITHQ9PKD1Gm+8Ph+4i AwKkOvHwAevln1DvWk7w/ZJr/np9FDQF33zktnsJedIuFfJ0G3gVm1HHUvnuGDyEfqWJ YGCQr5SoHdxr0tnAt1DQaS+hegfxwuyKgloNyxTL7FxDEnftrz7a3XAuM1fPAsJespyB W1Fg== 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=wvvNonoqI1xuMmJvZamsvA+YQZGQE7l5TLpoInVfh+8=; b=UFmgnTGsrjNuxbOCdeHqf09eml2ffa0A06nL4QVAq2lRlpcXKEGhfFZEA8+N+vAUex oNea4wZNyS52xuSZIsBEBU2guClUE0lfLlh3Z2sRApY2nReqsvXv0eTPKPblIHCnrdGz iIWtb1khZqbdYxwA0vKbQAiJc/MzHa7i7ATydXm4A2lIgUhMpVAmu4nu+bINp1rIWDJh YIqDqHff2CLs7tfuvPvmf61WB0QPmA/bjaGlbog0a3QSHEn4ns6Ozcj4olWqg5bsFyh/ yp67ogaGoH8Zg+5C/qde5RcLfRyqLeTj/XUPCmVNsgjVKM2i0vgl4rjeEyypUOYWHKvJ 71HA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@samsung.com header.s=mail20170921 header.b=LKAcCULL; 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 bk14-20020a170906b0ce00b006e7edaf2b8asi1381283ejb.371.2022.04.20.02.54.25; Wed, 20 Apr 2022 02:54:26 -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=LKAcCULL; 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 2E26368B39E; Wed, 20 Apr 2022 12:54:21 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mailout2.w1.samsung.com (mailout2.w1.samsung.com [210.118.77.12]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 9A0C568AE71 for ; Wed, 20 Apr 2022 12:54:14 +0300 (EEST) Received: from eucas1p1.samsung.com (unknown [182.198.249.206]) by mailout2.w1.samsung.com (KnoxPortal) with ESMTP id 20220420095411euoutp028236861823a79fcca943ba2669aaf166~nkh9jsyKu0636006360euoutp02J for ; Wed, 20 Apr 2022 09:54:11 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout2.w1.samsung.com 20220420095411euoutp028236861823a79fcca943ba2669aaf166~nkh9jsyKu0636006360euoutp02J DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1650448452; bh=cHfGNT3hyBVUzTWq7Tf/mehUIj01111p14XgRah64B0=; h=From:To:Subject:Date:References:From; b=LKAcCULLFRueE+fYPcp+bELIsrk7P7uIyNlKkf5T6ATWOEiSH0SObF4ctVZv/Qgwx dQALPd/VEJ48t4znZtTmCUSCHh5DsXRKdd8IfMMBR7O3HbpXRoe1Y5n/6KunHdPOyY qxpLQQsKOhsNRyRO42psylO2gWAXvgWjbr4BvNyU= Received: from eusmges2new.samsung.com (unknown [203.254.199.244]) by eucas1p2.samsung.com (KnoxPortal) with ESMTP id 20220420095411eucas1p29e3a95c555b553420e2efa42a048b004~nkh9YXqUh1275412754eucas1p2j for ; Wed, 20 Apr 2022 09:54:11 +0000 (GMT) Received: from eucas1p1.samsung.com ( [182.198.249.206]) by eusmges2new.samsung.com (EUCPMTA) with SMTP id DB.13.09887.348DF526; Wed, 20 Apr 2022 10:54:11 +0100 (BST) Received: from eusmtrp1.samsung.com (unknown [182.198.249.138]) by eucas1p1.samsung.com (KnoxPortal) with ESMTPA id 20220420095411eucas1p17c2f7371da691825f631f12562d415c0~nkh8-GO8M1311213112eucas1p1e for ; Wed, 20 Apr 2022 09:54:11 +0000 (GMT) Received: from eusmgms2.samsung.com (unknown [182.198.249.180]) by eusmtrp1.samsung.com (KnoxPortal) with ESMTP id 20220420095411eusmtrp1f3bb15bd44b90a35356d0710c2ec8a0f~nkh8_gc1_2999129991eusmtrp1l for ; Wed, 20 Apr 2022 09:54:11 +0000 (GMT) X-AuditID: cbfec7f4-471ff7000000269f-8f-625fd843ccd9 Received: from eusmtip2.samsung.com ( [203.254.199.222]) by eusmgms2.samsung.com (EUCPMTA) with SMTP id 62.54.09404.348DF526; Wed, 20 Apr 2022 10:54:11 +0100 (BST) Received: from AMDN3260 (unknown [106.210.132.171]) by eusmtip2.samsung.com (KnoxPortal) with ESMTPA id 20220420095411eusmtip2d7cd86de83be74e4a9dbd7ae4e416298~nkh8voL742102221022eusmtip2p for ; Wed, 20 Apr 2022 09:54:11 +0000 (GMT) From: "Dawid Kozinski" To: Date: Wed, 20 Apr 2022 11:54:10 +0200 Message-ID: <004a01d8549c$95c3fb30$c14bf190$@samsung.com> MIME-Version: 1.0 X-Mailer: Microsoft Outlook 16.0 Thread-Index: AdhUl1+2XCGH7BnYS0y2ibafPOHR/g== Content-Language: pl X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrJIsWRmVeSWpSXmKPExsWy7djPc7rON+KTDE48UrP49ukMswOjx59F m1kCGKO4bFJSczLLUov07RK4Mi4cPstccCC0YkHPU6YGxnmuXYycHBICJhL3e84zdTFycQgJ rGCUeHrrOjNIQkhgEpNE7yQliMREJokFp5ayw3QsfTCNBSKxnFHiUftyNoiONiaJQ8v5QWw2 AX2JmYs+gcVFBGQlVv+bAmYLC4RK7DjwlQXEZhFQlViwcBnYNl4BS4mZfa+YIGxBiZMzn4DV MAsYSSxZPZ8JwpaX2P52DjPEEQoSP58uY4WYryfxYukSRogaEYkbj1oYQY6TEPjILjHj+Rc2 iAYXid+bW6E+EJZ4dXwLlC0jcXpyD9AyDiC7WOJQvwOEWSNx6Ec6RIW1xNvG44wQtqPE06XL oar5JG68FYTYyicxadt0Zogwr0RHmxCEqSLR1ykG0Sgl8XQZzO0eEvP6r7JOYFScheTdWUje nYXk3VlI3lrAyLKKUTy1tDg3PbXYKC+1XK84Mbe4NC9dLzk/dxMjMDWc/nf8yw7G5a8+6h1i ZOJgPMQowcGsJMIbOjM+SYg3JbGyKrUoP76oNCe1+BCjNAeLkjhvcuaGRCGB9MSS1OzU1ILU IpgsEwenVAOT0ty/UuXXr97UWOYy5eUntZUHvWfqbjTsm/mcYd7OhRPv3bryMuJRc8p1dsOv ocn+uVtUfvtb6V9c/qe2z/dXVrz29tbqpRL7DMUVjHwkt33fEjjx9t0sJ4Hj7x/V7sqsXffQ SHTPqVd1P+cKTzuZdUNQms1zhdPZyfb7a+V/aM8q4ju/8vLPxUHd9+rsr75PkIgXvbK/51Gb rseNe9oejQonZ3bMnPJXxOUKt3gNo9RUqS7/iklvT639/mPB3Ou5n3Z4nq/xtwx+ttOiS/rA iXVRmc/LYlm+nPhxc56a65OMrQrvJPPD1n3qa/r/svPFvGmdvptLNKRqZj3LMy36nW1jWvNH aKO0v3Ywv/SmWiWW4oxEQy3mouJEAPq0Uo98AwAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrOLMWRmVeSWpSXmKPExsVy+t/xe7rON+KTDA7cErD49ukMswOjx59F m1kCGKP0bIryS0tSFTLyi0tslaINLYz0DC0t9IxMLPUMjc1jrYxMlfTtbFJSczLLUov07RL0 Mi4cPstccCC0YkHPU6YGxnmuXYycHBICJhJLH0xj6WLk4hASWMoo0bVnPSNEQkpi6dJFULaw xJ9rXWwQRS1MEsfaZ7GBJNgE9CVmLvoEZosIyEqs/jcFzBYWCJb4dv47C4jNIqAqsWDhMmYQ m1fAUmJm3ysmCFtQ4uTMJ2A1zEBXNB7uhrLlJba/ncMMsVhB4ufTZawQ8/UkXixdwghRIyJx 41EL4wRGgVlIRs1CMmoWklGzkLQsYGRZxSiSWlqcm55bbKRXnJhbXJqXrpecn7uJERji2479 3LKDceWrj3qHGJk4GA8xSnAwK4nwhs6MTxLiTUmsrEotyo8vKs1JLT7EaAr020RmKdHkfGCU 5ZXEG5oZmBqamFkamFqaGSuJ83oWdCQKCaQnlqRmp6YWpBbB9DFxcEo1MPHyZRYIPli0t23a rMSmCPnVquuko7R+c3a05r4od+PTDdtcNr0ubPOHF7Y/WkQUjgkfVVW6ZfQ9Z0v7n06upRE9 ObMKDMLKmLiPvc3ebprleMuPZUEh15d5LelTXEq7vQ6wHCz1KDicvOZf26HD0jnpFbzeMw69 PmnceK7r2+Lus0G5v5y5Vnz2WBa5fP3BM7oRy35fOBMxxcr8qm30xdaeI6cYJW/Ffz0UM+Hc sqUCmkqLQ2+HHP3nuvmeGYO/8oF3huz3C5m4ektsPOczZWUcYUqvLvFOsDJQfTPjV933+JMK HhIb2hstufauTqi6/ep7iPBd/Q0nl1ybeInz9ef1jnEnFu9+n6r2R9JaTomlOCPRUIu5qDgR AAbyf2b6AgAA X-CMS-MailID: 20220420095411eucas1p17c2f7371da691825f631f12562d415c0 X-Msg-Generator: CA X-RootMTR: 20220420095411eucas1p17c2f7371da691825f631f12562d415c0 X-EPHeader: CA CMS-TYPE: 201P X-CMS-RootMailID: 20220420095411eucas1p17c2f7371da691825f631f12562d415c0 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: J/FV5RWctiqf ####################################### 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 | 2 +- 7 files changed, 21 insertions(+), 2 deletions(-) diff --git a/Changelog b/Changelog index 5a32cf0d5c..21ebc11ff4 100644 --- a/Changelog +++ b/Changelog @@ -106,7 +106,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 c065e94498..7cbff1fe9c 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -203,6 +203,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 @@ -422,6 +423,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 0974ee03de..d05ea20db1 100644 --- a/libavcodec/codec_desc.c +++ b/libavcodec/codec_desc.c @@ -1862,6 +1862,14 @@ static const AVCodecDescriptor codec_descriptors[] = { .long_name = NULL_IF_CONFIG_SMALL("GEM Raster 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 ab265ec584..55b69a5db5 100644 --- a/libavcodec/codec_id.h +++ b/libavcodec/codec_id.h @@ -308,6 +308,7 @@ enum AVCodecID { AV_CODEC_ID_SIMBIOSIS_IMX, AV_CODEC_ID_SGA_VIDEO, AV_CODEC_ID_GEM, + 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 4d77431842..fb1a0feec6 100644 --- a/libavcodec/version.h +++ b/libavcodec/version.h @@ -28,7 +28,7 @@ #include "libavutil/version.h" #define LIBAVCODEC_VERSION_MAJOR 59 -#define LIBAVCODEC_VERSION_MINOR 18 +#define LIBAVCODEC_VERSION_MINOR 19 #define LIBAVCODEC_VERSION_MICRO 100 #define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \