提交 a4029d48 编写于 作者: Z Zhang Rui

ijkplayer: fix msg_handler

上级 b78a4305
......@@ -1681,7 +1681,7 @@ static int read_thread(void *arg)
ffp->infinite_buffer = 1;
prepared = true;
ijkff_notify_msg(ffp, IJKFF_MSG_PREPARED);
ijkff_notify_msg(ffp, IJKFF_MSG_PREPARED, 0, 0, NULL);
for (;;) {
if (is->abort_request)
......@@ -1790,7 +1790,7 @@ static int read_thread(void *arg)
ret = AVERROR_EOF;
goto fail;
} else {
ijkff_notify_msg(ffp, IJKFF_MSG_COMPLETED);
ijkff_notify_msg(ffp, IJKFF_MSG_COMPLETED, 0, 0, NULL);
}
}
eof=0;
......@@ -1849,7 +1849,7 @@ static int read_thread(void *arg)
if (!prepared || !is->abort_request) {
ffp->last_error = last_error;
ijkff_notify_msg(ffp, IJKFF_MSG_ERROR);
ijkff_notify_msg(ffp, IJKFF_MSG_ERROR, last_error, 0, NULL);
}
SDL_DestroyMutex(wait_mutex);
......
......@@ -401,7 +401,7 @@ typedef struct FFPlayer {
int last_error;
void *msg_opaque;
void (*msg_handler)(void *opaque, int what);
void (*msg_handler)(void *opaque, int what, int arg1, int arg2, void *data);
} FFPlayer;
#define IJKFF_SAFE_FREE(p) do {free(p); p = NULL;} while(0)
......@@ -473,18 +473,19 @@ inline static void ijkff_reset(FFPlayer *ffp)
ffp->msg_handler = NULL;
}
#define IJKFF_MSG_ERROR 0
#define IJKFF_MSG_PREPARED 1
#define IJKFF_MSG_COMPLETED 2
#define IJKFF_MSG_VIDEO_SIZE_CHANGED 3
#define IJKFF_MSG_BUFFERING_START 4
#define IJKFF_MSG_BUFFERING_END 5
#define IJKFF_MSG_BUFFERING_UPDATE 6
#define IJKFF_MSG_SEEK_COMPLETED 7
inline static void ijkff_notify_msg(FFPlayer *ffp, int what) {
#define IJKFF_MSG_ERROR 100 /* arg1 = error */
#define IJKFF_MSG_PREPARED 200
#define IJKFF_MSG_COMPLETED 300
#define IJKFF_MSG_VIDEO_SIZE_CHANGED 400 /* arg1 = width, arg2 = height */
#define IJKFF_MSG_SAR_CHANGED 401 /* arg1 = sar.num, arg2 = sar.den */
#define IJKFF_MSG_BUFFERING_START 500
#define IJKFF_MSG_BUFFERING_END 501
#define IJKFF_MSG_BUFFERING_FORWARD 502 /* arg1 = cached duration */
#define IJKFF_MSG_SEEK_COMPLETED 600
inline static void ijkff_notify_msg(FFPlayer *ffp, int what, int arg1, int arg2, void* data) {
if (ffp->msg_handler)
ffp->msg_handler(ffp->msg_opaque, what);
ffp->msg_handler(ffp->msg_opaque, what, arg1, arg2, data);
}
#endif
......@@ -81,7 +81,7 @@ void ijkmp_global_uninit()
ijkff_global_uninit();
}
static void ijkmp_msg_handler(void *opaque, int what)
static void ijkmp_msg_handler(void *opaque, int what, int arg1, int arg2, void* data)
{
// IjkMediaPlayer *mp = (IjkMediaPlayer *) opaque;
// FFPlayer *ffp = mp->ffplayer;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册