summaryrefslogtreecommitdiff
path: root/ext/eglgles/gsteglglessink.c
diff options
context:
space:
mode:
authorSebastian Dröge <sebastian.droege@collabora.co.uk>2012-12-28 12:40:14 +0100
committerSebastian Dröge <sebastian.droege@collabora.co.uk>2012-12-28 20:07:34 +0100
commit6b8188f9f6dfc74f2ec456225fdaa9e331af71ed (patch)
tree1d6520cd08e76e9bc70d4a0868d316e5cc1d4c05 /ext/eglgles/gsteglglessink.c
parent31a3ef2f828809c5749a95e11bd6d6a99903a87e (diff)
downloadgstreamer-plugins-bad-6b8188f9f6dfc74f2ec456225fdaa9e331af71ed.tar.gz
eglglessink: Only use the GstVideoFrame if we have a buffer
Diffstat (limited to 'ext/eglgles/gsteglglessink.c')
-rw-r--r--ext/eglgles/gsteglglessink.c22
1 files changed, 12 insertions, 10 deletions
diff --git a/ext/eglgles/gsteglglessink.c b/ext/eglgles/gsteglglessink.c
index 1367f28e3..6e6ec38f2 100644
--- a/ext/eglgles/gsteglglessink.c
+++ b/ext/eglgles/gsteglglessink.c
@@ -1788,7 +1788,6 @@ gst_eglglessink_render_and_display (GstEglGlesSink * eglglessink,
GstBuffer * buf)
{
GstVideoFrame vframe;
- gint w, h;
guint dar_n, dar_d;
GstVideoCropMeta *crop = NULL;
@@ -1802,16 +1801,19 @@ gst_eglglessink_render_and_display (GstEglGlesSink * eglglessink,
GST_ERROR_OBJECT (eglglessink, "Couldn't map frame");
goto HANDLE_ERROR;
}
+ } else {
+ GST_DEBUG_OBJECT (eglglessink, "Rendering previous buffer again");
}
- w = GST_VIDEO_FRAME_WIDTH (&vframe);
- h = GST_VIDEO_FRAME_HEIGHT (&vframe);
+ if (buf) {
+ gint w, h;
- GST_DEBUG_OBJECT (eglglessink,
- "Got good buffer %p. Sink geometry is %dx%d size %d", buf, w, h,
- buf ? gst_buffer_get_size (buf) : -1);
+ w = GST_VIDEO_FRAME_WIDTH (&vframe);
+ h = GST_VIDEO_FRAME_HEIGHT (&vframe);
+
+ GST_DEBUG_OBJECT (eglglessink,
+ "Got buffer %p: %dx%d size %d", buf, w, h, gst_buffer_get_size (buf));
- if (buf) {
switch (eglglessink->selected_fmt->fmt) {
case GST_EGLGLESSINK_IMAGE_RGB888:{
gint stride;
@@ -2283,11 +2285,11 @@ gst_eglglessink_render_and_display (GstEglGlesSink * eglglessink,
eglglessink->crop.y = crop->y;
eglglessink->crop.w = crop->width;
eglglessink->crop.h = crop->height;
- } else {
+ } else if (buf) {
eglglessink->crop.x = 0;
eglglessink->crop.y = 0;
- eglglessink->crop.w = w;
- eglglessink->crop.h = h;
+ eglglessink->crop.w = GST_VIDEO_FRAME_WIDTH (&vframe);
+ eglglessink->crop.h = GST_VIDEO_FRAME_HEIGHT (&vframe);
}
if (!eglglessink->force_aspect_ratio) {