Merge remote-tracking branch 'cus/stable'

* cus/stable:
  ffplay: remove global video state

Merged-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
Michael Niedermayer 2011-12-20 00:14:59 +01:00
commit c8a441efe2
1 changed files with 3 additions and 11 deletions

View File

@ -2421,13 +2421,10 @@ static void stream_component_close(VideoState *is, int stream_index)
} }
} }
/* since we have only one decoding thread, we can use a global
variable instead of a thread local variable */
static VideoState *global_video_state;
static int decode_interrupt_cb(void *ctx) static int decode_interrupt_cb(void *ctx)
{ {
return (global_video_state && global_video_state->abort_request); VideoState *is = ctx;
return is->abort_request;
} }
/* this thread gets the stream from the disk or the network */ /* this thread gets the stream from the disk or the network */
@ -2449,10 +2446,9 @@ static int read_thread(void *arg)
is->audio_stream = -1; is->audio_stream = -1;
is->subtitle_stream = -1; is->subtitle_stream = -1;
global_video_state = is;
ic = avformat_alloc_context(); ic = avformat_alloc_context();
ic->interrupt_callback.callback = decode_interrupt_cb; ic->interrupt_callback.callback = decode_interrupt_cb;
ic->interrupt_callback.opaque = is;
err = avformat_open_input(&ic, is->filename, is->iformat, &format_opts); err = avformat_open_input(&ic, is->filename, is->iformat, &format_opts);
if (err < 0) { if (err < 0) {
print_error(is->filename, err); print_error(is->filename, err);
@ -2669,9 +2665,6 @@ static int read_thread(void *arg)
ret = 0; ret = 0;
fail: fail:
/* disable interrupting */
global_video_state = NULL;
/* close each stream */ /* close each stream */
if (is->audio_stream >= 0) if (is->audio_stream >= 0)
stream_component_close(is, is->audio_stream); stream_component_close(is, is->audio_stream);
@ -2682,7 +2675,6 @@ static int read_thread(void *arg)
if (is->ic) { if (is->ic) {
avformat_close_input(&is->ic); avformat_close_input(&is->ic);
} }
avio_set_interrupt_cb(NULL);
if (ret != 0) { if (ret != 0) {
SDL_Event event; SDL_Event event;