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

View File

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