From patchwork Tue Jan 25 17:41:44 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 33858 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6602:2c4e:0:0:0:0 with SMTP id x14csp833995iov; Tue, 25 Jan 2022 09:44:50 -0800 (PST) X-Google-Smtp-Source: ABdhPJxrJwMqircTc2I8jjX8a3KHicZsigFoDNXl9MgY783diE6a+GL9dbcEG3tj94kmxZB7EmT/ X-Received: by 2002:a05:6402:10c7:: with SMTP id p7mr15819457edu.93.1643132689896; Tue, 25 Jan 2022 09:44:49 -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 eg23si10023922edb.548.2022.01.25.09.44.49; Tue, 25 Jan 2022 09:44:49 -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=XUcGEl1M; 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 D62CC68B18D; Tue, 25 Jan 2022 19:42:32 +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-oln040092068045.outbound.protection.outlook.com [40.92.68.45]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 1C7C968B11E for ; Tue, 25 Jan 2022 19:42:26 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=jikoO17m1rK+5HoxiWftkXP1D/j00w1oabLK9LmcSYxQVkeoOPVmwgWNWxT5FiMMENq0t/0sA8fPmXvvP17ONEnKKkFrLdTrHsdLchDQxl9toAnAFkh7fkd/VD2Ctb/GzmYUgtRElLELMDRPaiqfks/taVTaSWb23GtcXFG64R6guVAJ26AlnmsSVnyIaDDhUZxacwShmFk75CRWMKC3CKGvI4cIH9d1s9Y33v2eMls5ueRCwgG7sx2Tm0CYimlFsOwcXiDHGU+oqRMeLqPx1uJMmC5nF+lb4E7qpizhMqds3E+3/DWDL177E3EfYzLa6h0tWYnWBTz1c6uNGArSXw== 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=MOWvFP01J4zCkqGbA23fUuRK2SZaJzfLSnXD9R2NelM=; b=AGn4Vk2DO3Ji35WtvMo+kZPXs+kf4QMApTinPYtRuvRYMRlFZEby6jdVpz129V3z/443Tl1EJDWhfnYztS9k8nw+EdEUjmiO0YE2Xs6jXweRoklMWjZHaOgRAS43TJusmn9cRlWEUUzXf5gNrN3TPqA5MQyluogbvvs9q+Wg9vCplDywWO7eH/vnOBTPKSwEzwEVuLqxtPMLwi/8jfyLYqKoNe3hQT2vhZTG2r2LbvQRfXoVqSm8STuWpM0D3AL9DbQLtyn+ogzDy9kCiYpzHx87nY5D1pl6SLvz43C5X0mrRs3BB+SNJw0RMwRj7K4UBXM77WV+KJgEGnHQ6+enAg== 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=MOWvFP01J4zCkqGbA23fUuRK2SZaJzfLSnXD9R2NelM=; b=XUcGEl1Mw6fh9UCVMcNugIJxsRtZorXK1XXEMpovnGGjWMH1IzXLV/oZK2vExO4wwEZe0hJB+3hKvT1oIiKysjbj3IAK0QZsGIWBjQI296i2xV5M9yF3tC8LElKARPfwZI40KFr+TssH5dC7DA1PT3lyOFOorKzgG6ZA+3PQDoPbBUc69NSvW83/3cJTJIomLx+oggOZSlwZWJVsQuh3JNI2pKdM8sCI5ka4LEyx4ghikEDAUiT/hKcDXhstijkzOUXGsMoUDZL13OJLxEyBhhd7nNGZIXKz0phLJnFhwdKXLpje+jqOU/QUeQGKIzkvcTlpnvPgvn+h6ODrKqlk4g== 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:25 +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:25 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Tue, 25 Jan 2022 18:41:44 +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: [D2FYw5wIAsL14mWhc817T9w7KpiruEey] 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-16-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 5bee72e4-2357-484a-32ad-08d9e02a0c83 X-MS-TrafficTypeDiagnostic: DB7PR03MB3500:EE_ X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: A55JxvyzxMCCV7MPuzca94QCuWCmzaztl++Pspr70Ac6KqKj1k9yafrZ/7iuS4JAMuMNQAnCpU686Jsg/nvy5ojkCPjKdJrJfZaa8Ob5IXNH5bRks6GmRKIFBC/DWGuC2hLHMsNlKV+pI9z1GElLgQgTV+anj9wNNBliIyncEPJwR10XBLZZ0eEn94gaOGUqgKh7MUf05ilRRDlWESRc0tz7fRq7fXE2Nem4sSoSQG59rQMK6yYmSh+c4gpH0m7XL3M89FmTlT+mTZQJQHWhspeq32OUTCo22gfZWDAvLqfPIDREgf/xHVYovmbR0mFb37cSCZYs3ysuEaRmh2j3t2ebqoy3D2KMXes0HXr5pTeUdxe7CNWQogfdWpSl8nmr6s2ALoMzKYn+Ej+CmXy7lZaw+aKhmxtDCYgMYHwnc7Oslf+Hx5Eg7HnXKBgGNLJyKGpXd2byoqZ4zCLmwuixDxulEWd7S8v8py4C/T/GXUV2FMEns/YZnyyTIVSJ7F+4j6fAHDzpjjfx/DbyaYJMCczxBneXYGdm9fbeNriIEEJPaTvdXWFbNcOSFst0DlyO X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 0oINgkQu002I8xvwTc5ofRuAW3socuXbhltUMsIwcXlDnoWMGgoRC6eCt8eoXsqWddVbJzvuay0f5OeO2kMLQZwZo7Q9Yw4LHGIesoDNJS7K8MEM9vwj6cs0z7MklSksTQYme76UucxxvriDBX+fsGG3U6s94uMgUE4oNPpkobrnCLhmxJ0tIK5VSZMlY3o+DUgUfslisb9ywxlaehADEU8AyYqDnQ0O5QYspf4gVCKGkoGSQcK4D7MGfoyO9XZ+1xlD1IVfWdqG9lKSk4XYpGmhhAVVsMK16H4zpscOamXv0iGk5LXrrYPnavL3n9kHLyeRayH5DTDUIFA4RrdUhJf6DJevoDuFyNiqH6O9m7f5DMCN9M2MUUaGYermuQ0sR3VZqZVIPB9Z0p/FLwyonWPhSCt7kPLXEMdMO1NcD/ukZHGSnvjd3YUEMcomf8Y0bxJpdyWNxOyHj5V/OAXUQ4FO8s2K18wd/HChxwx4BQSGsUAf027cH5GNgDs1O4xIH7WZRzd0BdqponGl7xGo8SSyr0MmG9cVpjkIv/uC9yGyTLUWTYumlAuK9FQUYdxgD6kbUQ3xinAGaO+zCsIBXXNO13PRkGyU9gP4YYhIf659nfqImuGgut8Js4Kpl0nLU+uXvIUG7AOmyTf7LGm8fOs/8GwNJwcIqJJWUCGGhiVoZKoac0Tzxm30ZtxZ6yoTf1p2Z4G3eRW3qdya8kUgmSGOrC28QWBjE/fiXOVtzLAjFjdapgoX1vKgTfsuUkYSgUkSsrmfefzFaoEI/nWbqDTRvJ42qhGhRwXMqwslsE0r0BDXdFs2lIdwCiiKxhxEbF+bcQowtpzN30etHkcHDtducc1HRfAmLXrO6BJuTVXJYl37C3s1IH64a0i5Zu5tR8dX+WHHnjtchO6gQdjIhyfo9LnFjJdnjaew7fCPoKMIFDY/jZ54HMQuODSgqadSLtgFn0eGWU5Tc1BGkXo6Dg== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5bee72e4-2357-484a-32ad-08d9e02a0c83 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:25.3745 (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 17/21] avcodec/mpegvideo: Move gop_picture_number to MPEG12EncContext 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: HV14amDfSiyl Signed-off-by: Andreas Rheinhardt --- libavcodec/mpeg12enc.c | 9 ++++++--- libavcodec/mpegvideo.h | 1 - 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/libavcodec/mpeg12enc.c b/libavcodec/mpeg12enc.c index bec522d8e7..eaab968425 100644 --- a/libavcodec/mpeg12enc.c +++ b/libavcodec/mpeg12enc.c @@ -66,6 +66,8 @@ typedef struct MPEG12EncContext { MpegEncContext mpeg; AVRational frame_rate_ext; + int gop_picture_number; ///< index of the first picture of a GOP based on fake_pic_num + int64_t timecode_frame_start; ///< GOP timecode frame start number, in non drop frame format AVTimecode tc; ///< timecode context char *tc_opt_str; ///< timecode option string @@ -402,7 +404,7 @@ static void mpeg1_encode_sequence_header(MpegEncContext *s) time_code = s->current_picture_ptr->f->coded_picture_number + mpeg12->timecode_frame_start; - s->gop_picture_number = s->current_picture_ptr->f->coded_picture_number; + mpeg12->gop_picture_number = s->current_picture_ptr->f->coded_picture_number; av_assert0(mpeg12->drop_frame_timecode == !!(mpeg12->tc.flags & AV_TIMECODE_FLAG_DROPFRAME)); if (mpeg12->drop_frame_timecode) @@ -413,7 +415,8 @@ static void mpeg1_encode_sequence_header(MpegEncContext *s) put_bits(&s->pb, 1, 1); put_bits(&s->pb, 6, (uint32_t)((time_code / fps) % 60)); put_bits(&s->pb, 6, (uint32_t)((time_code % fps))); - put_bits(&s->pb, 1, !!(s->avctx->flags & AV_CODEC_FLAG_CLOSED_GOP) || s->intra_only || !s->gop_picture_number); + put_bits(&s->pb, 1, !!(s->avctx->flags & AV_CODEC_FLAG_CLOSED_GOP) || + s->intra_only || !mpeg12->gop_picture_number); put_bits(&s->pb, 1, 0); // broken link } @@ -458,7 +461,7 @@ void ff_mpeg1_encode_picture_header(MpegEncContext *s, int picture_number) // RAL: s->picture_number instead of s->fake_picture_number put_bits(&s->pb, 10, - (s->picture_number - s->gop_picture_number) & 0x3ff); + (s->picture_number - mpeg12->gop_picture_number) & 0x3ff); put_bits(&s->pb, 3, s->pict_type); s->vbv_delay_ptr = s->pb.buf + put_bytes_count(&s->pb, 0); diff --git a/libavcodec/mpegvideo.h b/libavcodec/mpegvideo.h index fd9d60b03e..e5a4cc9b81 100644 --- a/libavcodec/mpegvideo.h +++ b/libavcodec/mpegvideo.h @@ -432,7 +432,6 @@ typedef struct MpegEncContext { GetBitContext gb; /* MPEG-1 specific */ - int gop_picture_number; ///< index of the first picture of a GOP based on fake_pic_num & MPEG-1 specific int last_mv_dir; ///< last mv_dir, used for B-frame encoding uint8_t *vbv_delay_ptr; ///< pointer to vbv_delay in the bitstream