gplayer_app.h
来自「AMLOGIC DPF source code」· C头文件 代码 · 共 116 行
H
116 行
#ifndef __GPLAYER_APP_H
#define __GPLAYER_APP_H
#include "includes.h"
#include "aw_windows.h"
#include "demux/demuxlib.h"
#define MAX_AUDIO_SYNC_SIZE 16
typedef enum {
GPLAYER_INIT,
GPLAYER_PLAY, /* normal seamless playback */
GPLAYER_PAUSE, /* paused during normal seamless playback */
GPLAYER_SEAMLESS_FF,
GPLAYER_SEAMLESS_FB,
GPLAYER_RESERVED2,
GPLAYER_STOP,
GPLAYER_RESERVED3,
GPLAYER_ERROR,
GPLAYER_QUIT,
GPLAYER_SINGLE_FRAME,
} gplayer_status_e;
typedef struct {
unsigned duration;
unsigned bitrate;
unsigned audio_sample_rate;
unsigned video_frame_rate;
unsigned video_size;
unsigned char has_audio;
unsigned char has_video;
unsigned char audio_channels;
unsigned char drm_info;
unsigned char* audio_codec;
unsigned char* video_codec;
} gplayer_clip_info;
typedef struct {
int targetfd_a;
int targetfd_v;
unsigned char sync_enable;
unsigned char audio_started;
unsigned char display_event_enable;
OS_EVENT *audio_msgq;
/* demux */
stream_t* stream;
demuxer_t *demuxer;
demux_stream_t *d_audio;
demux_stream_t *d_video;
demux_stream_t *d_dvdsub;
sh_audio_t * sh_audio;
sh_video_t* sh_video;
int video_decoder_idx;
int video_dec_fd;
int video_fd;
int audio_decoder_idx;
int audio_dec_fd;
int audio_stream_buffer_size;
int video_stream_buffer_size;
/* current playing time, unit 0.1s */
int play_time;
/* for FF/FB */
int fskip_time;
int fplay_time;
int fnext_cmd_time;
/* for resume playing */
int start_play_time;
/* current status */
gplayer_status_e stat;
unsigned char seek_disable;
/* for new reading loop structure: DS_GET_PACKET_NOREAD */
unsigned char audio_sync_flag;
unsigned char ds_get_packet_noread;
int audio_send_by_frame;
char audio_sync[MAX_AUDIO_SYNC_SIZE];
} gplayer_play_t;
typedef struct {
unsigned char* buf;
int len;
int left;
unsigned char firstfill; /* new av */
unsigned short syn_left;
} gplayer_buffer_t;
typedef struct {
PAPPTASKARG app; /* application handle */
gplayer_play_t play; /* playback control and running info */
gplayer_buffer_t vbuffer;
gplayer_buffer_t abuffer;
unsigned view_position; //lower 16:x high 16:y
unsigned view_size;// lower 16:width high 16:height
unsigned preview_flag; //bit0:preview_flag time bit1:audio_mute
AVSysEvent_t internal_cmd_handle;
EventSubscriber_t *listener; /* event loop listener */
AVResource_t file_resource;
gplayer_clip_info* clip_info;
} gplayer_t;
typedef struct{
off_t first_video_frame_pos;
int video_format;
/*more: to do */
}gplaye_stream_info_t;
/* gPlayerAppFreeInfo() need to be called after calling gPlayerAppGetInfo() */
extern char** gPlayerAppGetInfo(char* url,gplaye_stream_info_t* stream_info);
extern void gPlayerAppFreeInfo(char** info);
/* get the information of the current played file(song,etc), can not call gPlayerAppFreeInfo()*/
extern char** gPlayerAppGetCurInfo();
extern void gPlayerAppSetVideo(unsigned char enable);
#endif
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?