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 8078F40426 for ; Sat, 23 Jul 2022 20:48:37 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id B5F3168B69E; Sat, 23 Jul 2022 23:48:34 +0300 (EEST) Received: from EUR03-VE1-obe.outbound.protection.outlook.com (mail-oln040092072080.outbound.protection.outlook.com [40.92.72.80]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 2420968B2B9 for ; Sat, 23 Jul 2022 23:48:28 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=FVgnU+WfCXA4Nt+BYwC++i7NHsULGjGWofd6C4pUIhaQqlmMmYfwfuSnOF2+HP/rJcirq4wXpNZ1nVUdzqinfOXLrrsPifp7TN65x08xjsZP3WdDcitST6SPNLXmtEIrfsqo1KxxwLcUkklUIqHSUqApTqHxS2Pi2eGuGbpaZPCFixD5QqpSD/0Za0oEBIgxjRZ8yQ2NPfoGh5+KQkJVoEqb05DXez3WJ43TFvPTNFc1K+5dvkim5KXnT5mLYQB+bR8lsGGe/PcEs+MTFz5oY27aIMWDdNBORrid4JY1+GXUVUE01Gg4T3JNJrA/eql2Ang95uPyI4WiWK+4WxhZUg== 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=RrNNnpfZigPDFd2gnQT6ye+1PygUlYKRwRQF5TQRkDw=; b=bols1CI7FfoWgXTIwA1yI4AIMdWT+l6HZ1YmCVFH9V/ECo8+AUE62uxY99tJ+Ll2r38K1Uk1bRgaiqC9KKSQLsWDch/b7eIXp3rWI8AVQsQsQu/v26OOue4h/ge/J1Jpr8N7npF7FXTZZwlwQm4ci6PWBMzmae2QCzpbb/2nnm11lkKzV2fwnUSky/RkbIs/F85eflAFb0LMM+Ebavo3xUbXjihigijnE1I4PpMtfKR7q+nlr2PDCKJPbisiP5S/TCHRDH6xBfwn1gpthJaAuxt/S+Tn7trC2mwnmC0D+6vnzJpQa8S7d/ijJ7wWExdGUNzAZXLThD44MPNqV42KMw== 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=RrNNnpfZigPDFd2gnQT6ye+1PygUlYKRwRQF5TQRkDw=; b=slX7UZCTdrCTeWefMP1VHRsO3EvCd+5SBfIU3d+2HLgzAo7unaw8HZ1dreMPfeE9Km5z8aw0rnIYlxMuOw55Z4e0n/VrwUFL+CwzAr+/rjaUaoYfkq94V5SvAvMxmVNosryzmINuvspRBWPuq3AlM43XOBxChE99CJeVVuU/lcjWFHIo/CsY1JCxEGNdt/3IehmXCooKCqaboQ4tHYZVI69IoPYpLnnvtPALOkDCYkJVHSGyMziHeuHnH06YLuZaNvVeMV8y04LBTj321ZFoZYSYkFliv21Ozu1rfAlImp8nGS4OUxHUFXpbiirivV/0SMTZHdXBk9wbhx8FWW2mUQ== Received: from DB6PR0101MB2214.eurprd01.prod.exchangelabs.com (2603:10a6:4:42::27) by AS4PR01MB9422.eurprd01.prod.exchangelabs.com (2603:10a6:20b:4c9::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5458.20; Sat, 23 Jul 2022 20:48:26 +0000 Received: from DB6PR0101MB2214.eurprd01.prod.exchangelabs.com ([fe80::210e:b627:bcc9:8c46]) by DB6PR0101MB2214.eurprd01.prod.exchangelabs.com ([fe80::210e:b627:bcc9:8c46%11]) with mapi id 15.20.5458.020; Sat, 23 Jul 2022 20:48:26 +0000 Message-ID: Date: Sat, 23 Jul 2022 22:48:24 +0200 Content-Language: en-US To: ffmpeg-devel@ffmpeg.org References: From: Andreas Rheinhardt In-Reply-To: X-TMN: [9oUMhamm4cZvglpMSJ1XtGeKuHrAzOJF] X-ClientProxiedBy: AM6P195CA0067.EURP195.PROD.OUTLOOK.COM (2603:10a6:209:87::44) To DB6PR0101MB2214.eurprd01.prod.exchangelabs.com (2603:10a6:4:42::27) X-Microsoft-Original-Message-ID: MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 21a19dbd-a76a-4c08-88e7-08da6cecb0dc X-MS-TrafficTypeDiagnostic: AS4PR01MB9422:EE_ X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: xHI3zFVXPumv4wKa5GaOb+6KixPB2oRCKHV7IfSbUx9DDOPYDLIOUNfc2Ul3YC1jp15CeH+ZWs2t8tae978EiOAEGRTbC12WSRUL7/LBs+NmFowRNQBB9CWI+tB/kwUI+9zUlz/a1tJFqUwMRnkahNZKV/ePjsE9iB8aaoKtREfuxdNQaYvXLxs7zKsSz+Vi1hkMUvy7++9vQHzMhK6hoc+UF6mUXhoHD+K4C4h+Mn1RM8rerzOMWG2Juiq9hkGoU6JC7b9jDegoDilut9y0zRkzVbLT3nlS0WAODyY8fK4Y8EyDBh7PRdu88YOeQiEku26WAXaPFA9tizKqEW3yAOdJbllkunM+TwUy/7nQpY2FMkpuUgAL4uVhgE4SVBUlXvFN14HOOIF9jLqaTABOXsJyWx1zzqLlPwdwq0pM6St8FA3x1THyJZwz1LbSu4KJsWfBzWRnHX/8yjYTrVhd3OWSOy+MqxoATsZ5bjqEFdGeAahM3Rm8ObCdWTwdkKu/GK7cS6sDvPwlLHJXQD5lXRRShJFIg7NwD+ODxJX4Wq6DCA+GHlydSiQpYFAyKVIz4rvL6ZWxjVw3NEnllcBNufGhgHne8aDM6lE7n4eE7T4cQcMELemYJBM9Bs/FUpEk6mcooiwXAEuH+XGwL3wyNjf+BHG42OCvhNPQyYRTQPhxaZhHel8fMFvro9DyB+xn X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?VWJpS1Y3cjYzTkxPa3g1TWhYS0NDRWVCelR1OUh6SCtHSzRXWU1lOHNHUHBN?= =?utf-8?B?NUZXTDRIMUxGWDFEb1FKTGhpQkw3bjJaTjJGNUY5QUlYRWxuQ1NrTU1YYmFS?= =?utf-8?B?a203bTMybG5TRmNmZFdqVHBGbTM0VXRzVlg2Y3pBTE1RVFh0bjRFa2pPdEFY?= =?utf-8?B?bE1lWDFaV3pBSysxdjc1eHFhV1JoZ3FMS09qMVZmb1V3blJqditubnJCUCsw?= =?utf-8?B?aUlTYXlIWEJJeWg2dzY3bmRTT0ZYNDZtUlhxUnF5MnpvbkQvdW5PRkR0MmVX?= =?utf-8?B?bVA2cHJFN3NOTnhpaXN0cmZ2a2lOVzgyUDh5NDl4elA3ejhNaThYak50OVJ2?= =?utf-8?B?Z3R0cjdzSVRBZTQ3dGcwbmwvZ3RPWVBVMWZsNEV5ZE1YbnRtYmp1c1pBZVh0?= =?utf-8?B?cDNEUjk0QzFQYlVCemE5K1lieGUwb3EvMTc2RUFZME5GMTFzTjRjSFVwMDRH?= =?utf-8?B?bTAzNURHZVczUjV4YUJBcWx6QmFsM2FsaFZCV2E4V3E5MlhkK3VNZytHMGs2?= =?utf-8?B?M2dsNmtuOG9IWjV5bEM5WE5SMTFCZmdNMS9TVDRPamFLb3N6Vkc4Zk8yUnJs?= =?utf-8?B?M1NkQ1Zva0ZmVHQrZHZiZmtXZFQxdjhVeWx0VmhHaU9BZ2VHVGJuT1hCK3ZU?= =?utf-8?B?YlhHTVR6UnpQcktyU01sQ24yTDZLa0Nud25oaWRuQmVqdEthNkRXOVI2UnBV?= =?utf-8?B?ZDZSaEhac1NRZVdtbTV2YXBTWFQraTVKTkM4cjJCbm56WkpLTEtLaklocTla?= =?utf-8?B?RTFDUmNTdFdjcnRZVGlocEVSWktsY2prNjZJSGo3aE14Rld4UzJ2TS9qejlz?= =?utf-8?B?M01tV3ZpODZrMWQrdmo1V0ZNcnVIWmE2MzlkbnFRWW9pTExrYTV4SVUzaWIw?= =?utf-8?B?cTlxbDlvbzNzV2I4S08rKzhBSXVHYVhBRFdWRWRJa0xFbjg1YldzcGtxNWNR?= =?utf-8?B?MnRCRTNaSEYzczdLcEwyL0RDM1dvTWczOE9mWWxuNm1DNG05RlVrcDQ5VWgw?= =?utf-8?B?RTBxZFEyVnFSeEEycUFnOUpNSlh0T3E3NzJwS1hRN0o1blZma3VOOTJET1JO?= =?utf-8?B?Y3NhYkRnaVRDa3ovWXdjTVBtb041d1ozQ2I5dGs4VmFTSDJMTk9FaXhWbkRP?= =?utf-8?B?QVJPUUtnNTVnR2U4REJJZ1JsZHJzRnBnTGg1M2NMZkh1Z2JOeGl5ZjRPVm01?= =?utf-8?B?LzRPczluL213TUlwYnIya2lRR1FwdzR2cFNhdVVMRjZzRndsUTlpenU2Wktv?= =?utf-8?B?Q3cxUmZRbS9XbzlNNk1ZVmJpZ2o3WmdlSWovUDA0eERDc1ZRbGl5UEI0S3FL?= =?utf-8?B?L2VGUFpaeTVYbXdSNCt1TEp2U2FvRFRNLzFkSGpJL0VuVXp2M3prRk9rN2Vt?= =?utf-8?B?Nm5velNQRjRZSUpjaytQK1Z1d0FIcnhmWDFDTkYwNHN4ZG56Z0hhbUdieWlB?= =?utf-8?B?aWFUUm5GZHFlejRvSXhUc0VEK25oZkZOWXcwVUV0V0piQThmUUFlZU40SzJx?= =?utf-8?B?VUR6bzhId1VORURkNzJUSzNWbkttcE8zSnFDS3dMVmNjTmJEejZHdUVzOHFy?= =?utf-8?B?STRQRkFNMXR5cjhCUEQwSnhGL3BUMDI2S1c0aXdwS3ZKOU0rd2dLejd0UXFa?= =?utf-8?B?aktpZlU1WGp4N1JGdmphTDJ5V0RSRlBqaXA2MmlOWVNDcU9xWGNIcmxEWkRz?= =?utf-8?B?ZHBwSXMrUTVxZmdkU3NpOGgyUS9hNnJrS2EyMmZEdjlNMkIyTnFsU2M4OWJr?= =?utf-8?Q?FsGv523N/odyWnERSY=3D?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 21a19dbd-a76a-4c08-88e7-08da6cecb0dc X-MS-Exchange-CrossTenant-AuthSource: DB6PR0101MB2214.eurprd01.prod.exchangelabs.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Jul 2022 20:48:26.5264 (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: AS4PR01MB9422 Subject: Re: [FFmpeg-devel] [PATCH] avcodec/hevcdec: Output MD5-message in one piece 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: Andreas Rheinhardt: > Otherwise, there is no guarantee that the various av_log-messages > are not interrupted by another log statement. The latter may originate > from anywhere else, even the HEVC decoder itself, as happens when > one uses frame-threading to decode the BUMPING_A_ericsson_1.bit > sample from the FATE-suite. > > Furthermore, the earlier approach suffered from the fact that > various parts of the logmsg were output with different loglevels > and that checking stopped after having encountered the first > plane with MD5 mismatch, although it is probably interesting to > know whether other planes are incorrect, too. > > Signed-off-by: Andreas Rheinhardt > --- > libavcodec/hevcdec.c | 39 ++++++++++++++++++--------------------- > 1 file changed, 18 insertions(+), 21 deletions(-) > > diff --git a/libavcodec/hevcdec.c b/libavcodec/hevcdec.c > index 2d06d09b75..3c95398b96 100644 > --- a/libavcodec/hevcdec.c > +++ b/libavcodec/hevcdec.c > @@ -26,6 +26,7 @@ > #include "config_components.h" > > #include "libavutil/attributes.h" > +#include "libavutil/avstring.h" > #include "libavutil/common.h" > #include "libavutil/display.h" > #include "libavutil/film_grain_params.h" > @@ -3374,17 +3375,12 @@ fail: > return ret; > } > > -static void print_md5(void *log_ctx, int level, uint8_t md5[16]) > -{ > - int i; > - for (i = 0; i < 16; i++) > - av_log(log_ctx, level, "%02"PRIx8, md5[i]); > -} > - > static int verify_md5(HEVCContext *s, AVFrame *frame) > { > const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(frame->format); > + char msg_buf[4 * (50 + 2 * 2 * 16 /* MD5-size */)]; > int pixel_shift; > + int err = 0; > int i, j; > > if (!desc) > @@ -3392,9 +3388,6 @@ static int verify_md5(HEVCContext *s, AVFrame *frame) > > pixel_shift = desc->comp[0].depth > 8; > > - av_log(s->avctx, AV_LOG_DEBUG, "Verifying checksum for frame with POC %d: ", > - s->poc); > - > /* the checksums are LE, so we have to byteswap for >8bpp formats > * on BE arches */ > #if HAVE_BIGENDIAN > @@ -3407,6 +3400,7 @@ static int verify_md5(HEVCContext *s, AVFrame *frame) > } > #endif > > + msg_buf[0] = '\0'; > for (i = 0; frame->data[i]; i++) { > int width = s->avctx->coded_width; > int height = s->avctx->coded_height; > @@ -3428,23 +3422,26 @@ static int verify_md5(HEVCContext *s, AVFrame *frame) > } > av_md5_final(s->md5_ctx, md5); > > +#define MD5_PRI "%016" PRIx64 "%016" PRIx64 > +#define MD5_PRI_ARG(buf) AV_RB64(buf), AV_RB64((const uint8_t*)(buf) + 8) > + > if (!memcmp(md5, s->sei.picture_hash.md5[i], 16)) { > - av_log (s->avctx, AV_LOG_DEBUG, "plane %d - correct ", i); > - print_md5(s->avctx, AV_LOG_DEBUG, md5); > - av_log (s->avctx, AV_LOG_DEBUG, "; "); > + av_strlcatf(msg_buf, sizeof(msg_buf), > + "plane %d - correct " MD5_PRI "; ", > + i, MD5_PRI_ARG(md5)); > } else { > - av_log (s->avctx, AV_LOG_ERROR, "mismatching checksum of plane %d - ", i); > - print_md5(s->avctx, AV_LOG_ERROR, md5); > - av_log (s->avctx, AV_LOG_ERROR, " != "); > - print_md5(s->avctx, AV_LOG_ERROR, s->sei.picture_hash.md5[i]); > - av_log (s->avctx, AV_LOG_ERROR, "\n"); > - return AVERROR_INVALIDDATA; > + av_strlcatf(msg_buf, sizeof(msg_buf), > + "mismatching checksum of plane %d - " MD5_PRI " != " MD5_PRI "; ", > + i, MD5_PRI_ARG(md5), MD5_PRI_ARG(s->sei.picture_hash.md5[i])); > + err = AVERROR_INVALIDDATA; > } > } > > - av_log(s->avctx, AV_LOG_DEBUG, "\n"); > + av_log(s->avctx, err < 0 ? AV_LOG_ERROR : AV_LOG_DEBUG, > + "Verifying checksum for frame with POC %d: %s\n", > + s->poc, msg_buf); > > - return 0; > + return err; > } > > static int hevc_decode_extradata(HEVCContext *s, uint8_t *buf, int length, int first) Will apply this tomorrow unless there are objections. - Andreas _______________________________________________ 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".