16,6 → 16,15 |
#define HAS_RIGHT (1<<2) |
#define HAS_BOTTOM (1<<3) |
|
typedef struct |
{ |
enum AVPixelFormat format; |
AVPicture picture; |
int planar; |
double pts; |
volatile int ready; |
}vframe_t; |
|
struct render |
{ |
vst_t *vst; |
98,26 → 107,27 |
|
struct vstate |
{ |
AVFormatContext *fCtx; /* format context */ |
AVCodecContext *vCtx; /* video decoder context */ |
AVCodecContext *aCtx; /* audio decoder context */ |
AVCodec *vCodec; /* video codec */ |
AVCodec *aCodec; /* audio codec */ |
int vStream; /* video stream index */ |
int aStream; /* audio stream index */ |
AVFormatContext *fCtx; /* format context */ |
AVCodecContext *vCtx; /* video decoder context */ |
AVCodecContext *aCtx; /* audio decoder context */ |
AVCodec *vCodec; /* video codec */ |
AVCodec *aCodec; /* audio codec */ |
int vStream; /* video stream index */ |
int aStream; /* audio stream index */ |
|
queue_t q_video; /* video packets queue */ |
queue_t q_audio; /* audio packets queue */ |
queue_t q_video; /* video packets queue */ |
queue_t q_audio; /* audio packets queue */ |
|
mutex_t gpu_lock; /* gpu access lock. libdrm not yet thread safe :( */ |
|
int vfx; /* index of decoded frame */ |
int dfx; /* index of renderd frame */ |
|
vframe_t vframe[4]; /* decoder workset */ |
int vfx; /* index of decoded frame */ |
int dfx; /* index of renderd frame */ |
void *hwCtx; /* hardware context */ |
int hwdec; /* hardware decoder */ |
}; |
|
|
|
#define DECODER_THREAD 1 |
#define AUDIO_THREAD 2 |
#define VIDEO_THREAD 4 |
155,7 → 165,6 |
::"a"(68),"b"(14),"c"(event)); |
} |
|
int fplay_vaapi_init(void); |
void va_convert_picture(vst_t *vst, int width, int height, AVPicture *pic); |
|
int init_fontlib(); |