From patchwork Thu Feb 4 19:09:24 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 25397 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 CDACC448077 for ; Thu, 4 Feb 2021 21:10:50 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id B6BAC68A199; Thu, 4 Feb 2021 21:10:50 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qk1-f174.google.com (mail-qk1-f174.google.com [209.85.222.174]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 50D12680571 for ; Thu, 4 Feb 2021 21:10:49 +0200 (EET) Received: by mail-qk1-f174.google.com with SMTP id k193so4435764qke.6 for ; Thu, 04 Feb 2021 11:10:49 -0800 (PST) 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=bM3cNm027j8qcvJwlXeuYmHJPSMzwVkJtMk+fsFvsTE=; b=JjYTauWKQtBGU/EJ0c0GCqbeQufNazy54sVDE8PxJRxefNnUC60Zben7ckxSw/8wLt TCyAD40+inPYgn4jIkTUAAgYaQo7rj9aWLW5hcs+AWUhzEtmYicuRl6GJitqGLWWTo6o EVv90gauZbwiQ4eoEj7MBiTR7I24VJKTSFUBKoRT53erHdE9lHTBus28hoSexYgPY2E4 gVwSkNkEbBo79UFOQ9ddDhpZzAQL64wDvVyA58R1RR5sZjAeOLFVNfsSOf3IIGBs4CHh zjpeAIaiX2UDEgigY9PTDjxGpqXJrG2z8f9ZLdJsUP/0LBZ1Eyf5icPhJ4c48vvZ02oa mtSw== 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=bM3cNm027j8qcvJwlXeuYmHJPSMzwVkJtMk+fsFvsTE=; b=MKpuAPRqkFNH3TVKUsxGCjd7TMNaFOEsxAwRFZBGo9yIBnF8hV+lAQZH5bbzo6wTEb b2y1bz6Zc+uLVY08gH0F3zjwfkXa04JM04zYtTcnlK1v3vFMD7bElX+v007gU8JWQSKl cfyiBN1e3khyW4KKZOjZ93Yu7W/b9UEvJZy45xWa41/Iwk7KLO1YLHKE4pvCq12tsOwZ TvyK9nlRIIqL5pjNKzo8DCkwVSRP+UVlt5Mo2/rsBMUQQnBjTd7wJVW5/84W76sExic2 dgL5CyCvi1JN+gsHq6NlPLZR9i2MoWcB82BXqgXGf/BZK3zkhEkS7V98kvtyb+1ucOFs H97A== X-Gm-Message-State: AOAM531lg9vMnZAh4M1+37XGsCVB35sjHLKGSzGw6Y42e3UUEgfus0eC YvhAkJfeRCw4kTZVo1Q5nQtgBmoLrzo= X-Google-Smtp-Source: ABdhPJzU4REbLxkGIpfc7MVg+EfHN7twjvCHbUGuXWd+O1RaR+xM7EMPiqZTElCdNMSoE3NcWe3mjQ== X-Received: by 2002:a05:620a:15ab:: with SMTP id f11mr637551qkk.498.1612465847865; Thu, 04 Feb 2021 11:10:47 -0800 (PST) Received: from localhost.localdomain ([181.23.64.183]) by smtp.gmail.com with ESMTPSA id t14sm5889291qkt.50.2021.02.04.11.10.46 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 04 Feb 2021 11:10:47 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Thu, 4 Feb 2021 16:09:24 -0300 Message-Id: <20210204191005.48190-10-jamrial@gmail.com> X-Mailer: git-send-email 2.30.0 In-Reply-To: <20210204191005.48190-1-jamrial@gmail.com> References: <20210204191005.48190-1-jamrial@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 09/50] avcodec/tiff: use av_packet_alloc() to allocate AVPackets 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" Signed-off-by: James Almer --- libavcodec/tiff.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/libavcodec/tiff.c b/libavcodec/tiff.c index f68f9818ad..c92c4170ab 100644 --- a/libavcodec/tiff.c +++ b/libavcodec/tiff.c @@ -58,6 +58,7 @@ typedef struct TiffContext { /* JPEG decoding for DNG */ AVCodecContext *avctx_mjpeg; // wrapper context for MJPEG + AVPacket *jpkt; // encoded JPEG tile AVFrame *jpgframe; // decoded JPEG tile int get_subimage; @@ -877,7 +878,6 @@ static int dng_decode_jpeg(AVCodecContext *avctx, AVFrame *frame, int tile_byte_count, int dst_x, int dst_y, int w, int h) { TiffContext *s = avctx->priv_data; - AVPacket jpkt; uint8_t *dst_data, *src_data; uint32_t dst_offset; /* offset from dst buffer in pixels */ int is_single_comp, is_u16, pixel_size; @@ -887,9 +887,9 @@ static int dng_decode_jpeg(AVCodecContext *avctx, AVFrame *frame, return AVERROR_INVALIDDATA; /* Prepare a packet and send to the MJPEG decoder */ - av_init_packet(&jpkt); - jpkt.data = (uint8_t*)s->gb.buffer; - jpkt.size = tile_byte_count; + av_packet_unref(s->jpkt); + s->jpkt->data = (uint8_t*)s->gb.buffer; + s->jpkt->size = tile_byte_count; if (s->is_bayer) { MJpegDecodeContext *mjpegdecctx = s->avctx_mjpeg->priv_data; @@ -898,7 +898,7 @@ static int dng_decode_jpeg(AVCodecContext *avctx, AVFrame *frame, mjpegdecctx->bayer = 1; } - ret = avcodec_send_packet(s->avctx_mjpeg, &jpkt); + ret = avcodec_send_packet(s->avctx_mjpeg, s->jpkt); if (ret < 0) { av_log(avctx, AV_LOG_ERROR, "Error submitting a packet for decoding\n"); return ret; @@ -2157,7 +2157,8 @@ static av_cold int tiff_init(AVCodecContext *avctx) /* Allocate JPEG frame */ s->jpgframe = av_frame_alloc(); - if (!s->jpgframe) + s->jpkt = av_packet_alloc(); + if (!s->jpgframe || !s->jpkt) return AVERROR(ENOMEM); /* Prepare everything needed for JPEG decoding */ @@ -2193,6 +2194,7 @@ static av_cold int tiff_end(AVCodecContext *avctx) av_freep(&s->fax_buffer); s->fax_buffer_size = 0; av_frame_free(&s->jpgframe); + av_packet_free(&s->jpkt); avcodec_free_context(&s->avctx_mjpeg); return 0; }