diff options
author | Christian Vogler <cvogler@users.sourceforge.net> | 2002-12-09 21:24:35 +0000 |
---|---|---|
committer | Christian Vogler <cvogler@users.sourceforge.net> | 2002-12-09 21:24:35 +0000 |
commit | e6512d27b6f14fb1bc09c66ca04904786fe3b306 (patch) | |
tree | 64e650fa2d2b137cd8ecb02af03e3403741fe055 /src/libmpeg2/decode.c | |
parent | ffe147d60b162f42fa6b950ead32cbf56fdaf1fc (diff) | |
download | xine-lib-e6512d27b6f14fb1bc09c66ca04904786fe3b306.tar.gz xine-lib-e6512d27b6f14fb1bc09c66ca04904786fe3b306.tar.bz2 |
fix CC-decoding related deadlocks
CVS patchset: 3472
CVS date: 2002/12/09 21:24:35
Diffstat (limited to 'src/libmpeg2/decode.c')
-rw-r--r-- | src/libmpeg2/decode.c | 16 |
1 files changed, 7 insertions, 9 deletions
diff --git a/src/libmpeg2/decode.c b/src/libmpeg2/decode.c index 88a660cb8..b514bd784 100644 --- a/src/libmpeg2/decode.c +++ b/src/libmpeg2/decode.c @@ -779,17 +779,15 @@ static void process_userdata(mpeg2dec_t *mpeg2dec, uint8_t *buffer) mpeg2dec->cc_dec = get_spu_decoder(mpeg2dec->stream, (BUF_SPU_CC >> 16) & 0xff); if (mpeg2dec->cc_dec) { - buf_element_t *buf; + buf_element_t buf; - buf = mpeg2dec->stream->video_fifo->buffer_pool_alloc (mpeg2dec->stream->video_fifo); - buf->type = BUF_SPU_CC; - buf->content = &buffer[2]; - buf->pts = mpeg2dec->pts; - buf->size = find_end(buffer) - &buffer[2]; + buf.type = BUF_SPU_CC; + buf.content = &buffer[2]; + buf.pts = mpeg2dec->pts; + buf.size = find_end(buffer) - &buffer[2]; + buf.decoder_flags = 0; - mpeg2dec->cc_dec->decode_data(mpeg2dec->cc_dec, buf); - - buf->free_buffer(buf); + mpeg2dec->cc_dec->decode_data(mpeg2dec->cc_dec, &buf); } } } |