videorender.h 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. #ifndef VIDEORENDER_H
  2. #define VIDEORENDER_H
  3. #ifdef __cplusplus
  4. extern "C" {
  5. #endif
  6. #include "videoutil.h"
  7. typedef struct videorender* videorender_t;
  8. /**
  9. * create videorender instance,
  10. * @param hWnd which window you want to show the video
  11. * @param top
  12. * @param q_max_size maximum size of video display queue, if 0 use default 16
  13. * @param free_frame_cb the callback funtion will called after displaying the frame, usually to free videoframe
  14. * @param p_render result of videorender intance
  15. * @return zero on success
  16. */
  17. int videorender_create(HWND hWnd,
  18. int top,
  19. int left,
  20. int width,
  21. int height,
  22. int q_max_size,
  23. void (*free_frame_cb)(video_frame *frame),
  24. videorender_t *p_render);
  25. /**
  26. * destroy videorender instance and release all resource
  27. * @param render the videorender instance handler
  28. */
  29. void videorender_destroy(videorender_t render);
  30. /**
  31. * put a video frame to display queue
  32. * @param render the videorender instance handler
  33. * @param frame video frame you want display, only support RGB24 and I420 format
  34. * @param disp_ts displaying timestamp of frame
  35. */
  36. int videorender_queue_frame(videorender_t render,
  37. video_frame *frame,
  38. video_timestamp *disp_ts);
  39. #ifdef __cplusplus
  40. }//extern "C" {
  41. #endif
  42. #endif // VIDEORENDER_H