public void onPreviewFrame(byte[] _data, Camera _camera) { if (NgnProxyVideoProducer.super.mValid) { mVideoFrame.put(_data); mProducer.push(mVideoFrame, mVideoFrame.capacity()); mVideoFrame.rewind(); if (NgnProxyVideoProducer.sAddCallbackBufferSupported) { NgnCameraProducer.addCallbackBuffer(_camera, _data); } } }
private void startCameraPreview(Camera camera) { if (camera != null && mProducer != null && mVideoFrame != null) { try { Log.d(TAG, String.format("setPreviewSize [%d x %d ]", mWidth, mHeight)); Camera.Parameters parameters = camera.getParameters(); parameters.setPreviewSize(mWidth, mHeight); camera.setParameters(parameters); } catch (Exception e) { Log.e(TAG, e.toString()); } try { int terminalRotation = getTerminalRotation(); Camera.Parameters parameters = camera.getParameters(); if (terminalRotation == 0) { parameters.set("orientation", "landscape"); } else { parameters.set("orientation", "portrait"); } camera.setParameters(parameters); } catch (Exception e) { Log.e(TAG, e.toString()); } // Camera Orientation int rotation = compensCamRotation(false); Log.d(TAG, String.format("setDisplayOrientation [%d] ", rotation)); NgnCameraProducer.setDisplayOrientation(camera, rotation); // Callback Buffers if (NgnProxyVideoProducer.sAddCallbackBufferSupported) { for (int i = 0; i < NgnProxyVideoProducer.CALLABACK_BUFFERS_COUNT; i++) { NgnCameraProducer.addCallbackBuffer(camera, new byte[mVideoFrame.capacity()]); } } camera.startPreview(); } }