From patchwork Sun Sep 13 02:57:39 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 22313 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 10C86449E91 for ; Sun, 13 Sep 2020 05:58:28 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id E165168BBB1; Sun, 13 Sep 2020 05:58:27 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wr1-f65.google.com (mail-wr1-f65.google.com [209.85.221.65]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id CB09A68BBAE for ; Sun, 13 Sep 2020 05:58:21 +0300 (EEST) Received: by mail-wr1-f65.google.com with SMTP id c18so15044021wrm.9 for ; Sat, 12 Sep 2020 19:58:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=XMgWXlWMJ4Ri9BwlLJdoVTvQf6wLrjY+c/PXRd79uk4=; b=MuDGcPiCskQpdk08mkY08bzvpOBBTh27WbDTj3FESzOyjib1h3PCuazTg2HBxJiCbO BvUeKRg4lxtcYoe3Kp2CHxM8p8jGUgr79W1Rgc+8+YOc/25CNRPgMRjPjj/dsJxxSuda U4akECCKO8eyHktikVg2QBfYCPLIsmgZolfPI547TA4+2NTbAAOuylYU9E7z88yTzccU Jl+OlEX1NRvRipvMSDZeRgAPGgBsijfMrfj6bprcKeuYu9LOBMY/RlS3ZrSdyT0K22Ql sIauTEiGw+7CMTbIMdxw0AvqKcflrBaPIkNrPUt+OewZUXxytqjklqmcxMmM1760S7sx QyIw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=XMgWXlWMJ4Ri9BwlLJdoVTvQf6wLrjY+c/PXRd79uk4=; b=rbgHb9pPHdb74QyH/CicCUil7RjJXitqi/BchpPFc9RP/4Wfc9EYNEfbXXsil+HbiR MmmtGKEnXiPPMoewC+YSwsCmGLKz0W2mQl+iPLEWkzuM9o0KzI2lBbkcN4wKGj4XYMeQ T6cwQC6ZCJ2KyklqhwfArju7V7/cwInV4w9nZ8sMi2sfugtnQ1fKZbXX48ZAlyRqMk1g aOqEP3tLum3d1guXBqSrB1sFhL6y+Qux/LwkNP1WQJPJpvR8qRS4Ebf93hEloj9h6IHa SRlv9l/eaCSxDnG2IW6U2Ak5gm0zjJnNFsnGAkpbDTShMELCTMsn0XGeR/l4B7Kf7lvw pBWA== X-Gm-Message-State: AOAM530Obl969p29Xt88A5BKBZfMwcS7m/sjSrGAnKhepcqRvuvZsWfH 2UguyvcmmJCdxM5OWOQilXCeuNMWlAw= X-Google-Smtp-Source: ABdhPJzG3CCTWv0ehN1/erwtAK2tZ1mbFeOxi8hhmxDfCxxaNSYN3Twzio2DwKhPoQoMpERf7BGe6w== X-Received: by 2002:adf:ef45:: with SMTP id c5mr8833200wrp.37.1599965901052; Sat, 12 Sep 2020 19:58:21 -0700 (PDT) Received: from sblaptop.fritz.box (ipbcc1fb0f.dynamic.kabel-deutschland.de. [188.193.251.15]) by smtp.gmail.com with ESMTPSA id f3sm11883355wmb.35.2020.09.12.19.58.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 12 Sep 2020 19:58:20 -0700 (PDT) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Sun, 13 Sep 2020 04:57:39 +0200 Message-Id: <20200913025753.274772-2-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200913025753.274772-1-andreas.rheinhardt@gmail.com> References: <20200913025753.274772-1-andreas.rheinhardt@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 02/16] avcodec/pcm-dvd: Avoid allocation of 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 Cc: Andreas Rheinhardt Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" In this case, it also allows to remove the decoder's close function. Signed-off-by: Andreas Rheinhardt --- libavcodec/pcm-dvd.c | 16 ++-------------- 1 file changed, 2 insertions(+), 14 deletions(-) diff --git a/libavcodec/pcm-dvd.c b/libavcodec/pcm-dvd.c index 0a751a8191..725c2f5b29 100644 --- a/libavcodec/pcm-dvd.c +++ b/libavcodec/pcm-dvd.c @@ -34,8 +34,9 @@ typedef struct PCMDVDContext { int last_block_size; // Size of the last block of samples in bytes int samples_per_block; // Number of samples per channel per block int groups_per_block; // Number of 20/24-bit sample groups per block - uint8_t *extra_samples; // Pointer to leftover samples from a frame int extra_sample_count; // Number of leftover samples in the buffer + uint8_t extra_samples[8 * 3 * 4]; // Space for leftover samples from a frame + // (8 channels, 3B/sample, 4 samples/block) } PCMDVDContext; static av_cold int pcm_dvd_decode_init(AVCodecContext *avctx) @@ -44,18 +45,6 @@ static av_cold int pcm_dvd_decode_init(AVCodecContext *avctx) /* Invalid header to force parsing of the first header */ s->last_header = -1; - /* reserve space for 8 channels, 3 bytes/sample, 4 samples/block */ - if (!(s->extra_samples = av_malloc(8 * 3 * 4))) - return AVERROR(ENOMEM); - - return 0; -} - -static av_cold int pcm_dvd_decode_uninit(AVCodecContext *avctx) -{ - PCMDVDContext *s = avctx->priv_data; - - av_freep(&s->extra_samples); return 0; } @@ -310,7 +299,6 @@ AVCodec ff_pcm_dvd_decoder = { .priv_data_size = sizeof(PCMDVDContext), .init = pcm_dvd_decode_init, .decode = pcm_dvd_decode_frame, - .close = pcm_dvd_decode_uninit, .capabilities = AV_CODEC_CAP_DR1, .sample_fmts = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_S16, AV_SAMPLE_FMT_S32, AV_SAMPLE_FMT_NONE