From patchwork Sat Jan 25 11:14:49 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jai Luthra X-Patchwork-Id: 17541 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 966BE44BCD1 for ; Sat, 25 Jan 2020 13:15:09 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 5E76C68A938; Sat, 25 Jan 2020 13:15:09 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-pg1-f194.google.com (mail-pg1-f194.google.com [209.85.215.194]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id D3B8268ADC4 for ; Sat, 25 Jan 2020 13:15:01 +0200 (EET) Received: by mail-pg1-f194.google.com with SMTP id r11so2541167pgf.1 for ; Sat, 25 Jan 2020 03:15:01 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=jailuthra-in.20150623.gappssmtp.com; s=20150623; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=Pb+dHfqMZ1/jVju52H+kskjVaHKNNGVwu1CgQN9fH98=; b=upMttSuthApLYbZCh5VvwIPmgKeAxoiS4J9KBg1YudGsC263x0UyqOCAEPmrdXE3wv /ujYOO/dRfMpJN2T3rmKM/xtzRpndLf8SPCa5pHWd5/3/qyDzTdjb3h9ULLt3ZiosLOZ ZHH/IsZtGzN62w1cUp/YrSRsYqRm7iIb8gyJD6C9J7VTnCUE3V9pQU/8/Z3rcVo2VT9J /axT6L+/V3eGEBaTOV4wLDXoQr3TR4t+XnodY6OTykLgIQPnFiPFmZGBCzN6Sr1AYgS9 wbwdnrnjZR9WHkQAlDiv1EBYVL+fZHZg5tW7VitXkk0Yfz7m8eilnjzgvcEdd107NOgI 7dnQ== 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=Pb+dHfqMZ1/jVju52H+kskjVaHKNNGVwu1CgQN9fH98=; b=ZATE47BtznJKkoNhedWVeon4I2/OJCx0uv2qi0h0H+hHpINDLtfxXV43ninO6eLQRZ RK+6LZglPuiM1FfFpDuty3LBAr7phcPkP0MeQl9ByU6PlJ5PEGcBJ675cpg+8HLM1PCY cDx3JaIWAONWxokNA487fWRoJODc9pz93q/4wWb4zOV1nE5tI0O1yU7BdVvSHr0FWPkM lK2hHXAd9f63aiX2B7zDcsiaa47oZiNav0+Uh4ADCnEjtpXDlgq5WMdXBU34fmeVgVbf q+SXGpOAAGPM/y3+QXyziiWIxBbb9x1VD2ou/uyMQtzmgojCvucvd8xj7pOsUiXORlzu NIQA== X-Gm-Message-State: APjAAAV7D7zhmy2ZPZNxnlwB2EBiu2ynZGHlmUOzqobL8OUiPVFhOL4t aG5Ipm8dc9lauHFfEsdLpQECgz11ASo= X-Google-Smtp-Source: APXvYqw5/8EC/W5VNqNrvghPk3PR9I3At/3IP22RhS9KDc5f15weLEXAXo7/3uO8e6m51Nisi8Vt6A== X-Received: by 2002:a63:2d44:: with SMTP id t65mr9790971pgt.112.1579950898942; Sat, 25 Jan 2020 03:14:58 -0800 (PST) Received: from localhost.localdomain ([49.207.55.142]) by smtp.googlemail.com with ESMTPSA id i11sm9750977pjg.0.2020.01.25.03.14.57 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 25 Jan 2020 03:14:58 -0800 (PST) From: Jai Luthra To: ffmpeg-devel@ffmpeg.org Date: Sat, 25 Jan 2020 16:44:49 +0530 Message-Id: <20200125111449.12346-1-me@jailuthra.in> X-Mailer: git-send-email 2.25.0 In-Reply-To: References: MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 5/5] mlpenc: clean up 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: Jai Luthra --- On Fri, Jan 24, 2020 at 02:25:20PM +0100, Paul B Mahol wrote: > This is not cleanup, this adds new line of code without proper explanation. My bad, I was testing something and forgot to remove that line. Fixed now. libavcodec/mlpenc.c | 23 ++++++++++------------- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/libavcodec/mlpenc.c b/libavcodec/mlpenc.c index 0e7a9b7640..347a43248c 100644 --- a/libavcodec/mlpenc.c +++ b/libavcodec/mlpenc.c @@ -94,8 +94,8 @@ typedef struct BestOffset { int16_t max; } BestOffset; -#define HUFF_OFFSET_MIN -16384 -#define HUFF_OFFSET_MAX 16383 +#define HUFF_OFFSET_MIN (-16384) +#define HUFF_OFFSET_MAX ( 16383) /** Number of possible codebooks (counting "no codebooks") */ #define NUM_CODEBOOKS 4 @@ -808,7 +808,7 @@ static void write_major_sync(MLPEncodeContext *ctx, uint8_t *buf, int buf_size) static void write_restart_header(MLPEncodeContext *ctx, PutBitContext *pb) { RestartHeader *rh = ctx->cur_restart_header; - int32_t lossless_check = xor_32_to_8(rh->lossless_check_data); + uint8_t lossless_check = xor_32_to_8(rh->lossless_check_data); unsigned int start_count = put_bits_count(pb); PutBitContext tmpb; uint8_t checksum; @@ -1017,12 +1017,10 @@ static void write_block_data(MLPEncodeContext *ctx, PutBitContext *pb) codebook_index [ch] = cp->codebook - 1; sign_huff_offset[ch] = cp->huff_offset; - sign_shift = lsb_bits[ch] - 1; + sign_shift = lsb_bits[ch] + (cp->codebook ? 2 - cp->codebook : -1); - if (cp->codebook > 0) { + if (cp->codebook > 0) sign_huff_offset[ch] -= 7 << lsb_bits[ch]; - sign_shift += 3 - cp->codebook; - } /* Unsign if needed. */ if (sign_shift >= 0) @@ -1032,7 +1030,6 @@ static void write_block_data(MLPEncodeContext *ctx, PutBitContext *pb) for (i = 0; i < dp->blocksize; i++) { for (ch = rh->min_channel; ch <= rh->max_channel; ch++) { int32_t sample = *sample_buffer++ >> dp->quant_step_size[ch]; - sample -= sign_huff_offset[ch]; if (codebook_index[ch] >= 0) { @@ -1252,7 +1249,7 @@ static void input_data_internal(MLPEncodeContext *ctx, const uint8_t *samples, uint32_t abs_sample; int32_t sample; - sample = is24 ? *samples_32++ >> 8 : *samples_16++ << 8; + sample = is24 ? *samples_32++ >> 8 : *samples_16++ * 256U; /* TODO Find out if number_sbits can be used for negative values. */ abs_sample = FFABS(sample); @@ -1795,7 +1792,7 @@ static void determine_bits(MLPEncodeContext *ctx) #define SAMPLE_MAX(bitdepth) ((1 << (bitdepth - 1)) - 1) #define SAMPLE_MIN(bitdepth) (~SAMPLE_MAX(bitdepth)) -#define MSB_MASK(bits) (-1u << bits) +#define MSB_MASK(bits) (-(1u << (bits))) /** Applies the filter to the current samples, and saves the residual back * into the samples buffer. If the filter is too bad and overflows the @@ -1899,8 +1896,8 @@ static void generate_2_noise_channels(MLPEncodeContext *ctx) for (i = 0; i < ctx->number_of_samples; i++) { uint16_t seed_shr7 = seed >> 7; - *sample_buffer++ = ((int8_t)(seed >> 15)) << rh->noise_shift; - *sample_buffer++ = ((int8_t) seed_shr7) << rh->noise_shift; + *sample_buffer++ = ((int8_t)(seed >> 15)) * (1 << rh->noise_shift); + *sample_buffer++ = ((int8_t) seed_shr7) * (1 << rh->noise_shift); seed = (seed << 16) ^ seed_shr7 ^ (seed_shr7 << 5); @@ -2275,7 +2272,7 @@ static int mlp_encode_frame(AVCodecContext *avctx, AVPacket *avpkt, if (restart_frame) { set_major_params(ctx); if (ctx->min_restart_interval != ctx->max_restart_interval) - process_major_frame(ctx); + process_major_frame(ctx); } if (ctx->min_restart_interval == ctx->max_restart_interval)