Lines Matching refs:mux
174 static void mpegtsmux_reset (MpegTsMux * mux, gboolean alloc);
180 static GstFlowReturn mpegtsmux_collect_packet (MpegTsMux * mux,
182 static GstFlowReturn mpegtsmux_push_packets (MpegTsMux * mux, gboolean force);
183 static gboolean new_packet_m2ts (MpegTsMux * mux, GstBuffer * buf,
186 static void mpegtsmux_prepare_srcpad (MpegTsMux * mux);
191 GstCollectData * data, GstBuffer * buf, MpegTsMux * mux);
201 static void mpegtsmux_set_header_on_caps (MpegTsMux * mux);
311 mpegtsmux_init (MpegTsMux * mux) in mpegtsmux_init() argument
313 mux->srcpad = in mpegtsmux_init()
315 gst_pad_use_fixed_caps (mux->srcpad); in mpegtsmux_init()
316 gst_pad_set_event_function (mux->srcpad, in mpegtsmux_init()
318 gst_element_add_pad (GST_ELEMENT (mux), mux->srcpad); in mpegtsmux_init()
320 mux->collect = gst_collect_pads_new (); in mpegtsmux_init()
321 gst_collect_pads_set_buffer_function (mux->collect, in mpegtsmux_init()
323 GST_DEBUG_FUNCPTR (mpegtsmux_collected_buffer), mux); in mpegtsmux_init()
325 gst_collect_pads_set_event_function (mux->collect, in mpegtsmux_init()
327 mux); in mpegtsmux_init()
328 gst_collect_pads_set_clip_function (mux->collect, (GstCollectPadsClipFunction) in mpegtsmux_init()
329 GST_DEBUG_FUNCPTR (mpegtsmux_clip_inc_running_time), mux); in mpegtsmux_init()
331 mux->adapter = gst_adapter_new (); in mpegtsmux_init()
332 mux->out_adapter = gst_adapter_new (); in mpegtsmux_init()
335 mux->m2ts_mode = MPEGTSMUX_DEFAULT_M2TS; in mpegtsmux_init()
336 mux->pat_interval = TSMUX_DEFAULT_PAT_INTERVAL; in mpegtsmux_init()
337 mux->pmt_interval = TSMUX_DEFAULT_PMT_INTERVAL; in mpegtsmux_init()
338 mux->si_interval = TSMUX_DEFAULT_SI_INTERVAL; in mpegtsmux_init()
339 mux->prog_map = NULL; in mpegtsmux_init()
340 mux->alignment = MPEGTSMUX_DEFAULT_ALIGNMENT; in mpegtsmux_init()
343 mpegtsmux_reset (mux, TRUE); in mpegtsmux_init()
377 mpegtsmux_reset (MpegTsMux * mux, gboolean alloc) in mpegtsmux_reset() argument
382 mux->first = TRUE; in mpegtsmux_reset()
383 mux->last_flow_ret = GST_FLOW_OK; in mpegtsmux_reset()
384 mux->previous_pcr = -1; in mpegtsmux_reset()
385 mux->previous_offset = 0; in mpegtsmux_reset()
386 mux->pcr_rate_num = mux->pcr_rate_den = 1; in mpegtsmux_reset()
387 mux->last_ts = 0; in mpegtsmux_reset()
388 mux->is_delta = TRUE; in mpegtsmux_reset()
389 mux->is_header = FALSE; in mpegtsmux_reset()
391 mux->streamheader_sent = FALSE; in mpegtsmux_reset()
392 mux->pending_key_unit_ts = GST_CLOCK_TIME_NONE; in mpegtsmux_reset()
393 gst_event_replace (&mux->force_key_unit_event, NULL); in mpegtsmux_reset()
395 mux->spn_count = 0; in mpegtsmux_reset()
397 if (mux->element_index) { in mpegtsmux_reset()
398 gst_object_unref (mux->element_index); in mpegtsmux_reset()
399 mux->element_index = NULL; in mpegtsmux_reset()
402 if (mux->adapter) in mpegtsmux_reset()
403 gst_adapter_clear (mux->adapter); in mpegtsmux_reset()
404 if (mux->out_adapter) in mpegtsmux_reset()
405 gst_adapter_clear (mux->out_adapter); in mpegtsmux_reset()
407 if (mux->tsmux) { in mpegtsmux_reset()
408 tsmux_free (mux->tsmux); in mpegtsmux_reset()
409 mux->tsmux = NULL; in mpegtsmux_reset()
412 if (mux->programs) { in mpegtsmux_reset()
413 g_hash_table_destroy (mux->programs); in mpegtsmux_reset()
415 mux->programs = g_hash_table_new (g_direct_hash, g_direct_equal); in mpegtsmux_reset()
417 while ((buf = g_queue_pop_head (&mux->streamheader))) in mpegtsmux_reset()
420 gst_event_replace (&mux->force_key_unit_event, NULL); in mpegtsmux_reset()
421 gst_buffer_replace (&mux->out_buffer, NULL); in mpegtsmux_reset()
423 if (mux->collect) { in mpegtsmux_reset()
424 GST_COLLECT_PADS_STREAM_LOCK (mux->collect); in mpegtsmux_reset()
425 for (walk = mux->collect->data; walk != NULL; walk = g_slist_next (walk)) in mpegtsmux_reset()
427 GST_COLLECT_PADS_STREAM_UNLOCK (mux->collect); in mpegtsmux_reset()
431 mux->tsmux = tsmux_new (); in mpegtsmux_reset()
432 tsmux_set_write_func (mux->tsmux, new_packet_cb, mux); in mpegtsmux_reset()
433 tsmux_set_alloc_func (mux->tsmux, alloc_packet_cb, mux); in mpegtsmux_reset()
440 MpegTsMux *mux = GST_MPEG_TSMUX (object); in mpegtsmux_dispose() local
442 mpegtsmux_reset (mux, FALSE); in mpegtsmux_dispose()
444 if (mux->adapter) { in mpegtsmux_dispose()
445 g_object_unref (mux->adapter); in mpegtsmux_dispose()
446 mux->adapter = NULL; in mpegtsmux_dispose()
448 if (mux->out_adapter) { in mpegtsmux_dispose()
449 g_object_unref (mux->out_adapter); in mpegtsmux_dispose()
450 mux->out_adapter = NULL; in mpegtsmux_dispose()
452 if (mux->collect) { in mpegtsmux_dispose()
453 gst_object_unref (mux->collect); in mpegtsmux_dispose()
454 mux->collect = NULL; in mpegtsmux_dispose()
456 if (mux->prog_map) { in mpegtsmux_dispose()
457 gst_structure_free (mux->prog_map); in mpegtsmux_dispose()
458 mux->prog_map = NULL; in mpegtsmux_dispose()
460 if (mux->programs) { in mpegtsmux_dispose()
461 g_hash_table_destroy (mux->programs); in mpegtsmux_dispose()
462 mux->programs = NULL; in mpegtsmux_dispose()
471 MpegTsMux *mux = GST_MPEG_TSMUX (object); in gst_mpegtsmux_set_property() local
477 mux->m2ts_mode = g_value_get_boolean (value); in gst_mpegtsmux_set_property()
482 if (mux->prog_map) { in gst_mpegtsmux_set_property()
483 gst_structure_free (mux->prog_map); in gst_mpegtsmux_set_property()
486 mux->prog_map = gst_structure_copy (s); in gst_mpegtsmux_set_property()
488 mux->prog_map = NULL; in gst_mpegtsmux_set_property()
492 mux->pat_interval = g_value_get_uint (value); in gst_mpegtsmux_set_property()
493 if (mux->tsmux) in gst_mpegtsmux_set_property()
494 tsmux_set_pat_interval (mux->tsmux, mux->pat_interval); in gst_mpegtsmux_set_property()
497 walk = mux->collect->data; in gst_mpegtsmux_set_property()
498 mux->pmt_interval = g_value_get_uint (value); in gst_mpegtsmux_set_property()
503 tsmux_set_pmt_interval (ts_data->prog, mux->pmt_interval); in gst_mpegtsmux_set_property()
508 mux->alignment = g_value_get_int (value); in gst_mpegtsmux_set_property()
511 mux->si_interval = g_value_get_uint (value); in gst_mpegtsmux_set_property()
512 tsmux_set_si_interval (mux->tsmux, mux->si_interval); in gst_mpegtsmux_set_property()
524 MpegTsMux *mux = GST_MPEG_TSMUX (object); in gst_mpegtsmux_get_property() local
528 g_value_set_boolean (value, mux->m2ts_mode); in gst_mpegtsmux_get_property()
531 gst_value_set_structure (value, mux->prog_map); in gst_mpegtsmux_get_property()
534 g_value_set_uint (value, mux->pat_interval); in gst_mpegtsmux_get_property()
537 g_value_set_uint (value, mux->pmt_interval); in gst_mpegtsmux_get_property()
540 g_value_set_int (value, mux->alignment); in gst_mpegtsmux_get_property()
543 g_value_set_uint (value, mux->si_interval); in gst_mpegtsmux_get_property()
555 MpegTsMux *mux = GST_MPEG_TSMUX (element);
557 GST_OBJECT_LOCK (mux);
558 if (mux->element_index)
559 gst_object_unref (mux->element_index);
560 mux->element_index = index ? gst_object_ref (index) : NULL;
561 GST_OBJECT_UNLOCK (mux);
563 GST_DEBUG_OBJECT (mux, "Set index %" GST_PTR_FORMAT, mux->element_index);
570 MpegTsMux *mux = GST_MPEG_TSMUX (element);
572 GST_OBJECT_LOCK (mux);
573 if (mux->element_index)
574 result = gst_object_ref (mux->element_index);
575 GST_OBJECT_UNLOCK (mux);
577 GST_DEBUG_OBJECT (mux, "Returning index %" GST_PTR_FORMAT, result);
590 mpegtsmux_create_stream (MpegTsMux * mux, MpegTsPadData * ts_data) in mpegtsmux_create_stream() argument
848 ts_data->stream = tsmux_create_stream (mux->tsmux, st, ts_data->pid, in mpegtsmux_create_stream()
886 GST_OBJECT_LOCK (mux); in mpegtsmux_create_stream()
887 if (mux->element_index) { in mpegtsmux_create_stream()
893 gst_index_get_writer_id (mux->element_index, GST_OBJECT (mux), in mpegtsmux_create_stream()
895 GST_DEBUG_OBJECT (mux, "created GstIndex writer_id = %d for stream", in mpegtsmux_create_stream()
897 gst_index_add_format (mux->element_index, in mpegtsmux_create_stream()
899 gst_index_add_format (mux->element_index, in mpegtsmux_create_stream()
907 GST_OBJECT_UNLOCK (mux); in mpegtsmux_create_stream()
923 mpegtsmux_create_streams (MpegTsMux * mux) in mpegtsmux_create_streams() argument
926 GSList *walk = mux->collect->data; in mpegtsmux_create_streams()
939 if (mux->prog_map != NULL && gst_structure_has_field (mux->prog_map, in mpegtsmux_create_streams()
942 gboolean ret = gst_structure_get_int (mux->prog_map, name, &idx); in mpegtsmux_create_streams()
944 GST_ELEMENT_ERROR (mux, STREAM, MUX, in mpegtsmux_create_streams()
949 GST_DEBUG_OBJECT (mux, "Program number %d associate with pad %s less " in mpegtsmux_create_streams()
961 g_hash_table_lookup (mux->programs, GINT_TO_POINTER (ts_data->prog_id)); in mpegtsmux_create_streams()
963 ts_data->prog = tsmux_program_new (mux->tsmux, ts_data->prog_id); in mpegtsmux_create_streams()
966 tsmux_set_pmt_interval (ts_data->prog, mux->pmt_interval); in mpegtsmux_create_streams()
967 g_hash_table_insert (mux->programs, in mpegtsmux_create_streams()
979 ret = mpegtsmux_create_stream (mux, ts_data); in mpegtsmux_create_streams()
986 if (mux->prog_map && gst_structure_has_field (mux->prog_map, pcr_name)) { in mpegtsmux_create_streams()
988 gst_structure_get_string (mux->prog_map, pcr_name); in mpegtsmux_create_streams()
991 GST_DEBUG_OBJECT (mux, "User specified stream (pid=%d) as PCR for " in mpegtsmux_create_streams()
1004 GST_ELEMENT_ERROR (mux, STREAM, MUX, in mpegtsmux_create_streams()
1010 GST_ELEMENT_ERROR (mux, STREAM, MUX, in mpegtsmux_create_streams()
1020 MpegTsMux *mux = GST_MPEG_TSMUX (user_data); in mpegtsmux_sink_event() local
1050 if (mux->force_key_unit_event != NULL) { in mpegtsmux_sink_event()
1051 GST_INFO_OBJECT (mux, "skipping downstream force key unit event " in mpegtsmux_sink_event()
1059 mux->pending_key_unit_ts = running_time; in mpegtsmux_sink_event()
1060 gst_event_replace (&mux->force_key_unit_event, event); in mpegtsmux_sink_event()
1067 GST_DEBUG_OBJECT (mux, "received tag event"); in mpegtsmux_sink_event()
1109 mux->first = TRUE; in mpegtsmux_sink_event()
1112 tsmux_resend_pat (mux->tsmux); in mpegtsmux_sink_event()
1113 tsmux_resend_si (mux->tsmux); in mpegtsmux_sink_event()
1116 for (cur = mux->tsmux->programs; cur; cur = cur->next) { in mpegtsmux_sink_event()
1139 MpegTsMux *mux = GST_MPEG_TSMUX (parent); in mpegtsmux_src_event() local
1161 GST_INFO_OBJECT (mux, "received upstream force-key-unit event, " in mpegtsmux_src_event()
1169 mux->pending_key_unit_ts = running_time; in mpegtsmux_src_event()
1170 gst_event_replace (&mux->force_key_unit_event, event); in mpegtsmux_src_event()
1172 iter = gst_element_iterate_sink_pads (GST_ELEMENT_CAST (mux)); in mpegtsmux_src_event()
1187 GST_INFO_OBJECT (mux, "result %d", tmp); in mpegtsmux_src_event()
1339 GstBuffer * buf, MpegTsMux * mux) in mpegtsmux_collected_buffer() argument
1349 GST_DEBUG_OBJECT (mux, "Pads collected"); in mpegtsmux_collected_buffer()
1351 if (G_UNLIKELY (mux->first)) { in mpegtsmux_collected_buffer()
1352 ret = mpegtsmux_create_streams (mux); in mpegtsmux_collected_buffer()
1359 mpegtsmux_prepare_srcpad (mux); in mpegtsmux_collected_buffer()
1361 mux->first = FALSE; in mpegtsmux_collected_buffer()
1366 GST_INFO_OBJECT (mux, "EOS"); in mpegtsmux_collected_buffer()
1368 new_packet_m2ts (mux, NULL, -1); in mpegtsmux_collected_buffer()
1369 mpegtsmux_push_packets (mux, TRUE); in mpegtsmux_collected_buffer()
1370 gst_pad_push_event (mux->srcpad, gst_event_new_eos ()); in mpegtsmux_collected_buffer()
1387 tmp = best->prepare_func (buf, best, mux); in mpegtsmux_collected_buffer()
1393 if (mux->force_key_unit_event != NULL && best->stream->is_video_stream) { in mpegtsmux_collected_buffer()
1396 event = check_pending_key_unit_event (mux->force_key_unit_event, in mpegtsmux_collected_buffer()
1398 GST_BUFFER_FLAGS (buf), mux->pending_key_unit_ts); in mpegtsmux_collected_buffer()
1404 mux->pending_key_unit_ts = GST_CLOCK_TIME_NONE; in mpegtsmux_collected_buffer()
1405 gst_event_replace (&mux->force_key_unit_event, NULL); in mpegtsmux_collected_buffer()
1410 GST_INFO_OBJECT (mux, "pushing downstream force-key-unit event %d " in mpegtsmux_collected_buffer()
1413 gst_pad_push_event (mux->srcpad, event); in mpegtsmux_collected_buffer()
1416 tsmux_resend_pat (mux->tsmux); in mpegtsmux_collected_buffer()
1417 tsmux_resend_si (mux->tsmux); in mpegtsmux_collected_buffer()
1420 for (cur = mux->tsmux->programs; cur; cur = cur->next) { in mpegtsmux_collected_buffer()
1443 GST_DEBUG_OBJECT (mux, "Buffer has PTS %" GST_TIME_FORMAT " pts %" in mpegtsmux_collected_buffer()
1449 GST_DEBUG_OBJECT (mux, "Buffer has DTS %" GST_STIME_FORMAT " dts %" in mpegtsmux_collected_buffer()
1455 GST_DEBUG_OBJECT (mux, "using DTS for unknown PTS"); in mpegtsmux_collected_buffer()
1463 GST_OBJECT_LOCK (mux); in mpegtsmux_collected_buffer()
1464 if (mux->element_index && !delta && best->element_index_writer_id != -1) { in mpegtsmux_collected_buffer()
1465 gst_index_add_association (mux->element_index, in mpegtsmux_collected_buffer()
1467 GST_ASSOCIATION_FLAG_KEY_UNIT, spn_format, mux->spn_count, in mpegtsmux_collected_buffer()
1470 GST_OBJECT_UNLOCK (mux); in mpegtsmux_collected_buffer()
1475 GST_WARNING_OBJECT (mux, "KLV meta unit too big, splitting not supported"); in mpegtsmux_collected_buffer()
1481 GST_DEBUG_OBJECT (mux, "delta: %d", delta); in mpegtsmux_collected_buffer()
1490 mux->last_ts = in mpegtsmux_collected_buffer()
1495 mux->is_delta = delta; in mpegtsmux_collected_buffer()
1496 mux->is_header = header; in mpegtsmux_collected_buffer()
1498 if (!tsmux_write_stream_packet (mux->tsmux, best->stream)) { in mpegtsmux_collected_buffer()
1500 GST_DEBUG_OBJECT (mux, "Failed to write data packet"); in mpegtsmux_collected_buffer()
1501 GST_ELEMENT_ERROR (mux, STREAM, MUX, in mpegtsmux_collected_buffer()
1508 return mpegtsmux_push_packets (mux, FALSE); in mpegtsmux_collected_buffer()
1513 return mux->last_flow_ret; in mpegtsmux_collected_buffer()
1519 GST_ELEMENT_ERROR (mux, STREAM, MUX, in mpegtsmux_collected_buffer()
1531 MpegTsMux *mux = GST_MPEG_TSMUX (element); in mpegtsmux_request_new_pad() local
1538 if (tsmux_find_stream (mux->tsmux, pid)) in mpegtsmux_request_new_pad()
1541 pid = tsmux_get_new_pid (mux->tsmux); in mpegtsmux_request_new_pad()
1549 gst_collect_pads_add_pad (mux->collect, pad, sizeof (MpegTsPadData), in mpegtsmux_request_new_pad()
1573 gst_collect_pads_remove_pad (mux->collect, pad); in mpegtsmux_request_new_pad()
1589 MpegTsMux *mux = GST_MPEG_TSMUX (element); in mpegtsmux_release_pad() local
1591 GST_DEBUG_OBJECT (mux, "Pad %" GST_PTR_FORMAT " being released", pad); in mpegtsmux_release_pad()
1593 if (mux->collect) { in mpegtsmux_release_pad()
1594 gst_collect_pads_remove_pad (mux->collect, pad); in mpegtsmux_release_pad()
1602 new_packet_common_init (MpegTsMux * mux, GstBuffer * buf, guint8 * data, in new_packet_common_init() argument
1608 if (!mux->streamheader_sent && data) { in new_packet_common_init()
1620 GST_LOG_OBJECT (mux, in new_packet_common_init()
1623 g_queue_push_tail (&mux->streamheader, hbuf); in new_packet_common_init()
1624 } else if (!g_queue_is_empty (&mux->streamheader)) { in new_packet_common_init()
1625 mpegtsmux_set_header_on_caps (mux); in new_packet_common_init()
1626 mux->streamheader_sent = TRUE; in new_packet_common_init()
1631 if (mux->is_header) { in new_packet_common_init()
1632 GST_LOG_OBJECT (mux, "marking as header buffer"); in new_packet_common_init()
1635 if (mux->is_delta) { in new_packet_common_init()
1636 GST_LOG_OBJECT (mux, "marking as delta unit"); in new_packet_common_init()
1639 GST_DEBUG_OBJECT (mux, "marking as non-delta unit"); in new_packet_common_init()
1640 mux->is_delta = TRUE; in new_packet_common_init()
1646 mpegtsmux_push_packets (MpegTsMux * mux, gboolean force) in mpegtsmux_push_packets() argument
1649 gint align = mux->alignment; in mpegtsmux_push_packets()
1652 if (mux->m2ts_mode) { in mpegtsmux_push_packets()
1662 av = gst_adapter_available (mux->out_adapter); in mpegtsmux_push_packets()
1663 GST_LOG_OBJECT (mux, "align %d, av %d", align, av); in mpegtsmux_push_packets()
1670 buffer_list = gst_adapter_take_buffer_list (mux->out_adapter, av); in mpegtsmux_push_packets()
1671 return gst_pad_push_list (mux->srcpad, buffer_list); in mpegtsmux_push_packets()
1681 GST_LOG_OBJECT (mux, "aligning to %d bytes", align); in mpegtsmux_push_packets()
1686 pts = gst_adapter_prev_pts (mux->out_adapter, NULL); in mpegtsmux_push_packets()
1687 buf = gst_adapter_take_buffer (mux->out_adapter, align); in mpegtsmux_push_packets()
1703 GST_LOG_OBJECT (mux, "handling %d leftover bytes", av); in mpegtsmux_push_packets()
1705 pts = gst_adapter_prev_pts (mux->out_adapter, NULL); in mpegtsmux_push_packets()
1713 gst_adapter_copy (mux->out_adapter, data, 0, av); in mpegtsmux_push_packets()
1714 gst_adapter_clear (mux->out_adapter); in mpegtsmux_push_packets()
1720 GST_LOG_OBJECT (mux, "adding %d null packets", dummy); in mpegtsmux_push_packets()
1747 return gst_pad_push_list (mux->srcpad, buffer_list); in mpegtsmux_push_packets()
1751 mpegtsmux_collect_packet (MpegTsMux * mux, GstBuffer * buf) in mpegtsmux_collect_packet() argument
1753 GST_LOG_OBJECT (mux, "collecting packet size %" G_GSIZE_FORMAT, in mpegtsmux_collect_packet()
1755 gst_adapter_push (mux->out_adapter, buf); in mpegtsmux_collect_packet()
1761 new_packet_m2ts (MpegTsMux * mux, GstBuffer * buf, gint64 new_pcr) in new_packet_m2ts() argument
1767 GST_LOG_OBJECT (mux, "Have buffer %p with new_pcr=%" G_GINT64_FORMAT, in new_packet_m2ts()
1770 chunk_bytes = gst_adapter_available (mux->adapter); in new_packet_m2ts()
1776 GST_LOG_OBJECT (mux, "Accumulating non-PCR packet"); in new_packet_m2ts()
1777 gst_adapter_push (mux->adapter, buf); in new_packet_m2ts()
1783 if (mux->previous_pcr < 0 && chunk_bytes) { in new_packet_m2ts()
1784 mux->previous_pcr = new_pcr; in new_packet_m2ts()
1785 mux->previous_offset = chunk_bytes; in new_packet_m2ts()
1786 GST_LOG_OBJECT (mux, "Accumulating non-PCR packet"); in new_packet_m2ts()
1787 gst_adapter_push (mux->adapter, buf); in new_packet_m2ts()
1795 if (chunk_bytes && (new_pcr != mux->previous_pcr)) { in new_packet_m2ts()
1798 GST_LOG_OBJECT (mux, "Processing pending packets; " in new_packet_m2ts()
1801 mux->previous_pcr, (gint) mux->previous_offset, in new_packet_m2ts()
1804 g_assert (chunk_bytes > mux->previous_offset); in new_packet_m2ts()
1807 mux->pcr_rate_num = new_pcr - mux->previous_pcr; in new_packet_m2ts()
1808 mux->pcr_rate_den = chunk_bytes - mux->previous_offset; in new_packet_m2ts()
1818 if (G_LIKELY (offset >= mux->previous_offset)) in new_packet_m2ts()
1819 cur_pcr = mux->previous_pcr + in new_packet_m2ts()
1820 gst_util_uint64_scale (offset - mux->previous_offset, in new_packet_m2ts()
1821 mux->pcr_rate_num, mux->pcr_rate_den); in new_packet_m2ts()
1823 cur_pcr = mux->previous_pcr - in new_packet_m2ts()
1824 gst_util_uint64_scale (mux->previous_offset - offset, in new_packet_m2ts()
1825 mux->pcr_rate_num, mux->pcr_rate_den); in new_packet_m2ts()
1828 ts = gst_adapter_prev_pts (mux->adapter, NULL); in new_packet_m2ts()
1829 out_buf = gst_adapter_take_buffer (mux->adapter, M2TS_PACKET_LENGTH); in new_packet_m2ts()
1842 GST_LOG_OBJECT (mux, "Outputting a packet of length %d PCR %" in new_packet_m2ts()
1844 mpegtsmux_collect_packet (mux, out_buf); in new_packet_m2ts()
1859 GST_LOG_OBJECT (mux, "Outputting a packet of length %d PCR %" in new_packet_m2ts()
1861 mpegtsmux_collect_packet (mux, buf); in new_packet_m2ts()
1863 if (new_pcr != mux->previous_pcr) { in new_packet_m2ts()
1864 mux->previous_pcr = new_pcr; in new_packet_m2ts()
1865 mux->previous_offset = -M2TS_PACKET_LENGTH; in new_packet_m2ts()
1877 MpegTsMux *mux = (MpegTsMux *) user_data; in new_packet_cb() local
1882 GST_LOG_OBJECT (mux, "handling packet %d", mux->spn_count); in new_packet_cb()
1883 mux->spn_count++; in new_packet_cb()
1886 if (mux->m2ts_mode) { in new_packet_cb()
1898 GST_BUFFER_PTS (buf) = mux->last_ts; in new_packet_cb()
1900 new_packet_common_init (mux, buf, map.data + offset, map.size); in new_packet_cb()
1906 return new_packet_m2ts (mux, buf, new_pcr); in new_packet_cb()
1908 mpegtsmux_collect_packet (mux, buf); in new_packet_cb()
1917 MpegTsMux *mux = (MpegTsMux *) user_data; in alloc_packet_cb() local
1921 if (mux->m2ts_mode == TRUE) in alloc_packet_cb()
1931 mpegtsmux_set_header_on_caps (MpegTsMux * mux) in mpegtsmux_set_header_on_caps() argument
1939 caps = gst_caps_make_writable (gst_pad_get_current_caps (mux->srcpad)); in mpegtsmux_set_header_on_caps()
1944 GST_LOG_OBJECT (mux, "setting %u packets into streamheader", in mpegtsmux_set_header_on_caps()
1945 g_queue_get_length (&mux->streamheader)); in mpegtsmux_set_header_on_caps()
1947 while ((buf = g_queue_pop_head (&mux->streamheader))) { in mpegtsmux_set_header_on_caps()
1955 gst_pad_set_caps (mux->srcpad, caps); in mpegtsmux_set_header_on_caps()
1961 mpegtsmux_prepare_srcpad (MpegTsMux * mux) in mpegtsmux_prepare_srcpad() argument
1970 (mux->m2ts_mode ? M2TS_PACKET_LENGTH : NORMAL_TS_PACKET_LENGTH), in mpegtsmux_prepare_srcpad()
1975 gst_pad_push_event (mux->srcpad, gst_event_new_stream_start (s_id)); in mpegtsmux_prepare_srcpad()
1981 gst_pad_set_caps (mux->srcpad, caps); in mpegtsmux_prepare_srcpad()
1984 if (!gst_pad_push_event (mux->srcpad, new_seg)) { in mpegtsmux_prepare_srcpad()
1985 GST_WARNING_OBJECT (mux, "New segment event was not handled downstream"); in mpegtsmux_prepare_srcpad()
1992 MpegTsMux *mux = GST_MPEG_TSMUX (element); in mpegtsmux_change_state() local
1999 gst_collect_pads_start (mux->collect); in mpegtsmux_change_state()
2004 gst_collect_pads_stop (mux->collect); in mpegtsmux_change_state()
2018 mpegtsmux_reset (mux, TRUE); in mpegtsmux_change_state()
2033 MpegTsMux *mux = GST_MPEG_TSMUX (element); in mpegtsmux_send_event() local
2042 tsmux_add_mpegts_si_section (mux->tsmux, section); in mpegtsmux_send_event()