Merge "Fix some bugs in the MediaProfileReader Because the video and audio encoders were stored in the same map, when we retrieve the name from the map, we can get a incorrect name." into gingerbread

This commit is contained in:
James Dong
2010-07-07 14:56:20 -07:00
committed by Android (Google) Code Review
2 changed files with 19 additions and 15 deletions

View File

@ -34,10 +34,12 @@ public class MediaProfileReader
private static final List<AudioDecoder> audioDecoders = DecoderCapabilities.getAudioDecoders(); private static final List<AudioDecoder> audioDecoders = DecoderCapabilities.getAudioDecoders();
private static final List<VideoEncoderCap> videoEncoders = EncoderCapabilities.getVideoEncoders(); private static final List<VideoEncoderCap> videoEncoders = EncoderCapabilities.getVideoEncoders();
private static final List<AudioEncoderCap> audioEncoders = EncoderCapabilities.getAudioEncoders(); private static final List<AudioEncoderCap> audioEncoders = EncoderCapabilities.getAudioEncoders();
private static final HashMap<Integer, String> encoderMap = new HashMap<Integer, String>(); private static final HashMap<Integer, String> videoEncoderMap = new HashMap<Integer, String>();
private static final HashMap<Integer, String> audioEncoderMap = new HashMap<Integer, String>();
static { static {
initEncoderMap(); initAudioEncoderMap();
initVideoEncoderMap();
}; };
public static List<VideoEncoderCap> getVideoEncoders() { public static List<VideoEncoderCap> getVideoEncoders() {
@ -79,7 +81,7 @@ public class MediaProfileReader
videoEncoder != MediaRecorder.VideoEncoder.MPEG_4_SP) { videoEncoder != MediaRecorder.VideoEncoder.MPEG_4_SP) {
throw new IllegalArgumentException("Unsupported video encoder " + videoEncoder); throw new IllegalArgumentException("Unsupported video encoder " + videoEncoder);
} }
return encoderMap.get(videoEncoder); return videoEncoderMap.get(videoEncoder);
} }
public static String getAudioCodecName(int audioEncoder) { public static String getAudioCodecName(int audioEncoder) {
@ -90,22 +92,24 @@ public class MediaProfileReader
audioEncoder != MediaRecorder.AudioEncoder.EAAC_PLUS) { audioEncoder != MediaRecorder.AudioEncoder.EAAC_PLUS) {
throw new IllegalArgumentException("Unsupported audio encodeer " + audioEncoder); throw new IllegalArgumentException("Unsupported audio encodeer " + audioEncoder);
} }
return encoderMap.get(audioEncoder); return audioEncoderMap.get(audioEncoder);
} }
private MediaProfileReader() {} // Don't call me private MediaProfileReader() {} // Don't call me
private static void initEncoderMap() { private static void initVideoEncoderMap() {
// video encoders // video encoders
encoderMap.put(MediaRecorder.VideoEncoder.H263, "h263"); videoEncoderMap.put(MediaRecorder.VideoEncoder.H263, "h263");
encoderMap.put(MediaRecorder.VideoEncoder.H264, "h264"); videoEncoderMap.put(MediaRecorder.VideoEncoder.H264, "h264");
encoderMap.put(MediaRecorder.VideoEncoder.MPEG_4_SP, "m4v"); videoEncoderMap.put(MediaRecorder.VideoEncoder.MPEG_4_SP, "m4v");
}
private static void initAudioEncoderMap() {
// audio encoders // audio encoders
encoderMap.put(MediaRecorder.AudioEncoder.AMR_NB, "amrnb"); audioEncoderMap.put(MediaRecorder.AudioEncoder.AMR_NB, "amrnb");
encoderMap.put(MediaRecorder.AudioEncoder.AMR_WB, "amrwb"); audioEncoderMap.put(MediaRecorder.AudioEncoder.AMR_WB, "amrwb");
encoderMap.put(MediaRecorder.AudioEncoder.AAC, "aac"); audioEncoderMap.put(MediaRecorder.AudioEncoder.AAC, "aac");
encoderMap.put(MediaRecorder.AudioEncoder.AAC_PLUS, "aacplus"); audioEncoderMap.put(MediaRecorder.AudioEncoder.AAC_PLUS, "aacplus");
encoderMap.put(MediaRecorder.AudioEncoder.EAAC_PLUS, "eaacplus"); audioEncoderMap.put(MediaRecorder.AudioEncoder.EAAC_PLUS, "eaacplus");
} }
} }

View File

@ -121,8 +121,8 @@ public class MediaRecorderTest extends ActivityInstrumentationTestCase<MediaFram
mSurfaceHolder = MediaFrameworkTest.mSurfaceView.getHolder(); mSurfaceHolder = MediaFrameworkTest.mSurfaceView.getHolder();
String filename = ("/sdcard/" + videoEncoder + "_" + audioEncoder + "_" + highQuality + ".3gp"); String filename = ("/sdcard/" + videoEncoder + "_" + audioEncoder + "_" + highQuality + ".3gp");
try { try {
Log.v(TAG, "video encoder :" + videoEncoder); Log.v(TAG, "video encoder : " + videoEncoder);
Log.v(TAG, "audio encoder :" + audioEncoder); Log.v(TAG, "audio encoder : " + audioEncoder);
Log.v(TAG, "quality : " + (highQuality?"high": "low")); Log.v(TAG, "quality : " + (highQuality?"high": "low"));
Log.v(TAG, "encoder : " + MediaProfileReader.getVideoCodecName(videoEncoder)); Log.v(TAG, "encoder : " + MediaProfileReader.getVideoCodecName(videoEncoder));
Log.v(TAG, "audio : " + MediaProfileReader.getAudioCodecName(audioEncoder)); Log.v(TAG, "audio : " + MediaProfileReader.getAudioCodecName(audioEncoder));