• Home
  • Raw
  • Download

Lines Matching full:enc

183   /* Array of FecPackets, with size enc->l */
294 push_initial_events (GstRTPST_2022_1_FecEnc * enc, GstPad * pad, in push_initial_events() argument
301 stream_id = gst_pad_create_stream_id (pad, GST_ELEMENT (enc), id); in push_initial_events()
306 "payload", G_TYPE_UINT, enc->pt, "ssrc", G_TYPE_UINT, 0, NULL); in push_initial_events()
315 queue_fec_packet (GstRTPST_2022_1_FecEnc * enc, FecPacket * fec, gboolean row) in queue_fec_packet() argument
338 gst_bit_writer_put_bits_uint8 (&bits, row ? 1 : enc->l, 8); /* Offset */ in queue_fec_packet()
346 gst_rtp_buffer_set_payload_type (&rtp, enc->pt); in queue_fec_packet()
347 gst_rtp_buffer_set_seq (&rtp, row ? enc->row_seq++ : enc->column_seq++); in queue_fec_packet()
354 gst_rtp_buffer_set_timestamp (&rtp, enc->last_media_timestamp); in queue_fec_packet()
364 GST_LOG_OBJECT (enc, in queue_fec_packet()
366 fec->seq_base, enc->last_media_seqnum); in queue_fec_packet()
369 GST_OBJECT_UNLOCK (enc); in queue_fec_packet()
370 ret = gst_pad_push (enc->row_fec_srcpad, buffer); in queue_fec_packet()
371 GST_OBJECT_LOCK (enc); in queue_fec_packet()
374 GST_WARNING_OBJECT (enc->row_fec_srcpad, in queue_fec_packet()
383 enc->last_media_seqnum + enc->l - enc->current_column + in queue_fec_packet()
384 enc->d * enc->current_column; in queue_fec_packet()
386 g_queue_push_tail (&enc->queued_column_packets, item); in queue_fec_packet()
394 GstRTPST_2022_1_FecEnc *enc = GST_RTPST_2022_1_FECENC_CAST (parent); in gst_rtpst_2022_1_fecenc_sink_chain() local
399 GST_ERROR_OBJECT (enc, "Chained buffer isn't valid RTP"); in gst_rtpst_2022_1_fecenc_sink_chain()
404 GST_ERROR_OBJECT (enc, "Chained buffer must have SSRC == 0"); in gst_rtpst_2022_1_fecenc_sink_chain()
408 if (enc->last_media_seqnum_set in gst_rtpst_2022_1_fecenc_sink_chain()
409 && (guint16) (enc->last_media_seqnum + 1) != in gst_rtpst_2022_1_fecenc_sink_chain()
411 GST_ERROR_OBJECT (enc, "consecutive sequence numbers are required"); in gst_rtpst_2022_1_fecenc_sink_chain()
415 if (!enc->row_events_pushed) { in gst_rtpst_2022_1_fecenc_sink_chain()
416 push_initial_events (enc, enc->row_fec_srcpad, "row-fec"); in gst_rtpst_2022_1_fecenc_sink_chain()
417 enc->row_events_pushed = TRUE; in gst_rtpst_2022_1_fecenc_sink_chain()
420 if (!enc->column_events_pushed) { in gst_rtpst_2022_1_fecenc_sink_chain()
421 push_initial_events (enc, enc->column_fec_srcpad, "column-fec"); in gst_rtpst_2022_1_fecenc_sink_chain()
422 enc->column_events_pushed = TRUE; in gst_rtpst_2022_1_fecenc_sink_chain()
425 enc->last_media_timestamp = gst_rtp_buffer_get_timestamp (&rtp); in gst_rtpst_2022_1_fecenc_sink_chain()
426 enc->last_media_seqnum = gst_rtp_buffer_get_seq (&rtp); in gst_rtpst_2022_1_fecenc_sink_chain()
427 enc->last_media_seqnum_set = TRUE; in gst_rtpst_2022_1_fecenc_sink_chain()
429 GST_OBJECT_LOCK (enc); in gst_rtpst_2022_1_fecenc_sink_chain()
430 if (enc->enable_row && enc->l) { in gst_rtpst_2022_1_fecenc_sink_chain()
431 g_assert (enc->row->n_packets < enc->l); in gst_rtpst_2022_1_fecenc_sink_chain()
432 fec_packet_update (enc->row, &rtp); in gst_rtpst_2022_1_fecenc_sink_chain()
433 if (enc->row->n_packets == enc->l) { in gst_rtpst_2022_1_fecenc_sink_chain()
434 queue_fec_packet (enc, enc->row, TRUE); in gst_rtpst_2022_1_fecenc_sink_chain()
435 g_free (enc->row->xored_payload); in gst_rtpst_2022_1_fecenc_sink_chain()
436 memset (enc->row, 0x00, sizeof (FecPacket)); in gst_rtpst_2022_1_fecenc_sink_chain()
440 if (enc->enable_column && enc->l && enc->d) { in gst_rtpst_2022_1_fecenc_sink_chain()
441 FecPacket *column = g_ptr_array_index (enc->columns, enc->current_column); in gst_rtpst_2022_1_fecenc_sink_chain()
444 if (column->n_packets == enc->d) { in gst_rtpst_2022_1_fecenc_sink_chain()
445 queue_fec_packet (enc, column, FALSE); in gst_rtpst_2022_1_fecenc_sink_chain()
450 enc->current_column++; in gst_rtpst_2022_1_fecenc_sink_chain()
451 enc->current_column %= enc->l; in gst_rtpst_2022_1_fecenc_sink_chain()
456 if (g_queue_get_length (&enc->queued_column_packets) > 0) { in gst_rtpst_2022_1_fecenc_sink_chain()
457 Item *item = g_queue_peek_head (&enc->queued_column_packets); in gst_rtpst_2022_1_fecenc_sink_chain()
459 if (item->target_media_seq == enc->last_media_seqnum) { in gst_rtpst_2022_1_fecenc_sink_chain()
462 g_queue_pop_head (&enc->queued_column_packets); in gst_rtpst_2022_1_fecenc_sink_chain()
463 GST_LOG_OBJECT (enc, in gst_rtpst_2022_1_fecenc_sink_chain()
465 item->seq_base, enc->last_media_seqnum); in gst_rtpst_2022_1_fecenc_sink_chain()
467 gst_rtp_buffer_set_timestamp (&rtp, enc->last_media_timestamp); in gst_rtpst_2022_1_fecenc_sink_chain()
469 GST_OBJECT_UNLOCK (enc); in gst_rtpst_2022_1_fecenc_sink_chain()
471 gst_pad_push (enc->column_fec_srcpad, gst_buffer_ref (item->buffer)); in gst_rtpst_2022_1_fecenc_sink_chain()
472 GST_OBJECT_LOCK (enc); in gst_rtpst_2022_1_fecenc_sink_chain()
475 GST_WARNING_OBJECT (enc->column_fec_srcpad, in gst_rtpst_2022_1_fecenc_sink_chain()
481 GST_OBJECT_UNLOCK (enc); in gst_rtpst_2022_1_fecenc_sink_chain()
483 ret = gst_pad_push (enc->srcpad, buffer); in gst_rtpst_2022_1_fecenc_sink_chain()
499 GstRTPST_2022_1_FecEnc *enc = GST_RTPST_2022_1_FECENC_CAST (parent); in gst_rtpst_2022_1_fecenc_iterate_linked_pads() local
504 if (pad == enc->srcpad) in gst_rtpst_2022_1_fecenc_iterate_linked_pads()
505 otherpad = enc->sinkpad; in gst_rtpst_2022_1_fecenc_iterate_linked_pads()
506 else if (pad == enc->sinkpad) in gst_rtpst_2022_1_fecenc_iterate_linked_pads()
507 otherpad = enc->srcpad; in gst_rtpst_2022_1_fecenc_iterate_linked_pads()
520 gst_rtpst_2022_1_fecenc_reset (GstRTPST_2022_1_FecEnc * enc, gboolean allocate) in gst_rtpst_2022_1_fecenc_reset() argument
522 if (enc->row) { in gst_rtpst_2022_1_fecenc_reset()
523 free_fec_packet (enc->row); in gst_rtpst_2022_1_fecenc_reset()
524 enc->row = NULL; in gst_rtpst_2022_1_fecenc_reset()
527 if (enc->columns) { in gst_rtpst_2022_1_fecenc_reset()
528 g_ptr_array_unref (enc->columns); in gst_rtpst_2022_1_fecenc_reset()
529 enc->columns = NULL; in gst_rtpst_2022_1_fecenc_reset()
532 if (enc->row_fec_srcpad) { in gst_rtpst_2022_1_fecenc_reset()
533 gst_element_remove_pad (GST_ELEMENT (enc), enc->row_fec_srcpad); in gst_rtpst_2022_1_fecenc_reset()
534 enc->row_fec_srcpad = NULL; in gst_rtpst_2022_1_fecenc_reset()
537 if (enc->column_fec_srcpad) { in gst_rtpst_2022_1_fecenc_reset()
538 gst_element_remove_pad (GST_ELEMENT (enc), enc->column_fec_srcpad); in gst_rtpst_2022_1_fecenc_reset()
539 enc->column_fec_srcpad = NULL; in gst_rtpst_2022_1_fecenc_reset()
542 g_queue_clear_full (&enc->queued_column_packets, (GDestroyNotify) free_item); in gst_rtpst_2022_1_fecenc_reset()
547 enc->row = g_malloc0 (sizeof (FecPacket)); in gst_rtpst_2022_1_fecenc_reset()
548 enc->columns = in gst_rtpst_2022_1_fecenc_reset()
549 g_ptr_array_new_full (enc->l, (GDestroyNotify) free_fec_packet); in gst_rtpst_2022_1_fecenc_reset()
551 for (i = 0; i < enc->l; i++) { in gst_rtpst_2022_1_fecenc_reset()
552 g_ptr_array_add (enc->columns, g_malloc0 (sizeof (FecPacket))); in gst_rtpst_2022_1_fecenc_reset()
555 g_queue_init (&enc->queued_column_packets); in gst_rtpst_2022_1_fecenc_reset()
557 enc->column_fec_srcpad = in gst_rtpst_2022_1_fecenc_reset()
559 gst_pad_set_active (enc->column_fec_srcpad, TRUE); in gst_rtpst_2022_1_fecenc_reset()
560 gst_pad_set_iterate_internal_links_function (enc->column_fec_srcpad, in gst_rtpst_2022_1_fecenc_reset()
562 gst_element_add_pad (GST_ELEMENT (enc), enc->column_fec_srcpad); in gst_rtpst_2022_1_fecenc_reset()
564 enc->row_fec_srcpad = in gst_rtpst_2022_1_fecenc_reset()
566 gst_pad_set_active (enc->row_fec_srcpad, TRUE); in gst_rtpst_2022_1_fecenc_reset()
567 gst_pad_set_iterate_internal_links_function (enc->row_fec_srcpad, in gst_rtpst_2022_1_fecenc_reset()
569 gst_element_add_pad (GST_ELEMENT (enc), enc->row_fec_srcpad); in gst_rtpst_2022_1_fecenc_reset()
571 gst_element_no_more_pads (GST_ELEMENT (enc)); in gst_rtpst_2022_1_fecenc_reset()
574 enc->current_column = 0; in gst_rtpst_2022_1_fecenc_reset()
575 enc->last_media_seqnum_set = FALSE; in gst_rtpst_2022_1_fecenc_reset()
583 GstRTPST_2022_1_FecEnc *enc = GST_RTPST_2022_1_FECENC_CAST (element); in gst_rtpst_2022_1_fecenc_change_state() local
587 gst_rtpst_2022_1_fecenc_reset (enc, TRUE); in gst_rtpst_2022_1_fecenc_change_state()
590 gst_rtpst_2022_1_fecenc_reset (enc, FALSE); in gst_rtpst_2022_1_fecenc_change_state()
604 GstRTPST_2022_1_FecEnc *enc = GST_RTPST_2022_1_FECENC_CAST (object); in gst_rtpst_2022_1_fecenc_finalize() local
606 gst_rtpst_2022_1_fecenc_reset (enc, FALSE); in gst_rtpst_2022_1_fecenc_finalize()
615 GstRTPST_2022_1_FecEnc *enc = GST_RTPST_2022_1_FECENC_CAST (object); in gst_rtpst_2022_1_fecenc_set_property() local
617 if (GST_STATE (enc) > GST_STATE_READY) { in gst_rtpst_2022_1_fecenc_set_property()
618 GST_ERROR_OBJECT (enc, in gst_rtpst_2022_1_fecenc_set_property()
625 enc->l = g_value_get_uint (value); in gst_rtpst_2022_1_fecenc_set_property()
628 enc->d = g_value_get_uint (value); in gst_rtpst_2022_1_fecenc_set_property()
631 enc->pt = g_value_get_int (value); in gst_rtpst_2022_1_fecenc_set_property()
634 GST_OBJECT_LOCK (enc); in gst_rtpst_2022_1_fecenc_set_property()
635 enc->enable_column = g_value_get_boolean (value); in gst_rtpst_2022_1_fecenc_set_property()
636 if (!enc->enable_column) { in gst_rtpst_2022_1_fecenc_set_property()
639 if (enc->columns) { in gst_rtpst_2022_1_fecenc_set_property()
640 for (i = 0; i < enc->l; i++) { in gst_rtpst_2022_1_fecenc_set_property()
641 FecPacket *column = g_ptr_array_index (enc->columns, i); in gst_rtpst_2022_1_fecenc_set_property()
646 enc->current_column = 0; in gst_rtpst_2022_1_fecenc_set_property()
647 enc->column_seq = 0; in gst_rtpst_2022_1_fecenc_set_property()
648 g_queue_clear_full (&enc->queued_column_packets, in gst_rtpst_2022_1_fecenc_set_property()
651 GST_OBJECT_UNLOCK (enc); in gst_rtpst_2022_1_fecenc_set_property()
654 GST_OBJECT_LOCK (enc); in gst_rtpst_2022_1_fecenc_set_property()
655 enc->enable_row = g_value_get_boolean (value); in gst_rtpst_2022_1_fecenc_set_property()
656 GST_OBJECT_UNLOCK (enc); in gst_rtpst_2022_1_fecenc_set_property()
668 GstRTPST_2022_1_FecEnc *enc = GST_RTPST_2022_1_FECENC_CAST (object); in gst_rtpst_2022_1_fecenc_get_property() local
672 g_value_set_uint (value, enc->l); in gst_rtpst_2022_1_fecenc_get_property()
675 g_value_set_uint (value, enc->d); in gst_rtpst_2022_1_fecenc_get_property()
678 g_value_set_int (value, enc->pt); in gst_rtpst_2022_1_fecenc_get_property()
681 GST_OBJECT_LOCK (enc); in gst_rtpst_2022_1_fecenc_get_property()
682 g_value_set_boolean (value, enc->enable_column); in gst_rtpst_2022_1_fecenc_get_property()
683 GST_OBJECT_UNLOCK (enc); in gst_rtpst_2022_1_fecenc_get_property()
686 GST_OBJECT_LOCK (enc); in gst_rtpst_2022_1_fecenc_get_property()
687 g_value_set_boolean (value, enc->enable_row); in gst_rtpst_2022_1_fecenc_get_property()
688 GST_OBJECT_UNLOCK (enc); in gst_rtpst_2022_1_fecenc_get_property()
699 GstRTPST_2022_1_FecEnc *enc = GST_RTPST_2022_1_FECENC_CAST (parent); in gst_2d_fec_sink_event() local
703 gst_rtpst_2022_1_fecenc_reset (enc, TRUE); in gst_2d_fec_sink_event()
776 gst_rtpst_2022_1_fecenc_init (GstRTPST_2022_1_FecEnc * enc) in gst_rtpst_2022_1_fecenc_init() argument
778 enc->srcpad = gst_pad_new_from_static_template (&src_template, "src"); in gst_rtpst_2022_1_fecenc_init()
779 gst_pad_use_fixed_caps (enc->srcpad); in gst_rtpst_2022_1_fecenc_init()
780 GST_PAD_SET_PROXY_CAPS (enc->srcpad); in gst_rtpst_2022_1_fecenc_init()
781 gst_pad_set_iterate_internal_links_function (enc->srcpad, in gst_rtpst_2022_1_fecenc_init()
783 gst_element_add_pad (GST_ELEMENT (enc), enc->srcpad); in gst_rtpst_2022_1_fecenc_init()
785 enc->sinkpad = gst_pad_new_from_static_template (&sink_template, "sink"); in gst_rtpst_2022_1_fecenc_init()
786 GST_PAD_SET_PROXY_CAPS (enc->sinkpad); in gst_rtpst_2022_1_fecenc_init()
787 gst_pad_set_chain_function (enc->sinkpad, gst_rtpst_2022_1_fecenc_sink_chain); in gst_rtpst_2022_1_fecenc_init()
788 gst_pad_set_event_function (enc->sinkpad, in gst_rtpst_2022_1_fecenc_init()
790 gst_pad_set_iterate_internal_links_function (enc->sinkpad, in gst_rtpst_2022_1_fecenc_init()
792 gst_element_add_pad (GST_ELEMENT (enc), enc->sinkpad); in gst_rtpst_2022_1_fecenc_init()
794 enc->d = 0; in gst_rtpst_2022_1_fecenc_init()
795 enc->l = 0; in gst_rtpst_2022_1_fecenc_init()