123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126 |
- #pragma once
- #include "ECMirrorRender.h"
- //define compile mode
- #define COMPILE_USE_ARK_VIDEO_API 1
- #define COMPILE_MFC_STORE_FILE_NO_ARK_API 2
- #define COMPILE_TEST_ARK_API 3
-
- //define test mode
- #define USE_ARK_VIDEO_API 1
- #define USE_ARK_DISPLAY_2D_API 2
- #define USE_ARK_RAW2D_DISPLAY_API 3
- #define ARK1668_MFC_DISPLAY_API 4
- #define ARKN141_MFC_DISPLAY_API 5
- ///////////////////////////////////////////////////////////////
- #define ARK_COMPILE_MODE COMPILE_TEST_ARK_API
- //////////////////////////////////////////////////////////////
- #if (ARK_COMPILE_MODE == COMPILE_USE_ARK_VIDEO_API)
- #include "ark_api.h"
- class ARKMirrorRender : public ECMirrorRender
- {
- public:
- ARKMirrorRender();
- virtual ~ARKMirrorRender();
- virtual void initialize();
- virtual void play(const void *data, int len, MirrorDirection direction = LANDSCAPE);
- virtual void show();
- virtual void hide();
- virtual void release();
- private:
- MirrorDirection cur_direction;
- video_handle * handle_vid;
- };
- #else
- #include <gc_hal.h>
- #include <gc_hal_raster.h>
- #include "mfcapi.h"
- #include "memalloc.h"
- #include "ark_api.h"
- /*!d
- * \brief 亿连解码渲染接口
- */
- class ARKMirrorRender : public ECMirrorRender
- {
- public:
- ARKMirrorRender();
- virtual ~ARKMirrorRender();
- /*!
- * \brief 初始化解码器
- * 根据实现需要内部可直接使用成员变量中的屏幕和镜像分辨率
- */
- virtual void initialize();
- /*!
- * \brief 解码渲染
- * \param[in] data 镜像数据
- * \param[in] len 镜像数据长度
- * \param[in] direction 镜像的显示方向,即横屏或竖屏
- */
- virtual void play(const void *data, int len, MirrorDirection direction = LANDSCAPE);
- /*!
- * \brief 显示镜像画面
- */
- virtual void show();
- /*!
- * \brief 隐层镜像画面
- */
- virtual void hide();
- /*!
- * \brief 释放解码器
- */
- virtual void release();
- private:
- int alloc_buffer(void);
- void free_buffer(void);
- void data_process(unsigned int src_addr, unsigned int dst_addr, MirrorDirection direction);
- void render(unsigned int addr);
- bool initialized;
- int fd_memalloc;
- //int fd_fb;
- unsigned int last_display_addr;
- int first_show;
- int dec_first_frame;
- int rotate_buffer_index;
- int out_width;
- int out_height;
- MirrorDirection cur_direction;
- OutFrameBuffer out_buffer;
- DWLLinearMem_t in_buffer;
- DWLLinearMem_t rotate_buffer[3];
- gcoOS g_os;
- gcoHAL g_hal;
- gco2D g_engine2d;
- MFCHandle *handle_mfc;
- /**************************USE_ARK_VIDEO_API****************************/
- video_handle * handle_vid;
- /**************************USE_ARK_2D_API******************************/
- ark2d_handle *handle_2d;
- disp_handle *handle_display;
- memalloc_handle * handle_mem;
- };
- #endif
|