67 lines
1.9 KiB
C
Executable File
67 lines
1.9 KiB
C
Executable File
/*
|
|
* Copyright (c) XCAM. All rights reserved.
|
|
*/
|
|
|
|
#ifndef _LIVESTREAM_MBUFFER_H_
|
|
#define _LIVESTREAM_MBUFFER_H_
|
|
|
|
#ifdef __cplusplus
|
|
#if __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
#endif /* End of #ifdef __cplusplus */
|
|
|
|
#include "xcam_mbuf.h"
|
|
#include "pthread.h"
|
|
|
|
|
|
typedef enum {
|
|
MBUFFER_DATA_VIDEO = 1,
|
|
MBUFFER_DATA_AUDIO,
|
|
MBUFFER_DATA_DATA,
|
|
MBUFFER_DATA_BUTT
|
|
} livestream_mbuffer_data_type;
|
|
|
|
typedef struct {
|
|
pthread_mutex_t mutex; /* lock for mbuffer write pos */
|
|
} livestream_mbuffer_info;
|
|
|
|
enum {
|
|
BUF_PAYLOAD_G711U = 0, /**< G.711 Mu */
|
|
BUF_PAYLOAD_G711A = 8, /**< G.711 A */
|
|
BUF_PAYLOAD_G726 = 97, /**< G.726 */
|
|
BUF_PAYLOAD_H264 = 96, /**< H264 */
|
|
BUF_PAYLOAD_H265 = 98, /**< H265 */
|
|
BUF_PAYLOAD_ADPCM = 104, /**< ADPCM */
|
|
BUF_PAYLOAD_AAC = 105, /**< AAC encoder */
|
|
BUF_PAYLOAD_MP3 = 109, /**< MP3 encoder */
|
|
BUF_PAYLOAD_BUTT /**< invalid */
|
|
};
|
|
|
|
xcam_s32 livestream_mbuffer_write_frame(xcam_void* handle, const xcam_mbuf_pack_info* pack_info);
|
|
|
|
xcam_s32 livestream_mbuffer_create(const xcam_void* argv, xcam_void** buf_handle,
|
|
xcam_u32 buf_size, xcam_s32 max_payload);
|
|
|
|
xcam_s32 livestream_mbuffer_destroy(xcam_void* argv, xcam_void* handle);
|
|
|
|
xcam_s32 livestream_mbuffer_register(xcam_void* handle, xcam_u8 media_type);
|
|
|
|
xcam_s32 livestream_mbuffer_unregister(xcam_void* handle, xcam_u8 media_type);
|
|
|
|
xcam_s32 livestream_mbuffer_read(xcam_void* handle, xcam_void** paddr, xcam_u32* plen,
|
|
xcam_u64* ppts, livestream_mbuffer_data_type* type, xcam_bool* ptr_bkey_flag);
|
|
|
|
xcam_s32 livestream_mbuffer_set(xcam_void* handle, xcam_u32 step);
|
|
|
|
xcam_s32 livestream_mbuffer_pts(xcam_void* handle, xcam_u8 payload_type, xcam_u64* ppts);
|
|
|
|
#ifdef __cplusplus
|
|
#if __cplusplus
|
|
}
|
|
#endif
|
|
#endif /* End of #ifdef __cplusplus */
|
|
|
|
|
|
#endif /* _LIVESTREAM_MBUFFER_H_ */
|