static void
gst_player_video_overlay_video_renderer_finalize (GObject * object)
{
  GstPlayerVideoOverlayVideoRenderer *self =
      GST_PLAYER_VIDEO_OVERLAY_VIDEO_RENDERER (object);

  if (self->video_overlay)
    gst_object_unref (self->video_overlay);

  G_OBJECT_CLASS
      (gst_player_video_overlay_video_renderer_parent_class)->finalize (object);
}
static void
gst_player_video_overlay_video_renderer_get_property (GObject * object,
    guint prop_id, GValue * value, GParamSpec * pspec)
{
  GstPlayerVideoOverlayVideoRenderer *self =
      GST_PLAYER_VIDEO_OVERLAY_VIDEO_RENDERER (object);

  switch (prop_id) {
    case VIDEO_OVERLAY_VIDEO_RENDERER_PROP_WINDOW_HANDLE:
      g_value_set_pointer (value, self->window_handle);
      break;
    default:
      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
      break;
  }
}
static GstElement *gst_player_video_overlay_video_renderer_create_video_sink
    (GstPlayerVideoRenderer * iface, GstPlayer * player)
{
  GstElement *video_overlay;
  GstPlayerVideoOverlayVideoRenderer *self =
      GST_PLAYER_VIDEO_OVERLAY_VIDEO_RENDERER (iface);

  if (self->video_overlay)
    gst_object_unref (self->video_overlay);

  video_overlay = gst_player_get_pipeline (player);
  g_return_val_if_fail (GST_IS_VIDEO_OVERLAY (video_overlay), NULL);

  self->video_overlay = GST_VIDEO_OVERLAY (video_overlay);

  gst_video_overlay_set_window_handle (self->video_overlay,
      (guintptr) self->window_handle);

  return NULL;
}
Exemplo n.º 4
0
static void
native_set_surface (JNIEnv * env, jobject thiz, jobject surface)
{
  Player *player = GET_CUSTOM_DATA (env, thiz, native_player_field_id);
  ANativeWindow *new_native_window;

  if (!player)
    return;

  new_native_window = surface ? ANativeWindow_fromSurface (env, surface) : NULL;
  GST_DEBUG ("Received surface %p (native window %p)", surface,
      new_native_window);

  if (player->native_window) {
    ANativeWindow_release (player->native_window);
  }

  player->native_window = new_native_window;
  gst_player_video_overlay_video_renderer_set_window_handle
      (GST_PLAYER_VIDEO_OVERLAY_VIDEO_RENDERER (player->renderer),
      (gpointer) new_native_window);
}