From patchwork Wed Feb 17 23:00:54 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stephen Hutchinson X-Patchwork-Id: 25717 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 75DF644B6A1 for ; Thu, 18 Feb 2021 01:09:24 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 3E13A6880FF; Thu, 18 Feb 2021 01:09:24 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qt1-f175.google.com (mail-qt1-f175.google.com [209.85.160.175]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 12F32680777 for ; Thu, 18 Feb 2021 01:09:18 +0200 (EET) Received: by mail-qt1-f175.google.com with SMTP id w5so56395qts.12 for ; Wed, 17 Feb 2021 15:09:17 -0800 (PST) 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=JptiDgM2Cl8RDnuMBYKqB204Fzkb2ky/cbFjTjb1gvY=; b=mv1gyfixjd+tHYkIW4rcXBn+La5lAKDwZzzTUXgVR5VHaM3Wkf8O6T/ogYqhRz2WGI AL1pHhQ1UBA2K0S9BZEd7KAaZhCRvwBVDp/EbIWBe4EdapVENmdhtt6O9OuHciGrpyKF FMzsqAl8oYgz4w8gwjyk83yIhaU22IcMzJKz5kTpEQVxbqRptw7euZEx5envAGF1u47p 19jEuJRDtRchuJMPtQm+zLv4Z6QpBPH+W8mt48LIMbirOBTM6IEefqzLViSdc8ylHLtX Ba/2SFmZc8NZsneZaqzjn2bZ4/7p33MJF0iV1fT7d+izFXYM9jH8o3fRSExHY9lAQH0X R3sg== 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=JptiDgM2Cl8RDnuMBYKqB204Fzkb2ky/cbFjTjb1gvY=; b=eTCtDWI0bcNPzK08cC4t2ZR17uzRtLJ6zkVo21m/SqikhwXpF1Z++fNI431F8XhVlO Q8xwiighD5PIXrUd0+FYcMXhpgIatGSalB8qlastUqcC+9j1fl+UK+Tqt6+sjC+1PzBP DFVZNxfp/ESITtLLDL98oQD2q9jfgIvuUfMYslY4x2LdB1JlCAn2ocRtkMJidrvljkZt 9VPR44yGmdvm8cChobHjnkgsPqxdBSOrRn839BpJvGTnG3y3Nv0uFouZpVHckoTFHFYn n6zCD8xlMokopfVcNHJWxF+qLYUHTzPDVeBxsb9XNfJFGtDDE6AM9WL3Mnyv+9D7OFJb Bslw== X-Gm-Message-State: AOAM532246fVpGOJaWrJMjmPV/el5xS4sfMWbgmSrvItKTjFJqklpWJK QsA+ovOg+gC50SLsJU6sOucr/C04GXU= X-Google-Smtp-Source: ABdhPJyjfQH6za6VVmU1n7WRWQf1xF43cULQyksSXDUwjI4/4a7xWCR2qiG4vmqxtVJ7wH9VZ4sRxA== X-Received: by 2002:ac8:58d3:: with SMTP id u19mr1617612qta.168.1613602863013; Wed, 17 Feb 2021 15:01:03 -0800 (PST) Received: from localhost.localdomain ([75.115.109.114]) by smtp.gmail.com with ESMTPSA id u4sm2754708qkc.42.2021.02.17.15.01.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 17 Feb 2021 15:01:02 -0800 (PST) From: Stephen Hutchinson To: ffmpeg-devel@ffmpeg.org Date: Wed, 17 Feb 2021 18:00:54 -0500 Message-Id: <20210217230054.5650-1-qyot27@gmail.com> X-Mailer: git-send-email 2.27.0 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH] avisynth: fix audio on big endian 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: Stephen Hutchinson Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" --- Open for bikeshedding, as I'm not too sure of the names, but I didn't want to use anything too close to regular AV_CODEC_ID* defines. libavformat/avisynth.c | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/libavformat/avisynth.c b/libavformat/avisynth.c index f029a0e842..fbebb6707c 100644 --- a/libavformat/avisynth.c +++ b/libavformat/avisynth.c @@ -42,6 +42,19 @@ #define AVISYNTH_LIB AVISYNTH_NAME SLIBSUF #endif +/* Endianness guards for audio */ +#if HAVE_BIGENDIAN + #define AVISYNTH_PCM_OUT_S16 AV_CODEC_ID_PCM_S16BE + #define AVISYNTH_PCM_OUT_S24 AV_CODEC_ID_PCM_S24BE + #define AVISYNTH_PCM_OUT_S32 AV_CODEC_ID_PCM_S32BE + #define AVISYNTH_PCM_OUT_F32 AV_CODEC_ID_PCM_F32BE +#else + #define AVISYNTH_PCM_OUT_S16 AV_CODEC_ID_PCM_S16LE + #define AVISYNTH_PCM_OUT_S24 AV_CODEC_ID_PCM_S24LE + #define AVISYNTH_PCM_OUT_S32 AV_CODEC_ID_PCM_S32LE + #define AVISYNTH_PCM_OUT_F32 AV_CODEC_ID_PCM_F32LE +#endif + #include typedef struct AviSynthLibrary { @@ -496,16 +509,16 @@ static int avisynth_create_stream_audio(AVFormatContext *s, AVStream *st) st->codecpar->codec_id = AV_CODEC_ID_PCM_U8; break; case AVS_SAMPLE_INT16: - st->codecpar->codec_id = AV_CODEC_ID_PCM_S16LE; + st->codecpar->codec_id = AVISYNTH_PCM_OUT_S16; break; case AVS_SAMPLE_INT24: - st->codecpar->codec_id = AV_CODEC_ID_PCM_S24LE; + st->codecpar->codec_id = AVISYNTH_PCM_OUT_S24; break; case AVS_SAMPLE_INT32: - st->codecpar->codec_id = AV_CODEC_ID_PCM_S32LE; + st->codecpar->codec_id = AVISYNTH_PCM_OUT_S32; break; case AVS_SAMPLE_FLOAT: - st->codecpar->codec_id = AV_CODEC_ID_PCM_F32LE; + st->codecpar->codec_id = AVISYNTH_PCM_OUT_F32; break; default: av_log(s, AV_LOG_ERROR,