• Home
  • Raw
  • Download

Lines Matching refs:demux

378 static gboolean gst_dash_demux_seek (GstAdaptiveDemux * demux, GstEvent * seek);
393 demux);
395 demux, GstBuffer * buf);
399 static void gst_dash_demux_advance_period (GstAdaptiveDemux * demux);
400 static gboolean gst_dash_demux_has_next_period (GstAdaptiveDemux * demux);
401 static GstFlowReturn gst_dash_demux_data_received (GstAdaptiveDemux * demux,
404 gst_dash_demux_stream_fragment_start (GstAdaptiveDemux * demux,
407 gst_dash_demux_stream_fragment_finished (GstAdaptiveDemux * demux,
413 static gboolean gst_dash_demux_setup_all_streams (GstDashDemux * demux);
416 static GstCaps *gst_dash_demux_get_input_caps (GstDashDemux * demux,
418 static GstPad *gst_dash_demux_create_pad (GstDashDemux * demux,
421 demux);
423 static gboolean gst_dash_demux_poll_clock_drift (GstDashDemux * demux);
424 static GTimeSpan gst_dash_demux_get_clock_compensation (GstDashDemux * demux);
425 static GDateTime *gst_dash_demux_get_server_now_utc (GstDashDemux * demux);
452 GstDashDemux *demux = GST_DASH_DEMUX (obj); in gst_dash_demux_dispose() local
454 gst_dash_demux_reset (GST_ADAPTIVE_DEMUX_CAST (demux)); in gst_dash_demux_dispose()
456 if (demux->client) { in gst_dash_demux_dispose()
457 gst_mpd_client_free (demux->client); in gst_dash_demux_dispose()
458 demux->client = NULL; in gst_dash_demux_dispose()
461 g_mutex_clear (&demux->client_lock); in gst_dash_demux_dispose()
463 gst_dash_demux_clock_drift_free (demux->clock_drift); in gst_dash_demux_dispose()
464 demux->clock_drift = NULL; in gst_dash_demux_dispose()
465 g_free (demux->default_presentation_delay); in gst_dash_demux_dispose()
470 gst_dash_demux_get_live_seek_range (GstAdaptiveDemux * demux, gint64 * start, in gst_dash_demux_get_live_seek_range() argument
473 GstDashDemux *self = GST_DASH_DEMUX (demux); in gst_dash_demux_get_live_seek_range()
520 gst_dash_demux_get_presentation_offset (GstAdaptiveDemux * demux, in gst_dash_demux_get_presentation_offset() argument
524 GstDashDemux *dashdemux = GST_DASH_DEMUX_CAST (demux); in gst_dash_demux_get_presentation_offset()
531 gst_dash_demux_get_period_start_time (GstAdaptiveDemux * demux) in gst_dash_demux_get_period_start_time() argument
533 GstDashDemux *dashdemux = GST_DASH_DEMUX_CAST (demux); in gst_dash_demux_get_period_start_time()
660 gst_dash_demux_init (GstDashDemux * demux) in gst_dash_demux_init() argument
663 demux->max_buffering_time = DEFAULT_MAX_BUFFERING_TIME * GST_SECOND; in gst_dash_demux_init()
664 demux->max_bitrate = DEFAULT_MAX_BITRATE; in gst_dash_demux_init()
665 demux->max_video_width = DEFAULT_MAX_VIDEO_WIDTH; in gst_dash_demux_init()
666 demux->max_video_height = DEFAULT_MAX_VIDEO_HEIGHT; in gst_dash_demux_init()
667 demux->max_video_framerate_n = DEFAULT_MAX_VIDEO_FRAMERATE_N; in gst_dash_demux_init()
668 demux->max_video_framerate_d = DEFAULT_MAX_VIDEO_FRAMERATE_D; in gst_dash_demux_init()
669 demux->default_presentation_delay = g_strdup (DEFAULT_PRESENTATION_DELAY); in gst_dash_demux_init()
671 g_mutex_init (&demux->client_lock); in gst_dash_demux_init()
673 gst_adaptive_demux_set_stream_struct_size (GST_ADAPTIVE_DEMUX_CAST (demux), in gst_dash_demux_init()
682 GstDashDemux *demux = GST_DASH_DEMUX (object); in gst_dash_demux_set_property() local
686 demux->max_buffering_time = g_value_get_uint (value) * GST_SECOND; in gst_dash_demux_set_property()
692 demux->max_bitrate = g_value_get_uint (value); in gst_dash_demux_set_property()
695 demux->max_video_width = g_value_get_uint (value); in gst_dash_demux_set_property()
698 demux->max_video_height = g_value_get_uint (value); in gst_dash_demux_set_property()
701 demux->max_video_framerate_n = gst_value_get_fraction_numerator (value); in gst_dash_demux_set_property()
702 demux->max_video_framerate_d = gst_value_get_fraction_denominator (value); in gst_dash_demux_set_property()
705 g_free (demux->default_presentation_delay); in gst_dash_demux_set_property()
706 demux->default_presentation_delay = g_value_dup_string (value); in gst_dash_demux_set_property()
719 GstDashDemux *demux = GST_DASH_DEMUX (object); in gst_dash_demux_get_property() local
723 g_value_set_uint (value, demux->max_buffering_time / GST_SECOND); in gst_dash_demux_get_property()
729 g_value_set_uint (value, demux->max_bitrate); in gst_dash_demux_get_property()
732 g_value_set_uint (value, demux->max_video_width); in gst_dash_demux_get_property()
735 g_value_set_uint (value, demux->max_video_height); in gst_dash_demux_get_property()
738 gst_value_set_fraction (value, demux->max_video_framerate_n, in gst_dash_demux_get_property()
739 demux->max_video_framerate_d); in gst_dash_demux_get_property()
742 if (demux->default_presentation_delay == NULL) in gst_dash_demux_get_property()
745 g_value_set_string (value, demux->default_presentation_delay); in gst_dash_demux_get_property()
754 gst_dash_demux_setup_mpdparser_streams (GstDashDemux * demux, in gst_dash_demux_setup_mpdparser_streams() argument
769 GST_ELEMENT_ERROR (demux, STREAM, DEMUX, ("Manifest has no playable " in gst_dash_demux_setup_mpdparser_streams()
776 gst_dash_demux_setup_all_streams (GstDashDemux * demux) in gst_dash_demux_setup_all_streams() argument
780 GST_DEBUG_OBJECT (demux, "Setting up streams for period %d", in gst_dash_demux_setup_all_streams()
781 gst_mpd_client_get_period_index (demux->client)); in gst_dash_demux_setup_all_streams()
784 gst_mpd_client_active_streams_free (demux->client); in gst_dash_demux_setup_all_streams()
786 if (!gst_dash_demux_setup_mpdparser_streams (demux, demux->client)) { in gst_dash_demux_setup_all_streams()
790 GST_DEBUG_OBJECT (demux, "Creating stream objects"); in gst_dash_demux_setup_all_streams()
791 for (i = 0; i < gst_mpd_client_get_nb_active_stream (demux->client); i++) { in gst_dash_demux_setup_all_streams()
801 gst_mpd_client_get_active_stream_by_index (demux->client, i); in gst_dash_demux_setup_all_streams()
805 if (demux->trickmode_no_audio in gst_dash_demux_setup_all_streams()
807 GST_DEBUG_OBJECT (demux, in gst_dash_demux_setup_all_streams()
812 srcpad = gst_dash_demux_create_pad (demux, active_stream); in gst_dash_demux_setup_all_streams()
816 caps = gst_dash_demux_get_input_caps (demux, active_stream); in gst_dash_demux_setup_all_streams()
817 GST_LOG_OBJECT (demux, "Creating stream %d %" GST_PTR_FORMAT, i, caps); in gst_dash_demux_setup_all_streams()
845 gst_adaptive_demux_stream_new (GST_ADAPTIVE_DEMUX_CAST (demux), srcpad); in gst_dash_demux_setup_all_streams()
849 gst_mpd_client_has_isoff_ondemand_profile (demux->client); in gst_dash_demux_setup_all_streams()
870 GST_DEBUG_OBJECT (demux, "Adding ContentProtection events to source pad"); in gst_dash_demux_setup_all_streams()
918 GstDashDemux *demux = GST_DASH_DEMUX_CAST (ademux); in gst_dash_demux_get_duration() local
920 g_return_val_if_fail (demux->client != NULL, GST_CLOCK_TIME_NONE); in gst_dash_demux_get_duration()
922 return gst_mpd_client_get_media_presentation_duration (demux->client); in gst_dash_demux_get_duration()
928 GstDashDemux *demux = GST_DASH_DEMUX_CAST (ademux); in gst_dash_demux_is_live() local
930 g_return_val_if_fail (demux->client != NULL, FALSE); in gst_dash_demux_is_live()
932 return gst_mpd_client_is_live (demux->client); in gst_dash_demux_is_live()
936 gst_dash_demux_setup_streams (GstAdaptiveDemux * demux) in gst_dash_demux_setup_streams() argument
938 GstDashDemux *dashdemux = GST_DASH_DEMUX_CAST (demux); in gst_dash_demux_setup_streams()
950 GST_ERROR_OBJECT (demux, "MPD does not have availabilityStartTime"); in gst_dash_demux_setup_streams()
986 GST_DEBUG_OBJECT (demux, "Unable to find live period active at %s", in gst_dash_demux_setup_streams()
1006 GST_DEBUG_OBJECT (demux, "Seeking to current time of day for live stream "); in gst_dash_demux_setup_streams()
1012 GST_DEBUG_OBJECT (demux, "Seeking to first segment for on-demand stream "); in gst_dash_demux_setup_streams()
1025 gst_dash_demux_process_manifest (GstAdaptiveDemux * demux, GstBuffer * buf) in gst_dash_demux_process_manifest() argument
1027 GstDashDemux *dashdemux = GST_DASH_DEMUX_CAST (demux); in gst_dash_demux_process_manifest()
1035 gst_mpd_client_set_uri_downloader (dashdemux->client, demux->downloader); in gst_dash_demux_process_manifest()
1037 dashdemux->client->mpd_uri = g_strdup (demux->manifest_uri); in gst_dash_demux_process_manifest()
1038 dashdemux->client->mpd_base_uri = g_strdup (demux->manifest_base_uri); in gst_dash_demux_process_manifest()
1040 GST_DEBUG_OBJECT (demux, "Fetched MPD file at URI: %s (base: %s)", in gst_dash_demux_process_manifest()
1051 GST_ELEMENT_ERROR (demux, STREAM, DECODE, in gst_dash_demux_process_manifest()
1057 GST_WARNING_OBJECT (demux, "Failed to map manifest buffer"); in gst_dash_demux_process_manifest()
1061 ret = gst_dash_demux_setup_streams (demux); in gst_dash_demux_process_manifest()
1067 gst_dash_demux_create_pad (GstDashDemux * demux, GstActiveStream * stream) in gst_dash_demux_create_pad() argument
1075 name = g_strdup_printf ("audio_%02u", demux->n_audio_streams++); in gst_dash_demux_create_pad()
1079 name = g_strdup_printf ("video_%02u", demux->n_video_streams++); in gst_dash_demux_create_pad()
1084 name = g_strdup_printf ("subtitle_%02u", demux->n_subtitle_streams++); in gst_dash_demux_create_pad()
1102 GST_INFO_OBJECT (demux, "Creating srcpad %s:%s", GST_DEBUG_PAD_NAME (pad)); in gst_dash_demux_create_pad()
1109 GstDashDemux *demux = GST_DASH_DEMUX_CAST (ademux); in gst_dash_demux_reset() local
1111 GST_DEBUG_OBJECT (demux, "Resetting demux"); in gst_dash_demux_reset()
1113 demux->end_of_period = FALSE; in gst_dash_demux_reset()
1114 demux->end_of_manifest = FALSE; in gst_dash_demux_reset()
1116 if (demux->client) { in gst_dash_demux_reset()
1117 gst_mpd_client_free (demux->client); in gst_dash_demux_reset()
1118 demux->client = NULL; in gst_dash_demux_reset()
1120 gst_dash_demux_clock_drift_free (demux->clock_drift); in gst_dash_demux_reset()
1121 demux->clock_drift = NULL; in gst_dash_demux_reset()
1122 demux->client = gst_mpd_client_new (); in gst_dash_demux_reset()
1123 gst_mpd_client_set_uri_downloader (demux->client, ademux->downloader); in gst_dash_demux_reset()
1125 demux->n_audio_streams = 0; in gst_dash_demux_reset()
1126 demux->n_video_streams = 0; in gst_dash_demux_reset()
1127 demux->n_subtitle_streams = 0; in gst_dash_demux_reset()
1129 demux->trickmode_no_audio = FALSE; in gst_dash_demux_reset()
1130 demux->allow_trickmode_key_units = TRUE; in gst_dash_demux_reset()
1134 gst_dash_demux_get_video_input_caps (GstDashDemux * demux, in gst_dash_demux_get_video_input_caps() argument
1170 gst_dash_demux_get_audio_input_caps (GstDashDemux * demux, in gst_dash_demux_get_audio_input_caps() argument
1199 gst_dash_demux_get_application_input_caps (GstDashDemux * demux, in gst_dash_demux_get_application_input_caps() argument
1215 gst_dash_demux_get_input_caps (GstDashDemux * demux, GstActiveStream * stream) in gst_dash_demux_get_input_caps() argument
1219 return gst_dash_demux_get_video_input_caps (demux, stream); in gst_dash_demux_get_input_caps()
1221 return gst_dash_demux_get_audio_input_caps (demux, stream); in gst_dash_demux_get_input_caps()
1223 return gst_dash_demux_get_application_input_caps (demux, stream); in gst_dash_demux_get_input_caps()
1233 GstDashDemux *dashdemux = GST_DASH_DEMUX_CAST (stream->demux); in gst_dash_demux_stream_update_headers_info()
1264 GstDashDemux *dashdemux = GST_DASH_DEMUX_CAST (stream->demux); in gst_dash_demux_stream_update_fragment_info()
1356 if (stream->demux->segment.rate < 0.0) { in gst_dash_demux_stream_update_fragment_info()
1369 if (stream->demux->segment.rate < 0.0) in gst_dash_demux_stream_update_fragment_info()
1474 GstDashDemux *dashdemux = GST_DASH_DEMUX_CAST (stream->demux); in gst_dash_demux_stream_seek()
1556 GST_ADAPTIVE_DEMUX_IN_TRICKMODE_KEY_UNITS (stream->demux)) { in gst_dash_demux_stream_has_next_sync_sample()
1557 if (stream->demux->segment.rate > 0.0) { in gst_dash_demux_stream_has_next_sync_sample()
1576 if (stream->demux->segment.rate > 0.0) { in gst_dash_demux_stream_has_next_subfragment()
1607 if (stream->demux->segment.rate > 0.0) { in gst_dash_demux_stream_advance_sync_sample()
1658 if (stream->demux->segment.rate > 0.0) { in gst_dash_demux_stream_advance_sync_sample()
1701 if (stream->demux->segment.rate > 0.0) { in gst_dash_demux_stream_advance_subfragment()
1734 GstDashDemux *dashdemux = GST_DASH_DEMUX_CAST (stream->demux); in gst_dash_demux_stream_has_next_fragment()
1749 dashstream->active_stream, stream->demux->segment.rate > 0.0); in gst_dash_demux_stream_has_next_fragment()
1984 GstDashDemux *dashdemux = GST_DASH_DEMUX_CAST (stream->demux); in gst_dash_demux_stream_advance_fragment()
2058 if (stream->demux->segment.rate > 0.0) in gst_dash_demux_stream_advance_fragment()
2096 && GST_ADAPTIVE_DEMUX_IN_TRICKMODE_KEY_UNITS (stream->demux) && in gst_dash_demux_stream_advance_fragment()
2165 dashstream->active_stream, stream->demux->segment.rate > 0.0); in gst_dash_demux_stream_advance_fragment()
2177 GstAdaptiveDemux *base_demux = stream->demux; in gst_dash_demux_stream_select_bitrate()
2178 GstDashDemux *demux = GST_DASH_DEMUX_CAST (stream->demux); in gst_dash_demux_stream_select_bitrate() local
2188 if (GST_ADAPTIVE_DEMUX_IN_TRICKMODE_KEY_UNITS (demux)) { in gst_dash_demux_stream_select_bitrate()
2189 GST_DEBUG_OBJECT (demux, "In key-frame trick mode, not changing bitrates"); in gst_dash_demux_stream_select_bitrate()
2203 if (active_stream->mimeType == GST_STREAM_VIDEO && demux->max_bitrate) { in gst_dash_demux_stream_select_bitrate()
2204 bitrate = MIN (demux->max_bitrate, bitrate); in gst_dash_demux_stream_select_bitrate()
2212 demux->max_video_width, demux->max_video_height, in gst_dash_demux_stream_select_bitrate()
2213 demux->max_video_framerate_n, demux->max_video_framerate_d); in gst_dash_demux_stream_select_bitrate()
2217 bitrate / ABS (base_demux->segment.rate), demux->max_video_width, in gst_dash_demux_stream_select_bitrate()
2218 demux->max_video_height, demux->max_video_framerate_n, in gst_dash_demux_stream_select_bitrate()
2219 demux->max_video_framerate_d); in gst_dash_demux_stream_select_bitrate()
2228 GST_INFO_OBJECT (demux, "Changing representation idx: %d %d %u", in gst_dash_demux_stream_select_bitrate()
2230 if (gst_mpd_client_setup_representation (demux->client, active_stream, rep)) { in gst_dash_demux_stream_select_bitrate()
2233 GST_INFO_OBJECT (demux, "Switching bitrate to %d", in gst_dash_demux_stream_select_bitrate()
2235 caps = gst_dash_demux_get_input_caps (demux, active_stream); in gst_dash_demux_stream_select_bitrate()
2240 GST_WARNING_OBJECT (demux, "Can not switch representation, aborting..."); in gst_dash_demux_stream_select_bitrate()
2245 if (gst_mpd_client_has_isoff_ondemand_profile (demux->client) in gst_dash_demux_stream_select_bitrate()
2297 gst_dash_demux_seek (GstAdaptiveDemux * demux, GstEvent * seek) in gst_dash_demux_seek() argument
2309 GstDashDemux *dashdemux = GST_DASH_DEMUX_CAST (demux); in gst_dash_demux_seek()
2320 if (demux->segment.rate > 0.0) { in gst_dash_demux_seek()
2337 GST_DEBUG_OBJECT (demux, "Looking at period %u) start:%" in gst_dash_demux_seek()
2348 GST_WARNING_OBJECT (demux, "Could not find seeked Period"); in gst_dash_demux_seek()
2354 streams = demux->streams; in gst_dash_demux_seek()
2356 GST_DEBUG_OBJECT (demux, "Seeking to Period %d", current_period); in gst_dash_demux_seek()
2366 streams = demux->next_streams; in gst_dash_demux_seek()
2375 streams = demux->next_streams; in gst_dash_demux_seek()
2393 gst_dash_demux_get_manifest_update_interval (GstAdaptiveDemux * demux) in gst_dash_demux_get_manifest_update_interval() argument
2395 GstDashDemux *dashdemux = GST_DASH_DEMUX_CAST (demux); in gst_dash_demux_get_manifest_update_interval()
2401 gst_dash_demux_update_manifest_data (GstAdaptiveDemux * demux, in gst_dash_demux_update_manifest_data() argument
2404 GstDashDemux *dashdemux = GST_DASH_DEMUX_CAST (demux); in gst_dash_demux_update_manifest_data()
2408 GST_DEBUG_OBJECT (demux, "Updating manifest file from URL"); in gst_dash_demux_update_manifest_data()
2412 gst_mpd_client_set_uri_downloader (new_client, demux->downloader); in gst_dash_demux_update_manifest_data()
2413 new_client->mpd_uri = g_strdup (demux->manifest_uri); in gst_dash_demux_update_manifest_data()
2414 new_client->mpd_base_uri = g_strdup (demux->manifest_base_uri); in gst_dash_demux_update_manifest_data()
2427 GST_DEBUG_OBJECT (demux, "Updating manifest"); in gst_dash_demux_update_manifest_data()
2440 GST_DEBUG_OBJECT (demux, "Error setting up the updated manifest file"); in gst_dash_demux_update_manifest_data()
2447 GST_DEBUG_OBJECT (demux, "Error setting up the updated manifest file"); in gst_dash_demux_update_manifest_data()
2455 GST_ERROR_OBJECT (demux, "Failed to setup streams on manifest " "update"); in gst_dash_demux_update_manifest_data()
2463 if (demux->streams == NULL) { in gst_dash_demux_update_manifest_data()
2464 if (demux->prepared_streams) { in gst_dash_demux_update_manifest_data()
2465 streams = demux->prepared_streams; in gst_dash_demux_update_manifest_data()
2468 streams = demux->streams; in gst_dash_demux_update_manifest_data()
2480 GST_DEBUG_OBJECT (demux, in gst_dash_demux_update_manifest_data()
2511 demux->segment.rate >= 0, 0, ts, NULL); in gst_dash_demux_update_manifest_data()
2520 GST_DEBUG_OBJECT (demux, "Manifest file successfully updated"); in gst_dash_demux_update_manifest_data()
2528 GST_WARNING_OBJECT (demux, "Error parsing the manifest."); in gst_dash_demux_update_manifest_data()
2543 GstDashDemux *dashdemux = GST_DASH_DEMUX_CAST (stream->demux); in gst_dash_demux_stream_get_fragment_waiting_time()
2575 gst_dash_demux_has_next_period (GstAdaptiveDemux * demux) in gst_dash_demux_has_next_period() argument
2577 GstDashDemux *dashdemux = GST_DASH_DEMUX_CAST (demux); in gst_dash_demux_has_next_period()
2579 if (demux->segment.rate >= 0) in gst_dash_demux_has_next_period()
2586 gst_dash_demux_advance_period (GstAdaptiveDemux * demux) in gst_dash_demux_advance_period() argument
2588 GstDashDemux *dashdemux = GST_DASH_DEMUX_CAST (demux); in gst_dash_demux_advance_period()
2590 if (demux->segment.rate >= 0) { in gst_dash_demux_advance_period()
2621 gst_dash_demux_stream_fragment_start (GstAdaptiveDemux * demux, in gst_dash_demux_stream_fragment_start() argument
2624 GstDashDemux *dashdemux = GST_DASH_DEMUX_CAST (demux); in gst_dash_demux_stream_fragment_start()
2640 && GST_ADAPTIVE_DEMUX_IN_TRICKMODE_KEY_UNITS (demux) in gst_dash_demux_stream_fragment_start()
2648 gst_dash_demux_stream_fragment_finished (GstAdaptiveDemux * demux, in gst_dash_demux_stream_fragment_finished() argument
2651 GstDashDemux *dashdemux = GST_DASH_DEMUX_CAST (demux); in gst_dash_demux_stream_fragment_finished()
2661 && GST_ADAPTIVE_DEMUX_IN_TRICKMODE_KEY_UNITS (demux) in gst_dash_demux_stream_fragment_finished()
2683 return gst_adaptive_demux_stream_advance_fragment (demux, stream, in gst_dash_demux_stream_fragment_finished()
2690 GstDashDemux *dashdemux = (GstDashDemux *) stream->demux; in gst_dash_demux_need_another_chunk()
2698 && GST_ADAPTIVE_DEMUX_IN_TRICKMODE_KEY_UNITS (stream->demux) in gst_dash_demux_need_another_chunk()
2794 && GST_ADAPTIVE_DEMUX_IN_TRICKMODE_KEY_UNITS (stream->demux)) { in gst_dash_demux_need_another_chunk()
2805 gst_dash_demux_parse_isobmff (GstAdaptiveDemux * demux, in gst_dash_demux_parse_isobmff() argument
2809 GstDashDemux *dashdemux = GST_DASH_DEMUX_CAST (demux); in gst_dash_demux_parse_isobmff()
2946 demux->segment.rate >= 0, 0, dash_stream->pending_seek_ts, in gst_dash_demux_parse_isobmff()
2959 demux->segment.rate >= 0, GST_SEEK_FLAG_SNAP_BEFORE, in gst_dash_demux_parse_isobmff()
3039 gst_dash_demux_find_sync_samples (GstAdaptiveDemux * demux, in gst_dash_demux_find_sync_samples() argument
3042 GstDashDemux *dashdemux = (GstDashDemux *) stream->demux; in gst_dash_demux_find_sync_samples()
3223 || demux->segment.rate > 0.0); in gst_dash_demux_find_sync_samples()
3273 gst_dash_demux_handle_isobmff (GstAdaptiveDemux * demux, in gst_dash_demux_handle_isobmff() argument
3287 ret = gst_dash_demux_parse_isobmff (demux, dash_stream, &sidx_seek_needed); in gst_dash_demux_handle_isobmff()
3306 && gst_dash_demux_find_sync_samples (demux, stream) && in gst_dash_demux_handle_isobmff()
3307 GST_ADAPTIVE_DEMUX_IN_TRICKMODE_KEY_UNITS (stream->demux)) { in gst_dash_demux_handle_isobmff()
3388 && GST_ADAPTIVE_DEMUX_IN_TRICKMODE_KEY_UNITS (stream->demux)) { in gst_dash_demux_handle_isobmff()
3429 gst_adaptive_demux_stream_advance_fragment (demux, stream, in gst_dash_demux_handle_isobmff()
3436 return gst_dash_demux_handle_isobmff (demux, stream); in gst_dash_demux_handle_isobmff()
3443 gst_dash_demux_data_received (GstAdaptiveDemux * demux, in gst_dash_demux_data_received() argument
3476 ret = gst_dash_demux_handle_isobmff (demux, stream); in gst_dash_demux_data_received()
3524 gst_adaptive_demux_stream_advance_fragment (demux, stream, in gst_dash_demux_data_received()
3566 gst_dash_demux_clock_drift_new (GstDashDemux * demux) in gst_dash_demux_clock_drift_new() argument
3574 (GST_ADAPTIVE_DEMUX_CAST (demux))); in gst_dash_demux_clock_drift_new()
3851 gst_dash_demux_poll_clock_drift (GstDashDemux * demux) in gst_dash_demux_poll_clock_drift() argument
3862 g_return_val_if_fail (demux != NULL, FALSE); in gst_dash_demux_poll_clock_drift()
3863 g_return_val_if_fail (demux->clock_drift != NULL, FALSE); in gst_dash_demux_poll_clock_drift()
3864 clock_drift = demux->clock_drift; in gst_dash_demux_poll_clock_drift()
3867 (GST_ADAPTIVE_DEMUX_CAST (demux))); in gst_dash_demux_poll_clock_drift()
3878 urls = gst_mpd_client_get_utc_timing_sources (demux->client, in gst_dash_demux_poll_clock_drift()
3891 GST_ERROR_OBJECT (demux, "Failed to fetch time from NTP server %s", in gst_dash_demux_poll_clock_drift()
3898 gst_adaptive_demux_get_client_now_utc (GST_ADAPTIVE_DEMUX_CAST (demux)); in gst_dash_demux_poll_clock_drift()
3902 GST_DEBUG_OBJECT (demux, "Fetching current time from %s", in gst_dash_demux_poll_clock_drift()
3909 (demux)->downloader, urls[clock_drift->selected_url], NULL, TRUE, TRUE, in gst_dash_demux_poll_clock_drift()
3922 GST_ERROR_OBJECT (demux, "Failed to fetch time from %s", in gst_dash_demux_poll_clock_drift()
3926 end = gst_adaptive_demux_get_client_now_utc (GST_ADAPTIVE_DEMUX_CAST (demux)); in gst_dash_demux_poll_clock_drift()
3952 GST_DEBUG_OBJECT (demux, in gst_dash_demux_poll_clock_drift()
3958 GST_ERROR_OBJECT (demux, "Failed to parse DateTime from server"); in gst_dash_demux_poll_clock_drift()
3963 GST_ERROR_OBJECT (demux, "Failed to parse DateTime from server"); in gst_dash_demux_poll_clock_drift()
3988 gst_dash_demux_get_clock_compensation (GstDashDemux * demux) in gst_dash_demux_get_clock_compensation() argument
3991 if (demux->clock_drift) { in gst_dash_demux_get_clock_compensation()
3992 g_mutex_lock (&demux->clock_drift->clock_lock); in gst_dash_demux_get_clock_compensation()
3993 rv = demux->clock_drift->clock_compensation; in gst_dash_demux_get_clock_compensation()
3994 g_mutex_unlock (&demux->clock_drift->clock_lock); in gst_dash_demux_get_clock_compensation()
3996 GST_LOG_OBJECT (demux, "Clock drift %" GST_STIME_FORMAT, GST_STIME_ARGS (rv)); in gst_dash_demux_get_clock_compensation()
4001 gst_dash_demux_get_server_now_utc (GstDashDemux * demux) in gst_dash_demux_get_server_now_utc() argument
4007 gst_adaptive_demux_get_client_now_utc (GST_ADAPTIVE_DEMUX_CAST (demux)); in gst_dash_demux_get_server_now_utc()
4010 gst_dash_demux_get_clock_compensation (demux)); in gst_dash_demux_get_server_now_utc()