From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id A421C44B9B for ; Mon, 7 Nov 2022 01:49:35 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 7EF5168BA32; Mon, 7 Nov 2022 03:49:34 +0200 (EET) Received: from EUR01-VE1-obe.outbound.protection.outlook.com (mail-oln040092066039.outbound.protection.outlook.com [40.92.66.39]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 234C268BA0F for ; Mon, 7 Nov 2022 03:49:28 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=TkVs6Id8VaVCDmq+9TXXgwfuTH/ni9l5t+mcVGVp5AH4yL34f91kYMjeD7AnOGJ5jAzcNe2M7xAJ3lsZjqB5vk9pZYgJRNE3cgMcek8PA/QzXorU3DDZUevfZk4243cqDuiHtbmKIzIuIEpD8oiXat4E/kcouqTaLs27u1RdNI/n/XIXKutLyiKg3PzayglHEWh54fd0+OGX6mtgjBzDctnYkRw0vAO9Kt+fy8n/mjnRMYeVTv/OJiZiDxCxu5veTrtdZC/55Yhm/CKNK86f1N3J9e7sr4Wll715zUlNUtnzzGozomf2U2RuvQpcbchMYRu5PFdfP3vPyMwCNNB9jQ== 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=Nr7S3Xassax7oWQL0c7ClXh/MsCDtRiJYYMQtrAL11g=; b=fbJjti0LE07fggP/lSUSgW096yAwTmKwMyP6RLc2KHh0Eh7Potff5HnSLdpECfc4u3oFb1WayVmcF5CNpKjciYdZIfS5OtQEKPWFndmZX4IxVFHEa4Daur3TlQhK8/7RB8+Fl5T9mulvrPSV4Rl63a3UKNhR3aEL5NoSZLngXJ+nVjIvRDvr67ORniFdBXlSOJb40xgiwNKQrg013WoUcN89n5f+XhrOlKQNtZlOHTlzUc3nY1GN7P90bmwGjpzT1Z5OU61ryOsKHb0qgvgvXE/NvgrUnpMFLjZlEUmVZ2jxi8ERRgVlPXPyexZb7lj0owdvPKUoI03Oso+mvDbaCg== 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=Nr7S3Xassax7oWQL0c7ClXh/MsCDtRiJYYMQtrAL11g=; b=mu8n1Fxu5L5Wsd4M45EkQXVXfzGFmsUsq7VT3dZU3rECccfcplsNp7XlhEw+KpU7s7SYG4A6ERPIaqdFmNS5vwLrhXccX75p3oSDKErSC+fp+2DgR7fFiKWr4fGnfXLtnOJDLDJecGFLNzE+tOcKYgmht58J0hEeSQ+q9xZnsofkqa4Yx4ZGOWSfqaDFBIapBt3q8UbZHK2Q+9TRVTl669dXABMFBmoWLL72sdlyZhXq4betKiA+vYTVODslniu1DDHKvgZa7B4F72rViItv/QkbXeWRWlZS1aSeNre27HmIeaQuP0dQTbj150FYd7SGEyDyA294XZ1TLu6AZfxvKQ== Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) by GV2P250MB0923.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:7a::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5791.25; Mon, 7 Nov 2022 01:49:26 +0000 Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::c323:d08c:85d0:dafe]) by GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::c323:d08c:85d0:dafe%4]) with mapi id 15.20.5791.026; Mon, 7 Nov 2022 01:49:26 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Mon, 7 Nov 2022 02:49:20 +0100 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: X-TMN: [+5dtojCKkGMl+wZOtz7VEBvnKH8MI9xNOQ7SllvNx/M=] X-ClientProxiedBy: FR0P281CA0009.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:15::14) To GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) X-Microsoft-Original-Message-ID: <20221107014922.1503434-2-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV1P250MB0737:EE_|GV2P250MB0923:EE_ X-MS-Office365-Filtering-Correlation-Id: 0c573c07-eeae-48db-80f0-08dac0624d13 X-MS-Exchange-SLBlob-MailProps: EgT5Wr3QDKzGUuNZsc+Ci/JW2wubyroTFKoQbCd1YdZfgAuemnp4cNydgmdioeBi0HD0pLplRJYKacppsGgCsztPtFE2iHcb1gbp69y7MfE0zPUpQhXV3MIhWu6zdqIm2iT69nif3afCRZ5g6liewhhchPPTINTsJVsde9kDrF0PxzckSCkeeyvSag6uTU0AEwHCiwjOOC1jPSXgYDgJYEZqOs8+7ghYcemTlIxexQvK2N6JWVz30jlmvqQMSL1AXbpeE8Gk55TI3jmOQQ+XxujsglTJxl0OhhHvuKHCG3vWEVvQ2W/nT85E46O49LYPcyaTuQs4n5W3lPFw1jVSZoyBh7jf6daPugatqfF8RIJM3c2UIfx88fGsX/TSkp6V0m87ADf5TnGl4BIQleXjSkFq4kjjiC5ljbwyVyqqnNtKfaVlgJpN7JvDHGVfjQ/jkKoCQHr2L5BGEm5U50aY+Q1SdrqmAMPxAmDHR2qGP+m680O+UkYY/9zQ3GpJ3cJH/cLUvIRKT4cRpETme4y3svzvrvj7prVndwMYlNzxeqSSgl68UTbijFCliLhawllKo15LScFOJh0/oN1n4T1mVwiJXm8iFl/nqT/c5oqmBuLrC1NtcraNbSXgAQmOX8G4nSQn9ihL2vxFCaupTjw9yeToVtgboeP+LpMFjldMfC/8ND6JFm6QZwY/3pcx+MCh4zkrene+Ps9dlQDKhJwJpibTJb6boHgthvRB1HffrQ4= X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: zfk+7yUFmmGoi0VyW1PjbiylJwiD6p7CYwx9EDILKL5ZIkXctS1dkK0lUF/t2X+PLNf3HyPm7Lyf5wwju51icxKxcPQ2ddo3PSpP7myxlyzFqpTWqY0mzIYEDgzZdsjW+9ZIvy6Oi68KTxpHwuWuehB4mdx1Tf1DPK+tayj48muPEMu1VGii0dQCtGY7gDQpg3lh9KKHEcWRH9O5vcZj4wBsDkOwHKuhQUySHtmd/yM3uBwQWQYrpnAr6pRA4Uz3O9aC1TYGIUE31ZIb6ZhDmONx0giabeNZEPJiFDIS52hZ453By2sL2QrYzoEO2n4EQsBYkKBvbdUO3J9/z8VqcT4boFTVl8oBTMuOSQHfFDxZk21/XxBmMNsNhss5k2k3yh3JmZ9hAPiizUgezMWEx5WGnB4UvM9S8j0C8Dng+I7ywLWCLAFEodrjNfdiJ4TtE5toK8edA+N7dKU6JlbOdEqS//x7kWHv5tPquB1yjwYtNv7fNSkr/+jdphOSryNt0QLGpNx+riS7eylZytPJZEq4Sd0MPhfhy+RW8JbgteUli5nPTR0fj9nh8EJHlNPTo6v28j7s7mpP8ZR5c+Q0N6gXDrFIGtySAUT0yxlo9YtsCoWQftUULToCXSg4JeD9QPgtLCpncrm832oO4W6kFTVF+SmKWPUhu7+ugP6zgVJX3mJpCeZtQEsXrt3l3jbF X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?GviF/KiStpJbnE4pbEfqXCp7uSAz+gwzPpzpb7MtygthxPxUXe8IHXLkycd0?= =?us-ascii?Q?D5XXAHLKGFzeVBux+7GTu8+Ct9f4IO8A3EmhzGbpIdqvGInyHtt+jEqO/gPk?= =?us-ascii?Q?56WUC+SqsaPhWLUnmGyjvxts2Uf04hLj9SJXt3XoQpW8UbdwepBoS7UdOBou?= =?us-ascii?Q?UZatjD6TKhBBfTOzNG3WS83jcrvKqr3Tke0QE54U2cX3ltc1Mu1PveQiAkGC?= =?us-ascii?Q?s1ovwHNvgTZECT8sTWHdxDP491heVdTq/YjYvH3suI5lz1rlPywJS8V12Ap8?= =?us-ascii?Q?bn0HqDaqaTHZuub1WgOkIRHMLc7VAfI0u+zjWdzlSy/Kywd4piyd66XLSP+D?= =?us-ascii?Q?MR32RFa4R/a5xg5B3TuNrXhScs4btOx5LCsKPe7MZN4IDwUVGdlAIViSxYC4?= =?us-ascii?Q?7SOylyZNDjB78QqiSkwy6G0mf4Q04MfHfmnq4cUqjkG0HQfZjGvW1NZaN3/C?= =?us-ascii?Q?vk08BleIAQ6x6gdw2SE4+XKNZ7/ICiwB+d9vV3YLqFkBAqWzhBMjNkGPb4Oj?= =?us-ascii?Q?OpqBR/Ebekui7KVznlYn1EfXbaX6IEZkJ70ZkvlT8Q6LmNnyu/SiMx6dSY+T?= =?us-ascii?Q?6w/ZnXo0smh6v4PjaZv6XKEqlj1R7uZx6eeanaA6O5xsZhQuvp1Jyg6c41w3?= =?us-ascii?Q?LxCuIpVTYR053y1SzepgomIqWGuVNjirFCzHJJ+klH9QOm6Y7JkW9Ko1qTo2?= =?us-ascii?Q?5qIpbjUGqtCogLHVCfM0dcNhUUtYp5ZrCUv0vFELoobkd96zTChAEIMrgYdg?= =?us-ascii?Q?/4vv12BdHH16ic/fu7v+1kYts+e1dBReYTC7eb9FEIXOdRyjYIEfttKMI7iW?= =?us-ascii?Q?i+ri36npB0sUt/qTgEHZRQZGypi0MFsUuEYRGhn8jvrYgnKgaYz5QfvNCj97?= =?us-ascii?Q?+Umu0ZPZe2R0JOruwvoJMql3g/WOaghZfRplu+WMDNb0xNKE8lAkTp2+9+hd?= =?us-ascii?Q?6VFFbpzqciAWpOBhIgRlew99VdelnKyVFUINNWTcGKVmAqkbZg2Pb2FVzxEr?= =?us-ascii?Q?ue3sdgFI0MvnB6qCXOlrqG/nkUlq0QSjTMFLbXlRdUSMeyr6kOAgi0fjd7wB?= =?us-ascii?Q?rlbv0r0bpXuwb2AGmOUhON6G4NI6Ykx+WCuyFXFE9aePx9nwDFv3yIOES2L4?= =?us-ascii?Q?qDAxsJBAwsI3+iuyRia23gSKCEvPaC8RH11X+25IrijyQ1YPXbd0IabXggm0?= =?us-ascii?Q?JLb0Fl82/HMcqXZ6xqXlxtUPZYz45k/BD6KG5ANiVtcxYv8u/FYuvb6oZyJO?= =?us-ascii?Q?XherbitFwbTzNZ+sD09kOkRXAgKXMlc69aPaRDFzUJJubWeZBvglZjcNtQqH?= =?us-ascii?Q?4INsmKCMTnhrOBTqfx+tsOc3?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0c573c07-eeae-48db-80f0-08dac0624d13 X-MS-Exchange-CrossTenant-AuthSource: GV1P250MB0737.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Nov 2022 01:49:26.0360 (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: GV2P250MB0923 Subject: [FFmpeg-devel] [PATCH 3/5] avcodec/clearvideo: Redo updating predicition 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 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: This is in preparation for further commits. Signed-off-by: Andreas Rheinhardt --- libavcodec/clearvideo.c | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/libavcodec/clearvideo.c b/libavcodec/clearvideo.c index 6ea3d7b6a2..11ae6ca9ad 100644 --- a/libavcodec/clearvideo.c +++ b/libavcodec/clearvideo.c @@ -296,7 +296,7 @@ static int copyadd_block(AVCodecContext *avctx, AVFrame *dst, AVFrame *src, return 0; } -static MV mvi_predict(MVInfo *mvi, int mb_x, int mb_y, MV diff) +static MV *mvi_predict(MVInfo *mvi, int mb_x, int mb_y) { MV res, pred_mv; int left_mv, right_mv, top_mv, bot_mv; @@ -336,10 +336,16 @@ static MV mvi_predict(MVInfo *mvi, int mb_x, int mb_y, MV diff) res.y = bot_mv; } - mvi->mv[mvi->mb_stride + mb_x].x = res.x + diff.x; - mvi->mv[mvi->mb_stride + mb_x].y = res.y + diff.y; + mvi->mv[mvi->mb_stride + mb_x].x = res.x; + mvi->mv[mvi->mb_stride + mb_x].y = res.y; - return res; + return &mvi->mv[mvi->mb_stride + mb_x]; +} + +static void mvi_update_prediction(MV *mv, MV diff) +{ + mv->x += diff.x; + mv->y += diff.y; } static void mvi_reset(MVInfo *mvi, int mb_w, int mb_h, int mb_size) @@ -575,11 +581,13 @@ static int clv_decode_frame(AVCodecContext *avctx, AVFrame *rframe, for (j = 0; j < c->pmb_height; j++) { for (i = 0; i < c->pmb_width; i++) { + MV *mvp, mv; if (get_bits_left(&c->gb) <= 0) return AVERROR_INVALIDDATA; - if (get_bits1(&c->gb)) { - MV mv = mvi_predict(&c->mvi, i, j, zero_mv); + mvp = mvi_predict(&c->mvi, i, j); + mv = *mvp; + if (get_bits1(&c->gb)) { for (plane = 0; plane < 3; plane++) { int16_t x = plane == 0 ? i << c->tile_shift : i << (c->tile_shift - 1); int16_t y = plane == 0 ? j << c->tile_shift : j << (c->tile_shift - 1); @@ -596,15 +604,15 @@ static int clv_decode_frame(AVCodecContext *avctx, AVFrame *rframe, int y = j << c->tile_shift; int size = 1 << c->tile_shift; TileInfo *tile; - MV mv, cmv; + MV cmv; tile = decode_tile_info(&c->gb, &lev[0]); // Y if (!tile) return AVERROR(ENOMEM); - mv = mvi_predict(&c->mvi, i, j, tile->mv); ret = restore_tree(avctx, c->pic, c->prev, 0, x, y, size, tile, mv); if (ret < 0) mb_ret = ret; + mvi_update_prediction(mvp, tile->mv); x = i << (c->tile_shift - 1); y = j << (c->tile_shift - 1); size = 1 << (c->tile_shift - 1); -- 2.34.1 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".