From patchwork Sat Jul 1 19:28:35 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paul B Mahol X-Patchwork-Id: 4179 Delivered-To: ffmpegpatchwork@gmail.com Received: by 10.103.1.76 with SMTP id 73csp7311415vsb; Sat, 1 Jul 2017 12:28:57 -0700 (PDT) X-Received: by 10.28.136.4 with SMTP id k4mr9489043wmd.4.1498937337845; Sat, 01 Jul 2017 12:28:57 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1498937337; cv=none; d=google.com; s=arc-20160816; b=XFmheATCLjA5FrYP5uPO74iuSIkT6zwHZG0dDyacyfkkJhKeOvJtwCVuoazXchSNY+ 5U04eRV37mJtKJxMlAG7ev0GMf3BEnfZIhoM3o4g5s6IjAa8di/QznFL0fGmBIea657I Wkhc1CtopAJhQbNU8X7ihHtYrqlE4DP0jpx1NJKNu6D+YZKBCHHbX+0lnMv0Nrvud9HC BNWTf9UeM6udo1LT+w3VIZ1ztL0RFHV7Fw3E3OYlVYppMRqZovKuqGvPYiUyTtm0vaLB q3S1pbyVLyQAfrtW8gdowwQu8pJu2tfnFJPzQxwnFkJBKRtDPRXp+g2y8Kn6oez1Win7 IG0A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:mime-version:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:message-id:date:to:from:dkim-signature :delivered-to:arc-authentication-results; bh=SoHRX0O9sw4nZXmXMQMiZhudqzMWdmXvLBiI22hGWL0=; b=kXVJAPTDq6aefM0nRjVmLXgL63NVzIuZSOJB5yB56qRtPyztMHD/7TD/rk1vY/drbe cTLPDy1byUUQnnBAHWDopZ9S2liFPPzatSHdHKXLaVKFZtfNLEOaHRBc8bu3A6qCnx27 d6ZkfoG9vDL9vN3GCGfgAucMVIsYtW3CuQN0hk8b5c5qZyViVszRGc/DBTUjBb8xCO4+ 09oJlz3tCuWukSC8Lsh9U04ctxnPBzm05Yb/EwFmMcxCB1l7EmOVICos16BFbMiqH0Z+ +eObZAUzmHehq0NdPAq4cQWNYRSTcWdZGyyoS5cB3AlQ+eGXdQQsj36aL4l2qfuxa7k2 7VoQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.b=hfCqATAp; 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=NONE 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 v5si6875651wmg.131.2017.07.01.12.28.57; Sat, 01 Jul 2017 12:28:57 -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.b=hfCqATAp; 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=NONE 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 4A0536809F5; Sat, 1 Jul 2017 22:28:53 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wr0-f194.google.com (mail-wr0-f194.google.com [209.85.128.194]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id EBBE768091A for ; Sat, 1 Jul 2017 22:28:46 +0300 (EEST) Received: by mail-wr0-f194.google.com with SMTP id 77so41565121wrb.3 for ; Sat, 01 Jul 2017 12:28:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id; bh=MSBWIvpwTdrtKWU1Hk6r/5iGqPJa1otALBoZSxXho2E=; b=hfCqATApnBJyDE1EwuQlE0tx75ZyHxaPwoAgsm+8lLvAUz/Gatq5NfFvLNKsRBSgTF 01f6xDyn0qsLGTM3b8d5tgDfKtozsxYZr7r8HHvnuBd3f99GdmTI3jTlSDfA6i76x6ia 4PmHkGW1V1lh0e4ElyORCdc5XHzhEDYsotxibgDPlJLUQQmFCvqjkvM3ZPdgAxipN22U jnnJY577GfKW5waWMdtvv5YiRT73btjcGwkaoOJ2ymuwGzsPEpiiJVFd8HdARJ0K/PL4 yYLeGf4MnKPs51hEUZjokVziQ6Tigt1gnB3fZU7dz1uISkFRp2jXsHRK0O1wNW+fWSPM stSw== 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; bh=MSBWIvpwTdrtKWU1Hk6r/5iGqPJa1otALBoZSxXho2E=; b=sqZZwxeVCwsJfqiN2PkkRCzc92LFODErRclnEnrMFpNvVk7LWHHuDVgJOVj8M5rAMQ mndMeO4xvnKWzM0PluOotTwI5WV6CjK12kVjVITGZM9Ff9wQsfNExIkPHQVm3YWT0Al0 yyoy3h5vBFgwpxGJsxu/+RACWTUE4D+w6P+0+DyoUuBkWc/SO08mtvMPV/KRYpjCsTf8 IcVdCTQ577BoyPGCIJeeUObgqUJdKXlTiJcU5rCYMicE5SqNWMr8svOlMUMBCdmKXC/a y32Xa9TAFhdmWSOt2TrYoItXb87ZO+8jgS1UvgzkE0H8Y8dADBPwiCU8Gdbj0qiijJuU 0naQ== X-Gm-Message-State: AKS2vOwb1VXO78N24wmjAQtECYmyqcXLN4WVGpTO8iWM+Tv9wl8Uzuld NVJBFiZbNOOi2JPL X-Received: by 10.223.146.1 with SMTP id 1mr26740408wrj.152.1498937327196; Sat, 01 Jul 2017 12:28:47 -0700 (PDT) Received: from localhost.localdomain ([94.250.174.60]) by smtp.gmail.com with ESMTPSA id l12sm13769268wrc.46.2017.07.01.12.28.45 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 01 Jul 2017 12:28:45 -0700 (PDT) From: Paul B Mahol To: ffmpeg-devel@ffmpeg.org Date: Sat, 1 Jul 2017 21:28:35 +0200 Message-Id: <20170701192835.24915-1-onemda@gmail.com> X-Mailer: git-send-email 2.9.3 Subject: [FFmpeg-devel] [PATCH] avcodec/als: use planar sample formats 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 MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" This is native layout of this codec. Signed-off-by: Paul B Mahol --- libavcodec/alsdec.c | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/libavcodec/alsdec.c b/libavcodec/alsdec.c index 4a8f13d..31e95e2 100644 --- a/libavcodec/alsdec.c +++ b/libavcodec/alsdec.c @@ -1790,25 +1790,28 @@ static int decode_frame(AVCodecContext *avctx, void *data, int *got_frame_ptr, return ret; // transform decoded frame into output format - #define INTERLEAVE_OUTPUT(bps) \ + #define SHIFT_OUTPUT(bps) \ { \ - int##bps##_t *dest = (int##bps##_t*)frame->data[0]; \ shift = bps - ctx->avctx->bits_per_raw_sample; \ if (!ctx->cs_switch) { \ - for (sample = 0; sample < ctx->cur_frame_length; sample++) \ - for (c = 0; c < avctx->channels; c++) \ + for (c = 0; c < avctx->channels; c++) { \ + int##bps##_t *dest = (int##bps##_t*)frame->extended_data[c]; \ + for (sample = 0; sample < ctx->cur_frame_length; sample++) \ *dest++ = ctx->raw_samples[c][sample] << shift; \ + } \ } else { \ - for (sample = 0; sample < ctx->cur_frame_length; sample++) \ - for (c = 0; c < avctx->channels; c++) \ + for (c = 0; c < avctx->channels; c++) { \ + int##bps##_t *dest = (int##bps##_t*)frame->extended_data[c]; \ + for (sample = 0; sample < ctx->cur_frame_length; sample++) \ *dest++ = ctx->raw_samples[sconf->chan_pos[c]][sample] << shift; \ + } \ } \ } if (ctx->avctx->bits_per_raw_sample <= 16) { - INTERLEAVE_OUTPUT(16) + SHIFT_OUTPUT(16) } else { - INTERLEAVE_OUTPUT(32) + SHIFT_OUTPUT(32) } // update CRC @@ -1960,11 +1963,11 @@ static av_cold int decode_init(AVCodecContext *avctx) goto fail; } if (sconf->floating) { - avctx->sample_fmt = AV_SAMPLE_FMT_FLT; + avctx->sample_fmt = AV_SAMPLE_FMT_FLTP; avctx->bits_per_raw_sample = 32; } else { avctx->sample_fmt = sconf->resolution > 1 - ? AV_SAMPLE_FMT_S32 : AV_SAMPLE_FMT_S16; + ? AV_SAMPLE_FMT_S32P : AV_SAMPLE_FMT_S16P; avctx->bits_per_raw_sample = (sconf->resolution + 1) * 8; if (avctx->bits_per_raw_sample > 32) { av_log(avctx, AV_LOG_ERROR, "Bits per raw sample %d larger than 32.\n",