From patchwork Wed Jul 8 01:29:47 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 20866 Return-Path: X-Original-To: patchwork@ffaux-bg.ffmpeg.org Delivered-To: patchwork@ffaux-bg.ffmpeg.org Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by ffaux.localdomain (Postfix) with ESMTP id 9B60D44BD3E for ; Wed, 8 Jul 2020 04:38:04 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 73C5468A295; Wed, 8 Jul 2020 04:38:04 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qk1-f193.google.com (mail-qk1-f193.google.com [209.85.222.193]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id D120A68A295 for ; Wed, 8 Jul 2020 04:37:57 +0300 (EEST) Received: by mail-qk1-f193.google.com with SMTP id k18so40091584qke.4 for ; Tue, 07 Jul 2020 18:37:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=IyGJKjM2Rb56ZPcqzlUXE7zBub3klkHSBnYXuAChi4k=; b=odXtqfaD0Yc7Kiv6OBO+lSu/qNQZRKgzO1jesCOuZ0BPeSJNvrLSWdFSRLoz8lxw3u FF4ert5O0ppJ7DfXEsJiTi4lU1XPWeXv4ENMXt9eTqokfjRkkt4ioT/ourv3mGVMlAHh NOOGwXuFXNUKucwIKgueRqUtipT3CBWo3Pa4WetTEzNFCc8A3v2hPpsq54nuqy3giozT Dm9sxirHSzHFxEAVMDdnRJzH3VnQoj7we5UkQ2eD0j8m46yn/gzSsZm5VqV8tBWOPIW8 tNenaOs8FtDp82Tn5Y4xwhU+eycadhxQIdnU801y/ATt9mLw/MKJXw4VN4QaCwoCa4A5 Ttvg== 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:in-reply-to :references:mime-version:content-transfer-encoding; bh=IyGJKjM2Rb56ZPcqzlUXE7zBub3klkHSBnYXuAChi4k=; b=GJgDPhHzm3z2cMF1YikNnwyiwtwJRmOqJqbVnJd291JvAErRpZg4bxD8/dk317lNCj lz38AMuCXtEOBWskXRUm+LUgWPjGseB1emogpB/VRik1wijV6bz1BJHQXZZXU2CnoJWV YjQN1aGktsMThxcn68VUA0J4Jd2JJIPLxhbkg237JB3BG6SpKZWfLSN0lIo0z4QT24Oc xgWhRZWflDNyY6m+j/0v9Jn++YoY3zwjgGzo9HUbQ6HgJvq1CtBoS5AhJhX2wmW2jJIY FBkaRR0PZPi3rZYTuZdhhuosOXKL81FAU1P0+cCBH4KMe/mu4ZChCmraTUZynLQnQEah WOJw== X-Gm-Message-State: AOAM533pUFu6nEO4c6rwAqBQoIxbHnY6YdWcDC/XPw9J2s+UGOF5G2xG sJxTPO6HIDA0NgQDh2OYvTmNfUxs6Mo= X-Google-Smtp-Source: ABdhPJyw05+SyiTPwT7Xctu+DBCr2skMuDgZ+PsQufleYT5J6OY1gLKZ1J4U//VvYvxH9YJ7P3un8w== X-Received: by 2002:a05:620a:6c9:: with SMTP id 9mr53213868qky.271.1594171820363; Tue, 07 Jul 2020 18:30:20 -0700 (PDT) Received: from localhost.localdomain ([191.84.244.216]) by smtp.gmail.com with ESMTPSA id y40sm29275177qtc.29.2020.07.07.18.30.18 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 07 Jul 2020 18:30:19 -0700 (PDT) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Tue, 7 Jul 2020 22:29:47 -0300 Message-Id: <20200708012949.13522-2-jamrial@gmail.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20200708012949.13522-1-jamrial@gmail.com> References: <20200708012949.13522-1-jamrial@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 2/4] avcodec/av1_frame_merge_bsf: Use separate contexts for reading/writing 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Based on code from 235a5734e0 Signed-off-by: James Almer --- libavcodec/av1_frame_merge_bsf.c | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/libavcodec/av1_frame_merge_bsf.c b/libavcodec/av1_frame_merge_bsf.c index baea5596d7..fce5bdb67e 100644 --- a/libavcodec/av1_frame_merge_bsf.c +++ b/libavcodec/av1_frame_merge_bsf.c @@ -24,7 +24,8 @@ #include "cbs_av1.h" typedef struct AV1FMergeContext { - CodedBitstreamContext *cbc; + CodedBitstreamContext *input; + CodedBitstreamContext *output; CodedBitstreamFragment frag[2]; AVPacket *pkt, *in; int idx; @@ -54,7 +55,7 @@ static int av1_frame_merge_filter(AVBSFContext *bsf, AVPacket *out) return err; } - err = ff_cbs_read_packet(ctx->cbc, frag, in); + err = ff_cbs_read_packet(ctx->input, frag, in); if (err < 0) { av_log(bsf, AV_LOG_ERROR, "Failed to read packet.\n"); goto fail; @@ -82,7 +83,7 @@ static int av1_frame_merge_filter(AVBSFContext *bsf, AVPacket *out) if (tu->nb_units > 0 && frag->units[0].type == AV1_OBU_TEMPORAL_DELIMITER) { eof: - err = ff_cbs_write_packet(ctx->cbc, buffer_pkt, tu); + err = ff_cbs_write_packet(ctx->output, buffer_pkt, tu); if (err < 0) { av_log(bsf, AV_LOG_ERROR, "Failed to write packet.\n"); goto fail; @@ -120,13 +121,18 @@ fail: static int av1_frame_merge_init(AVBSFContext *bsf) { AV1FMergeContext *ctx = bsf->priv_data; + int err; ctx->in = av_packet_alloc(); ctx->pkt = av_packet_alloc(); if (!ctx->in || !ctx->pkt) return AVERROR(ENOMEM); - return ff_cbs_init(&ctx->cbc, AV_CODEC_ID_AV1, bsf); + err = ff_cbs_init(&ctx->input, AV_CODEC_ID_AV1, bsf); + if (err < 0) + return err; + + return ff_cbs_init(&ctx->output, AV_CODEC_ID_AV1, bsf); } static void av1_frame_merge_close(AVBSFContext *bsf) @@ -137,7 +143,8 @@ static void av1_frame_merge_close(AVBSFContext *bsf) ff_cbs_fragment_free(&ctx->frag[1]); av_packet_free(&ctx->in); av_packet_free(&ctx->pkt); - ff_cbs_close(&ctx->cbc); + ff_cbs_close(&ctx->input); + ff_cbs_close(&ctx->output); } static const enum AVCodecID av1_frame_merge_codec_ids[] = {