From patchwork Mon Jan 10 17:51:45 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 33190 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp2949650iog; Mon, 10 Jan 2022 09:52:53 -0800 (PST) X-Google-Smtp-Source: ABdhPJwbflxjbOWdKHyHOMtKNoij0Gt+ZdcwZ7LAs+bO73u6TU3bgjOnErcjcvJk87lFsKvhPeOF X-Received: by 2002:a50:c04c:: with SMTP id u12mr733566edd.107.1641837172871; Mon, 10 Jan 2022 09:52:52 -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 w2si4296621edl.506.2022.01.10.09.52.52; Mon, 10 Jan 2022 09:52:52 -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=Anmd5B5C; 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 CD51A68AF26; Mon, 10 Jan 2022 19:52:17 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05olkn2075.outbound.protection.outlook.com [40.92.89.75]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id A5E1A68AE72 for ; Mon, 10 Jan 2022 19:52:10 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=RsG9rp9ZBCYSJmvI1X30Sur0dncZA6GVQmJ17AdQuCngBgEAiPHWLCD+GGL8KIepRzSaYMwqS/AxsvzF8rD6oyYoS45knbMng8nBRevPzNStAw8aL13hvMvfCEwzdkGV1LX6PuFjohyDt0H4X3b8NYYFOeZ4tnTwZMHPvPgA8XXZgT6HoRD3UvLiEb/cTem2VwctLvD/ZkpmskzVVQxtfrpBK6pao27A0VG5yEtycOu923wCeUpPGzyj9PbZ0Z/7VFVEn2cyEiLP4F+c0nZvEmrSLoLwW+A8B1uyBfUbYdU7/PpEr3Uv1GQ1fiICrSswglRXmdYQU0UzukaSpUYGSA== 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=mlPRDdwEAhBGmEqSPPQgsOhPDextybCKLDrVgUyTONU=; b=JVx5BwfVX74ohM0x0ro+56xMpVG03VI1M5patyNZJOtkorHka+eKtbhDsnnFtA46JNY0N9Axk8lrPwmxdWZw0TR16EmfhC1e1PevycxQot39HdctDqMoRTM0DIul/K/A4L7bZ1XvdBmX5xNr7lEC8rzsUmVLMUv/aie/xOnkw6dGfgYD1reJiabOz6tQ+8xa9jlIleQG2MmbwdZPsWotqn5ZLtYEgfZT2qRo0aOkmqm4Hi598y//2HFHD80LMEvl5wW41xjrzhAT//aANrtNim3WmLX3X812apNK2b7nKcFCUBKInMqxDyKtINlGIdlRDeFhDQ8EdGHd0nwmfDul+A== 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=mlPRDdwEAhBGmEqSPPQgsOhPDextybCKLDrVgUyTONU=; b=Anmd5B5CSF8p9F6ZGkI9l9CZH6ArzDjvh5AzYn9t5Rp3tUImUbqs3pG8Wd7M48unktec+MXoWgh7EeRdVJv4Bs2YEQlSHyibi39QhyWtzF8irfTbVRjIlVySXskBuW9SqjBm58T1tNrTJfoOYKS+PqzR5sXtU7VvSzP/okXzcDaqnBaS6UqV9AdZPm+bVRoNVblYEFFy4pNjDya3P/Kf7yP3BT/fLfOj7F121C42kaw64W6yHMDDp6TBXbNu/S+HvuMfa+dMpH8OfPDcrEQarvvNSLG6KaIxLsiG1H2QklbCXjDgQHt/+dqieUTtr13/W0bjPQFUWecoi2hLPPESOg== Received: from AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) by AM6PR03MB4213.eurprd03.prod.outlook.com (2603:10a6:20b:1::26) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4867.11; Mon, 10 Jan 2022 17:51:57 +0000 Received: from AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::19fc:be9f:2c9c:53f5]) by AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::19fc:be9f:2c9c:53f5%9]) with mapi id 15.20.4867.012; Mon, 10 Jan 2022 17:51:57 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Mon, 10 Jan 2022 18:51:45 +0100 Message-ID: X-Mailer: git-send-email 2.32.0 In-Reply-To: References: X-TMN: [61ieKtPXv3CnU56SYYEZbL9bSOgXSmx7] X-ClientProxiedBy: AM0PR10CA0047.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:20b:150::27) To AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) X-Microsoft-Original-Message-ID: <20220110175146.610875-4-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 59d0c8c3-0ec5-4fd0-1013-08d9d461e524 X-MS-Exchange-SLBlob-MailProps: gjx25WM8ZNWm3GLoeUntTG6KfWWWbWhl/nDOcdxVxA5+LBLxLHvHkiGSs40o3u5NF+1in1SBCCSsSWT2q155vl8Mka2NHiezAXh1HsEbXisqDLtBLoZaf/nqDOAQICTogFGnHqutzQQ+zTJ+mwFaNQj9eoZHxwLlYNzqFCHqk3iwid2ENxY79vM5KPAdCmaCFiIjVupm1fqpuaZel2LO1mBiMg/XM/Lzn1OJDvufCy4G8wrhZYPqekiVT1PXkbsvGluLHWRpAAYTCEu8+iIf96AAMvGEHkNoS3S58e+OARhe73ZqzG+NsCc3f5EHbeIYe+0fqKG80MRxmtMOGFgUDxRoEZNsWdtEEHh1jgfXNdlr2PDntMavr5Hy7E8NWK3Nv5KJv7Qt1BoJpX5dw3kSAtvgjr0nNDQjdv9CA7O5g/fdix6HNDooZW2eM7u0mqMWt1iiAVNSGFhE7KG8aJLYR+H6uk1i81+QeGVP02qRBeuc3c1M44Vo3N3z4Zl96tspL4RjeP2OpzXNhBVf8TrsGLCmpzVUounB93mUMXIMYtkYAQ35OBoqXBuT3CtetCdQo0+TLAIbgD9WJ4khXDW5kasjM+fDlQHSMrqGkK8iw1czgY4Jrk1hHYa0hWXQZrDqEgcZRSU6AOxgW7CbT1PFKXmd3H3cnYsfN+ZZDEQAxl2niwCb8iffaMOBvj1quJ+Rs4TGxUqhdtDr9JSbMAxhIfMlNxETeLZSM0019ReghBk= X-MS-TrafficTypeDiagnostic: AM6PR03MB4213:EE_ X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: AQ7kOS0hNfVO0EG+4fROCG6et/6yQWiBkZ/ouvX70ZQoS1Ny8NkVCxvcf3yd/pXN3yssIFnxSmWtNj5iIucCApXJXbpJLcOCuEPzkDjNVXvI/mQKYThRrVQ6NiXGvQV8jzLf/FTURGrbcDd8MiXTV6gPG9IyzPW54nUTwR6FPFPvekXAkWG23hp37moEXcTe3xr51r80dONkd3zxtecrHUHqKFHpZUt8AzxskWp1ayNWFJ0osie3nSzG7B7XC7oUF3CVNqEc9JFzlQYOuf4zUabv/ocvEJf1LKAB8TaJwDiEAsQEER+ivJ571uMaouCKf/K2G37Ej7Ns/HnVUbSJPK6oeuOwvDs0YBbpuWVk+Rg6aNiz8Nn/UEeEeQ8454sF1Mn+RdI7mq6V+jeUVb6J00+AOjunqYw/YnumLm6ciF2xFZedwl6UtOWh8pvCjXK++JrroNPO9RaFDwQExMay2+s0tMIYODNHp4KANxqWUC39NLdJG+ZRJd4MHCIq/hM6ju/rTLPpBiu19A85/UZB4efoLu6rll0PPWDf4ygTVbt0qSs2CXrkkLwp7SwaaSIv0t3MQzw303yYLp4lzcjKoQ== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 18bOZI7RnkhRQI7RbWdhisV26S3SamwBxlOEun3AUH2D3So6U2Uz39a7r+tWdz5bBe2BwIQ21bIV28iOA0q9HgszhqleebN+ZGqGrI3AVQN1wKxRMJw79jmmhPOTj3D1pOkvbEXnAXpObbVPiNWY1p5VfP/A0pCqqazYPkHVc+syJGq+C1aQ1MszAoZNt5iXUE0MhbSDCHMOhAJ5FrOfqLSr2sYllA5na+WSH9JbLr0eXL/dtgc7GYiU/96s3oAyQS+sXYFsRTay1t4IpOusNZdUCgQN4iL9bxGYGf6dGNNQcPcdrccjvY/xXPB0I1PmjYT7/mP2oUAOj3ylTv42eSWT2D29qAxpVnv69VX0Bx9FCYkHexoQ91nWGPZgzY+UKCilNE4GD3c+HzcwZLFJxT9vobPDFWSmP8nleJKX/1F8Ota2dAPbXb8VknDtg088+GNLWe1catOxq7vqJSlGtC0YiNqenc358tSwH94avpkmLFobZjwsmlBTvOhm0PCxZYpRptTJ1J93W2yJpgMjcd+zFYQVj+870Lm69t24LvkwpUcpgpHUvFXdhfKTL+54sGoVHp1vqHKYWgnQtlXMXsvzyR583nayh+XXDcsfR/DvoFdJAD0Fl3+icC+jVPdJWg3iy20wSiX+OCziWorz8Yp6wD1iEmo3ptT/9acqieS1f1xFPuuTHLbzkRNHaCCI47eCMI6aiynHprUJp0dn/LsqTBFxo9Xosebg/GNkHuN1nkKzJ7EvIVmg22EIkookffmF0NYUbhhsF+yDgQAwNYY6HsXUkMukLZgUJJXjEfuOqlksouAcU3LC1VtYufWUNaB3WcBR4f2YyMo8WMbmLwBGplB4Jch4KiBoJCEND2Hp53YfUqRb4DWbd6mC8P7fvrcJv02XXCsGyd8/A+4/+PesMERiwe/5WD2lDkppREphE6JqH3cb0aSS6XUZAHFFsltYra93zNbk6NNILxewAw== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 59d0c8c3-0ec5-4fd0-1013-08d9d461e524 X-MS-Exchange-CrossTenant-AuthSource: AM7PR03MB6660.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Jan 2022 17:51:57.2772 (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: AM6PR03MB4213 Subject: [FFmpeg-devel] [PATCH 5/6] avcodec/h264pred: Remove dead > 8 pixels checks for 8bit codecs 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: 1LVos2DiS7uJ RV40, SVQ3 and VP7/VP8 are eight-bit only, so it makes no sense to check for them in the codepath initializing > eight bit contexts. Move the codec-specific code to a switch located after the eight-bit init code where this is easily possible; and add checks to the macro to enable the compiler to remove the remaining checks when initializing bitdepths > 8 at compile-time. Signed-off-by: Andreas Rheinhardt --- libavcodec/h264pred.c | 101 ++++++++++++++++-------------------------- 1 file changed, 37 insertions(+), 64 deletions(-) diff --git a/libavcodec/h264pred.c b/libavcodec/h264pred.c index 731cf48ea6..2d115f7b43 100644 --- a/libavcodec/h264pred.c +++ b/libavcodec/h264pred.c @@ -445,56 +445,19 @@ av_cold void ff_h264_pred_init(H264PredContext *h, int codec_id, #define FUNCD(a) a ## _c #define H264_PRED(depth) \ - if(codec_id != AV_CODEC_ID_RV40){\ - if (codec_id == AV_CODEC_ID_VP7 || codec_id == AV_CODEC_ID_VP8) {\ - h->pred4x4[VERT_PRED ]= FUNCD(pred4x4_vertical_vp8);\ - h->pred4x4[HOR_PRED ]= FUNCD(pred4x4_horizontal_vp8);\ - } else {\ h->pred4x4[VERT_PRED ]= FUNCC(pred4x4_vertical , depth);\ h->pred4x4[HOR_PRED ]= FUNCC(pred4x4_horizontal , depth);\ - }\ h->pred4x4[DC_PRED ]= FUNCC(pred4x4_dc , depth);\ - if(codec_id == AV_CODEC_ID_SVQ3)\ - h->pred4x4[DIAG_DOWN_LEFT_PRED ]= FUNCD(pred4x4_down_left_svq3);\ - else\ h->pred4x4[DIAG_DOWN_LEFT_PRED ]= FUNCC(pred4x4_down_left , depth);\ h->pred4x4[DIAG_DOWN_RIGHT_PRED]= FUNCC(pred4x4_down_right , depth);\ h->pred4x4[VERT_RIGHT_PRED ]= FUNCC(pred4x4_vertical_right , depth);\ h->pred4x4[HOR_DOWN_PRED ]= FUNCC(pred4x4_horizontal_down , depth);\ - if (codec_id == AV_CODEC_ID_VP7 || codec_id == AV_CODEC_ID_VP8) {\ - h->pred4x4[VERT_LEFT_PRED ]= FUNCD(pred4x4_vertical_left_vp8);\ - } else\ h->pred4x4[VERT_LEFT_PRED ]= FUNCC(pred4x4_vertical_left , depth);\ h->pred4x4[HOR_UP_PRED ]= FUNCC(pred4x4_horizontal_up , depth);\ - if (codec_id != AV_CODEC_ID_VP7 && codec_id != AV_CODEC_ID_VP8) {\ h->pred4x4[LEFT_DC_PRED ]= FUNCC(pred4x4_left_dc , depth);\ h->pred4x4[TOP_DC_PRED ]= FUNCC(pred4x4_top_dc , depth);\ - } else {\ - h->pred4x4[TM_VP8_PRED ]= FUNCD(pred4x4_tm_vp8);\ - h->pred4x4[DC_127_PRED ]= FUNCD(pred4x4_127_dc);\ - h->pred4x4[DC_129_PRED ]= FUNCD(pred4x4_129_dc);\ - h->pred4x4[VERT_VP8_PRED ]= FUNCC(pred4x4_vertical , depth);\ - h->pred4x4[HOR_VP8_PRED ]= FUNCC(pred4x4_horizontal , depth);\ - }\ - if (codec_id != AV_CODEC_ID_VP8)\ + if (depth > 8 || codec_id != AV_CODEC_ID_VP8)\ h->pred4x4[DC_128_PRED ]= FUNCC(pred4x4_128_dc , depth);\ - }else{\ - h->pred4x4[VERT_PRED ]= FUNCC(pred4x4_vertical , depth);\ - h->pred4x4[HOR_PRED ]= FUNCC(pred4x4_horizontal , depth);\ - h->pred4x4[DC_PRED ]= FUNCC(pred4x4_dc , depth);\ - h->pred4x4[DIAG_DOWN_LEFT_PRED ]= FUNCD(pred4x4_down_left_rv40);\ - h->pred4x4[DIAG_DOWN_RIGHT_PRED]= FUNCC(pred4x4_down_right , depth);\ - h->pred4x4[VERT_RIGHT_PRED ]= FUNCC(pred4x4_vertical_right , depth);\ - h->pred4x4[HOR_DOWN_PRED ]= FUNCC(pred4x4_horizontal_down , depth);\ - h->pred4x4[VERT_LEFT_PRED ]= FUNCD(pred4x4_vertical_left_rv40);\ - h->pred4x4[HOR_UP_PRED ]= FUNCD(pred4x4_horizontal_up_rv40);\ - h->pred4x4[LEFT_DC_PRED ]= FUNCC(pred4x4_left_dc , depth);\ - h->pred4x4[TOP_DC_PRED ]= FUNCC(pred4x4_top_dc , depth);\ - h->pred4x4[DC_128_PRED ]= FUNCC(pred4x4_128_dc , depth);\ - h->pred4x4[DIAG_DOWN_LEFT_PRED_RV40_NODOWN]= FUNCD(pred4x4_down_left_rv40_nodown);\ - h->pred4x4[HOR_UP_PRED_RV40_NODOWN]= FUNCD(pred4x4_horizontal_up_rv40_nodown);\ - h->pred4x4[VERT_LEFT_PRED_RV40_NODOWN]= FUNCD(pred4x4_vertical_left_rv40_nodown);\ - }\ \ h->pred8x8l[VERT_PRED ]= FUNCC(pred8x8l_vertical , depth);\ h->pred8x8l[HOR_PRED ]= FUNCC(pred8x8l_horizontal , depth);\ @@ -516,16 +479,14 @@ av_cold void ff_h264_pred_init(H264PredContext *h, int codec_id, h->pred8x8[VERT_PRED8x8 ]= FUNCC(pred8x16_vertical , depth);\ h->pred8x8[HOR_PRED8x8 ]= FUNCC(pred8x16_horizontal , depth);\ }\ - if (codec_id != AV_CODEC_ID_VP7 && codec_id != AV_CODEC_ID_VP8) {\ if (chroma_format_idc <= 1) {\ h->pred8x8[PLANE_PRED8x8]= FUNCC(pred8x8_plane , depth);\ } else {\ h->pred8x8[PLANE_PRED8x8]= FUNCC(pred8x16_plane , depth);\ }\ - } else\ - h->pred8x8[PLANE_PRED8x8]= FUNCD(pred8x8_tm_vp8);\ - if (codec_id != AV_CODEC_ID_RV40 && codec_id != AV_CODEC_ID_VP7 && \ - codec_id != AV_CODEC_ID_VP8) {\ + if (depth > 8 || (codec_id != AV_CODEC_ID_RV40 && \ + codec_id != AV_CODEC_ID_VP7 && \ + codec_id != AV_CODEC_ID_VP8)) { \ if (chroma_format_idc <= 1) {\ h->pred8x8[DC_PRED8x8 ]= FUNCC(pred8x8_dc , depth);\ h->pred8x8[LEFT_DC_PRED8x8]= FUNCC(pred8x8_left_dc , depth);\ @@ -547,10 +508,6 @@ av_cold void ff_h264_pred_init(H264PredContext *h, int codec_id, h->pred8x8[DC_PRED8x8 ]= FUNCD(pred8x8_dc_rv40);\ h->pred8x8[LEFT_DC_PRED8x8]= FUNCD(pred8x8_left_dc_rv40);\ h->pred8x8[TOP_DC_PRED8x8 ]= FUNCD(pred8x8_top_dc_rv40);\ - if (codec_id == AV_CODEC_ID_VP7 || codec_id == AV_CODEC_ID_VP8) {\ - h->pred8x8[DC_127_PRED8x8]= FUNCC(pred8x8_127_dc, 8);\ - h->pred8x8[DC_129_PRED8x8]= FUNCC(pred8x8_129_dc, 8);\ - }\ }\ if (chroma_format_idc <= 1) {\ h->pred8x8[DC_128_PRED8x8 ]= FUNCC(pred8x8_128_dc , depth);\ @@ -561,23 +518,7 @@ av_cold void ff_h264_pred_init(H264PredContext *h, int codec_id, h->pred16x16[DC_PRED8x8 ]= FUNCC(pred16x16_dc , depth);\ h->pred16x16[VERT_PRED8x8 ]= FUNCC(pred16x16_vertical , depth);\ h->pred16x16[HOR_PRED8x8 ]= FUNCC(pred16x16_horizontal , depth);\ - switch(codec_id){\ - case AV_CODEC_ID_SVQ3:\ - h->pred16x16[PLANE_PRED8x8 ]= FUNCD(pred16x16_plane_svq3);\ - break;\ - case AV_CODEC_ID_RV40:\ - h->pred16x16[PLANE_PRED8x8 ]= FUNCD(pred16x16_plane_rv40);\ - break;\ - case AV_CODEC_ID_VP7:\ - case AV_CODEC_ID_VP8:\ - h->pred16x16[PLANE_PRED8x8 ]= FUNCD(pred16x16_tm_vp8);\ - h->pred16x16[DC_127_PRED8x8]= FUNCC(pred16x16_127_dc, 8);\ - h->pred16x16[DC_129_PRED8x8]= FUNCC(pred16x16_129_dc, 8);\ - break;\ - default:\ - h->pred16x16[PLANE_PRED8x8 ]= FUNCC(pred16x16_plane , depth);\ - break;\ - }\ + h->pred16x16[PLANE_PRED8x8 ]= FUNCC(pred16x16_plane , depth);\ h->pred16x16[LEFT_DC_PRED8x8]= FUNCC(pred16x16_left_dc , depth);\ h->pred16x16[TOP_DC_PRED8x8 ]= FUNCC(pred16x16_top_dc , depth);\ h->pred16x16[DC_128_PRED8x8 ]= FUNCC(pred16x16_128_dc , depth);\ @@ -615,6 +556,38 @@ av_cold void ff_h264_pred_init(H264PredContext *h, int codec_id, default: av_assert0(bit_depth<=8); H264_PRED(8) + switch (codec_id) { + case AV_CODEC_ID_SVQ3: + h->pred4x4[DIAG_DOWN_LEFT_PRED] = FUNCD(pred4x4_down_left_svq3); + h->pred16x16[PLANE_PRED8x8 ] = FUNCD(pred16x16_plane_svq3); + break; + case AV_CODEC_ID_RV40: + h->pred4x4[DIAG_DOWN_LEFT_PRED] = FUNCD(pred4x4_down_left_rv40); + h->pred4x4[VERT_LEFT_PRED ] = FUNCD(pred4x4_vertical_left_rv40); + h->pred4x4[HOR_UP_PRED ] = FUNCD(pred4x4_horizontal_up_rv40); + h->pred4x4[DIAG_DOWN_LEFT_PRED_RV40_NODOWN] = FUNCD(pred4x4_down_left_rv40_nodown); + h->pred4x4[HOR_UP_PRED_RV40_NODOWN] = FUNCD(pred4x4_horizontal_up_rv40_nodown); + h->pred4x4[VERT_LEFT_PRED_RV40_NODOWN] = FUNCD(pred4x4_vertical_left_rv40_nodown); + h->pred16x16[PLANE_PRED8x8 ] = FUNCD(pred16x16_plane_rv40); + break; + case AV_CODEC_ID_VP7: + case AV_CODEC_ID_VP8: + h->pred4x4[VERT_PRED ] = FUNCD(pred4x4_vertical_vp8); + h->pred4x4[HOR_PRED ] = FUNCD(pred4x4_horizontal_vp8); + h->pred4x4[VERT_LEFT_PRED ] = FUNCD(pred4x4_vertical_left_vp8); + h->pred4x4[TM_VP8_PRED ] = FUNCD(pred4x4_tm_vp8); + h->pred4x4[VERT_VP8_PRED ] = FUNCC(pred4x4_vertical, 8); + h->pred4x4[DC_127_PRED ] = FUNCD(pred4x4_127_dc); + h->pred4x4[DC_129_PRED ] = FUNCD(pred4x4_129_dc); + h->pred4x4[HOR_VP8_PRED ] = FUNCC(pred4x4_horizontal, 8); + h->pred8x8[PLANE_PRED8x8 ] = FUNCD(pred8x8_tm_vp8); + h->pred8x8[DC_127_PRED8x8 ] = FUNCC(pred8x8_127_dc, 8); + h->pred8x8[DC_129_PRED8x8 ] = FUNCC(pred8x8_129_dc, 8); + h->pred16x16[PLANE_PRED8x8 ] = FUNCD(pred16x16_tm_vp8); + h->pred16x16[DC_127_PRED8x8] = FUNCC(pred16x16_127_dc, 8); + h->pred16x16[DC_129_PRED8x8] = FUNCC(pred16x16_129_dc, 8); + break; + } break; }