From patchwork Tue Jan 25 17:41:32 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 33844 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6602:2c4e:0:0:0:0 with SMTP id x14csp832384iov; Tue, 25 Jan 2022 09:42:38 -0800 (PST) X-Google-Smtp-Source: ABdhPJxSN6+AAe63Ytjrpfbi+3jXcY8kkJRKYZGY7LFamIkAkJz0nelRzj0jjiWBqTSpYmkA9r4J X-Received: by 2002:a17:907:9085:: with SMTP id ge5mr16907687ejb.144.1643132558665; Tue, 25 Jan 2022 09:42:38 -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 n8si9553067ejl.300.2022.01.25.09.42.38; Tue, 25 Jan 2022 09:42:38 -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=@outlook.com header.s=selector1 header.b=keSFUEkB; 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=QUARANTINE dis=NONE) header.from=outlook.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id C0C0668B050; Tue, 25 Jan 2022 19:42:16 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR02-HE1-obe.outbound.protection.outlook.com (mail-oln040092068072.outbound.protection.outlook.com [40.92.68.72]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 767DC68B054 for ; Tue, 25 Jan 2022 19:42:09 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=b1KwHqtBG469BKE4/CliyvMNuEbB0g34d/RBemRwnb1LXROJ8eoc4onI7cDsWFZd21R2AE/DZ3lekPA3bZb3aH0qRF5XcWo3lU3CNSiaJtRGsXPfwpb5q20DJOFzkJD0xCivCTcPnwR6b4Vm4pKMEgbv7q3frL3gqhwh2hQ++OE2Kjvt/v1iKE0TdFIBOn7kBjYo+3JP+Y/9d/OO68BWk12fhpmcIK4vqxtY8XSLS7Rao9MaLnihkYFxGpHBM2zsiA5fTaK9BVmsSblv8wTwR4TmxkDq09hQrXmealxzQzb1Q3jNcUZFNuje3NFk1Y4QecCTtDEyfkR72PRgEQJUaA== 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=02QJ12l6FEMyXO1OOFF+8jDtz/YlgRouDy4+uAvyEvU=; b=T971i6u79+/MOcT1uwDTsbHZkrDkKum4eB+6CCFx2Yc/ZJT9FPJMk98EbOKjGfRhHqatjekCvlkfxVTWDPBAdJBfkoNBAASjuspNzEjeg8RzOLQLxqiOjrz6kMKWcDxXYyrNfmqJsCDw+4KczyWpwXdG4huElTGeTRc4RYblHQ7WrFfG+SdPHgQ3BvsffIfdAuK7CxwVjO9zN/OCiMqS7C0X4rKlJLT1fTe9j4y/jWNixtVZAQoJtTixu9HMsL/vBbZjXHE/mBpCIQLtV2c/Wv8skMNwYbtTlgz9tpiyGfxSOLML9+l5/RrHU5HgLzFX/CBOTCxqHPjc1w3dw4CevA== 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=outlook.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=02QJ12l6FEMyXO1OOFF+8jDtz/YlgRouDy4+uAvyEvU=; b=keSFUEkBs1xHFDzgbnuwuKjArM6w/NyLZtI/8yokET/puUZmIE99OWTwTB92dkeAlIJYYhLmgwwD3L1tQ4uiBzOLbSgRUvKZJ6ZEjoDSqQF9nN/4qSWLQNTEdF2hIitRlz/jYssJKhMv4Hq7ULT4DPQYmedeUpgRUrv0/w6URePvtH63jaAtH/CnZGlPqXuD9g6so39G17WvoWi6ORm+oO2owaMoTXCbA0A/zOOFVaoEC36PYTS68LwMd57yqa/0iJYmCjnWkmXLvgzSduRg5h0QAuyLcS1Oiijt4IAps3HTk/Y8z1m/mLNK/imJ4zl/eoFb3Hg6GzYy06tZ2fYu5Q== Received: from AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) by DB7PR03MB3500.eurprd03.prod.outlook.com (2603:10a6:5:8::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4909.12; Tue, 25 Jan 2022 17:42:05 +0000 Received: from AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::ac56:2ff4:d304:ab22]) by AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::ac56:2ff4:d304:ab22%4]) with mapi id 15.20.4930.015; Tue, 25 Jan 2022 17:42:05 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Tue, 25 Jan 2022 18:41:32 +0100 Message-ID: X-Mailer: git-send-email 2.32.0 In-Reply-To: <20220125174148.994967-1-andreas.rheinhardt@outlook.com> References: <20220125174148.994967-1-andreas.rheinhardt@outlook.com> X-TMN: [3jdei4z8UDr/3HaSFWY9GfozFZ0v8ZY2] X-ClientProxiedBy: AM6P193CA0061.EURP193.PROD.OUTLOOK.COM (2603:10a6:209:8e::38) To AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) X-Microsoft-Original-Message-ID: <20220125174148.994967-4-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 1929676d-f45b-4f01-533d-08d9e02a009a X-MS-TrafficTypeDiagnostic: DB7PR03MB3500:EE_ X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: V4WMLKtmaR+r90QoV7frb5RPXeB675Q/U0iBNCbtphHqWa8uyppGCjiDazL/vs3kEthpw4SLCsWwBb9mZ5C3qJtprM8Kv6eJdbV3cqy5tn19n352hfAu1LKcgOxLw0ItqvEjbBN0+7/zta3tNZY6yqdaaxmjgJ2MLkXkkXmWJD3LmhUeE5hVrBK7uDO1lFshWNnv2+CUzKkhCn/mlriTLomEbjczDf9WpP3zH1OG+3v7LdqsINMcqaR9HM+Zt8m3kAG3/t2xCkE9AdUHL486YVqudHphCrH9QAiNTcsEP7S415/G1WKWz4D6sgw5pD6Sdgo188E48Moi0COm/Iv0pztLp43cydm0MaO+t42sbgcHZqd8JnNW1VJ/jb8GsWxTzURh7x+bZT5ggxj9uZi2i/FqI/K79JkkcPwyGKnzDLPvmRKxSBx/Kf7k52UejjdRblFT/Gl8pAlIdmtLT93/qJBgnRLF2F1otqftxi3JBaOO6DrM0HOpzemjH7MJ7uaADvxwOQZR7uASKF+92tq7OxhjbSTrr9Fchrvp7R40c42RI3n1KEnCeIknYuiZ0GYJ X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: dqVr/cZvv6YKpVQSCcWIeyOHqP4+KpSRVSpTMBhDNyjvMJC+D6uq/hMu3C+gIqxwUpPNK+lv045yvFAoVlbHvaxd5A646sSQuurtJHJFxqw0E4yZLJI16lbHQXgtHfQr/NgXWQn3vXNXWx/o3lSBCDurgpOMqgwHPTj0uRWuAOW0R5Ee6bgvy6eNMRYWhsotAjxip41WwVEYCY3RbWJjwkOpd9wbCn/0jGisrd0zMpwinj7hMLjWhqpzyjQz0C4tcFHKFLquIrI18DleJqhgzrSZuEonubeIz5m2ffdCioukh2lkRzex74Q1+OGrMoCzaLAyj3hxxkikqNWRpMf4ALq1PQnA/BwwepobxkOdsfIQRBmWUy10lqGZShjiH5k24c8qxBzdaYBVgjY/1qRJfgC9bHT0J89hkLLh9S2Ra0qPDceaTUsYIl9ate+om5rtpN1Ow+/Wj69aY6yumjojaFc/nWP6Tt+eDQ1MbAu5kXTaX1sRTRLC3iGFvRe0NPx3dNBy8adP3M+WFAfa/1+bo6FWOeWJ9q372AGFXmkcsP5wj1vYMko8qlokG+9PlrJizZhqPhSmWUfTJNirnHT/PKW9jRSnJG19/Xni+d9vRx+Hzf6rqZ1dJoJBTfNGryEhlfMD42LjO/i7yMl87KT9NxlI/6tZqlId+HM7LZYLcO+jttFPR5U4UY/zQ4OLobCjqKK1HRYIRV+joXBFCyHwN4ZYI5QH9AOoEXMvp+nVHJ1zdlz/UUg1BONZMwncHndOVaRMtTcLQ+5Zj736q10KgmqOJWv2t4DD+Gmdjyz3nfKMZAE0wAwTB4ypqK1fK7lrIoh4kUTIWEzo6pZakmTSeIsZkPaMxOOzHuBCDikWOPWACWfICqYAIqM66cfriSkmpJt25yGpbNyRJXhA71ZdVLHL542500n+78KdHV4fwKbnNhGQkl4RuKQ6hk1z3x8HIbc1dEhtyqEVrDBlbY1LvQ== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1929676d-f45b-4f01-533d-08d9e02a009a X-MS-Exchange-CrossTenant-AuthSource: AM7PR03MB6660.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Jan 2022 17:42:05.3935 (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: DB7PR03MB3500 Subject: [FFmpeg-devel] [PATCH 05/21] avcodec/mpeg4?video: Move vo_type to Mpeg4DecContext 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 Cc: Andreas Rheinhardt Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: GowsuEEzk3Y7 Signed-off-by: Andreas Rheinhardt --- libavcodec/mpeg4video.h | 2 ++ libavcodec/mpeg4videodec.c | 16 ++++++++-------- libavcodec/mpegvideo.h | 1 - 3 files changed, 10 insertions(+), 9 deletions(-) diff --git a/libavcodec/mpeg4video.h b/libavcodec/mpeg4video.h index 87d9c9996e..fd6b6f2863 100644 --- a/libavcodec/mpeg4video.h +++ b/libavcodec/mpeg4video.h @@ -105,6 +105,8 @@ typedef struct Mpeg4DecContext { int xvid_build; int lavc_build; + int vo_type; + /// flag for having shown the warning about invalid Divx B-frames int showed_packed_warning; /** does the stream contain the low_delay flag, diff --git a/libavcodec/mpeg4videodec.c b/libavcodec/mpeg4videodec.c index 33a0c97ba8..00bf7b6c4a 100644 --- a/libavcodec/mpeg4videodec.c +++ b/libavcodec/mpeg4videodec.c @@ -2305,15 +2305,15 @@ static int decode_vol_header(Mpeg4DecContext *ctx, GetBitContext *gb) /* vol header */ skip_bits(gb, 1); /* random access */ - s->vo_type = get_bits(gb, 8); + ctx->vo_type = get_bits(gb, 8); /* If we are in studio profile (per vo_type), check if its all consistent * and if so continue pass control to decode_studio_vol_header(). * elIf something is inconsistent, error out * else continue with (non studio) vol header decpoding. */ - if (s->vo_type == CORE_STUDIO_VO_TYPE || - s->vo_type == SIMPLE_STUDIO_VO_TYPE) { + if (ctx->vo_type == CORE_STUDIO_VO_TYPE || + ctx->vo_type == SIMPLE_STUDIO_VO_TYPE) { if (s->avctx->profile != FF_PROFILE_UNKNOWN && s->avctx->profile != FF_PROFILE_MPEG4_SIMPLE_STUDIO) return AVERROR_INVALIDDATA; s->studio_profile = 1; @@ -2360,7 +2360,7 @@ static int decode_vol_header(Mpeg4DecContext *ctx, GetBitContext *gb) /* is setting low delay flag only once the smartest thing to do? * low delay detection will not be overridden. */ if (s->picture_number == 0) { - switch(s->vo_type) { + switch (ctx->vo_type) { case SIMPLE_VO_TYPE: case ADV_SIMPLE_VO_TYPE: s->low_delay = 1; @@ -2745,7 +2745,7 @@ int ff_mpeg4_workaround_bugs(AVCodecContext *avctx) } if (ctx->xvid_build == -1 && ctx->divx_version == -1 && ctx->lavc_build == -1) - if (s->codec_tag == AV_RL32("DIVX") && s->vo_type == 0 && + if (s->codec_tag == AV_RL32("DIVX") && ctx->vo_type == 0 && ctx->vol_control_parameters == 0) ctx->divx_version = 400; // divx 4 @@ -3084,7 +3084,7 @@ static int decode_vop_header(Mpeg4DecContext *ctx, GetBitContext *gb, s->top_field_first, s->quarter_sample ? 'q' : 'h', s->data_partitioning, ctx->resync_marker, ctx->num_sprite_warping_points, s->sprite_warping_accuracy, - 1 - s->no_rounding, s->vo_type, + 1 - s->no_rounding, ctx->vo_type, ctx->vol_control_parameters ? " VOLC" : " ", ctx->intra_dc_threshold, ctx->cplx_estimation_trash_i, ctx->cplx_estimation_trash_p, ctx->cplx_estimation_trash_b, @@ -3111,7 +3111,7 @@ end: /* detect buggy encoders which don't set the low_delay flag * (divx4/xvid/opendivx). Note we cannot detect divx5 without B-frames * easily (although it's buggy too) */ - if (s->vo_type == 0 && ctx->vol_control_parameters == 0 && + if (ctx->vo_type == 0 && ctx->vol_control_parameters == 0 && ctx->divx_version == -1 && s->picture_number == 0) { av_log(s->avctx, AV_LOG_WARNING, "looks like this file was encoded with (divx4/(old)xvid/opendivx) -> forcing low_delay flag\n"); @@ -3471,7 +3471,7 @@ static int mpeg4_update_thread_context(AVCodecContext *dst, s->divx_build = s1->divx_build; s->xvid_build = s1->xvid_build; s->lavc_build = s1->lavc_build; - s->m.vo_type = s1->m.vo_type; + s->vo_type = s1->vo_type; s->showed_packed_warning = s1->showed_packed_warning; s->vol_control_parameters = s1->vol_control_parameters; s->cplx_estimation_trash_i = s1->cplx_estimation_trash_i; diff --git a/libavcodec/mpegvideo.h b/libavcodec/mpegvideo.h index 448fe2cedc..e0aec532a6 100644 --- a/libavcodec/mpegvideo.h +++ b/libavcodec/mpegvideo.h @@ -389,7 +389,6 @@ typedef struct MpegEncContext { int data_partitioning; ///< data partitioning flag from header int partitioned_frame; ///< is current frame partitioned int low_delay; ///< no reordering needed / has no B-frames - int vo_type; PutBitContext tex_pb; ///< used for data partitioned VOPs PutBitContext pb2; ///< used for data partitioned VOPs int mpeg_quant;