mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-23 18:21:04 +00:00
mpdparser: remove gst_mpd_client_check_time_position
https://bugzilla.gnome.org/show_bug.cgi?id=758593
This commit is contained in:
parent
b902c4a293
commit
9a7bf5fbf1
3 changed files with 0 additions and 75 deletions
|
@ -5747,69 +5747,6 @@ gst_mpd_client_get_next_segment_availability_end_time (GstMpdClient * client,
|
|||
return rv;
|
||||
}
|
||||
|
||||
gint
|
||||
gst_mpd_client_check_time_position (GstMpdClient * client,
|
||||
GstActiveStream * stream, GstClockTime ts, gint64 * diff)
|
||||
{
|
||||
GDateTime *now = g_date_time_new_now_utc ();
|
||||
GDateTime *start =
|
||||
gst_date_time_to_g_date_time (client->mpd_node->availabilityStartTime);
|
||||
GTimeSpan stream_now;
|
||||
GTimeSpan ts_microseconds;
|
||||
GstClockTime duration;
|
||||
|
||||
g_return_val_if_fail (gst_mpd_client_is_live (client), 0);
|
||||
|
||||
duration = gst_mpd_client_get_segment_duration (client, stream, NULL);
|
||||
stream_now = g_date_time_difference (now, start);
|
||||
g_date_time_unref (now);
|
||||
g_date_time_unref (start);
|
||||
|
||||
/* sum duration to check if the segment is fully ready */
|
||||
ts_microseconds = (ts + duration) / GST_USECOND;
|
||||
|
||||
/*
|
||||
* This functions checks if a given ts is in the 'available range' of
|
||||
* a DASH presentation. This only makes sense for live streams, which
|
||||
* are continuously adding new segments and removing old ones.
|
||||
*
|
||||
* Note: Both the client and the server should use UTC as a time reference.
|
||||
*
|
||||
* @ts is the time since the beginning of the stream and we need to find out
|
||||
* if it is currently available. The server should be hosting segments
|
||||
*
|
||||
* * ---------------- ... --- * ----------- * ---- ...
|
||||
* |
|
||||
* | past(unavailable) | | available | future(unavailable yet)
|
||||
* |
|
||||
* * ---------------- ... --- * ----------- * ---- ...
|
||||
* | | |
|
||||
* availabilitStartTime | UTC now
|
||||
* UTC now - timeShiftBufferDepth
|
||||
*
|
||||
* This function should return 0 if @ts is in the 'available' area, 1 for
|
||||
* 'future' and '-1' for past and the corresponding distance to the
|
||||
* 'available' area is set to @diff
|
||||
*
|
||||
* TODO untested with live presentations with multiple periods as no
|
||||
* examples for it could be found/generated
|
||||
*/
|
||||
|
||||
if (ts_microseconds > stream_now) {
|
||||
*diff = ts_microseconds - stream_now;
|
||||
return 1;
|
||||
}
|
||||
if (client->mpd_node->timeShiftBufferDepth != -1
|
||||
&& ts_microseconds <
|
||||
stream_now - client->mpd_node->timeShiftBufferDepth) {
|
||||
*diff = ts_microseconds - stream_now;
|
||||
return -1;
|
||||
}
|
||||
|
||||
*diff = 0;
|
||||
return 0;
|
||||
}
|
||||
|
||||
gboolean
|
||||
gst_mpd_client_seek_to_time (GstMpdClient * client, GDateTime * time)
|
||||
{
|
||||
|
|
|
@ -546,7 +546,6 @@ gboolean gst_mpd_client_get_next_header_index (GstMpdClient *client, gchar **uri
|
|||
gboolean gst_mpd_client_is_live (GstMpdClient * client);
|
||||
gboolean gst_mpd_client_stream_seek (GstMpdClient * client, GstActiveStream * stream, GstClockTime ts);
|
||||
gboolean gst_mpd_client_seek_to_time (GstMpdClient * client, GDateTime * time);
|
||||
gint gst_mpd_client_check_time_position (GstMpdClient * client, GstActiveStream * stream, GstClockTime ts, gint64 * diff);
|
||||
GstClockTime gst_mpd_parser_get_stream_presentation_offset (GstMpdClient *client, guint stream_idx);
|
||||
gchar** gst_mpd_client_get_utc_timing_sources (GstMpdClient *client, guint methods, GstMPDUTCTimingType *selected_method);
|
||||
GstClockTime gst_mpd_parser_get_period_start_time (GstMpdClient *client);
|
||||
|
|
|
@ -3845,8 +3845,6 @@ GST_START_TEST (dash_mpdparser_segments)
|
|||
GstDateTime *segmentEndTime;
|
||||
GstDateTime *gst_time;
|
||||
GDateTime *g_time;
|
||||
GstClockTime ts;
|
||||
gint64 diff;
|
||||
|
||||
const gchar *xml =
|
||||
"<?xml version=\"1.0\"?>"
|
||||
|
@ -3968,15 +3966,6 @@ GST_START_TEST (dash_mpdparser_segments)
|
|||
gst_mpd_client_has_next_segment (mpdclient, activeStream, TRUE);
|
||||
assert_equals_int (hasNextSegment, 1);
|
||||
|
||||
/* check if stream at moment ts is available.
|
||||
* timeShiftBufferDepth was not set, so it is considered infinite.
|
||||
* All segments from the past must be available
|
||||
*/
|
||||
ts = 30 * GST_SECOND;
|
||||
ret = gst_mpd_client_check_time_position (mpdclient, activeStream, ts, &diff);
|
||||
assert_equals_int (ret, 0);
|
||||
assert_equals_int64 (diff, 0);
|
||||
|
||||
gst_mpd_client_free (mpdclient);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue