summaryrefslogtreecommitdiff
path: root/src/libmpeg2/decode.c
diff options
context:
space:
mode:
authorChristian Vogler <cvogler@users.sourceforge.net>2002-12-09 21:24:35 +0000
committerChristian Vogler <cvogler@users.sourceforge.net>2002-12-09 21:24:35 +0000
commite6512d27b6f14fb1bc09c66ca04904786fe3b306 (patch)
tree64e650fa2d2b137cd8ecb02af03e3403741fe055 /src/libmpeg2/decode.c
parentffe147d60b162f42fa6b950ead32cbf56fdaf1fc (diff)
downloadxine-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.c16
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);
}
}
}