From 109ffe9a777658936a38d0c146579a67c60a0d17 Mon Sep 17 00:00:00 2001
From: xuxiuxi <xuxiuxi@454eff88-639b-444f-9e54-f578c98de674>
Date: 星期四, 11 五月 2017 17:48:48 +0800
Subject: [PATCH] 

---
 VisitFace/RtspNativeCodec/app/src/main/java/com/example/nativecodec/NativeCodec.java |  119 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 109 insertions(+), 10 deletions(-)

diff --git a/VisitFace/RtspNativeCodec/app/src/main/java/com/example/nativecodec/NativeCodec.java b/VisitFace/RtspNativeCodec/app/src/main/java/com/example/nativecodec/NativeCodec.java
index 459eeb1..5d1d17b 100644
--- a/VisitFace/RtspNativeCodec/app/src/main/java/com/example/nativecodec/NativeCodec.java
+++ b/VisitFace/RtspNativeCodec/app/src/main/java/com/example/nativecodec/NativeCodec.java
@@ -19,6 +19,7 @@
 import android.app.Activity;
 import android.graphics.PixelFormat;
 import android.graphics.SurfaceTexture;
+import android.graphics.drawable.Drawable;
 import android.os.Bundle;
 import android.util.Log;
 import android.view.Surface;
@@ -30,9 +31,21 @@
 import android.widget.Button;
 import android.widget.CompoundButton;
 import android.widget.CompoundButton.OnCheckedChangeListener;
+import android.widget.ImageButton;
+import android.widget.ImageView;
 import android.widget.RadioButton;
 import android.widget.Spinner;
+import android.content.Context;
+import android.graphics.Bitmap;
+import android.graphics.BitmapFactory;
+import android.graphics.Canvas;
+import android.util.AttributeSet;
+import android.widget.Button;
+import android.widget.TextView;
 
+import java.nio.ByteBuffer;
+
+import cn.com.basic.face.util.NativeImg;
 import cn.com.basic.face.util.RtspFaceNative;
 
 public class NativeCodec extends Activity {
@@ -43,6 +56,9 @@
     SurfaceView mSurfaceView1;
     SurfaceHolder mSurfaceHolder1;
 
+    SurfaceView mSurfaceView2;
+    SurfaceHolder mSurfaceHolder2;
+
     VideoSink mSelectedVideoSink;
     VideoSink mNativeCodecPlayerVideoSink;
 
@@ -52,13 +68,15 @@
     boolean mCreated = false;
     boolean mIsPlaying = false;
 
-
+    public static NativeImg faceImg = null;
 
     /** Called when the activity is first created. */
     @Override
     public void onCreate(Bundle icicle) {
         super.onCreate(icicle);
         setContentView(R.layout.main);
+
+        ThisActivity = this;
 
         RtspFaceNative.init();
         RtspFaceNative.setLocalIP("192.168.1.10");
@@ -68,6 +86,9 @@
         // set up the Surface 1 video sink
         mSurfaceView1 = (SurfaceView) findViewById(R.id.surfaceview1);
         mSurfaceHolder1 = mSurfaceView1.getHolder();
+
+        mSurfaceView2 = (SurfaceView) findViewById(R.id.surfaceview2);
+        mSurfaceHolder2 = mSurfaceView2.getHolder();
 
 
 
@@ -188,17 +209,30 @@
                     }
                     if (mSourceString != null) {
 
-                        RtspFaceNative.setSurface(1, mSurfaceHolder1.getSurface());
-                        mGLView1VideoSink.useAsSinkForNative();
+                        //RtspFaceNative.setSurface(1, s, mSurfaceHolder1.getSurface());
 
-                        //mCreated = createStreamingMediaPlayer(getResources().getAssets(), mSourceString);
-                        //#todo ok
-                        mCreated = RtspFaceNative.createPlayer(1, "rtsp://admin:admin12345@192.168.1.70:554/h264/ch1/sub/av_stream");
-                        //mCreated = RtspFaceNative.createPlayer(2, "rtsp://admin:admin12345@192.168.1.70:554/h264/ch1/sub/av_stream");
-                        //mCreated = createPlayer(1, "rtsp://192.168.1.56:8554");
+                        //RtspFaceNative.setSurface(1, mSurfaceHolderDecoder1.getSurface());
+
+                        Surface s = mSurfaceHolder1.getSurface();
+                        RtspFaceNative.setSurface(1, s, s);
+
+                        Surface s2 = mSurfaceHolder2.getSurface();
+                        RtspFaceNative.setSurface(2, s2, s2);
+
+                        //SurfaceTexture st = mGLView1VideoSink.mMyGLSurfaceView.getSurfaceTexture();
+                        //Surface sgl = new Surface(st);
+                        //RtspFaceNative.setSurface(2, sgl, sgl);
+                        //mGLView1VideoSink.useAsSinkForNative();
+                        //sgl.release();
 
                         RtspFaceNative.setFaceCallback(1, "cn/com/basic/face/util/RtspFaceNative", "faceCallBack");
                         //RtspFaceNative.setFaceCallback(2, "cn/com/basic/face/util/RtspFaceNative", "faceCallBack");
+
+                        //mCreated = createStreamingMediaPlayer(getResources().getAssets(), mSourceString);
+                        //#todo ok
+                        mCreated = RtspFaceNative.createPlayer(1, "rtsp://admin:admin12345@192.168.1.70:554/h264/ch1/main/av_stream");
+                        mCreated = RtspFaceNative.createPlayer(2, "rtsp://admin:a1234567@192.168.1.68:554/h264/ch1/main/av_stream");
+                        //mCreated = createPlayer(1, "rtsp://192.168.1.56:8554");
 
                         //byte[] arr = new byte[5];
                         //arr[0] = 3; arr[1] = 4; arr[2] = 5;
@@ -226,6 +260,71 @@
             }
 
         });
+
+        ((Button) findViewById(R.id.addface_native)).setOnClickListener(new View.OnClickListener() {
+
+            @Override
+            public void onClick(View view) {
+                Log.i("@@@", "addface_native onClick");
+
+            }
+
+        });
+
+        ((ImageView) findViewById(R.id.addface_image)).setOnClickListener(new View.OnClickListener() {
+
+            @Override
+            public void onClick(View view) {
+                Log.i("@@@", "addface_image onClick");
+                //ImageView image = (ImageView)ThisActivity.findViewById(R.id.addface_image);
+                //image.setImageBitmap(faceBitmap);
+            }
+
+        });
+
+        ((Button) findViewById(R.id.addface_native)).setOnClickListener(new View.OnClickListener() {
+
+            @Override
+            public void onClick(View view) {
+                Log.i("@@@", "addface_image onClick");
+                RtspFaceNative.dbgFaceAdd(ThisActivity.faceImg);
+            }
+
+        });
+
+    }
+
+    static NativeCodec ThisActivity;
+
+    public static  void setFaceDrawable(NativeImg img)
+    {
+        //ImageView image = (ImageView)ThisActivity.findViewById(R.id.addface_image);
+        //return image;
+
+        ThisActivity.faceImg = img;
+
+        //ImageView image = (ImageView)ThisActivity.findViewById(R.id.addface_image);
+        //image.callOnClick();
+
+        new Thread(new Runnable() {
+            @Override
+            public void run() {
+                ThisActivity.runOnUiThread(new Runnable() {
+                    @Override
+                    public void run() {
+                        Bitmap bitmap = Bitmap.createBitmap(faceImg.width, faceImg.height, Bitmap.Config.ARGB_8888);
+                        ByteBuffer byteBuffer = ByteBuffer.wrap(faceImg.image, 0, faceImg.size);
+                        bitmap.copyPixelsFromBuffer(byteBuffer);
+
+                        ImageView image = (ImageView)ThisActivity.findViewById(R.id.addface_image);
+                        image.setImageBitmap(bitmap);
+
+                        TextView textView1 = (TextView)ThisActivity.findViewById(R.id.textView1);
+                        textView1.setText(RtspFaceNative.dbgGetLog());
+                    }
+                });
+            }
+        }).start();
     }
 
     void switchSurface() {
@@ -341,7 +440,7 @@
             Surface s = mSurfaceHolder.getSurface();
             Log.i("@@@", "setting surface " + s);
             //mSurfaceHolder1.setFormat(PixelFormat.RGBA_8888);
-            RtspFaceNative.setSurface(1, s);
+            //RtspFaceNative.setSurface(1, s);
         }
 
     }
@@ -363,7 +462,7 @@
             SurfaceTexture st = mMyGLSurfaceView.getSurfaceTexture();
             Surface s = new Surface(st);
             //setEGLConfigChooser(8, 8, 8, 8, 0, 0);
-            RtspFaceNative.setSurface(2, s);
+            //RtspFaceNative.setSurface(1, s);
             s.release();
         }
 

--
Gitblit v1.8.0