summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--clutter-gst/clutter-gst-content.c21
1 files changed, 9 insertions, 12 deletions
diff --git a/clutter-gst/clutter-gst-content.c b/clutter-gst/clutter-gst-content.c
index 02b1bb6..20db2c7 100644
--- a/clutter-gst/clutter-gst-content.c
+++ b/clutter-gst/clutter-gst-content.c
@@ -36,6 +36,8 @@
#include "config.h"
#endif
+#include <string.h>
+
#include "clutter-gst-content.h"
#include "clutter-gst-private.h"
#include "clutter-gst-marshal.h"
@@ -146,24 +148,19 @@ update_frame (ClutterGstContent *self,
{
ClutterGstContentPrivate *priv = self->priv;
ClutterGstFrame *old_frame;
+ ClutterGstVideoResolution old_res = { 0, }, new_res = { 0, };
old_frame = priv->current_frame;
priv->current_frame = g_boxed_copy (CLUTTER_GST_TYPE_FRAME, new_frame);
if (old_frame)
- {
- new_frame->resolution.par_n = old_frame->resolution.par_n;
- new_frame->resolution.par_d = old_frame->resolution.par_d;
- }
+ old_res = old_frame->resolution;
+ if (new_frame)
+ new_res = new_frame->resolution;
- if (!old_frame ||
- (new_frame->resolution.width != old_frame->resolution.width ||
- new_frame->resolution.height != old_frame->resolution.height))
- {
- g_signal_emit (self, signals[SIZE_CHANGE], 0,
- new_frame->resolution.width,
- new_frame->resolution.height);
- }
+ if (memcmp(&old_res, &new_res, sizeof(old_res)) != 0)
+ g_signal_emit (self, signals[SIZE_CHANGE], 0,
+ new_res.width, new_res.height);
if (old_frame)
g_boxed_free (CLUTTER_GST_TYPE_FRAME, old_frame);