100 lines
2.3 KiB
C
100 lines
2.3 KiB
C
#ifndef _DATASERVER_DATA_UD_H_
|
|
#define _DATASERVER_DATA_UD_H_
|
|
|
|
#include <stdint.h>
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
struct userdata_meta_info_t {
|
|
uint32_t poc_number;
|
|
/************ flags bit definition ***********
|
|
bit 0: //used for mpeg2
|
|
1, group start
|
|
0, not group start
|
|
bit 1-2: //used for mpeg2
|
|
0, extension_and_user_data( 0 )
|
|
1, extension_and_user_data( 1 )
|
|
2, extension_and_user_data( 2 )
|
|
bit 3-6: //video format
|
|
0, VFORMAT_MPEG12
|
|
1, VFORMAT_MPEG4
|
|
2, VFORMAT_H264
|
|
3, VFORMAT_MJPEG
|
|
4, VFORMAT_REAL
|
|
5, VFORMAT_JPEG
|
|
6, VFORMAT_VC1
|
|
7, VFORMAT_AVS
|
|
8, VFORMAT_SW
|
|
9, VFORMAT_H264MVC
|
|
10, VFORMAT_H264_4K2K
|
|
11, VFORMAT_HEVC
|
|
12, VFORMAT_H264_ENC
|
|
13, VFORMAT_JPEG_ENC
|
|
14, VFORMAT_VP9
|
|
bit 7-9: //frame type
|
|
0, Unknown Frame Type
|
|
1, I Frame
|
|
2, B Frame
|
|
3, P Frame
|
|
4, D_Type_MPEG2
|
|
bit 10: //top_field_first_flag valid
|
|
0: top_field_first_flag is not valid
|
|
1: top_field_first_flag is valid
|
|
bit 11: //top_field_first bit val
|
|
**********************************************/
|
|
uint32_t flags;
|
|
uint32_t vpts; /*video frame pts*/
|
|
/******************************************
|
|
0: pts is invalid, please use duration to calculate
|
|
1: pts is valid
|
|
******************************************/
|
|
uint32_t vpts_valid;
|
|
/*duration for frame*/
|
|
uint32_t duration;
|
|
/* how many records left in queue waiting to be read*/
|
|
uint32_t records_in_que;
|
|
unsigned long long priv_data;
|
|
uint64_t vpts_64; /*valid only if version == 2*/
|
|
uint32_t padding_data[2];
|
|
};
|
|
|
|
/**
|
|
* @brief Data of Userdata
|
|
*/
|
|
typedef struct {
|
|
uint32_t version;
|
|
uint32_t instance_id;
|
|
|
|
/**
|
|
* Reserved
|
|
*/
|
|
uint32_t buf_len;
|
|
|
|
/**
|
|
* @brief The size of bytes of the field "data" below.
|
|
* The client should read "data_size" bytes start from the data[0].
|
|
*/
|
|
uint32_t data_size;
|
|
|
|
/**
|
|
* Reserved
|
|
*/
|
|
unsigned long long pbuf_addr;
|
|
struct userdata_meta_info_t meta_info;
|
|
|
|
/**
|
|
* The data of the userdata
|
|
*/
|
|
uint8_t data[0];
|
|
} ds_data_userdata_t;
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif
|
|
|
|
|