summaryrefslogtreecommitdiff
path: root/src/libmpeg2/decode.c
diff options
context:
space:
mode:
authorMichael Roitzsch <mroi@users.sourceforge.net>2002-12-09 21:56:28 +0000
committerMichael Roitzsch <mroi@users.sourceforge.net>2002-12-09 21:56:28 +0000
commitd87dba631480c070d028b4332ba3a1853e18a38b (patch)
treed8ed299b10c33fa1bddf171cbac7e2ae0d287bba /src/libmpeg2/decode.c
parente6512d27b6f14fb1bc09c66ca04904786fe3b306 (diff)
downloadxine-lib-d87dba631480c070d028b4332ba3a1853e18a38b.tar.gz
xine-lib-d87dba631480c070d028b4332ba3a1853e18a38b.tar.bz2
- 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
Diffstat (limited to 'src/libmpeg2/decode.c')
-rw-r--r--src/libmpeg2/decode.c16
1 files changed, 15 insertions, 1 deletions
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;