From patchwork Sat Feb 26 05:50:39 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paul Higgs X-Patchwork-Id: 34525 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6838:d078:0:0:0:0 with SMTP id x24csp819803nkx; Fri, 25 Feb 2022 21:50:53 -0800 (PST) X-Google-Smtp-Source: ABdhPJxzMPYnS5XPvKJCogPVRZ0tBpaGjRmKojNIx8PE5xqbhqz/F7lHDVwRhZ1UKfC/NF+UG2BG X-Received: by 2002:a17:906:4c4f:b0:6ce:412:1368 with SMTP id d15-20020a1709064c4f00b006ce04121368mr8429665ejw.496.1645854653664; Fri, 25 Feb 2022 21:50:53 -0800 (PST) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id g6-20020a170906198600b006d637ebb31dsi2224451ejd.544.2022.02.25.21.50.53; Fri, 25 Feb 2022 21:50:53 -0800 (PST) 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=@hotmail.com header.s=selector1 header.b=P4muBvzs; arc=fail (body hash mismatch); 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=hotmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 7867068A853; Sat, 26 Feb 2022 07:50:49 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from JPN01-OS0-obe.outbound.protection.outlook.com (mail-os0jpn01olkn2085.outbound.protection.outlook.com [40.92.98.85]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 0CB0168A306 for ; Sat, 26 Feb 2022 07:50:43 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ldOXqDWgWAhWjDzqGCkGy4/ibTao9oSm92Yo5AQD1yq09Ni7IqH5xuHkG1B2g2UJVKup13wOcHZVgmWquuj3RhuZER4/aTLJghZP8j9+X8z5Y3dlNcVm1Gplr6xZ039LSGT6ZO/j7gfNpfl1S/i0lVTf9XabE9fNDrEwcMuTmU/o93sEys6wrUsQxix6NWg7/Q2JsIEvOmn09os5gQe4LXM/GB0sgZLl9hZwiHTogjy8ZdWao9jdl5hiobJ/Fw3IjLir8/MyfM0tRzY7yufAD8uu4TFI/Hd7dzh9Rh2qJ0gl3HE9CPgCa7Zf42wjlRNVypDxlVUuOQeZjDEihnHGXw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=Cx1O3+yqyMed8umSbSiOD94ucTkFDlcOUEVXUCNxj74=; b=DmYRrgNjramM7MOMPOUxgea2fuDeN7NqA2ZHY0PmxOl6Qqasw0WyHp+ldJ5Q3yX1o5Asqx39UBxZOzUl6lwKzwze19nAC5iAR1fqrswBfAsm2NgeK1l1gBCGl5R4eBfbnms35Vd42KZGlroSDq/5m2yVCP1vqqLA2r9IBJnp9lHvjB03thUfTtSkS68FNk1uRYlYEqgvwx3/X+EK4mEU+kb4+8vhbyMXWMyg21YLpMbJH14uZdABIzhVCtDvG5iikUsuKmVuSvbxWErayZub7glv8SeQYHXsnFLSkVMm/wMIAJwNkWZ7XBjmRRqknwWHsWiUNSvZmSO/EyPfdRKyWQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hotmail.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Cx1O3+yqyMed8umSbSiOD94ucTkFDlcOUEVXUCNxj74=; b=P4muBvzs8qa7a41s79xR4GIRAc4+75pfQfM7VNHNXxTwRSsi/GC73BONZ9P1ruoRL2JRGVFqWmUasVi3XHr1jN/eIM+nB/BfRmoqPC63afhldiWd9be/RhSsQDudkNMx0SFl7Oy4qrNvKhBdjVYoo5cYy7t09CaGTdUYOvZ0Z2m5A+yOAVe2sSN51bP54YI2Xgm/MkIPokWsAap1HHT5HTDEfnw4orw7344gGAio24vIEFEabG6uxmS4pxZJL/eyrqZHBatBK/a58A9aZKQfY/n6bsHrW0R4rOND4tzx3V7BWqNSUQsqWbqGXKi2Fkd81ygczCnlyjjBaIZTux/d8Q== Received: from TYCP286MB1969.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:159::9) by OSZP286MB1166.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:13b::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5017.24; Sat, 26 Feb 2022 05:50:39 +0000 Received: from TYCP286MB1969.JPNP286.PROD.OUTLOOK.COM ([fe80::4e3:4ba3:b8aa:de93]) by TYCP286MB1969.JPNP286.PROD.OUTLOOK.COM ([fe80::4e3:4ba3:b8aa:de93%7]) with mapi id 15.20.5017.026; Sat, 26 Feb 2022 05:50:39 +0000 From: Paul Higgs To: "ffmpeg-devel@ffmpeg.org" Thread-Topic: [PATCH] AVS3: add support for AVS3 High profile - same syntax as AVS3 Main profile Thread-Index: AdgqbuEsGvztzk9NT6uYwaPZSpIHvQ== Date: Sat, 26 Feb 2022 05:50:39 +0000 Message-ID: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-exchange-messagesentrepresentingtype: 1 x-tmn: [8QDUfqj/Hw+6mN0eS8M3dSkoKp5FSAV/] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 0f4b91d2-ccc6-40ad-4b97-08d9f8ebeb06 x-ms-traffictypediagnostic: OSZP286MB1166:EE_ x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: epMCyOfVD2BoW5PtslBcy5Wg9Tuc6xlQgq4MYO8qhU/lcM6VNeJp2x5vqxxjpRO++svvOk6/IuDF2tI4hL2NdGU296/g1BIKRmHfEcX0f/dt1NDRn9GdQzFFNJnn0C/6h9Op+K0+4vQZ/u1yxeNtcGXxPH28HaqgMWQ33R53YthuB5WQhjXsC+oRal/GwOjRSRP9tzA2QD6ZiAjy06RRAWGH2ik/iCD+522obsf8YoGlvWB4HZ5IEaooL5ihl4TTBaftZq/xcb12R7POcR7uiU5kaccYXEpsTegsPQYmA0sVUBimHEvve5teSHyctcGfAWSaC8+CvIo7A0h6HGqb8696gJOwXoUNOwktSPmtHBCfkFncmjL7+DFd0Lfd08LSKhOc5vVYfjLWVsgTznQGPmXczFxRlGHkvPqyeveSRYLS/zrbO4kmfBhuy/ZqT2db1e0R9DiLbF2QrIc6b3v6DsXDskiaw4wtfzDI+14qp8cVB/0pwtLvp511sgX/1DS9Qd/iShwPTwJV9DVoFcWj839CESQxfoHMtxC7ogpxA68mmKVnZytg/kks6uEdnOqpy/d8HLRetHVNzizWzDiw3pKExdDaYhU3zq5GJs3WwoM/ZuuFlXytTb3M72/XXjHc x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: AiAVe0t9p5tdRcaz1zkGAmTmapCALQEK/cEGMdi6AMdk7Y1utvkd8JWCePCBcKAjoCKL4oMWUBtc/0Oj60ATdJ/Boni243Wp9BhgQo+QTGai3veB7RJoHe7L6HC/Ns4F8LPh5e+b1PZQ47Z/iYkU6iuYN0jSnHzCXndG4m8HSO78zjl7uokR8nM+vxq5GE1MqSgywHqhjsI2fhdADc1uYoazsCq80zHm/T21GJVn5yhT7nJKDj3lCCQvF2JLPeLsC3rMvmsPa6KRflb2bSaJzzg3fKFpYm3azBcuAy6ciyAlHxdt6U6x8sYtqsrSaR0zfT7JCL3W95OS7XPNEWaXco1V+rAJWQXg6WfbdvyCGQPYupc+PqkY7E+EHTeKEub/AZMgTFAtaX/Ikj9MBLXwFss+C916GH/YCxUZ6FtZ1U6uRys1fBlg6GtShk/ICUm9NqfonUA7QbKeMveggzKGVpimwZLYvPY8LVvMRJsyvsU9s9FKJGnisFfFwKXVZ51eyLvsfWuKKOV13hHNAA3sVlAzrPEx4o7hwweEt7lCXpwj+Xuh36Macr3889IgnewJZUabi9xbM6H5ZdQpirwp+bRsXANlaiTxXn+lLCQX3tLhbUjaVWcpe0AVsP8+xCn6IRfhL5zsa4hzdniiEhBeI482xFXzPQn4xXdWoroDDcYiqUM8eK9DtNWYBlj2Ob7dErkHLyNGnz/kinM5rn1YGaWdkS/u7i+BV/CnDnvBt4tlnXFGAAkvy4DV54YZQHbdXEjC2G3QFyCiFytAHemedJ6RvrxJpRQaiuDQpMOJE3f/+/tAlsZWyIFOYCMFmBDaN/3B3FcD7ba4b/kXzFim6U+EpGttcoUukhQiYO7EmCzliRJz6giGJ1N103TU6iZcjqR8aq3pFvUq1wgeUOjUK9YQ3fefQ6B/tvMGQYhpq3YbvUHWlUnZzQnEfzoKnhIR MIME-Version: 1.0 X-OriginatorOrg: sct-15-20-4755-11-msonline-outlook-05f45.templateTenant X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: TYCP286MB1969.JPNP286.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-CrossTenant-Network-Message-Id: 0f4b91d2-ccc6-40ad-4b97-08d9f8ebeb06 X-MS-Exchange-CrossTenant-originalarrivaltime: 26 Feb 2022 05:50:39.3072 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-rms-persistedconsumerorg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: OSZP286MB1166 Subject: [FFmpeg-devel] [PATCH] AVS3: add support for AVS3 High profile - same syntax as AVS3 Main profile 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: jqbaQt1kfEqT This patch adds high level syntax support for parsing AVS3 High profile bitstreams. Latest AVS3 specification including High profile is available at http://www.avs.org.cn/AVS3_download/en_index.asp Signed-off-by: Paul Higgs --- libavcodec/avs3.h | 2 ++ libavcodec/avs3_parser.c | 8 ++++---- libavformat/avs3dec.c | 2 +- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/libavcodec/avs3.h b/libavcodec/avs3.h index 4189d9b583..c8caa58b0a 100644 --- a/libavcodec/avs3.h +++ b/libavcodec/avs3.h @@ -35,6 +35,8 @@ #define AVS3_FIRST_SLICE_START_CODE 0x00 #define AVS3_PROFILE_BASELINE_MAIN 0x20 #define AVS3_PROFILE_BASELINE_MAIN10 0x22 +#define AVS3_PROFILE_BASELINE_HIGH 0x30 +#define AVS3_PROFILE_BASELINE_HIGH10 0x32 #define AVS3_ISPIC(x) ((x) == AVS3_INTRA_PIC_START_CODE || (x) == AVS3_INTER_PIC_START_CODE) #define AVS3_ISUNIT(x) ((x) == AVS3_SEQ_START_CODE || AVS3_ISPIC(x)) diff --git a/libavcodec/avs3_parser.c b/libavcodec/avs3_parser.c index d04d96a03a..483b38fe76 100644 --- a/libavcodec/avs3_parser.c +++ b/libavcodec/avs3_parser.c @@ -91,11 +91,11 @@ static void parse_avs3_nal_units(AVCodecParserContext *s, const uint8_t *buf, // sampe_precision(3) skip_bits(&gb, 47); - if (profile == AVS3_PROFILE_BASELINE_MAIN10) { - int sample_precision = get_bits(&gb, 3); - if (sample_precision == 1) { + if (profile == AVS3_PROFILE_BASELINE_MAIN10 || profile == AVS3_PROFILE_BASELINE_HIGH10) { + int encoding_precision = get_bits(&gb, 3); + if (encoding_precision == 1) { avctx->pix_fmt = AV_PIX_FMT_YUV420P; - } else if (sample_precision == 2) { + } else if (encoding_precision == 2) { avctx->pix_fmt = AV_PIX_FMT_YUV420P10LE; } else { avctx->pix_fmt = AV_PIX_FMT_NONE; diff --git a/libavformat/avs3dec.c b/libavformat/avs3dec.c index 2395df171b..335b5409f5 100644 --- a/libavformat/avs3dec.c +++ b/libavformat/avs3dec.c @@ -47,7 +47,7 @@ static int avs3video_probe(const AVProbeData *p) } if (state == AVS3_SEQ_START_CODE) { seq++; - if (*ptr != AVS3_PROFILE_BASELINE_MAIN && *ptr != AVS3_PROFILE_BASELINE_MAIN10) + if (*ptr != AVS3_PROFILE_BASELINE_MAIN && *ptr != AVS3_PROFILE_BASELINE_MAIN10 && *ptr != AVS3_PROFILE_BASELINE_HIGH && *ptr != AVS3_PROFILE_BASELINE_HIGH10) return 0; } else if (AVS3_ISPIC(state)) { pic++;