123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- #pragma once
- #ifdef _WIN32
- #ifdef LIBVIDEORENDER_EXPORTS
- #define LIBVIDEORENDER_API __declspec(dllexport)
- #else
- #define LIBVIDEORENDER_API __declspec(dllimport)
- #endif
- # elif ( defined(__GNUC__) && __GNUC__ >= 4 )
- #define LIBVIDEORENDER_API __attribute__((visibility("default")))
- #else // RVC_OS_WIN
- #define LIBVIDEORENDER_API
- #endif // RVC_OS_WIN
- #include <stdint.h>
- #include <stdarg.h>
- typedef enum
- {
- RVC_FLIP_NONE = 0x00000000, /**< Do not flip */
- RVC_FLIP_HORIZONTAL = 0x00000001, /**< flip horizontally */
- RVC_FLIP_VERTICAL = 0x00000002 /**< flip vertically */
- } RVC_RendererFlip;
- struct video_frame;
- typedef struct videorender_param_s {
- int icx;
- int icy;
- uint32_t uvideowidth;
- uint32_t uvideoheight;
- uint32_t uwidth;
- uint32_t uheight;
- int ivideoformat;
- bool bmoveable;
- }videorender_param_t;
- enum render_loglevel {
- RENDER_LOG_DEBUG,
- RENDER_LOG_INFO,
- RENDER_LOG_WARN,
- RENDER_LOG_ERROR,
- RENDER_LOG_FATAL
- };
- typedef struct videorender_callback_s
- {
- void (*debug)(render_loglevel elevel, void* user_data, const char* fmt, va_list arg);
- void (*onrenderfailed)();
- void (*onvideorenderexcption)();
- void* user_data;
- }videorender_callback_t;
- class IVideoRender
- {
- public:
- virtual int VideoRenderSetParam(videorender_param_t* tparam) = 0;
- virtual int StartVideoRender() = 0;
- virtual int StopVideoRender() = 0;
- virtual void VideoRenderDestroy() = 0;
- virtual int ShowVideoWindow() = 0;
- virtual int HideVideoWindow() = 0;
- virtual int RenderVideoFrame(video_frame* pframe, RVC_RendererFlip eFlipType = RVC_FLIP_NONE) = 0;
- };
- extern "C" LIBVIDEORENDER_API IVideoRender* CreateVideoRenderObj(videorender_callback_t* pCallback);
- extern "C" LIBVIDEORENDER_API void DestroyVideoRenderObj(IVideoRender* pIVideoRender);
- extern "C" LIBVIDEORENDER_API int VideoRender_Init();
- extern "C" LIBVIDEORENDER_API int VideoRender_Term();
|