video_render.h 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. #pragma once
  2. #include "ivideorenderinterface.h"
  3. #ifdef _WIN32
  4. #else
  5. #include<semaphore.h>
  6. #endif // _WIN32
  7. #ifndef MAX_PATH
  8. #define MAX_PATH 260
  9. #endif
  10. typedef struct rvc_video_box_move_callback_s {
  11. void (*on_video_box_move)(int imessagetype, int ivideotype, int ileft, int ibottom, void* user_data);
  12. void* user_data;
  13. }rvc_video_box_move_callback_t;
  14. typedef struct rvc_video_render_callback_s {
  15. int (*on_stop_remote_video_render)(void* user_data);
  16. int (*on_remote_video_render)(void* videoframe, void* user_data);
  17. void* user_data;
  18. }rvc_video_render_callback_t;
  19. typedef struct rvc_video_render_window_type_callback_s {
  20. int (*on_window_type)(void* user_data);
  21. void* user_data;
  22. }rvc_video_render_window_type_callback_t;
  23. typedef struct rvc_video_render_params_s {
  24. int ilocal_view_x;
  25. int ilocal_view_y;
  26. int ilocal_view_cx;
  27. int ilocal_view_cy;
  28. int iremote_view_x;
  29. int iremote_view_y;
  30. int iremote_view_cx;
  31. int iremote_view_cy;
  32. int ilocal_move;
  33. int iremote_move;
  34. int ilocal_fresh_time;
  35. int iremote_fresh_time;
  36. }rvc_video_render_params_t;
  37. typedef struct rvc_video_render_s {
  38. IVideoRender* plocal_render;
  39. IVideoRender* premote_render;
  40. #ifdef _WIN32
  41. #else
  42. pthread_t local_render_threadid;
  43. sem_t local_render_stop_sem;
  44. pthread_t remote_render_threadid;
  45. sem_t remote_render_stop_sem;
  46. #endif
  47. rvc_video_render_params_t render_param;
  48. rvc_video_render_window_type_callback_t cb;
  49. }rvc_video_render_t;
  50. int rvc_start_video_render(rvc_video_render_t* prender, bool bremote, rvc_video_box_move_callback_t* cb);
  51. int rvc_stop_video_render(rvc_video_render_t* prender);
  52. int rvc_remote_video_render(rvc_video_render_t* prender, void* videoframe);
  53. int rvc_stop_remote_video_render(rvc_video_render_t* prender);