From patchwork Tue Sep 15 07:39:31 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 22386 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 070BC44B636 for ; Tue, 15 Sep 2020 10:40:19 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id DECD268B94F; Tue, 15 Sep 2020 10:40:18 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wr1-f68.google.com (mail-wr1-f68.google.com [209.85.221.68]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 499D668B77C for ; Tue, 15 Sep 2020 10:40:12 +0300 (EEST) Received: by mail-wr1-f68.google.com with SMTP id a17so2160543wrn.6 for ; Tue, 15 Sep 2020 00:40:12 -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:mime-version :content-transfer-encoding; bh=BmWxCtbe48G3PcTbhhM8ufHKxcIdHBoq9OT6C/ihGTA=; b=RYJtcpiBCL3YhGmzPhBpthPCe1xrSnb/S9olJZ++nfH1PwCRTlYspy/R6/fN5d8QNv xz7EPKKvbRM78PkuXeREFt/M9l7RHj5i+vWgbcQKuyL84ddNm/Ye+fNSF8aS3dg20isf OiPBHRcTl4g7buCH5XK3c5IblP+4PxUWG22L1w4iGXcLcOAw9VHC3PJDC0vbfKhFqUN/ OK2iSH3c76REkRVB5C+WkW87Mxdd7lfvUQBncDjxQ8hsHdsBMghD/dNtdt2rvrl1TAFJ /g04U+7aawtvSYxrMQ+ugWBSOj5vL8gylS71LeSvVIlNaOEzimTz0ipGCBNnDWreclha 5rvQ== 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:mime-version :content-transfer-encoding; bh=BmWxCtbe48G3PcTbhhM8ufHKxcIdHBoq9OT6C/ihGTA=; b=eTiNmrd3xofc9zdggQ+c2NPv7gM7ZhoQAORDfoi8LIGcszhykn1wFObU1EusG1pRgm MdCSkg+a+CF3bJx4LeBl2JK8NZeYJt3gEQqvSaJj+n3zOAACrKuis+cNBIC2krYrluCG QCUgLDXX/eN+/kN2bUzjDlqBkvVUR6AUD1253Epboj937USgSYmgN/FLlmiiOdxU+nm9 EDm85/AKHzhKC1IUNJBQr2meTbQv9nSYYbRw8TREwi3ctwZQISkeJ94b4rCbIYjmadKW mX66otcbfV6YT/Mffhte01j4VwUyV3SL7QDu4qYjoA3Ad7tnIwz33x/gqfl7py8CADjN JJsw== X-Gm-Message-State: AOAM531dyYh3ChlmQPZ7yooiuRYkSMEnj46J0BFTSs7p/3eklpa84yqj PI5bMDbH8jWJ8QmCmu8UV7KMWskED9E= X-Google-Smtp-Source: ABdhPJxNzFASweZoRDQpwn4BDTcNDgOHNQDykmaZdZqwKt3wWY0jHQAKLg4VLEf6ha/dS24whadtDA== X-Received: by 2002:a5d:60c6:: with SMTP id x6mr19524813wrt.26.1600155611430; Tue, 15 Sep 2020 00:40:11 -0700 (PDT) Received: from sblaptop.fritz.box (ipbcc1fb0f.dynamic.kabel-deutschland.de. [188.193.251.15]) by smtp.gmail.com with ESMTPSA id d23sm6112125wmb.6.2020.09.15.00.40.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 15 Sep 2020 00:40:10 -0700 (PDT) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Tue, 15 Sep 2020 09:39:31 +0200 Message-Id: <20200915074000.102622-1-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 01/30] avcodec/flashsvenc: Avoid allocation of buffer, fix memleak 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" Up until now, the flashsv encoder tried to allocate two buffers in its init function; if only one of these allocations succeeds, the other buffer leaks. Fix this by making one of these buffers part of the context (its size is a compile-time constant). Signed-off-by: Andreas Rheinhardt --- libavcodec/flashsvenc.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/libavcodec/flashsvenc.c b/libavcodec/flashsvenc.c index f7f98efde3..4ac643c036 100644 --- a/libavcodec/flashsvenc.c +++ b/libavcodec/flashsvenc.c @@ -59,11 +59,11 @@ typedef struct FlashSVContext { uint8_t *previous_frame; int image_width, image_height; int block_width, block_height; - uint8_t *tmpblock; uint8_t *encbuffer; int block_size; z_stream zstream; int last_key_frame; + uint8_t tmpblock[3 * 256 * 256]; } FlashSVContext; static int copy_region_enc(uint8_t *sptr, uint8_t *dptr, int dx, int dy, @@ -96,7 +96,6 @@ static av_cold int flashsv_encode_end(AVCodecContext *avctx) av_freep(&s->encbuffer); av_freep(&s->previous_frame); - av_freep(&s->tmpblock); return 0; } @@ -121,10 +120,9 @@ static av_cold int flashsv_encode_init(AVCodecContext *avctx) s->image_width = avctx->width; s->image_height = avctx->height; - s->tmpblock = av_mallocz(3 * 256 * 256); s->encbuffer = av_mallocz(s->image_width * s->image_height * 3); - if (!s->tmpblock || !s->encbuffer) { + if (!s->encbuffer) { av_log(avctx, AV_LOG_ERROR, "Memory allocation failed.\n"); return AVERROR(ENOMEM); } From patchwork Tue Sep 15 07:39:32 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 22412 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 2A6E244A52F for ; Tue, 15 Sep 2020 10:46:55 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 0332668BCAA; Tue, 15 Sep 2020 10:46:55 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wm1-f66.google.com (mail-wm1-f66.google.com [209.85.128.66]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id CE26368BC4C for ; Tue, 15 Sep 2020 10:46:48 +0300 (EEST) Received: by mail-wm1-f66.google.com with SMTP id z9so2395926wmk.1 for ; Tue, 15 Sep 2020 00:46:48 -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=EHOMylRkF9hyMnJU5jLJfxXkoflHZ7zEyI6CI9a2TPE=; b=n86N51SDwvFGfXDFZNz2wgvn8sWkjMUiZx2BysGg5T9IASauou63t4VplfLXltS3zm pTqAuuXODZTUvqaqqLqr+z0tfKlnk8g+IndLYKf5paZAkNGW2MgwYa84s72C9ACeKYvA TafqlBga7d0EGbxMEg39WP+A8v9ytFyBLpd77irEc6yjryT3DhgQ3ubBt3RIW7pexgcf nIouZz9yCUSAtYGCOObXDXwrUC2itB3yz6f+fvZdhYZPi1SqxcbV0CQ5uBWiXxVD2Axj 27lqU3655C68KxraJvOun+XQXsasFvjXA/jbghT9mCeYAb91RwinlzY8P2f1oT/p8MHO w5iQ== 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=EHOMylRkF9hyMnJU5jLJfxXkoflHZ7zEyI6CI9a2TPE=; b=jdlV+MyAahFEZghHxVXMTio62g87uAxMyi6v58b4yegAspFDnUoEA1urEvb5Lyfgc+ 3xDw1vgCuuCjkEK/YLfbGNqXGyuv+4l4W9z8frc0pogH3SLFXPFlkfuuEx1iK2wvHBmB z+lAckyj0ehS9j31b4ZP8II6PbDp6ToK9RcdhmSjeWaLuU9kMXwTmQb+NR5WB313btSx Yx8hG6Qe55qpwjD0cq13TEwjQVSGSAmZxFzuebxsuQ94pgO8Lt2yZKy6FKGvXxIN8QlY El5btOVdPLM3NCxCC8GnOFFeTHskPGCN5SgwsTX/QRLP2R5x3tXjZVvxWxgvz7odSxeK wksQ== X-Gm-Message-State: AOAM533mBW4cdsA13g8ufQQl6I1BJ76Pzdx+dIuPRDvK2cRue4MR7Fmt MinPm7pxqyg7xDEWw6JyPQdeYjP71DU= X-Google-Smtp-Source: ABdhPJxqmNm5icQLdaVQFTVRQOG9jCLuJZCanuID7u3yEr6Kv0y6iS/JgzG/RSiCZpbm7Kvf8YXEVA== X-Received: by 2002:a1c:7502:: with SMTP id o2mr3149051wmc.29.1600155627971; Tue, 15 Sep 2020 00:40:27 -0700 (PDT) Received: from sblaptop.fritz.box (ipbcc1fb0f.dynamic.kabel-deutschland.de. [188.193.251.15]) by smtp.gmail.com with ESMTPSA id d23sm6112125wmb.6.2020.09.15.00.40.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 15 Sep 2020 00:40:27 -0700 (PDT) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Tue, 15 Sep 2020 09:39:32 +0200 Message-Id: <20200915074000.102622-2-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200915074000.102622-1-andreas.rheinhardt@gmail.com> References: <20200915074000.102622-1-andreas.rheinhardt@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 02/30] avcodec/flashsvenc: Remove unused z_stream 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" This encoder uses the compress2 utility function provided by zlib instead of using a z_stream. Signed-off-by: Andreas Rheinhardt --- libavcodec/flashsvenc.c | 7 ------- 1 file changed, 7 deletions(-) diff --git a/libavcodec/flashsvenc.c b/libavcodec/flashsvenc.c index 4ac643c036..95ae988448 100644 --- a/libavcodec/flashsvenc.c +++ b/libavcodec/flashsvenc.c @@ -61,7 +61,6 @@ typedef struct FlashSVContext { int block_width, block_height; uint8_t *encbuffer; int block_size; - z_stream zstream; int last_key_frame; uint8_t tmpblock[3 * 256 * 256]; } FlashSVContext; @@ -92,8 +91,6 @@ static av_cold int flashsv_encode_end(AVCodecContext *avctx) { FlashSVContext *s = avctx->priv_data; - deflateEnd(&s->zstream); - av_freep(&s->encbuffer); av_freep(&s->previous_frame); @@ -112,9 +109,6 @@ static av_cold int flashsv_encode_init(AVCodecContext *avctx) return AVERROR_INVALIDDATA; } - // Needed if zlib unused or init aborted before deflateInit - memset(&s->zstream, 0, sizeof(z_stream)); - s->last_key_frame = 0; s->image_width = avctx->width; @@ -180,7 +174,6 @@ static int encode_bitstream(FlashSVContext *s, const AVFrame *p, uint8_t *buf, ret = compress2(ptr + 2, &zsize, s->tmpblock, 3 * cur_blk_width * cur_blk_height, 9); - //ret = deflateReset(&s->zstream); if (ret != Z_OK) av_log(s->avctx, AV_LOG_ERROR, "error while compressing block %dx%d\n", i, j); From patchwork Tue Sep 15 07:39:33 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 22413 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 419C544A55E for ; Tue, 15 Sep 2020 10:47:47 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 247A468BC97; Tue, 15 Sep 2020 10:47:47 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wm1-f68.google.com (mail-wm1-f68.google.com [209.85.128.68]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id E562D68BC97 for ; Tue, 15 Sep 2020 10:47:40 +0300 (EEST) Received: by mail-wm1-f68.google.com with SMTP id b79so2372377wmb.4 for ; Tue, 15 Sep 2020 00:47:40 -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=i7+60Vnt5MMj/jyeBW6h7EzDyjBYJ6xu3ADEXrfRyTs=; b=EWEE3uLlvK4PAsUZPRnDCHqSOcRA4zf640lhkwt3W5gVqK/F93/VldR851/ztfoxPb cgiNCZjVHTAlwuf3Bf0xS3inIgB9D1JtrNEaCnvWc9/GDnvbUZQvYdGPKXXHUL41B5Bi PiY6H2evOPz2+j/ymEyIo41nW7JAyeyjoo7NP/z1qMO4ipUJsAv2S/ZuwRwS6DUQz6J2 yxxqqNNyZwOxbu2NY7RjRCgjm3iTCbi0AdvjmfU6IE96Tv6x+ISuHoXlYrdG5klq8NJS Kisou1M7iTCBJtJ72vTau4msIUjgx7drKpyS18AS8/orgeeRukiOdpNo1YBntRpWCJoT Ji1g== 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=i7+60Vnt5MMj/jyeBW6h7EzDyjBYJ6xu3ADEXrfRyTs=; b=hvLm6nItVGtwzGrZevHCAPJz3SfL7qikMRcmDwSO2/LEAMRwLBpycCsFEoFFzyvV8X 37m4i45KYShg62XaCg+vR40cmTVSTjlbTaK3HMCgC+xQXEFOwmtNYpFQVvLOigq71FFI 01a+k8mHhdVvNXpsl3/P6kEav3UxnbWt7eykD8xB9Mxd/xnxXh7/OAG5i3fcunJcpvxt wSJnd32j6E3AafWS+LDcrSFfet/mB5WpB0nCYdiW3NCTV68iVcsjhd+RFwRYqQ9wFXHM AtOnELm9WTnmzn9Gh1OH0yXbkAoursPGhrRvJTI8+eipNiV3O5BEad5GkqFiA1Xyd+To 3MRA== X-Gm-Message-State: AOAM533/Tbs0JJtmx6QmqMiJ0/RaK9Dk7YRWh1phQz/1l9U8BUZn6Tkv Na0PiGrhSmVeqzXxBIwbDAWpv4lfneo= X-Google-Smtp-Source: ABdhPJzhiEBzvA0QJly4pVqmH7wx07hVpytoeyy6X1SWdJsZyotN/lcFn8ghgf/M30vZ/eExwjsUzQ== X-Received: by 2002:a1c:dfc2:: with SMTP id w185mr3190378wmg.15.1600155628936; Tue, 15 Sep 2020 00:40:28 -0700 (PDT) Received: from sblaptop.fritz.box (ipbcc1fb0f.dynamic.kabel-deutschland.de. [188.193.251.15]) by smtp.gmail.com with ESMTPSA id d23sm6112125wmb.6.2020.09.15.00.40.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 15 Sep 2020 00:40:28 -0700 (PDT) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Tue, 15 Sep 2020 09:39:33 +0200 Message-Id: <20200915074000.102622-3-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200915074000.102622-1-andreas.rheinhardt@gmail.com> References: <20200915074000.102622-1-andreas.rheinhardt@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 03/30] avcodec/flashsv2enc: Check allocations for success before usage 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" Signed-off-by: Andreas Rheinhardt --- libavcodec/flashsv2enc.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/libavcodec/flashsv2enc.c b/libavcodec/flashsv2enc.c index 65db112696..e2a603f312 100644 --- a/libavcodec/flashsv2enc.c +++ b/libavcodec/flashsv2enc.c @@ -231,6 +231,13 @@ static av_cold int flashsv2_encode_init(AVCodecContext * avctx) s->key_frame = av_mallocz(s->frame_size); s->frame_blocks = av_mallocz(s->blocks_size); s->key_blocks = av_mallocz(s->blocks_size); + if (!s->encbuffer || !s->keybuffer || !s->databuffer + || !s->current_frame || !s->key_frame || !s->key_blocks + || !s->frame_blocks) { + av_log(avctx, AV_LOG_ERROR, "Memory allocation failed.\n"); + cleanup(s); + return AVERROR(ENOMEM); + } s->blockbuffer = NULL; s->blockbuffer_size = 0; @@ -245,14 +252,6 @@ static av_cold int flashsv2_encode_init(AVCodecContext * avctx) s->use_custom_palette = 0; s->palette_type = -1; // so that the palette will be generated in reconfigure_at_keyframe - if (!s->encbuffer || !s->keybuffer || !s->databuffer - || !s->current_frame || !s->key_frame || !s->key_blocks - || !s->frame_blocks) { - av_log(avctx, AV_LOG_ERROR, "Memory allocation failed.\n"); - cleanup(s); - return -1; - } - return 0; } From patchwork Tue Sep 15 07:39:34 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 22411 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 2D41444A52F for ; Tue, 15 Sep 2020 10:46:37 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 0828368BC99; Tue, 15 Sep 2020 10:46:37 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wm1-f66.google.com (mail-wm1-f66.google.com [209.85.128.66]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 9870368B9A4 for ; Tue, 15 Sep 2020 10:46:30 +0300 (EEST) Received: by mail-wm1-f66.google.com with SMTP id s13so2319908wmh.4 for ; Tue, 15 Sep 2020 00:46:30 -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=iBHEwqxAMtdx7uOl3EfcdKJYucfqQ1E7SdWdlro7ing=; b=CzM/JH/AxiLGHdDgBpbj0XyGukR1J0k3eetpF02dEJm/eiU3J2PFYcft3JaKdDGYIc IfW1xxMgJqNKNlMI6degq40GXit4Fi+OO452ebv+HqkEwYn1PtyyjxosNEGIx/6FTBi7 EINqkevJeyenMIQv0DGU95J2WTNylQYj30DDjKLsVTIlrvvvhIOaPnyMipNNlVpbLcxa 7Br6KrFYyx9g83WvtNN1QFqQelqMdnH9nJnUArcRVvsxoYFgWyL6lso3t+I7RzeBuQy6 jKLD+t11Rxgl05tfYgMfdYFykFdrAKc3y+6FR9CLR2apHxUcs6Rs1ee2QshvzXCgAAMB kx+Q== 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=iBHEwqxAMtdx7uOl3EfcdKJYucfqQ1E7SdWdlro7ing=; b=uAx7M/bpyS38uLDpkcrEvrWPvH7N3zhHJqwQTOhDW74RGwETikDJY+ubFkkO+Dibqa 6NubovnTsKn0aNrMgwkoj2RGh9UJdN9MyUrIM0AB0sc+zhj7wtq9B5aE8gqzWP1ayiBP gPIP9Fj03itejeoUdzAAfvN9iUqdRjlwrmCkFT8r9obo9hL2YOZrb0GhxD5EAfrRB/z7 8XfHdf4YDqJhklJ0mHwAMSP2pLFWNhhaaowvsQjilsqjLmSkMgkOZ0tSxAQPxjwiu4+3 2UH9j9owtA7BXyb0X8jTEAbrVjf5F5pqDfnVMi5wRbE5rHwg3U5AxCOv/okXTs5UZXE3 5+9Q== X-Gm-Message-State: AOAM532/YApiA2d/Sql/+G2eE256BHvRVj5LQEG53hXZGdXWkSV9inWO OXldwm4pRA3KY1iRTgtyoe9RoN8Szf8= X-Google-Smtp-Source: ABdhPJyam3e9S7sM3eCk4cnL8AxFZ4rVNW+eRCLWDIRKXSP7eHmONXQNfpqe8AFRVdG9+64DgmD9HQ== X-Received: by 2002:a05:600c:28d:: with SMTP id 13mr3162846wmk.69.1600155630246; Tue, 15 Sep 2020 00:40:30 -0700 (PDT) Received: from sblaptop.fritz.box (ipbcc1fb0f.dynamic.kabel-deutschland.de. [188.193.251.15]) by smtp.gmail.com with ESMTPSA id d23sm6112125wmb.6.2020.09.15.00.40.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 15 Sep 2020 00:40:29 -0700 (PDT) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Tue, 15 Sep 2020 09:39:34 +0200 Message-Id: <20200915074000.102622-4-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200915074000.102622-1-andreas.rheinhardt@gmail.com> References: <20200915074000.102622-1-andreas.rheinhardt@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 04/30] avcodec/flashsv2enc: Cleanup generically after init failure 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" Signed-off-by: Andreas Rheinhardt --- libavcodec/flashsv2enc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libavcodec/flashsv2enc.c b/libavcodec/flashsv2enc.c index e2a603f312..851abdc822 100644 --- a/libavcodec/flashsv2enc.c +++ b/libavcodec/flashsv2enc.c @@ -235,7 +235,6 @@ static av_cold int flashsv2_encode_init(AVCodecContext * avctx) || !s->current_frame || !s->key_frame || !s->key_blocks || !s->frame_blocks) { av_log(avctx, AV_LOG_ERROR, "Memory allocation failed.\n"); - cleanup(s); return AVERROR(ENOMEM); } @@ -918,4 +917,5 @@ AVCodec ff_flashsv2_encoder = { .encode2 = flashsv2_encode_frame, .close = flashsv2_encode_end, .pix_fmts = (const enum AVPixelFormat[]){ AV_PIX_FMT_BGR24, AV_PIX_FMT_NONE }, + .caps_internal = FF_CODEC_CAP_INIT_CLEANUP, }; From patchwork Tue Sep 15 07:39:35 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 22414 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 8DFB044A8AA for ; Tue, 15 Sep 2020 10:48:04 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 730B168BCBF; Tue, 15 Sep 2020 10:48:04 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wm1-f67.google.com (mail-wm1-f67.google.com [209.85.128.67]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id DCA7768BCBC for ; Tue, 15 Sep 2020 10:48:02 +0300 (EEST) Received: by mail-wm1-f67.google.com with SMTP id b79so2373529wmb.4 for ; Tue, 15 Sep 2020 00:48:02 -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=JUrTEIDz2KcNdCEnKzfNTgVxmdmuc3JJpzF0DOIXnUc=; b=VtKf6v392EcLMiVxxtVtq/wlJAGuGc8KYo5cS45O8CP58FNAqQe70NhwAaN/fZkTK7 Prlp7yGxaAcOOV2w/PeXN4h9EfoIn7E0GfrVq3FifcjhHOoes6srJvA8mTtC68FHiXPz c2OT2O6QBDNOZ2qrV3sFgs7h0w991q5BTfVNmqKoOt/WabBw9CbiilYZRuDmmEB50yXG OjmO6r2sY2iAz2MXOgp0sMyJ5q5Su6By7ZfLfcNNK3IouW+da9Y+cbgn2cLfPQtOHKYq WPrvLieDkh94pQZfnSEPs3e+95WQcd0gOJG+CZFi7fZBlFnepI9e7I3ZKXbrIm+J9nvL diyg== 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=JUrTEIDz2KcNdCEnKzfNTgVxmdmuc3JJpzF0DOIXnUc=; b=hEkzZBtFqEouCTYckZFLyBk7Acfpi5Sn044OWxx4yvIGpHYFNNlm4pVsLPizI2N1p2 M4QQUvz0UDr5+kSkFVW0v+7vZ4TmeWFn620pA5cWem3PC0cr+E+U34vjfc+dqJA5cDgx Yl80eDtFOeMGtv/AgG/Ghr0qANSkfICYXRInfyy5hyJgaMxK0EnDM4/sff10LrmUiRNM sv+3k1pBqNJgWBYBOiYsieSeM4uWIoQRnPMJTSmZURNNPN3rzKFvR6JVtnpwqKXMIDey sPXJpO+jUIcWZRm8TeoGhzHTgjEqky3O7GyAWLFNBi0SZHtOsi+eFxqzBF597/Db5ZJA aYtA== X-Gm-Message-State: AOAM530+eZY6+xKzMAJUCQQUYOC45VHF2dzGNq//bxvpZBRDTXDUeRfV M4Yoh+HRz9pWLxEYHVxdzP6oJGtxQSE= X-Google-Smtp-Source: ABdhPJyhngGGGmHyyDN0gCdX+1tZ9oK48F2wo7mQ+jWHIWDbXMMbU1gOAHnD1HOMOvmMcMKr7Wbtog== X-Received: by 2002:a1c:bcd4:: with SMTP id m203mr3193427wmf.75.1600155631476; Tue, 15 Sep 2020 00:40:31 -0700 (PDT) Received: from sblaptop.fritz.box (ipbcc1fb0f.dynamic.kabel-deutschland.de. [188.193.251.15]) by smtp.gmail.com with ESMTPSA id d23sm6112125wmb.6.2020.09.15.00.40.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 15 Sep 2020 00:40:30 -0700 (PDT) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Tue, 15 Sep 2020 09:39:35 +0200 Message-Id: <20200915074000.102622-5-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200915074000.102622-1-andreas.rheinhardt@gmail.com> References: <20200915074000.102622-1-andreas.rheinhardt@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 05/30] avcodec/flashsv2enc: Return better error codes 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" Signed-off-by: Andreas Rheinhardt --- libavcodec/flashsv2enc.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/libavcodec/flashsv2enc.c b/libavcodec/flashsv2enc.c index 851abdc822..6603d0ded1 100644 --- a/libavcodec/flashsv2enc.c +++ b/libavcodec/flashsv2enc.c @@ -177,6 +177,7 @@ static void reset_stats(FlashSV2Context * s) static av_cold int flashsv2_encode_init(AVCodecContext * avctx) { FlashSV2Context *s = avctx->priv_data; + int ret; s->avctx = avctx; @@ -186,23 +187,23 @@ static av_cold int flashsv2_encode_init(AVCodecContext * avctx) if (s->comp < 0 || s->comp > 9) { av_log(avctx, AV_LOG_ERROR, "Compression level should be 0-9, not %d\n", s->comp); - return -1; + return AVERROR(EINVAL); } if ((avctx->width > 4095) || (avctx->height > 4095)) { av_log(avctx, AV_LOG_ERROR, "Input dimensions too large, input must be max 4095x4095 !\n"); - return -1; + return AVERROR(EINVAL); } if ((avctx->width < 16) || (avctx->height < 16)) { av_log(avctx, AV_LOG_ERROR, "Input dimensions too small, input must be at least 16x16 !\n"); - return -1; + return AVERROR(EINVAL); } - if (av_image_check_size(avctx->width, avctx->height, 0, avctx) < 0) - return -1; + if ((ret = av_image_check_size(avctx->width, avctx->height, 0, avctx)) < 0) + return ret; s->last_key_frame = 0; From patchwork Tue Sep 15 07:39:36 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 22388 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 2FBD544B636 for ; Tue, 15 Sep 2020 10:40:41 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 18AFC68BABE; Tue, 15 Sep 2020 10:40:41 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wr1-f66.google.com (mail-wr1-f66.google.com [209.85.221.66]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 5B5C168B85A for ; Tue, 15 Sep 2020 10:40:33 +0300 (EEST) Received: by mail-wr1-f66.google.com with SMTP id e16so2197406wrm.2 for ; Tue, 15 Sep 2020 00:40:33 -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=z46/Yd/d0sNRHuT2bH3oT5WOPnSihZpZnGPfqhoLHMw=; b=J1lbPPLXlBgHQ5KyeECX19kLoYAOJxjXKYgpbVQD6U1wuAm09waAgEtTXBe8wFWiNm ByL5a6tQqgt9xCrsoTH9/Wj+JSQ5VExFUClnixXWcfDnRYEPJxo9/bu3EDq4X8a8+Qdq sAGXcGbx7wMjhuvs1x1pveXYLD9WZ+xRwIbCByOtkQIMdRNTaGVfoEwAGVn7xT/JxPeU OevFACqEnjn4Kwf6cw9NScrzX04YXSeAFt29SoCSV1i3x14jT/TOfs/fD03EvZFGabyq FBHvL7jXI4GYoghLSkwqgz7hRpS1PutuwoIfcDw9oy9C6uisHYTVTxQNxJuITRhVs7Ky BOLQ== 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=z46/Yd/d0sNRHuT2bH3oT5WOPnSihZpZnGPfqhoLHMw=; b=SjquCypSGGBw78NcwayP4j+ZQtRahkrjXN/q5XlJ2NNyjwX4EYttZEhWBmAowqJRRh dnCBBJj6hY0FCJrRX48DNWgyPTHF6bbuBzH4rM90E5rkyIYv7K9tWRVekzrmhIwogE8m f0eYJVHq1VAynIaSXKocuIAsYwmUKTkoyEcgdOrpC72+hl2DfzTStx0ewMxvPdaKMf3j ioVQU/QLBJb/EdOWsnjIvz1Oe6OLZSa3oZqfB6OaYqftvfoV4SIWlBIedADb4We5j3n1 l1st/dXHDED+HEhVm9rOAzbY8l0UUJlsXkUw/IdlqD7g51oDu3pf5KtIE6AofvK6c4Uf lX5A== X-Gm-Message-State: AOAM530aXRQXcH8HMvOvxVQEUX9pZZJ5H2pCWKsmkt8e98HRDsNDryn/ xRxAEWB0bpjOHjJlMdGzUkfo2WPC97s= X-Google-Smtp-Source: ABdhPJzrwUK6i6NNA0RCjLCjkad53wnm7wMen/InZCT59KdZ/Ea67jMuuqIdO0w71Hh9fkXpSKNwjw== X-Received: by 2002:adf:f7ca:: with SMTP id a10mr19630082wrq.321.1600155632501; Tue, 15 Sep 2020 00:40:32 -0700 (PDT) Received: from sblaptop.fritz.box (ipbcc1fb0f.dynamic.kabel-deutschland.de. [188.193.251.15]) by smtp.gmail.com with ESMTPSA id d23sm6112125wmb.6.2020.09.15.00.40.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 15 Sep 2020 00:40:32 -0700 (PDT) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Tue, 15 Sep 2020 09:39:36 +0200 Message-Id: <20200915074000.102622-6-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200915074000.102622-1-andreas.rheinhardt@gmail.com> References: <20200915074000.102622-1-andreas.rheinhardt@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 06/30] avcodec/g722enc: Cleanup generically on init failure 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" Signed-off-by: Andreas Rheinhardt --- libavcodec/g722enc.c | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/libavcodec/g722enc.c b/libavcodec/g722enc.c index 25b61df19e..9357f170fe 100644 --- a/libavcodec/g722enc.c +++ b/libavcodec/g722enc.c @@ -59,7 +59,6 @@ static av_cold int g722_encode_close(AVCodecContext *avctx) static av_cold int g722_encode_init(AVCodecContext * avctx) { G722Context *c = avctx->priv_data; - int ret; c->band[0].scale_factor = 8; c->band[1].scale_factor = 2; @@ -73,10 +72,8 @@ static av_cold int g722_encode_init(AVCodecContext * avctx) c->paths[i] = av_mallocz_array(max_paths, sizeof(**c->paths)); c->node_buf[i] = av_mallocz_array(frontier, 2 * sizeof(**c->node_buf)); c->nodep_buf[i] = av_mallocz_array(frontier, 2 * sizeof(**c->nodep_buf)); - if (!c->paths[i] || !c->node_buf[i] || !c->nodep_buf[i]) { - ret = AVERROR(ENOMEM); - goto error; - } + if (!c->paths[i] || !c->node_buf[i] || !c->nodep_buf[i]) + return AVERROR(ENOMEM); } } @@ -118,9 +115,6 @@ static av_cold int g722_encode_init(AVCodecContext * avctx) ff_g722dsp_init(&c->dsp); return 0; -error: - g722_encode_close(avctx); - return ret; } static const int16_t low_quant[33] = { @@ -387,4 +381,5 @@ AVCodec ff_adpcm_g722_encoder = { .capabilities = AV_CODEC_CAP_SMALL_LAST_FRAME, .sample_fmts = (const enum AVSampleFormat[]){ AV_SAMPLE_FMT_S16, AV_SAMPLE_FMT_NONE }, .channel_layouts = (const uint64_t[]){ AV_CH_LAYOUT_MONO, 0 }, + .caps_internal = FF_CODEC_CAP_INIT_CLEANUP, }; From patchwork Tue Sep 15 07:39:37 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 22390 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 52D7E44B636 for ; Tue, 15 Sep 2020 10:40:43 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 3E57E68BC39; Tue, 15 Sep 2020 10:40:43 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wr1-f67.google.com (mail-wr1-f67.google.com [209.85.221.67]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 188CE68B77C for ; Tue, 15 Sep 2020 10:40:34 +0300 (EEST) Received: by mail-wr1-f67.google.com with SMTP id w5so2149522wrp.8 for ; Tue, 15 Sep 2020 00:40:34 -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=dYGsTXoGrRHPvIg/xrF2jFFrEatYPsMp6SlicXLt20E=; b=Sbof3qwGUMaDwb+kovztO/s5MZFOyd/CAaQ8JSHa89JQVs4prVywuFwdg0Wo5Detu3 pinzLAXoGGRSBxY8DZuYjPZH3yNAs39n1Y65vMTTE1atu5SWMnzpCr9tC0i8ZIkugq33 yG1S/jEkpVjJVseiXS0UvP7A/8WrHChnUCKOhAqjlK7Ghmt/QuU1kVuDN5AK22sykAZB Z+3+ZrXEjVZFLEvn/kgG50moaJ3oMg4wWlUyvPKnTTmcflcDM6t8iLsECXRag+cTvYG+ VnsSEgEzgGFV61zCgASNdAtfeftygPeXjN4XoNzOXIkyYWrBjh+ieG+WdzSNS9AxbTWy ytYw== 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=dYGsTXoGrRHPvIg/xrF2jFFrEatYPsMp6SlicXLt20E=; b=RIvOx1xQs9SzH/Se74iSS/ixUdHHzSZuIm7TrSuBgPjzyZRy4/3IvGhDK5LB8RwikC Sis2SbPWXjE0CtvX+YE74ueUagPRBGcDPewUvBAF7U9zptQ8C9B1rVsJUn63Yddd54a6 /ehAbblE+G56F+hKFMh+zCF1MW574DhfEbwfR42O/3XdEAdzrNGfN1QCObw3ToQBgDfB EvN/HxKTJzENfSPSyJ5A7IfJXzXetcNbF0qCBwhizxJ4gLQ6WkfhXcU226VoK2xgVCIQ Ux3Vl2IbRnIGQyLflWJh44uqG/Zo1Cq5fZfU+H4vl5cJUQGqAHrrjrS44nAVFl24wR+3 BGcg== X-Gm-Message-State: AOAM530ME4UGFOI5b1VW1zaWgcXIYI3Sb/N0Y7ZdLIaZ+pgkJ/aPpgrX VETa6DclpsBxSWhSgnu297ByoHT3/MY= X-Google-Smtp-Source: ABdhPJz+zOFDcv92On1mNHs8VNp/QrqIJgjJn7XI/6E1M7XPJd4RMMlxiFtHoTSW4ubaeCIevs7Y/Q== X-Received: by 2002:adf:9e06:: with SMTP id u6mr20160614wre.208.1600155633356; Tue, 15 Sep 2020 00:40:33 -0700 (PDT) Received: from sblaptop.fritz.box (ipbcc1fb0f.dynamic.kabel-deutschland.de. [188.193.251.15]) by smtp.gmail.com with ESMTPSA id d23sm6112125wmb.6.2020.09.15.00.40.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 15 Sep 2020 00:40:32 -0700 (PDT) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Tue, 15 Sep 2020 09:39:37 +0200 Message-Id: <20200915074000.102622-7-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200915074000.102622-1-andreas.rheinhardt@gmail.com> References: <20200915074000.102622-1-andreas.rheinhardt@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 07/30] avcodec/gif: Fix leaks upon allocation error 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" If one of several allocations the gif encoder performs in its init function fails, the successfull allocations leak. Fix this by adding the FF_CODEC_CAP_INIT_CLEANUP. Signed-off-by: Andreas Rheinhardt --- libavcodec/gif.c | 1 + 1 file changed, 1 insertion(+) diff --git a/libavcodec/gif.c b/libavcodec/gif.c index 65a76cfde4..de41992851 100644 --- a/libavcodec/gif.c +++ b/libavcodec/gif.c @@ -497,4 +497,5 @@ AVCodec ff_gif_encoder = { AV_PIX_FMT_GRAY8, AV_PIX_FMT_PAL8, AV_PIX_FMT_NONE }, .priv_class = &gif_class, + .caps_internal = FF_CODEC_CAP_INIT_CLEANUP, }; From patchwork Tue Sep 15 07:39:38 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 22392 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 8A86644B636 for ; Tue, 15 Sep 2020 10:40:45 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 6BA2F68BBCF; Tue, 15 Sep 2020 10:40:45 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wr1-f66.google.com (mail-wr1-f66.google.com [209.85.221.66]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 1210168B99E for ; Tue, 15 Sep 2020 10:40:35 +0300 (EEST) Received: by mail-wr1-f66.google.com with SMTP id c18so2136048wrm.9 for ; Tue, 15 Sep 2020 00:40:35 -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=LawyAsLZFGS37hCY46gcFDMzKkTVPUEGQ0gKakEpFLs=; b=fJu3zsWx7mYVLCXR6kDbacDnGVi8VaoY4Kls47jcUrrGYrPMskwKVqswy2RNNVTHlp jBg1V0Vt6j1cxkHr1zsgwUoS9Wm4C1evs4W5Wxl2n5iZfzvPFUkJp6DB59y6jr5BbYjd SKeR6kEu9kapXxbkbF1SAd0TFKXHL2M1bqqMKV5CtXfp8vFe3rl6KoWC9v7Zn1RmFgtE zHrypoynzYy04HgX76aRokko+1DLS1qFXWlVZQHYeu32JO2gnV7gaPzdgODxchU9Fx3C lVA/jmbFzP0pZNz3SJ0uiGB1seZ4LEroCH5YrTanFU8zfj7bRF0Mx1kLeUhjT5GpVw4S tgEg== 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=LawyAsLZFGS37hCY46gcFDMzKkTVPUEGQ0gKakEpFLs=; b=TyER0aVyiEFsf5Iu79/KRdmwyM6RepL2hGN5hT9mt1w6D/3J7b+rS/TCoaN3zMI7as ox4nQpmgzfNU6fcwULoaDVAWtvUo2KQsLxCT71fU7sOWU9WqHOE7Fs6z6SyIB+c3+mqC 3Q21pqJNmXf+GXV2gTk4wDdCTHmQDtmUFplQlI7pxaRLrmclu5MMAlD2sPnUKM4KpNuC bQ736Pjy7OHU8AULp7Fvb2FZuNkmFEaARlStHUrsXh7LYOJ5Y/VUj0rinouB6PnkdRgb 2hCliQlI5VcDv5E8Ktv2D8Sv9cqg4JrG21SereFFRxEA7reUN+g1RTGbYQ+FiKBaeHsR 6BGg== X-Gm-Message-State: AOAM532b6t0TwjwD9TipzZgHahJHOoDiNFHZm/d8yQNieo1u1qMAjHoH qyk2KqpKVXhaz1VlS6hq+llDWoYO6FA= X-Google-Smtp-Source: ABdhPJzUnBnCo5x8TX8iijFkRBEbC4S80nhATXRz2Xzk2t+G6xLsoeNJL7ZRxhHboL7F6XjPiqOeJA== X-Received: by 2002:adf:f34f:: with SMTP id e15mr19102730wrp.387.1600155634384; Tue, 15 Sep 2020 00:40:34 -0700 (PDT) Received: from sblaptop.fritz.box (ipbcc1fb0f.dynamic.kabel-deutschland.de. [188.193.251.15]) by smtp.gmail.com with ESMTPSA id d23sm6112125wmb.6.2020.09.15.00.40.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 15 Sep 2020 00:40:33 -0700 (PDT) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Tue, 15 Sep 2020 09:39:38 +0200 Message-Id: <20200915074000.102622-8-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200915074000.102622-1-andreas.rheinhardt@gmail.com> References: <20200915074000.102622-1-andreas.rheinhardt@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 08/30] avcodec/hcom: Cleanup generically upon init failure 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" Signed-off-by: Andreas Rheinhardt --- libavcodec/hcom.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/libavcodec/hcom.c b/libavcodec/hcom.c index 8300676f98..06fa25fcd2 100644 --- a/libavcodec/hcom.c +++ b/libavcodec/hcom.c @@ -67,15 +67,11 @@ static av_cold int hcom_init(AVCodecContext *avctx) if (s->dict[i].l >= 0 && (s->dict[i].l >= s->dict_entries || s->dict[i].r >= s->dict_entries || - s->dict[i].r < 0 )) { - av_freep(&s->dict); + s->dict[i].r < 0 )) return AVERROR_INVALIDDATA; - } } - if (s->dict[0].l < 0) { - av_freep(&s->dict); + if (s->dict[0].l < 0) return AVERROR_INVALIDDATA; - } avctx->sample_fmt = AV_SAMPLE_FMT_U8; s->dict_entry = 0; @@ -148,4 +144,5 @@ AVCodec ff_hcom_decoder = { .close = hcom_close, .decode = hcom_decode, .capabilities = AV_CODEC_CAP_DR1, + .caps_internal = FF_CODEC_CAP_INIT_CLEANUP, }; From patchwork Tue Sep 15 07:39: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: 22394 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 3626D44B636 for ; Tue, 15 Sep 2020 10:40:48 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 1CA2E68BBB8; Tue, 15 Sep 2020 10:40:48 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wr1-f68.google.com (mail-wr1-f68.google.com [209.85.221.68]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 178BC68BA41 for ; Tue, 15 Sep 2020 10:40:36 +0300 (EEST) Received: by mail-wr1-f68.google.com with SMTP id z4so2179559wrr.4 for ; Tue, 15 Sep 2020 00:40:36 -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=Mjg1nDQhmUI/IbiX3nX9zoqcXLC3meUKD/c3D3o3Des=; b=RHYx0rQY4FwO7j1F6lTCPTx6wHgRC4/OKLCmbYAFXdKfb6aQd8NcafM1Fs5jUzXivR i97TH8aI0TsmsZv+IIsneLg/jsL18Z56/WPcd0y01GUZmKYaXdWR1BmeZsIDmp1pL4IL iGJp5DGX4wSuUG+9cXwOgXncnryJ/+z7iV5ScQM+erCHfiDI1H2GdpfIRxYujWyVG+ar QwPpQt1YvAhxClyObQqK6L8BSMPvOWGLsvIq1C0urbvQ57E0MgLdtCIUrxgqTCPv7HFD iwUz7wJAjQguCr5HPsl2jqFeGcz/r11EoJZ36gSEJHmo64h13Rzm0BpnjxW6lI4WgMtg iiTQ== 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=Mjg1nDQhmUI/IbiX3nX9zoqcXLC3meUKD/c3D3o3Des=; b=Uhcm5jFw05PMs2+04tNmM45wufpDCN4nKHR3vcP71//DIkB5j9A8BAPLAfMwEoG0mb KDQQOJrOSwEvLcK5zACJ0TXeugeKpff4DhbnEk79IcidqR0487R+HPmXn0L6kszc4KOi oqjp05laMG4B+n/kx9HImJeZsEBrgwt9IHCOPg0HSHYsxyb9RBFnGPcl80Jpmz/WK2AV up0v43xWQNGDbFNaqDcwfYZFHqRDawFlIifDVWK5GKUbkhKBqtuIns1Z5mGKemBAW30J 0Z//MRMQ2RHBM6jAXEGuqYfuJDUdotRahyQdQ2HZkab4IHt99IABP1CqzJECHZGZEHxU Sqmg== X-Gm-Message-State: AOAM530Jy3lwrjKmGzRhTZHOImcAI+2Fk1AmOsfGUUGdtJ4hLc2OkSZ6 F6pqfDYA+5/MCMG771fH/LMrrwAm/wQ= X-Google-Smtp-Source: ABdhPJx9gRK4W0W03jSTKC//7zOJ9UjX2A+9JljpQWXDBk4vLWaGl4XPY6RNppmFbGPj5LxKdZeuqg== X-Received: by 2002:adf:e952:: with SMTP id m18mr19600294wrn.171.1600155635347; Tue, 15 Sep 2020 00:40:35 -0700 (PDT) Received: from sblaptop.fritz.box (ipbcc1fb0f.dynamic.kabel-deutschland.de. [188.193.251.15]) by smtp.gmail.com with ESMTPSA id d23sm6112125wmb.6.2020.09.15.00.40.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 15 Sep 2020 00:40:34 -0700 (PDT) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Tue, 15 Sep 2020 09:39:39 +0200 Message-Id: <20200915074000.102622-9-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200915074000.102622-1-andreas.rheinhardt@gmail.com> References: <20200915074000.102622-1-andreas.rheinhardt@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 09/30] avcodec/hmm4video: Cleanup generically on init failure 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" Signed-off-by: Andreas Rheinhardt --- libavcodec/hnm4video.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/libavcodec/hnm4video.c b/libavcodec/hnm4video.c index 177ce1d47a..ac080e398b 100644 --- a/libavcodec/hnm4video.c +++ b/libavcodec/hnm4video.c @@ -486,9 +486,6 @@ static av_cold int hnm_decode_init(AVCodecContext *avctx) || avctx->width * avctx->height == 0 || avctx->height % 2) { av_log(avctx, AV_LOG_ERROR, "av_mallocz() failed\n"); - av_freep(&hnm->buffer1); - av_freep(&hnm->buffer2); - av_freep(&hnm->processed); return AVERROR(ENOMEM); } @@ -519,4 +516,5 @@ AVCodec ff_hnm4_video_decoder = { .close = hnm_decode_end, .decode = hnm_decode_frame, .capabilities = AV_CODEC_CAP_DR1, + .caps_internal = FF_CODEC_CAP_INIT_CLEANUP, }; From patchwork Tue Sep 15 07:39:40 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 22387 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 21AF444B636 for ; Tue, 15 Sep 2020 10:40:39 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 0AD0468B9B9; Tue, 15 Sep 2020 10:40:39 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wr1-f68.google.com (mail-wr1-f68.google.com [209.85.221.68]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 383CA68B77C for ; Tue, 15 Sep 2020 10:40:37 +0300 (EEST) Received: by mail-wr1-f68.google.com with SMTP id o5so2102147wrn.13 for ; Tue, 15 Sep 2020 00:40:37 -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=LYLE+Ag0sfYxIYfFwS6UL47uAHcPO31karHGGjoju8I=; b=YkIvWUYG5ltGqhSWivJHFXh26tBVf9ZMXafgzgy6ldhx6EdsKsG7j2T+l6MW+2s4jB hGZCH81/CfHvyqXMC/FFZpRPBYMLpQClH2spHL4zIZjW5u258P3XnRX9piTOgn2/H7se /uYBvGcFTgRz/YS99IynCa0iUNcXMjNmqbaZ6qzCGu6MdvWN+p/bXM9z90DTJPBxvZdF //7JJ/wmWoqgQ5rMO3d0QZpXoK969FjBXBtQpjHuDE5Gq1b7JksOju40CM/+zo+W0Dxp S5BQCJwt5j+/AM6wAwb6AU2M5NgFGjyGmebwXobNhe6UHP1ZVCTHV24E+ctlo43KzBHi pPGw== 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=LYLE+Ag0sfYxIYfFwS6UL47uAHcPO31karHGGjoju8I=; b=T8p0GjH9Fe2p4HGsP+Js31K1pAVEhtNwOr5JlFTiSdfH3OfeiPeTSjG3IhOms2hgms yzyZ5ebvgyZR4piRYrG44VbplFr1xpyP7IaLVnrRaPfGTvSRs+Z9JoiXNzDYDWFU20hO 7+BIFEzm8A/l2P6/B9ayfzeJ2o0eTEp1RWChQLlWC9DlgR00VQ9mFrmR8bS4MotiTheW x7NmSE8AmHhjBY4LdZ72O2idsTZF6T/n19iubDMZ2H+son7EvD35GTwjzAU7qwuX0uhC Wy3vwZiPbV28ryCaGmKrRobA2/zdiy3Xb1eJ9AK1ZQsFATUNnSDvfIKS8OwtZ9ETqeR4 zrGQ== X-Gm-Message-State: AOAM532fK86gjbG2ymgM8W2yMAoq3bV2ZaSTkt1/fQGnsxkw51ygWRla pnFqeB1B4/oxKdp3n2ZF5ZVYLHt+YS4= X-Google-Smtp-Source: ABdhPJyASmdSE0/USxz/yiNou9vVf5hXbSlIebDtVfq1apC0f4u6DIDnExtEIxsVp+onsLhgf8PPHw== X-Received: by 2002:a5d:4cc1:: with SMTP id c1mr19840475wrt.122.1600155636304; Tue, 15 Sep 2020 00:40:36 -0700 (PDT) Received: from sblaptop.fritz.box (ipbcc1fb0f.dynamic.kabel-deutschland.de. [188.193.251.15]) by smtp.gmail.com with ESMTPSA id d23sm6112125wmb.6.2020.09.15.00.40.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 15 Sep 2020 00:40:35 -0700 (PDT) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Tue, 15 Sep 2020 09:39:40 +0200 Message-Id: <20200915074000.102622-10-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200915074000.102622-1-andreas.rheinhardt@gmail.com> References: <20200915074000.102622-1-andreas.rheinhardt@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 10/30] avcodec/hnm4video: Don't return nonsense error messages 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" The HNM 4 video decoder's init function claimed that an allocation failed if the image dimensions are wrong. This is fixed in this commit: The dimensions are checked before the allocations are attempted. The check whether width * height is zero is redundant as av_image_check_size() already checks for this; it has been removed. Signed-off-by: Andreas Rheinhardt --- libavcodec/hnm4video.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/libavcodec/hnm4video.c b/libavcodec/hnm4video.c index ac080e398b..173691a1eb 100644 --- a/libavcodec/hnm4video.c +++ b/libavcodec/hnm4video.c @@ -473,6 +473,8 @@ static av_cold int hnm_decode_init(AVCodecContext *avctx) ret = av_image_check_size(avctx->width, avctx->height, 0, avctx); if (ret < 0) return ret; + if (avctx->height & 1) + return AVERROR(EINVAL); hnm->version = avctx->extradata[0]; avctx->pix_fmt = AV_PIX_FMT_PAL8; @@ -482,9 +484,7 @@ static av_cold int hnm_decode_init(AVCodecContext *avctx) hnm->buffer2 = av_mallocz(avctx->width * avctx->height); hnm->processed = av_mallocz(avctx->width * avctx->height); - if ( !hnm->buffer1 || !hnm->buffer2 || !hnm->processed - || avctx->width * avctx->height == 0 - || avctx->height % 2) { + if (!hnm->buffer1 || !hnm->buffer2 || !hnm->processed) { av_log(avctx, AV_LOG_ERROR, "av_mallocz() failed\n"); return AVERROR(ENOMEM); } From patchwork Tue Sep 15 07:39:41 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 22389 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 329B844B636 for ; Tue, 15 Sep 2020 10:40:42 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 1EA0268BC23; Tue, 15 Sep 2020 10:40:42 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wr1-f46.google.com (mail-wr1-f46.google.com [209.85.221.46]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 8C95768B85A for ; Tue, 15 Sep 2020 10:40:38 +0300 (EEST) Received: by mail-wr1-f46.google.com with SMTP id w5so2149724wrp.8 for ; Tue, 15 Sep 2020 00:40:38 -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=RKh1fzfoSo6fCgF6mn9T/kDIKRYFidE4vPLsvvkaIQc=; b=gIYRnjDI1oplYtvQ4bGwPtZSuDnkMVkN2+bWdDfcKvgO2pSDLnnxEAwZIiJHznQRzw 5zwr4zFREB47k8qzqy/is5xp/n4H173HT+sqlDN0sTFEsEnU+vv19vb4UfJA2uHpzuKx qzB+SmIpAM8cNvPUkWUm1GasQtze7WtJM6y4cdK84gs2JismDHtkXpVnBMLwRyJ7XGzb cwp8Q6hCJmMuouI58DkDr5EbEyBwuXYqVif2bTJtFmZEE5Ub8IbTquOMAKz0vgMDRskG +WngwkDJkFggCIqoiBVfLgJgr3m0MBE4Im4pqOTVu77aTlDYXefYwxz/yx/oGj0bBzAH vAdw== 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=RKh1fzfoSo6fCgF6mn9T/kDIKRYFidE4vPLsvvkaIQc=; b=epnFtUrwPDvdFhRfOfMuEhdpOdaNv36eEKovnAbqjCY4wId+REt08zi6oHyKVqNxcv 0VT8YpQdTnDPdxeEbPEcc0o1Yz3+pefnpbcngm6ZhiEENlWY+Q6ocvdtQGT7osho1qH9 EUHK1InrnLnQP2QG3dZRgZwh/hfEyBg51qZQ87BWJisoqsqgKiFRXhgWyvkKK6Sy+slZ lMAW/Ox9YVNOR8UHqivLTlgTCLVTVOOjsWLc2BKTwB2D+/CYHxCWkI9b7PcqROVm2lXN G5YdBu3KGhSQ1rIhCO9NX75lhkOqI0tda8T5bWAxx2k4pUn0XKVJO+bHq3JSgcMkhD0C Cueg== X-Gm-Message-State: AOAM5339jJHHEVkwRM194MUoSH6Zh9UmWktsQ7vKRzJyQwsVft9zTFLj gjskgHH6yZVZk1ZNng6MzL8jhY4zGAE= X-Google-Smtp-Source: ABdhPJxwDiLMEMJ1Of+KwOuZlPywmuCBHQLKvshcf6pnBYCnkHbC5jdDWXjyVo9CaP4FS2sSLQrZHQ== X-Received: by 2002:adf:ec90:: with SMTP id z16mr19166353wrn.145.1600155637529; Tue, 15 Sep 2020 00:40:37 -0700 (PDT) Received: from sblaptop.fritz.box (ipbcc1fb0f.dynamic.kabel-deutschland.de. [188.193.251.15]) by smtp.gmail.com with ESMTPSA id d23sm6112125wmb.6.2020.09.15.00.40.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 15 Sep 2020 00:40:37 -0700 (PDT) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Tue, 15 Sep 2020 09:39:41 +0200 Message-Id: <20200915074000.102622-11-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200915074000.102622-1-andreas.rheinhardt@gmail.com> References: <20200915074000.102622-1-andreas.rheinhardt@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 11/30] avcodec/hnm4video: Don't reimplement FFSWAP() 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" Signed-off-by: Andreas Rheinhardt --- libavcodec/hnm4video.c | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/libavcodec/hnm4video.c b/libavcodec/hnm4video.c index 173691a1eb..43baa9c572 100644 --- a/libavcodec/hnm4video.c +++ b/libavcodec/hnm4video.c @@ -387,15 +387,6 @@ static void hnm_update_palette(AVCodecContext *avctx, uint8_t *src, } } -static void hnm_flip_buffers(Hnm4VideoContext *hnm) -{ - uint8_t *temp; - - temp = hnm->current; - hnm->current = hnm->previous; - hnm->previous = temp; -} - static int hnm_decode_frame(AVCodecContext *avctx, void *data, int *got_frame, AVPacket *avpkt) { @@ -450,7 +441,7 @@ static int hnm_decode_frame(AVCodecContext *avctx, void *data, frame->key_frame = 0; memcpy(frame->data[1], hnm->palette, 256 * 4); *got_frame = 1; - hnm_flip_buffers(hnm); + FFSWAP(uint8_t *, hnm->current, hnm->previous); } else { av_log(avctx, AV_LOG_ERROR, "invalid chunk id: %d\n", chunk_id); return AVERROR_INVALIDDATA; From patchwork Tue Sep 15 07:39:42 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 22391 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 74B9B44B636 for ; Tue, 15 Sep 2020 10:40:44 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 5DC7C68BC34; Tue, 15 Sep 2020 10:40:44 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wr1-f67.google.com (mail-wr1-f67.google.com [209.85.221.67]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 55C6368B77C for ; Tue, 15 Sep 2020 10:40:39 +0300 (EEST) Received: by mail-wr1-f67.google.com with SMTP id s12so2119765wrw.11 for ; Tue, 15 Sep 2020 00:40:39 -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=H2qQmthLEF50FmdoTjPyJCOXMADpuLd160K2lsRuRMs=; b=X3+Kcjnf1dVHCCLJC4KpcMDn1bekRpwf4D24x51S76IEnx10pNeEWKIeZ5v91qqc/d wFv9bxOLWJTT7iHNsbkvBjsn9XtD/tp2LvBh0F1vVVhEBifh409zfHslZhrqfK4JUD4/ zErwbLT9rBvMbm12p15Ni02YNaDmpIGplOz40LsK6iz//h1mX+82WSWqMln0VO3JSTx3 N7BrTfz4QBiJIAk1dbZICU6Z8QSKQKotPpVYU2OedSuanpJBZ1bpZPoMWtBrAdVsijTt oTZinBhDzPcsPhtg9fVf33Ut9zK5qm9vrlkRGJTZ+26+JaZj47GEQIfDLFiw+4H5+plr 980Q== 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=H2qQmthLEF50FmdoTjPyJCOXMADpuLd160K2lsRuRMs=; b=RBu0a3BGw9f6f5MYLeOct+9HmQAIEicKxEJlihys8l0gr6MPLUyDj7R80oPmhDc5Nn L+5WW3jOwLzFgSCM15zzC0zTkepsuGfhGhWspfGS7YNGjuTxs3e7N6X/VoyBW6mLTcqD bnxU9NytphKDnkYEvEwAPYOtNFBG3xkrp8VyJzzc/9tqybPls2A+GlmHReADeQnA+tIq 24QrhSFhtnZNrdIqEXv6SiEcZTEF0u7u6d0cUDbpxWs0/ZphJrvwlSYkwl8YthKM4/Ad Nk9WUaWgPZxHgkSOMAlH3VEYsTGGC783Uw+VLWoT5XSVj/n5zRm3VHisGJAt0P2F1LVd BH3Q== X-Gm-Message-State: AOAM5336mndPYsDB8Dl+xnbZRB05qiCI3hq3wDSBj5FjbtqaJG0niTWD gzI62NXfPlImy1x56Q7w9wvl7R61GoI= X-Google-Smtp-Source: ABdhPJy4kfn/byaBH+wz6PMjAv3dlvM+RLW8twOE50Y2vBSchGCN79tJWM4szCSwRfQD/hppT85jVQ== X-Received: by 2002:a5d:40c7:: with SMTP id b7mr20128160wrq.300.1600155638482; Tue, 15 Sep 2020 00:40:38 -0700 (PDT) Received: from sblaptop.fritz.box (ipbcc1fb0f.dynamic.kabel-deutschland.de. [188.193.251.15]) by smtp.gmail.com with ESMTPSA id d23sm6112125wmb.6.2020.09.15.00.40.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 15 Sep 2020 00:40:38 -0700 (PDT) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Tue, 15 Sep 2020 09:39:42 +0200 Message-Id: <20200915074000.102622-12-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200915074000.102622-1-andreas.rheinhardt@gmail.com> References: <20200915074000.102622-1-andreas.rheinhardt@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 12/30] avcodec/hq_hqadata: Make local arrays static 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" Signed-off-by: Andreas Rheinhardt --- libavcodec/hq_hqadata.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/libavcodec/hq_hqadata.c b/libavcodec/hq_hqadata.c index ae9231aa02..56470eadc1 100644 --- a/libavcodec/hq_hqadata.c +++ b/libavcodec/hq_hqadata.c @@ -1142,7 +1142,7 @@ const int32_t *const ff_hq_quants[NUM_HQ_QUANTS][2][4] = { { { qmat3A, qmat48, qmat4C, qmat4C }, { qmat3B, qmat49, qmat4D, qmat4D } }, }; -const uint8_t ff_hq_ac_bits[NUM_HQ_AC_ENTRIES] = { +static const uint8_t hq_ac_bits[NUM_HQ_AC_ENTRIES] = { 3, 3, 4, 4, 4, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, @@ -1192,7 +1192,7 @@ const uint8_t ff_hq_ac_bits[NUM_HQ_AC_ENTRIES] = { 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, }; -const uint16_t ff_hq_ac_codes[NUM_HQ_AC_ENTRIES] = { +static const uint16_t hq_ac_codes[NUM_HQ_AC_ENTRIES] = { 0x0000, 0x0001, 0x0004, 0x0005, 0x0006, 0x000E, 0x000F, 0x0010, 0x0011, 0x0012, 0x0013, 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, @@ -8373,5 +8373,5 @@ av_cold int ff_hq_init_vlcs(HQContext *c) return ret; return init_vlc(&c->hq_ac_vlc, 9, NUM_HQ_AC_ENTRIES, - ff_hq_ac_bits, 1, 1, ff_hq_ac_codes, 2, 2, 0); + hq_ac_bits, 1, 1, hq_ac_codes, 2, 2, 0); } From patchwork Tue Sep 15 07:39:43 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 22393 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 DA66244B636 for ; Tue, 15 Sep 2020 10:40:46 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id C9DB568BC51; Tue, 15 Sep 2020 10:40:46 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wr1-f68.google.com (mail-wr1-f68.google.com [209.85.221.68]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 3BBDC68BA1A for ; Tue, 15 Sep 2020 10:40:40 +0300 (EEST) Received: by mail-wr1-f68.google.com with SMTP id j2so2155358wrx.7 for ; Tue, 15 Sep 2020 00:40:40 -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=X7evaXchg5xk8c/xjAfDUV6ormhpfroNcFuXJMmXpBk=; b=msj83cMpJ7dAyowTduFPvWUEQ0L9dCNK1QJJfyufHWsqEcciISFC8O41Pwr8oeK1EH dx2Idq9dujztQRv5gtDdK2dp7YLcvIobChexdQBMAMMSPbYu7oEeZykw92pRYhibc905 83qQrtuC4RkTZs7niHA2APLZjXVOCpJIZnTOyAP2+teukNGA1QIjcJHdxOR0wKfwZQQD QD4qLJtrZPFD9vG3VNoCqgDehKwnvoFrZTWVBZFqiMl6ZDwqK0l8AXoR17oiVfYb8lZx YY7YOKyy3rMk9rxKjWEY6RVaI3jBAyj81nBziNJmFgeR2wkKnxyM/otyeQNxzFUhf9sI Yydw== 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=X7evaXchg5xk8c/xjAfDUV6ormhpfroNcFuXJMmXpBk=; b=cHObDo+l0ZJm2/c/H6ODbMNH354CCsNbIuCqRxrfpYNlhU3pEPo5wNYmBZF9TnzFBF ucMKu4B7+R7vTNgwdHZViTmwVfsOrFx+I+4vyJbLa8U9qtDx0QlGjsdn5ptEffVr9+gd pfn8C3CRtBALLdc6he/sb67+aKLZ9H7qnFxOt4royn8/6ha7KBmwwyDWpUBpl1PAwGKi C8ETIFIT0r0ZbPPwqaI+TB81CPDJ41v8FebJdRuzPesTkJSHUgDtobG61OLy/22IaNG5 TbZlXRpKycyEbxRxzs4yqP2bdeEXlRpA5RA7GbXrQ/5omeUd1QgNVUuo15eua/IhuyND 0MTw== X-Gm-Message-State: AOAM530gd33ld6/itnGIWCePghB7NeYQqY+RtUMGYXmvN1dI3AVPM/9T cfaDdU7u996vqoJ0/AIydZtpr96NLe4= X-Google-Smtp-Source: ABdhPJycIq2bPgjqKOO6g3N/uNQmAsB+nibHJtEMiTAY0kuUxe9NtBi45bso2p7Llg9X/ccv4PAuKw== X-Received: by 2002:adf:e9c1:: with SMTP id l1mr20071993wrn.68.1600155639315; Tue, 15 Sep 2020 00:40:39 -0700 (PDT) Received: from sblaptop.fritz.box (ipbcc1fb0f.dynamic.kabel-deutschland.de. [188.193.251.15]) by smtp.gmail.com with ESMTPSA id d23sm6112125wmb.6.2020.09.15.00.40.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 15 Sep 2020 00:40:38 -0700 (PDT) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Tue, 15 Sep 2020 09:39:43 +0200 Message-Id: <20200915074000.102622-13-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200915074000.102622-1-andreas.rheinhardt@gmail.com> References: <20200915074000.102622-1-andreas.rheinhardt@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 13/30] avcodec/imc: Avoid indirection when calling float dsp function 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" Do this by only keeping the only function pointer from the AVFloatDSPContext that is needed lateron. Signed-off-by: Andreas Rheinhardt --- libavcodec/imc.c | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/libavcodec/imc.c b/libavcodec/imc.c index 82a908160a..6766d53643 100644 --- a/libavcodec/imc.c +++ b/libavcodec/imc.c @@ -95,7 +95,7 @@ typedef struct IMCContext { GetBitContext gb; BswapDSPContext bdsp; - AVFloatDSPContext *fdsp; + void (*butterflies_float)(float *av_restrict v1, float *av_restrict v2, int len); FFTContext fft; DECLARE_ALIGNED(32, FFTComplex, samples)[COEFFS / 2]; float *out_samples; @@ -179,6 +179,7 @@ static av_cold int imc_decode_init(AVCodecContext *avctx) { int i, j, ret; IMCContext *q = avctx->priv_data; + AVFloatDSPContext *fdsp; double r1, r2; if (avctx->codec_id == AV_CODEC_ID_IAC && avctx->sample_rate > 96000) { @@ -252,17 +253,16 @@ static av_cold int imc_decode_init(AVCodecContext *avctx) memcpy(q->weights2, imc_weights2, sizeof(imc_weights2)); } + fdsp = avpriv_float_dsp_alloc(avctx->flags & AV_CODEC_FLAG_BITEXACT); + if (!fdsp) + return AVERROR(ENOMEM); + q->butterflies_float = fdsp->butterflies_float; + av_free(fdsp); if ((ret = ff_fft_init(&q->fft, 7, 1))) { av_log(avctx, AV_LOG_INFO, "FFT init failed\n"); return ret; } ff_bswapdsp_init(&q->bdsp); - q->fdsp = avpriv_float_dsp_alloc(avctx->flags & AV_CODEC_FLAG_BITEXACT); - if (!q->fdsp) { - ff_fft_end(&q->fft); - - return AVERROR(ENOMEM); - } avctx->sample_fmt = AV_SAMPLE_FMT_FLTP; avctx->channel_layout = avctx->channels == 1 ? AV_CH_LAYOUT_MONO @@ -1050,8 +1050,8 @@ static int imc_decode_frame(AVCodecContext *avctx, void *data, } if (avctx->channels == 2) { - q->fdsp->butterflies_float((float *)frame->extended_data[0], - (float *)frame->extended_data[1], COEFFS); + q->butterflies_float((float *)frame->extended_data[0], + (float *)frame->extended_data[1], COEFFS); } *got_frame_ptr = 1; @@ -1064,7 +1064,6 @@ static av_cold int imc_decode_close(AVCodecContext * avctx) IMCContext *q = avctx->priv_data; ff_fft_end(&q->fft); - av_freep(&q->fdsp); return 0; } From patchwork Tue Sep 15 07:39:44 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 22395 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 4DAA844B636 for ; Tue, 15 Sep 2020 10:40:49 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 39D7068BC55; Tue, 15 Sep 2020 10:40:49 +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 22B7768BBB3 for ; Tue, 15 Sep 2020 10:40:40 +0300 (EEST) Received: by mail-wr1-f65.google.com with SMTP id e16so2197809wrm.2 for ; Tue, 15 Sep 2020 00:40:40 -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=p1Ctfx7MPghFdgZHZecT2OULUzoqjBvmuGH6Cg4pZuU=; b=jUjaYPpkZ9hkSZ9ZPs49YeI7sYvFXHW5KPkmRppsXoR082ylHDGaSO8M9JsMZLVA4J y1N5Y5NvbwbZb3NPqAbmH2kBScsRfofLC2qpv+JFrw8XzSMH/NFNXtoE0c20vWlXPyxE Aga6Gc/VzOZcyg7fedjR976sKpi7nQNziDWRZPpOeOe8ZicsbORsBxaBFm5Z/+YFJ2eK HuOxoGmC37Flm//NmdzJl4p8sccpekLQKc1TdNHt0EV99etuxNq3y2di636Cy501aCdL tn2EQ/tcQmKJbKIYoM5kv4qiHCwlDLTSxi40s1r1/IVP0rvM/i4BnG0MfDBkaf3Yrml/ 9L8A== 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=p1Ctfx7MPghFdgZHZecT2OULUzoqjBvmuGH6Cg4pZuU=; b=W0Ox/As3H+1vzdUjNEhLCDMPGilEVfq10TPNFAtLe/uelP9nFr0yGNUVvlhEDUyDu3 9OJmGJJGUuPaY80yXCjHiGhiPMbw3dhD9Qnpn6OO/JZVMhj1SbONvRtI3aRcMNXbYHI8 rlC33f+4nDtf0YwSIvBxo0y8tePypHPT81O1nEhsQOu2ZT1fbd015OziszLt7VawzFMn ZLSdFy5D+LIQwtN+J7vX8RxWtMZ2hOPQPWwwvuwcfMNq1kuAgH4QtKQMH2YD0yZRnHqt RMnkF9+EcmbWLWZY5qtKCClHmr1F4viHwCu8kgqp8R8f+Yhe4NCgcSIO4COXKZ3jPcq8 FO+A== X-Gm-Message-State: AOAM533ujEXl4Mxpb1EahcwbJLIj6OqVE46z6FM+mU8ShvkDb7QvsLFb 6Yv62f/WE1ZE8R3yHjmLGCqivRQj0hs= X-Google-Smtp-Source: ABdhPJw7YzCIcWswI23/RR8HgnNCrnvqIaX2XeJbT8G3KVEwnE0AvZt2ATTKghXUwgTEbp9vU5LOHQ== X-Received: by 2002:adf:cf01:: with SMTP id o1mr20229074wrj.421.1600155640212; Tue, 15 Sep 2020 00:40:40 -0700 (PDT) Received: from sblaptop.fritz.box (ipbcc1fb0f.dynamic.kabel-deutschland.de. [188.193.251.15]) by smtp.gmail.com with ESMTPSA id d23sm6112125wmb.6.2020.09.15.00.40.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 15 Sep 2020 00:40:39 -0700 (PDT) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Tue, 15 Sep 2020 09:39:44 +0200 Message-Id: <20200915074000.102622-14-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200915074000.102622-1-andreas.rheinhardt@gmail.com> References: <20200915074000.102622-1-andreas.rheinhardt@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 14/30] avcodec/indeo3: Cleanup generically after init failure 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" Signed-off-by: Andreas Rheinhardt --- libavcodec/indeo3.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/libavcodec/indeo3.c b/libavcodec/indeo3.c index 71d478c9fc..75113a7541 100644 --- a/libavcodec/indeo3.c +++ b/libavcodec/indeo3.c @@ -203,10 +203,8 @@ static av_cold int allocate_frame_buffers(Indeo3DecodeContext *ctx, ctx->planes[p].buffers[0] = av_malloc(!p ? luma_size : chroma_size); ctx->planes[p].buffers[1] = av_malloc(!p ? luma_size : chroma_size); - if (!ctx->planes[p].buffers[0] || !ctx->planes[p].buffers[1]) { - free_frame_buffers(ctx); + if (!ctx->planes[p].buffers[0] || !ctx->planes[p].buffers[1]) return AVERROR(ENOMEM); - } /* fill the INTRA prediction lines with the middle pixel value = 64 */ memset(ctx->planes[p].buffers[0], 0x40, ctx->planes[p].pitch); @@ -1143,4 +1141,5 @@ AVCodec ff_indeo3_decoder = { .close = decode_close, .decode = decode_frame, .capabilities = AV_CODEC_CAP_DR1, + .caps_internal = FF_CODEC_CAP_INIT_CLEANUP, }; From patchwork Tue Sep 15 07:39:45 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 22396 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 8F52344B636 for ; Tue, 15 Sep 2020 10:40:50 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 7D0B168BC5D; Tue, 15 Sep 2020 10:40:50 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wr1-f68.google.com (mail-wr1-f68.google.com [209.85.221.68]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 1AF9268BB73 for ; Tue, 15 Sep 2020 10:40:42 +0300 (EEST) Received: by mail-wr1-f68.google.com with SMTP id o5so2102470wrn.13 for ; Tue, 15 Sep 2020 00:40:42 -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=Oy7fES90AVjV1vutYJtBNLk1/Y4oOiulI+QVPssEcNM=; b=BwsdfbrnX/ZY62t5VugKfAzWNRlJLRCzl09oa8DwuHRwXGM+TskUX4M5BZxGfTcXkf E9qqgEZrmPYkURvW1FujBIYFraQHiEXkzpCyENGOm0mPoUpOkX2sUPY7tI2dztM0dLEC q/ZO++IXWLz6WTsdevlcIHvxj+vlWjc08oPEQdHghviie4NiYDB/RTAgMlp6+KU7bXsd cNU7Fr1quekxLFqqroKg4hCvbxFZk/3TmDa937OrYlk9SXJee1rawXAI3mq+dzZJVs9h ZUgBVrsxIxbF3PK4SlqGdS1qR/AZmzZZ3kcZaAiMT8jGmyJ8HQlVelJ134HuwJb8SgtP NuuQ== 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=Oy7fES90AVjV1vutYJtBNLk1/Y4oOiulI+QVPssEcNM=; b=DGRq+x31VN9CVE+l/1GqB+DIGor1phn6mqT/PUGWsv0/GBmS94fecbcUnt3hEgMRCW wLd5nibcLofAwNiIj2CMoUNTABpRoyU85AMcOmHJS2eTHnScb529Vr8hC6EG99LUFw8m MsQK9WPuP2pbOv/AkubsrM56OOWZYIhyUZaPIBw60jcRN8trgSGSMLdiEsTL3DWVVPfq 86HSiwzSgQwbg/RIl6JrRxP9U2zIZgXcA9aPB7JQoS99Xm3V661MqlzfrLw6F7NVgpeM FO3I3aWBIk/fuVbNeF5vyANCyHWPdYghYFdEEdLIG7ZNieK7bSZVeplqXAPZK7LrgseC f97Q== X-Gm-Message-State: AOAM533zGTawN0jxS/5tHgYD7eYGXEEKdIbe24rCELZiT4I7jY2sx77F 8TbNRzuVdQtJkwCnzK+6UGtL7rRSH24= X-Google-Smtp-Source: ABdhPJyBZZMDJ21kCTDHtV8lJVJFiHwE4vBpLdkRLuWa6WUs+gLykDnpfsPE8iIpDt4zPSzGIgYBYQ== X-Received: by 2002:adf:fc0a:: with SMTP id i10mr19531159wrr.111.1600155641217; Tue, 15 Sep 2020 00:40:41 -0700 (PDT) Received: from sblaptop.fritz.box (ipbcc1fb0f.dynamic.kabel-deutschland.de. [188.193.251.15]) by smtp.gmail.com with ESMTPSA id d23sm6112125wmb.6.2020.09.15.00.40.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 15 Sep 2020 00:40:40 -0700 (PDT) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Tue, 15 Sep 2020 09:39:45 +0200 Message-Id: <20200915074000.102622-15-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200915074000.102622-1-andreas.rheinhardt@gmail.com> References: <20200915074000.102622-1-andreas.rheinhardt@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 15/30] avcodec/ivi: Fix segfault on allocation error 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" If allocating the tiles array for indeo 4/5 fails, the context is in an inconsistent state, because the counter for the number of tiles is > 0. This will lead to a segfault when freeing the tiles' substructures. Fix this by setting the number of tiles to zero if the allocation was unsuccessfull. Signed-off-by: Andreas Rheinhardt --- libavcodec/ivi.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/libavcodec/ivi.c b/libavcodec/ivi.c index c5c50fb5c1..c10984e83e 100644 --- a/libavcodec/ivi.c +++ b/libavcodec/ivi.c @@ -442,8 +442,10 @@ av_cold int ff_ivi_init_tiles(IVIPlaneDesc *planes, av_freep(&band->tiles); band->tiles = av_mallocz_array(band->num_tiles, sizeof(IVITile)); - if (!band->tiles) + if (!band->tiles) { + band->num_tiles = 0; return AVERROR(ENOMEM); + } /* use the first luma band as reference for motion vectors * and quant */ From patchwork Tue Sep 15 07:39:46 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 22397 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 D73FB44B636 for ; Tue, 15 Sep 2020 10:40:51 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id C19B868BC6C; Tue, 15 Sep 2020 10:40:51 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wr1-f68.google.com (mail-wr1-f68.google.com [209.85.221.68]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id CAAA968BC2C for ; Tue, 15 Sep 2020 10:40:42 +0300 (EEST) Received: by mail-wr1-f68.google.com with SMTP id w5so2149947wrp.8 for ; Tue, 15 Sep 2020 00:40:42 -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=PQY8HoAiNfkgPjxjcVL2MxqUybojBGQTAgl/L/mLmp0=; b=scL076zmo0Ec6te8E16OCeZrXgU31Frm4TEommB45RJSD/l33hvITgNst8y+2PED9J Xv0HJ0sz/gAziBRVM2gDitqgTD294F3phxrRMo9ymiJannPAXOQZgvPOYczUva+V+JVV s3syTgIhpERLRr2Y9hsJnra2Y4wtPdbNM7xC4CGdLCS90EXbv8+gMeEjA8784uif7NbY N812qlNcB/VeRQEH4hLb6Oi0ZmU7E3OoO3BL4aw4ZnURpLawbucdlvswDj0G50OPoxdW LrOksw2QxRqJsnFfCk5I97Ihp7bjhtp0fTKQLj+YZ3WeAK4d6/azD8BMspaf0GjEJHPD UdqA== 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=PQY8HoAiNfkgPjxjcVL2MxqUybojBGQTAgl/L/mLmp0=; b=GrH75cYWuBsdxxobPk6SWWpPuI6gIPDtYWMSqnnQE3+PDtXIQXUi3ixXBDhHV9JtbU zgXz30UpNtj8nlxe8SfZgodsXXRiKZkSuzLrMEpJfjDdkbnf0fD0YmmXDayveuE4BSln FnRyT6Ta6JbYQ1E/IhS6Wt8AQtk8Yis/Fl/7mAFcMama3cv0zie6qnIM5vrnuksWGvYq mML3WrRl1hZLFO5R5P9dl9glksU6cKzJE9cN5d2Fg+QmaUJlabTz1wQeNiXOveJtxvpf cLP5x8HHO8fbFXfS1vwq8UOri3IIAcT4Mc5HvWlJ2mLrpx8rzvFZCm4feh/vaGpKvKYj Sffw== X-Gm-Message-State: AOAM53164K2ySjLunJl+rkVMwzw1fT1npQLE65Gnlb+yvB0OIM3gPHYN MQJ6FXSEYuQwni3xjzoe74Lj345Uhps= X-Google-Smtp-Source: ABdhPJwCHI6y/tz6an0F7CJF/ipwk87/D1gad0QbbZloHjSkSRDZdhGiwxdAQNhD5vJSXBAN2KARew== X-Received: by 2002:a5d:6049:: with SMTP id j9mr15759387wrt.295.1600155642079; Tue, 15 Sep 2020 00:40:42 -0700 (PDT) Received: from sblaptop.fritz.box (ipbcc1fb0f.dynamic.kabel-deutschland.de. [188.193.251.15]) by smtp.gmail.com with ESMTPSA id d23sm6112125wmb.6.2020.09.15.00.40.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 15 Sep 2020 00:40:41 -0700 (PDT) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Tue, 15 Sep 2020 09:39:46 +0200 Message-Id: <20200915074000.102622-16-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200915074000.102622-1-andreas.rheinhardt@gmail.com> References: <20200915074000.102622-1-andreas.rheinhardt@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 16/30] avcodec/indeo5: Fix memleaks upon allocation error 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" ff_ivi_init_planes() might error out after having allocated some arrays. Set the FF_CODEC_CAP_INIT_CLEANUP flag in order to free these arrays in this case. Signed-off-by: Andreas Rheinhardt --- libavcodec/indeo5.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/libavcodec/indeo5.c b/libavcodec/indeo5.c index 4ccdbcaf0a..ac15d31fef 100644 --- a/libavcodec/indeo5.c +++ b/libavcodec/indeo5.c @@ -30,6 +30,7 @@ #define BITSTREAM_READER_LE #include "avcodec.h" #include "get_bits.h" +#include "internal.h" #include "ivi.h" #include "ivi_dsp.h" #include "indeo5data.h" @@ -692,4 +693,5 @@ AVCodec ff_indeo5_decoder = { .close = ff_ivi_decode_close, .decode = ff_ivi_decode_frame, .capabilities = AV_CODEC_CAP_DR1, + .caps_internal = FF_CODEC_CAP_INIT_CLEANUP, }; From patchwork Tue Sep 15 07:39:47 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 22398 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 E744544B636 for ; Tue, 15 Sep 2020 10:40:52 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id CDAD868BC6E; Tue, 15 Sep 2020 10:40:52 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wm1-f66.google.com (mail-wm1-f66.google.com [209.85.128.66]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id D988768BC24 for ; Tue, 15 Sep 2020 10:40:43 +0300 (EEST) Received: by mail-wm1-f66.google.com with SMTP id e17so2326593wme.0 for ; Tue, 15 Sep 2020 00:40:43 -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=v5EDvB0XDKC+VgRsErdOTl+I6+wSfy1gaabsJ8aGTyo=; b=rEKjSeERlNSmEctWdUjp50IJ5qfHAcT4QjalSfyIFSQoevwNs0E3na4u9ORyTWc/K9 eHy0hxeiUKCAI9F23ltSh4bcBwA74E0sAKcxzCvuZGTkdsqNxZV40eysJucBMLzfIt9Z t/BY9+CohjscGp0MkJ7FcIXGCB5l88MoW6avxZ/Xkdo/pyEiJP4d/ZGj2oNdnsZknfb+ aikqyiuaJiogg3K8yFcyTH6/I8B07xwXmSJ22sstpxBOSlIEld/kdU95V7eZwPAaN5yl bE/EduX5i1Of3mkhaVFoh7cX4qCWGi4oxOvYXLc7COI69Sbc7KWodQnoSbDPavNBQn7J EIew== 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=v5EDvB0XDKC+VgRsErdOTl+I6+wSfy1gaabsJ8aGTyo=; b=qaCgCzGKnEJQ2cmUzMTkRAvaMRi8/LjqWV0mn+tf/u3x2MjAC5NPVsBphwPdXzEo1r QKrp8i/aVdR+gkNsTfuA/k3YBgyGyZCKnHI+jSdLhV+4bi4JNnqY4VJxrrz55NHzODBy duCGYcb7wm81Jrng0WoxJZyVi+qim1ZQNAwcFOGTXBztT8iy6Z/PuEKA1eXa8PsSHCbH SvF/5ITsO4h0df3IDi3IwQBiohcRJO2FtvXqRo2dh2/xM55y5ZVOAYd8mmLwOh2iSXi5 VidTFdbO1WrZdf3gOBi4BA3dfWDZbbdMk5QHU8Vr/XZzvrltEjqim9aDxJ+KWUoC6Il8 psYw== X-Gm-Message-State: AOAM533qjxs8aBAz2JiCN0hSgn8tlUfrNqxepSat8yLA2GVZBUChz8fi yDF8M8zLnLIDPWhRifafGIBuRsbkhv8= X-Google-Smtp-Source: ABdhPJwJXYjLk9EuYld5HSTulYn5/MWlc4ElAtuVFp3IbOKMnBuk9iCm0yukJu1EY0aqQI2aVHLj+Q== X-Received: by 2002:a1c:6484:: with SMTP id y126mr3190063wmb.177.1600155643138; Tue, 15 Sep 2020 00:40:43 -0700 (PDT) Received: from sblaptop.fritz.box (ipbcc1fb0f.dynamic.kabel-deutschland.de. [188.193.251.15]) by smtp.gmail.com with ESMTPSA id d23sm6112125wmb.6.2020.09.15.00.40.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 15 Sep 2020 00:40:42 -0700 (PDT) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Tue, 15 Sep 2020 09:39:47 +0200 Message-Id: <20200915074000.102622-17-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200915074000.102622-1-andreas.rheinhardt@gmail.com> References: <20200915074000.102622-1-andreas.rheinhardt@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 17/30] avcodec/j2kenc: Fix leaks on init failure 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" The JPEG2000 encoder did not clean up after itself on error. This commit fixes this by modifying the cleanup function to be able to handle only partially allocated structures and by setting the FF_CODEC_CAP_INIT_CLEANUP flag. Signed-off-by: Andreas Rheinhardt --- libavcodec/j2kenc.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/libavcodec/j2kenc.c b/libavcodec/j2kenc.c index 4cefe6d7fb..e3c5a32188 100644 --- a/libavcodec/j2kenc.c +++ b/libavcodec/j2kenc.c @@ -459,7 +459,7 @@ static int init_tiles(Jpeg2000EncoderContext *s) s->numXtiles = ff_jpeg2000_ceildiv(s->width, s->tile_width); s->numYtiles = ff_jpeg2000_ceildiv(s->height, s->tile_height); - s->tile = av_malloc_array(s->numXtiles, s->numYtiles * sizeof(Jpeg2000Tile)); + s->tile = av_calloc(s->numXtiles, s->numYtiles * sizeof(Jpeg2000Tile)); if (!s->tile) return AVERROR(ENOMEM); for (tileno = 0, tiley = 0; tiley < s->numYtiles; tiley++) @@ -1495,12 +1495,16 @@ static void cleanup(Jpeg2000EncoderContext *s) int tileno, compno; Jpeg2000CodingStyle *codsty = &s->codsty; + if (!s->tile) + return; for (tileno = 0; tileno < s->numXtiles * s->numYtiles; tileno++){ - for (compno = 0; compno < s->ncomponents; compno++){ - Jpeg2000Component *comp = s->tile[tileno].comp + compno; - ff_jpeg2000_cleanup(comp, codsty); + if (s->tile[tileno].comp) { + for (compno = 0; compno < s->ncomponents; compno++){ + Jpeg2000Component *comp = s->tile[tileno].comp + compno; + ff_jpeg2000_cleanup(comp, codsty); + } + av_freep(&s->tile[tileno].comp); } - av_freep(&s->tile[tileno].comp); av_freep(&s->tile[tileno].layer_rates); } av_freep(&s->tile); @@ -1853,4 +1857,5 @@ AVCodec ff_jpeg2000_encoder = { AV_PIX_FMT_NONE }, .priv_class = &j2k_class, + .caps_internal = FF_CODEC_CAP_INIT_CLEANUP, }; From patchwork Tue Sep 15 07:39:48 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 22400 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 2736A44B636 for ; Tue, 15 Sep 2020 10:40:55 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 0182768BC31; Tue, 15 Sep 2020 10:40:55 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wm1-f68.google.com (mail-wm1-f68.google.com [209.85.128.68]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 4050768BC51 for ; Tue, 15 Sep 2020 10:40:45 +0300 (EEST) Received: by mail-wm1-f68.google.com with SMTP id d4so2294366wmd.5 for ; Tue, 15 Sep 2020 00:40:45 -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=gh6TwP8ulrqcXUYm7XMrLAhVsTZPigIjuGcJJbNSqxo=; b=T4D0/X68r0ENfX5slcq4uMHVlotoLO3oUWa3sKxHeeYRlITsD7DPE29DthMJVCrG0F bL4NNLHJxQEBq1T3cEizeZQNU08jzMlLCukl+oWU1jEsHnDowl6FkRZ9ao9nDc1Fj4Lo lw7wHfPn+aaV4mw4ZvVnVXTVW4SpQnJLPRJDBIw1npp2bhVTDjfjdXtx5t5RWxvBTPEX FwWLR5mrLYjHJxmlMe5lX1tpBLZSjL8F6nQLrA1Ommw4ym5OxZS0cm1d1j+X8UjLrb/2 fajYlDzEzRiBjxVLHuVZd7SEZEMKp7C00Ll4yxeT782apmaO2iVGekfqnbMEYYM4trmM mNwA== 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=gh6TwP8ulrqcXUYm7XMrLAhVsTZPigIjuGcJJbNSqxo=; b=tmaNWqiaJWNc3KX2D/6b4x2IYtOluit1TqLBE1nSqJUOCTXw+Vap4ayeQ/T6e5ADdf NYr53Ltof5Agxo/7oKonu3NbFPmjC6mVErFUYj1+BtsZeIq8RmB9Td0hosSyPvODmj4n CPgglumAUmzWIR2UVNMA5xJJUNCVuQRb7XUbyXvC4yiuvthmAEhLxPeDoSUvDgQqCHLa hoZeWLVt7BvHEid3WtwNloM4hGEn5JWnAdDtU8fjIrEBnItjrvyitacZiv6a63tyZCFw Vjivy6IMLa30mDP4e5+eMLp3WQZexyslXqte/+Ij02VeXJb+Q5DFVrP2BwgJzCbmHkTt ZL9A== X-Gm-Message-State: AOAM531sjPNHVY7BcgT50AbXT/uSEIeZfI63NqVVTFdp6wCsQSwd4BW9 oZlF2c8YJTu+fYmOrQwlTNw6AOts1fM= X-Google-Smtp-Source: ABdhPJwgJlrsKioPNciYAnE4MOZCOqSo5sGnFDyQd2mO6NabBe/BfBlqiOJ5uWUAR+kbAMw6sfUs+w== X-Received: by 2002:a1c:9a57:: with SMTP id c84mr3206597wme.136.1600155644478; Tue, 15 Sep 2020 00:40:44 -0700 (PDT) Received: from sblaptop.fritz.box (ipbcc1fb0f.dynamic.kabel-deutschland.de. [188.193.251.15]) by smtp.gmail.com with ESMTPSA id d23sm6112125wmb.6.2020.09.15.00.40.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 15 Sep 2020 00:40:44 -0700 (PDT) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Tue, 15 Sep 2020 09:39:48 +0200 Message-Id: <20200915074000.102622-18-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200915074000.102622-1-andreas.rheinhardt@gmail.com> References: <20200915074000.102622-1-andreas.rheinhardt@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 18/30] avcodec/ljpegenc: Don't free buffer known to be NULL 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" The lossless JPEG encoder allocates one buffer in its init function and freeing said buffer is the only thing done in its close function. Despite this the init function called the close function if allocating said buffer fails, although there is nothing to free in this case. This commit stops doing this. Signed-off-by: Andreas Rheinhardt --- libavcodec/ljpegenc.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/libavcodec/ljpegenc.c b/libavcodec/ljpegenc.c index 70eff9e6fe..39ce5a0089 100644 --- a/libavcodec/ljpegenc.c +++ b/libavcodec/ljpegenc.c @@ -309,7 +309,7 @@ FF_ENABLE_DEPRECATION_WARNINGS s->scratch = av_malloc_array(avctx->width + 1, sizeof(*s->scratch)); if (!s->scratch) - goto fail; + return AVERROR(ENOMEM); ff_idctdsp_init(&s->idsp, avctx); ff_init_scantable(s->idsp.idct_permutation, &s->scantable, @@ -327,9 +327,6 @@ FF_ENABLE_DEPRECATION_WARNINGS avpriv_mjpeg_val_dc); return 0; -fail: - ljpeg_encode_close(avctx); - return AVERROR(ENOMEM); } #define OFFSET(x) offsetof(LJpegEncContext, x) From patchwork Tue Sep 15 07:39:49 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 22399 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 0699944B636 for ; Tue, 15 Sep 2020 10:40:54 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id E68FD68BC7C; Tue, 15 Sep 2020 10:40:53 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wm1-f67.google.com (mail-wm1-f67.google.com [209.85.128.67]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 20FA868BC4D for ; Tue, 15 Sep 2020 10:40:46 +0300 (EEST) Received: by mail-wm1-f67.google.com with SMTP id q9so2313284wmj.2 for ; Tue, 15 Sep 2020 00:40:46 -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=EZ3AMHuq5sCq5jr7cfjMa+U+ntOwm75ZLe7fGqe3NxI=; b=DFaO4LF6U0DLS1ZAGEfsq0EvJ/jelSsyjU1dOc23eDbfCFWPRchBneKXksLF+HqPTe EGdWTPLBK/OIwU3rD+dw3drRdDpMjCsE0Eg1NRKaSkyRnu1B6aPI8b6SYSt03imXpFqf h+4OLjdk5V+iIxCtEisfu4nIcU7sBpBSLBgKt7ra0AEqGE5Fd7BzhO9FBOr1lYF+Xto1 VSwGV4KwXgYC+1pvfc/pEFYcxunru9w/Gyx6RPas8RUNQwzI9nXV8Qlnw2eY5nX8QDDB R2f4H8H5CgJbPUHKTaiBR30YI4ZOQn5olvYr2M4Q7doWexzYPG7acTAZiIPS+g0JQmWV TPQQ== 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=EZ3AMHuq5sCq5jr7cfjMa+U+ntOwm75ZLe7fGqe3NxI=; b=i6HDTR0fhZJaQ18adQqOMEJ1BoJdLlZA1Vibk2nPItJOwoYslCjHgOX5zlgsD+xJlL FCmYgWKR/jAmj2lSlJ7CRainjp2aa0ZijnTfynWjo7X98I7eG/32G/OrcVuN9v2TnH// NhzQT7SpKCnUpgsAt/VMKpny60cOK8TfkPdFSdEQulsvf8OTgG6JFgK/WCkocIZ+CKvO /wud7XHGR5h/E57iFNRw2rqVva3Q9VMQTpmLJbjZMJ889fnfU3nuZwUw3/BB8gFXOu3l M01r1hcagcoc1rIzvLjDEOIgvcY6VjBcwFjRQhyC/GIV1lVA+3Q0DpKvdRgARjokB0cD oUFQ== X-Gm-Message-State: AOAM532qtpqUzKMl2WW5pndpiIc0Fb/zp0bnvMTjQUvIfL8xOwMucmfr A7hYSQUTsnvUJHy7yY32eNv0Z6rdEAw= X-Google-Smtp-Source: ABdhPJwOJacxbDrv/peZ/9GcUm+IdVAWGPU61biUcWZwZupWvPr839SuBRkBAr4XjyIy/mTrGdWexw== X-Received: by 2002:a7b:c0c5:: with SMTP id s5mr3197831wmh.152.1600155645306; Tue, 15 Sep 2020 00:40:45 -0700 (PDT) Received: from sblaptop.fritz.box (ipbcc1fb0f.dynamic.kabel-deutschland.de. [188.193.251.15]) by smtp.gmail.com with ESMTPSA id d23sm6112125wmb.6.2020.09.15.00.40.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 15 Sep 2020 00:40:44 -0700 (PDT) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Tue, 15 Sep 2020 09:39:49 +0200 Message-Id: <20200915074000.102622-19-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200915074000.102622-1-andreas.rheinhardt@gmail.com> References: <20200915074000.102622-1-andreas.rheinhardt@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 19/30] avcodec/magicyuvenc: Fix memleak upon init failure 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" If an error happens during init after an allocation has succeeded, the already allocated data leaked up until now. Fix this by setting the FF_CODEC_CAP_INIT_CLEANUP flag. Signed-off-by: Andreas Rheinhardt --- libavcodec/magicyuvenc.c | 1 + 1 file changed, 1 insertion(+) diff --git a/libavcodec/magicyuvenc.c b/libavcodec/magicyuvenc.c index e9fe3bf519..0bd6b8ef6a 100644 --- a/libavcodec/magicyuvenc.c +++ b/libavcodec/magicyuvenc.c @@ -587,4 +587,5 @@ AVCodec ff_magicyuv_encoder = { AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUVA444P, AV_PIX_FMT_GRAY8, AV_PIX_FMT_NONE }, + .caps_internal = FF_CODEC_CAP_INIT_CLEANUP, }; From patchwork Tue Sep 15 07:39:50 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 22401 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 06B8A44B72B for ; Tue, 15 Sep 2020 10:43:00 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 0912668BC5C; Tue, 15 Sep 2020 10:40:56 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wm1-f66.google.com (mail-wm1-f66.google.com [209.85.128.66]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 1C5D568BA41 for ; Tue, 15 Sep 2020 10:40:47 +0300 (EEST) Received: by mail-wm1-f66.google.com with SMTP id e11so10464899wme.0 for ; Tue, 15 Sep 2020 00:40:47 -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=iqoJluXt6pbPB3FBKqQjhgbECUzH4kTswMDc4VcRq0E=; b=K/dNfV5BDJyIrrwFf2cIV2ygeGNB+v1dsQARzqp/5cf22pPd9IGUaPSguQILEti42t G3ygRV/esdJSmt/Txb4gVnWbhIGHd3ToLTTHpYOfwOaiAWASWvAp6+1cS9wKK2XVylhH 4dMKoRUFBvAvDm85+g/0U62mFWqX1yymT4EVacA/f8HQnr73JspC4t4rObooBcA3ptQh BXywrsprha4gBgOi6+UvgA9HHkAMq/n9pQgLNpY+f7HPMSKWUyg9Dp4NB+j9BVmU0l8s 9fngYtNE6sqkoBOXSCnVvIikk2ZNmkYxXQiTTCgHEJMVvKNwq5dxGMeMq6lCn4anDzxA 08yg== 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=iqoJluXt6pbPB3FBKqQjhgbECUzH4kTswMDc4VcRq0E=; b=VKOBRE3KnkXPlxsdiyHSokCzIfBmgGiDQ4cuRhOGjJjYXJEAY9WM4nlVqRzdFUKJfb OOh4xV3/FdfHut8wuIi3X5ZVoXC+ghaVdvlWX8nJE5hsQgDLbhKhxjLlNqe4ZjUFd6Gv Rb+pZT0vCYEvIA7PBTtMce7FaSje4JjUl/YOZbWUAw4oPX1LDkmUZ2s40VzA/fF09GTN JlT2yLq5dQLQEOhp2Khe1kVommYXw0RgLhQukQkBwSKOkqXn+2PQugpcOM+PaQ2a0VGq VveDw8wgFFYAjR1ZBq2i6hatvqOBNEL/beH+7+vM4W8yfzjjSA2Gh5IQGT1abmeRQ6Nb LWqg== X-Gm-Message-State: AOAM533anZ3rrGdqnmjlNVoiDvO+4lKee32suCkzgcAgIAKQv/2hdxoV tBRaN7SpWq6gzj+UxxQ4oSb+DzjigNU= X-Google-Smtp-Source: ABdhPJzK2x8f9SycXU9zs9xwQ2PI5JNixBwPhbOBahE78aqqeGOk/HEei3ihU68DKBwmdHfuGb7GeA== X-Received: by 2002:a1c:6254:: with SMTP id w81mr3181842wmb.94.1600155646301; Tue, 15 Sep 2020 00:40:46 -0700 (PDT) Received: from sblaptop.fritz.box (ipbcc1fb0f.dynamic.kabel-deutschland.de. [188.193.251.15]) by smtp.gmail.com with ESMTPSA id d23sm6112125wmb.6.2020.09.15.00.40.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 15 Sep 2020 00:40:45 -0700 (PDT) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Tue, 15 Sep 2020 09:39:50 +0200 Message-Id: <20200915074000.102622-20-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200915074000.102622-1-andreas.rheinhardt@gmail.com> References: <20200915074000.102622-1-andreas.rheinhardt@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 20/30] avcodec/mlpenc: Fix memleak upon init failure 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" If an error happens during init after an allocation has succeeded, the already allocated data leaked up until now. Fix this by setting the FF_CODEC_CAP_INIT_CLEANUP flag. Signed-off-by: Andreas Rheinhardt --- libavcodec/mlpenc.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/libavcodec/mlpenc.c b/libavcodec/mlpenc.c index 52ea06ed91..f6159d39c8 100644 --- a/libavcodec/mlpenc.c +++ b/libavcodec/mlpenc.c @@ -2391,6 +2391,7 @@ AVCodec ff_mlp_encoder = { .sample_fmts = (const enum AVSampleFormat[]) {AV_SAMPLE_FMT_S16, AV_SAMPLE_FMT_NONE}, .supported_samplerates = (const int[]) {44100, 48000, 88200, 96000, 176400, 192000, 0}, .channel_layouts = ff_mlp_channel_layouts, + .caps_internal = FF_CODEC_CAP_INIT_CLEANUP, }; #endif #if CONFIG_TRUEHD_ENCODER @@ -2407,5 +2408,6 @@ AVCodec ff_truehd_encoder = { .sample_fmts = (const enum AVSampleFormat[]) {AV_SAMPLE_FMT_S16, AV_SAMPLE_FMT_NONE}, .supported_samplerates = (const int[]) {44100, 48000, 88200, 96000, 176400, 192000, 0}, .channel_layouts = (const uint64_t[]) {AV_CH_LAYOUT_STEREO, AV_CH_LAYOUT_5POINT0_BACK, AV_CH_LAYOUT_5POINT1_BACK, 0}, + .caps_internal = FF_CODEC_CAP_INIT_CLEANUP, }; #endif From patchwork Tue Sep 15 07:39:51 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 22402 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 DB0DF442C36 for ; Tue, 15 Sep 2020 10:43:09 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 0F6D268BC8B; Tue, 15 Sep 2020 10:40:57 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wm1-f67.google.com (mail-wm1-f67.google.com [209.85.128.67]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 2CF0268B9B5 for ; Tue, 15 Sep 2020 10:40:48 +0300 (EEST) Received: by mail-wm1-f67.google.com with SMTP id x23so2307366wmi.3 for ; Tue, 15 Sep 2020 00:40:48 -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=3zXjuHFj3DEPk5MgSZN748+X2V6mIQjei3MNqqZqd4Y=; b=uRt2IjuBATX4vPdrxrZdOqLmlT/9E5g2FdhGaTrcKlYVu6myoXYDXjmHGY4InK6g/Y y5g78AqgMcMdd0dnjkKA0191dwTuUTVYISPUNgVdHbEP41/yoWCFiCL36cspHQkg6O5d SsLHzuE+lynJdBK6Vw4yJuZtSz8q6lBI73YspMQG7O90OAT/vyJznWgWdJE8SJLwIH7a SoJoh3Bzg+MWB7wI3Mh7JbWNUCynxb4dQDA/7QQd6DGq+5ta80YnMmLqIz4/0UbRs2kO OehIPVJnJou8HPv7fXAIjNElxYFR5tzhxCSFQCLTA8xn03KnGAz2mWGKWC07XO8A3P9L vFsA== 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=3zXjuHFj3DEPk5MgSZN748+X2V6mIQjei3MNqqZqd4Y=; b=ofxjZUoPYj6GeG980JDNPpaBzXAKr5vcj+pcXP225rH13KUMiTOeGU4yWroIw4cpos bDgDojYJZDCT0Jfzqq60x/TQFdVutti2FdiCfKpZ23Oug+C19K6xKljmP6mOqFXUTBgV lE9r7MVuuVXEkNHsqU+kt1q3s/peTus8X0/UMnMTvk/2bIUxpnFIRTAQYIZadofx+iEg OTWgI277jjCosPfTFoBkxMv2li0QIa30LHbvOsxvy93gsIVs62GPFi7iXOecDLDI4d/H NsHoBXj4poau537uT9qugPlh1k5W4cdv1Y6y24J9nQDa6t9s3Cctsh1k1eH1k8Nm4x8M wMgA== X-Gm-Message-State: AOAM530qStoXGTvr8LVXn59PYhZwtFlkFAdwQ7oaEZjWLIcCVWufM0gd kAOT1e4rLVcnPZiTbIojciLB4hFOpvg= X-Google-Smtp-Source: ABdhPJxkvNeCoOYtZxEO1NBCdl0ym1/gsgqqPHjUF5J751TxmMcbHxxNNUEhJyngzbAsKV9IG3R2Hw== X-Received: by 2002:a05:600c:28d:: with SMTP id 13mr3164032wmk.69.1600155647345; Tue, 15 Sep 2020 00:40:47 -0700 (PDT) Received: from sblaptop.fritz.box (ipbcc1fb0f.dynamic.kabel-deutschland.de. [188.193.251.15]) by smtp.gmail.com with ESMTPSA id d23sm6112125wmb.6.2020.09.15.00.40.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 15 Sep 2020 00:40:46 -0700 (PDT) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Tue, 15 Sep 2020 09:39:51 +0200 Message-Id: <20200915074000.102622-21-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200915074000.102622-1-andreas.rheinhardt@gmail.com> References: <20200915074000.102622-1-andreas.rheinhardt@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 21/30] avcodec/mobiclip: Fix memleak upon init failure 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" If an error happens during init after an allocation has succeeded, the already allocated data leaked up until now. Fix this by setting the FF_CODEC_CAP_INIT_CLEANUP flag. Signed-off-by: Andreas Rheinhardt --- libavcodec/mobiclip.c | 1 + 1 file changed, 1 insertion(+) diff --git a/libavcodec/mobiclip.c b/libavcodec/mobiclip.c index 25a7f0ed14..8758e7f617 100644 --- a/libavcodec/mobiclip.c +++ b/libavcodec/mobiclip.c @@ -1436,4 +1436,5 @@ AVCodec ff_mobiclip_decoder = { .flush = mobiclip_flush, .close = mobiclip_close, .capabilities = AV_CODEC_CAP_DR1, + .caps_internal = FF_CODEC_CAP_INIT_CLEANUP, }; From patchwork Tue Sep 15 07:39:52 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 22403 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 1F4EB44937C for ; Tue, 15 Sep 2020 10:43:20 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 3361568BC11; Tue, 15 Sep 2020 10:40:58 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wm1-f66.google.com (mail-wm1-f66.google.com [209.85.128.66]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 28C6268BA1F for ; Tue, 15 Sep 2020 10:40:49 +0300 (EEST) Received: by mail-wm1-f66.google.com with SMTP id b79so2352101wmb.4 for ; Tue, 15 Sep 2020 00:40:49 -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=Qb84uXx4CVnCkOeNu9PALW5WnscZzvZEL7w6/RYTVdE=; b=n0UUvPIpxSYB6n+ER8R3BpcfCq/uwjPJ1kbjrNUqPH7qv7SLAVTTwFv+o/dMi5VcHZ NIV7btOR35mATZfJiPbZiYGF49EqbQmYqqbseuWjNEgubo6giLgGWIlV6OUalfIlE+jJ g+U5R7OVefciqNdvRtFNr+BKuzuYWSEjP/2jWkCle9D1jgR1vibLZXiO98DmFa+fgdq+ gBPDis8ei4x4udX0wCfbUpryGDeZ2yOqCSlfXdW3+doq8Kk5DGenEH63/diPVZZDbuXR ku6l3mk8F3BknlHhSil/+aybkeYldR8nXGc940q3dZX8kQbM12mnIH3z5vWh+pydyKOY 7WeA== 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=Qb84uXx4CVnCkOeNu9PALW5WnscZzvZEL7w6/RYTVdE=; b=WB0cu4V5jxYcinOHwcfOczErEx0FrYzL+JcdP1MLxq9/14GpMA7kWzr9SerBmJl1r4 crkoL6RH9cJMkRoOsfSbVRKsy8n94/s7f3fIIzBACegABi3/mj8TsxgLiTW2EH/Jvwlx 0AtuEQAx5HZzO+ztCWSg8FJ9bUrI3kO8EYtpIFnFU0w+ObGcza8FNQGqs48AWV2UVSHI 8RJakPG/cXXyoY62UvE6vugI3VF+3b6N0k96rGJwD/PIBixwNoJorvmd5lbB9UG0TN7r 5JciUjWgy7kGwCFMKkjMHBXdns7OU1YKJ0mayxA6Um9SnV9D2XFllBw/E93c79rOXPrS kXQA== X-Gm-Message-State: AOAM530cQYYfS/OY7rLmOiHq7u53Zgf/vzy6CjCV46DH6ofKJ70lcG5o ft8oAN3Bk7aST3QuvuweSdJh0zZkTXI= X-Google-Smtp-Source: ABdhPJwIccuIcvTyNfSX/whY8gewl8nlBIUcAOW0jcJktf6zRWI3o7Ybw16TS9cq8d1l0Krq7EEf1A== X-Received: by 2002:a1c:e1d6:: with SMTP id y205mr3242838wmg.92.1600155648261; Tue, 15 Sep 2020 00:40:48 -0700 (PDT) Received: from sblaptop.fritz.box (ipbcc1fb0f.dynamic.kabel-deutschland.de. [188.193.251.15]) by smtp.gmail.com with ESMTPSA id d23sm6112125wmb.6.2020.09.15.00.40.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 15 Sep 2020 00:40:47 -0700 (PDT) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Tue, 15 Sep 2020 09:39:52 +0200 Message-Id: <20200915074000.102622-22-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200915074000.102622-1-andreas.rheinhardt@gmail.com> References: <20200915074000.102622-1-andreas.rheinhardt@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 22/30] avcodec/mobiclip: Fix heap-buffer-overflow 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" The MobiClip decoder uses adjacent pixels for prediction; yet when accessing the left pixel, it was forgotten to clip the x coordinate. This results in an heap-buffer-overflow. It can e.g. be reproduced with the sample from https://samples.ffmpeg.org/V-codecs/MOHD/crap.avi when forcing the video decoder to mobiclip. Signed-off-by: Andreas Rheinhardt --- libavcodec/mobiclip.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libavcodec/mobiclip.c b/libavcodec/mobiclip.c index 8758e7f617..47387fce90 100644 --- a/libavcodec/mobiclip.c +++ b/libavcodec/mobiclip.c @@ -905,7 +905,7 @@ static int predict_intra(AVCodecContext *avctx, AVFrame *frame, int ax, int ay, int arr1[16]; int arr2[16]; uint8_t *top = frame->data[plane] + FFMAX(ay - 1, 0) * frame->linesize[plane] + ax; - uint8_t *left = frame->data[plane] + ay * frame->linesize[plane] + ax - 1; + uint8_t *left = frame->data[plane] + ay * frame->linesize[plane] + FFMAX(ax - 1, 0); int bottommost = frame->data[plane][(ay + size - 1) * frame->linesize[plane] + FFMAX(ax - 1, 0)]; int rightmost = frame->data[plane][FFMAX(ay - 1, 0) * frame->linesize[plane] + ax + size - 1]; int avg = (bottommost + rightmost + 1) / 2 + 2 * get_se_golomb(gb); From patchwork Tue Sep 15 07:39:53 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 22404 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 AA1FF44937C for ; Tue, 15 Sep 2020 10:43:30 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 12E9468BC92; Tue, 15 Sep 2020 10:40:59 +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 D5C6668BC5A for ; Tue, 15 Sep 2020 10:40:49 +0300 (EEST) Received: by mail-wr1-f65.google.com with SMTP id k15so2133714wrn.10 for ; Tue, 15 Sep 2020 00:40:49 -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=WejM53azaIK6uc4+VsJpETle8Z0iSZaVQXoagux97fA=; b=Xv4jdrsLOoJKq8CfTxJGJ2LLHA5T+bhaFuzOWIXU49/Bj2U5yyPZUezTp+356SGMGx v0DaYUSQ+EJ4rqIXq2Bzz5SuX5MC8ujShRiOstc2RXLvW76FO1skeXdXrBdh+yn+I6f4 XwtnhbVhynp7lTOBVoo0/rOi50gvyVGMkKt7KeyuJJTGJ637q/6mWxGU8NpXnfi83guz 5tgxe7d7BUKUV8WioRVugp8RFfpB3fd60drF3HaPNbffxBMYDZRPRaZmgwMAofmixS8A ra8i8z2Fc2dVRQhDeRpVyi1SNkoyrsPFabzS0FUdq/0Fkh6gsiEyKS9/DBewFVbBm+5c Q3Nw== 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=WejM53azaIK6uc4+VsJpETle8Z0iSZaVQXoagux97fA=; b=jcrt2dy7aIFxSLZGweCHFUQzlN+8vJYX+04jVWnZqRGq+CD6E41FnwlETXKNQelo63 KX9o07RIpK945MdQh+pZ/C+fDcgFPEhJILqVfiGUEn1E5lo6RapleSwZKfzeRs+F8beg R+qX1bZn4yDRL8TnAu9K8SXpQgxu0RkMsHtJhUprwyrtW5dtdpajpsq6uxC6j8rsWbYc SbZ36aEzXwNNZE63CIjpPGdS1B2SdSpM89SL1r9V/74uvGwDlg3TuEVHTQAb5teoQeIW vRzqCydO5QwrRescMgk9jC93Fu5eeUYHtFMlkhfL3GkVmrtxl/WzBu7jomnOMCZYhdeC MV1A== X-Gm-Message-State: AOAM530mdD0nxqfe6SbLDElraRIuIJiBIijY/bFDW+92lW8gvPhMaexm RnFLoiOlSB5TODZ0LrKsnXNqPVnxxpQ= X-Google-Smtp-Source: ABdhPJy9m0kOzSixncZfF6Gf3rTwKl5Zda1eiDuYeVAm/T+r/X0f5nstLG2aJsxHVpOR5iyZwo8aeQ== X-Received: by 2002:a5d:4cc1:: with SMTP id c1mr19841363wrt.122.1600155649036; Tue, 15 Sep 2020 00:40:49 -0700 (PDT) Received: from sblaptop.fritz.box (ipbcc1fb0f.dynamic.kabel-deutschland.de. [188.193.251.15]) by smtp.gmail.com with ESMTPSA id d23sm6112125wmb.6.2020.09.15.00.40.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 15 Sep 2020 00:40:48 -0700 (PDT) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Tue, 15 Sep 2020 09:39:53 +0200 Message-Id: <20200915074000.102622-23-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200915074000.102622-1-andreas.rheinhardt@gmail.com> References: <20200915074000.102622-1-andreas.rheinhardt@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 23/30] avcodec/motionpixels: Cleanup generically after init failure 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" Signed-off-by: Andreas Rheinhardt --- libavcodec/motionpixels.c | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/libavcodec/motionpixels.c b/libavcodec/motionpixels.c index 6cb444a703..b48200b017 100644 --- a/libavcodec/motionpixels.c +++ b/libavcodec/motionpixels.c @@ -81,19 +81,13 @@ static av_cold int mp_decode_init(AVCodecContext *avctx) mp->offset_bits_len = av_log2(avctx->width * avctx->height) + 1; mp->vpt = av_mallocz_array(avctx->height, sizeof(YuvPixel)); mp->hpt = av_mallocz_array(h4 / 4, w4 / 4 * sizeof(YuvPixel)); - if (!mp->changes_map || !mp->vpt || !mp->hpt) { - av_freep(&mp->changes_map); - av_freep(&mp->vpt); - av_freep(&mp->hpt); + if (!mp->changes_map || !mp->vpt || !mp->hpt) return AVERROR(ENOMEM); - } avctx->pix_fmt = AV_PIX_FMT_RGB555; mp->frame = av_frame_alloc(); - if (!mp->frame) { - mp_decode_end(avctx); + if (!mp->frame) return AVERROR(ENOMEM); - } return 0; } @@ -354,4 +348,5 @@ AVCodec ff_motionpixels_decoder = { .close = mp_decode_end, .decode = mp_decode_frame, .capabilities = AV_CODEC_CAP_DR1, + .caps_internal = FF_CODEC_CAP_INIT_CLEANUP, }; From patchwork Tue Sep 15 07:39:54 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 22405 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 568F344937C for ; Tue, 15 Sep 2020 10:43:41 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 8F7C368BC64; Tue, 15 Sep 2020 10:41:00 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wr1-f49.google.com (mail-wr1-f49.google.com [209.85.221.49]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 4ABA968BC4A for ; Tue, 15 Sep 2020 10:40:51 +0300 (EEST) Received: by mail-wr1-f49.google.com with SMTP id x14so2122272wrl.12 for ; Tue, 15 Sep 2020 00:40:51 -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=8Ztm2GB2Z4deE9jDyOsdV3rv1SWw+rnIpHcu0T3McMY=; b=Cu10sp0VzYVUJYp9mz+oO+FLlMIwjjx2TKFONBY50iOPDmEiGcqzOWehC9fszYto4V Zzj5sps8mzea0aOfrxdGFr29xuf9UezqFyi/f28mQ5porOv5gC2V6NDFNm2tiHraHrUf IrEWNYx0QDLrhiehkmQQ7SEseEQIaFu6rsiCFuv92XP5/8RqU5t1kefy8DAUt6av8YAE UGjR967E4NkIFVZm45GlMgzew1U1wSTl36eNURz4L+2ha/UQ2mb1qpNQlVp3OS9F4bd3 4N5RfGX/YtU/yvEKV3aLX8RoAfkOa1a6uOYx/RfmcZOyUMAMtxx/aZNvl1aHQpKRGE7B lr0Q== 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=8Ztm2GB2Z4deE9jDyOsdV3rv1SWw+rnIpHcu0T3McMY=; b=LT03tWTZTiUGFBKTd1BSSQQTRsAoroqSWrkOUAnT6kh6oGOB+pq5Sb8W0e+O94Ji2O SnQbfJXm7LWY95J0v4TJMc3XPNeax/y0X9xykKY4gRLBNyUDEWh7xjIqmD+Tv4xYRFDn jTyA7Nw5LFwyHWm8vO6uiM4gseunv7KxFTzReU/ipe7fBTe6Wbs3Fh6qM4U2aNOrbITI GIJLFQWNbD6vVNGuKF86BRdhrYvr+MgbJwLeYbnpOS2Kzt842hgS6f3eXstlrq72gv0J T0O2W8M06269cFepSdm58XoSsL5sVTR8DjD12HuMvLlqYRbPWX2DMHUEk+iKczf7hp/2 c5Bg== X-Gm-Message-State: AOAM531stGse79g/G68+Gif9xjmHcOCDEfo2zd2FhV5Uvry7c8xz6E0S Ue8wJmYbKSBXeUxnkpGfgY6Ih/PisnE= X-Google-Smtp-Source: ABdhPJz95+QqXFlM3Afgu+cprAU0mOxLxEL6Vtn+cqSNt7VgJeI8kjO9kuj7IxMuIDKdnkVvAnjiHw== X-Received: by 2002:adf:eecb:: with SMTP id a11mr20157982wrp.356.1600155650384; Tue, 15 Sep 2020 00:40:50 -0700 (PDT) Received: from sblaptop.fritz.box (ipbcc1fb0f.dynamic.kabel-deutschland.de. [188.193.251.15]) by smtp.gmail.com with ESMTPSA id d23sm6112125wmb.6.2020.09.15.00.40.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 15 Sep 2020 00:40:49 -0700 (PDT) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Tue, 15 Sep 2020 09:39:54 +0200 Message-Id: <20200915074000.102622-24-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200915074000.102622-1-andreas.rheinhardt@gmail.com> References: <20200915074000.102622-1-andreas.rheinhardt@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 24/30] avcodec/mpc7data: Make overlong array smaller 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" Signed-off-by: Andreas Rheinhardt --- libavcodec/mpc7data.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libavcodec/mpc7data.h b/libavcodec/mpc7data.h index 5609e8fbf3..90ab75fe65 100644 --- a/libavcodec/mpc7data.h +++ b/libavcodec/mpc7data.h @@ -51,7 +51,7 @@ static const uint8_t mpc7_hdr[MPC7_HDR_SIZE * 2] = { }; #define MPC7_QUANT_VLC_TABLES 7 -static const uint8_t mpc7_quant_vlc_sizes[MPC7_QUANT_VLC_TABLES * 2] = { +static const uint8_t mpc7_quant_vlc_sizes[MPC7_QUANT_VLC_TABLES] = { 27, 25, 7, 9, 15, 31, 63 }; From patchwork Tue Sep 15 07:39:55 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 22406 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 BD72144937C for ; Tue, 15 Sep 2020 10:43:50 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id A18A568BC72; Tue, 15 Sep 2020 10:41:01 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wr1-f67.google.com (mail-wr1-f67.google.com [209.85.221.67]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 520DD68BC6E for ; Tue, 15 Sep 2020 10:40:52 +0300 (EEST) Received: by mail-wr1-f67.google.com with SMTP id k15so2133844wrn.10 for ; Tue, 15 Sep 2020 00:40:52 -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=nNwkSkuiWEV/NK8eg58gZnJpE2fd0lLejLCHNTI/Z3c=; b=H3td+MxuS/+lJRELsMm2d+ZhptC9zo7LppH/gKRiw79up4232oMC514qLodMTfRhkV 7lvNiQiruRUEqrEOIPvsnKHdBfkSKYzKESvQXEbmyHI5S8CXtQoIf6WbpU6+ViI+WdFq 78V5b7q2sxTzei1gSZf3BUyuLonMOOv91yob/ppsYDDfK6LSEXQ3JuyHabuBtVyevI29 wm6tG/vs/p3j9V3hYksXLVe5iF0Nm6XZWBJo7A6tYVJN9fPpjvppHJIwSojjAgV2l1EH OhHW10D6wTV5p8Fc3UQnNKdyZMLyQ514GfmWskyrSZZbXtXlBzAPH0zaY3MPWvyTcb49 g21g== 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=nNwkSkuiWEV/NK8eg58gZnJpE2fd0lLejLCHNTI/Z3c=; b=qBWjU+gPgH7sKQgpiumjmbrHFo9YsKSkufyi4N0up4+xBlilUfIeHahrH0tf4WFvRV j2RvEY8mSxzvCH3FUkeWiCEMeXtHD09/Hk2ueV2lL2LLVnQPwDSgSvDRiFfR40knkBR/ BkHaMpANocgt3HUiPggqg/aPU05y1yzJ/Pxicc4BvedTCBu+7MWrBS+rVQXVL4EfgjzB q8NrK4+Nk5vR9zOyS/19IUEEV3LtaXMBsAPSSu/PaVNjHkNppzUa2kz/2mo1Pud2Xwsm 5pootdqKQk+23Qsx/0UqFGtDBJAJCjQjl1xWa+Q7nMxJR0JOJRQm5tQu/9IFt7eoDyVh Lb5A== X-Gm-Message-State: AOAM531NiCz4Gej0OaCIExoHsiIrEGJqGDWpyAJrLQTTHoqO/chRqY6p WIMdZRQRkxxDyKvM5+NLD4tHKYSbyqQ= X-Google-Smtp-Source: ABdhPJy87lIQM0HiTocFyeECExcnD3eciGDS9NnVZecyBic4IsKJaahpS7K6uOlqBbfWy3sYUrvGew== X-Received: by 2002:a5d:4a48:: with SMTP id v8mr19876006wrs.304.1600155651473; Tue, 15 Sep 2020 00:40:51 -0700 (PDT) Received: from sblaptop.fritz.box (ipbcc1fb0f.dynamic.kabel-deutschland.de. [188.193.251.15]) by smtp.gmail.com with ESMTPSA id d23sm6112125wmb.6.2020.09.15.00.40.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 15 Sep 2020 00:40:50 -0700 (PDT) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Tue, 15 Sep 2020 09:39:55 +0200 Message-Id: <20200915074000.102622-25-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200915074000.102622-1-andreas.rheinhardt@gmail.com> References: <20200915074000.102622-1-andreas.rheinhardt@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 25/30] avcodec/mpc7: Don't pretend initializing static VLC tables can fail 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" It can't if one hasn't made a mistake at calculating the sizes; and this is checked by asserts/aborts. Signed-off-by: Andreas Rheinhardt --- libavcodec/mpc7.c | 45 ++++++++++++--------------------------------- 1 file changed, 12 insertions(+), 33 deletions(-) diff --git a/libavcodec/mpc7.c b/libavcodec/mpc7.c index e09f1b604f..8518bc2f8a 100644 --- a/libavcodec/mpc7.c +++ b/libavcodec/mpc7.c @@ -47,15 +47,12 @@ static const uint16_t quant_offsets[MPC7_QUANT_VLC_TABLES*2 + 1] = static av_cold int mpc7_decode_init(AVCodecContext * avctx) { - int i, j, ret; + int i, j; MPCContext *c = avctx->priv_data; GetBitContext gb; LOCAL_ALIGNED_16(uint8_t, buf, [16]); static int vlc_initialized = 0; - static VLC_TYPE scfi_table[1 << MPC7_SCFI_BITS][2]; - static VLC_TYPE dscf_table[1 << MPC7_DSCF_BITS][2]; - static VLC_TYPE hdr_table[1 << MPC7_HDR_BITS][2]; static VLC_TYPE quant_tables[7224][2]; /* Musepack SV7 is always stereo */ @@ -95,40 +92,22 @@ static av_cold int mpc7_decode_init(AVCodecContext * avctx) if(vlc_initialized) return 0; av_log(avctx, AV_LOG_DEBUG, "Initing VLC\n"); - scfi_vlc.table = scfi_table; - scfi_vlc.table_allocated = 1 << MPC7_SCFI_BITS; - if ((ret = init_vlc(&scfi_vlc, MPC7_SCFI_BITS, MPC7_SCFI_SIZE, - &mpc7_scfi[1], 2, 1, - &mpc7_scfi[0], 2, 1, INIT_VLC_USE_NEW_STATIC))) { - av_log(avctx, AV_LOG_ERROR, "Cannot init SCFI VLC\n"); - return ret; - } - dscf_vlc.table = dscf_table; - dscf_vlc.table_allocated = 1 << MPC7_DSCF_BITS; - if ((ret = init_vlc(&dscf_vlc, MPC7_DSCF_BITS, MPC7_DSCF_SIZE, - &mpc7_dscf[1], 2, 1, - &mpc7_dscf[0], 2, 1, INIT_VLC_USE_NEW_STATIC))) { - av_log(avctx, AV_LOG_ERROR, "Cannot init DSCF VLC\n"); - return ret; - } - hdr_vlc.table = hdr_table; - hdr_vlc.table_allocated = 1 << MPC7_HDR_BITS; - if ((ret = init_vlc(&hdr_vlc, MPC7_HDR_BITS, MPC7_HDR_SIZE, - &mpc7_hdr[1], 2, 1, - &mpc7_hdr[0], 2, 1, INIT_VLC_USE_NEW_STATIC))) { - av_log(avctx, AV_LOG_ERROR, "Cannot init HDR VLC\n"); - return ret; - } + INIT_VLC_STATIC(&scfi_vlc, MPC7_SCFI_BITS, MPC7_SCFI_SIZE, + &mpc7_scfi[1], 2, 1, + &mpc7_scfi[0], 2, 1, 1 << MPC7_SCFI_BITS); + INIT_VLC_STATIC(&dscf_vlc, MPC7_DSCF_BITS, MPC7_DSCF_SIZE, + &mpc7_dscf[1], 2, 1, + &mpc7_dscf[0], 2, 1, 1 << MPC7_DSCF_SIZE); + INIT_VLC_STATIC(&hdr_vlc, MPC7_HDR_BITS, MPC7_HDR_SIZE, + &mpc7_hdr[1], 2, 1, + &mpc7_hdr[0], 2, 1, 1 << MPC7_HDR_SIZE); for(i = 0; i < MPC7_QUANT_VLC_TABLES; i++){ for(j = 0; j < 2; j++){ quant_vlc[i][j].table = &quant_tables[quant_offsets[i*2 + j]]; quant_vlc[i][j].table_allocated = quant_offsets[i*2 + j + 1] - quant_offsets[i*2 + j]; - if ((ret = init_vlc(&quant_vlc[i][j], 9, mpc7_quant_vlc_sizes[i], + init_vlc(&quant_vlc[i][j], 9, mpc7_quant_vlc_sizes[i], &mpc7_quant_vlc[i][j][1], 4, 2, - &mpc7_quant_vlc[i][j][0], 4, 2, INIT_VLC_USE_NEW_STATIC))) { - av_log(avctx, AV_LOG_ERROR, "Cannot init QUANT VLC %i,%i\n",i,j); - return ret; - } + &mpc7_quant_vlc[i][j][0], 4, 2, INIT_VLC_USE_NEW_STATIC); } } vlc_initialized = 1; From patchwork Tue Sep 15 07:39:56 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 22407 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 4B04544937C for ; Tue, 15 Sep 2020 10:44:00 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 82EF768BC95; Tue, 15 Sep 2020 10:41:02 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wm1-f68.google.com (mail-wm1-f68.google.com [209.85.128.68]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 453E568BC6F for ; Tue, 15 Sep 2020 10:40:53 +0300 (EEST) Received: by mail-wm1-f68.google.com with SMTP id s13so2302998wmh.4 for ; Tue, 15 Sep 2020 00:40:53 -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=TpHtjgYVHpUbvYxMq0FKZ4btCHB3q/EBElx1sKDzZ0M=; b=O5GSUDZJxdOKfTms082kHIqONA+1gc+IwmazoBbtb0ePM3MjqjcZ4olxwXkHMkpokG QS4iQxUZPvK6ctBtzvPdyKe2sdAhGS3WpkjizQ2loiVGh4EpJIHWD0NV4D0rarz8CqE8 cnoDchqvqBOTSnWoos0NGDyQvT8V7TPxKnU6ModfYtkqOtseEudSZ+v279yqpsWGuUeb RL1I+DjkcRVJ7OXu6rQ6m2tIn3BhNXW6UZneB4O51U+4g5QBpCsfy7buFDogHYgGOt2Z /RS/tRPqHC/XthjoVTf0YV0DilKVHtfuJyoUiMcqFDqEqryT3grduHbRQ+wEnmaS23Tv 1gvA== 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=TpHtjgYVHpUbvYxMq0FKZ4btCHB3q/EBElx1sKDzZ0M=; b=pIIS2L7v3oinWZedErzxBGBP8X4UrLJdrbdEQ26RhC+bt0qkox6a3jkBlWe2t06iM+ OMWnRwDn8CGdKX2FCoolwzK4nh0MQLbi9CJKyv8TaqL0x6WY/GlrFtGzS3/WDl/7ojFU pWDNrWIfz1QDjGOsboe5NSZ2jATpyQyYoujsP7fYIwUC7Gorx8RTUktmkXqfWrwL3fRa xE67bv+2JSJFjz+l+qZL3TUZjmEu3TyFR7vEHAl54dD03EscJsWJwj02FwIsHopswbYm qatQDNLJR2YI9mhXvtBgjWTk1IYe3acS/4XKdLDczHfwO5WqjYh2PN/mletVlsUzuo1S MuTA== X-Gm-Message-State: AOAM532zI60Uvx7qX9+9y2thpt5+l8OmQTTVSM3nmxkLibwXY9tDCHQ2 c4EvEsPHHoW8TlKpwx6WyZhm+ZZvvPc= X-Google-Smtp-Source: ABdhPJxNOY/2aD8/8bUgXZukSsEzAvw9/2HloucSgxNOVx+R8+CleIZWPONGaXe/bjDsHVf5DgF3bQ== X-Received: by 2002:a1c:b703:: with SMTP id h3mr3112163wmf.131.1600155652268; Tue, 15 Sep 2020 00:40:52 -0700 (PDT) Received: from sblaptop.fritz.box (ipbcc1fb0f.dynamic.kabel-deutschland.de. [188.193.251.15]) by smtp.gmail.com with ESMTPSA id d23sm6112125wmb.6.2020.09.15.00.40.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 15 Sep 2020 00:40:51 -0700 (PDT) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Tue, 15 Sep 2020 09:39:56 +0200 Message-Id: <20200915074000.102622-26-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200915074000.102622-1-andreas.rheinhardt@gmail.com> References: <20200915074000.102622-1-andreas.rheinhardt@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 26/30] avcodec/mpc7, mpc7data: Avoid gaps in array 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" The Musepack decoder uses static VLC tables to parse the bitstream. There are 14 different quant tables VLCs and each of them has a varying number of codes. The maximum number is 63, the average number is 25.3. Up until now, the array containing the raw data was of type uint16_t [7][2][64 * 2] (the 14 tables come in pairs of two, hence [7][2] instead of [14]) and from this it follows that there were large gaps in said array. This commit changes this by making it a continuous array instead. Doing so saves about 2KB. Signed-off-by: Andreas Rheinhardt --- libavcodec/mpc7.c | 17 ++++++---- libavcodec/mpc7data.h | 76 +++++++++++++------------------------------ 2 files changed, 32 insertions(+), 61 deletions(-) diff --git a/libavcodec/mpc7.c b/libavcodec/mpc7.c index 8518bc2f8a..4a4f8cf616 100644 --- a/libavcodec/mpc7.c +++ b/libavcodec/mpc7.c @@ -38,10 +38,9 @@ static VLC scfi_vlc, dscf_vlc, hdr_vlc, quant_vlc[MPC7_QUANT_VLC_TABLES][2]; -static const uint16_t quant_offsets[MPC7_QUANT_VLC_TABLES*2 + 1] = +static const uint16_t quant_sizes[MPC7_QUANT_VLC_TABLES*2] = { - 0, 512, 1024, 1536, 2052, 2564, 3076, 3588, 4100, 4612, 5124, - 5636, 6164, 6676, 7224 + 512, 512, 512, 516, 512, 512, 512, 512, 512, 512, 512, 528, 512, 548 }; @@ -54,6 +53,8 @@ static av_cold int mpc7_decode_init(AVCodecContext * avctx) static int vlc_initialized = 0; static VLC_TYPE quant_tables[7224][2]; + VLC_TYPE (*quant_table)[2] = quant_tables; + const uint16_t *raw_quant_table = mpc7_quant_vlcs; /* Musepack SV7 is always stereo */ if (avctx->channels != 2) { @@ -103,11 +104,13 @@ static av_cold int mpc7_decode_init(AVCodecContext * avctx) &mpc7_hdr[0], 2, 1, 1 << MPC7_HDR_SIZE); for(i = 0; i < MPC7_QUANT_VLC_TABLES; i++){ for(j = 0; j < 2; j++){ - quant_vlc[i][j].table = &quant_tables[quant_offsets[i*2 + j]]; - quant_vlc[i][j].table_allocated = quant_offsets[i*2 + j + 1] - quant_offsets[i*2 + j]; + quant_vlc[i][j].table = quant_table; + quant_vlc[i][j].table_allocated = quant_sizes[i * 2 + j]; + quant_table += quant_sizes[i * 2 + j]; init_vlc(&quant_vlc[i][j], 9, mpc7_quant_vlc_sizes[i], - &mpc7_quant_vlc[i][j][1], 4, 2, - &mpc7_quant_vlc[i][j][0], 4, 2, INIT_VLC_USE_NEW_STATIC); + raw_quant_table + 1, 4, 2, + raw_quant_table, 4, 2, INIT_VLC_USE_NEW_STATIC); + raw_quant_table += 2 * mpc7_quant_vlc_sizes[i]; } } vlc_initialized = 1; diff --git a/libavcodec/mpc7data.h b/libavcodec/mpc7data.h index 90ab75fe65..b9c5f208a4 100644 --- a/libavcodec/mpc7data.h +++ b/libavcodec/mpc7data.h @@ -59,87 +59,59 @@ static const uint8_t mpc7_quant_vlc_off[MPC7_QUANT_VLC_TABLES] = { 0, 0, 3, 4, 7, 15, 31 }; -static const uint16_t mpc7_quant_vlc[MPC7_QUANT_VLC_TABLES][2][64 * 2] = { -{ - { +static const uint16_t mpc7_quant_vlcs[177 * 2 * 2] = { 0x0036, 6, 0x0009, 5, 0x0020, 6, 0x0005, 5, 0x000A, 4, 0x0007, 5, 0x0034, 6, 0x0000, 5, 0x0023, 6, 0x000A, 5, 0x0006, 4, 0x0004, 5, 0x000B, 4, 0x0007, 3, 0x000C, 4, 0x0003, 5, 0x0007, 4, 0x000B, 5, 0x0022, 6, 0x0001, 5, 0x0035, 6, 0x0006, 5, 0x0009, 4, 0x0002, 5, - 0x0021, 6, 0x0008, 5, 0x0037, 6 - }, - { + 0x0021, 6, 0x0008, 5, 0x0037, 6, 0x0067, 8, 0x003E, 7, 0x00E1, 9, 0x0037, 7, 0x0003, 4, 0x0034, 7, 0x0065, 8, 0x003C, 7, 0x00E3, 9, 0x0018, 6, 0x0000, 4, 0x003D, 7, 0x0004, 4, 0x0001, 1, 0x0005, 4, 0x003F, 7, 0x0001, 4, 0x003B, 7, 0x00E2, 9, 0x0039, 7, 0x0064, 8, 0x0035, 7, 0x0002, 4, 0x0036, 7, - 0x00E0, 9, 0x003A, 7, 0x0066, 8 - } -}, -{ - { + 0x00E0, 9, 0x003A, 7, 0x0066, 8, + 0x0059, 7, 0x002F, 6, 0x000F, 5, 0x0000, 5, 0x005B, 7, 0x0004, 5, 0x0006, 4, 0x000D, 4, 0x0004, 4, 0x0005, 5, 0x0014, 5, 0x000C, 4, 0x0004, 3, 0x000F, 4, 0x000E, 5, 0x0003, 5, 0x0003, 4, 0x000E, 4, 0x0005, 4, 0x0001, 5, 0x005A, 7, 0x0002, 5, 0x0015, 5, 0x002E, 6, - 0x0058, 7 - }, - { + 0x0058, 7, 0x0399, 10, 0x0071, 7, 0x0033, 6, 0x00E7, 8, 0x039A, 10, 0x0068, 7, 0x001E, 5, 0x0000, 3, 0x001D, 5, 0x0069, 7, 0x0032, 6, 0x0001, 3, 0x0002, 2, 0x0003, 3, 0x0031, 6, 0x006B, 7, 0x001B, 5, 0x0002, 3, 0x001F, 5, 0x0070, 7, 0x0398, 10, 0x006A, 7, 0x0030, 6, 0x0072, 7, - 0x039B, 10 - } -}, -{ - { - 0x000C, 4, 0x0004, 3, 0x0000, 2, 0x0001, 2, 0x0007, 3, 0x0005, 3, 0x000D, 4 - }, - { - 0x0004, 5, 0x0003, 4, 0x0002, 2, 0x0003, 2, 0x0001, 2, 0x0000, 3, 0x0005, 5 - } -}, -{ - { - 0x0005, 4, 0x0000, 3, 0x0004, 3, 0x0006, 3, 0x0007, 3, 0x0005, 3, 0x0003, 3, 0x0001, 3, 0x0004, 4 - }, - { - 0x0009, 5, 0x000C, 4, 0x0003, 3, 0x0000, 2, 0x0002, 2, 0x0007, 3, 0x000D, 4, 0x0005, 4, 0x0008, 5 - } -}, -{ - { + 0x039B, 10, + + 0x000C, 4, 0x0004, 3, 0x0000, 2, 0x0001, 2, 0x0007, 3, 0x0005, 3, + 0x000D, 4, + 0x0004, 5, 0x0003, 4, 0x0002, 2, 0x0003, 2, 0x0001, 2, 0x0000, 3, + 0x0005, 5, + + 0x0005, 4, 0x0000, 3, 0x0004, 3, 0x0006, 3, 0x0007, 3, 0x0005, 3, + 0x0003, 3, 0x0001, 3, 0x0004, 4, + 0x0009, 5, 0x000C, 4, 0x0003, 3, 0x0000, 2, 0x0002, 2, 0x0007, 3, + 0x000D, 4, 0x0005, 4, 0x0008, 5, + 0x0039, 6, 0x0017, 5, 0x0008, 4, 0x000A, 4, 0x000D, 4, 0x0000, 3, 0x0002, 3, 0x0003, 3, 0x0001, 3, 0x000F, 4, 0x000C, 4, 0x0009, 4, 0x001D, 5, 0x0016, 5, 0x0038, 6, - }, - { 0x00E5, 8, 0x0038, 6, 0x0007, 5, 0x0002, 4, 0x0000, 3, 0x0003, 3, 0x0005, 3, 0x0006, 3, 0x0004, 3, 0x0002, 3, 0x000F, 4, 0x001D, 5, 0x0006, 5, 0x0073, 7, 0x00E4, 8, - }, -}, -{ - { + 0x0041, 7, 0x0006, 6, 0x002C, 6, 0x002D, 6, 0x003B, 6, 0x000D, 5, 0x0011, 5, 0x0013, 5, 0x0017, 5, 0x0015, 5, 0x001A, 5, 0x001E, 5, 0x0000, 4, 0x0002, 4, 0x0005, 4, 0x0007, 4, 0x0003, 4, 0x0004, 4, 0x001F, 5, 0x001C, 5, 0x0019, 5, 0x001B, 5, 0x0018, 5, 0x0014, 5, 0x0012, 5, 0x000C, 5, 0x0002, 5, 0x003A, 6, 0x0021, 6, 0x0007, 6, - 0x0040, 7 - }, - { + 0x0040, 7, 0x1948, 13, 0x194A, 13, 0x0328, 10, 0x0195, 9, 0x00CB, 8, 0x0066, 7, 0x0031, 6, 0x0009, 5, 0x000F, 5, 0x001F, 5, 0x0002, 4, 0x0006, 4, 0x0008, 4, 0x000B, 4, 0x000D, 4, 0x0000, 3, 0x000E, 4, 0x000A, 4, 0x0009, 4, 0x0005, 4, 0x0003, 4, 0x001E, 5, 0x000E, 5, 0x0008, 5, 0x0030, 6, 0x0067, 7, 0x00C9, 8, 0x00C8, 8, 0x0653, 11, 0x1949, 13, - 0x194B, 13 - } -}, -{ - { + 0x194B, 13, + 0x0067, 8, 0x0099, 8, 0x00B5, 8, 0x00E9, 8, 0x0040, 7, 0x0041, 7, 0x004D, 7, 0x0051, 7, 0x005B, 7, 0x0071, 7, 0x0070, 7, 0x0018, 6, 0x001D, 6, 0x0023, 6, 0x0025, 6, 0x0029, 6, 0x002C, 6, 0x002E, 6, @@ -150,9 +122,7 @@ static const uint16_t mpc7_quant_vlc[MPC7_QUANT_VLC_TABLES][2][64 * 2] = { 0x003B, 6, 0x0034, 6, 0x0030, 6, 0x002F, 6, 0x002B, 6, 0x002A, 6, 0x0027, 6, 0x0024, 6, 0x0021, 6, 0x001C, 6, 0x0075, 7, 0x0065, 7, 0x0064, 7, 0x0050, 7, 0x0045, 7, 0x0044, 7, 0x0032, 7, 0x00E8, 8, - 0x00B4, 8, 0x0098, 8, 0x0066, 8 - }, - { + 0x00B4, 8, 0x0098, 8, 0x0066, 8, 0x37A4, 14, 0x37AD, 14, 0x37A6, 14, 0x37AE, 14, 0x0DEA, 12, 0x02F0, 10, 0x02F1, 10, 0x00A0, 9, 0x00A2, 9, 0x01BC, 9, 0x007A, 8, 0x00DF, 8, 0x003C, 7, 0x0049, 7, 0x006E, 7, 0x000E, 6, 0x0018, 6, 0x0019, 6, @@ -164,8 +134,6 @@ static const uint16_t mpc7_quant_vlc[MPC7_QUANT_VLC_TABLES][2][64 * 2] = { 0x005F, 7, 0x0048, 7, 0x0029, 7, 0x00BD, 8, 0x007B, 8, 0x0179, 9, 0x00A1, 9, 0x037B, 10, 0x0147, 10, 0x0146, 10, 0x0DE8, 12, 0x37AF, 14, 0x37A7, 14, 0x37AC, 14, 0x37A5, 14 - } -} }; #endif /* AVCODEC_MPC7DATA_H */ From patchwork Tue Sep 15 07:39:57 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 22420 Delivered-To: andriy.gelman@gmail.com Received: by 2002:a25:c650:0:0:0:0:0 with SMTP id k77csp1677984ybf; Tue, 15 Sep 2020 00:44:14 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwk7OlWVDDkiA6WMZHU7Lq6Si3zaIvSEQgtw1mFFMm6J50OzwPumtfgJRHM34Ynb9MKivJH X-Received: by 2002:adf:fa52:: with SMTP id y18mr20180774wrr.264.1600155854801; Tue, 15 Sep 2020 00:44:14 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1600155854; cv=none; d=google.com; s=arc-20160816; b=uDD7ukpqZid5bbatN3gYW3mIf6pRZvLgOrb7t7U45PkSvfYTBrBBTeM+sgxToceDwz ZRNf37GJopuv4nCtm0dPtVJrXbrH6JHATKHkYTD+n1NpNvzbV/wMZj6mhjzUjQbBElvM MzDUdwiJZiVHzq0wmdqgAuRipK3DguwiX03jOeYTPP/vEWd7jpbn7/CMUoizubOBXQCs 45mTDpmKoNdawSL/PpLKu2UKWLfFZooY+gi8reWMg1CRcrGBssfBy1s4Fr/VNeAfi4Ba ZhdTJgwVRzw5fijq0G1RoFzntVDmHlrE81RVW74wXmQvaYpZ2neuGofHIzjOVrn9HQcy ipUw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:mime-version:references:in-reply-to :message-id:date:to:from:dkim-signature:delivered-to; bh=rFH0y9hn0y7/fcOuJC5t9oNJd06IrCW2OSbRJgebUbU=; b=jL6DBZBgBFCZ/BCJI50vFehpjXs/D8PPMZ+saBIvHP2wO5STgeLyAIpm6wQ1qULJay FVBUTy4XP3M8Niyjo9qzLrTV9iDt9Lmp0tvH6DBJgUCYiColi1fOFaqLaa65y0kokavl 8XZ0bFdkRmhlo2V8opLW0iK/mp03Rnh+9kScGQdOAKDVjKMAcpTH2vWgqzuQ4wa0jS72 n006moHLHUAnwFT+OGqsmxvKuxvJJ+8dVf0TymZ5eTvQ1cJFnVwM7D2KiaUUu6Z7oN4L i6tN9A3cpC33FO/ysBX8un4qE9yPshB1FbRbL4iUKvIPw/COSAVIW98nZC5LdGTL0sPW x+5w== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20161025 header.b=jS+MeeJR; 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 b5si12900282wru.248.2020.09.15.00.44.14; Tue, 15 Sep 2020 00:44:14 -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=jS+MeeJR; 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 2E95268B914; Tue, 15 Sep 2020 10:41:04 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wm1-f66.google.com (mail-wm1-f66.google.com [209.85.128.66]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 3D75468BC75 for ; Tue, 15 Sep 2020 10:40:54 +0300 (EEST) Received: by mail-wm1-f66.google.com with SMTP id k18so2346821wmj.5 for ; Tue, 15 Sep 2020 00:40:54 -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=FghuAMd01Sf17GPBGg+nB/kVAzaIuKgBgi6OyG2vDcM=; b=jS+MeeJRucuxq9Lqel3C1kxT8W7F3IIhlNsDdp5aAyOQu8a/1dNLtrD/4/Osq1mrHk mFvDu2xoVFla58jXV7J4kESUq47iBK9UFewkQNcsoyHOwu2Vfujn8iA0OUU3yMtCBRRP qxdB75ixc96vkUf3LHqKxA/ppkVmEvMNOH+eNHNMRw6C2Xjf/F89DnnONJZUNpdTKw+n Gjma+Kn2a6AlOmdwS0db1FaZnYi9EgNEkrD5mTiCTkeLbR0V5/3v6k/YtD0ZbTO+nviN 8nwalOOzh2nO7lzUHcxDez5yd+1UKbLcXQ1vJCmgjbDZqfswwCbO8hbWRpytTrRbRnJ+ tItQ== 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=FghuAMd01Sf17GPBGg+nB/kVAzaIuKgBgi6OyG2vDcM=; b=tVhJyCrAngIntOt+8YseToSfUDHnTyYG9ctIrhj17DOpJ2f1jeB7zbvfd63OoMVkI7 99HtvUMyLX71axoGx+v5NG+Ip223Iz+4WC/S+lQELdM7gEnCsYQlCawkFvb6SjGus+l1 jJswNjlqy/s0h2UBb/Citrf0n9m26+PrDpkb/8ovY0Y2+tQ00yRwxDbrXpbf+ex2Qm5G mQi1j64DrzPtZ8czY2c/Owr54uuRMecmWCOYLDljxFhtcMJnQhvCB1L9z/mToLsQN4uJ Z5Lv8N8Nqr1Q3RC/MVnslzVojRWoXUnHXNvoL9YKHy3GKERJ3gTUK6jVtpHtTqgzblwp R5Hw== X-Gm-Message-State: AOAM533yeIEwn77A06x0rCqe4iP7DnJcl9Ww3yxbl73hkXv0z1MAyQ6A EnbcwLSe/kR2KaB/+SWj5dCbB6VK71Q= X-Received: by 2002:a1c:5f46:: with SMTP id t67mr3178069wmb.71.1600155653298; Tue, 15 Sep 2020 00:40:53 -0700 (PDT) Received: from sblaptop.fritz.box (ipbcc1fb0f.dynamic.kabel-deutschland.de. [188.193.251.15]) by smtp.gmail.com with ESMTPSA id d23sm6112125wmb.6.2020.09.15.00.40.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 15 Sep 2020 00:40:52 -0700 (PDT) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Tue, 15 Sep 2020 09:39:57 +0200 Message-Id: <20200915074000.102622-27-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200915074000.102622-1-andreas.rheinhardt@gmail.com> References: <20200915074000.102622-1-andreas.rheinhardt@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 27/30] avcodec/mpegaudiodec_template: Check return value of subdecoder 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" X-TUID: UBy0l0u2OYpC Content-Length: 2144 After all, allocating an AVFloatDSPContext might have failed. Signed-off-by: Andreas Rheinhardt --- libavcodec/mpegaudiodec_template.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/libavcodec/mpegaudiodec_template.c b/libavcodec/mpegaudiodec_template.c index de10f71e7b..98759b8e01 100644 --- a/libavcodec/mpegaudiodec_template.c +++ b/libavcodec/mpegaudiodec_template.c @@ -1885,7 +1885,7 @@ static av_cold int decode_init_mp3on4(AVCodecContext * avctx) { MP3On4DecodeContext *s = avctx->priv_data; MPEG4AudioConfig cfg; - int i; + int i, ret; if ((avctx->extradata_size < 2) || !avctx->extradata) { av_log(avctx, AV_LOG_ERROR, "Codec extradata missing or too short.\n"); @@ -1919,9 +1919,13 @@ static av_cold int decode_init_mp3on4(AVCodecContext * avctx) goto alloc_fail; // Put decoder context in place to make init_decode() happy avctx->priv_data = s->mp3decctx[0]; - decode_init(avctx); + ret = decode_init(avctx); // Restore mp3on4 context pointer avctx->priv_data = s; + if (ret < 0) { + decode_close_mp3on4(avctx); + return ret; + } s->mp3decctx[0]->adu_mode = 1; // Set adu mode /* Create a separate codec/context for each frame (first is already ok). From patchwork Tue Sep 15 07:39:58 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 22408 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 1D1EF449636 for ; Tue, 15 Sep 2020 10:44:19 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id B1B1068BC9E; Tue, 15 Sep 2020 10:41:04 +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 40AE168BC84 for ; Tue, 15 Sep 2020 10:40:55 +0300 (EEST) Received: by mail-wr1-f65.google.com with SMTP id m6so2212692wrn.0 for ; Tue, 15 Sep 2020 00:40:55 -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=2Q/YeInfn5HTSF9IS2nPJga94q1oqIM4LYsnJiEMtzY=; b=ssVRNVZAzY+alZtVLhpp7YDvA9zffZwcC4w+VFifgJlhBOAWinsufiCMuuW0boUjsJ 4Y42pi5I+LEE4J/rd8atxC5BImrYj69Osf8zYL2UXX0baNaLRm73C2Ul+E6RK9UZQLyl /wq5ulD+d8AY5k/pdID+XpsKhVb6T+UnVMk/UjEXUZnOG5unlfree//c13zKvVf9PPGr slqmD0jYOo7XmoKkZdEwwERmX4UDZesmC26bXSf9bEDf3VXlUavmjlwAQMRAL4298GoU LJL853IGKSuU4stYLv3Wp7Chy986UFF5FuOD8zCqKRVw1YRcEZ/WDjoI/2e2dfGfTfe7 DLGQ== 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=2Q/YeInfn5HTSF9IS2nPJga94q1oqIM4LYsnJiEMtzY=; b=oQdeGdTtS2ILeClJd3qmM3ZFdtkUXAxgzQN9jB4LmnOUwTqKfCBQeWXovye+cQGwqi T+U7w4SYgS3wt1SWApqcSuI9XwtG6i0vxx9rWnQtgQwYHKEGqSpaaPGPgD4hMfa4JMWl qNxoZRhep6AcRxYc9LgLCuCsFBunC2R5qnway+FcR4JAgfhkaRUj45ucolGnxn3sjXAi 4k/55enl3bml7CoTN2RKwMOHijbOkRWd3cY3S4qc9d3KJpDcGVhowaXAIk1WnpCswjxi LiHzKuQp19+Xw/mQhmBFO0lHyxUtXy8Mc6lX6Kzh1aH/N1qlmfdBVNjLOhnQyTNkAPKh CUfQ== X-Gm-Message-State: AOAM53139BJERmyNqQf9qWjdYj/VQ17uKKTib8tVm5fM/Opzw6CFX91M c7MJFvFmzTcWNy56DdFNE357mQ1BQhc= X-Google-Smtp-Source: ABdhPJyoi2wKrELjbzo/dTW5kQpL5/o4q6lH61jzyS9YTd2WKgTKsbj7bwii6YO1bC4VpTPLggHmwA== X-Received: by 2002:a5d:6806:: with SMTP id w6mr19905411wru.395.1600155654453; Tue, 15 Sep 2020 00:40:54 -0700 (PDT) Received: from sblaptop.fritz.box (ipbcc1fb0f.dynamic.kabel-deutschland.de. [188.193.251.15]) by smtp.gmail.com with ESMTPSA id d23sm6112125wmb.6.2020.09.15.00.40.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 15 Sep 2020 00:40:54 -0700 (PDT) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Tue, 15 Sep 2020 09:39:58 +0200 Message-Id: <20200915074000.102622-28-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200915074000.102622-1-andreas.rheinhardt@gmail.com> References: <20200915074000.102622-1-andreas.rheinhardt@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 28/30] avcodec/mpegaudiodec_float: Avoid indirection with float dsp function 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" Do this by only keeping the only function pointer from the AVFloatDSPContext that is needed lateron. This also allows to remove the decoders' close function. Signed-off-by: Andreas Rheinhardt --- libavcodec/mpegaudiodec_float.c | 4 ---- libavcodec/mpegaudiodec_template.c | 30 +++++++++++------------------- 2 files changed, 11 insertions(+), 23 deletions(-) diff --git a/libavcodec/mpegaudiodec_float.c b/libavcodec/mpegaudiodec_float.c index ddfa5e0daa..0defdf3af1 100644 --- a/libavcodec/mpegaudiodec_float.c +++ b/libavcodec/mpegaudiodec_float.c @@ -46,7 +46,6 @@ AVCodec ff_mp1float_decoder = { .id = AV_CODEC_ID_MP1, .priv_data_size = sizeof(MPADecodeContext), .init = decode_init, - .close = decode_close, .decode = decode_frame, .capabilities = AV_CODEC_CAP_DR1, .flush = flush, @@ -64,7 +63,6 @@ AVCodec ff_mp2float_decoder = { .priv_data_size = sizeof(MPADecodeContext), .init = decode_init, .decode = decode_frame, - .close = decode_close, .capabilities = AV_CODEC_CAP_DR1, .flush = flush, .sample_fmts = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_FLTP, @@ -80,7 +78,6 @@ AVCodec ff_mp3float_decoder = { .id = AV_CODEC_ID_MP3, .priv_data_size = sizeof(MPADecodeContext), .init = decode_init, - .close = decode_close, .decode = decode_frame, .capabilities = AV_CODEC_CAP_DR1, .flush = flush, @@ -97,7 +94,6 @@ AVCodec ff_mp3adufloat_decoder = { .id = AV_CODEC_ID_MP3ADU, .priv_data_size = sizeof(MPADecodeContext), .init = decode_init, - .close = decode_close, .decode = decode_frame_adu, .capabilities = AV_CODEC_CAP_DR1, .flush = flush, diff --git a/libavcodec/mpegaudiodec_template.c b/libavcodec/mpegaudiodec_template.c index 98759b8e01..d2b72497e1 100644 --- a/libavcodec/mpegaudiodec_template.c +++ b/libavcodec/mpegaudiodec_template.c @@ -87,7 +87,7 @@ typedef struct MPADecodeContext { int err_recognition; AVCodecContext* avctx; MPADSPContext mpadsp; - AVFloatDSPContext *fdsp; + void (*butterflies_float)(float *av_restrict v1, float *av_restrict v2, int len); AVFrame *frame; uint32_t crc; } MPADecodeContext; @@ -410,16 +410,6 @@ static av_cold void decode_init_static(void) } } -#if USE_FLOATS -static av_cold int decode_close(AVCodecContext * avctx) -{ - MPADecodeContext *s = avctx->priv_data; - av_freep(&s->fdsp); - - return 0; -} -#endif - static av_cold int decode_init(AVCodecContext * avctx) { static int initialized_tables = 0; @@ -433,9 +423,14 @@ static av_cold int decode_init(AVCodecContext * avctx) s->avctx = avctx; #if USE_FLOATS - s->fdsp = avpriv_float_dsp_alloc(avctx->flags & AV_CODEC_FLAG_BITEXACT); - if (!s->fdsp) - return AVERROR(ENOMEM); + { + AVFloatDSPContext *fdsp; + fdsp = avpriv_float_dsp_alloc(avctx->flags & AV_CODEC_FLAG_BITEXACT); + if (!fdsp) + return AVERROR(ENOMEM); + s->butterflies_float = fdsp->butterflies_float; + av_free(fdsp); + } #endif ff_mpadsp_init(&s->mpadsp); @@ -1188,7 +1183,7 @@ found2: /* NOTE: the 1/sqrt(2) normalization factor is included in the global gain */ #if USE_FLOATS - s->fdsp->butterflies_float(g0->sb_hybrid, g1->sb_hybrid, 576); + s->butterflies_float(g0->sb_hybrid, g1->sb_hybrid, 576); #else tab0 = g0->sb_hybrid; tab1 = g1->sb_hybrid; @@ -1871,9 +1866,6 @@ static av_cold int decode_close_mp3on4(AVCodecContext * avctx) MP3On4DecodeContext *s = avctx->priv_data; int i; - if (s->mp3decctx[0]) - av_freep(&s->mp3decctx[0]->fdsp); - for (i = 0; i < s->frames; i++) av_freep(&s->mp3decctx[i]); @@ -1938,7 +1930,7 @@ static av_cold int decode_init_mp3on4(AVCodecContext * avctx) s->mp3decctx[i]->adu_mode = 1; s->mp3decctx[i]->avctx = avctx; s->mp3decctx[i]->mpadsp = s->mp3decctx[0]->mpadsp; - s->mp3decctx[i]->fdsp = s->mp3decctx[0]->fdsp; + s->mp3decctx[i]->butterflies_float = s->mp3decctx[0]->butterflies_float; } return 0; From patchwork Tue Sep 15 07:39:59 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 22409 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 4A2A7449636 for ; Tue, 15 Sep 2020 10:44:29 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 8F4EC68BB39; Tue, 15 Sep 2020 10:41:05 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wm1-f65.google.com (mail-wm1-f65.google.com [209.85.128.65]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 5818068BC83 for ; Tue, 15 Sep 2020 10:40:56 +0300 (EEST) Received: by mail-wm1-f65.google.com with SMTP id y15so2385228wmi.0 for ; Tue, 15 Sep 2020 00:40:56 -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=W2b0vsQ0oaKAFeJTU0JKHB7H3gXnNhRG4KJrbBwuIQU=; b=D8CYnqQcM5zm9U4HKjwvdNRTBmXNT4OxuMMfIjSZx/qKJXLyibuQxk9IDgwijmyHku XxRFWiXLOAF5GR1awJUy65yrvFEe8d5mMNt2TPRX1OJG3WdV1apygMQ9xzWeBgcUJkLM KZQ6ScXpzv8IDrM5UwQAtvtxvUwskwvaSCe1e3mYO7VaBAjhwPjxPZfdRlsWCGGD8TPK c+VCjUNcthfB8cZBhaIJ5Za/K2gUgNpVgAOH74jZJifXTFov7eoR+21LWz3q/VdGN3Vf O1/YwtnXcZVgPBRswadUyqDkEYu+s3t9Lne+D2OU9NIysnB7SE5KYU97gflBOmvvwUjq eV2g== 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=W2b0vsQ0oaKAFeJTU0JKHB7H3gXnNhRG4KJrbBwuIQU=; b=RdEj5hWrAyzCQn/xz7DvEGpg1KLuLVOYAB0J8jN5x/JEi3LzKOgzlVaow1MHNGRAdF leiCamrV08iEu2GRKrlgbeHVp5GW5NzAlME8siHQiZD0NCnsewUppOVloiNPH1RhgAGb UCl/2z5uzEd1zclHhypGn3MWhn5FKdbtFaWAhbJFK+Z9dprYah5X9PyisOPJTmVcHSEH qu/UZ3Kd2oVf38uwQVxXjheM97XvAYmq0HLYDqYQQbDBng2Wj1U+OWi5xNRy5/Ttke/q gcRYijsKtxKnBR+DitYR1jAzdKgK5xawXAqdheAqQ6qDV0Cg6RgiUk+EAshjLo/iwYbl h2Bg== X-Gm-Message-State: AOAM532vvYpg5oGumN7ZLBc4o7cOEMA6+s2+ELnDrnlaj22ckEm/Pj3I +TdZjnTXnyGyCiWCoNV/+NGgGVEAfxo= X-Google-Smtp-Source: ABdhPJxsFJGAbarBnLn85nh/Glc3zCpPEdcO76Xe7BqOu2EvIE8pBE2LMHcSd4JQFYYAS/YZrXQxpQ== X-Received: by 2002:a1c:6254:: with SMTP id w81mr3182436wmb.94.1600155655271; Tue, 15 Sep 2020 00:40:55 -0700 (PDT) Received: from sblaptop.fritz.box (ipbcc1fb0f.dynamic.kabel-deutschland.de. [188.193.251.15]) by smtp.gmail.com with ESMTPSA id d23sm6112125wmb.6.2020.09.15.00.40.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 15 Sep 2020 00:40:54 -0700 (PDT) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Tue, 15 Sep 2020 09:39:59 +0200 Message-Id: <20200915074000.102622-29-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200915074000.102622-1-andreas.rheinhardt@gmail.com> References: <20200915074000.102622-1-andreas.rheinhardt@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 29/30] avcodec/mpegaudiodec_template: Simplify creating mp3on4 child decoders 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" Allocating the child codec contexts in one piece simplifies both allocating as well as freeing. Signed-off-by: Andreas Rheinhardt --- libavcodec/mpegaudiodec_template.c | 33 +++++++++++++----------------- 1 file changed, 14 insertions(+), 19 deletions(-) diff --git a/libavcodec/mpegaudiodec_template.c b/libavcodec/mpegaudiodec_template.c index d2b72497e1..8ed2f74eee 100644 --- a/libavcodec/mpegaudiodec_template.c +++ b/libavcodec/mpegaudiodec_template.c @@ -1827,7 +1827,7 @@ typedef struct MP3On4DecodeContext { int frames; ///< number of mp3 frames per block (number of mp3 decoder instances) int syncword; ///< syncword patch const uint8_t *coff; ///< channel offsets in output buffer - MPADecodeContext *mp3decctx[5]; ///< MPADecodeContext for every decoder instance + MPADecodeContext *mp3decctx; ///< MPADecodeContext for every decoder instance } MP3On4DecodeContext; #include "mpeg4audio.h" @@ -1864,10 +1864,8 @@ static const int16_t chan_layout[8] = { static av_cold int decode_close_mp3on4(AVCodecContext * avctx) { MP3On4DecodeContext *s = avctx->priv_data; - int i; - for (i = 0; i < s->frames; i++) - av_freep(&s->mp3decctx[i]); + av_freep(&s->mp3decctx); return 0; } @@ -1905,12 +1903,12 @@ static av_cold int decode_init_mp3on4(AVCodecContext * avctx) * decode_init() does not have to be changed. * Other decoders will be initialized here copying data from the first context */ - // Allocate zeroed memory for the first decoder context - s->mp3decctx[0] = av_mallocz(sizeof(MPADecodeContext)); - if (!s->mp3decctx[0]) + // Allocate zeroed memory for the decoder contexts + s->mp3decctx = av_mallocz_array(sizeof(MPADecodeContext), s->frames); + if (!s->mp3decctx) goto alloc_fail; // Put decoder context in place to make init_decode() happy - avctx->priv_data = s->mp3decctx[0]; + avctx->priv_data = s->mp3decctx; ret = decode_init(avctx); // Restore mp3on4 context pointer avctx->priv_data = s; @@ -1918,19 +1916,16 @@ static av_cold int decode_init_mp3on4(AVCodecContext * avctx) decode_close_mp3on4(avctx); return ret; } - s->mp3decctx[0]->adu_mode = 1; // Set adu mode + s->mp3decctx[0].adu_mode = 1; // Set adu mode /* Create a separate codec/context for each frame (first is already ok). * Each frame is 1 or 2 channels - up to 5 frames allowed */ for (i = 1; i < s->frames; i++) { - s->mp3decctx[i] = av_mallocz(sizeof(MPADecodeContext)); - if (!s->mp3decctx[i]) - goto alloc_fail; - s->mp3decctx[i]->adu_mode = 1; - s->mp3decctx[i]->avctx = avctx; - s->mp3decctx[i]->mpadsp = s->mp3decctx[0]->mpadsp; - s->mp3decctx[i]->butterflies_float = s->mp3decctx[0]->butterflies_float; + s->mp3decctx[i].adu_mode = 1; + s->mp3decctx[i].avctx = avctx; + s->mp3decctx[i].mpadsp = s->mp3decctx[0].mpadsp; + s->mp3decctx[i].butterflies_float = s->mp3decctx[0].butterflies_float; } return 0; @@ -1946,7 +1941,7 @@ static void flush_mp3on4(AVCodecContext *avctx) MP3On4DecodeContext *s = avctx->priv_data; for (i = 0; i < s->frames; i++) - mp_flush(s->mp3decctx[i]); + mp_flush(&s->mp3decctx[i]); } @@ -1980,7 +1975,7 @@ static int decode_frame_mp3on4(AVCodecContext *avctx, void *data, for (fr = 0; fr < s->frames; fr++) { fsize = AV_RB16(buf) >> 4; fsize = FFMIN3(fsize, len, MPA_MAX_CODED_FRAME_SIZE); - m = s->mp3decctx[fr]; + m = &s->mp3decctx[fr]; av_assert1(m); if (fsize < HEADER_SIZE) { @@ -2027,7 +2022,7 @@ static int decode_frame_mp3on4(AVCodecContext *avctx, void *data, } /* update codec info */ - avctx->sample_rate = s->mp3decctx[0]->sample_rate; + avctx->sample_rate = s->mp3decctx[0].sample_rate; frame->nb_samples = out_size / (avctx->channels * sizeof(OUT_INT)); *got_frame_ptr = 1; From patchwork Tue Sep 15 07:40:00 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 22410 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 970A2449636 for ; Tue, 15 Sep 2020 10:44:39 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 821C068BCA7; Tue, 15 Sep 2020 10:41:06 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wm1-f67.google.com (mail-wm1-f67.google.com [209.85.128.67]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 9AADB68BC8D for ; Tue, 15 Sep 2020 10:40:57 +0300 (EEST) Received: by mail-wm1-f67.google.com with SMTP id e17so2327248wme.0 for ; Tue, 15 Sep 2020 00:40:57 -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=4cs7XEKr/whOVE/IqAmfIyU4Jith1mY4x0YEXUmsH7s=; b=o4LlR7K+mrNmXROG1f9Wr/nu531mnRrGicBxULmUmUF0v8LdosPNXzoF/zhF4fVvJa Uk4h/U/AD5JA4/XMkFhVi/INXp+NIkSL8Qt69BOXTbS8PVZejm9A7Nf7fy6/fSHDt9rU PudoieOn08jRk6XakHtW8FjB5pPclBFQE2OIsb2UTbrNYkHOgdn243TYBFq90tmbbvhB SJku8D3Lj6pjpmpGfg2KAC2cWthEfP8M20DonM4ZWgQz6VJ2BsuTsUAFpTeYTfJqg8yC pVeCHiCOPpiId2WUvFO3/7l3dlh0tOpurl7VD/jkIJWtPXLi/f34ecV8i0sHDa6Vhij+ lVpw== 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=4cs7XEKr/whOVE/IqAmfIyU4Jith1mY4x0YEXUmsH7s=; b=UA3v/M0ctLMkTmIRLRgXHo/2wb5RbFkUFNCxZ5Svg7UM4EMep5DrbTDkuOuAU0WhUZ 0HGxf5yHazazw+V20EMtxdyMREgX0SINh5wMVO+lYpQX5HTWyAAxZ44HbTrW4vQNP0pm pPJ5+0JKjUKj7AljM7An5tDwT0xjsNHTtI+X3IXsQbv1l2z+Ty0cPdVKyOQZETyw2R+n Cwvp++pOy8qBg7aJLMf4xbshkG71wtc1mzgJ9FNMvXqaG6CRDcoaqws7GasQpw6ZU3Bz bTTeJzpQQdzc+T9JgOu+aVCEPDsgdp18IX0rlgieOkUQIOWZfWjvBpvjg/tbWWEJ0aSK N7rA== X-Gm-Message-State: AOAM53225CHGW45fPm71X/O6Nnw34KB5x2DEcbdsrXXuJvqd99sFLlCa sE5vEevZORTZBmd99POC0o70lMrOtD0= X-Google-Smtp-Source: ABdhPJxN+n4UHEmZQa2xmlq2YrMoSgyR0X6sW9hIaE6fG8wnxrXUQUs7SRwyJsnbmZrE5ATV6EMbOg== X-Received: by 2002:a7b:c255:: with SMTP id b21mr3150358wmj.17.1600155656867; Tue, 15 Sep 2020 00:40:56 -0700 (PDT) Received: from sblaptop.fritz.box (ipbcc1fb0f.dynamic.kabel-deutschland.de. [188.193.251.15]) by smtp.gmail.com with ESMTPSA id d23sm6112125wmb.6.2020.09.15.00.40.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 15 Sep 2020 00:40:56 -0700 (PDT) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Tue, 15 Sep 2020 09:40:00 +0200 Message-Id: <20200915074000.102622-30-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200915074000.102622-1-andreas.rheinhardt@gmail.com> References: <20200915074000.102622-1-andreas.rheinhardt@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 30/30] avcodec/mpegaudiodec*: Cleanup generically on init failure 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" Signed-off-by: Andreas Rheinhardt --- libavcodec/mpegaudiodec_fixed.c | 1 + libavcodec/mpegaudiodec_float.c | 1 + libavcodec/mpegaudiodec_template.c | 9 ++------- 3 files changed, 4 insertions(+), 7 deletions(-) diff --git a/libavcodec/mpegaudiodec_fixed.c b/libavcodec/mpegaudiodec_fixed.c index ad7ceb20b6..a2c433954b 100644 --- a/libavcodec/mpegaudiodec_fixed.c +++ b/libavcodec/mpegaudiodec_fixed.c @@ -116,5 +116,6 @@ AVCodec ff_mp3on4_decoder = { .flush = flush_mp3on4, .sample_fmts = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_S16P, AV_SAMPLE_FMT_NONE }, + .caps_internal = FF_CODEC_CAP_INIT_CLEANUP, }; #endif diff --git a/libavcodec/mpegaudiodec_float.c b/libavcodec/mpegaudiodec_float.c index 0defdf3af1..4aa52d4f53 100644 --- a/libavcodec/mpegaudiodec_float.c +++ b/libavcodec/mpegaudiodec_float.c @@ -116,5 +116,6 @@ AVCodec ff_mp3on4float_decoder = { .flush = flush_mp3on4, .sample_fmts = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_FLTP, AV_SAMPLE_FMT_NONE }, + .caps_internal = FF_CODEC_CAP_INIT_CLEANUP, }; #endif diff --git a/libavcodec/mpegaudiodec_template.c b/libavcodec/mpegaudiodec_template.c index 8ed2f74eee..68e6dbfdf8 100644 --- a/libavcodec/mpegaudiodec_template.c +++ b/libavcodec/mpegaudiodec_template.c @@ -1906,16 +1906,14 @@ static av_cold int decode_init_mp3on4(AVCodecContext * avctx) // Allocate zeroed memory for the decoder contexts s->mp3decctx = av_mallocz_array(sizeof(MPADecodeContext), s->frames); if (!s->mp3decctx) - goto alloc_fail; + return AVERROR(ENOMEM); // Put decoder context in place to make init_decode() happy avctx->priv_data = s->mp3decctx; ret = decode_init(avctx); // Restore mp3on4 context pointer avctx->priv_data = s; - if (ret < 0) { - decode_close_mp3on4(avctx); + if (ret < 0) return ret; - } s->mp3decctx[0].adu_mode = 1; // Set adu mode /* Create a separate codec/context for each frame (first is already ok). @@ -1929,9 +1927,6 @@ static av_cold int decode_init_mp3on4(AVCodecContext * avctx) } return 0; -alloc_fail: - decode_close_mp3on4(avctx); - return AVERROR(ENOMEM); }