summaryrefslogtreecommitdiffstats
path: root/media
diff options
context:
space:
mode:
authorihf@chromium.org <ihf@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-08-06 21:49:51 +0000
committerihf@chromium.org <ihf@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-08-06 21:49:51 +0000
commited9ebbec15bd176c1ee2ad4460ee3b9564bcbafa (patch)
tree54a334cd8d0a3c022f1829c8f2f9fc3e43e99f7b /media
parent48428b844d5e3e8ab5c84153c976c83f7ec70685 (diff)
downloadchromium_src-ed9ebbec15bd176c1ee2ad4460ee3b9564bcbafa.zip
chromium_src-ed9ebbec15bd176c1ee2ad4460ee3b9564bcbafa.tar.gz
chromium_src-ed9ebbec15bd176c1ee2ad4460ee3b9564bcbafa.tar.bz2
FFmpeg: Add gsm_ms and pcm big endian codecs.
Also update corresponding tests. BUG=chromium-os:31955 TEST=Played on linux CrOS build. Review URL: https://chromiumcodereview.appspot.com/10452004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@150154 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'media')
-rw-r--r--media/base/audio_decoder_config.h5
-rw-r--r--media/ffmpeg/ffmpeg_common.cc12
2 files changed, 16 insertions, 1 deletions
diff --git a/media/base/audio_decoder_config.h b/media/base/audio_decoder_config.h
index e2309d5..5ab06c5 100644
--- a/media/base/audio_decoder_config.h
+++ b/media/base/audio_decoder_config.h
@@ -27,12 +27,15 @@ enum AudioCodec {
kCodecAMR_NB,
kCodecAMR_WB,
kCodecPCM_MULAW,
+ kCodecGSM_MS,
+ kCodecPCM_S16BE,
+ kCodecPCM_S24BE,
// DO NOT ADD RANDOM AUDIO CODECS!
//
// The only acceptable time to add a new codec is if there is production code
// that uses said codec in the same CL.
- kAudioCodecMax = kCodecPCM_MULAW // Must equal the last "real" codec above.
+ kAudioCodecMax = kCodecPCM_S24BE // Must equal the last "real" codec above.
};
// TODO(dalecurtis): FFmpeg API uses |bytes_per_channel| instead of
diff --git a/media/ffmpeg/ffmpeg_common.cc b/media/ffmpeg/ffmpeg_common.cc
index 740459f..1d64f1c 100644
--- a/media/ffmpeg/ffmpeg_common.cc
+++ b/media/ffmpeg/ffmpeg_common.cc
@@ -34,12 +34,18 @@ AudioCodec CodecIDToAudioCodec(CodecID codec_id) {
case CODEC_ID_PCM_S16LE:
case CODEC_ID_PCM_S24LE:
return kCodecPCM;
+ case CODEC_ID_PCM_S16BE:
+ return kCodecPCM_S16BE;
+ case CODEC_ID_PCM_S24BE:
+ return kCodecPCM_S24BE;
case CODEC_ID_FLAC:
return kCodecFLAC;
case CODEC_ID_AMR_NB:
return kCodecAMR_NB;
case CODEC_ID_AMR_WB:
return kCodecAMR_WB;
+ case CODEC_ID_GSM_MS:
+ return kCodecGSM_MS;
case CODEC_ID_PCM_MULAW:
return kCodecPCM_MULAW;
default:
@@ -67,6 +73,10 @@ static CodecID AudioCodecToCodecID(AudioCodec audio_codec,
DVLOG(1) << "Unsupported bits per channel: " << bits_per_channel;
}
break;
+ case kCodecPCM_S16BE:
+ return CODEC_ID_PCM_S16BE;
+ case kCodecPCM_S24BE:
+ return CODEC_ID_PCM_S24BE;
case kCodecVorbis:
return CODEC_ID_VORBIS;
case kCodecFLAC:
@@ -75,6 +85,8 @@ static CodecID AudioCodecToCodecID(AudioCodec audio_codec,
return CODEC_ID_AMR_NB;
case kCodecAMR_WB:
return CODEC_ID_AMR_WB;
+ case kCodecGSM_MS:
+ return CODEC_ID_GSM_MS;
case kCodecPCM_MULAW:
return CODEC_ID_PCM_MULAW;
default: