12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- #pragma once
- #include "ivideorenderinterface.h"
- #ifdef _WIN32
- #include <windows.h>
- #include <process.h>
- #else
- #include<semaphore.h>
- #endif // _WIN32
- #ifndef MAX_PATH
- #define MAX_PATH 260
- #endif
- enum eVideoRenderQueue {
- ePreview_Queue,
- eSnapshot_Queue
- };
- enum eVideoRenderMode {
- eRender_Local_Single,
- eRender_LocalRemote,
- eRender_Local_Both
- };
- typedef struct rvc_video_box_move_callback_s {
- void (*on_video_box_move)(int imessagetype, int ivideotype, int ileft, int ibottom, void* user_data);
- void* user_data;
- }rvc_video_box_move_callback_t;
- typedef struct rvc_video_render_callback_s {
- int (*on_stop_remote_video_render)(void* user_data);
- int (*on_remote_video_render)(void* videoframe, void* user_data);
- void* user_data;
- }rvc_video_render_callback_t;
- typedef struct rvc_video_render_window_type_callback_s {
- int (*on_window_type)(void* user_data);
- void* user_data;
- }rvc_video_render_window_type_callback_t;
- typedef struct rvc_video_render_params_s {
- int ilocal_view_x;
- int ilocal_view_y;
- int ilocal_view_cx;
- int ilocal_view_cy;
- int iremote_view_x;
- int iremote_view_y;
- int iremote_view_cx;
- int iremote_view_cy;
- int ilocal_move;
- int iremote_move;
- int ilocal_fresh_time;
- int iremote_fresh_time;
- eVideoRenderQueue erender_queue;
- }rvc_video_render_params_t;
- typedef struct rvc_video_render_s {
- IVideoRender* plocal_render;
- IVideoRender* premote_render;
- #ifdef _WIN32
- HANDLE local_render_thread;
- HANDLE local_render_stop_event;
- HANDLE remote_render_thread;
- HANDLE remote_render_stop_event;
- #else
- pthread_t local_render_threadid;
- sem_t local_render_stop_sem;
- pthread_t remote_render_threadid;
- sem_t remote_render_stop_sem;
- #endif
- rvc_video_render_params_t render_param;
- rvc_video_render_window_type_callback_t cb;
- }rvc_video_render_t;
- int rvc_start_video_render(rvc_video_render_t* prender, eVideoRenderMode eMode, rvc_video_box_move_callback_t* cb);
- int rvc_stop_video_render(rvc_video_render_t* prender);
- int rvc_remote_video_render(rvc_video_render_t* prender, void* videoframe);
- int rvc_stop_remote_video_render(rvc_video_render_t* prender);
|