diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2011-12-20 00:14:59 +0100 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2011-12-20 00:15:06 +0100 |
commit | c8a441efe24ceb0446a09e82d648a5f4e76d264d (patch) | |
tree | 06b992a2fffa62ddc57c75d7cd775351a8a6fe0c | |
parent | b08a742526d05bcf300af820da5c79d2a05f9959 (diff) | |
parent | 708df4ac66d6b620c216d4d7d48b1da66b8a3b02 (diff) | |
download | ffmpeg-c8a441efe24ceb0446a09e82d648a5f4e76d264d.tar.gz |
Merge remote-tracking branch 'cus/stable'
* cus/stable:
ffplay: remove global video state
Merged-by: Michael Niedermayer <michaelni@gmx.at>
-rw-r--r-- | ffplay.c | 14 |
1 files changed, 3 insertions, 11 deletions
@@ -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) { - 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 */ @@ -2449,10 +2446,9 @@ static int read_thread(void *arg) is->audio_stream = -1; is->subtitle_stream = -1; - global_video_state = is; - ic = avformat_alloc_context(); ic->interrupt_callback.callback = decode_interrupt_cb; + ic->interrupt_callback.opaque = is; err = avformat_open_input(&ic, is->filename, is->iformat, &format_opts); if (err < 0) { print_error(is->filename, err); @@ -2669,9 +2665,6 @@ static int read_thread(void *arg) ret = 0; fail: - /* disable interrupting */ - global_video_state = NULL; - /* close each stream */ if (is->audio_stream >= 0) stream_component_close(is, is->audio_stream); @@ -2682,7 +2675,6 @@ static int read_thread(void *arg) if (is->ic) { avformat_close_input(&is->ic); } - avio_set_interrupt_cb(NULL); if (ret != 0) { SDL_Event event; |