summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPetri Hintukainen <phintuka@users.sourceforge.net>2014-05-14 11:11:01 +0300
committerPetri Hintukainen <phintuka@users.sourceforge.net>2014-05-14 11:11:01 +0300
commit595f0770d82c7203a6b32f58ae72cbd994c39020 (patch)
treefd4be0422d3db273794eb78a8df5286109b304fa /src
parentc2e5321920324d66f69f3407bd3670f4b2948cb0 (diff)
downloadxine-lib-595f0770d82c7203a6b32f58ae72cbd994c39020.tar.gz
xine-lib-595f0770d82c7203a6b32f58ae72cbd994c39020.tar.bz2
video_out_opengl2: fix argb layer overlay locking
Diffstat (limited to 'src')
-rw-r--r--src/video_out/video_out_opengl2.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/video_out/video_out_opengl2.c b/src/video_out/video_out_opengl2.c
index 2b353b746..c27e10c72 100644
--- a/src/video_out/video_out_opengl2.c
+++ b/src/video_out/video_out_opengl2.c
@@ -561,11 +561,14 @@ static void opengl2_overlay_blend (vo_driver_t *this_gen, vo_frame_t *frame_gen,
if (overlay->argb_layer && overlay->argb_layer->buffer) {
pthread_mutex_lock(&overlay->argb_layer->mutex); /* buffer can be changed or freed while unlocked */
- memcpy(ovl->ovl_rgba, overlay->argb_layer->buffer, overlay->width * overlay->height * sizeof(uint32_t));
+
+ if (overlay->argb_layer->buffer) {
+ memcpy(ovl->ovl_rgba, overlay->argb_layer->buffer, overlay->width * overlay->height * sizeof(uint32_t));
+ ++this->ovl_changed;
+ }
/* TODO: this could be done without this memcpy() ... */
pthread_mutex_unlock(&overlay->argb_layer->mutex);
- ++this->ovl_changed;
} else if (overlay->rle) {
if (!overlay->rgb_clut || !overlay->hili_rgb_clut) {