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 E570947784 for ; Sun, 22 Oct 2023 14:29:31 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 89F2768C9CC; Sun, 22 Oct 2023 17:29:28 +0300 (EEST) Received: from EUR03-DBA-obe.outbound.protection.outlook.com (mail-dbaeur03olkn2034.outbound.protection.outlook.com [40.92.58.34]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 1EC7968C159 for ; Sun, 22 Oct 2023 17:29:22 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=OH4M49bWhIpH5sdZCPZgJG/oshwF3KKIP4yLPz/o8TYqoaqXx9i6hIIXummJzrPiR/vIyulK9t1YtYpRn1S93QJf5XUtMoyGJ8IwM9hokmw3inzSK1YLjqAt4hev4iMRxwu4rgoMlkosv0pqm+XfoX+792RaC9+Z+z8rY81eZnbJxlY9ORceCTFHh7WgAdJojbFAZSz7hpMTyJeizH407JRe4PVBqoxfe3M9OYvMwp1ttjCKKbsmdHZFJqyW4twgGyJFnXdsPtjT3LIlsIx26k0Qnx0bV0ibmg8FvsNHRTpftfTqd7EPQlcdnLkEWFhvnQ1zCP6UotkVusW3CyHWHA== 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=qgNc6yAEetzzq7JlSotuv48wIHwAHis6F0vN7XDGoDI=; b=jcyq2PUr98zrrghA63O//pEA01OCFlkeCKvfdvMJK2XFWzhQK5fffoXn/IKsS0wR+g+ywPo/sC1VV5MEy83MSgjjWQW0XcWbRT8LTJhpNTFgwhpdL1gKolhfAng5TdKorBFGKocAKPTum2CxbaafaZUvPhnQtyatqzMAcWA5LJZESTp+WmNaUebvuxRMi6ksz304YDUm8EY584RN1Ar1SzHQeQ0JLQjwahsW5ci0fdWbRYnJzxos6uGQJUNiKt2E62y957c9KDANZg662l0iWh/Lq5GDIBPGq3cZNO4yq0WuTQx4LusJTtjTvfk1FnW7Gyy8cIdbWbTGzrAGf5Qogg== 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=qgNc6yAEetzzq7JlSotuv48wIHwAHis6F0vN7XDGoDI=; b=phACy+VKoCytiODFs2bFnxNxFs7/1OubDJHxZkhmNjT+eTXKOcbh7tSLXofGKtli0iHV80g8o28Tqiqa7i3afH82KtaUjsVqWhQ3DzgQPC5JFyY1UXtYokoHreaFWkQkUJPyAVB55dAzfjUvVBMfnfm2aOmBeSruTErsQOBnkLML4okslZjJXiplmwgVXr1GbPczH0OMOvRVkNvaNoFTvQ+hwZKbrTyJTlXRW86ZTZtPoEJFPe+DM/ENrxjKQOBTYxsBqcoIH1Zvi/O4iUh10wONMXE4LKka2ZBINo5pgscpM0IhzcUs6eZIwd38tXs6jLHGU7eXzAUnC+jAcSmHlA== Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) by AS8P250MB0345.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:37c::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6907.31; Sun, 22 Oct 2023 14:29:19 +0000 Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::f59c:9cff:a42d:bde]) by AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::f59c:9cff:a42d:bde%3]) with mapi id 15.20.6907.030; Sun, 22 Oct 2023 14:29:19 +0000 Message-ID: Date: Sun, 22 Oct 2023 16:30:36 +0200 User-Agent: Mozilla Thunderbird Content-Language: en-US To: ffmpeg-devel@ffmpeg.org References: <20231022124525.96162-1-thilo.borgmann@mail.de> From: Andreas Rheinhardt In-Reply-To: <20231022124525.96162-1-thilo.borgmann@mail.de> X-TMN: [BtLYChBvhm1bceBA1CrubDuGkIXONLa9zPj8DcOEzBw=] X-ClientProxiedBy: ZR2P278CA0068.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:52::11) To AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) X-Microsoft-Original-Message-ID: <89646813-8771-45d7-9e6d-6c7e3677a966@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8P250MB0744:EE_|AS8P250MB0345:EE_ X-MS-Office365-Filtering-Correlation-Id: 8da935e8-4cf8-4622-4e23-08dbd30b46d0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: vh25jQy6h1b5xswCSlGOjQh43V1b1inp+gV5AYqwR5tMB1oWK67FiDQRhqVodughI11VMPRLceYacPQGbW7FK1MR/BrlrritkZC8W8r9njMsui25C9UDy05n5z12qTHbE4ln4qRe07o/DIchjnD2IXVhlt1QG6cOWVEgChH8GbxqS5rAWzc4F4T/ckqNRP8KEPIqgFnOaIkZSv/nZ1U7j9lgMfJuZu/aJtFhO10+ZIVGeWZaoZ9nQcVDgH60vCkqPeg41Y5AiEF/QEsvjhcPrGn9ylSQLF030nIyoo7IR4G4TZjpSoFlV7rD+9t0o7qk936GtbvoaZ0KvLAzn4hqeMZykE4xLApZ1mtQPw4lkKW3hAdVyQUTxg7EIPGw/uUi0rdsk8nNyLZtx4YMAN22/n5elczOXps17Abv2hr5o0flHf/3T0lDWwl1B2Hld0V+Etx0qzWEsDXwMoYzWRSRDiPK0xr2WWpO6KK4J8p/CteEHBrIqFo5odT6lbpWfkgohb5Lid6a1h6MqnvfbXZ7xsPkD6vg971s5i3QN1BJTJa6JuQLwAhyHM5kltomy9YmmvYgbVIjopv64KN/aitornxSU8P8cErbYrKy7M5Xg1U= X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?UE1aV0RIeWQySTF4RGFjaVR0RWh6anRpLzBOMHRYOHVPQUNFMXgxYUJReTc2?= =?utf-8?B?bVo3Q2V4S3RrNStLLzlwZlFLdlZocCtSZkJWTlJ3c081RmpuZXpkT1J5OFFx?= =?utf-8?B?ek4rM25jNHFrVTZyOHdLbnRmd2YwTWhWWmJJcEdtWkZWOEZRdjREM0dQQXpk?= =?utf-8?B?NlU3RER1S3BUbVoxN2NSL3FNRExnUlVMMnlSdlBuQUd0WDdTWlNBWFlSNVNM?= =?utf-8?B?VnBmUGxoQjgrekZmN00rNXlrUEQxQ2FqaGFiRFMvSXZ5ekR3cFlyZFhkSkhN?= =?utf-8?B?cXFTNzdlWU14UDJ5dTdqR3dLRDFITzZpMUNhczI5c1R0THZaOHl5blJsSG9y?= =?utf-8?B?UENlZWFBS1c2c2F2VTBhK1BUMEJzTTRyRXY3S0p4ZW8rNUFQNk94S3dhRnQ2?= =?utf-8?B?N1N2a0drSENraENTWEN2WURTVUowZTZMZ2lCbHpON0d6bjBtamQ1ZERFYVhk?= =?utf-8?B?TDFjWTJ1R2wwOFdZbDhyZmxRN0FsdkMyeWVIaTVTVVlDRVJDaGhRKzNKNGlj?= =?utf-8?B?c0lqK1ZKUnZBeGdRdVc2VE44dG40cm0wUll4ZmtJelZCK0dXRE9zQVBwRlE2?= =?utf-8?B?OFdYUWFNUHdXZmtFR0pBTGo1RzR3bFdQd2hLd1c3RFl2MDc4TzBpSE9NQ3Rv?= =?utf-8?B?TzlFQzV5c2IvYVY3S1A2cUFIbzdnVDU2aWhrT0lyNldYK0VZTEdkNlVLUFU0?= =?utf-8?B?Rkw1SCt5SytEN2IybVNLZzBYQ3NwSmZOcTI2eWtwazllYjFMSk50azVBQ3kz?= =?utf-8?B?YWQxTDRtWFB2bzFUSlpHRDR2aXkxaVFOYkFOK0dXSFFoU3ZEYXIrZ1pTRjVK?= =?utf-8?B?anRYNUxRczBPUi9IT2U5VmliL2svenhKREJlUHNlSW5nTUkxdjc1N1N6ODBT?= =?utf-8?B?VDFNUyt5VzdEL3I5clhTQW5UWXo4U3A1R2QyYy9XdjdKb0szSWMzTHBMK2RD?= =?utf-8?B?K1Y0WVBiaVFTQnZiVWZBa2hQQUozaHh6K2RWRnppVEZaTEFLaElxN205SUtk?= =?utf-8?B?M1RuUEQ0bXdLVmNRYjY3b1BnN2d5YW9sZUJqNkN0eGFrSEwwdU1NM0NzekVa?= =?utf-8?B?NU1vdlJPZUlIS2pENmZZbnhqa3NYZXllWTJKbVVXVFJhbzcwMDZMWldoR244?= =?utf-8?B?aTE4R0ljaUtYWGxqSWRERXlKMXowdFE2Vm5tTU5GRmJseGVCZkxPS2tsRWJ5?= =?utf-8?B?OTE1bndHLytIVFNGc3FXdzMwajN0WFFxQU1kbFdBakpNOWYrcEpQL2V2OEU1?= =?utf-8?B?MXA0MW0yUHJHT3lrdkd0dXgxRXRydkZwT3R0WGhHSm1rbjljclBTT3ZuNXdD?= =?utf-8?B?T0Zzck9zbEc2WExXTENmcTN0NzhIckFRSGNONitHbDcwVGJqUjl6QzZNUDIw?= =?utf-8?B?QWZING9FUmtmT0psanFDbHJ6QmtJY3BiNXN1cGxoSjArZ1ZFaVU1N2lhbWJH?= =?utf-8?B?TWJ4NVhWeEhUUGNCUXI4dGtTbnYyY0dvWHFCZis4SXpYSVBkNHJpOG4wbWVO?= =?utf-8?B?VUVSSkZlQlpnT2o4eUlVcUFPS09oN3I4alJadHEwUCt6U2lieGMzQVY3dWtC?= =?utf-8?B?UDF2RDljZHVJanVya29RcHg0ZzRGL2UyMzVpRTFrYjVldE8yV1h1UnV5ZzBW?= =?utf-8?B?ZTR4TU9Qa1FwZjZCKys1MGJWMzB5eTkxWTU4a0pBUHFYQzg4di9IK0tzSldh?= =?utf-8?Q?3CGKs2eN5TgesIeuA1So?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8da935e8-4cf8-4622-4e23-08dbd30b46d0 X-MS-Exchange-CrossTenant-AuthSource: AS8P250MB0744.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Oct 2023 14:29:19.2689 (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: AS8P250MB0345 Subject: Re: [FFmpeg-devel] [PATCH] lavc/webp: Remove frame threading 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 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: Thilo Borgmann via ffmpeg-devel: > Revealed by the patch to support animated webp, the current > frame threading implementation contains a data race. No, it doesn't: The current implementation does not call ff_thread_finish_setup() in vp8.c for webp: if (ffcodec(avctx->codec)->update_thread_context) ff_thread_finish_setup(avctx); It seems that "the patch to support animated webp" (what patch are we talking about?) adds an update_thread_context to the webp decoder, thereby changing things and adding the data race. > vp8_lossy_decode_frame() calls ff_vp8_decode_frame() wich > calls ff_thread_finish_setup() to sync its internal slice threading. Nonsense: ff_thread_finish_setup() is only for frame-threading. > The race is happens because vp8_lossy_decode_frame() has to touch > the AVCodecContext after it was passed to ff_vp8_decode_frame() and > ff_thread_finish_setup() had been called. > > Therefore remove frame threading in webp and rely on slice threading > in VP8 only. Also nonsense: The webp decoder does not support slice threading, so the internal VP8 decoder won't ever use it (even though it supports it). I am a bit confused here: On the one hand, https://developers.google.com/speed/webp/docs/riff_container says that it only uses VP8 key frame encoding; on the other hand, it has this animation feature. Does this also only use VP8-intra coding (i.e. is the non-intra part of animation just the blending of earlier frames?)? If it does, then the webp decoder should be separated from the VP8 decoder (i.e. it should use it according to the public API) and the sub-decoder should only be used in single-threaded mode. IMO removing frame-threading for ordinary WebP due to animated WebP is unacceptable. > --- > libavcodec/webp.c | 5 ++--- > 1 file changed, 2 insertions(+), 3 deletions(-) > > diff --git a/libavcodec/webp.c b/libavcodec/webp.c > index 54b3fde6dc..cde91aa7bb 100644 > --- a/libavcodec/webp.c > +++ b/libavcodec/webp.c > @@ -49,7 +49,6 @@ > #include "decode.h" > #include "exif.h" > #include "get_bits.h" > -#include "thread.h" > #include "tiff_common.h" > #include "vp8.h" > > @@ -570,7 +569,7 @@ static int decode_entropy_coded_image(WebPContext *s, enum ImageRole role, > img->frame->height = h; > > if (role == IMAGE_ROLE_ARGB && !img->is_alpha_primary) { > - ret = ff_thread_get_buffer(s->avctx, img->frame, 0); > + ret = ff_get_buffer(s->avctx, img->frame, 0); > } else > ret = av_frame_get_buffer(img->frame, 1); > if (ret < 0) > @@ -1564,6 +1563,6 @@ const FFCodec ff_webp_decoder = { > .init = webp_decode_init, > FF_CODEC_DECODE_CB(webp_decode_frame), > .close = webp_decode_close, > - .p.capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_FRAME_THREADS, > + .p.capabilities = AV_CODEC_CAP_DR1, > .caps_internal = FF_CODEC_CAP_ICC_PROFILES, > }; _______________________________________________ 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".