From patchwork Fri Mar 16 22:39:41 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 8011 Delivered-To: ffmpegpatchwork@gmail.com Received: by 10.2.1.70 with SMTP id c67csp45813jad; Fri, 16 Mar 2018 15:40:16 -0700 (PDT) X-Google-Smtp-Source: AG47ELsfIsjMMipOGWe9DBHUlIeqRGectCaU2ZduCTvSkjK0toou8ZTvnpABEDr32D3Tff1PIbC4 X-Received: by 10.28.11.79 with SMTP id 76mr3190974wml.41.1521240016096; Fri, 16 Mar 2018 15:40:16 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1521240016; cv=none; d=google.com; s=arc-20160816; b=tcH9v3/sPLtNEw6Lh3EsYXZIje7cmThLYF2iuFQBwoeicu4i8d/JzELMx/DBynx8vW JEuiT+bJkQi2H/R6rSRvOVuE6iZTtAKdGJg7XWwgqd1ApNXaqVQGEHE/Z9QJFPT1+wQ3 HdGGL9eyoFaSzQxLWK31q0sw9RHQ6yX0i921R2+PuNo8rlTUx0FuRXRk4zGK12qL2lBh 9A/QGQCwuqs0cCxIyR78Waaawoerfs79CPYzKIK+QwOfSKTybUlVHtDxTSziO9Oi9N0v Qedw8PISs1fxtwL4z6CMFKEeKMkexhNBR7l5Cvi4HTrKYSw2koyYaUGJGYYw5eJ7VLBT 0J+w== 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:message-id:date:to:from:dkim-signature :delivered-to:arc-authentication-results; bh=gCyv1yB/wqYfVy1463BMRb3lgYQ2g33EGelbQwG4Yek=; b=UPtICj0sa6lBcC3YLc51evSxLjuQXtv+j1O6/Ksddx7Y+06YFTJQZxySoun/Z77Aw8 ztwFn+dw0EedEMmgRKT2CMfjxVCBJZDvwZj6+T0i2V4w6U8bX4zX9g3pWJ4LzVOgr2iV KmPvQMzEof46Dc5BMiV9gYnbaofE4lAc6QjMHeuED+wnRc/i90oYW0/hHSit1Gssgxrp GT6YQ5kSzH9PI4HE6cjCVyv3YuV7XU4kgm7hVqA9Af6k8Qb6LJmHGy/Tou0IqLuoHlfv nasG+mx7UC1WzkK4liEAZoU7viln9VzRwnZW71DqKMDjnDmCXvdGHyXU399AcxxLN5h0 w+eA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20161025 header.b=LPrzacYv; 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=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id c48si6267407wrg.151.2018.03.16.15.40.15; Fri, 16 Mar 2018 15:40:16 -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 header.s=20161025 header.b=LPrzacYv; 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=QUARANTINE 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 A2F9068A0D3; Sat, 17 Mar 2018 00:40:00 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qk0-f196.google.com (mail-qk0-f196.google.com [209.85.220.196]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 5CDA1689EA6 for ; Sat, 17 Mar 2018 00:39:54 +0200 (EET) Received: by mail-qk0-f196.google.com with SMTP id j73so5304862qke.6 for ; Fri, 16 Mar 2018 15:40:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id; bh=qnZFfWOyKchMzpZeE0FMMWSwUcFBeLTQ8qOFHXBYnUU=; b=LPrzacYvRzwWDt26l/SNLK+m70XsYcRL1ejbMo8ZcyzMb957eR+O7XwdxGsyJWmRyJ u8JMuVUxM4DD/nJhrXqO/xUvcU9lH+aaLPHP/BaZ2Rd7Xjs6n0w0N6ziMj67qoF/vWi5 218YaxyEPkztH2hvmLjEnpMcn8O4gKbxP9M8LCpTyf84MKqsYlEWHhSIB5pkRSycxdgu Kh6Drdq66YwIWgCUWVOw+vF3l4VvLeHKZReqsPJBEfyQb9F8U+sFJGARqpxVP+CgkRCw 44//CSfr21iN19r+6N0n/H5nQhjUAR7jTEhgcFkGsrF+hi7FRw5AZIOxG5HQyF9JW5dt fyrQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id; bh=qnZFfWOyKchMzpZeE0FMMWSwUcFBeLTQ8qOFHXBYnUU=; b=gl5O7/GTnN1q2/WVf0WTr/rNQ2hLTxvTa67qLO5YpYvLD/JZd15F2E56nWPp4bgGJy J6SeGkOS2K9h7qXQeut2ulvsctthpJ8D/tFWg2rR1MO9YZXgvrXDS72ZWWbUA3sGagIB IOz9SEiXuMk8pkwqT09zp58FchG7drjHz8I10NdB22//y74V+TG8b4aXwY1DSOh3Fk7k WbTbioE9OCIWcw/pEKg1WFiJAuCVQcR3qb1s72pPaid5o0xPLYoui3x11+7x7t2VlbBS tg026NVCZZ3Gnc4HL9o35PUbFR9cqK5Z8jLfJGKDyuZl84eElUVCzjH6QNlExzf0KIo3 b9tA== X-Gm-Message-State: AElRT7FAwr5xoHeNdxkVpOcBjCJrjSw/j6/AAAeueb+vukLMMHA731ca tjMaKe8Nyk+EykOz5JPrHhYiPA== X-Received: by 10.55.43.94 with SMTP id r91mr5262495qkh.214.1521240005514; Fri, 16 Mar 2018 15:40:05 -0700 (PDT) Received: from localhost.localdomain ([190.188.171.140]) by smtp.gmail.com with ESMTPSA id l51sm1749903qtl.83.2018.03.16.15.40.04 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 16 Mar 2018 15:40:05 -0700 (PDT) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Fri, 16 Mar 2018 19:39:41 -0300 Message-Id: <20180316223941.1668-1-jamrial@gmail.com> X-Mailer: git-send-email 2.16.2 Subject: [FFmpeg-devel] [PATCH] avcodec/vp9_superframe_split: move the reference in the bsf internal buffer 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" There's no need to allocate a new packet for it. Signed-off-by: James Almer --- libavcodec/vp9_superframe_split_bsf.c | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/libavcodec/vp9_superframe_split_bsf.c b/libavcodec/vp9_superframe_split_bsf.c index 0d2523ebf7..7b6fa38554 100644 --- a/libavcodec/vp9_superframe_split_bsf.c +++ b/libavcodec/vp9_superframe_split_bsf.c @@ -30,7 +30,7 @@ #include "get_bits.h" typedef struct VP9SFSplitContext { - AVPacket *buffer_pkt; + AVPacket buffer_pkt; int nb_frames; int next_frame; @@ -43,13 +43,13 @@ static int vp9_superframe_split_filter(AVBSFContext *ctx, AVPacket *out) VP9SFSplitContext *s = ctx->priv_data; AVPacket *in; int i, j, ret, marker; - int is_superframe = !!s->buffer_pkt; + int is_superframe = !!s->buffer_pkt.data; - if (!s->buffer_pkt) { - ret = ff_bsf_get_packet(ctx, &s->buffer_pkt); + if (!s->buffer_pkt.data) { + ret = ff_bsf_get_packet_ref(ctx, &s->buffer_pkt); if (ret < 0) return ret; - in = s->buffer_pkt; + in = &s->buffer_pkt; marker = in->data[in->size - 1]; if ((marker & 0xe0) == 0xc0) { @@ -90,7 +90,7 @@ static int vp9_superframe_split_filter(AVBSFContext *ctx, AVPacket *out) GetBitContext gb; int profile, invisible = 0; - ret = av_packet_ref(out, s->buffer_pkt); + ret = av_packet_ref(out, &s->buffer_pkt); if (ret < 0) goto fail; @@ -101,7 +101,7 @@ static int vp9_superframe_split_filter(AVBSFContext *ctx, AVPacket *out) s->next_frame++; if (s->next_frame >= s->nb_frames) - av_packet_free(&s->buffer_pkt); + av_packet_unref(&s->buffer_pkt); ret = init_get_bits8(&gb, out->data, out->size); if (ret < 0) @@ -121,20 +121,19 @@ static int vp9_superframe_split_filter(AVBSFContext *ctx, AVPacket *out) out->pts = AV_NOPTS_VALUE; } else { - av_packet_move_ref(out, s->buffer_pkt); - av_packet_free(&s->buffer_pkt); + av_packet_move_ref(out, &s->buffer_pkt); } return 0; fail: - av_packet_free(&s->buffer_pkt); + av_packet_unref(&s->buffer_pkt); return ret; } static void vp9_superframe_split_uninit(AVBSFContext *ctx) { VP9SFSplitContext *s = ctx->priv_data; - av_packet_free(&s->buffer_pkt); + av_packet_unref(&s->buffer_pkt); } const AVBitStreamFilter ff_vp9_superframe_split_bsf = {