From patchwork Wed Jun 24 13:27:23 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 20569 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 92F0844B965 for ; Wed, 24 Jun 2020 16:35:19 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 7B45D68B53F; Wed, 24 Jun 2020 16:35:19 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qt1-f193.google.com (mail-qt1-f193.google.com [209.85.160.193]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 20D3568B566 for ; Wed, 24 Jun 2020 16:35:13 +0300 (EEST) Received: by mail-qt1-f193.google.com with SMTP id z1so1668553qtn.2 for ; Wed, 24 Jun 2020 06:35:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:mime-version :content-transfer-encoding; bh=KF8kxrcLaBXhi1tKalJ7rXY9HnVm/4sVqqo2Wv8wbnc=; b=JWwNbr/u1IKWpXR+kO7I+QvGIWav2DlZdwcFE0x3MVXvzTsUTTCB+P9b7Yd3Ufq9NF V/kZ//wmyaqjMZRWkbcCPPUUwqiPNP3eLN3v7SS5EFI8m2QeoJz5FqleXRtu3u6NL1JC fQkLsvPjkVp5eJEBL0AmVGQrFhai1cummkZPwO8ivb/wJUJLeiuxjbG9lKhfXM6Stec+ iwocihYP7onp2xbPQDXxRhX8epoDZCaTvabjHeRSnpDC74HwfutYCjEZktsT4VIjD0hK mViqYAzJ7iuM5mXEJatbDdqKU+vZmsmNSQnN9/1u4i+NYsyuDfovnKn6+0tzOLz9OZht /M6g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:mime-version :content-transfer-encoding; bh=KF8kxrcLaBXhi1tKalJ7rXY9HnVm/4sVqqo2Wv8wbnc=; b=FRLDraamKnjlj+3ex5zIzWg+lrVOKsupPYuFjoQ0V3yhDrrpwf5vBlPHbncK+tFHpX t2bY1AktH6G7JtnZy/jjeLJUSFWHvE+Xq/46XwtmTAp7bfSR9/AMdUeDd0uIu4NQViJV 01cXrNxGnJvZOTXPKgPvov2phYXlRfi9bt7dC2JHGRSgX8EvlCE88GU8ZuNVp03GZ1zK jpPiNaE422oHPKaYRh9eez8qJmedsGUgR2243h/XkI1oOpQPcKrd4GA5dRofi6/XuECf 38clrhPjkFTEckdzLuzlaEmHbtODRmp1bbIRCChkURM79x/YuHisZZhTtww/M2uwKkdx ypLg== X-Gm-Message-State: AOAM532RL/Bd1ZIHx5pEV5GEO08gk1i8vPTr/risfB1KNDiiBxw4xg20 VjUIU3NUlvqo9nQH1CH9HI21R67J X-Google-Smtp-Source: ABdhPJz7YqPsPxTzgTS1NADDJymJ9qR5mrsaNgAMB/cguRFUWK4ejaNNqy/ybTfkaPW5Htl9yLRBVg== X-Received: by 2002:a37:8ac7:: with SMTP id m190mr17729310qkd.209.1593005290774; Wed, 24 Jun 2020 06:28:10 -0700 (PDT) Received: from localhost.localdomain ([191.83.220.40]) by smtp.gmail.com with ESMTPSA id k2sm3239673qkf.127.2020.06.24.06.28.09 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 24 Jun 2020 06:28:10 -0700 (PDT) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 24 Jun 2020 10:27:23 -0300 Message-Id: <20200624132725.1483-1-jamrial@gmail.com> X-Mailer: git-send-email 2.27.0 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 1/3] avcodec/mlpenc: remove delay codec capability X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" The encoder has no delayed packets at the end of the encoding process, so signaling this capability is unnecessary. This also fix an assertion failure introduced in 827d6fe73d, as return values higher than 0 are not expected. Signed-off-by: James Almer --- libavcodec/mlpenc.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/libavcodec/mlpenc.c b/libavcodec/mlpenc.c index c6a7963c22..f99d2f5d6f 100644 --- a/libavcodec/mlpenc.c +++ b/libavcodec/mlpenc.c @@ -2226,9 +2226,6 @@ static int mlp_encode_frame(AVCodecContext *avctx, AVPacket *avpkt, if ((ret = ff_alloc_packet2(avctx, avpkt, 87500 * avctx->channels, 0)) < 0) return ret; - if (!frame) - return 1; - /* add current frame to queue */ if ((ret = ff_af_queue_add(&ctx->afq, frame)) < 0) return ret; @@ -2389,7 +2386,7 @@ AVCodec ff_mlp_encoder = { .init = mlp_encode_init, .encode2 = mlp_encode_frame, .close = mlp_encode_close, - .capabilities = AV_CODEC_CAP_SMALL_LAST_FRAME | AV_CODEC_CAP_DELAY | AV_CODEC_CAP_EXPERIMENTAL, + .capabilities = AV_CODEC_CAP_SMALL_LAST_FRAME | AV_CODEC_CAP_EXPERIMENTAL, .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, @@ -2405,7 +2402,7 @@ AVCodec ff_truehd_encoder = { .init = mlp_encode_init, .encode2 = mlp_encode_frame, .close = mlp_encode_close, - .capabilities = AV_CODEC_CAP_SMALL_LAST_FRAME | AV_CODEC_CAP_DELAY | AV_CODEC_CAP_EXPERIMENTAL, + .capabilities = AV_CODEC_CAP_SMALL_LAST_FRAME | AV_CODEC_CAP_EXPERIMENTAL, .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}, From patchwork Wed Jun 24 13:27:24 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 20585 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 C9A6B44A8D0 for ; Wed, 24 Jun 2020 16:58:36 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 9769A68B60B; Wed, 24 Jun 2020 16:58:36 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qk1-f196.google.com (mail-qk1-f196.google.com [209.85.222.196]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 0666B68B5EC for ; Wed, 24 Jun 2020 16:58:30 +0300 (EEST) Received: by mail-qk1-f196.google.com with SMTP id e11so1867932qkm.3 for ; Wed, 24 Jun 2020 06:58:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=HDEsaljOuCYaZz9vQboLBlPhc+FTv+xNvkCs8A+dDio=; b=aCxIsILX5iMzzTNk44UEnOo+9HGMpqL+sFYwIUBRF31KLLPDeSKEP7BVIwbYobOZis gq3QzNQngeCRMmERaMQw3TVOHnU6OSdS2/PhEu8opVpemt+Juec2IJk+QQu9pnc1vcMG E+4u3W0AgwnRlA/DIGn3UbnDUFtkxKm20ap8VgDDdcE2RP3Tc9KjN0Aj2rvlx5fH9XuT 1kfqPcoXwoxC9DVTcP15Czd52XkRagKF+saVvDINu0Jby2zKasC4pijsebfdWGoQ1pGs zg3zKmg47qA0X99dwJwCk9NWp+3Owlj+MGGL6ZFwyFoAEKmlDaCbHw37ocle6DBuOMS0 cumA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=HDEsaljOuCYaZz9vQboLBlPhc+FTv+xNvkCs8A+dDio=; b=RsFPQZfgl7YbAnEy9LXLCXNN9x3mi+/TKlel7V06qwp0I5czaSnLMBCtwb41Ypuo2n CFSN24F33q9zxwN7ETG7jpBzHJCbcnBtLsmvLywxQcxhVJpwIgPg5ZxrJzrXAY1Lvr7S z4J8v7WtNsERehhK9Qqdn4/C8ckV/mLngum9xyCBXNGChBqhrTa3rHuGXLpIVJgF9Nhr aBa4fH+YxZj0aPfJL/ddMPE3qAQRydWm7VJkm/Wf/4xAc8PgPGf1NKvoYVMXl7EiYpTY FuuIg4Xhf/1H5WiJBKSrWg/pfVmF6Ypr6u6aeyynYQLLuU9+KSTo/vcnDdUswPoK3fkX WuuQ== X-Gm-Message-State: AOAM531SCMo6mitGuSruIDk7uJzbKtWRtKoH4IMd9i8X3IfjtNw6PZcF 1HEDVXGGN3VOFO/cXIkSjRECKQ6m X-Google-Smtp-Source: ABdhPJwLoppTYXB2fh610sRzKo8bGO1RVY9p/vDBzXkm2/wkxhK4M/EJSnUGzoIn8x16Lq5i+JUlwA== X-Received: by 2002:a05:620a:8c1:: with SMTP id z1mr24903186qkz.431.1593005292187; Wed, 24 Jun 2020 06:28:12 -0700 (PDT) Received: from localhost.localdomain ([191.83.220.40]) by smtp.gmail.com with ESMTPSA id k2sm3239673qkf.127.2020.06.24.06.28.10 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 24 Jun 2020 06:28:11 -0700 (PDT) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 24 Jun 2020 10:27:24 -0300 Message-Id: <20200624132725.1483-2-jamrial@gmail.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20200624132725.1483-1-jamrial@gmail.com> References: <20200624132725.1483-1-jamrial@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 2/3] avcodec/mlpenc: propagate proper error values X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Signed-off-by: James Almer --- libavcodec/mlpenc.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/libavcodec/mlpenc.c b/libavcodec/mlpenc.c index f99d2f5d6f..4d50f0ea33 100644 --- a/libavcodec/mlpenc.c +++ b/libavcodec/mlpenc.c @@ -531,7 +531,7 @@ static av_cold int mlp_encode_init(AVCodecContext *avctx) av_log(avctx, AV_LOG_ERROR, "Unsupported sample rate %d. Supported " "sample rates are 44100, 88200, 176400, 48000, " "96000, and 192000.\n", avctx->sample_rate); - return -1; + return AVERROR(EINVAL); } ctx->coded_sample_rate[1] = -1 & 0xf; @@ -564,7 +564,7 @@ static av_cold int mlp_encode_init(AVCodecContext *avctx) default: av_log(avctx, AV_LOG_ERROR, "Sample format not supported. " "Only 16- and 24-bit samples are supported.\n"); - return -1; + return AVERROR(EINVAL); } ctx->coded_sample_fmt[1] = -1 & 0xf; @@ -638,7 +638,7 @@ static av_cold int mlp_encode_init(AVCodecContext *avctx) ctx->channel_arrangement = 12; break; default: av_log(avctx, AV_LOG_ERROR, "Unsupported channel arrangement\n"); - return -1; + return AVERROR(EINVAL); } ctx->flags = FLAGS_DVDA; ctx->channel_occupancy = ff_mlp_ch_info[ctx->channel_arrangement].channel_occupancy; @@ -666,7 +666,7 @@ static av_cold int mlp_encode_init(AVCodecContext *avctx) break; default: av_log(avctx, AV_LOG_ERROR, "Unsupported channel arrangement\n"); - return -1; + return AVERROR(EINVAL); } ctx->flags = 0; ctx->channel_occupancy = 0; @@ -1190,7 +1190,7 @@ static unsigned int write_access_unit(MLPEncodeContext *ctx, uint8_t *buf, int total_length; if (buf_size < 4) - return -1; + return AVERROR(EINVAL); /* Frame header will be written at the end. */ buf += 4; @@ -1198,7 +1198,7 @@ static unsigned int write_access_unit(MLPEncodeContext *ctx, uint8_t *buf, if (restart_frame) { if (buf_size < 28) - return -1; + return AVERROR(EINVAL); write_major_sync(ctx, buf, buf_size); buf += 28; buf_size -= 28; @@ -1820,7 +1820,7 @@ static int apply_filter(MLPEncodeContext *ctx, unsigned int channel) if (!filter_state_buffer[i]) { av_log(ctx->avctx, AV_LOG_ERROR, "Not enough memory for applying filters.\n"); - return -1; + return AVERROR(ENOMEM); } } @@ -1848,7 +1848,7 @@ static int apply_filter(MLPEncodeContext *ctx, unsigned int channel) residual = sample - (accum & mask); if (residual < SAMPLE_MIN(24) || residual > SAMPLE_MAX(24)) { - ret = -1; + ret = AVERROR_INVALIDDATA; goto free_and_return; } @@ -2264,7 +2264,7 @@ static int mlp_encode_frame(AVCodecContext *avctx, AVPacket *avpkt, if (ctx->frame_size[ctx->frame_index] > MAX_BLOCKSIZE) { av_log(avctx, AV_LOG_ERROR, "Invalid frame size (%d > %d)\n", ctx->frame_size[ctx->frame_index], MAX_BLOCKSIZE); - return -1; + return AVERROR_INVALIDDATA; } restart_frame = !ctx->frame_index; From patchwork Wed Jun 24 13:27:25 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 20568 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 9B04744B153 for ; Wed, 24 Jun 2020 16:34:36 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 7BF40680109; Wed, 24 Jun 2020 16:34:36 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qt1-f195.google.com (mail-qt1-f195.google.com [209.85.160.195]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 9071668B21B for ; Wed, 24 Jun 2020 16:34:30 +0300 (EEST) Received: by mail-qt1-f195.google.com with SMTP id i3so1610026qtq.13 for ; Wed, 24 Jun 2020 06:34:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=YkVrQS2wB5aIf4T+FiQCiNeFVDchCHz6W25WzrJ83Ts=; b=p9G29dbA+4jvQkIFGIv/3wqiGZHeUDM77agmt9kffCb7CJbIGJ9yyh5bShijfHxDXx YbOIGCNsNjdfd4PP9QFeI4tf5z5rVoXESUBY6HZXpEyptoVfDy2aNXKRWdmatKUNndaE HC/5kljGh5oRDiXtj+w0SdwvT8i/qPvYnyjrD7qIQhnSFvLaVFrh0eF27e2mCcE2h4fY xZUm9CF81nmA7UU9irQSzf3F31gTAttZ4qD4AdW2xP27wNzqxP+3v8GS5wlDBD2vLOmR dDjuXsPxVn0I+8GDdcNDw6GcvGDSVh9CulCGn65vd5ZI5mIa9cxz3xLGGN8p9gwFklQz YfYw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=YkVrQS2wB5aIf4T+FiQCiNeFVDchCHz6W25WzrJ83Ts=; b=F92CYRbp9XWzR9sNJ0Ili4PEZZWU8MQSbgpfsHUjKExIgPHZ4qZg8SwB8LewUTdQnM +GfKFaheh22pGF5Hm0SGtMLClPkBawvfYii6pH7EkykJ8eh5t4hdKRs5RG9ENhr5uSGT 5ycScK+lpT/zNqXVZbiw8yO7YZYd55r+Ue1QQu3w7P+nE/D+uS+5RctGfP4+GrwSTM2m 0JeDbcyy0G7q/9FWO7IflmuTgy3BM4qwgUD1UPFbiZOmtOv6+w+UomMO3rD+td8av5Z0 5NH2wAztwH9fjENXgkiymLZiWCYK28YVT/En9znDm9RpGtpWnkt4Insmh7ZBGh5wT1/e bHsw== X-Gm-Message-State: AOAM532ejOO/budAmF5tb6zfOuG6jPRYkxOPrimOZNthdF1OwQEbXZj4 7x4tKFynpCVr++Wvid10R66P942z X-Google-Smtp-Source: ABdhPJwFC/LqHElTNNVOxacb4aE1gScqTxVAryarv2OgmYcMCiIRgQvPkFXG6RA1+ePC+5e4DmBYtw== X-Received: by 2002:a37:4b05:: with SMTP id y5mr1051835qka.382.1593005293665; Wed, 24 Jun 2020 06:28:13 -0700 (PDT) Received: from localhost.localdomain ([191.83.220.40]) by smtp.gmail.com with ESMTPSA id k2sm3239673qkf.127.2020.06.24.06.28.12 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 24 Jun 2020 06:28:13 -0700 (PDT) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 24 Jun 2020 10:27:25 -0300 Message-Id: <20200624132725.1483-3-jamrial@gmail.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20200624132725.1483-1-jamrial@gmail.com> References: <20200624132725.1483-1-jamrial@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 3/3] avcodec/mlpenc: free filter state buffers on allocation 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Signed-off-by: James Almer --- libavcodec/mlpenc.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/libavcodec/mlpenc.c b/libavcodec/mlpenc.c index 4d50f0ea33..52ea06ed91 100644 --- a/libavcodec/mlpenc.c +++ b/libavcodec/mlpenc.c @@ -1820,7 +1820,8 @@ static int apply_filter(MLPEncodeContext *ctx, unsigned int channel) if (!filter_state_buffer[i]) { av_log(ctx->avctx, AV_LOG_ERROR, "Not enough memory for applying filters.\n"); - return AVERROR(ENOMEM); + ret = AVERROR(ENOMEM); + goto free_and_return; } }