From patchwork Sat Feb 26 05:31:43 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paul Higgs X-Patchwork-Id: 34524 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6838:d078:0:0:0:0 with SMTP id x24csp810725nkx; Fri, 25 Feb 2022 21:31:56 -0800 (PST) X-Google-Smtp-Source: ABdhPJybVVu4fNkGNOUFUR0hf8nkBYUsSAHU/J9ufEHcWIiNwB4wzUZIbiYts9KB4oJqzUbVxO8O X-Received: by 2002:a05:6402:42c6:b0:412:8cbc:8f3d with SMTP id i6-20020a05640242c600b004128cbc8f3dmr10171065edc.310.1645853516074; Fri, 25 Feb 2022 21:31:56 -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 j8-20020a170906410800b006d6426bab33si2487513ejk.62.2022.02.25.21.31.55; Fri, 25 Feb 2022 21:31:56 -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=MuKNpy21; 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 E801868A853; Sat, 26 Feb 2022 07:31:50 +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-os0jpn01olkn2082.outbound.protection.outlook.com [40.92.98.82]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 946C9687EBB for ; Sat, 26 Feb 2022 07:31:49 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=DjjLub1WZoYrd7P29Ux4gfA1EyZkew1xJVcY0A1aofC0ixOcyskqx5aFexl5ouZbp+tTpwEROk5wU5XtLdhMKAOINkUlbD+B3/4KJkGgJCHqBm7rrr2CDrd9ld0j8B2tnzEg3mgDFFRWSv117Sw7t5wPvH/tkpy+ENFM/tHRkK49TB6gaG9GTMR1Q7XvBGIMKiW6tFXOtQo/r3b6FOsCMo05I7pH7LkoYjeW7nwGySYHjIyUW9FvEbcDRumm4SEl7vBBlJ/Bso+eH4Ga4hdaXFtgsy3NjRNyPlmrAwzGgz/XtRyxkw5Vi0mMzvppd7n35rQO9Cna7FJ9i61zZRcMQw== 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=UuvFeMNa/jxwminZI6GSXfPFub6XgYP5n5a9ofyZU5x6lg/rrOMhOKlUs3HPqje9u/HfutOCrKkIsQIYDeFKI/tb8uPFmJwVFWJAwvVEcxVzVuAY4nNJ/9H6CXPSrE2oFUMQms1jat6pcYhkQZEixuFNDyND7MJspmnacm8DCUDzHYEpNuHQWOn0iDLWya4q+QJwAk1HqxPsKyMLtjgxyaNq8ov2a46V0M3iWpdH15TQYzZ/t4vHcYUNV+7q0qklYKjDyORxWqeyB+N528bZj41CMlWFMuuAsJ3/qM1Orp0aMf2lIzyYZ12AMKxM3TW2y7HYfse+uJppIFTR0z4ZWA== 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=MuKNpy21PWYhmfJNibYHYUr2dhGHn/4uMKGuJOZX0ZX03GD+sZ38z26KhhMWGI4metmmQaoKIcaqOrq02gm+AwxDpPinoUAM5c1LWYJ4D1wqPHdsygeYbwzZrI1wD+ZIJDBAmFUvfRHfRmC49eHlYNh6X48V5hOrhwUMEWai4Gn7AyEyOlV4eNBlH+CvP8eTWWuvoPts6AeVAnyYIcDBB/3ml8HWvmAS1aSJbaJA+iOgmY98O7Bhj1EaZrXEO0Lt52zBlplD9zwUa6vLp4Vyv57vEdLOnCo6q4fZjklVFJl+sQTF/XVUAn8exQz289KxAO/Uta04k2H2InmNR5seRQ== Received: from TYCP286MB1969.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:159::9) by TYCP286MB0926.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:ac::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5017.22; Sat, 26 Feb 2022 05:31:43 +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:31:43 +0000 From: Paul Higgs To: "ffmpeg-devel@ffmpeg.org" Thread-Topic: [PATCH] add support for AVS3 High profile - same syntax as AVS3 Main profile Thread-Index: AdgqbuEszp5FqP//QKOFrNajPtJeLw== Date: Sat, 26 Feb 2022 05:31:43 +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: [28gGcPLnfaa/OGnE2b42tn4MbCRdcyFL] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 5d96ea2c-7c44-41d9-f501-08d9f8e94616 x-ms-traffictypediagnostic: TYCP286MB0926:EE_ x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 4vJCzmUUKviEvxr13ChksQFbaT+mQk6qBINKBQq9S/5atuzdg3UiaEBkNpFFmisJi5zXvF1A+wsKIXiLBTXr+R4davArkBQQ3aYWOvwsED8tTsz+VQIZnvKeYB993WBzXxIQULRMV4WMIVDEAqwKd/G/0TBDo7TJ5plJDQZ29uURdsgDAM+1IxxLxadn6JPpo0Eo4ac+z41dTAVlNxltp+6AgGwnCgroBadAvLwNsmLBvv611NnMtkjU/MH0NLS9lfkErGQjc1XZwz1QnvY0WAKVWnwXcZ4uj3FegQBUyF56cewaupcaH3QD2Gplaqq7Uwn8jFBhRvIzE5sgyN+Cy3eYt73Z4EqecEKeev52kLhH+poQDSsyKcA3cYXhR8kZD2HQkJpXZVRAfFdINNKWXU7tMgX/of5Uh/udymI8WosFR9Zkt2UC8YxFuWOkUMXRUDj69s9jBttZs/sbmLfzDeZtTfOjJv+YDSZQoQDC7tXteyu/RgRMMDylEVcYUwiR+7g/WoptE6M1dmNe+ytF3iNcgj3w4B2CMzyto2fatyKV3fSafJOpBeYJA5HcejFvUsHCUq8ySNUVJycr2RPrCHElUMhLKyfHa0xuTKHzOVYDJwfT6ST2eNn/axCTiuXP x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: 05Lj1fb868v7Gib6dIquzLwQN05/1HtJ+Pn5PriMBPqGhQebXEPvdFjOXsOTnrfrg+Qd3AnQChd/CRsivHd7MnFbVV7Lwk9tTfa1qKG9Kv/M1RPIRzjsXDvg3lovHlBF8NeJLkPqvlsaUs4EQqRCke/DDBcnTaYS22991/+r5TcImW/UY9lHW5gBCKhiabrFVw5sh0TrQ4XakGZSfbxdwJFJTZz+0z6Wpf2kapyswue5DzatIN/BoLl9iBnpNhpS1CY+FTlqINnui8gWusi490Sh0m91AAT1fiuDvyjFC/vQVfJZgrg8tP+R31/2u6gzPlx16xZRiXrh4VtiGVHNtCSVpQ/PbfJ/PscsN0q6EoiDqkrkEZx0mIpvj0bT4CETQm7gukR4XLMY5P/ue0NtWdONUkLTKQlcE7ldN0ApM+gorIES5xlOWgylV5N1WmHqhY19YHtLXlDipyUKPVe1187yS+7UwSg83md2AAyOfaRBb1m8dn+MbmB6td4GtptwIS96TFWYBAgxxyjES/e6g6pdLEVAoVzIq45Fdw6O4+u6vtUYv4Mw73sG121bjxyZr04Pane1JbwnV+2uNHpJKgyKhfyzVdbkml7CiQCkvWHWOzTOjz6Twsiwpm5ySvD6xFtvyAl67wtextOTLCiW9YfRBDqXx4c2jJbGwFxoH6OrSPmEL7qZRb20sPx3G4Bhgt6vDQFxqZPSeWSgFMXDk5KRuzvZFNEnIzT1eHr+AlSy9DQfB4MXU1TuDdZMkwcqnhtsODn6rfk/b1PmniMApUcPG6g6yAtRgtVefbhDsHVmkjRrfGUjss16pyn/hufsjg+cYZsY6ROjftz7unTWIMiIN1PIQ8FKYZorqfxNRLaRofFbFxYQvA+6IymSaNM7QF5TAfD99acE3rqrx0VMe9k8NOnktHIJ/VaVhiypXMCFk+LY3RVsgyJgxCEamdah 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: 5d96ea2c-7c44-41d9-f501-08d9f8e94616 X-MS-Exchange-CrossTenant-originalarrivaltime: 26 Feb 2022 05:31:43.5989 (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: TYCP286MB0926 Subject: [FFmpeg-devel] [PATCH] 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: esn+KsXbysPR 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++;