## gstrtsprange gstrtsprange — dealing with time ranges |

## Functions

GstRTSPResult | gst_rtsp_range_parse ()
gboolean | gst_rtsp_range_get_times ()
gchar * | gst_rtsp_range_to_string ()
gboolean | gst_rtsp_range_convert_units ()
void | gst_rtsp_range_free ()

## Types and Values

enum | GstRTSPRangeUnit
struct | GstRTSPTimeRange
struct | GstRTSPTime
struct | GstRTSPTime2
enum | GstRTSPTimeType

## Includes

    #include <gst/rtsp/gstrtsprange.h>

## Description

Provides helper functions to deal with time ranges.

## Functions

### gst_rtsp_range_parse ()

    GstRTSPResult
    gst_rtsp_range_parse (const gchar *rangestr,
                          GstRTSPTimeRange **range);

Parse `rangestr` to a GstRTSPTimeRange.

#### Parameters

rangestr | a range string to parse |
range | location to hold the GstRTSPTimeRange result |

#### Returns

GST_RTSP_OK on success.

### gst_rtsp_range_get_times ()

    gboolean
    gst_rtsp_range_get_times (const GstRTSPTimeRange *range,
                              GstClockTime *min,
                              GstClockTime *max);

Retrieve the minimum and maximum values from `range` converted to GstClockTime in `min` and `max` .

A value of `GST_CLOCK_TIME_NONE` will be used to signal GST_RTSP_TIME_NOW and GST_RTSP_TIME_END for `min` and `max` respectively.

UTC times will be converted to nanoseconds since 1900.

#### Parameters

range | a GstRTSPTimeRange |
min | result minimum GstClockTime |
max | result maximum GstClockTime |

#### Returns

`TRUE` on success.

Since 1.2

### gst_rtsp_range_to_string ()

    gchar *
    gst_rtsp_range_to_string (const GstRTSPTimeRange *range);

Convert `range` into a string representation.

#### Parameters

range | a GstRTSPTimeRange |

#### Returns

The string representation of `range` . `g_free()` after usage.

### gst_rtsp_range_convert_units ()

    gboolean
    gst_rtsp_range_convert_units (GstRTSPTimeRange *range,
                                  GstRTSPRangeUnit unit);

Converts the range in-place between different types of units. Ranges containing the special value GST_RTSP_TIME_NOW can not be converted as these are only valid for GST_RTSP_RANGE_NPT.

#### Parameters

range | a GstRTSPTimeRange |
unit | the unit to convert the range into |

#### Returns

`TRUE` if the range could be converted

### gst_rtsp_range_free ()

    void
    gst_rtsp_range_free (GstRTSPTimeRange *range);

Free the memory allocated by `range` .

#### Parameters

range | a GstRTSPTimeRange |

## Types and Values

### enum GstRTSPRangeUnit

Different possible time range units.

#### Members

GST_RTSP_RANGE_SMPTE | SMPTE timecode |
GST_RTSP_RANGE_SMPTE_30_DROP | 29.97 frames per second |
GST_RTSP_RANGE_SMPTE_25 | 25 frames per second |
GST_RTSP_RANGE_NPT | Normal play time |
GST_RTSP_RANGE_CLOCK | Absolute time expressed as ISO 8601 timestamps |

### struct GstRTSPTimeRange

    struct GstRTSPTimeRange {
      GstRTSPRangeUnit unit;

      GstRTSPTime  min;
      GstRTSPTime  max;
      GstRTSPTime2 min2;
      GstRTSPTime2 max2;
    };

A time range.

#### Members

GstRTSPRangeUnit `unit`; | the time units used |
GstRTSPTime `min`; | the minimum interval |
GstRTSPTime `max`; | the maximum interval |
GstRTSPTime2 `min2`; | extra fields in the minimum interval (Since: 1.2) |
GstRTSPTime2 `max2`; | extra fields in the maximum interval (Since: 1.2) |

### struct GstRTSPTime

    struct GstRTSPTime {
      GstRTSPTimeType type;
      gdouble         seconds;
    };

A time indication.

#### Members

GstRTSPTimeType `type`; | the time of the time |
gdouble `seconds`; | seconds when `type` is GST_RTSP_TIME_SECONDS, GST_RTSP_TIME_UTC and GST_RTSP_TIME_FRAMES |

### struct GstRTSPTime2

    struct GstRTSPTime2 {
      gdouble         frames;
      guint           year;
      guint           month;
      guint           day;
    };

Extra fields for a time indication.

#### Members

gdouble `frames`; | frames and subframes when type in GstRTSPTime is GST_RTSP_TIME_FRAMES |
guint `year`; | year when type is GST_RTSP_TIME_UTC |
guint `month`; | month when type is GST_RTSP_TIME_UTC |
guint `day`; | day when type is GST_RTSP_TIME_UTC |

Since 1.2

### enum GstRTSPTimeType

Possible time types.

#### Members

GST_RTSP_TIME_SECONDS | seconds |
GST_RTSP_TIME_NOW | now |
GST_RTSP_TIME_END | end |
GST_RTSP_TIME_FRAMES | frames and subframes |
GST_RTSP_TIME_UTC | UTC time |