Skip to content

Commit

Permalink
FFmpeg: Add gsm_ms and pcm big endian codecs.
Browse files Browse the repository at this point in the history
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
  • Loading branch information
ihf@chromium.org committed Aug 6, 2012
1 parent 48428b8 commit ed9ebbe
Show file tree
Hide file tree
Showing 3 changed files with 27 additions and 8 deletions.
18 changes: 11 additions & 7 deletions content/browser/media_browsertest.cc
Original file line number Diff line number Diff line change
Expand Up @@ -91,18 +91,22 @@ IN_PROC_BROWSER_TEST_F(MediaTest, VideoBear3gpAmrnbMpeg4) {
PlayVideo("bear_mpeg4_amrnb.3gp");
}

// TODO(ihf): Enable these audio codecs for CrOS.
// IN_PROC_BROWSER_TEST_F(MediaTest, VideoBearWavAlaw) {
// PlayVideo("bear_alaw.wav");
// }
// IN_PROC_BROWSER_TEST_F(MediaTest, VideoBearWavGsmms) {
// PlayVideo("bear_gsmms.wav");
// }
IN_PROC_BROWSER_TEST_F(MediaTest, VideoBearWavGsmms) {
PlayAudio("bear_gsm_ms.wav");
}

IN_PROC_BROWSER_TEST_F(MediaTest, VideoBearWavMulaw) {
PlayAudio("bear_mulaw.wav");
}

IN_PROC_BROWSER_TEST_F(MediaTest, VideoBearMovPcmS16be) {
PlayVideo("bear_pcm_s16be.mov");
}

IN_PROC_BROWSER_TEST_F(MediaTest, VideoBearMovPcmS24be) {
PlayVideo("bear_pcm_s24be.mov");
}

IN_PROC_BROWSER_TEST_F(MediaTest, VideoBearFlac) {
PlayAudio("bear.flac");
}
Expand Down
5 changes: 4 additions & 1 deletion media/base/audio_decoder_config.h
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
12 changes: 12 additions & 0 deletions media/ffmpeg/ffmpeg_common.cc
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down Expand Up @@ -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:
Expand All @@ -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:
Expand Down

0 comments on commit ed9ebbe

Please sign in to comment.