From: Michael R. <mr...@us...> - 2002-12-09 21:56:32
|
Update of /cvsroot/xine/xine-lib/src/libmpeg2 In directory sc8-pr-cvs1:/tmp/cvs-serv8478/src/libmpeg2 Modified Files: decode.c Log Message: - 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 Index: decode.c =================================================================== RCS file: /cvsroot/xine/xine-lib/src/libmpeg2/decode.c,v retrieving revision 1.87 retrieving revision 1.88 diff -u -r1.87 -r1.88 --- decode.c 9 Dec 2002 21:24:35 -0000 1.87 +++ decode.c 9 Dec 2002 21:56:28 -0000 1.88 @@ -774,9 +774,23 @@ /* 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; |