• Home
  • Raw
  • Download

Lines Matching refs:sink

84 static gboolean gst_d3dvideosink_start (GstBaseSink * sink);
85 static gboolean gst_d3dvideosink_stop (GstBaseSink * sink);
170 gst_d3dvideosink_init (GstD3DVideoSink * sink) in gst_d3dvideosink_init() argument
172 GST_DEBUG_OBJECT (sink, " "); in gst_d3dvideosink_init()
175 sink->force_aspect_ratio = DEFAULT_FORCE_ASPECT_RATIO; in gst_d3dvideosink_init()
176 sink->create_internal_window = DEFAULT_CREATE_RENDER_WINDOW; in gst_d3dvideosink_init()
177 sink->stream_stop_on_close = DEFAULT_STREAM_STOP_ON_CLOSE; in gst_d3dvideosink_init()
178 sink->enable_navigation_events = DEFAULT_ENABLE_NAVIGATION_EVENTS; in gst_d3dvideosink_init()
179 sink->d3d.surface = NULL; in gst_d3dvideosink_init()
180 sink->d3d.overlay = NULL; in gst_d3dvideosink_init()
181 sink->d3d.overlay_needs_resize = FALSE; in gst_d3dvideosink_init()
182 g_rec_mutex_init (&sink->lock); in gst_d3dvideosink_init()
190 GstD3DVideoSink *sink = GST_D3DVIDEOSINK (gobject); in gst_d3dvideosink_finalize() local
192 GST_DEBUG_OBJECT (sink, " "); in gst_d3dvideosink_finalize()
194 gst_object_replace ((GstObject **) & sink->pool, NULL); in gst_d3dvideosink_finalize()
195 gst_object_replace ((GstObject **) & sink->fallback_pool, NULL); in gst_d3dvideosink_finalize()
197 gst_caps_replace (&sink->supported_caps, NULL); in gst_d3dvideosink_finalize()
199 g_rec_mutex_clear (&sink->lock); in gst_d3dvideosink_finalize()
208 GstD3DVideoSink *sink = GST_D3DVIDEOSINK (object); in gst_d3dvideosink_set_property() local
212 sink->force_aspect_ratio = g_value_get_boolean (value); in gst_d3dvideosink_set_property()
215 sink->create_internal_window = g_value_get_boolean (value); in gst_d3dvideosink_set_property()
218 sink->stream_stop_on_close = g_value_get_boolean (value); in gst_d3dvideosink_set_property()
221 sink->enable_navigation_events = g_value_get_boolean (value); in gst_d3dvideosink_set_property()
233 GstD3DVideoSink *sink = GST_D3DVIDEOSINK (object); in gst_d3dvideosink_get_property() local
237 g_value_set_boolean (value, sink->force_aspect_ratio); in gst_d3dvideosink_get_property()
240 g_value_set_boolean (value, sink->create_internal_window); in gst_d3dvideosink_get_property()
243 g_value_set_boolean (value, sink->stream_stop_on_close); in gst_d3dvideosink_get_property()
246 g_value_set_boolean (value, sink->enable_navigation_events); in gst_d3dvideosink_get_property()
259 GstD3DVideoSink *sink = GST_D3DVIDEOSINK (basesink); in gst_d3dvideosink_get_caps() local
262 caps = d3d_supported_caps (sink); in gst_d3dvideosink_get_caps()
264 caps = gst_pad_get_pad_template_caps (GST_VIDEO_SINK_PAD (sink)); in gst_d3dvideosink_get_caps()
279 GstD3DVideoSink *sink; in gst_d3dvideosink_set_caps() local
290 sink = GST_D3DVIDEOSINK (bsink); in gst_d3dvideosink_set_caps()
292 sink_caps = d3d_supported_caps (sink); in gst_d3dvideosink_set_caps()
298 memset (&sink->info, 0, sizeof (GstVideoInfo)); in gst_d3dvideosink_set_caps()
299 if (!gst_video_info_from_caps (&sink->info, caps)) in gst_d3dvideosink_set_caps()
302 sink->format = sink->info.finfo->format; in gst_d3dvideosink_set_caps()
303 video_width = sink->info.width; in gst_d3dvideosink_set_caps()
304 video_height = sink->info.height; in gst_d3dvideosink_set_caps()
305 video_par_n = sink->info.par_n; in gst_d3dvideosink_set_caps()
306 video_par_d = sink->info.par_d; in gst_d3dvideosink_set_caps()
309 gst_video_format_to_string (sink->format)); in gst_d3dvideosink_set_caps()
321 GST_DEBUG_OBJECT (sink, in gst_d3dvideosink_set_caps()
323 video_width, video_height, num, den, sink->format); in gst_d3dvideosink_set_caps()
334 GST_DEBUG_OBJECT (sink, "keeping video height"); in gst_d3dvideosink_set_caps()
335 GST_VIDEO_SINK_WIDTH (sink) = (guint) in gst_d3dvideosink_set_caps()
337 GST_VIDEO_SINK_HEIGHT (sink) = video_height; in gst_d3dvideosink_set_caps()
339 GST_DEBUG_OBJECT (sink, "keeping video width"); in gst_d3dvideosink_set_caps()
340 GST_VIDEO_SINK_WIDTH (sink) = video_width; in gst_d3dvideosink_set_caps()
341 GST_VIDEO_SINK_HEIGHT (sink) = (guint) in gst_d3dvideosink_set_caps()
344 GST_DEBUG_OBJECT (sink, "approximating while keeping video height"); in gst_d3dvideosink_set_caps()
345 GST_VIDEO_SINK_WIDTH (sink) = (guint) in gst_d3dvideosink_set_caps()
347 GST_VIDEO_SINK_HEIGHT (sink) = video_height; in gst_d3dvideosink_set_caps()
349 GST_DEBUG_OBJECT (sink, "scaling to %dx%d", in gst_d3dvideosink_set_caps()
350 GST_VIDEO_SINK_WIDTH (sink), GST_VIDEO_SINK_HEIGHT (sink)); in gst_d3dvideosink_set_caps()
352 if (GST_VIDEO_SINK_WIDTH (sink) <= 0 || GST_VIDEO_SINK_HEIGHT (sink) <= 0) in gst_d3dvideosink_set_caps()
355 memset (&sink->crop_rect, 0, sizeof (sink->crop_rect)); in gst_d3dvideosink_set_caps()
356 sink->crop_rect.w = sink->info.width; in gst_d3dvideosink_set_caps()
357 sink->crop_rect.h = sink->info.height; in gst_d3dvideosink_set_caps()
359 sink->width = video_width; in gst_d3dvideosink_set_caps()
360 sink->height = video_height; in gst_d3dvideosink_set_caps()
364 if (!d3d_set_render_format (sink)) in gst_d3dvideosink_set_caps()
368 d3d_prepare_window (sink); in gst_d3dvideosink_set_caps()
370 newpool = gst_d3dsurface_buffer_pool_new (sink); in gst_d3dvideosink_set_caps()
373 gst_buffer_pool_config_set_params (config, caps, sink->info.size, 2, 0); in gst_d3dvideosink_set_caps()
376 GST_ERROR_OBJECT (sink, "Failed to set buffer pool configuration"); in gst_d3dvideosink_set_caps()
380 newfbpool = gst_d3dsurface_buffer_pool_new (sink); in gst_d3dvideosink_set_caps()
383 gst_buffer_pool_config_set_params (config, caps, sink->info.size, 2, 0); in gst_d3dvideosink_set_caps()
388 GST_ERROR_OBJECT (sink, "Failed to set buffer pool configuration"); in gst_d3dvideosink_set_caps()
392 GST_OBJECT_LOCK (sink); in gst_d3dvideosink_set_caps()
393 oldpool = sink->pool; in gst_d3dvideosink_set_caps()
394 sink->pool = newpool; in gst_d3dvideosink_set_caps()
395 oldfbpool = sink->fallback_pool; in gst_d3dvideosink_set_caps()
396 sink->fallback_pool = newfbpool; in gst_d3dvideosink_set_caps()
397 GST_OBJECT_UNLOCK (sink); in gst_d3dvideosink_set_caps()
410 GST_ERROR_OBJECT (sink, "caps incompatible"); in gst_d3dvideosink_set_caps()
416 GST_DEBUG_OBJECT (sink, in gst_d3dvideosink_set_caps()
422 GST_ELEMENT_ERROR (sink, CORE, NEGOTIATION, (NULL), in gst_d3dvideosink_set_caps()
428 GST_ELEMENT_ERROR (sink, CORE, NEGOTIATION, (NULL), in gst_d3dvideosink_set_caps()
437 GstD3DVideoSink *sink = GST_D3DVIDEOSINK (bsink); in gst_d3dvideosink_start() local
441 return d3d_class_init (sink); in gst_d3dvideosink_start()
447 GstD3DVideoSink *sink = GST_D3DVIDEOSINK (bsink); in gst_d3dvideosink_stop() local
448 GstD3DVideoSinkClass *klass = GST_D3DVIDEOSINK_GET_CLASS (sink); in gst_d3dvideosink_stop()
451 LOCK_CLASS (sink, klass); in gst_d3dvideosink_stop()
452 d3d_stop (sink); in gst_d3dvideosink_stop()
453 d3d_class_destroy (sink); in gst_d3dvideosink_stop()
454 UNLOCK_CLASS (sink, klass); in gst_d3dvideosink_stop()
462 GstD3DVideoSink *sink = GST_D3DVIDEOSINK (bsink); in gst_d3dvideosink_prepare() local
467 if (GST_VIDEO_SINK_WIDTH (sink) < 1 || GST_VIDEO_SINK_HEIGHT (sink) < 1) { in gst_d3dvideosink_prepare()
471 GST_OBJECT_LOCK (sink); in gst_d3dvideosink_prepare()
472 ret = gst_d3d9_overlay_prepare (sink, buf); in gst_d3dvideosink_prepare()
473 GST_OBJECT_UNLOCK (sink); in gst_d3dvideosink_prepare()
480 GstD3DVideoSink *sink = GST_D3DVIDEOSINK (bsink); in gst_d3dvideosink_propose_allocation() local
490 GST_DEBUG_OBJECT (sink, "no caps specified"); in gst_d3dvideosink_propose_allocation()
498 GST_OBJECT_LOCK (sink); in gst_d3dvideosink_propose_allocation()
499 pool = sink->pool ? gst_object_ref (sink->pool) : NULL; in gst_d3dvideosink_propose_allocation()
500 GST_OBJECT_UNLOCK (sink); in gst_d3dvideosink_propose_allocation()
506 GST_DEBUG_OBJECT (sink, "check existing pool caps"); in gst_d3dvideosink_propose_allocation()
511 GST_DEBUG_OBJECT (sink, "pool has different caps"); in gst_d3dvideosink_propose_allocation()
521 GST_ERROR_OBJECT (sink, "allocation query has invalid caps %" in gst_d3dvideosink_propose_allocation()
531 GST_DEBUG_OBJECT (sink, "create new pool"); in gst_d3dvideosink_propose_allocation()
532 pool = gst_d3dsurface_buffer_pool_new (sink); in gst_d3dvideosink_propose_allocation()
539 GST_ERROR_OBJECT (sink, "failed to set pool configuration"); in gst_d3dvideosink_propose_allocation()
549 if (sink->width != 0 && sink->height != 0) { in gst_d3dvideosink_propose_allocation()
552 "width", G_TYPE_UINT, sink->width, in gst_d3dvideosink_propose_allocation()
553 "height", G_TYPE_UINT, sink->height, NULL); in gst_d3dvideosink_propose_allocation()
555 sink->width, sink->height); in gst_d3dvideosink_propose_allocation()
599 GstD3DVideoSink *sink = GST_D3DVIDEOSINK (overlay); in gst_d3dvideosink_set_render_rectangle() local
600 sink->render_rect.x = x; in gst_d3dvideosink_set_render_rectangle()
601 sink->render_rect.y = y; in gst_d3dvideosink_set_render_rectangle()
602 sink->render_rect.w = width; in gst_d3dvideosink_set_render_rectangle()
603 sink->render_rect.h = height; in gst_d3dvideosink_set_render_rectangle()
604 d3d_set_render_rectangle (sink); in gst_d3dvideosink_set_render_rectangle()
610 GstD3DVideoSink *sink = GST_D3DVIDEOSINK (overlay); in gst_d3dvideosink_expose() local
611 d3d_expose_window (sink); in gst_d3dvideosink_expose()
617 GstD3DVideoSink *sink = GST_D3DVIDEOSINK (vsink); in gst_d3dvideosink_show_frame() local
618 return d3d_render_buffer (sink, buffer); in gst_d3dvideosink_show_frame()
627 GstD3DVideoSink *sink = GST_D3DVIDEOSINK (navigation); in gst_d3dvideosink_navigation_send_event() local
632 if ((pad = gst_pad_get_peer (GST_VIDEO_SINK_PAD (sink)))) { in gst_d3dvideosink_navigation_send_event()
636 gst_element_post_message (GST_ELEMENT_CAST (sink), in gst_d3dvideosink_navigation_send_event()
637 gst_navigation_message_new_event (GST_OBJECT_CAST (sink), e)); in gst_d3dvideosink_navigation_send_event()