diff options
| author | phintuka <phintuka> | 2009-10-20 22:32:38 +0000 |
|---|---|---|
| committer | phintuka <phintuka> | 2009-10-20 22:32:38 +0000 |
| commit | 3fd29b9215b5dd3bef5e4a1a9d6ccf4b97245825 (patch) | |
| tree | 4a6a4bd346fcb64427a0d42cb895327825eef93d | |
| parent | b0e31623370035f9677a3c2df4d50bb04392797e (diff) | |
| download | xineliboutput-3fd29b9215b5dd3bef5e4a1a9d6ccf4b97245825.tar.gz xineliboutput-3fd29b9215b5dd3bef5e4a1a9d6ccf4b97245825.tar.bz2 | |
show_overlays -> update_overlays
| -rw-r--r-- | xine/BluRay/decode_spuhdmv.c | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/xine/BluRay/decode_spuhdmv.c b/xine/BluRay/decode_spuhdmv.c index 56e66b86..45ee0b33 100644 --- a/xine/BluRay/decode_spuhdmv.c +++ b/xine/BluRay/decode_spuhdmv.c @@ -786,8 +786,17 @@ static void hide_overlays(spuhdmv_decoder_t *this, int64_t pts) } } -static void show_overlays(spuhdmv_decoder_t *this, presentation_segment_t *pseg) +static void update_overlays(spuhdmv_decoder_t *this, presentation_segment_t *pseg) { + if (!pseg->comp_descr.state) { + + /* HIDE */ + if (!pseg->shown) + hide_overlays (this, pseg->pts); + + } else { + + /* SHOW */ composition_object_t *cobj = pseg->comp_objs; int i; @@ -799,6 +808,7 @@ static void show_overlays(spuhdmv_decoder_t *this, presentation_segment_t *pseg) cobj = cobj->next; } } + } pseg->shown = 1; } @@ -811,11 +821,8 @@ static int decode_presentation_segment(spuhdmv_decoder_t *this) seg->pts = this->pts; /* !! todo - use it ? */ - if (!seg->comp_descr.state) { - hide_overlays (this, seg->pts); - } else { - show_overlays (this, seg); - } + update_overlays (this, seg); + free_presentation_segment(seg); return 0; |
