• Home
  • Raw
  • Download

Lines Matching refs:funnel

155 gst_rtp_funnel_send_sticky (GstRtpFunnel * funnel, GstPad * pad)  in gst_rtp_funnel_send_sticky()  argument
161 if (!funnel->send_sticky_events) in gst_rtp_funnel_send_sticky()
165 if (stream_start && !gst_pad_push_event (funnel->srcpad, stream_start)) { in gst_rtp_funnel_send_sticky()
166 GST_ERROR_OBJECT (funnel, "Could not push stream start"); in gst_rtp_funnel_send_sticky()
172 GST_OBJECT_LOCK (funnel); in gst_rtp_funnel_send_sticky()
173 caps = gst_caps_copy (funnel->srccaps); in gst_rtp_funnel_send_sticky()
174 GST_OBJECT_UNLOCK (funnel); in gst_rtp_funnel_send_sticky()
178 if (caps_ev && !gst_pad_push_event (funnel->srcpad, caps_ev)) { in gst_rtp_funnel_send_sticky()
179 GST_ERROR_OBJECT (funnel, "Could not push caps"); in gst_rtp_funnel_send_sticky()
183 funnel->send_sticky_events = FALSE; in gst_rtp_funnel_send_sticky()
190 gst_rtp_funnel_forward_segment (GstRtpFunnel * funnel, GstPad * pad) in gst_rtp_funnel_forward_segment() argument
195 if (pad == funnel->current_pad) { in gst_rtp_funnel_forward_segment()
200 if (event && !gst_pad_push_event (funnel->srcpad, event)) { in gst_rtp_funnel_forward_segment()
201 GST_ERROR_OBJECT (funnel, "Could not push segment"); in gst_rtp_funnel_forward_segment()
210 if (!gst_pad_push_event (funnel->srcpad, event)) in gst_rtp_funnel_forward_segment()
211 GST_ERROR_OBJECT (funnel, "Could not push custom event"); in gst_rtp_funnel_forward_segment()
214 funnel->current_pad = pad; in gst_rtp_funnel_forward_segment()
221 gst_rtp_funnel_set_twcc_seqnum (GstRtpFunnel * funnel, in gst_rtp_funnel_set_twcc_seqnum() argument
227 guint ext_id = gst_rtp_header_extension_get_id (funnel->twcc_ext); in gst_rtp_funnel_set_twcc_seqnum()
231 if (!funnel->twcc_ext || !fpad->has_twcc) in gst_rtp_funnel_set_twcc_seqnum()
236 gst_rtp_header_extension_write (funnel->twcc_ext, *buf, in gst_rtp_funnel_set_twcc_seqnum()
244 if (size >= gst_rtp_header_extension_get_max_size (funnel->twcc_ext, *buf)) { in gst_rtp_funnel_set_twcc_seqnum()
262 gst_rtp_funnel_sink_chain_object (GstPad * pad, GstRtpFunnel * funnel, in gst_rtp_funnel_sink_chain_object() argument
269 GST_PAD_STREAM_LOCK (funnel->srcpad); in gst_rtp_funnel_sink_chain_object()
271 gst_rtp_funnel_send_sticky (funnel, pad); in gst_rtp_funnel_sink_chain_object()
272 gst_rtp_funnel_forward_segment (funnel, pad); in gst_rtp_funnel_sink_chain_object()
275 res = gst_pad_push_list (funnel->srcpad, GST_BUFFER_LIST_CAST (obj)); in gst_rtp_funnel_sink_chain_object()
278 gst_rtp_funnel_set_twcc_seqnum (funnel, pad, &buf); in gst_rtp_funnel_sink_chain_object()
279 res = gst_pad_push (funnel->srcpad, buf); in gst_rtp_funnel_sink_chain_object()
281 GST_PAD_STREAM_UNLOCK (funnel->srcpad); in gst_rtp_funnel_sink_chain_object()
290 GstRtpFunnel *funnel = GST_RTP_FUNNEL_CAST (parent); in gst_rtp_funnel_sink_chain_list() local
292 return gst_rtp_funnel_sink_chain_object (pad, funnel, TRUE, in gst_rtp_funnel_sink_chain_list()
299 GstRtpFunnel *funnel = GST_RTP_FUNNEL_CAST (parent); in gst_rtp_funnel_sink_chain() local
301 return gst_rtp_funnel_sink_chain_object (pad, funnel, FALSE, in gst_rtp_funnel_sink_chain()
306 gst_rtp_funnel_set_twcc_ext_id (GstRtpFunnel * funnel, guint8 twcc_ext_id) in gst_rtp_funnel_set_twcc_ext_id() argument
311 current_ext_id = gst_rtp_header_extension_get_id (funnel->twcc_ext); in gst_rtp_funnel_set_twcc_ext_id()
312 g_object_set (funnel->twcc_ext, "n-streams", funnel->twcc_pads, NULL); in gst_rtp_funnel_set_twcc_ext_id()
319 gst_caps_set_simple (funnel->srccaps, name, G_TYPE_STRING, in gst_rtp_funnel_set_twcc_ext_id()
320 gst_rtp_header_extension_get_uri (funnel->twcc_ext), NULL); in gst_rtp_funnel_set_twcc_ext_id()
325 funnel->send_sticky_events = TRUE; in gst_rtp_funnel_set_twcc_ext_id()
327 gst_rtp_header_extension_set_id (funnel->twcc_ext, twcc_ext_id); in gst_rtp_funnel_set_twcc_ext_id()
358 GstRtpFunnel *funnel = GST_RTP_FUNNEL_CAST (parent); in gst_rtp_funnel_sink_event() local
381 GST_OBJECT_LOCK (funnel); in gst_rtp_funnel_sink_event()
383 GST_ERROR_OBJECT (funnel, "Can't intersect with caps %" GST_PTR_FORMAT, in gst_rtp_funnel_sink_event()
394 g_hash_table_insert (funnel->ssrc_to_pad, GUINT_TO_POINTER (ssrc), pad); in gst_rtp_funnel_sink_event()
397 if (!funnel->twcc_ext) in gst_rtp_funnel_sink_event()
398 funnel->twcc_ext = in gst_rtp_funnel_sink_event()
404 funnel->twcc_pads++; in gst_rtp_funnel_sink_event()
405 gst_rtp_funnel_set_twcc_ext_id (funnel, ext_id); in gst_rtp_funnel_sink_event()
407 GST_OBJECT_UNLOCK (funnel); in gst_rtp_funnel_sink_event()
428 GstRtpFunnel *funnel = GST_RTP_FUNNEL_CAST (parent); in gst_rtp_funnel_sink_query() local
440 GST_OBJECT_LOCK (funnel); in gst_rtp_funnel_sink_query()
448 GST_OBJECT_UNLOCK (funnel); in gst_rtp_funnel_sink_query()
450 if (funnel->common_ts_offset >= 0) in gst_rtp_funnel_sink_query()
452 (guint) funnel->common_ts_offset, NULL); in gst_rtp_funnel_sink_query()
467 GST_OBJECT_LOCK (funnel); in gst_rtp_funnel_sink_query()
468 result = gst_caps_can_intersect (caps, funnel->srccaps); in gst_rtp_funnel_sink_query()
472 GST_PTR_FORMAT, caps, funnel->srccaps); in gst_rtp_funnel_sink_query()
474 GST_OBJECT_UNLOCK (funnel); in gst_rtp_funnel_sink_query()
490 GstRtpFunnel *funnel = GST_RTP_FUNNEL_CAST (parent); in gst_rtp_funnel_src_event() local
503 GST_OBJECT_LOCK (funnel); in gst_rtp_funnel_src_event()
504 fpad = g_hash_table_lookup (funnel->ssrc_to_pad, GUINT_TO_POINTER (ssrc)); in gst_rtp_funnel_src_event()
507 GST_OBJECT_UNLOCK (funnel); in gst_rtp_funnel_src_event()
566 GstRtpFunnel *funnel = GST_RTP_FUNNEL_CAST (object); in gst_rtp_funnel_set_property() local
570 funnel->common_ts_offset = g_value_get_int (value); in gst_rtp_funnel_set_property()
582 GstRtpFunnel *funnel = GST_RTP_FUNNEL_CAST (object); in gst_rtp_funnel_get_property() local
586 g_value_set_int (value, funnel->common_ts_offset); in gst_rtp_funnel_get_property()
597 GstRtpFunnel *funnel = GST_RTP_FUNNEL_CAST (element); in gst_rtp_funnel_change_state() local
604 funnel->send_sticky_events = TRUE; in gst_rtp_funnel_change_state()
625 GstRtpFunnel *funnel = GST_RTP_FUNNEL_CAST (element); in gst_rtp_funnel_release_pad() local
627 GST_DEBUG_OBJECT (funnel, "releasing pad %s:%s", GST_DEBUG_PAD_NAME (pad)); in gst_rtp_funnel_release_pad()
629 g_hash_table_foreach_remove (funnel->ssrc_to_pad, _remove_pad_func, pad); in gst_rtp_funnel_release_pad()
632 gst_element_remove_pad (GST_ELEMENT_CAST (funnel), pad); in gst_rtp_funnel_release_pad()
638 GstRtpFunnel *funnel = GST_RTP_FUNNEL_CAST (object); in gst_rtp_funnel_finalize() local
640 gst_caps_unref (funnel->srccaps); in gst_rtp_funnel_finalize()
641 g_hash_table_destroy (funnel->ssrc_to_pad); in gst_rtp_funnel_finalize()
643 gst_clear_object (&funnel->twcc_ext); in gst_rtp_funnel_finalize()
683 gst_rtp_funnel_init (GstRtpFunnel * funnel) in gst_rtp_funnel_init() argument
685 funnel->srcpad = gst_pad_new_from_static_template (&src_template, "src"); in gst_rtp_funnel_init()
686 gst_pad_use_fixed_caps (funnel->srcpad); in gst_rtp_funnel_init()
687 gst_pad_set_event_function (funnel->srcpad, in gst_rtp_funnel_init()
689 gst_element_add_pad (GST_ELEMENT (funnel), funnel->srcpad); in gst_rtp_funnel_init()
691 funnel->send_sticky_events = TRUE; in gst_rtp_funnel_init()
692 funnel->srccaps = gst_caps_new_empty_simple (RTP_CAPS); in gst_rtp_funnel_init()
693 funnel->ssrc_to_pad = g_hash_table_new (NULL, NULL); in gst_rtp_funnel_init()
694 funnel->current_pad = NULL; in gst_rtp_funnel_init()