From patchwork Fri May 7 16:50:48 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Cameron Cawley X-Patchwork-Id: 27683 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:b214:0:0:0:0:0 with SMTP id b20csp693337iof; Fri, 7 May 2021 09:57:13 -0700 (PDT) X-Google-Smtp-Source: ABdhPJw4J9BsJypUYnWDAFMzaWK/TNvADUIeJdc8hItAFI8L1RY71u5WKu8zo9vMGuOwI7+YeYzf X-Received: by 2002:aa7:c510:: with SMTP id o16mr12461384edq.310.1620406633539; Fri, 07 May 2021 09:57:13 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1620406633; cv=none; d=google.com; s=arc-20160816; b=RhKqaWo+X/dclgpx5cwCLFHZDcIZHDz7e5n72hWq2x9e7hYjkSnOEi7P5PuEQl/2zo dOTauqOpg9chjT3FtX77k0sHuHC//VzjD2aUVx+7hWIYzkzzpcqKx30/sMygyt+9GdNb SGw3jZ9OyHzNBd216XM0h/JjYMpODO6i4qV3H8Q503SIximluys6k2vJMRBPrvZgfR3l JxNhUNpC5QAWeZwEePD7jkR0NZk7IGZ0G0CFmLEdZkmFBRSWvmH2iE9S9Na8TkUZUlYM Nu65jEhZpVcv5pABdoJbeDTFeby8hg+8aTy8pYsmUT1SUrk7ZHZnAV/FtSUcp6Z0DfQN 6Ctw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:mime-version:references:in-reply-to :message-id:date:to:from:dkim-signature:delivered-to; bh=xUtK4X/F7KwaQ2Fhf6c950jFZPhbi4dNAZvxrdFQWKk=; b=tKJ8DcfA8/WGo5+dtzz0rokEVe+EOnfCT24Kdyip7NHZ9TnoWTmC2b1A4BBcwliu9o /7hYbOkGRIj/KBT7ifQ9daNHLMjJ2PTfGZSzE4Wy6sj3sAQ6DyM3ijyq5fzRwtP+KewB Cm8tZ4GrsbzMdTMbbwW80i0tPhrIc6OYnbBpZijb2YrrgXv6sn4Om+fYBFYdHaB12RUw pzXyvNffUsexSGylylN8+XfsR1UDXPcd0byRxQWfn3Y+afZyykO4JSMM++Lld61b1lkx GHhE+4Ew2XOJRCj+HCqDqOK6QLQfiSa44eOKytPWoiZ0vxp/KKJWOpyjhtHhdSaySBSr 3oPQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20161025 header.b=oQ9AwVrX; 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=QUARANTINE 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 a11si3166821edf.280.2021.05.07.09.57.12; Fri, 07 May 2021 09:57:13 -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.s=20161025 header.b=oQ9AwVrX; 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=QUARANTINE 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 5544E6806DA; Fri, 7 May 2021 19:57:09 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wr1-f50.google.com (mail-wr1-f50.google.com [209.85.221.50]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 119746804AB for ; Fri, 7 May 2021 19:57:03 +0300 (EEST) Received: by mail-wr1-f50.google.com with SMTP id m9so9971106wrx.3 for ; Fri, 07 May 2021 09:57:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=RU1cMlT4oXUhP9k3+cGi+gTyxyjKPl9oufnGzuTH74c=; b=oQ9AwVrXZ/kHJk5iFl+7D4wr4MNsszZVTv6SkVX8wBWtCneJf99wXgvmpEKWuDucH2 ydeBH8cCrfngB2uF+c6KmLqDAe5+guXVC9cho7QQca/FigVPggyaavg5FPNGmPh4GGIg R92M83ueW7MKxQ8EXUPddynwjftSGBX681c24HEQby30Yo56Rakgd9XGPlqQ8y21HZUd /ybDmPYa/4DIUX+8VehMTB5g+q2yi8RQhB6iOu1+28e1Vv6VAdgkSH7fYhSHAMhpTil4 wMZ7542bigmKGEQAcAN1zZQ8sjPpJYTMtI+J7dqg04RUK27Ro6KTToOjDZIGNRdQR7XE LZPA== 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:in-reply-to :references:mime-version:content-transfer-encoding; bh=RU1cMlT4oXUhP9k3+cGi+gTyxyjKPl9oufnGzuTH74c=; b=fbDWEhvrtQaDvIUKedZt5Xf9vOXILQRybMFCYtLj8Qa30H3IdIRc6M+dDPVHelBakt 24RPoscIbjTUJZ8oTy7/DEusHxbb2zGZEYiPLvKHfpp3QBmI+C8HkEHI7iLTJ6g2fJ0m ib+Uc+CbH1P5JuMq030Ka8aZn1KxszGEwKB7fLWoBgp4NGFRblet4MyOPpB/jFbw7nxD NdZJIE2hLS1Z7rAz28XgnJO5AX5SvG9I9aXocxISWys4BV0U5oH1WvBJhFJwdKRYgaQc YXsYn2yPqnztlcA+8jJKyPsnk2+A//SVMJQkdQdsVewebwxTITgqBqr6KT9utSqhbbgf +a/Q== X-Gm-Message-State: AOAM532bMje3MbWupE6tf3DSQyWSXzkMjqgVSmpTvx+DS3yDWys8VJaU +J06odVQimx9Ye3fp9PpgChhcJVAAsTT3Q== X-Received: by 2002:a5d:54c2:: with SMTP id x2mr13235617wrv.278.1620406265001; Fri, 07 May 2021 09:51:05 -0700 (PDT) Received: from localhost.localdomain (239.51.115.87.dyn.plus.net. [87.115.51.239]) by smtp.gmail.com with ESMTPSA id s1sm15032888wmj.8.2021.05.07.09.51.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 07 May 2021 09:51:04 -0700 (PDT) From: Cameron Cawley To: ffmpeg-devel@ffmpeg.org Date: Fri, 7 May 2021 17:50:48 +0100 Message-Id: <20210507165048.27061-2-ccawley2011@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20210507165048.27061-1-ccawley2011@gmail.com> References: <20210507165048.27061-1-ccawley2011@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 2/2] avformat/rpl: Support files containing Replay IMA ADPCM audio X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 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: Cameron Cawley Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: wA9PqXHyaCWu --- libavformat/rpl.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/libavformat/rpl.c b/libavformat/rpl.c index 367e80b2c4..d495734e8e 100644 --- a/libavformat/rpl.c +++ b/libavformat/rpl.c @@ -121,6 +121,7 @@ static int rpl_read_header(AVFormatContext *s) int error = 0; const char *endptr; char audio_type[RPL_LINE_LENGTH]; + char audio_codec[RPL_LINE_LENGTH]; uint32_t i; @@ -189,7 +190,9 @@ static int rpl_read_header(AVFormatContext *s) // ARMovie supports multiple audio tracks; I don't have any // samples, though. This code will ignore additional tracks. - audio_format = read_line_and_int(pb, &error); // audio format ID + error |= read_line(pb, line, sizeof(line)); + audio_format = read_int(line, &endptr, &error); // audio format ID + av_strlcpy(audio_codec, endptr, RPL_LINE_LENGTH); if (audio_format) { ast = avformat_new_stream(s, NULL); if (!ast) @@ -227,6 +230,11 @@ static int rpl_read_header(AVFormatContext *s) // There are some other formats listed as legal per the spec; // samples needed. break; + case 2: + if (av_stristr(audio_codec, "adpcm") != NULL) { + ast->codecpar->codec_id = AV_CODEC_ID_ADPCM_IMA_ACORN; + } + break; case 101: if (ast->codecpar->bits_per_coded_sample == 8) { // The samples with this kind of audio that I have @@ -238,8 +246,8 @@ static int rpl_read_header(AVFormatContext *s) break; } if (ast->codecpar->codec_id == AV_CODEC_ID_NONE) - avpriv_request_sample(s, "Audio format %"PRId32, - audio_format); + avpriv_request_sample(s, "Audio format %"PRId32" (%s)", + audio_format, audio_codec); avpriv_set_pts_info(ast, 32, 1, ast->codecpar->bit_rate); } else { for (i = 0; i < 3; i++)