| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- #ifndef __CARLINK_VIDEO_H
- #define __CARLINK_VIDEO_H
- #include <FreeRTOS.h>
- #include "board.h"
- #include "list.h"
- #define H264DEC_INBUF_SIZE (LCD_WIDTH * LCD_HEIGHT * 2)
- #define H264DEC_DISP_COUNTS (2)
- #define H264_FRAME_FIFO_COUNT (16)
- #define H264_FRAME_BUF_SIZE (0x80000)
- typedef struct h264_frame_s {
- char* buf;
- char* cur;
- unsigned int len;
- unsigned int frame_id;
- ListItem_t entry;
- } video_frame_s;
- video_frame_s* get_h264_frame_buf(void);
- void notify_h264_frame_ready(video_frame_s** frame);
- void set_h264_frame_free(video_frame_s* frame);
- void h264_dec_ctx_init();
- int carlink_ey_video_init();
- int get_carlink_video_width(void);
- int get_carlink_video_height(void);
- int get_carlink_video_fps(void);
- void set_carlink_video_info(int w, int h, int fps);//set h264 video stream info from phone
- void set_carlink_display_info(int x, int y, int w, int h);//set carlink show area in lcd
- void set_carlink_display_state(int on); // on: 1.display carlink; 0. display native ui
- #define WRITE_BE32(ptr, val) \
- do { \
- uint8_t* __ptr = (uint8_t*)(ptr); \
- *__ptr++ = (val) >> 24; \
- *__ptr++ = ((val) & 0x00FF0000) >> 16; \
- *__ptr++ = ((val) & 0x0000FF00) >> 8; \
- *__ptr = ((val) & 0x000000FF); \
- } while (0)
- #define WRITE_BE16(ptr, val) \
- do { \
- uint8_t* __ptr = (uint8_t*)(ptr); \
- *__ptr++ = (val) >> 8; \
- *__ptr = (val) & 0x00FF; \
- } while (0)
- #define READ_BE32(ptr, dest) \
- do { \
- uint8_t* __ptr = (uint8_t*)(ptr); \
- (dest) = (*__ptr++) << 24; \
- (dest) |= (*__ptr++) << 16; \
- (dest) |= (*__ptr++) << 8; \
- (dest) |= *__ptr; \
- } while (0)
- #define READ_BE16(ptr, dest) \
- do { \
- uint8_t* __ptr = (uint8_t*)(ptr); \
- (dest) = (*__ptr++) << 8; \
- (dest) |= *__ptr; \
- } while (0)
- #define WRITE_LE32(ptr, val) \
- do { \
- uint8_t* __ptr = (uint8_t*)(ptr); \
- *__ptr++ = ((val) & 0x000000FF); \
- *__ptr++ = ((val) & 0x0000FF00) >> 8; \
- *__ptr++ = ((val) & 0x00FF0000) >> 16; \
- *__ptr = (val) >> 24; \
- } while (0)
-
- #define WRITE_LE16(ptr, val) \
- do { \
- uint8_t* __ptr = (uint8_t*)(ptr); \
- *__ptr++ = (val) & 0x00FF; \
- *__ptr = (val) >> 8; \
- } while (0)
-
-
- #define READ_LE32(ptr, dest) \
- do { \
- uint8_t* __ptr = (uint8_t*)(ptr); \
- (dest) = *__ptr; \
- (dest) |= (*__ptr++) << 8; \
- (dest) |= (*__ptr++) << 16; \
- (dest) |= (*__ptr++) << 24; \
- } while (0)
-
- #define READ_LE16(ptr, dest) \
- do { \
- uint8_t* __ptr = (uint8_t*)(ptr); \
- (dest) = *__ptr; \
- (dest) |= (*__ptr++) << 8; \
- } while (0)
- #endif
|