houxiao
2017-08-10 f97741ef79bc496cbf0581527e1f54b369d246be
bug fix

git-svn-id: http://192.168.1.226/svn/proxy@999 454eff88-639b-444f-9e54-f578c98de674
9个文件已修改
117 ■■■■ 已修改文件
VisitFace/RtspNativeCodec/app/src/main/cpp/CMakeLists.txt 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VisitFace/RtspNativeCodec/app/src/main/cpp/CameraWrapperServer.cpp 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VisitFace/RtspNativeCodec/app/src/main/cpp/RemoteFuncClient.cpp 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VisitFace/RtspNativeCodec/app/src/main/cpp/RemoteFuncClient.h 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
VisitFace/RtspNativeCodec/app/src/main/cpp/RemoteFuncServer.cpp 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VisitFace/RtspNativeCodec/app/src/main/cpp/RemoteFuncServer.h 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
VisitFace/RtspNativeCodec/app/src/main/cpp/RtspNativeCodecJNIClient.cpp 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VisitFace/RtspNativeCodec/app/src/main/cpp/RtspNativeCodecJNIServer.cpp 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VisitFace/RtspNativeCodec/app/src/main/java/com/example/nativecodec/NativeCodec.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
VisitFace/RtspNativeCodec/app/src/main/cpp/CMakeLists.txt
@@ -7,7 +7,7 @@
#set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -O0 -std=c++11 -DANDROID_PLATFORM=android-22  -DANDROID_TOOLCHAIN=gcc -DANDROID_STL=gnustl_static -Wall -UNDEBUG")
set(WORKSPACE_PATH "D:/workspace/proxy")
set(ARCH "arm64-v8a")
set(ARCH "armeabi-v7a")
include_directories(
                    "${WORKSPACE_PATH}/RtspFace"
@@ -75,7 +75,7 @@
            #"${WORKSPACE_PATH}/RtspFace/PL_Queue.cpp"
            #"${WORKSPACE_PATH}/RtspFace/PL_Fork2.cpp"
            "${WORKSPACE_PATH}/RtspFace/PL_AndroidMediaCodecEncoder.cpp"
            "${WORKSPACE_PATH}/RtspFace/PL_RTSPServer.cpp"
            "${WORKSPACE_PATH}/RtspFace/PL_RTSPServer2.cpp"
            "${WORKSPACE_PATH}/FaceServer/proto_hton_ntoh.cpp"
            "${WORKSPACE_PATH}/FaceServer/PbFaceList.pb.cc"
VisitFace/RtspNativeCodec/app/src/main/cpp/CameraWrapperServer.cpp
@@ -10,7 +10,7 @@
#include <PL_BlockGrouping.h>
#include <PL_ColorConv.h>
#include <PL_AndroidMediaCodecEncoder.h>
#include <PL_RTSPServer.h>
#include <PL_RTSPServer2.h>
CameraWrapper::~CameraWrapper()
{
    stop();
@@ -104,7 +104,7 @@
    PipeLine::register_global_elem_creator("PL_V4L2Source", create_PL_V4L2Source);
    PipeLine::register_global_elem_creator("PL_BlockGrouping", create_PL_BlockGrouping);
    PipeLine::register_global_elem_creator("PL_AndroidMediaCodecEncoder", create_PL_AndroidMediaCodecEncoder);
    PipeLine::register_global_elem_creator("PL_RTSPServer", create_PL_RTSPServer);
    PipeLine::register_global_elem_creator("PL_RTSPServer2", create_PL_RTSPServer2);
    bool ret = initPl_DecoderPl();
    if (!ret)
@@ -169,8 +169,8 @@
            return  false;
        }
        PL_RTSPServer* plRtspServer = (PL_RTSPServer*)pipeLineRender->push_elem("PL_RTSPServer");
        RTSPServerConfig rtspServerConfig;
        PL_RTSPServer2* plRtspServer = (PL_RTSPServer2*)pipeLineRender->push_elem("PL_RTSPServer2");
        RTSPServer2Config rtspServerConfig;
        //rtspServerConfig.syncDeliverFrame = false;
        ret = plRtspServer->init(&rtspServerConfig);
        if (!ret)
@@ -380,14 +380,17 @@
        return false;
    cameraWrapper.faceCache.cachePm(*pm);
    //remote call start, 为了保证通用性,未将以下步骤封入RtspFaceDetectClient
    RtspFaceDetectClient &client = getRtspFaceDetectClient();
    auto request = client.fireFaceCountListenerRequest();
    RtspFaceDetectClient* client = getRtspFaceDetectClient();
    if (client == nullptr)
        return false;
    auto request = client->fireFaceCountListenerRequest();
    request.setCameraIndex(cameraWrapper.cameraIdx);
    request.setFaceCount(cameraWrapper.faceCache.getFaceCount(*pm));
    auto sendAct = request.send();
    sendAct.wait(client.getWaitScope());
    sendAct.wait(client->getWaitScope());
    //remote call end
    return false;
    return true;
}
void test_paint(CameraWrapper& cameraWrapper)
VisitFace/RtspNativeCodec/app/src/main/cpp/RemoteFuncClient.cpp
@@ -7,16 +7,28 @@
#include "RtspNativeCodecJNIClient.h"
RemoteServer<RtspFaceDetectImpl> remoteServer("127.0.0.1", 8111);
static RtspFaceViewClient* rtspFaceViewClient = nullptr;
void startRemoteServer()
{
    remoteServer.start();
}
RtspFaceViewClient rtspFaceViewClient;
RtspFaceViewClient &RtspFaceViewClient()
RtspFaceViewClient* getRtspFaceViewClient()
{
    if (rtspFaceViewClient != nullptr)
    {
        try
        {
            rtspFaceViewClient = new RtspFaceViewClient;
        }
        catch(...)
        {
            delete rtspFaceViewClient;
            rtspFaceViewClient = nullptr;
            LOG_ERROR << "aaaaaaaa"<<LOG_ENDL;//#todo
        }
    }
    return rtspFaceViewClient;
}
VisitFace/RtspNativeCodec/app/src/main/cpp/RemoteFuncClient.h
@@ -25,7 +25,7 @@
    capnp::EzRpcClient rpcClient;
};
const RtspFaceViewClient &getRtspFaceViewClient();
RtspFaceViewClient* getRtspFaceViewClient();
class RtspFaceDetectImpl final : public RtspFaceDetect::Server
{
VisitFace/RtspNativeCodec/app/src/main/cpp/RemoteFuncServer.cpp
@@ -7,7 +7,7 @@
#include "RtspNativeCodecJNIServer.h"
RemoteServer<RtspFaceViewImpl> remoteServer("127.0.0.1", 8112);
RtspFaceDetectClient rtspFaceDetectClient;
static RtspFaceDetectClient* rtspFaceDetectClient = nullptr;
void startRemoteServer()
{
@@ -16,8 +16,21 @@
    remoteServer.start();
}
RtspFaceDetectClient &getRtspFaceDetectClient()
RtspFaceDetectClient* getRtspFaceDetectClient()
{
    if (rtspFaceDetectClient != nullptr)
    {
        try
        {
            rtspFaceDetectClient = new RtspFaceDetectClient;
        }
        catch(...)
        {
            delete rtspFaceDetectClient;
            rtspFaceDetectClient = nullptr;
            LOG_ERROR << "aaaaaaaa"<<LOG_ENDL;//#todo
        }
    }
    return rtspFaceDetectClient;
}
VisitFace/RtspNativeCodec/app/src/main/cpp/RemoteFuncServer.h
@@ -24,7 +24,7 @@
void startRemoteServer();
RtspFaceDetectClient &getRtspFaceDetectClient();
RtspFaceDetectClient* getRtspFaceDetectClient();
class RtspFaceViewImpl final : public RtspFaceView::Server
{
VisitFace/RtspNativeCodec/app/src/main/cpp/RtspNativeCodecJNIClient.cpp
@@ -81,6 +81,54 @@
    env->ReleaseStringUTFChars(ipaddr, utf8);
}
// set the surface
void Java_cn_com_basic_face_util_RtspFaceNative_setSurface(JNIEnv *env, jclass clazz, jint cameraIdx,
                                                           jobject surfaceRender)
{
    LOG_DEBUG << "@@@ Java_cn_com_basic_face_util_RtspFaceNative_setSurface" << LOG_ENDL;
    assert(cameraIdx > 0 && cameraIdx <= CAMERA_COUNT);
    cameraIdx -= 1;
    CameraWrapper &cameraWrapper(g_CameraWrappers[cameraIdx]);
    // obtain a native windowRender from a Java surface
    if (cameraWrapper.windowDecode != nullptr)
    {
        ANativeWindow_release((ANativeWindow *) (cameraWrapper.windowDecode));
        cameraWrapper.windowDecode = NULL;
    }
    cameraWrapper.windowDecode = ANativeWindow_fromSurface(env, surfaceRender);
    //cameraWrapper.windowDecode = getSurfaceHolderGetSurface(env, surfaceRender);
    //cameraWrapper.windowDecode = ANativeWindow_fromSurface(env, (jobject)getSurfaceHolderGetSurface(env, surfaceRender));
    if (cameraWrapper.windowRender != nullptr)
    {
        ANativeWindow_release((ANativeWindow *) (cameraWrapper.windowRender));
        cameraWrapper.windowRender = NULL;
    }
    cameraWrapper.windowRender = ANativeWindow_fromSurface(env, surfaceRender);
    cameraWrapper.asvrConfig.windowSurface = cameraWrapper.windowRender; // support reset
    //cameraWrapper.windowRender = ANativeWindow_fromSurface(env, (jobject)getSurfaceHolderGetSurface(env, surfaceRender));
    {
        ANativeWindow* window = (ANativeWindow*)(cameraWrapper.windowRender);
        ANativeWindow_Buffer buffer;
        if(cameraWrapper.windowRender != nullptr && ANativeWindow_lock(window, &buffer, NULL) == 0)
        {
            cameraWrapper.plScaleCfg.toHeight=buffer.height;
            cameraWrapper.plScaleCfg.toWidth=buffer.stride;
            ANativeWindow_unlockAndPost(window);
        }
        else
        {
            cameraWrapper.plScaleCfg.toHeight=480;
            cameraWrapper.plScaleCfg.toWidth=640;
        }
    }
    LOGP(DEBUG, "@@@ setsurface %p,%p", cameraWrapper.windowDecode, cameraWrapper.windowRender);
}
jboolean
Java_cn_com_basic_face_util_RtspFaceNative_createPlayer(JNIEnv *env, jclass clazz, jint cameraIdx,
                                                        jstring uri)
VisitFace/RtspNativeCodec/app/src/main/cpp/RtspNativeCodecJNIServer.cpp
@@ -627,4 +627,9 @@
    LOG_DEBUG << "@@@ Java_cn_com_basic_face_util_RtspFaceNative_telShutdown" << LOG_ENDL;
    g_TeleWrapper.stop();
}
void Java_cn_com_basic_face_util_RtspFaceNative_setFaceLabel(JNIEnv *env, jclass clazz, jint cameraIdx, jint stTrackId, jstring label)
{
}
} // extern C
VisitFace/RtspNativeCodec/app/src/main/java/com/example/nativecodec/NativeCodec.java
@@ -492,8 +492,8 @@
    /** Load jni .so on initialization */
    static {
        //System.loadLibrary("rtspface_client");
        System.loadLibrary("rtspface_client");
        //System.loadLibrary("rtspface_server");
        //System.loadLibrary("opencv_java3");
    }