summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--clutter-gst/clutter-gst-player.c21
1 files changed, 11 insertions, 10 deletions
diff --git a/clutter-gst/clutter-gst-player.c b/clutter-gst/clutter-gst-player.c
index 6dc9823..c106ac5 100644
--- a/clutter-gst/clutter-gst-player.c
+++ b/clutter-gst/clutter-gst-player.c
@@ -43,6 +43,8 @@
#include "config.h"
#endif
+#include <string.h>
+
#include "clutter-gst-enum-types.h"
#include "clutter-gst-marshal.h"
#include "clutter-gst-player.h"
@@ -388,19 +390,18 @@ clutter_gst_player_update_frame (ClutterGstPlayer *player,
ClutterGstFrame *new_frame)
{
ClutterGstFrame *old_frame = *frame;
+ ClutterGstVideoResolution old_res = { 0, }, new_res = { 0, };
*frame = g_boxed_copy (CLUTTER_GST_TYPE_FRAME, new_frame);
- if (old_frame == NULL ||
- new_frame->resolution.width != old_frame->resolution.width ||
- new_frame->resolution.height != old_frame->resolution.height ||
- new_frame->resolution.par_n != old_frame->resolution.par_n ||
- new_frame->resolution.par_d != old_frame->resolution.par_d)
- {
- g_signal_emit (player, signals[SIZE_CHANGE], 0,
- new_frame->resolution.width,
- new_frame->resolution.height);
- }
+ if (old_frame)
+ old_res = old_frame->resolution;
+ if (new_frame)
+ new_res = new_frame->resolution;
+
+ if (memcmp(&old_res, &new_res, sizeof(old_res)) != 0)
+ g_signal_emit (player, signals[SIZE_CHANGE], 0,
+ new_res.width, new_res.height);
if (old_frame)
g_boxed_free (CLUTTER_GST_TYPE_FRAME, old_frame);