Commit d94287c0 authored by Jagadish's avatar Jagadish Committed by Sebastian Dröge

gdkpixbufoverlay: Fixing x and y offset computation

While computing the x and y offsets, it's the video resolution and
resized overlay resolution to be used instead of actual overlay image
resoltuion. Due to this, the overlay image used to get wrongly overlayed
in undesired location

https://bugzilla.gnome.org/show_bug.cgi?id=757292
parent 893f8674
......@@ -557,20 +557,6 @@ gst_gdk_pixbuf_overlay_update_composition (GstGdkPixbufOverlay * overlay)
positioning_mode = overlay->positioning_mode;
if (positioning_mode == GST_GDK_PIXBUF_POSITIONING_PIXELS_ABSOLUTE) {
x = overlay->offset_x + (overlay->relative_x * overlay_meta->width);
y = overlay->offset_y + (overlay->relative_y * overlay_meta->height);
} else {
x = overlay->offset_x < 0 ?
video_width + overlay->offset_x - overlay_meta->width +
(overlay->relative_x * overlay_meta->width) :
overlay->offset_x + (overlay->relative_x * overlay_meta->width);
y = overlay->offset_y < 0 ?
video_height + overlay->offset_y - overlay_meta->height +
(overlay->relative_y * overlay_meta->height) :
overlay->offset_y + (overlay->relative_y * overlay_meta->height);
}
width = overlay->overlay_width;
if (width == 0)
width = overlay_meta->width;
......@@ -579,6 +565,20 @@ gst_gdk_pixbuf_overlay_update_composition (GstGdkPixbufOverlay * overlay)
if (height == 0)
height = overlay_meta->height;
if (positioning_mode == GST_GDK_PIXBUF_POSITIONING_PIXELS_ABSOLUTE) {
x = overlay->offset_x + (overlay->relative_x * width);
y = overlay->offset_y + (overlay->relative_y * height);
} else {
x = overlay->offset_x < 0 ?
video_width + overlay->offset_x - width +
(overlay->relative_x * video_width) :
overlay->offset_x + (overlay->relative_x * video_width);
y = overlay->offset_y < 0 ?
video_height + overlay->offset_y - height +
(overlay->relative_y * video_height) :
overlay->offset_y + (overlay->relative_y * video_height);
}
GST_DEBUG_OBJECT (overlay, "overlay image dimensions: %d x %d, alpha=%.2f",
overlay_meta->width, overlay_meta->height, overlay->alpha);
GST_DEBUG_OBJECT (overlay, "properties: x,y: %d,%d (%g%%,%g%%) - WxH: %dx%d",
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment