From patchwork Fri Apr 5 12:41:25 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 47812 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:24a8:b0:1a3:b6bb:3029 with SMTP id m40csp935734pzd; Fri, 5 Apr 2024 05:41:59 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCVbRUYNGqvNZXtplAbvJX4+kCA9KzSyLzxBRDGDstBNC8gSaqqR1WKiaVPHDip3SJqwI08gZQ96oJdcUBoDIs9QlLuKmza+MASs4g== X-Google-Smtp-Source: AGHT+IEd+SBr1Laz7rAV1RDiNkmepcPOveyCGCz/l4yJJ5kGLdJOQXEpynj258wmTMTlc+23Wj6S X-Received: by 2002:a17:906:f847:b0:a51:9651:8c3d with SMTP id ks7-20020a170906f84700b00a5196518c3dmr871684ejb.4.1712320919325; Fri, 05 Apr 2024 05:41:59 -0700 (PDT) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id qk20-20020a1709077f9400b00a47c9505307si672132ejc.702.2024.04.05.05.41.58; Fri, 05 Apr 2024 05:41:59 -0700 (PDT) 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=BWN1xK4d; 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 DAD3968D14C; Fri, 5 Apr 2024 15:41:55 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05olkn2084.outbound.protection.outlook.com [40.92.91.84]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 2B6E368CEE9 for ; Fri, 5 Apr 2024 15:41:48 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=KzC2zp7c1XNNPNbeYbefCoIx6zeNYXB6tfMhqch1CjcIzyBA6R4WS9mOzq2QCmSnRMI79ZmDR26N0Yrdc6rq9eZjRzB9DEIABavlXpfJaaLNmKiwY6Bjsze8gKQ9RDD8ustPaDTA369F2atZx8hQ9ewGh49E6tMt65Yp0TLUq7MyjuRjUdcfoBBWDbKjCH7BtuuabzTW5iMIz+FBjJWL02fQCxjaGkP0b2qBQfsLC62GzPEkb09MxxckakVpYLQOoHXfeR47LZ+MoGZCEKlF6MSQ/gJOahtKZ1FoFwXd+LJgl41WTVIFTaZ1/os4XMlM8CVwQ446+wWMtodm+NCuDw== 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=/56Z0R8lAqF1h/UdzDrL9qlbMXQyMBdFDwYiuzp+oDM=; b=gyPvqxHQvu7g87hucN19E4FaUycAfa7DoFrE/JCMqH5/NpxW4iIvvrbv8nE+NDRZrcx41i2etvlCFCSjmqIkTuL5AeDcMV6tQD4uW+KeRZd2tw3RbVb+IRrCvjQl/TUVCAn4QlX1hMjKxAA18GSRMBTNlhVB3OffMVXyLutKIBQCTPY4xa8g7Sd5pJ1YkE3XEkBNOzvG9UJmjCDpks04+BtFeuaIRDiyopzaN+AFN9sRwN/DLfjd1WdLNfsagalpb5c9pry21s7SYSVN3jh7/lga7CGz1VOaKuY8qpjRmLMe/0kSyiV54qBtXn54EV14TruTM7X6qjkne5c5x2tAew== 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=/56Z0R8lAqF1h/UdzDrL9qlbMXQyMBdFDwYiuzp+oDM=; b=BWN1xK4dSZHgs9fpJnPrEdRzRG4o9u8v0kHAqeSoslhY71NkKBAyQWwD6Y6wTpap/RnQKUgfmAMP1oiR6pAQ6KwS4P8uepvOisPxlSr9BnPk8mda+JFBktwFUTJr1K5siFBHiq/QuZ5S9+pKcmQMoOxq5IEGmMPVGa2Rte7s9yvWI8I3LmafifBE9Xt2jsUzPqxtN8Cd/O05ZFs6lLKn0ZevWtCnDejKyC2BnyodTQ8fv+N+qUMaCQvBwwGJ4wcOgVAbjO2W7L/dl0TsO817x1gl1Twu9QTQH4kEFsoLXMK3LRpiIGembjfmSbiht1ugx0QUpbIgZHaQAEZzIcZ+Rg== Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) by AM8P250MB0278.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:329::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7409.46; Fri, 5 Apr 2024 12:41:46 +0000 Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::4a3b:cf76:cddc:c68d]) by GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::4a3b:cf76:cddc:c68d%4]) with mapi id 15.20.7409.042; Fri, 5 Apr 2024 12:41:46 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Fri, 5 Apr 2024 14:41:25 +0200 Message-ID: X-Mailer: git-send-email 2.40.1 In-Reply-To: References: X-TMN: [NZUhVyShH8trGzwrB1b76NBjqG8Yof2wFzsw9u4pGv4=] X-ClientProxiedBy: ZR2P278CA0074.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:52::8) To GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) X-Microsoft-Original-Message-ID: <20240405124138.2343725-1-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV1P250MB0737:EE_|AM8P250MB0278:EE_ X-MS-Office365-Filtering-Correlation-Id: d14127aa-e821-47cf-80c7-08dc556dc176 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: cSJlO7scltuWcs4HJ8WQxwktMxi9pgxMbztl/G7aC6PYqoJs7EZJ4wufQB5d/J26E0JDqILjPqiNU0h7asEi+B/mCYXO0f9KQxm4wz0Mag1+zDZabF4EVGomlaRv5Wg0CytmDfOPR/+9HY5bWuN0J1uc5foIqdSBdmsiVbdZ1FC28Xu+2gIKGrmdfo9io4I07jtig/xhbOPEskioeXcfGlnHYE7/ggS32KM7guLsiL9Sldm/obtLybpYuVXG+21GBQMAb5P32gmMaaTJRX09ggbHNMy7pwRppH2M7QQX/jxTqnylLnoCC/EBFwYp0YyhqK1Il6xJ2QHE6vcrRgmIFQWm8qNE98GuEvMn1InlmksL68edIYM6mMaNQo0jDyDkcnmoxApDdfwhCnraB0LIpvO1vc9xKj5p1mXHqo+3SFt/VYBYF1w1WBvuYzeymicftgC11144s+p1Icq35vcxAKf/mOFatLq2TUYD322WVMk2FDuTa335HMMscaDaudlw0JQ/B2XENJevhHR0H7wAxLaOIVfONh4ufZ1mf1JLN0DKz511CEGzOgCdjmOqVI4TGuljK6KnVvhqumlMdrAu4z0OIKEhKYAm+KiMRGiChaeSoC5CZ4nazMCZSJYd7F4A X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: R6aV6dgRfWW4JZoZ2uN+njEDrEbjW8tU1WYnZbe6fPKShVTpq1zjXe1o8uNhBTOaqzAwNNau5t4Ea6/jq0ls1qcd8JAJCAg4SIbr9U/e0kcqDykryl98RsACah6MePbUCvGiomL7wvsSjJObIw3N14b8OSc6G5cNHrKWUtEvWjqfXZifKYbdrMwlGN8DaWFZSX0NByLeDaKNN81txu/iLSpEQzu5w2BWgf0gsVsns+wwW8iZWAladjzvcQbAecwO0jKpuGQ75WUACoaayUrpael+m5FplddnLi7n8sHa6Y7E4b5NrQWnLeDpr+EmlnATaKUc/cdOTknxIFumJxBWSkd3syAvd/8rxXu4BPhrqWLwaMuIO9oYZWOIPrEsOeseByJy2miWGHl3sF4cJAVkC8LdbI28hdaOqN1DBrVXimcoOD4tzbneRu68pHblCXpVbHhiw1b022rowaspCV1tkT5s0E6lB7SGu2BVntvsmRpIUgr2ti3+n+yaC+8QUb+Kf0lsRjMz7pLk+1q+J6u7DNYSMTpCIUEBuMlraOcyKN3HlXYKRvZqp12bJ4U7x1TeOvVadkKAiSBZrn5S3/N2Nkdw0B+oPOIlGuzrXNNcMPAilJhop8DF4+e19bOTteLUCOty9VODuSfmSn2FC6eJwPJA3jJKqjO+0LqtyUBNQbK9Rfn2863Jf0pH2quVYG+gzjzSTPImFppF/iImqGj4LTV/AxlOJj4wuaCD1uTaN8DTaShiUYAjxkEUz27wxFco9fzCr2j+dRSQ87THM+AF9FzHCDW6XOLIsNQBFytEj/e7uGjbm02Anwxz2ghlAPUCm/YQ76cIO4UxAi6o6MCOBRcm11zPoMB4+G27VRcvemhe19oLr9ZQag2oRAqINFTvy0k35IsoWMf2Vnw8tR0fDuYmnXWjYSGNnSqTkQYOo9EihSMmh2aIzwoXbf6+tkjLTemlHO4Anwgmx7Ucw60Eex36oWRZbQXJdHW7PLjpGyOxXTnM4DiDHXsRkFDAYQ/mu8GMVTHhno3HNWBiLF/OpVruu0GMBx6iMt4sdQdJgNmplb2+v6TY35PQ9CTYaYJG0jyS1GLpUFOR6MIIPYCAQiISdx7djrkasFEt1TZ8l6Auu/M/xZmRqlXCmkqkOjjQ9j92bEyclCB8Fh6aPK/zejVld6DJ2Qe5c6wtqWbx5vu1DtrRBdiA8zvzGLsSUw15Z5QKswz0iZfFePdNxRDrxruWB5x6Tmnf6XniB7g27qnNkOO/Dil+EWmm5XzJQqlGmwGcxJisEgEvG+F8BU6x9A== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: d14127aa-e821-47cf-80c7-08dc556dc176 X-MS-Exchange-CrossTenant-AuthSource: GV1P250MB0737.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Apr 2024 12:41:46.8005 (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: AM8P250MB0278 Subject: [FFmpeg-devel] [PATCH 02/15] avcodec/mpegutils: Move definitions to better places 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: VteIWzesI1yL FRAME_SKIPPED -> h263dec.h CANDIDATE_MB_TYPE_* -> mpegvideoenc.h INPLACE_OFFSET -> mpegvideoenc.h enum OutputFormat -> mpegvideo.h Signed-off-by: Andreas Rheinhardt --- libavcodec/h263dec.c | 1 - libavcodec/h263dec.h | 5 +++++ libavcodec/intelh263dec.c | 2 -- libavcodec/mpeg4videoenc.c | 1 - libavcodec/mpegpicture.c | 2 +- libavcodec/mpegutils.h | 34 ---------------------------------- libavcodec/mpegvideo.h | 12 +++++++++--- libavcodec/mpegvideoenc.h | 19 +++++++++++++++++++ libavcodec/nvdec_mpeg12.c | 1 + libavcodec/ratecontrol.c | 1 - libavcodec/rv10.c | 1 - libavcodec/vc1dec.c | 1 + 12 files changed, 36 insertions(+), 44 deletions(-) diff --git a/libavcodec/h263dec.c b/libavcodec/h263dec.c index 910df7585f..48bd467f30 100644 --- a/libavcodec/h263dec.c +++ b/libavcodec/h263dec.c @@ -42,7 +42,6 @@ #include "mpeg4video.h" #include "mpeg4videodec.h" #include "mpeg4videodefs.h" -#include "mpegutils.h" #include "mpegvideo.h" #include "mpegvideodec.h" #include "msmpeg4dec.h" diff --git a/libavcodec/h263dec.h b/libavcodec/h263dec.h index 89c5fcf58f..a01acc0834 100644 --- a/libavcodec/h263dec.h +++ b/libavcodec/h263dec.h @@ -23,6 +23,11 @@ #include "mpegvideo.h" #include "vlc.h" +/** + * Return value for header parsers if frame is not coded. + * */ +#define FRAME_SKIPPED 100 + // The defines below define the number of bits that are read at once for // reading vlc values. Changing these may improve speed and data cache needs // be aware though that decreasing them may need the number of stages that is diff --git a/libavcodec/intelh263dec.c b/libavcodec/intelh263dec.c index f8eeb6b44e..5d34892ef7 100644 --- a/libavcodec/intelh263dec.c +++ b/libavcodec/intelh263dec.c @@ -19,12 +19,10 @@ */ #include "codec_internal.h" -#include "mpegutils.h" #include "mpegvideo.h" #include "mpegvideodec.h" #include "h263data.h" #include "h263dec.h" -#include "mpegvideodata.h" /* don't understand why they choose a different header ! */ int ff_intel_h263_decode_picture_header(MpegEncContext *s) diff --git a/libavcodec/mpeg4videoenc.c b/libavcodec/mpeg4videoenc.c index f806ad8a74..71dda802e2 100644 --- a/libavcodec/mpeg4videoenc.c +++ b/libavcodec/mpeg4videoenc.c @@ -26,7 +26,6 @@ #include "libavutil/opt.h" #include "libavutil/thread.h" #include "codec_internal.h" -#include "mpegutils.h" #include "mpegvideo.h" #include "h263.h" #include "h263enc.h" diff --git a/libavcodec/mpegpicture.c b/libavcodec/mpegpicture.c index 5bf85bb7fe..06b6daa01a 100644 --- a/libavcodec/mpegpicture.c +++ b/libavcodec/mpegpicture.c @@ -29,7 +29,7 @@ #include "avcodec.h" #include "motion_est.h" #include "mpegpicture.h" -#include "mpegutils.h" +#include "mpegvideo.h" #include "refstruct.h" #include "threadframe.h" diff --git a/libavcodec/mpegutils.h b/libavcodec/mpegutils.h index 386110bb8c..3da1e7ed38 100644 --- a/libavcodec/mpegutils.h +++ b/libavcodec/mpegutils.h @@ -27,11 +27,6 @@ #include "avcodec.h" -/** - * Return value for header parsers if frame is not coded. - * */ -#define FRAME_SKIPPED 100 - /* picture type */ #define PICT_TOP_FIELD 1 #define PICT_BOTTOM_FIELD 2 @@ -93,35 +88,6 @@ #define HAS_CBP(a) ((a) & MB_TYPE_CBP) -/* MB types for encoding */ -#define CANDIDATE_MB_TYPE_INTRA (1 << 0) -#define CANDIDATE_MB_TYPE_INTER (1 << 1) -#define CANDIDATE_MB_TYPE_INTER4V (1 << 2) -#define CANDIDATE_MB_TYPE_SKIPPED (1 << 3) - -#define CANDIDATE_MB_TYPE_DIRECT (1 << 4) -#define CANDIDATE_MB_TYPE_FORWARD (1 << 5) -#define CANDIDATE_MB_TYPE_BACKWARD (1 << 6) -#define CANDIDATE_MB_TYPE_BIDIR (1 << 7) - -#define CANDIDATE_MB_TYPE_INTER_I (1 << 8) -#define CANDIDATE_MB_TYPE_FORWARD_I (1 << 9) -#define CANDIDATE_MB_TYPE_BACKWARD_I (1 << 10) -#define CANDIDATE_MB_TYPE_BIDIR_I (1 << 11) - -#define CANDIDATE_MB_TYPE_DIRECT0 (1 << 12) - -#define INPLACE_OFFSET 16 - -enum OutputFormat { - FMT_MPEG1, - FMT_H261, - FMT_H263, - FMT_MJPEG, - FMT_SPEEDHQ, -}; - - /** * Draw a horizontal band if supported. * diff --git a/libavcodec/mpegvideo.h b/libavcodec/mpegvideo.h index d7c2f57682..215df0fd5b 100644 --- a/libavcodec/mpegvideo.h +++ b/libavcodec/mpegvideo.h @@ -28,7 +28,6 @@ #ifndef AVCODEC_MPEGVIDEO_H #define AVCODEC_MPEGVIDEO_H -#include "avcodec.h" #include "blockdsp.h" #include "error_resilience.h" #include "fdctdsp.h" @@ -44,7 +43,6 @@ #include "pixblockdsp.h" #include "put_bits.h" #include "ratecontrol.h" -#include "mpegutils.h" #include "qpeldsp.h" #include "videodsp.h" @@ -61,6 +59,14 @@ typedef struct ScanTable { uint8_t raster_end[64]; } ScanTable; +enum OutputFormat { + FMT_MPEG1, + FMT_H261, + FMT_H263, + FMT_MJPEG, + FMT_SPEEDHQ, +}; + /** * MpegEncContext. */ @@ -283,7 +289,7 @@ typedef struct MpegEncContext { int mb_x, mb_y; int mb_skip_run; int mb_intra; - uint16_t *mb_type; ///< Table for candidate MB types for encoding (defines in mpegutils.h) + uint16_t *mb_type; ///< Table for candidate MB types for encoding (defines in mpegvideoenc.h) int block_index[6]; ///< index to current MB in block based arrays with edges int block_wrap[6]; diff --git a/libavcodec/mpegvideoenc.h b/libavcodec/mpegvideoenc.h index 1e29782660..c20ea500eb 100644 --- a/libavcodec/mpegvideoenc.h +++ b/libavcodec/mpegvideoenc.h @@ -34,6 +34,25 @@ #include "mpegvideo.h" #define UNI_AC_ENC_INDEX(run,level) ((run)*128 + (level)) +#define INPLACE_OFFSET 16 + +/* MB types for encoding */ +#define CANDIDATE_MB_TYPE_INTRA (1 << 0) +#define CANDIDATE_MB_TYPE_INTER (1 << 1) +#define CANDIDATE_MB_TYPE_INTER4V (1 << 2) +#define CANDIDATE_MB_TYPE_SKIPPED (1 << 3) + +#define CANDIDATE_MB_TYPE_DIRECT (1 << 4) +#define CANDIDATE_MB_TYPE_FORWARD (1 << 5) +#define CANDIDATE_MB_TYPE_BACKWARD (1 << 6) +#define CANDIDATE_MB_TYPE_BIDIR (1 << 7) + +#define CANDIDATE_MB_TYPE_INTER_I (1 << 8) +#define CANDIDATE_MB_TYPE_FORWARD_I (1 << 9) +#define CANDIDATE_MB_TYPE_BACKWARD_I (1 << 10) +#define CANDIDATE_MB_TYPE_BIDIR_I (1 << 11) + +#define CANDIDATE_MB_TYPE_DIRECT0 (1 << 12) /* mpegvideo_enc common options */ #define FF_MPV_FLAG_SKIP_RD 0x0001 diff --git a/libavcodec/nvdec_mpeg12.c b/libavcodec/nvdec_mpeg12.c index a4603c7ea7..139f287617 100644 --- a/libavcodec/nvdec_mpeg12.c +++ b/libavcodec/nvdec_mpeg12.c @@ -25,6 +25,7 @@ #include "avcodec.h" #include "hwaccel_internal.h" #include "internal.h" +#include "mpegutils.h" #include "mpegvideo.h" #include "nvdec.h" #include "decode.h" diff --git a/libavcodec/ratecontrol.c b/libavcodec/ratecontrol.c index 1ff209c00b..9ee08ecb88 100644 --- a/libavcodec/ratecontrol.c +++ b/libavcodec/ratecontrol.c @@ -32,7 +32,6 @@ #include "avcodec.h" #include "ratecontrol.h" -#include "mpegutils.h" #include "mpegvideoenc.h" #include "libavutil/eval.h" diff --git a/libavcodec/rv10.c b/libavcodec/rv10.c index d32faa628b..df487b24a9 100644 --- a/libavcodec/rv10.c +++ b/libavcodec/rv10.c @@ -38,7 +38,6 @@ #include "h263data.h" #include "h263dec.h" #include "mpeg_er.h" -#include "mpegutils.h" #include "mpegvideo.h" #include "mpegvideodec.h" #include "mpeg4video.h" diff --git a/libavcodec/vc1dec.c b/libavcodec/vc1dec.c index 2c413e0bf1..3b5b016cf9 100644 --- a/libavcodec/vc1dec.c +++ b/libavcodec/vc1dec.c @@ -36,6 +36,7 @@ #include "hwaccel_internal.h" #include "hwconfig.h" #include "mpeg_er.h" +#include "mpegutils.h" #include "mpegvideo.h" #include "mpegvideodec.h" #include "msmpeg4_vc1_data.h"