79 lines
2.3 KiB
C
Executable File
79 lines
2.3 KiB
C
Executable File
/*
|
|
* Copyright (c) XCAM. All rights reserved.
|
|
*/
|
|
|
|
#ifndef _XCAM_TRACK_SOURCE_H_
|
|
#define _XCAM_TRACK_SOURCE_H_
|
|
|
|
#include "xcam_type.h"
|
|
|
|
typedef enum {
|
|
XCAM_TRACK_SOURCE_TYPE_PRIV = 0,
|
|
XCAM_TRACK_SOURCE_TYPE_VIDEO,
|
|
XCAM_TRACK_SOURCE_TYPE_AUDIO,
|
|
XCAM_TRACK_SOURCE_TYPE_BUTT
|
|
} xcam_track_source_type;
|
|
|
|
typedef enum {
|
|
XCAM_TRACK_VIDEO_CODEC_H264 = 96,
|
|
XCAM_TRACK_VIDEO_CODEC_H265 = 98,
|
|
XCAM_TRACK_VIDEO_CODEC_MJPEG = 102,
|
|
XCAM_TRACK_VIDEO_CODEC_BUTT
|
|
} xcam_track_video_codec;
|
|
|
|
typedef enum {
|
|
XCAM_TRACK_AUDIO_CODEC_G711U = 0, /* G.711 U */
|
|
XCAM_TRACK_AUDIO_CODEC_G711A = 8, /* G.711 A */
|
|
XCAM_TRACK_AUDIO_CODEC_LPCM = 23, /* LPCM see cam_common.h file from sdk */
|
|
XCAM_TRACK_AUDIO_CODEC_G726 = 97, /* G.726 */
|
|
XCAM_TRACK_AUDIO_CODEC_AMR = 101, /* AMR encoder format */
|
|
XCAM_TRACK_AUDIO_CODEC_ADPCM = 104, /* ADPCM */
|
|
XCAM_TRACK_AUDIO_CODEC_AAC = 105,
|
|
XCAM_TRACK_AUDIO_CODEC_WAV = 108, /* WAV encoder */
|
|
XCAM_TRACK_AUDIO_CODEC_MP3 = 109,
|
|
XCAM_TRACK_AUDIO_CODEC_BUTT
|
|
} xcam_track_audio_codec;
|
|
|
|
typedef struct {
|
|
xcam_track_video_codec codec_type;
|
|
xcam_u32 width;
|
|
xcam_u32 height;
|
|
xcam_u32 bit_rate;
|
|
xcam_float frame_rate;
|
|
xcam_u32 gop;
|
|
xcam_float speed;
|
|
} xcam_track_video_source_info;
|
|
|
|
typedef struct {
|
|
xcam_track_audio_codec codec_type;
|
|
xcam_u32 chn_cnt;
|
|
xcam_u32 sample_rate;
|
|
xcam_u32 avg_bytes_per_sec;
|
|
xcam_u32 samples_per_frame;
|
|
xcam_u16 sample_bit_width;
|
|
} xcam_track_audio_source_info;
|
|
|
|
typedef struct {
|
|
xcam_u32 private_data;
|
|
xcam_float frame_rate;
|
|
xcam_u32 bytes_per_sec;
|
|
xcam_bool is_strict_sync;
|
|
} xcam_track_private_source_info;
|
|
|
|
typedef struct cam_track_source* xcam_track_source_handle;
|
|
typedef xcam_s32 (*func_xcam_track_source_request_key_frame)(xcam_handle venc_handle, xcam_void* param);
|
|
|
|
typedef struct cam_track_source {
|
|
intptr_t private_handle; // venc or aenc handle
|
|
func_xcam_track_source_request_key_frame func_request_key_frame;
|
|
|
|
xcam_track_source_type track_type;
|
|
union {
|
|
xcam_track_video_source_info video_info; /** video track info */
|
|
xcam_track_audio_source_info audio_info; /** audio track info */
|
|
xcam_track_private_source_info priv_info; /** private track info */
|
|
} track_source_attr;
|
|
} xcam_track_source;
|
|
|
|
#endif // _XCAM_TRACK_SOURCE_H_
|