Add UsbMonitor
[rtmpclient.git] / app / src / main / jni / FfmpegHelper.cpp
index 1df52e5..3bd2f10 100644 (file)
@@ -7,6 +7,7 @@
 
 FfmpegHelper* FfmpegHelper::singleton = NULL;
 bool FfmpegHelper::isInit = false;
+bool FfmpegHelper::isEncoderReady = false;
 
 
 FfmpegHelper::FfmpegHelper(JavaVM *vm, jclass cls)
@@ -79,6 +80,7 @@ void FfmpegHelper::init()
         FLOGE("avformat_network_init, error:%s(%d)", av_err2str(ret), ret);
     }
     isInit = true;
+    isEncoderReady = false;
 }
 
 int FfmpegHelper::initEncoder(int width, int height, const char* outpath)
@@ -146,12 +148,17 @@ int FfmpegHelper::initEncoder(int width, int height, const char* outpath)
     }
     startTime = av_gettime();
     frameCnt = 0;
+    isEncoderReady = true;
     return 0;
 }
 
 
 int FfmpegHelper::processFrame(uint8_t* data)
 {
+    if(!isEncoderReady){
+        FLOGE("processFrame - isEncoderReady is false.");
+        return 0;
+    }
     int ret = 0;
     int y_length = pWidth * pHeight;
     pFrameYUV = av_frame_alloc();
@@ -236,6 +243,7 @@ int FfmpegHelper::close()
         avformat_free_context(formatCtx);
     }
     FLOGE("<----------- FfmpegHelper::close ");
+    isEncoderReady = false;
     return 0;
 }