Merge remote-tracking branch 'origin/master' into 0.11
authorTim-Philipp Müller <tim.muller@collabora.co.uk>
Thu, 8 Mar 2012 20:31:34 +0000 (20:31 +0000)
committerTim-Philipp Müller <tim.muller@collabora.co.uk>
Thu, 8 Mar 2012 20:31:34 +0000 (20:31 +0000)
Conflicts:
common
docs/libs/gst-plugins-base-libs.types
ext/pango/gsttextoverlay.c
ext/vorbis/gstvorbisdec.c
gst/playback/gstplaysink.c
gst/playback/gstplaysinkconvertbin.c
sys/ximage/ximagesink.c
sys/xvimage/xvimagesink.c

14 files changed:
1  2 
configure.ac
ext/pango/gsttextrender.c
ext/vorbis/gstvorbisdec.c
ext/vorbis/gstvorbisdec.h
gst-libs/gst/audio/gstaudiodecoder.c
gst-libs/gst/audio/gstaudiodecoder.h
gst-libs/gst/pbutils/gstdiscoverer.c
gst-libs/gst/pbutils/install-plugins.c
gst/playback/gstplaysink.c
gst/playback/gstplaysinkconvertbin.c
sys/ximage/ximagesink.c
sys/xvimage/xvimagesink.c
tests/check/elements/videoscale.c
win32/common/libgstaudio.def

diff --cc configure.ac
Simple merge
@@@ -188,20 -201,9 +188,20 @@@ gst_text_render_class_init (GstTextRend
    gobject_class->set_property = gst_text_render_set_property;
    gobject_class->get_property = gst_text_render_get_property;
  
 +  gst_element_class_add_pad_template (gstelement_class,
 +      gst_static_pad_template_get (&src_template_factory));
 +  gst_element_class_add_pad_template (gstelement_class,
 +      gst_static_pad_template_get (&sink_template_factory));
 +
 +  gst_element_class_set_details_simple (gstelement_class, "Text renderer",
 +      "Filter/Editor/Video",
 +      "Renders a text string to an image bitmap",
 +      "David Schleef <ds@schleef.org>, "
 +      "GStreamer maintainers <gstreamer-devel@lists.sourceforge.net>");
 +
    fontmap = pango_cairo_font_map_get_default ();
    klass->pango_context =
-       pango_cairo_font_map_create_context (PANGO_CAIRO_FONT_MAP (fontmap));
+       pango_font_map_create_context (PANGO_FONT_MAP (fontmap));
    g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_FONT_DESC,
        g_param_spec_string ("font-desc", "font description",
            "Pango font description of font "
@@@ -216,33 -298,29 +206,27 @@@ vorbis_handle_comment_packet (GstVorbis
  {
    guint bitrate = 0;
    gchar *encoder = NULL;
-   GstTagList *list, *old_list;
+   GstTagList *list;
 -  GstBuffer *buf;
 +  guint8 *data;
 +  gsize size;
  
    GST_DEBUG_OBJECT (vd, "parsing comment packet");
  
 -  buf = gst_buffer_new ();
 -  GST_BUFFER_DATA (buf) = gst_ogg_packet_data (packet);
 -  GST_BUFFER_SIZE (buf) = gst_ogg_packet_size (packet);
 +  data = gst_ogg_packet_data (packet);
 +  size = gst_ogg_packet_size (packet);
  
    list =
 -      gst_tag_list_from_vorbiscomment_buffer (buf, (guint8 *) "\003vorbis", 7,
 +      gst_tag_list_from_vorbiscomment (data, size, (guint8 *) "\003vorbis", 7,
        &encoder);
  
-   old_list = vd->taglist;
-   vd->taglist = gst_tag_list_merge (vd->taglist, list, GST_TAG_MERGE_REPLACE);
-   if (old_list)
-     gst_tag_list_free (old_list);
-   gst_tag_list_free (list);
-   if (!vd->taglist) {
+   if (!list) {
      GST_ERROR_OBJECT (vd, "couldn't decode comments");
-     vd->taglist = gst_tag_list_new_empty ();
+     list = gst_tag_list_new ();
    }
 -  gst_buffer_unref (buf);
 -
    if (encoder) {
      if (encoder[0])
-       gst_tag_list_add (vd->taglist, GST_TAG_MERGE_REPLACE,
+       gst_tag_list_add (list, GST_TAG_MERGE_REPLACE,
            GST_TAG_ENCODER, encoder, NULL);
      g_free (encoder);
    }
@@@ -62,10 -62,8 +62,8 @@@ struct _GstVorbisDec 
  #endif
  
    gboolean          initialized;
 -  guint             width;
 +  GstAudioInfo      info;
  
-   GstTagList       *taglist;
    CopySampleFunc    copy_samples;
  };
  
Simple merge
Simple merge
Simple merge
@@@ -3723,20 -3733,23 +3722,23 @@@ gst_play_sink_handle_message (GstBin * 
  
          GST_DEBUG_OBJECT (playsink, "Got prepare-xwindow-id message");
  
 -        if (playsink->xoverlay_handle_set)
 -          gst_x_overlay_set_window_handle (playsink->xoverlay_element,
 -              playsink->xoverlay_handle);
 -        if (playsink->xoverlay_handle_events_set)
 -          gst_x_overlay_handle_events (playsink->xoverlay_element,
 -              playsink->xoverlay_handle_events);
 -        if (playsink->xoverlay_render_rectangle_set)
 -          gst_x_overlay_set_render_rectangle (playsink->xoverlay_element,
 -              playsink->xoverlay_x, playsink->xoverlay_y,
 -              playsink->xoverlay_width, playsink->xoverlay_height);
 -
 -        gst_object_unref (xoverlay);
 +        if (playsink->overlay_handle_set)
 +          gst_video_overlay_set_window_handle (playsink->overlay_element,
 +              playsink->overlay_handle);
 +        if (playsink->overlay_handle_events_set)
 +          gst_video_overlay_handle_events (playsink->overlay_element,
 +              playsink->overlay_handle_events);
 +        if (playsink->overlay_render_rectangle_set)
 +          gst_video_overlay_set_render_rectangle (playsink->overlay_element,
 +              playsink->overlay_x, playsink->overlay_y,
 +              playsink->overlay_width, playsink->overlay_height);
 +
 +        gst_object_unref (overlay);
          gst_message_unref (message);
 -        gst_x_overlay_prepare_xwindow_id (GST_X_OVERLAY (playsink));
 +        gst_video_overlay_prepare_window_handle (GST_VIDEO_OVERLAY (playsink));
+       } else {
+         GST_BIN_CLASS (gst_play_sink_parent_class)->handle_message (bin,
+             message);
        }
        break;
      }
Simple merge
  
  #include "gst/glib-compat-private.h"
  
+ /* for XkbKeycodeToKeysym */
+ #include <X11/XKBlib.h>
  GST_DEBUG_CATEGORY_EXTERN (gst_debug_ximagesink);
 +GST_DEBUG_CATEGORY_EXTERN (GST_CAT_PERFORMANCE);
  #define GST_CAT_DEFAULT gst_debug_ximagesink
  
  typedef struct
  
  #include "gst/glib-compat-private.h"
  
 -GST_DEBUG_CATEGORY_STATIC (gst_debug_xvimagesink);
+ /* for XkbKeycodeToKeysym */
+ #include <X11/XKBlib.h>
 +GST_DEBUG_CATEGORY_EXTERN (gst_debug_xvimagesink);
 +GST_DEBUG_CATEGORY_EXTERN (GST_CAT_PERFORMANCE);
  #define GST_CAT_DEFAULT gst_debug_xvimagesink
 -GST_DEBUG_CATEGORY_STATIC (GST_CAT_PERFORMANCE);
  
  typedef struct
  {
@@@ -748,28 -1266,23 +752,24 @@@ gst_xvimagesink_handle_xevents (GstXvIm
        case KeyRelease:
          /* Key pressed/released over our window. We send upstream
             events for interactivity/navigation */
-         GST_DEBUG ("xvimagesink key %d pressed over window at %d,%d",
-             e.xkey.keycode, e.xkey.x, e.xkey.y);
          g_mutex_lock (xvimagesink->x_lock);
-         keysym = XKeycodeToKeysym (xvimagesink->xcontext->disp,
-             e.xkey.keycode, 0);
-         g_mutex_unlock (xvimagesink->x_lock);
+         keysym = XkbKeycodeToKeysym (xvimagesink->xcontext->disp,
+             e.xkey.keycode, 0, 0);
          if (keysym != NoSymbol) {
-           char *key_str = NULL;
-           g_mutex_lock (xvimagesink->x_lock);
            key_str = XKeysymToString (keysym);
-           g_mutex_unlock (xvimagesink->x_lock);
-           gst_navigation_send_key_event (GST_NAVIGATION (xvimagesink),
-               e.type == KeyPress ? "key-press" : "key-release", key_str);
          } else {
-           gst_navigation_send_key_event (GST_NAVIGATION (xvimagesink),
-               e.type == KeyPress ? "key-press" : "key-release", "unknown");
+           key_str = "unknown";
          }
+         g_mutex_unlock (xvimagesink->x_lock);
+         GST_DEBUG_OBJECT (xvimagesink,
+             "key %d pressed over window at %d,%d (%s)",
+             e.xkey.keycode, e.xkey.x, e.xkey.y, key_str);
+         gst_navigation_send_key_event (GST_NAVIGATION (xvimagesink),
+             e.type == KeyPress ? "key-press" : "key-release", key_str);
          break;
        default:
 -        GST_DEBUG ("xvimagesink unhandled X event (%d)", e.type);
 +        GST_DEBUG_OBJECT (xvimagesink, "xvimagesink unhandled X event (%d)",
 +            e.type);
      }
      g_mutex_lock (xvimagesink->flow_lock);
      g_mutex_lock (xvimagesink->x_lock);
Simple merge
Simple merge