From patchwork Thu Dec 23 09:13:29 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 32858 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp7105877iog; Thu, 23 Dec 2021 01:14:45 -0800 (PST) X-Google-Smtp-Source: ABdhPJw6cKUe/fxfBol/K+Lf9Sefpk+xU0lzW6DhukCtBADEE1fS0KAiarBZWWqymph+Lbpk/uoc X-Received: by 2002:a50:d65e:: with SMTP id c30mr1255707edj.77.1640250884822; Thu, 23 Dec 2021 01:14:44 -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 hw9si2190804ejc.212.2021.12.23.01.14.44; Thu, 23 Dec 2021 01:14:44 -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=jCyzP+RD; 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 3D87268B176; Thu, 23 Dec 2021 11:14:13 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05olkn2083.outbound.protection.outlook.com [40.92.90.83]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 1475768B165 for ; Thu, 23 Dec 2021 11:14:07 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=bRw2bPJjYVMASa1Tmao1ozZrlwUR7bkgqJPSblBdlqdTZe0wUiXZmh1aEWlFwcQUBCeS2OGdqTqohlFt9BatOQQHkAP69JqYr/tOGXXwdSi3uGSYk5qjtlPHPAQvPk9IUV8fYWDwQ9UW+GLTMD966mynS4p+yksIYxlLAf279JB/DSVYKxD9eFUq0eIcr5beg4ssFJkjO4bKGd9kwhSd91di55llqw7qcTHy29IDaBSsYAkoFi2UhvaFHVfGbXBhJ76vFzZwDN0UxHDOWTWC5C2gBLO/v/RfJMhDDml7Dp9w237rGP8GC4oK72JDcQFgA1OMBkiAxU9R+XYQA073gw== 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=U5fvknOGHwhmhntX7D/+JaK4854aXKoLVkp4/3b7igY=; b=cLy/yyl76IympZ2RysEo2DHHi3/n3fTQsqdpy1gtwTBkC2RasnODLL/tkt4hQ01x/s1R35AEtE8pM51crOaPC6atbVemYPRBKf7mGlFhQZBcACfINqMz7X8Y2akpJL59CGC5r5oBduFoQBaxMnC3pbT/VsqHUECZkeKe9ObNsBlMBzUyhloZ5a0R0GadgUYMBG5/wdGUbOsGMdBtnESw2RH+K+i5S4YnebrYh7Tw1Hv5QR13J6qosFuhGj5EC5fjXB1vnSXe8nvkXDwAlEa2IfVxkiRDMwFLhOpZFu3+KdUiIhXQY+SQaveRGoDw0chELiT9L2Y6J1/L+GvU4JOQCA== 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=U5fvknOGHwhmhntX7D/+JaK4854aXKoLVkp4/3b7igY=; b=jCyzP+RDjRxHfl4oYcbSxpiXozL4pd5Mz8gCXpi+hRcB/IHDP4cqlQIO+ZLYCYdeG6vvvAZXNykMXDYy1FbrPOK/vOH3zeN+7YEAGQze1LmE7V+BiOSIdQGnW9izVRzW/fgdalzS4WmqdCqQMJYHceV1sr435dB5NH+hcwQtKSAGApBt8XzjJExKCTRP4efB2ubwiOkYz2tcK79HbvTTwWO0uuxgtgr9vCcKsPTH2wy29GRotFSCgjcFCV8/OX/yy9SNlC9M/++HxmpzizDa4SgnxWFNaKgUCxjBc0eL3OCVnceUzA+4YnLLRAAadCjxwnGRT+CahIzWx0JFxiOxow== Received: from AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) by AM6PR03MB5607.eurprd03.prod.outlook.com (2603:10a6:20b:fe::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4823.18; Thu, 23 Dec 2021 09:14:02 +0000 Received: from AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::f0dc:92f5:6bc2:45ca]) by AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::f0dc:92f5:6bc2:45ca%5]) with mapi id 15.20.4823.019; Thu, 23 Dec 2021 09:14:02 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Thu, 23 Dec 2021 10:13:29 +0100 Message-ID: X-Mailer: git-send-email 2.32.0 In-Reply-To: References: X-TMN: [NLQ33IDwrwQ4rWLKVWR7QJGrLLJpwR+s] X-ClientProxiedBy: AM4P190CA0016.EURP190.PROD.OUTLOOK.COM (2603:10a6:200:56::26) To AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) X-Microsoft-Original-Message-ID: <20211223091340.1450013-5-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 3acabcb5-6ac6-4149-0109-08d9c5f48fc0 X-MS-Exchange-SLBlob-MailProps: S/btQ8cKWiR3EehW4kxQzdNcP2D/mG1JvyLyFZLNs0/PBsjcw0kYSMEoJKRFR6Lzj8TICGnC3GzEr68MBtwd5X7LquVZfGFdcG82MkX7nb+iSfB11BD373j8ml9irAy8EYa3JMlrrMsqwCPfH1KNGb0S8D58aNhPyXJxbTPNWqGzxmGP3wgOLmzvJDRqMG3/BjHT39dK6oh6QoH0p8hKZHqoBz5CCpjJJ7aNQ9MoxQsPjugD95DDL7fBrytMSXIopozwUys8YDfw8E+RYNb/boVeWHY0mkNV+bmSAzm06HgwCx8nM4Fp47ha5Wm1XlDkqG6MLnzgTrb994ReUTm7fc3LkLf2jHdIsDr/3Ow6zftb+Nr30oj4kZPVy5Uu5VfoN++omZIAtWrOQ4Nd8s1+gEuVOxxt803SbQi7CbfgsDruiKWyBadjh+bm+24YqUoLIQ1BZlOkCqEQJrrI/FTLdYGMyxkWsJU+9zwg4R0C1rtu3nKvJvxEYgLaMRKfys5e3yOb8ZMGL69lkCpCGCw09Yj2RNIEGWXAolCQuIn6O6F/0UUWFbV1ZsK5updm8XXAi8itoQuPIOCHJ3/rFkibLsUZ/0UIHYft5kk76VzJQUlKFZpFltkoylqruddtCearrmKPCq/H9J/RNbOOXp0May7qa92bFPWJNIOmrVKJ77k9aH4HiNtFUok0CF12LfxnMQ6SeagZevAe1tnuwhvVYzh4S3cRNgv13d/xmGxr0kUMh5p+9JaDPK4+hC4Da7GEGZEPBzxqkos= X-MS-TrafficTypeDiagnostic: AM6PR03MB5607:EE_ X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: aYmMasIGXy9XjANWMfLgVRwq2/p00ASssPSEY5hbITSq20uh/Peu8XYtC7AFudeKlcmJwjaf9zpetWAwWQJXNyrYQhEPmb73+RfKyEL5cgQSo01oS17wN7Rln+qS5pjLe8u9Qa5L1jnX+8jh/PoiwePi0PEf4G+rKfGYgcSeKFNqgNK/AUAZ1BoYxKeBfqxAxbkQig15ZBj8r3IB34G6W8HrvITupz7S3cOOKPEFjsygTPFiOMex3fTp0n04dGM62TrsrUtt+cC+73qlfQec2fBE4HV9nvGSXB8fhFq3GlvNS9QaLGY/p0DtKnz/IVnuZCfXNRB8BGdtmBhV/VndAKa+0A3HXU7LIQdBnl0UU7WL1NnSSXWnshkM+bXbMwcsQjJCoeN9+OuZYxx2q0G4C7LUjqdazD2qZRv8OsezJoVjbk0dazl0dIOe093BOZ6gqCirqMHx9TzFJOa+Jdpt7X2xesZjlZrN5Y1pSHYBZY80xE+WZpEFPHOQe7dbEKcyaZxra0wRQBHOYY4yCL+C5B9IrHepIbIYO1j6Do949UHjc8g91fXtCO6vjmhClJq2PPeYfwhTeLRLMd3A5s2Q6Q== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: M4Sm+sj4RTypdw3wAXEslR7Hd5zXsQmASI8XLveoF1PaDDy5Bm/4Fw4tjqufagiSVMxJNu5AYn/Qp8yg8/lCfHwRtG3b36xgOOB17ArYKf9y8Xv4KYyt175bFf5oQOucHPg3udJ2Lq4wETemMBW3KtVaI6r1WUK4fJ+SdaHhNx0I2oMMaQ7Pvg0OUlx20sr1j4TmLKMt3dhmabod2e9RRtHVpHzNoLPAe75XDibVtyXOeT7zMkRLIc9/FKsXYJOlnZTMzCJuLBpDw623eiu4kWL1F1nMDhhIFQatpvP9tHDr256npPPO3aD2h6xmjdS1cu/L6rHI+cewsScOXiW0Y5B1Tie745YzllL1na1qLur48GoLniK2fQo1O0/AiaRdrdpp9Z1R34PtsMOEGsQ/RuH3u9Gywf9mllqCDrgbQfJWrC8ncv+l1b7khWHNGiunZqvDPgLwogxCYdE2+PiaIVmiE9AIEMKWgzafpvsj+quWauasaVOOOmXqAxXtlvnTvD0pdH+/sOImEXsooHzGQ2KNRynzdC3F9/2H5UWZdjvX6nikVWx7uVPGaslgChCxbiGyuQnS/VlryOHs71HNELyrxbHVt1U7NcUpr6fnzs1THPaLpA4gTkbjR+q9zsv7Vfkq9yQeY2e1qDz2W5/PAkL+zP0eE9NxJx0ZIHE3BsorBA6N6u/fWx7ZmdcyfL05QV7jc50Ecd/hgtgGJP9JFZakc+J5jXZ3e8M1iKNWx0YsoxL0ybKRwt8lfYpols6/PMntJEx9i/7l/cMAnpyPGT0uAoeAvhnUZcP3atQ7wQ57auCf6kVxndRhrC/w4FZfpE5fdqH8ooYl9TWv6nnO1OjbGkEXrxlfTuUQHWQU+hM6ODbbNckMJv0cDzWhP/HJs0J87oSBo29kOeEDBrrIU4WHyGaaC/buhCCnGNejTZEMH4dmnosxzJ6P2+5mq0Ky8prDMzIHUEPJNWErV+lzPQ== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3acabcb5-6ac6-4149-0109-08d9c5f48fc0 X-MS-Exchange-CrossTenant-AuthSource: AM7PR03MB6660.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Dec 2021 09:14:02.5927 (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: AM6PR03MB5607 Subject: [FFmpeg-devel] [PATCH 19/30] avcodec/mpeg12enc: Move options-related fields 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: ThbGXHVeO/r1 Signed-off-by: Andreas Rheinhardt --- libavcodec/mpeg12dec.c | 1 + libavcodec/mpeg12enc.c | 58 +++++++++++++++++++++++++----------------- libavcodec/mpegvideo.h | 9 ------- 3 files changed, 36 insertions(+), 32 deletions(-) diff --git a/libavcodec/mpeg12dec.c b/libavcodec/mpeg12dec.c index 672031b6db..b75b2c9ea2 100644 --- a/libavcodec/mpeg12dec.c +++ b/libavcodec/mpeg12dec.c @@ -33,6 +33,7 @@ #include "libavutil/internal.h" #include "libavutil/mem_internal.h" #include "libavutil/stereo3d.h" +#include "libavutil/timecode.h" #include "libavutil/video_enc_params.h" #include "avcodec.h" diff --git a/libavcodec/mpeg12enc.c b/libavcodec/mpeg12enc.c index 97df5523cc..3692494713 100644 --- a/libavcodec/mpeg12enc.c +++ b/libavcodec/mpeg12enc.c @@ -65,6 +65,16 @@ static uint32_t mpeg1_chr_dc_uni[512]; typedef struct MPEG12EncContext { MpegEncContext mpeg; AVRational frame_rate_ext; + + 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 + int drop_frame_timecode; ///< timecode is in drop frame format. + int scan_offset; ///< reserve space for SVCD scan offset user data. + + int a53_cc; + int seq_disp_ext; + int video_format; } MPEG12EncContext; #define A53_MAX_CC_COUNT 0x1f @@ -218,24 +228,24 @@ static av_cold int encode_init(AVCodecContext *avctx) } } - s->drop_frame_timecode = s->drop_frame_timecode || !!(avctx->flags2 & AV_CODEC_FLAG2_DROP_FRAME_TIMECODE); - if (s->drop_frame_timecode) - s->tc.flags |= AV_TIMECODE_FLAG_DROPFRAME; - if (s->drop_frame_timecode && s->frame_rate_index != 4) { + mpeg12->drop_frame_timecode = mpeg12->drop_frame_timecode || !!(avctx->flags2 & AV_CODEC_FLAG2_DROP_FRAME_TIMECODE); + if (mpeg12->drop_frame_timecode) + mpeg12->tc.flags |= AV_TIMECODE_FLAG_DROPFRAME; + if (mpeg12->drop_frame_timecode && s->frame_rate_index != 4) { av_log(avctx, AV_LOG_ERROR, "Drop frame time code only allowed with 1001/30000 fps\n"); return AVERROR(EINVAL); } - if (s->tc_opt_str) { + if (mpeg12->tc_opt_str) { AVRational rate = ff_mpeg12_frame_rate_tab[s->frame_rate_index]; - int ret = av_timecode_init_from_string(&s->tc, rate, s->tc_opt_str, s); + int ret = av_timecode_init_from_string(&mpeg12->tc, rate, mpeg12->tc_opt_str, s); if (ret < 0) return ret; - s->drop_frame_timecode = !!(s->tc.flags & AV_TIMECODE_FLAG_DROPFRAME); - s->timecode_frame_start = s->tc.start; + mpeg12->drop_frame_timecode = !!(mpeg12->tc.flags & AV_TIMECODE_FLAG_DROPFRAME); + mpeg12->timecode_frame_start = mpeg12->tc.start; } else { - s->timecode_frame_start = 0; // default is -1 + mpeg12->timecode_frame_start = 0; // default is -1 } return 0; @@ -364,12 +374,13 @@ static void mpeg1_encode_sequence_header(MpegEncContext *s) s->avctx->color_primaries != AVCOL_PRI_UNSPECIFIED || s->avctx->color_trc != AVCOL_TRC_UNSPECIFIED || s->avctx->colorspace != AVCOL_SPC_UNSPECIFIED || - s->video_format != VIDEO_FORMAT_UNSPECIFIED); + mpeg12->video_format != VIDEO_FORMAT_UNSPECIFIED); - if (s->seq_disp_ext == 1 || (s->seq_disp_ext == -1 && use_seq_disp_ext)) { + if (mpeg12->seq_disp_ext == 1 || + (mpeg12->seq_disp_ext == -1 && use_seq_disp_ext)) { put_header(s, EXT_START_CODE); put_bits(&s->pb, 4, 2); // sequence display extension - put_bits(&s->pb, 3, s->video_format); // video_format + put_bits(&s->pb, 3, mpeg12->video_format); // video_format put_bits(&s->pb, 1, 1); // colour_description put_bits(&s->pb, 8, s->avctx->color_primaries); // colour_primaries put_bits(&s->pb, 8, s->avctx->color_trc); // transfer_characteristics @@ -382,17 +393,17 @@ static void mpeg1_encode_sequence_header(MpegEncContext *s) } put_header(s, GOP_START_CODE); - put_bits(&s->pb, 1, s->drop_frame_timecode); // drop frame flag + put_bits(&s->pb, 1, mpeg12->drop_frame_timecode); // drop frame flag /* time code: we must convert from the real frame rate to a * fake MPEG frame rate in case of low frame rate */ fps = (framerate.num + framerate.den / 2) / framerate.den; time_code = s->current_picture_ptr->f->coded_picture_number + - s->timecode_frame_start; + mpeg12->timecode_frame_start; s->gop_picture_number = s->current_picture_ptr->f->coded_picture_number; - av_assert0(s->drop_frame_timecode == !!(s->tc.flags & AV_TIMECODE_FLAG_DROPFRAME)); - if (s->drop_frame_timecode) + av_assert0(mpeg12->drop_frame_timecode == !!(mpeg12->tc.flags & AV_TIMECODE_FLAG_DROPFRAME)); + if (mpeg12->drop_frame_timecode) time_code = av_timecode_adjust_ntsc_framenum2(time_code, fps); put_bits(&s->pb, 5, (uint32_t)((time_code / (fps * 3600)) % 24)); @@ -436,6 +447,7 @@ void ff_mpeg1_encode_slice_header(MpegEncContext *s) void ff_mpeg1_encode_picture_header(MpegEncContext *s, int picture_number) { + MPEG12EncContext *const mpeg12 = (MPEG12EncContext*)s; AVFrameSideData *side_data; mpeg1_encode_sequence_header(s); @@ -513,7 +525,7 @@ void ff_mpeg1_encode_picture_header(MpegEncContext *s, int picture_number) put_bits(&s->pb, 1, s->progressive_frame); put_bits(&s->pb, 1, 0); /* composite_display_flag */ } - if (s->scan_offset) { + if (mpeg12->scan_offset) { int i; put_header(s, USER_START_CODE); @@ -559,7 +571,7 @@ void ff_mpeg1_encode_picture_header(MpegEncContext *s, int picture_number) } } - if (CONFIG_MPEG2VIDEO_ENCODER && s->a53_cc) { + if (CONFIG_MPEG2VIDEO_ENCODER && mpeg12->a53_cc) { side_data = av_frame_get_side_data(s->current_picture_ptr->f, AV_FRAME_DATA_A53_CC); if (side_data) { @@ -1138,7 +1150,7 @@ av_cold void ff_mpeg1_encode_init(MpegEncContext *s) ff_thread_once(&init_static_once, mpeg12_encode_init_static); } -#define OFFSET(x) offsetof(MpegEncContext, x) +#define OFFSET(x) offsetof(MPEG12EncContext, x) #define VE AV_OPT_FLAG_ENCODING_PARAM | AV_OPT_FLAG_VIDEO_PARAM #define COMMON_OPTS \ { "gop_timecode", "MPEG GOP Timecode in hh:mm:ss[:;.]ff format. Overrides timecode_frame_start.", \ @@ -1165,9 +1177,9 @@ static const AVOption mpeg1_options[] = { static const AVOption mpeg2_options[] = { COMMON_OPTS { "intra_vlc", "Use MPEG-2 intra VLC table.", - OFFSET(intra_vlc_format), AV_OPT_TYPE_BOOL, { .i64 = 0 }, 0, 1, VE }, - { "non_linear_quant", "Use nonlinear quantizer.", OFFSET(q_scale_type), AV_OPT_TYPE_BOOL, { .i64 = 0 }, 0, 1, VE }, - { "alternate_scan", "Enable alternate scantable.", OFFSET(alternate_scan), AV_OPT_TYPE_BOOL, { .i64 = 0 }, 0, 1, VE }, + FF_MPV_OFFSET(intra_vlc_format), AV_OPT_TYPE_BOOL, { .i64 = 0 }, 0, 1, VE }, + { "non_linear_quant", "Use nonlinear quantizer.", FF_MPV_OFFSET(q_scale_type), AV_OPT_TYPE_BOOL, { .i64 = 0 }, 0, 1, VE }, + { "alternate_scan", "Enable alternate scantable.", FF_MPV_OFFSET(alternate_scan), AV_OPT_TYPE_BOOL, { .i64 = 0 }, 0, 1, VE }, { "a53cc", "Use A53 Closed Captions (if available)", OFFSET(a53_cc), AV_OPT_TYPE_BOOL, { .i64 = 1 }, 0, 1, VE }, { "seq_disp_ext", "Write sequence_display_extension blocks.", OFFSET(seq_disp_ext), AV_OPT_TYPE_INT, { .i64 = -1 }, -1, 1, VE, "seq_disp_ext" }, { "auto", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = -1}, 0, 0, VE, "seq_disp_ext" }, @@ -1188,7 +1200,7 @@ static const AVOption mpeg2_options[] = { #undef LEVEL FF_MPV_COMMON_OPTS #if FF_API_MPEGVIDEO_OPTS - { "mpeg_quant", "Deprecated, does nothing", OFFSET(mpeg_quant), + { "mpeg_quant", "Deprecated, does nothing", FF_MPV_OFFSET(mpeg_quant), AV_OPT_TYPE_INT, {.i64 = 1 }, 0, 1, VE | AV_OPT_FLAG_DEPRECATED }, FF_MPV_DEPRECATED_MATRIX_OPT #endif diff --git a/libavcodec/mpegvideo.h b/libavcodec/mpegvideo.h index 2611e7c667..fabcce2436 100644 --- a/libavcodec/mpegvideo.h +++ b/libavcodec/mpegvideo.h @@ -58,7 +58,6 @@ #include "videodsp.h" #include "libavutil/opt.h" -#include "libavutil/timecode.h" #define MAX_THREADS 32 @@ -443,7 +442,6 @@ typedef struct MpegEncContext { /* MPEG-2-specific - I wished not to have to support this mess. */ int progressive_sequence; int mpeg_f_code[2][2]; - int a53_cc; // picture structure defines are loaded from mpegutils.h int picture_structure; @@ -457,8 +455,6 @@ typedef struct MpegEncContext { int brd_scale; int intra_vlc_format; int alternate_scan; - int seq_disp_ext; - int video_format; #define VIDEO_FORMAT_COMPONENT 0 #define VIDEO_FORMAT_PAL 1 #define VIDEO_FORMAT_NTSC 2 @@ -478,16 +474,11 @@ typedef struct MpegEncContext { int full_pel[2]; int interlaced_dct; int first_field; ///< is 1 for the first field of a field picture 0 otherwise - int drop_frame_timecode; ///< timecode is in drop frame format. - int scan_offset; ///< reserve space for SVCD scan offset user data. /* RTP specific */ int rtp_mode; int rtp_payload_size; - char *tc_opt_str; ///< timecode option string - AVTimecode tc; ///< timecode context - uint8_t *ptr_lastgob; int swap_uv; //vcr2 codec is an MPEG-2 variant with U and V swapped int pack_pblocks; //xvmc needs to keep blocks without gaps.