From patchwork Tue Apr 10 17:20:07 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Aman Karmani X-Patchwork-Id: 8377 Delivered-To: ffmpegpatchwork@gmail.com Received: by 10.2.1.70 with SMTP id c67csp1317461jad; Tue, 10 Apr 2018 10:20:27 -0700 (PDT) X-Google-Smtp-Source: AIpwx49fyJF4lRc2+HYpclYqVr5G4HI9ifR+w6GsSbvhVBs9lrjrhdNI9GoXCFgidq7d8VXbGC/S X-Received: by 10.223.224.200 with SMTP id e8mr968312wri.149.1523380827358; Tue, 10 Apr 2018 10:20:27 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1523380827; cv=none; d=google.com; s=arc-20160816; b=BhQYe/Q596QeyqWQx/imu9t+qZbj11A5vzI84/DKMEsMeREbvpbrlkF6Ajm+4f3hYh l2gB8tV2YNHEIru4YHw+UcuMOeafTHYCXux5HymiYwk50w096T2HjVFH9bAQF5bkV5Vh dID5kKk8DOCyiIWW8WsQlJ5vHYIBsFzWV42mReT653gBvtZCPxglz3+Wxc1pbYy0NW/q uLShlagU+Z0r1oF1p7SNw2lBBzDuLCl38fKFyTXuct1bl/wRyCKXyjvjRjBJP+4M4+zf KDlKSJ2rgYgmamiJSpllN7oaP5PG1GWQ1xEc1mJQcDiuk0apb6MGxRituqhLcUU9Jp8j QC1Q== 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:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:message-id:date:to:from:dkim-signature :delivered-to:arc-authentication-results; bh=uEyDUMY3gl9VXPzTSUlC8/viR8ZsscD97HPC9KjRTjQ=; b=Vrgtp9EAvDqckohmvxjt9FzCgMToWO2md4spwrnUyrqS+VkFDOmmpfjp+wdxOlW4rf G3D6ZD2UA7AQka6xDpp6mTorIQ31/bBy1zFhMSXR+Tj1B6v15bl0BVrzO+a6y4xKHYx7 wFEqucW/VQTMbgRCnNGWdC3/JBgJZrTYQgu/4sPfvi3Y+y9Q07j8S9qxV6EVFMQJ1Yaf tV84aP9SCuuf1UBGpoAIGRv/MtSFGJJtK8DU0fdpYdcx//3MfVAjSy/lcjJZXY2/r5Lo FRqbGWLtwCBOgg+//54aBl1PavjFHIe/Tstb3uET7Do8wXhRatUVXA5JNhirR2Yfs7Xa Q8lg== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@tmm1-net.20150623.gappssmtp.com header.s=20150623 header.b=2HPDCvOl; 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 d20si2131615wrc.177.2018.04.10.10.20.26; Tue, 10 Apr 2018 10:20:27 -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; dkim=neutral (body hash did not verify) header.i=@tmm1-net.20150623.gappssmtp.com header.s=20150623 header.b=2HPDCvOl; 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 E6C2168A09E; Tue, 10 Apr 2018 20:20:01 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-pl0-f44.google.com (mail-pl0-f44.google.com [209.85.160.44]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id C9A7768A08A for ; Tue, 10 Apr 2018 20:19:54 +0300 (EEST) Received: by mail-pl0-f44.google.com with SMTP id c7-v6so4687864plr.5 for ; Tue, 10 Apr 2018 10:20:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tmm1-net.20150623.gappssmtp.com; s=20150623; h=sender:from:to:cc:subject:date:message-id; bh=wH0hKVZVoQjFLzaW2+AFG5bfHjgQJHWL07WKFPVK8h4=; b=2HPDCvOlhlG8gqx4BvQwF21KXrF3h47XOWhmhp9zfJGIRid0Oes3z/S9M/KXAKxGB3 62OZD6VNfh1Z8/ReLtCgf3UIhJ9Q7MgU143In8J86VWiBjtp7QLcn20a+0Gcorva+mwk ulsFJsK4tKp1qUS7Bf6R8UUI1aEJLV7yCWhxoyq/1fEKo2iqqOCOVak5nqG8HQeBRTmx 12dHmNWFqspna9XPsk+DM/qFbDHIRuGVMYNYzCuAGr6xLfQCb8WFDFE6B25thEyh7tki I7EX8onvtot5f6VK2u8rLQh3eK7dceINO7XikCs5dEkepVqJXlCAJD9XDFBB88ndE14G IBMA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id; bh=wH0hKVZVoQjFLzaW2+AFG5bfHjgQJHWL07WKFPVK8h4=; b=mM/qxDBQnSvXe/OsIWn8YnuYsU/Q7DYzRhde4w9fwOUmdvV1chyo+ZXpNV2JDTTQHy tP2AGt4l6jLkOvpWcAEWfIqq6p6qvLOrd3JIqBFynycQdzAYOIqgqZB+LEDy03yl+B+P J/pIDVaSQ2bT+ty8hlFR5x9dazcDUxnkCZmh4Y0eD+hs6LieTc+DShL/U1aj7hkDoSfo Mg1mupB8NyRBWKJVEkWapdDf4QLYCZE2/O/UO01qnmzwyAkvPaQXYM1O/T2vp+YAGAel 5WlO/mf7cVIRMwMjKsjI4CPyt30gl54ba0tBvV/4UuEanWkUdOPhP6nM23gZG9opbq3V NPug== X-Gm-Message-State: ALQs6tD9IHvLKnof29nTe7RoTC4pxxI/NwOjJIz7sHPSOBxE5BJlzx7p oQI4NTavaflU8CB2K+6SUWQX3F5a X-Received: by 2002:a17:902:8685:: with SMTP id g5-v6mr1409804plo.46.1523380816867; Tue, 10 Apr 2018 10:20:16 -0700 (PDT) Received: from localhost.localdomain (c-69-181-54-242.hsd1.ca.comcast.net. [69.181.54.242]) by smtp.gmail.com with ESMTPSA id v23sm5869548pfn.65.2018.04.10.10.20.15 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Tue, 10 Apr 2018 10:20:15 -0700 (PDT) From: Aman Gupta To: ffmpeg-devel@ffmpeg.org Date: Tue, 10 Apr 2018 10:20:07 -0700 Message-Id: <20180410172007.13360-1-ffmpeg@tmm1.net> X-Mailer: git-send-email 2.14.2 Subject: [FFmpeg-devel] [PATCH] avcodec/mpegpicture: guard "stride changed" failures against unknown uvlinesize X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 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: Aman Gupta MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" From: Aman Gupta Before adding uvlinesize check, I was seeing failures decoding some samples (shown with extra logging added): [mpeg2video @ 0x7fa193818c00] get_buffer() failed (stride changed: linesize=1280/1280 uvlinesize=0/640) [mpeg2video @ 0x7fa193818c00] get_buffer() failed (stride changed: linesize=1280/1280 uvlinesize=0/640) --- libavcodec/mpegpicture.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/libavcodec/mpegpicture.c b/libavcodec/mpegpicture.c index 2be670cdbc..80898c161c 100644 --- a/libavcodec/mpegpicture.c +++ b/libavcodec/mpegpicture.c @@ -148,10 +148,13 @@ static int alloc_frame_buffer(AVCodecContext *avctx, Picture *pic, } } - if (linesize && (linesize != pic->f->linesize[0] || - uvlinesize != pic->f->linesize[1])) { + if (linesize && uvlinesize && + (linesize != pic->f->linesize[0] || + uvlinesize != pic->f->linesize[1])) { av_log(avctx, AV_LOG_ERROR, - "get_buffer() failed (stride changed)\n"); + "get_buffer() failed (stride changed: linesize=%d/%d uvlinesize=%d/%d)\n", + linesize, pic->f->linesize[0], + uvlinesize, pic->f->linesize[1]); ff_mpeg_unref_picture(avctx, pic); return -1; }