From patchwork Mon Nov 29 18:51:45 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Soft Works X-Patchwork-Id: 31798 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:d206:0:0:0:0:0 with SMTP id q6csp6577244iob; Mon, 29 Nov 2021 10:52:07 -0800 (PST) X-Google-Smtp-Source: ABdhPJwYzywKwGVZSTYcsRuWO9rY6LsL2GLk0gbXuS9c/C+gyYJsCD2486BvjM8Z5EN7XN8jFsrV X-Received: by 2002:a05:6402:268e:: with SMTP id w14mr76755760edd.48.1638211927312; Mon, 29 Nov 2021 10:52:07 -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 qk8si25126457ejc.230.2021.11.29.10.52.06; Mon, 29 Nov 2021 10:52:07 -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=mph5fORO; 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 E7DC968A9A8; Mon, 29 Nov 2021 20:51:56 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from NAM11-DM6-obe.outbound.protection.outlook.com (mail-dm6nam11olkn2036.outbound.protection.outlook.com [40.92.19.36]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 3DD286808E6 for ; Mon, 29 Nov 2021 20:51:50 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=TRntAEStCqW5E63NmzOE7aTyvzGVTntpUI8n4tL98g1Hb2msqH8Ik1neMyxyjXyriguNCRUKBj18VcB2MVJNwQjglJq5SKqmpGiloNIcWf3i9+mByx1jmeGt3w7Dd+v3Wye2fnbNuJBlpkdPjfRrNwjWxW59q9bwiTdRStg009jro+khOnUWwSil5312oKolKy3wshANGrk8rLrNQiY85TV8P70wXBYADKU1Yb8WIrWa9MOnkHXumXw+kv1rkgRU9gJuqGymG3YAXj0ODGhSFHkrcbjT+1tvx2qaG4FSMRFV5vMo3fuxVJdEL93oeQ9BKWoudZqgKSoZz0waEAb5VA== 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=UV6i6rX5/EBZHS/0Uvcz4b6n1BQsv9/CsJgN5mkeXAM=; b=NtIb24ZKa2a9cI994FBp+FQZYHVA/QicepcNhzPDUIs9/Ek93SyiO0Fkj8fsluIuVMXgw4nHowqM7UgtbCqQgJhNH/2nwEC8oHuXN6k+ann+bQv3ZzUtwxDPss7JMPIUVXerjBCAsvAQDnx7BaXaqL03Ruc9PqjcUqOTCHaSd9T48KGo5RtMxgfKWyeksAxvdjWChnJpcV7tJCF383ue0wWg7CKAk4EBCtaTPRaptAu6UB8b9q5nCP/+gr3vCWwnlDk29xeO36H9B5qpnZkDRH2iWjW5RMM1Hvcg4SwiOCFxTTKtklDqUmYYv5dabLEvV/inH0TdwiSyKCySr0ty3A== 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=UV6i6rX5/EBZHS/0Uvcz4b6n1BQsv9/CsJgN5mkeXAM=; b=mph5fOROfpaaO4JMbHzpDi1T9nShKnyRUDx2ZpyClK0Ayc1lnz727NbopW25YygBAmSTCO/nZ0b/rShAD+rtZdNJlmukb1Lohv/RsCpEX5Mwh5MfwYy9GUXB7MNXBiSCZIE1OHzgg3ussRTXkRKtOBhEA0QdkUEb1xHxhTnibsrBCuFzYsykjkY0mC5oatHRgT+feW+wqHxxEbpS/NNi5vvyoHrSuKpDgkgZxk/AY403CnvUlymxNuC3FV4FcKe1p40xQt+YrDHavaj+16dx/vQ97UQBCSzFWS13eI+IcQdK53hlNceB2XRSfHFEdH1nhFuAr/YxPWSEM8MOdiRJ7Q== Received: from DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM (2603:10b6:8:b::20) by DM8P223MB0125.NAMP223.PROD.OUTLOOK.COM (2603:10b6:8::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.22; Mon, 29 Nov 2021 18:51:46 +0000 Received: from DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM ([fe80::9c8d:fc63:9488:9775]) by DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM ([fe80::9c8d:fc63:9488:9775%5]) with mapi id 15.20.4734.024; Mon, 29 Nov 2021 18:51:45 +0000 From: Soft Works To: "ffmpeg-devel@ffmpeg.org" Thread-Topic: [PATCH 1/5] avcodec/mpeg12dec: make mpeg_decode_user_data() accessible Thread-Index: AQHX5VIoTZYhXOHWnEuqIrmROfDxAQ== Date: Mon, 29 Nov 2021 18:51:45 +0000 Message-ID: References: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-exchange-messagesentrepresentingtype: 1 x-tmn: [L91p4MWGN1RMXLP2QK/5FV9KxGGroFjx] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 7009925f-daa0-4b90-cd50-08d9b3694adb x-ms-traffictypediagnostic: DM8P223MB0125: x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: VTNEiHuj+0HmMOMln9iQnV0OJYOI0uItpCJvtzsYW9kwDOOQPyfELKKCI4GUqZmJ0IREYGHlUP/EqEG7ezYxyh0ak8w2X47Gq1VJ3phPMeTs11rnPhPuxrQo1RExeYM1y4vePQneLnky0gnuU3mH2pyxFW5xkeYDeh90PtrPJa0PtRo0Azo01M9m8aO7+tF9/gWjwQmvR4aFXwqVc4E5iQhE8mG9C8g/opKFoatRpwr9bew8T+xGJ9UK8yMQc33/qkojNL5asVifcnoqzDULHTF1GC5eEiGZ1JUfJZGx5cJAAjCKVj0OjMNCiGO1tSCX955ml6OaS7xawbeLjLCz7s2ih0yQcxZWeYzefh6y52L/K63le34lSa5SLK7j7WL5jN+L6qT1D/qyl16VE4IEWmsoK/+DlVrPQD3H+ClPphJqzNdqppdzAIiuvoTkEneI+mt+ZglzO+PLjeBdZh7FHg3cS53pXtXgsWEH4vDU754AYBNFQoGJ3XhtarQYSUbyBQy8qTVXN9BQ8eqE+op30Pcv/HozKlPeOB4CCr+mzCDgYRWCp2bx3T5YfUsXXXzBJ3kXys7PFsSe+whb3dwmdA== x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: aTKOM2xL5613fPJJa4rXlwDN3mlvDrFHTeUDRNStXlz7y5YdmmJ+SKHodidjsl3yHejV4E+AZZyR9v4TxBVkhfvCzZDMYnT57Oh6AREPsx759ZL29EYQvAmFahy3GjonqV+JltGiRoK9NnO1fEtl9sKyS96Y3tzUvlIffGQIJL2tKnDEcpMFki1mcXJd4ciJEZEF3PWVoqYWCK+qbJtecMV+/S3BzPRXzQD6zo/hbSWropiK4NTXjfki+nLCy7HqQ04C0ItBfXg67qO9jo8emBai4r/WfrQ72PZS/BW51TStOoR1hqg33qXR7ldf6quTaJ0sJGFjjwHn9C5JPLg09j1RK30xd4qoSIGhJECzkD5VehNVrMS711BaLQNhQXQho2rNr61ojYfmQV2lu80ajhvmurH9XJqkzRz1G5w3qjxvm5RXDhIRPmvHMPM6+yYwb455u6rdvkOp6DWhjvATNUcC2aji9OU6WKqoy3eEF7QWo/zsNklDmikHRLKhIAjHJec/LY+3OaOOWKRWdPnAXAa+XZTXsp5q/3VZYADRiH7Fdfv0DFiiDmRJ9W7GrMQjdnIUcG6egt15HE1ykDZ/yhv3yIh5IYnr5e37QzI2XneSfHj1KLuZHfW/CPr4ZQB7T0YY/oEArPbKozeZqSkzvs/T4KaRXEZYI6Ilx1JleS9sdjiScre/botcUy5/1cbvW3YKQvhxvd2wURkCXOhGvg== MIME-Version: 1.0 X-OriginatorOrg: sct-15-20-3912-16-msonline-outlook-1fc6d.templateTenant X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-CrossTenant-Network-Message-Id: 7009925f-daa0-4b90-cd50-08d9b3694adb X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Nov 2021 18:51:45.8004 (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: DM8P223MB0125 Subject: [FFmpeg-devel] [PATCH 1/5] avcodec/mpeg12dec: make mpeg_decode_user_data() accessible 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: O8nWxRgxerny Signed-off-by: softworkz --- libavcodec/mpeg12.h | 25 +++++++++++++++++++++++++ libavcodec/mpeg12dec.c | 36 +++++------------------------------- 2 files changed, 30 insertions(+), 31 deletions(-) diff --git a/libavcodec/mpeg12.h b/libavcodec/mpeg12.h index fb2b37e7c8..630afa4072 100644 --- a/libavcodec/mpeg12.h +++ b/libavcodec/mpeg12.h @@ -24,6 +24,7 @@ #include "mpeg12vlc.h" #include "mpegvideo.h" +#include "libavutil/stereo3d.h" /* Start codes. */ #define SEQ_END_CODE 0x000001b7 @@ -35,6 +36,28 @@ #define EXT_START_CODE 0x000001b5 #define USER_START_CODE 0x000001b2 +typedef struct Mpeg1Context { + MpegEncContext mpeg_enc_ctx; + int mpeg_enc_ctx_allocated; /* true if decoding context allocated */ + int repeat_field; /* true if we must repeat the field */ + AVPanScan pan_scan; /* some temporary storage for the panscan */ + AVStereo3D stereo3d; + int has_stereo3d; + AVBufferRef *a53_buf_ref; + uint8_t afd; + int has_afd; + int slice_count; + AVRational save_aspect; + int save_width, save_height, save_progressive_seq; + int rc_buffer_size; + AVRational frame_rate_ext; /* MPEG-2 specific framerate modificator */ + int sync; /* Did we reach a sync point like a GOP/SEQ/KEYFrame? */ + int tmpgexs; + int first_slice; + int extradata_decoded; +} Mpeg1Context; + + void ff_mpeg12_common_init(MpegEncContext *s); #define INIT_2D_VLC_RL(rl, static_size, flags)\ @@ -84,4 +107,6 @@ void ff_mpeg12_find_best_frame_rate(AVRational frame_rate, int *code, int *ext_n, int *ext_d, int nonstandard); +void ff_mpeg_decode_user_data(AVCodecContext *avctx, Mpeg1Context *s1, const uint8_t *p, int buf_size); + #endif /* AVCODEC_MPEG12_H */ diff --git a/libavcodec/mpeg12dec.c b/libavcodec/mpeg12dec.c index 09b2902bca..09f2535a6a 100644 --- a/libavcodec/mpeg12dec.c +++ b/libavcodec/mpeg12dec.c @@ -53,27 +53,6 @@ #define A53_MAX_CC_COUNT 2000 -typedef struct Mpeg1Context { - MpegEncContext mpeg_enc_ctx; - int mpeg_enc_ctx_allocated; /* true if decoding context allocated */ - int repeat_field; /* true if we must repeat the field */ - AVPanScan pan_scan; /* some temporary storage for the panscan */ - AVStereo3D stereo3d; - int has_stereo3d; - AVBufferRef *a53_buf_ref; - uint8_t afd; - int has_afd; - int slice_count; - AVRational save_aspect; - int save_width, save_height, save_progressive_seq; - int rc_buffer_size; - AVRational frame_rate_ext; /* MPEG-2 specific framerate modificator */ - int sync; /* Did we reach a sync point like a GOP/SEQ/KEYFrame? */ - int tmpgexs; - int first_slice; - int extradata_decoded; -} Mpeg1Context; - #define MB_TYPE_ZERO_MV 0x20000000 static const uint32_t ptype2mb_type[7] = { @@ -2232,11 +2211,9 @@ static int vcr2_init_sequence(AVCodecContext *avctx) return 0; } -static int mpeg_decode_a53_cc(AVCodecContext *avctx, +static int mpeg_decode_a53_cc(AVCodecContext *avctx, Mpeg1Context *s1, const uint8_t *p, int buf_size) { - Mpeg1Context *s1 = avctx->priv_data; - if (buf_size >= 6 && p[0] == 'G' && p[1] == 'A' && p[2] == '9' && p[3] == '4' && p[4] == 3 && (p[5] & 0x40)) { @@ -2367,12 +2344,9 @@ static int mpeg_decode_a53_cc(AVCodecContext *avctx, return 0; } -static void mpeg_decode_user_data(AVCodecContext *avctx, - const uint8_t *p, int buf_size) +void ff_mpeg_decode_user_data(AVCodecContext *avctx, Mpeg1Context *s1, const uint8_t *p, int buf_size) { - Mpeg1Context *s = avctx->priv_data; const uint8_t *buf_end = p + buf_size; - Mpeg1Context *s1 = avctx->priv_data; #if 0 int i; @@ -2386,7 +2360,7 @@ static void mpeg_decode_user_data(AVCodecContext *avctx, int i; for(i=0; i<20; i++) if (!memcmp(p+i, "\0TMPGEXS\0", 9)){ - s->tmpgexs= 1; + s1->tmpgexs= 1; } } /* we parse the DTG active format information */ @@ -2432,7 +2406,7 @@ static void mpeg_decode_user_data(AVCodecContext *avctx, break; } } - } else if (mpeg_decode_a53_cc(avctx, p, buf_size)) { + } else if (mpeg_decode_a53_cc(avctx, s1, p, buf_size)) { return; } } @@ -2624,7 +2598,7 @@ static int decode_chunks(AVCodecContext *avctx, AVFrame *picture, } break; case USER_START_CODE: - mpeg_decode_user_data(avctx, buf_ptr, input_size); + ff_mpeg_decode_user_data(avctx, s, buf_ptr, input_size); break; case GOP_START_CODE: if (last_code == 0) {