Skip to content
Snippets Groups Projects
Commit 5c463378 authored by Leo Ma's avatar Leo Ma
Browse files

Fix camera switch bug


The encoder should be available when camera is opened.

Signed-off-by: default avatarLeo Ma <begeekmyfriend@gmail.com>
parent ff61ee42
No related branches found
No related tags found
No related merge requests found
Loading
Loading
@@ -105,9 +105,7 @@ public class MainActivity extends Activity implements RtmpHandler.RtmpListener,
btnSwitchCamera.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (Camera.getNumberOfCameras() > 0) {
mPublisher.switchCameraFace((mPublisher.getCamraId() + 1) % Camera.getNumberOfCameras());
}
mPublisher.switchCameraFace((mPublisher.getCamraId() + 1) % Camera.getNumberOfCameras());
}
});
 
Loading
Loading
Loading
Loading
@@ -53,6 +53,7 @@ public class SrsEncoder {
private boolean networkWeakTriggered = false;
private boolean mCameraFaceFront = true;
private boolean useSoftEncoder = false;
private boolean canSoftEncode = false;
private long mPresentTimeUs;
Loading
Loading
@@ -117,8 +118,11 @@ public class SrsEncoder {
setEncoderBitrate(vBitrate);
setEncoderPreset(x264Preset);
if (useSoftEncoder && !openSoftEncoder()) {
return false;
if (useSoftEncoder) {
canSoftEncode = openSoftEncoder();
if (!canSoftEncode) {
return false;
}
}
// aencoder pcm to aac raw stream.
Loading
Loading
@@ -174,6 +178,7 @@ public class SrsEncoder {
public void stop() {
if (useSoftEncoder) {
closeSoftEncoder();
canSoftEncode = false;
}
if (aencoder != null) {
Loading
Loading
@@ -199,11 +204,11 @@ public class SrsEncoder {
mCameraFaceFront = false;
}
public void swithToSoftEncoder() {
public void switchToSoftEncoder() {
useSoftEncoder = true;
}
public void swithToHardEncoder() {
public void switchToHardEncoder() {
useSoftEncoder = false;
}
Loading
Loading
@@ -211,6 +216,18 @@ public class SrsEncoder {
return useSoftEncoder;
}
public boolean canHardEncode() {
return vencoder != null;
}
public boolean canSoftEncode() {
return canSoftEncode;
}
public boolean isEnabled() {
return canHardEncode() || canSoftEncode();
}
public void setPreviewResolution(int width, int height) {
vPrevWidth = width;
vPrevHeight = height;
Loading
Loading
Loading
Loading
@@ -140,12 +140,12 @@ public class SrsPublisher {
}
}
public void swithToSoftEncoder() {
mEncoder.swithToSoftEncoder();
public void switchToSoftEncoder() {
mEncoder.switchToSoftEncoder();
}
public void swithToHardEncoder() {
mEncoder.swithToHardEncoder();
public void switchToHardEncoder() {
mEncoder.switchToHardEncoder();
}
public boolean isSoftEncoder() {
Loading
Loading
@@ -199,14 +199,16 @@ public class SrsPublisher {
}
public void switchCameraFace(int id) {
mCameraView.setCameraId(id);
mCameraView.stopCamera();
if (id == 0) {
mEncoder.setCameraBackFace();
} else {
mEncoder.setCameraFrontFace();
if (mEncoder.isEnabled()) {
mCameraView.stopCamera();
mCameraView.setCameraId(id);
if (id == 0) {
mEncoder.setCameraBackFace();
} else {
mEncoder.setCameraFrontFace();
}
mCameraView.startCamera();
}
mCameraView.startCamera();
}
private void startAudio() {
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment