From patchwork Sat Jul 1 20:23:06 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: 4180 Delivered-To: ffmpegpatchwork@gmail.com Received: by 10.103.1.76 with SMTP id 73csp7356520vsb; Sat, 1 Jul 2017 13:23:28 -0700 (PDT) X-Received: by 10.28.46.3 with SMTP id u3mr18710975wmu.68.1498940608625; Sat, 01 Jul 2017 13:23:28 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1498940608; cv=none; d=google.com; s=arc-20160816; b=FkpACLz+au54z/hgrRPmqUPaAzafazNfWuDPN10weDuTj4hcDJVPm3jk81MWjzbAyE XroJTXzOACjb5hm2Uv8lTJ6jZTNvnO88kHF+RbrEr9GnYm754iHBruv0XR0sZinuNmAz OebJjkDbHwAxRosIVrrKHNeyOXIuyyfQeHqjDcofRvWqZ8KxxxJP4GwK4emOLyQM3Y9H OqlFqoLWE8tpML7XfG3jhN8prky9ztKCvn/i/SbrB4ryxr3hQTdbYSF3ylUQdP2iKZLV HL6RP3dKWzvmPKnJZlnGa3uKgSVOkHsHwF1QjzU1x/4ee/S4ttBVghCcmRWOgadK8MWE bjyg== 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=LRgMkyER39yjN3jZsNvolcbLxpdeNcZX3aj/VPr85eYuxNPu4k+Vfvc7PKc7AoTX7S FIqBgBSXgKe/6DiIehzmO4fm+w3r2sSzqkv/LDpkBIfKGGsJtoOPR/2HT133ve7MMovf iOoF2pwqdfcpIyRcoKTsX0a8biSvUoJ94hhDfimzJjBTfuNx0aCpTSQohgrrLuRUJdhm 5b3/cIA6z+mY6tCtDOycuJjo3f+ZG6yXTQF2wW4CmLx5hYNMm1fX608RkUE9RVfpzb1z 2B/BL15WN00tDq8ppt+q58PgN0euJjTgiuut0fV4PEnCV/kcIFmK+jADs8PwV5J9RfVJ ZWsQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.b=UYPLq+kV; 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 j4si13977358wmi.146.2017.07.01.13.23.27; Sat, 01 Jul 2017 13:23:28 -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=UYPLq+kV; 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 EBD6B680AAF; Sat, 1 Jul 2017 23:23:23 +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 7F1826808CD for ; Sat, 1 Jul 2017 23:23:17 +0300 (EEST) Received: by mail-wr0-f194.google.com with SMTP id x23so41707992wrb.0 for ; Sat, 01 Jul 2017 13:23:18 -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=UYPLq+kV8g64GvNlAYNfA+0yIyL2nu5P/5/EQOecZI2D4KdM3OYcB0pdjRdfjsCIH8 2BeiBG4i6a/Lp3hBwS+xoMaGZa5kWmoZG+D7gSDwZl+9hfhZ3T9/dlWo8xJh5DpPnsij Uo4y+32iNfEtm4+btqqPTLMuTZF1GOUwyf0Uy2ZXd99LCG2In6vl8I5NT68uihj7A6tY zFP6svLGG2epjDLnhWCcFhHnYioUxxnPCI1YhCzf46Lqwui9q+DTkMKE76o+VKMZkCsX lvuXsBcoYP9aeX+npKma/I43C0MOt6zaNGFaUZ39VFtzxv+FL0JoNA8SqyUKa51O8VHw zhEg== 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=F+j4nLJAOAOx9kdLBScLSqq2u+pgsO2y9liHHoyAdQJdoBRGL5DXmuUaHL1P/wJ+EB QeXPnOtctWtrn0KKaNtWUajB4+sqvCOoi7C38NykWMpleD5bUzby0BfB1KEFZ+/7ME32 D2EhACDs9cmHj+qjSdWCbiS15ex7+1su52Uwy8QNPPhSnM9cE2dEET/TGeyRPjNAL+vn tS+HWvr34VGZpVdcRVSQ1lYf6ROoju5kSJc9n2hZxxP5UoTBHDkmm06k6gRXF704QMKT E+TgixzSpfq2Zr/r3drP4e8HqbiqcnGpZRM9PqcBhVWJ8aZBePAPwjxcz7Pd6/DTYWyd bpcg== X-Gm-Message-State: AKS2vOzTgNjwVVTH/LRpd7nd/sqAyVlOW4BewUdBzFUDKIOccVmujOtl KgCUN0lRX0+dAWwn X-Received: by 10.223.161.204 with SMTP id v12mr29508101wrv.125.1498940597827; Sat, 01 Jul 2017 13:23:17 -0700 (PDT) Received: from localhost.localdomain ([94.250.174.60]) by smtp.gmail.com with ESMTPSA id 55sm16062813wrt.36.2017.07.01.13.23.16 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 01 Jul 2017 13:23:16 -0700 (PDT) From: Paul B Mahol To: ffmpeg-devel@ffmpeg.org Date: Sat, 1 Jul 2017 22:23:06 +0200 Message-Id: <20170701202307.2243-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",