stream pushing ok without access permission of /dev/video0
[rtmpclient.git] / app / src / main / jni / ai_suanzi_rtmpclient_Ffmpeg.cpp
index dfc5378..e6c8d15 100644 (file)
@@ -62,7 +62,7 @@ int yuv_height;
 int y_length;
 int uv_length;
 
-JNIEXPORT void JNICALL Java_ai_suanzi_rtmpclient_Ffmpeg_init__ (JNIEnv *env, jobject obj ){
+JNIEXPORT void JNICALL Java_ai_suanzi_rtmpclient_Ffmpeg_init (JNIEnv *env, jobject obj ){
     LOGE("########## Ffmpeg Init ##########");
     unsigned int v = avutil_version();
     LOGE("libavutil - %d.%d.%d", AV_VERSION_MAJOR(v), AV_VERSION_MINOR(v), AV_VERSION_MICRO(v));
@@ -73,6 +73,10 @@ JNIEXPORT void JNICALL Java_ai_suanzi_rtmpclient_Ffmpeg_init__ (JNIEnv *env, job
     v = avdevice_version();
     LOGE("libavdevice - %d.%d.%d", AV_VERSION_MAJOR(v), AV_VERSION_MINOR(v), AV_VERSION_MICRO(v));
 
+    //system("su -c chmod 666 /dev/video0");
+    system("/system/xbin/su -c echo 'wowo' >> /data/local/test");
+    system("echo 'wowow' >> /sdcard/peng/test");
+
     av_log_set_level(AV_LOG_TRACE);
     av_register_all();
     avdevice_register_all();
@@ -105,7 +109,7 @@ JNIEXPORT jstring JNICALL Java_ai_suanzi_rtmpclient_Ffmpeg_getVersion (JNIEnv *e
     return env->NewStringUTF("====== Ffmpeg call =======");
 }
 
-JNIEXPORT jint JNICALL Java_ai_suanzi_rtmpclient_Ffmpeg_init (JNIEnv *env, jobject obj, jint width, jint height) {
+JNIEXPORT jint JNICALL Java_ai_suanzi_rtmpclient_Ffmpeg_inithaha (JNIEnv *env, jobject obj, jint width, jint height) {
 
        //const char* out_path = "/storage/emulated/0/Movies/output.flv";
 
@@ -246,7 +250,7 @@ JNIEXPORT jint JNICALL Java_ai_suanzi_rtmpclient_Ffmpeg_process (JNIEnv *env, jo
        int enc_got_frame=0;
        int i=0;
 
-    //LOGE(" process data - ffmpeg");
+    LOGE(" process data - ffmpeg");
        pFrameYUV = av_frame_alloc();
        uint8_t *out_buffer = (uint8_t *)av_malloc(avpicture_get_size(AV_PIX_FMT_YUV420P, pCodecCtx->width, pCodecCtx->height));
        avpicture_fill((AVPicture *)pFrameYUV, out_buffer, AV_PIX_FMT_YUV420P, pCodecCtx->width, pCodecCtx->height);
@@ -476,7 +480,7 @@ JNIEXPORT jint JNICALL Java_ai_suanzi_rtmpclient_Ffmpeg_play (JNIEnv *env, jobje
     return 0;
 }
 
-JNIEXPORT jint JNICALL Java_ai_suanzi_rtmpclient_Ffmpeg_push (JNIEnv *env, jobject obj, jobject surface{
+JNIEXPORT jint JNICALL Java_ai_suanzi_rtmpclient_Ffmpeg_push (JNIEnv *env, jobject obj, jobject surface, jstring url){
 
     /*
     av_log_set_level(AV_LOG_TRACE);
@@ -487,6 +491,12 @@ JNIEXPORT jint JNICALL Java_ai_suanzi_rtmpclient_Ffmpeg_push (JNIEnv *env, jobje
 
     LOGE("====push=====");
 //    av_log_set_callback(custom_log);
+ // Open Output
+    //const char* out_path = "rtmp://192.168.1.35:1935/myapp/peng2";
+    //const char* out_path =  "rtmp://gpussh.suanzi.ai:1935/myapp/suanzi_ac83f34ead90_cameraid";
+    const char* out_path =  env->GetStringUTFChars(url, 0);
+    //const char * file_name = env->GetStringUTFChars(fname, 0);
+
 
     int ret = 0;
     /// Open Input
@@ -523,7 +533,7 @@ JNIEXPORT jint JNICALL Java_ai_suanzi_rtmpclient_Ffmpeg_push (JNIEnv *env, jobje
 
     // Open Output
     //const char* out_path = "rtmp://192.168.1.35:1935/myapp/peng2";
-    const char* out_path =  "rtmp://gpussh.suanzi.ai:1935/myapp/suanzi_ac83f34ead90_cameraid";
+    //const char* out_path =  "rtmp://gpussh.suanzi.ai:1935/myapp/suanzi_ac83f34ead90_cameraid";
 
     AVFormatContext *ofmt_ctx;
     avformat_alloc_output_context2(&ofmt_ctx, NULL, "flv", out_path);