summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorphintuka <phintuka>2009-10-20 22:32:38 +0000
committerphintuka <phintuka>2009-10-20 22:32:38 +0000
commit3fd29b9215b5dd3bef5e4a1a9d6ccf4b97245825 (patch)
tree4a6a4bd346fcb64427a0d42cb895327825eef93d
parentb0e31623370035f9677a3c2df4d50bb04392797e (diff)
downloadxineliboutput-3fd29b9215b5dd3bef5e4a1a9d6ccf4b97245825.tar.gz
xineliboutput-3fd29b9215b5dd3bef5e4a1a9d6ccf4b97245825.tar.bz2
show_overlays -> update_overlays
-rw-r--r--xine/BluRay/decode_spuhdmv.c19
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;