Avoid NPE crash on Android platforms that don't support getting preview framerate.
- catch Camera.setParameters() signaling errors through RuntimeException (!) - make video_demo_apk rebuild when .java sources change BUG=1778 R=wu@webrtc.org Review URL: https://webrtc-codereview.appspot.com/1493004 git-svn-id: http://webrtc.googlecode.com/svn/trunk@4059 4adac7df-926f-26a2-2b94-8c16560cd09d
This commit is contained in:
parent
5a602d7996
commit
8d6eb56085
@ -108,7 +108,12 @@ public class VideoCaptureAndroid implements PreviewCallback, Callback {
|
||||
currentCapability.height);
|
||||
parameters.setPreviewFormat(PIXEL_FORMAT);
|
||||
parameters.setPreviewFrameRate(currentCapability.maxFPS);
|
||||
camera.setParameters(parameters);
|
||||
try {
|
||||
camera.setParameters(parameters);
|
||||
} catch (RuntimeException e) {
|
||||
Log.e(TAG, "setParameters failed", e);
|
||||
return -1;
|
||||
}
|
||||
|
||||
int bufSize = width * height * pixelFormat.bitsPerPixel / 8;
|
||||
byte[] buffer = null;
|
||||
|
||||
@ -129,9 +129,11 @@ public class VideoCaptureDeviceInfoAndroid {
|
||||
List<Size> sizes = parameters.getSupportedPreviewSizes();
|
||||
List<Integer> frameRates = parameters.getSupportedPreviewFrameRates();
|
||||
int maxFPS = 0;
|
||||
for(Integer frameRate:frameRates) {
|
||||
if(frameRate > maxFPS) {
|
||||
maxFPS = frameRate;
|
||||
if (frameRates != null) {
|
||||
for(Integer frameRate:frameRates) {
|
||||
if(frameRate > maxFPS) {
|
||||
maxFPS = frameRate;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -21,7 +21,19 @@
|
||||
# TODO(leozwang): Convert building of the demo to a proper GYP target
|
||||
# so this action and the custom build script is not needed.
|
||||
'action_name': 'build_video_demo_apk',
|
||||
'inputs' : [],
|
||||
'inputs' : [
|
||||
'<(webrtc_root)/modules/audio_device/android/org/webrtc/voiceengine/WebRTCAudioDevice.java',
|
||||
'<(webrtc_root)/modules/video_capture/android/java/org/webrtc/videoengine/CaptureCapabilityAndroid.java',
|
||||
'<(webrtc_root)/modules/video_capture/android/java/org/webrtc/videoengine/VideoCaptureAndroid.java',
|
||||
'<(webrtc_root)/modules/video_capture/android/java/org/webrtc/videoengine/VideoCaptureDeviceInfoAndroid.java',
|
||||
'<(webrtc_root)/modules/video_render/android/java/org/webrtc/videoengine/ViEAndroidGLES20.java',
|
||||
'<(webrtc_root)/modules/video_render/android/java/org/webrtc/videoengine/ViERenderer.java',
|
||||
'<(webrtc_root)/modules/video_render/android/java/org/webrtc/videoengine/ViESurfaceRenderer.java',
|
||||
'<(webrtc_root)/video_engine/test/android/src/org/webrtc/videoengine/ViEMediaCodecDecoder.java',
|
||||
'<(webrtc_root)/video_engine/test/android/src/org/webrtc/videoengineapp/IViEAndroidCallback.java',
|
||||
'<(webrtc_root)/video_engine/test/android/src/org/webrtc/videoengineapp/ViEAndroidJavaAPI.java',
|
||||
'<(webrtc_root)/video_engine/test/android/src/org/webrtc/videoengineapp/WebRTCDemo.java',
|
||||
],
|
||||
'outputs': ['<(webrtc_root)'],
|
||||
'action': ['python',
|
||||
'<(webrtc_root)/video_engine/test/android/build_demo.py',
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user