From patchwork Fri Dec 29 17:20:15 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zhao Zhili X-Patchwork-Id: 45381 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:6623:b0:194:e134:edd4 with SMTP id n35csp4670759pzh; Fri, 29 Dec 2023 01:20:52 -0800 (PST) X-Google-Smtp-Source: AGHT+IFYYW1JLehFy644gTzRUDSH7pYfmYsHGWoWjEyAuyF9MWTnuSnjd+/Ioyo54lTD7CwzjO3E X-Received: by 2002:a50:8d16:0:b0:553:dcc7:f797 with SMTP id s22-20020a508d16000000b00553dcc7f797mr5180293eds.56.1703841652220; Fri, 29 Dec 2023 01:20:52 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1703841652; cv=none; d=google.com; s=arc-20160816; b=UPh81gqQF4PGgMehk82ySufe4gRHoEz6IKWXdnLvhGNloCe4+HNLRBCr2jh04ER9Tl p0F/7nSPyirxYfGTS7KlgJvA7WwJa5Ue8O6bCVx68PK6+A/9aRfqhFdQ2glamMwnpxa0 73luBT9EOilKuqbSTjz7aunhuaaEOasDJXnPKg14VWxE8SJpLivTwBM1/BKWsupx2qnh fhpOFuaN1dflfofXqtQQFMNMOzj7K6USKh649lpOfk3/f+GWU/OPp3rhXUBdJJiz6v2d msNRp42OChNHIum9ihCDSG8Ct51juH7CYF/ueBK0fIdbm3oBUMO27hiVQJgeJocLav7E NLew== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:mime-version:date:to:from:message-id :dkim-signature:delivered-to; bh=VSeOwj7rhvrVqUqLvVNT37UHkCgbuJZ6Jj+h+uxmV04=; fh=HnHYuZ9XgUo86ZRXTLWWmQxhslYEI9B9taZ5X1DLFfc=; b=OZt+A0dk1vNp5owFhpTsROD8F5yQolj74pzDcVhNMsIxs+k1nkgOie3co1FJvHtVx9 6ZdX5R8eIEJL1RmmGelwVMQAHCrIRJAgVWAQeCwz8as7HSWvwsOgAYFnzPnOE/TD2Tge xEB2vfkTE1VqglgbnkIJih04WhPaiMBoc6hzc9UB1vqiqXQono0Q7Uktyoq8xE2wU0yl wVh8WMM399AuTt/j4v6jn+9QdGmT7lbJyOKQT+4IjLt5+lfg5C0RS2GJcyiLdmqCIouK Ih3YsSrinU9wsVFVGDlUSqwrHl6bZ0XHAYji+sgcuFqM2mgCQxBUWCSGFwx2F2pCvTS5 tXFQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@foxmail.com header.s=s201512 header.b=L37y4pcO; 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=NONE dis=NONE) header.from=foxmail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id ch8-20020a0564021bc800b00554692561c1si6189430edb.242.2023.12.29.01.20.51; Fri, 29 Dec 2023 01:20: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=@foxmail.com header.s=s201512 header.b=L37y4pcO; 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=NONE dis=NONE) header.from=foxmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 41C1568CC2F; Fri, 29 Dec 2023 11:20:36 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from out203-205-251-59.mail.qq.com (out203-205-251-59.mail.qq.com [203.205.251.59]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id B707068CB32 for ; Fri, 29 Dec 2023 11:20:27 +0200 (EET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foxmail.com; s=s201512; t=1703841618; bh=SQmcksZNgmJwQwbgpzgOXBVlFwJ4RmaaF0ns0mHu6rU=; h=From:To:Cc:Subject:Date; b=L37y4pcOqyYCOEfXvVBuf+SGJ1F4ynVqoNHob7c76I4Pkr6cMBHBD+shVUPeNibCe Fq9jgpgP+BUZodITkSewTeWEXWNX6iZjYHJfDRXekr1QvlYhphGpG8ZbRzyEV6555c PstatT8Ixgrkf1E8DDjPoCObZoELePM+9k5De1GE= Received: from localhost.localdomain ([113.108.77.68]) by newxmesmtplogicsvrszc5-0.qq.com (NewEsmtp) with SMTP id 5108CC63; Fri, 29 Dec 2023 17:20:16 +0800 X-QQ-mid: xmsmtpt1703841616tnwj3260w Message-ID: X-QQ-XMAILINFO: NUygYfydBsqcPehs4QnCVIb3qm5t1l3eey/tdW9bC0sSEQtzKReV2WNrsX4rhQ tL4XyM0fCZI4mz7bulfiHbtGl2iOVQJwYNpOuOLmnpAPrfFi7ezpMrYpCUUSLlhIuEZSZQ/Za00Z qOmGJWIjcDAj1PsCU3i4nHh6YLyP1z28uaKgMAtmQqAI49OQo07RtprEC890fIPCI/s8KHwrvqz5 kStCi4tHgaGg6v79CTfXltgRVoU4tLNFWwAmd5Um4YKEde12Vqq6e0B3cVmcuzJ568JkJX4sm8Kv nKh6hk8eJ0R76f823gKWoPCE5mZrcEM2KrAxx8lTROjCDimp2uXaOejAT6yq3VJJqAPQ0A7XaOjy XLoYZ4u+8lSC6d6n3Dm9/VJSu85B7/W4UIA1N2WJHPuZt43jPQAo0lJSOB09spUhWnoFIG1yH9ae kKxjKauwGNqeh/UwNVxLIhAu6zgBKOOvfme79ZL8l9wrfaXCJtw8Rc3PKn/3zZudnnhRq3l52w0+ c/onbS/kadqbKHeDAgB7YeCFsnC3ntaa768tIGvCUOHwaRC2uv+0yt9fTFObg3d9+5OYqYq60L78 Ky2KR/qPz8sSYvyiMvIJc5NfYMV3bfG1/JHLFo+RLC04guBxrwsGGA4s8e2sBaEbfA6Zuqig7MEH 0Ztfs1hLZPgTELQAuilG+55EtJG5caEu3I4y/lY1xOCwN2XQLC5gd6WUG2D5tdPeoRiQOFkQnLrM WFzFfZFhlX/oABOYKERVv8XnSRR78T5cxtQQoeZdf0QXcoXlC9WCK81sY+7ykGby1SFSJ6KdTtK0 bGfGd8JrEH2C31zrHhCEXMl6Qch6Pf7RhpbPJBa8RKWxFdBGWU3mOwCTKVSd4FFvaCfe/3sr64ib 3Q+Uz243WlK0pIrKFNh3A8QePieVHE3/U/aOSCQe3o0dZ972z1esq/w6Pu2emXRTJtAwQffSvVkB OIXCk4uOAmabPjojTyfNxIm6FqFjRnVfdZqCi/VLkNzaBa+XsNvQ== X-QQ-XMRINFO: MPJ6Tf5t3I/ycC2BItcBVIA= From: Zhao Zhili To: ffmpeg-devel@ffmpeg.org Date: Sat, 30 Dec 2023 01:20:15 +0800 X-OQ-MSGID: <20231229172016.729510-1-quinkblack@foxmail.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 1/2] avcodec/mpegutils: make debug_info2 thread safe 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: Zhao Zhili Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: sxW4PSFlxKGE From: Zhao Zhili --- libavcodec/mpegutils.c | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/libavcodec/mpegutils.c b/libavcodec/mpegutils.c index 5e76d7ac66..a565773c5e 100644 --- a/libavcodec/mpegutils.c +++ b/libavcodec/mpegutils.c @@ -20,6 +20,7 @@ #include +#include "libavutil/bprint.h" #include "libavutil/common.h" #include "libavutil/emms.h" #include "libavutil/frame.h" @@ -250,31 +251,41 @@ void ff_print_debug_info2(AVCodecContext *avctx, AVFrame *pict, if (avctx->debug & (FF_DEBUG_SKIP | FF_DEBUG_QP | FF_DEBUG_MB_TYPE)) { int x,y; + AVBPrint buf; + char *str = NULL; + int n; av_log(avctx, AV_LOG_DEBUG, "New frame, type: %c\n", av_get_picture_type_char(pict->pict_type)); for (y = 0; y < mb_height; y++) { + av_bprint_init(&buf, 1, AV_BPRINT_SIZE_UNLIMITED); for (x = 0; x < mb_width; x++) { if (avctx->debug & FF_DEBUG_SKIP) { int count = mbskip_table ? mbskip_table[x + y * mb_stride] : 0; if (count > 9) count = 9; - av_log(avctx, AV_LOG_DEBUG, "%1d", count); + av_bprintf(&buf, "%1d", count); } if (avctx->debug & FF_DEBUG_QP) { - av_log(avctx, AV_LOG_DEBUG, "%2d", - qscale_table[x + y * mb_stride]); + av_bprintf(&buf, "%2d", qscale_table[x + y * mb_stride]); } if (avctx->debug & FF_DEBUG_MB_TYPE) { int mb_type = mbtype_table[x + y * mb_stride]; - av_log(avctx, AV_LOG_DEBUG, "%c%c%c", + av_bprintf(&buf, "%c%c%c", get_type_mv_char(mb_type), get_segmentation_char(mb_type), get_interlacement_char(mb_type)); } } - av_log(avctx, AV_LOG_DEBUG, "\n"); + + n = av_bprint_finalize(&buf, &str); + if (n < 0) { + av_log(avctx, AV_LOG_ERROR, "%s failed, %s\n", __func__, av_err2str(n)); + return; + } + av_log(avctx, AV_LOG_DEBUG, "%s\n", str); + av_freep(&str); } } } From patchwork Fri Dec 29 17:20:16 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zhao Zhili X-Patchwork-Id: 45380 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:6623:b0:194:e134:edd4 with SMTP id n35csp4670677pzh; Fri, 29 Dec 2023 01:20:40 -0800 (PST) X-Google-Smtp-Source: AGHT+IFj1MY99lG62eK2GdkGUdg5RDyDttSjSWUXXuOBkryWSbtGmEHg3tOj1RDj+VmNkAWTQWqR X-Received: by 2002:a17:906:7c54:b0:a26:ad13:e9d9 with SMTP id g20-20020a1709067c5400b00a26ad13e9d9mr5495854ejp.85.1703841640378; Fri, 29 Dec 2023 01:20:40 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1703841640; cv=none; d=google.com; s=arc-20160816; b=mmDbWr3U6gjGRgPk/WM9Y3+cmCu0AoPI5Z7OeWb56RWvju2A9tRE0zKP3bKJEfgPg5 BhmcahiOoUy66rtBXE/pr7beXY6PdluNDGV7Jk3F/wHBTsY/W5ruJ7OLYAeBZwhNZv8Y f5IMNAIOEWMXpB2xNpitpu/jEwVPAe1dwuOWqojL+nIjO/MfjTdaU3rLwmVoWj8+Fv4g iwP0UgLk+KoM4bsMgM/zio6SSnZD/2T52W3O9hMWV306tNDONaxQtiXnfh5HZKsP3fXE ZRFQ/rIeeqJdBoGrfA9XwWfDcorFqRpkTIftvioiinqUmj2bihilJoVgpjxIs4yzCDPt Zuyg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:mime-version:references:in-reply-to:date :to:from:message-id:dkim-signature:delivered-to; bh=d0XCIFwxdK1U+HzAqWR/32r9ARtwRhlJDS+hj5hIMnA=; fh=HnHYuZ9XgUo86ZRXTLWWmQxhslYEI9B9taZ5X1DLFfc=; b=dmJTCsY8o6buTg/yU7OQ39wtH6sTtQL0VzfcBAn/0GGMERdY+1YoeGOzra6AJWLs5D USWwmmjEQ6zOoIon69lxrLBQlq3cBhXUPigOQdr5nwsih1OjMioV2XNL0On7WPhHWXoV kCocwaGH/d49gQeKfHsDJqICj0p4pqNmKjFAY2NOiboOeH/pAcTWL6vRz3MPSQL8hI6A M4w/JueXObtt0loVi27eCE3LcoLkuyRkOOKRfL+mTxQrwv18K7BtPW6Sbz7OEWqJddhn +o05F48YZlWax2qVsjimH3LhbPYEVmprBj5YCr3qieZCDNlITrXzGaJ1Pac+N3Xo0MZV uWpA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@foxmail.com header.s=s201512 header.b=BpE10DAK; 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=NONE dis=NONE) header.from=foxmail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id wj6-20020a170907050600b00a2693a66d02si7350522ejb.251.2023.12.29.01.20.39; Fri, 29 Dec 2023 01:20:40 -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=@foxmail.com header.s=s201512 header.b=BpE10DAK; 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=NONE dis=NONE) header.from=foxmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 07ACA68CD06; Fri, 29 Dec 2023 11:20:35 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from out203-205-251-53.mail.qq.com (out203-205-251-53.mail.qq.com [203.205.251.53]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id B3C0468C4DF for ; Fri, 29 Dec 2023 11:20:27 +0200 (EET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foxmail.com; s=s201512; t=1703841618; bh=yiwYFnNmGscSMym2YGytOfglJ4hlQpGHet/7Vbilm3E=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=BpE10DAKBoHDIbZ+111in12R1S8ut5/R/GaIFhwSBdhPC+KPt2/D1G0cN2YlbHveR Wl11nVqDWIBu+GAVRkoakIojLvelGWHfLbDIhKfFFZ8UUbYpjGqpA3qts2Br82fxng jwrUo3a5ez8izjykITfRvoB+p+tcs2PoXTIDXc6o= Received: from localhost.localdomain ([113.108.77.68]) by newxmesmtplogicsvrszc5-0.qq.com (NewEsmtp) with SMTP id 5108CC63; Fri, 29 Dec 2023 17:20:16 +0800 X-QQ-mid: xmsmtpt1703841617tjme8pzzs Message-ID: X-QQ-XMAILINFO: NkHKfw09D6j8Mr3e6EuYzqu22Zhec5siHAo0XZy9pzgdIuwpZ+UW7G2d/Qe/jB 1RUVnzACwKTNZlOxVRahQg5ZlNYfH62E1rI1Fa+ZKc9USwUG1V910XwAAmciryBG2Y8s+0IsKFeg eABDkCa/NeDvKwRFc5mvJ0+Xk90/bmhSZvMQ/a01eugeFgVUi15qunZ8Awk1NRm/IGqohPM5AhC+ IJc34ElAe+byJ/paLZOgjrXgeP6QCsiqmDOH437AG5kPD0NovRiEWAc+DS+/6yL6SKk0KgPWZZLE DC4ms0VYO0asPb+IGqe0zTOlwrnMAnuVByYaz9k64uTwhaqcDRWa8/gHHg9AO9M/Sn1Ug0TZkY1G dlLcQeHEdzN0w2zsevdVdb/F4hPUwmCIjJUWICgbOUy8adtEnzUxv4L7yfmLOzvKlttkDFF0p3nR oeTe9Msh4Im6F3UpvrXzE6KFdiIS5uUEtyoaK9x2h988PxsqlnSnBOVPd8L2yExWVffzM6tOe8Ge RU4VNPWeJESUaq47Cy7msLDCm2aLFbZ60bNjUg0tAPyYnfS70UekCxoCt9fjZIFGHi1D22v1Plzw EEmJQFq8SwEFjhditA+G5kzMl8Nj82ehPr2DXLZH592MpX/KW6IxGjAMlAdDEsQco2nzkif30yZN AAFWJH7T9A30ymEGWw5H0L9W1+DPFzqD513pLAypKSeINZvwuCc60Q5yUhfLu6fvJBN7RdZ+N7fX /BYqeiE4X8xhHSn45o0lRIR2AIN289gJ45qhDgnoBZtYilL7mpDdTgERSgQay8gVihoqWQWpAv2i tijpmDahOTLUBjIVrzWW66tR6nX6HCToo49ypILYC87KBX/7w46s7ar82wUIAolAVdrlh3p/RNF0 6pqxW8aVkd1hVJUJ/yLQ9yZ+QJ299Z573xe0nCphT+PkOl3QLXrlcAzPfMqVoSZb8i+8vUWq9TW7 8fMLRaUeptwWzI4z/fIl+QB11Ir+ad7++3ZI3J6C0hp2E8dWhK1Q== X-QQ-XMRINFO: MSVp+SPm3vtS1Vd6Y4Mggwc= From: Zhao Zhili To: ffmpeg-devel@ffmpeg.org Date: Sat, 30 Dec 2023 01:20:16 +0800 X-OQ-MSGID: <20231229172016.729510-2-quinkblack@foxmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20231229172016.729510-1-quinkblack@foxmail.com> References: <20231229172016.729510-1-quinkblack@foxmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 2/2] avcodec/mpegutils: print axis in debug_info2 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: Zhao Zhili Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: PI6EmB/nuO4P From: Zhao Zhili For example, ./ffmpeg -nostats -threads 1 -debug qp \ -export_side_data +venc_params \ -i reinit-small_420_9-to-small_420_8.h264 \ -frames 2 \ -f null - New frame, type: B 0 64 128 192 0 313131313131313131313131313129 16 292929292929292929292929292929 32 323232323232323232323232323232 48 323232323232323232323232323232 64 323232323232323232323232323232 80 323232323232323232323232323232 96 323232323030303030303030303030 112 303030303030303030303030303030 128 303030303030303030303030303028 144 313131312929292929292929292929 160 292929292929292929292929292929 176 292929292929292929292929292931 192 312831312631313131312730283131 Signed-off-by: Zhao Zhili --- libavcodec/mpegutils.c | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/libavcodec/mpegutils.c b/libavcodec/mpegutils.c index a565773c5e..fc3e270631 100644 --- a/libavcodec/mpegutils.c +++ b/libavcodec/mpegutils.c @@ -254,12 +254,43 @@ void ff_print_debug_info2(AVCodecContext *avctx, AVFrame *pict, AVBPrint buf; char *str = NULL; int n; + int margin_left; + int x_step; av_log(avctx, AV_LOG_DEBUG, "New frame, type: %c\n", av_get_picture_type_char(pict->pict_type)); + + margin_left = 2; + n = mb_width << 4; + while ((n /= 10)) + margin_left++; + + av_bprint_init(&buf, 1, AV_BPRINT_SIZE_UNLIMITED); + av_bprintf(&buf, "%*s", margin_left, " "); + + n = 0; + if (avctx->debug & FF_DEBUG_SKIP) + n++; + if (avctx->debug & FF_DEBUG_QP) + n += 2; + if (avctx->debug & FF_DEBUG_MB_TYPE) + n += 3; + x_step = (mb_width * 16 > 999) ? 8 : 4; + for (x = 0; x < mb_width; x += x_step) + av_bprintf(&buf, "%-*d", n * x_step, x << 4); + n = av_bprint_finalize(&buf, &str); + if (n < 0) { + av_log(avctx, AV_LOG_ERROR, "%s failed, %s\n", __func__, av_err2str(n)); + return; + } + av_log(avctx, AV_LOG_DEBUG, "%s\n", str); + av_freep(&str); + for (y = 0; y < mb_height; y++) { av_bprint_init(&buf, 1, AV_BPRINT_SIZE_UNLIMITED); for (x = 0; x < mb_width; x++) { + if (x == 0) + av_bprintf(&buf, "%*d ", margin_left - 1, y << 4); if (avctx->debug & FF_DEBUG_SKIP) { int count = mbskip_table ? mbskip_table[x + y * mb_stride] : 0; if (count > 9)