From d87dba631480c070d028b4332ba3a1853e18a38b Mon Sep 17 00:00:00 2001 From: Michael Roitzsch Date: Mon, 9 Dec 2002 21:56:28 +0000 Subject: - remove unneeded event listener thread, the real deadlock has already been fixed - send an additional frame format event, so that the CC decoder knows initial size CVS patchset: 3473 CVS date: 2002/12/09 21:56:28 --- src/libmpeg2/decode.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) (limited to 'src/libmpeg2/decode.c') diff --git a/src/libmpeg2/decode.c b/src/libmpeg2/decode.c index b514bd784..e4f8982b6 100644 --- a/src/libmpeg2/decode.c +++ b/src/libmpeg2/decode.c @@ -774,9 +774,23 @@ static void process_userdata(mpeg2dec_t *mpeg2dec, uint8_t *buffer) /* check if user data denotes closed captions */ if (buffer[0] == 'C' && buffer[1] == 'C') { - if (!mpeg2dec->cc_dec) + if (!mpeg2dec->cc_dec) { + xine_event_t event; + xine_format_change_data_t data; + /* open the closed caption decoder first */ mpeg2dec->cc_dec = get_spu_decoder(mpeg2dec->stream, (BUF_SPU_CC >> 16) & 0xff); + + /* send a frame format event so that the CC decoder knows the initial image size */ + event.type = XINE_EVENT_FRAME_FORMAT_CHANGE; + event.stream = mpeg2dec->stream; + event.data = &data; + event.data_length = sizeof(data); + data.width = mpeg2dec->picture->coded_picture_width; + data.height = mpeg2dec->picture->coded_picture_height; + data.aspect = mpeg2dec->picture->aspect_ratio_information; + xine_event_send(mpeg2dec->stream, &event); + } if (mpeg2dec->cc_dec) { buf_element_t buf; -- cgit v1.2.3