From 287fa7d3c17fe47a4e44f44732992761d47d3496 Mon Sep 17 00:00:00 2001 From: Petri Hintukainen Date: Fri, 8 Jul 2011 13:00:11 +0300 Subject: Improved standard compilance: Drop cached data at epoch start or acquistion point, not at end of display set --- src/libspuhdmv/xine_hdmv_decoder.c | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'src') diff --git a/src/libspuhdmv/xine_hdmv_decoder.c b/src/libspuhdmv/xine_hdmv_decoder.c index b41de21ae..fb6b9447b 100644 --- a/src/libspuhdmv/xine_hdmv_decoder.c +++ b/src/libspuhdmv/xine_hdmv_decoder.c @@ -737,6 +737,11 @@ static int decode_presentation_segment(spuhdmv_decoder_t *this) seg->pts = this->pts; + /* epoch start or acquistion point -> drop cached objects */ + if (seg->comp_descr.state) { + free_objs(this); + } + /* replace */ if (this->segments) LIST_DESTROY(this->segments, free_presentation_segment); @@ -936,8 +941,10 @@ static void decode_segment(spuhdmv_decoder_t *this) break; case SEGTYPE_END_OF_DISPLAY: XINE_HDMV_TRACE(" segment: END OF DISPLAY\n"); +#if 0 /* drop all cached objects */ free_objs(this); +#endif break; default: XINE_HDMV_ERROR(" segment type 0x%x unknown, skipping\n", segbuf_segment_type(this->buf)); -- cgit v1.2.3