From patchwork Wed Nov 2 15:48:58 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Vittorio Giovara X-Patchwork-Id: 1260 Delivered-To: ffmpegpatchwork@gmail.com Received: by 10.103.90.1 with SMTP id o1csp342317vsb; Wed, 2 Nov 2016 09:05:41 -0700 (PDT) X-Received: by 10.28.26.80 with SMTP id a77mr3550145wma.31.1478102741086; Wed, 02 Nov 2016 09:05:41 -0700 (PDT) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id o6si3388437wjg.73.2016.11.02.09.05.40; Wed, 02 Nov 2016 09:05:41 -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=@gmail.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; dmarc=fail (p=NONE dis=NONE) header.from=gmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id D28D1689A7A; Wed, 2 Nov 2016 18:05:35 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qt0-f193.google.com (mail-qt0-f193.google.com [209.85.216.193]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 181C2689A7A for ; Wed, 2 Nov 2016 18:05:30 +0200 (EET) Received: by mail-qt0-f193.google.com with SMTP id m48so755504qta.2 for ; Wed, 02 Nov 2016 09:05:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:subject:date:message-id:in-reply-to:references; bh=vsq/43ZEphbZUUdCF1DFZNdGvrKqg/IlbaYr/qCfkNk=; b=oFG0zP5NCRCxmiWVjpmCQNfbP3eWkPx7hLmbN8JwGbRZeFFEE2rbYgDZ2Hx1663xEk Li3zee4ZhwCkt9rxfkyp8xOZoIFTVuE1cLNyKcrRqrwsb5qmPMbPs4C22InDUuvTQ95l hrAI8nd+G+j4lwCbT8VkHA/7r2h6BJ5ZwXeMMNmwdqK9Z1ne/aaCDe5vXZaVIGLUCEY8 GE7P1UTATIF9EsGee6WZzpAD8YewHTrPJCaWWsgEBfl91ouhjOnyhROG/hDE2GFE7kDY nojor/LW1o3qOCCG8fwjlKV+iZmft8M4cilI8Vol1nYX5NvdmZQWJwFsdDASHmN7awL0 OkaA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references; bh=vsq/43ZEphbZUUdCF1DFZNdGvrKqg/IlbaYr/qCfkNk=; b=LRgGD7twWvcS3wmZXm8cfE5KG8voIvnKs1PaQKA5eQ+7W29/pE74nTNm2P2tZ9F0vl GcfLD/EF1iZr+z5c8r35fa0IFu6VhfSXHPkrCIonOpPvRPe41Otm47pCI59vRQu/IgcG BBXbwnhMrIsUzZf6jTl6IwE4WFxF+clCd+ySCbWwFEJWdKjrBTxwp/ZDOaFrehrw47bj onPYllpBdDYp9eW/+/2C8nMyOzZI6Ib3VU/S2woOkJgFmmhZoeRmz/OLG+ygE5DIy4iQ UfZi9wH549hK8UjWdi/g9kIIutc1/lY9ylmJk9ombmU1Gax0V1HO7upjVrNEqt5PEHF8 3TzQ== X-Gm-Message-State: ABUngvc4HqJojC+Bxtyw9Tibr52hdzIqxwZ96+uRaTcryhR4aEWOzGZ5L9eSbqqRJQ8pxw== X-Received: by 10.200.43.5 with SMTP id 5mr3895198qtu.145.1478101740904; Wed, 02 Nov 2016 08:49:00 -0700 (PDT) Received: from vimacbookpro.vimeows.com (nyv-exweb.iac.com. [216.112.252.10]) by smtp.gmail.com with ESMTPSA id d20sm1397307qtb.41.2016.11.02.08.49.00 for (version=TLS1 cipher=AES128-SHA bits=128/128); Wed, 02 Nov 2016 08:49:00 -0700 (PDT) From: Vittorio Giovara To: ffmpeg-devel@ffmpeg.org Date: Wed, 2 Nov 2016 11:48:58 -0400 Message-Id: <20161102154858.28628-2-vittorio.giovara@gmail.com> X-Mailer: git-send-email 2.10.0 In-Reply-To: <20161102154858.28628-1-vittorio.giovara@gmail.com> References: <20161102154858.28628-1-vittorio.giovara@gmail.com> Subject: [FFmpeg-devel] [PATCH 2/2] hevc: Support extradata changes 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 MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Signed-off-by: Vittorio Giovara --- Please CC. Vittorio libavcodec/hevc.c | 18 ++++++++++++++++++ libavformat/mov.c | 4 ---- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/libavcodec/hevc.c b/libavcodec/hevc.c index 29e0d49..b50120e 100644 --- a/libavcodec/hevc.c +++ b/libavcodec/hevc.c @@ -3051,6 +3051,8 @@ static int hevc_decode_frame(AVCodecContext *avctx, void *data, int *got_output, AVPacket *avpkt) { int ret; + int new_extradata_size; + uint8_t *new_extradata; HEVCContext *s = avctx->priv_data; if (!avpkt->size) { @@ -3062,6 +3064,22 @@ static int hevc_decode_frame(AVCodecContext *avctx, void *data, int *got_output, return 0; } + new_extradata_size = 0; + new_extradata = av_packet_get_side_data(avpkt, AV_PKT_DATA_NEW_EXTRADATA, + &new_extradata_size); + if (new_extradata_size > 0 && new_extradata) { + if (new_extradata_size > avctx->extradata_size) { + avctx->extradata = av_realloc(avctx->extradata, new_extradata_size); + if (!avctx->extradata) + return AVERROR(ENOMEM); + } + avctx->extradata_size = new_extradata_size; + memcpy(avctx->extradata, new_extradata, new_extradata_size); + ret = hevc_decode_extradata(s); + if (ret < 0) + return ret; + } + s->ref = NULL; ret = decode_nal_units(s, avpkt->data, avpkt->size); if (ret < 0) diff --git a/libavformat/mov.c b/libavformat/mov.c index 4222088..24c75ab 100644 --- a/libavformat/mov.c +++ b/libavformat/mov.c @@ -2212,10 +2212,6 @@ static int mov_skip_multiple_stsd(MOVContext *c, AVIOContext *pb, avio_skip(pb, size); return 1; } - if ( codec_tag == AV_RL32("hvc1") || - codec_tag == AV_RL32("hev1") - ) - av_log(c->fc, AV_LOG_WARNING, "Concatenated H.264 or H.265 might not play correctly.\n"); return 0; }