[FFmpeg-cvslog] electronic arts: support rare samples containing adpcm_ea_r1 audio

Peter Ross git at videolan.org
Sun Nov 11 12:57:04 CET 2012


ffmpeg | branch: master | Peter Ross <pross at xvid.org> | Sat Nov 10 10:27:36 2012 +1100| [6f78ba8b0b40ce0f4daea4fa6659cdc52bbce400] | committer: Michael Niedermayer

electronic arts: support rare samples containing adpcm_ea_r1 audio

Fixes ticket #1549.

Reviewed-by: Paul B Mahol <onemda at gmail.com>
Signed-off-by: Michael Niedermayer <michaelni at gmx.at>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=6f78ba8b0b40ce0f4daea4fa6659cdc52bbce400
---

 libavformat/electronicarts.c |   11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/libavformat/electronicarts.c b/libavformat/electronicarts.c
index 0847a3a..82bc0e2 100644
--- a/libavformat/electronicarts.c
+++ b/libavformat/electronicarts.c
@@ -189,7 +189,16 @@ static int process_audio_header_elements(AVFormatContext *s)
         }
         switch (revision2) {
         case  8: ea->audio_codec = AV_CODEC_ID_PCM_S16LE_PLANAR; break;
-        case 10: ea->audio_codec = AV_CODEC_ID_ADPCM_EA_R2; break;
+        case 10:
+            switch (revision) {
+            case -1:
+            case  2: ea->audio_codec = AV_CODEC_ID_ADPCM_EA_R1; break;
+            case  3: ea->audio_codec = AV_CODEC_ID_ADPCM_EA_R2; break;
+            default:
+                av_log_ask_for_sample(s, "unsupported stream type; revision=%i, revision2=%i\n", revision, revision2);
+                return 0;
+            }
+            break;
         case 16: ea->audio_codec = AV_CODEC_ID_MP3; break;
         case -1: break;
         default:



More information about the ffmpeg-cvslog mailing list