diff options
author | Petri Hintukainen <phintuka@users.sourceforge.net> | 2011-07-08 13:00:11 +0300 |
---|---|---|
committer | Petri Hintukainen <phintuka@users.sourceforge.net> | 2011-07-08 13:00:11 +0300 |
commit | 287fa7d3c17fe47a4e44f44732992761d47d3496 (patch) | |
tree | 271903eda89dc19ea6abbafc9dbe86a684a6b131 /src | |
parent | 3a4b7fe01fbf114a09867717ef0e86bb43330f04 (diff) | |
download | xine-lib-287fa7d3c17fe47a4e44f44732992761d47d3496.tar.gz xine-lib-287fa7d3c17fe47a4e44f44732992761d47d3496.tar.bz2 |
Improved standard compilance: Drop cached data at epoch start or acquistion point, not at end of display set
Diffstat (limited to 'src')
-rw-r--r-- | src/libspuhdmv/xine_hdmv_decoder.c | 7 |
1 files changed, 7 insertions, 0 deletions
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)); |