diff options
author | Santhosh Kumar Thimmanna Bhattar <sthim@codeaurora.org> | 2014-10-20 12:30:14 +0530 |
---|---|---|
committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2014-10-27 06:15:36 -0700 |
commit | bac24e32cc1d2ff2fd5150e304b0898f449628ef (patch) | |
tree | 611ffd215e3a2c998895c554c00f0b205a0226bc /src/com/android/camera/CameraSettings.java | |
parent | e6efb5bd958c5828fa93faacc8a3df120baf9126 (diff) | |
download | android_packages_apps_Snap-bac24e32cc1d2ff2fd5150e304b0898f449628ef.tar.gz android_packages_apps_Snap-bac24e32cc1d2ff2fd5150e304b0898f449628ef.tar.bz2 android_packages_apps_Snap-bac24e32cc1d2ff2fd5150e304b0898f449628ef.zip |
SnapdragonCamera: Filter out unsupported video encoders in app
- Unsupported encoders are listing in video encoders list in
camera application.
- Added filter to remove unsupported video encoders from the
list.
Change-Id: I88b680bdd199bfe9540388129846ef0168e702bc
Diffstat (limited to 'src/com/android/camera/CameraSettings.java')
-rw-r--r-- | src/com/android/camera/CameraSettings.java | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/src/com/android/camera/CameraSettings.java b/src/com/android/camera/CameraSettings.java index 3a63d0bfe..4c2a20651 100644 --- a/src/com/android/camera/CameraSettings.java +++ b/src/com/android/camera/CameraSettings.java @@ -28,6 +28,10 @@ import android.hardware.Camera.CameraInfo; import android.hardware.Camera.Parameters; import android.hardware.Camera.Size; import android.media.CamcorderProfile; +import android.media.MediaRecorder; +import android.media.EncoderCapabilities; +import android.media.EncoderCapabilities.VideoEncoderCap; +import java.util.HashMap; import android.util.Log; import com.android.camera.util.ApiHelper; @@ -196,6 +200,15 @@ public class CameraSettings { private final Parameters mParameters; private final CameraInfo[] mCameraInfo; private final int mCameraId; + private static final HashMap<Integer, String> + VIDEO_ENCODER_TABLE = new HashMap<Integer, String>(); + + static { + VIDEO_ENCODER_TABLE.put(MediaRecorder.VideoEncoder.H263, "h263"); + VIDEO_ENCODER_TABLE.put(MediaRecorder.VideoEncoder.H264, "h264"); + VIDEO_ENCODER_TABLE.put(MediaRecorder.VideoEncoder.H265, "h265"); + VIDEO_ENCODER_TABLE.put(MediaRecorder.VideoEncoder.MPEG_4_SP, "m4v"); + } public CameraSettings(Activity activity, Parameters parameters, int cameraId, CameraInfo[] cameraInfo) { @@ -451,6 +464,20 @@ public class CameraSettings { return split(str); } + private static List<String> getSupportedVideoEncoders() { + ArrayList<String> supported = new ArrayList<String>(); + String str = null; + List<VideoEncoderCap> videoEncoders = EncoderCapabilities.getVideoEncoders(); + for (VideoEncoderCap videoEncoder: videoEncoders) { + str = VIDEO_ENCODER_TABLE.get(videoEncoder.mCodec); + if (str != null) { + supported.add(str); + } + } + return supported; + + } + private void qcomInitPreferences(PreferenceGroup group){ //Qcom Preference add here ListPreference powerMode = group.findPreference(KEY_POWER_MODE); @@ -629,6 +656,7 @@ public class CameraSettings { ListPreference videoHfrMode = group.findPreference(KEY_VIDEO_HIGH_FRAME_RATE); ListPreference seeMoreMode = group.findPreference(KEY_SEE_MORE); + ListPreference videoEncoder = group.findPreference(KEY_VIDEO_ENCODER); // Since the screen could be loaded from different resources, we need // to check if the preference is available here @@ -647,6 +675,10 @@ public class CameraSettings { mCameraId,mParameters)); } + if (videoEncoder != null) { + filterUnsupportedOptions(group, videoEncoder, getSupportedVideoEncoders()); + } + if (pictureSize != null) { filterUnsupportedOptions(group, pictureSize, sizeListToStringList( mParameters.getSupportedPictureSizes())); |