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 + -
显示快捷键?