From patchwork Fri Sep 3 18:39:12 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Niedermayer X-Patchwork-Id: 29984 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6602:2a4a:0:0:0:0 with SMTP id k10csp1549741iov; Fri, 3 Sep 2021 11:40:35 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxvhOWyUKuGvHKhpHaxY/JLCXs+2BbivJsTU2+Qc72Lo7CXWPjG1NMQb4v2Ue3S+6uM5kg7 X-Received: by 2002:a05:6402:4247:: with SMTP id g7mr360395edb.287.1630694435596; Fri, 03 Sep 2021 11:40:35 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1630694435; cv=none; d=google.com; s=arc-20160816; b=Oe6WrNtjl6ClekIL/kxwyoKefttGkOtmcAE0Ut4VOTwPpTeq9qiSzVIgk0n8Xxc1xe PeK8XTA0kAJEAj+jvyDHoXBrl3uU9CA96Q26nptQRbga77b4Elhl4BIe5/0VfIr7EK+1 G9PL0ryPa1XvunfCI4DzmbetymdZoPH+V/eRywj+oxR4+xw4NKRTHACQnMvUFr6lX5ft hAqAzOlQufAJ1BZzmJKQI/huMdklwVcxyW0iuSOd5N8HVBHDTMUSk47JWWy5MRYAT9c2 QB1F2gj9yrHDvR9OT+1ROlhQH7t6pwlre+yaygMHfV4llfM6anUkHJkmHxWDf6Tv0gD8 mDcg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:mime-version:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:references:in-reply-to:message-id:date :to:from:delivered-to; bh=PmxusA6aTvUgvHQioLH59CPKqnDbeKSeaJji893aYzo=; b=YgBsdng2INbUsLVd/mpws9mcVmUgyojgeGg12aDAiEwbqGQyHp7nDOEZ/acLbK5LjV mXOAb2VxrYZtBqzPnwGyCZ3I7UvsmGw8WNXiAVKtlEUpyuyyVDJjCMqDaoCL42/YAcM7 mfZhdLPjYlloqO5EMvoGc9b8m0gK9t883qAUvn2Ba21T7o4cu+2YqfFThdLlmIfDRa29 zAq8zjFX9bo7A+6aANrPOCmOINQTcl2qE8Wgn0eE/UNSVGKJMyZSs+1Hwi2zsrntCgTG IZNWiJTkxrqJ8CMWgPhplThebrbEBRgUE0CCbOhcukzx2Y34fKrab5RMqc7ueywSN29h tytQ== ARC-Authentication-Results: i=1; mx.google.com; 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 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id be5si275651edb.165.2021.09.03.11.40.34; Fri, 03 Sep 2021 11:40:35 -0700 (PDT) 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; 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 Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 24410689739; Fri, 3 Sep 2021 21:40:21 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from vie01a-dmta-pe03-2.mx.upcmail.net (vie01a-dmta-pe03-2.mx.upcmail.net [62.179.121.161]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 3D93C6898DF for ; Fri, 3 Sep 2021 21:40:14 +0300 (EEST) Received: from [172.31.216.235] (helo=vie01a-pemc-psmtp-pe12.mail.upcmail.net) by vie01a-dmta-pe03.mx.upcmail.net with esmtp (Exim 4.92) (envelope-from ) id 1mME6o-002Qv2-0f for ffmpeg-devel@ffmpeg.org; Fri, 03 Sep 2021 20:40:14 +0200 Received: from localhost ([213.47.68.29]) by vie01a-pemc-psmtp-pe12.mail.upcmail.net with ESMTP id ME5pmg0OUljeHME5qm8BON; Fri, 03 Sep 2021 20:39:14 +0200 X-Env-Mailfrom: michael@niedermayer.cc X-Env-Rcptto: ffmpeg-devel@ffmpeg.org X-SourceIP: 213.47.68.29 X-CNFS-Analysis: v=2.3 cv=BoHjPrf5 c=1 sm=1 tr=0 a=2hcxjKEKjp0CzLx6oWAm4g==:117 a=2hcxjKEKjp0CzLx6oWAm4g==:17 a=MKtGQD3n3ToA:10 a=1oJP67jkp3AA:10 a=GEAsPZ9sns4A:10 a=ZZnuYtJkoWoA:10 a=nZOtpAppAAAA:20 a=S3tN88Qzg1Iq7tDoSIEA:9 a=1fhp2MxaeJtTNGEnv6mo:22 From: Michael Niedermayer To: FFmpeg development discussions and patches Date: Fri, 3 Sep 2021 20:39:12 +0200 Message-Id: <20210903183913.15255-3-michael@niedermayer.cc> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20210903183913.15255-1-michael@niedermayer.cc> References: <20210903183913.15255-1-michael@niedermayer.cc> X-CMAE-Envelope: MS4wfNa+EP0QAWkJEGgxwcDwEfWuN/VwCTQ/sGa5EW15LLjaCgbaRTTifUY+e9ogCbY3JY+5UMdpJR4xcWzWQw6dqL+WuOgA5DUmKq5O664PvYDUAWJ7E+ou 5pVr23z34WYrXPHgILlJrvY9wlpVpVIxZjnPDs+NnEk3ZFtRMJ3nB1ti Subject: [FFmpeg-devel] [PATCH 3/4] avcodec/mpegutils: consolidate single byte av_log() 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 MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: mXl+k4JyToOm Fixes: Timeout (56sec -> 15sec) Fixes: 37141/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_MPEG4_fuzzer-6192122867875840 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer --- libavcodec/mpegutils.c | 56 ++++++++++++++++++++++++------------------ 1 file changed, 32 insertions(+), 24 deletions(-) diff --git a/libavcodec/mpegutils.c b/libavcodec/mpegutils.c index e5105ecc58..e91c554781 100644 --- a/libavcodec/mpegutils.c +++ b/libavcodec/mpegutils.c @@ -187,7 +187,6 @@ void ff_print_debug_info2(AVCodecContext *avctx, AVFrame *pict, uint8_t *mbskip_ av_freep(&mvs); } - /* TODO: export all the following to make them accessible for users (and filters) */ if (avctx->hwaccel || !mbtype_table) return; @@ -195,71 +194,80 @@ void ff_print_debug_info2(AVCodecContext *avctx, AVFrame *pict, uint8_t *mbskip_ if (avctx->debug & (FF_DEBUG_SKIP | FF_DEBUG_QP | FF_DEBUG_MB_TYPE)) { int x,y; +#define MB_STRING_SIZE 6 + char *mbstring = av_malloc(MB_STRING_SIZE * mb_width + 1); + if (!mbstring) + return; 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++) { + char *mbs = mbstring; for (x = 0; x < mb_width; x++) { + av_assert0(mbs - mbstring <= MB_STRING_SIZE * 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); + *mbs++ = '0' + count; } if (avctx->debug & FF_DEBUG_QP) { - av_log(avctx, AV_LOG_DEBUG, "%2d", - qscale_table[x + y * mb_stride]); + int q = qscale_table[x + y * mb_stride]; + *mbs++ = '0' + q/10; + *mbs++ = '0' + q%10; } if (avctx->debug & FF_DEBUG_MB_TYPE) { int mb_type = mbtype_table[x + y * mb_stride]; // Type & MV direction if (IS_PCM(mb_type)) - av_log(avctx, AV_LOG_DEBUG, "P"); + *mbs++ = 'P'; else if (IS_INTRA(mb_type) && IS_ACPRED(mb_type)) - av_log(avctx, AV_LOG_DEBUG, "A"); + *mbs++ = 'A'; else if (IS_INTRA4x4(mb_type)) - av_log(avctx, AV_LOG_DEBUG, "i"); + *mbs++ = 'i'; else if (IS_INTRA16x16(mb_type)) - av_log(avctx, AV_LOG_DEBUG, "I"); + *mbs++ = 'I'; else if (IS_DIRECT(mb_type) && IS_SKIP(mb_type)) - av_log(avctx, AV_LOG_DEBUG, "d"); + *mbs++ = 'd'; else if (IS_DIRECT(mb_type)) - av_log(avctx, AV_LOG_DEBUG, "D"); + *mbs++ = 'D'; else if (IS_GMC(mb_type) && IS_SKIP(mb_type)) - av_log(avctx, AV_LOG_DEBUG, "g"); + *mbs++ = 'g'; else if (IS_GMC(mb_type)) - av_log(avctx, AV_LOG_DEBUG, "G"); + *mbs++ = 'G'; else if (IS_SKIP(mb_type)) - av_log(avctx, AV_LOG_DEBUG, "S"); + *mbs++ = 'S'; else if (!USES_LIST(mb_type, 1)) - av_log(avctx, AV_LOG_DEBUG, ">"); + *mbs++ = '>'; else if (!USES_LIST(mb_type, 0)) - av_log(avctx, AV_LOG_DEBUG, "<"); + *mbs++ = '<'; else { av_assert2(USES_LIST(mb_type, 0) && USES_LIST(mb_type, 1)); - av_log(avctx, AV_LOG_DEBUG, "X"); + *mbs++ = 'X'; } // segmentation if (IS_8X8(mb_type)) - av_log(avctx, AV_LOG_DEBUG, "+"); + *mbs++ = '+'; else if (IS_16X8(mb_type)) - av_log(avctx, AV_LOG_DEBUG, "-"); + *mbs++ = '-'; else if (IS_8X16(mb_type)) - av_log(avctx, AV_LOG_DEBUG, "|"); + *mbs++ = '|'; else if (IS_INTRA(mb_type) || IS_16X16(mb_type)) - av_log(avctx, AV_LOG_DEBUG, " "); + *mbs++ = ' '; else - av_log(avctx, AV_LOG_DEBUG, "?"); + *mbs++ = '?'; if (IS_INTERLACED(mb_type)) - av_log(avctx, AV_LOG_DEBUG, "="); + *mbs++ = '='; else - av_log(avctx, AV_LOG_DEBUG, " "); + *mbs++ = ' '; } } - av_log(avctx, AV_LOG_DEBUG, "\n"); + *mbs++ = 0; + av_log(avctx, AV_LOG_DEBUG, "%s\n", mbstring); } + av_freep(&mbstring); } }