From patchwork Tue Nov 14 18:04:02 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Aman Karmani X-Patchwork-Id: 6052 Delivered-To: ffmpegpatchwork@gmail.com Received: by 10.2.161.94 with SMTP id m30csp3622874jah; Tue, 14 Nov 2017 10:04:24 -0800 (PST) X-Google-Smtp-Source: AGs4zMYy2g5a2mzIjpPn/CrciES7RCXRbcqoqpJKM4QQn+r2M4WvMZnv5wXe6UPAszhDyoVAU2S9 X-Received: by 10.223.145.41 with SMTP id j38mr9823859wrj.133.1510682664714; Tue, 14 Nov 2017 10:04:24 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1510682664; cv=none; d=google.com; s=arc-20160816; b=iyvyk3CGzFhTymTXHhklJr8mOOsmv4WcXc5z6kOU6BPCiaRZqRxP/w1jRpSv54yndm aYPJuP/Wtngo5WjXcjc+a9X6rVpLGnaXEubD03hCnkRR8MwnYN5ubQa7eaeKFKT4g3oU wxKIV9uX5Mq4DrSVMkDmKgSIc3cTC4hv4hpTpDID3ISvZ54hSHz1bpfYyVEJjMiTNEhZ j4Dj0Frnn8wYVIiULlxDsRZW+Ft3FB+ywYx5vHQOyKII2NyOgqEz3/ba6fDJtXKr4PGy 84v1KPYV/TEZWSBVCpBZT/9XrlZKyqj39jYjx0YunPAv1p/18dovONMMClpvhZnPuf1j COrQ== 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:references:in-reply-to:message-id:date :to:from:dkim-signature:delivered-to:arc-authentication-results; bh=UmCE55+lm3NKAmmEoZak+/dJ5Xg0tmJOYYzMLsQxIKk=; b=it65cSXQ46n/mWC8EGpD742/aIDMSOZYj6NFIsdQo1ZwvbPiZe4tbaRdpiX2YPAjdZ rZrUaTnx27sp8qQ4zUk/Nyoj1IELn0OCRzCR7QjMBGKu8G7P7cGXnPofuL0aj0/PFF1L pCPDsDmnR5O+KErDaa2aE4ZV+f3RXLaBQ7lVtnTIFp0VX2IsGHs+6zOiMDEmonsob1lS zGQONylv6RU7XOVAU7EZ7Dt99KOfZ6JuDDeTp5j7DYAcwrYFXGW+bD8D6YF9+SI32ZtY xlibNvMD7VhHFMPFp5TqX1nIHYcVM+s5wyF7iAnXHh3aN2sJHPRr1RXRvoBF4yXsR3zb hcfA== 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=1NIrCHHb; 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 g14si17177579wra.332.2017.11.14.10.04.24; Tue, 14 Nov 2017 10:04:24 -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=@tmm1-net.20150623.gappssmtp.com header.s=20150623 header.b=1NIrCHHb; 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 2399368A0AD; Tue, 14 Nov 2017 20:04:01 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-pf0-f195.google.com (mail-pf0-f195.google.com [209.85.192.195]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id DD82468A064 for ; Tue, 14 Nov 2017 20:03:53 +0200 (EET) Received: by mail-pf0-f195.google.com with SMTP id m88so7721024pfi.9 for ; Tue, 14 Nov 2017 10:04:09 -0800 (PST) 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:in-reply-to:references; bh=79y5W/vpD+na4QZCCMoswdZjROvwkypGKfdSXJ9ZB7U=; b=1NIrCHHbki4zD0m0pg2z71I3xDTza1V6wiUSL7vR10aeM3RBMYVHMIUKl89923mgsj 7wTak5pSMWa+ai547aHzVf+b9O5/qwItm6+Cn/sp9KphKtHbN6xHlXnBFjbsUqerGdRm W1tu3xdloY/3TjXMtfK4DXdSkdu9E4q5ugAhm7ZxiGj/RkUTRxf5pMLLJu36gOAoPqGy tHPXSSoigEINl5Ek8B2v9pTOPgN6lToeUCzqNiCGbTSwUrn6cEgCULYjBmkjeLr+IXdP KSfDEdozmI7ZfAK+MMa95vMmwzfQy65sP1JP2a14M4NrQf4oT5Tduw8YQzE30Z+xn0eR gHhg== 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 :in-reply-to:references; bh=79y5W/vpD+na4QZCCMoswdZjROvwkypGKfdSXJ9ZB7U=; b=BkoyDQIbgZYbqKdk0EALtuEWUqPOtW7BH+ZiZSPD1hIkPvjt0DiLGU+6+EPxUctz9g ee4fFJFWYyCPyxSAETgeAG5MdtREcGflWnAdZhZQBgK8DOeYemRBsstvCva/QhnOxE1i 8zC3Cdw4GA6o0MxhWcJBgm/Nl88TGhcbbGl+SVFtJu2nioLwJ0HBakGT9LpE2Yc7TJWD X1nqhN0iByCxBXuBrJV415Gi4zMbFKjxNHDHUFCvw+CZ4q0L/dgj4YyzARd32eED+nQq ESjNxR219et0KyBLWMkQpiMhWzlwYYfiVnrTJkgqw+yzouBxquS33LE0Ui3NVvr4I+H8 bEHQ== X-Gm-Message-State: AJaThX4iA16plyOE0uXDYhTEOLN0Qc0elok+NM+b3ejlXF5nkMhF6NKu EppmPUnrqjrfs0VGQaOJ9yTHDgG9 X-Received: by 10.98.135.75 with SMTP id i72mr10650707pfe.106.1510682647178; Tue, 14 Nov 2017 10:04:07 -0800 (PST) Received: from tmm1-imac.local.net (c-73-252-174-83.hsd1.ca.comcast.net. [73.252.174.83]) by smtp.gmail.com with ESMTPSA id y5sm37899823pfk.3.2017.11.14.10.04.06 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Tue, 14 Nov 2017 10:04:06 -0800 (PST) From: Aman Gupta To: ffmpeg-devel@ffmpeg.org Date: Tue, 14 Nov 2017 10:04:02 -0800 Message-Id: <20171114180402.21244-2-ffmpeg@tmm1.net> X-Mailer: git-send-email 2.14.2 In-Reply-To: <20171114180402.21244-1-ffmpeg@tmm1.net> References: <20171114180402.21244-1-ffmpeg@tmm1.net> Subject: [FFmpeg-devel] [PATCH 2/2] avcodec/mpeg12dec: avoid adding PANSCAN side data unless present 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 --- libavcodec/mpeg12dec.c | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/libavcodec/mpeg12dec.c b/libavcodec/mpeg12dec.c index 82bb1286ff..2c96dfa638 100644 --- a/libavcodec/mpeg12dec.c +++ b/libavcodec/mpeg12dec.c @@ -54,6 +54,7 @@ typedef struct Mpeg1Context { int mpeg_enc_ctx_allocated; /* true if decoding context allocated */ int repeat_field; /* true if we must repeat the field */ AVPanScan pan_scan; /* some temporary storage for the panscan */ + int has_pan_scan; AVStereo3D stereo3d; int has_stereo3d; uint8_t *a53_caption; @@ -1458,6 +1459,7 @@ static void mpeg_decode_sequence_display_extension(Mpeg1Context *s1) s1->pan_scan.width = 16 * w; s1->pan_scan.height = 16 * h; + s1->has_pan_scan = 1; if (s->avctx->debug & FF_DEBUG_PICT_INFO) av_log(s->avctx, AV_LOG_DEBUG, "sde w:%d, h:%d\n", w, h); @@ -1489,6 +1491,8 @@ static void mpeg_decode_picture_display_extension(Mpeg1Context *s1) skip_bits(&s->gb, 1); // marker } + s1->has_pan_scan = 1; + if (s->avctx->debug & FF_DEBUG_PICT_INFO) av_log(s->avctx, AV_LOG_DEBUG, "pde (%"PRId16",%"PRId16") (%"PRId16",%"PRId16") (%"PRId16",%"PRId16")\n", @@ -1621,12 +1625,16 @@ static int mpeg_field_start(MpegEncContext *s, const uint8_t *buf, int buf_size) } } - pan_scan = av_frame_new_side_data(s->current_picture_ptr->f, - AV_FRAME_DATA_PANSCAN, - sizeof(s1->pan_scan)); - if (!pan_scan) - return AVERROR(ENOMEM); - memcpy(pan_scan->data, &s1->pan_scan, sizeof(s1->pan_scan)); + if (s1->has_pan_scan) { + pan_scan = av_frame_new_side_data(s->current_picture_ptr->f, + AV_FRAME_DATA_PANSCAN, + sizeof(s1->pan_scan)); + if (!pan_scan) + return AVERROR(ENOMEM); + + memcpy(pan_scan->data, &s1->pan_scan, sizeof(s1->pan_scan)); + s1->has_pan_scan = 0; + } if (s1->a53_caption) { AVFrameSideData *sd = av_frame_new_side_data(