# ProducerReferenceTime

Artifact: [androidx.media3:media3-exoplayer-dash](https://developer.android.com/jetpack/androidx/releases/media3) [View Source](https://cs.android.com/search?q=file:androidx/media3/exoplayer/dash/manifest/ProducerReferenceTime.java+class:androidx.media3.exoplayer.dash.manifest.ProducerReferenceTime)

*** ** * ** ***


```
@UnstableApi
public final class ProducerReferenceTime
```

<br />

*** ** * ** ***

Represents a parsed ProducerReferenceTime element as defined in ISO/IEC 23009-1:2022 Section 5.12.

## Summary

| ### Nested types |
|---|
| `@https://developer.android.com/reference/java/lang/annotation/Documented.html @https://developer.android.com/reference/java/lang/annotation/Retention.html(value = https://developer.android.com/reference/java/lang/annotation/RetentionPolicy.html#SOURCE) @https://developer.android.com/reference/java/lang/annotation/Target.html(value = https://developer.android.com/reference/java/lang/annotation/ElementType.html#TYPE_USE) @https://developer.android.com/reference/androidx/annotation/IntDef(value = ) public annotation https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/ProducerReferenceTime.ProducerReferenceTimeType` The type of the producer reference time source clock. |

| ### Constants |
|---|---|
| `static final long` | `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/ProducerReferenceTime#ID_UNSET() = -1` Value of `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/ProducerReferenceTime#id()` indicating no value is set. |
| `static final int` | `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/ProducerReferenceTime#TYPE_APPLICATION() = 2` Indicates wall-clock time was established at the application level. |
| `static final int` | `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/ProducerReferenceTime#TYPE_CAPTURED() = 1` Indicates wall-clock time was established when the media was captured. |
| `static final int` | `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/ProducerReferenceTime#TYPE_ENCODER() = 0` Indicates wall-clock time was established at the encoder. |

| ### Public fields |
|---|---|
| `final @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/java/lang/String.html` | `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/ProducerReferenceTime#applicationScheme()` The application scheme URI if `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/ProducerReferenceTime#type()` is `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/ProducerReferenceTime#TYPE_APPLICATION()`, or `null` otherwise. |
| `final long` | `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/ProducerReferenceTime#id()` An identifier for the producer reference time, or `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/ProducerReferenceTime#ID_UNSET()` if not specified. |
| `final boolean` | `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/ProducerReferenceTime#inband()` Whether the producer reference time is also present inband in the media segments. |
| `final long` | `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/ProducerReferenceTime#presentationTime()` The media presentation time corresponding to `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/ProducerReferenceTime#wallClockTimeMs()`, in the track's timescale, or `https://developer.android.com/reference/androidx/media3/common/C#TIME_UNSET()` if not specified. |
| `final int` | `@https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/ProducerReferenceTime.ProducerReferenceTimeType https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/ProducerReferenceTime#type()` The `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/ProducerReferenceTime.ProducerReferenceTimeType` indicating the type of timing source. |
| `final @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/UtcTimingElement` | `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/ProducerReferenceTime#utcTiming()` An optional `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/UtcTimingElement` specifying the UTC timing synchronization source. |
| `final long` | `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/ProducerReferenceTime#wallClockTimeMs()` The wall-clock time as a Unix epoch timestamp in milliseconds, or `https://developer.android.com/reference/androidx/media3/common/C#TIME_UNSET()` if not specified. |

| ### Public constructors |
|---|
| `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/ProducerReferenceTime#ProducerReferenceTime(long,boolean,int,java.lang.String,long,long,androidx.media3.exoplayer.dash.manifest.UtcTimingElement)( long id, boolean inband, @https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/ProducerReferenceTime.ProducerReferenceTimeType int type, @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/java/lang/String.html applicationScheme, long wallClockTimeMs, long presentationTime, @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/UtcTimingElement utcTiming )` Constructs a new instance. |

| ### Public methods |
|---|---|
| `boolean` | `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/ProducerReferenceTime#equals(java.lang.Object)(@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/java/lang/Object.html obj)` |
| `int` | `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/ProducerReferenceTime#hashCode()()` |

## Constants

### ID_UNSET

```
public static final long ID_UNSET = -1
```

Value of `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/ProducerReferenceTime#id()` indicating no value is set.

### TYPE_APPLICATION

```
public static final int TYPE_APPLICATION = 2
```

Indicates wall-clock time was established at the application level.

### TYPE_CAPTURED

```
public static final int TYPE_CAPTURED = 1
```

Indicates wall-clock time was established when the media was captured.

### TYPE_ENCODER

```
public static final int TYPE_ENCODER = 0
```

Indicates wall-clock time was established at the encoder.

## Public fields

### applicationScheme

```
public final @Nullable String applicationScheme
```

The application scheme URI if `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/ProducerReferenceTime#type()` is `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/ProducerReferenceTime#TYPE_APPLICATION()`, or `null` otherwise.

### id

```
public final long id
```

An identifier for the producer reference time, or `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/ProducerReferenceTime#ID_UNSET()` if not specified.

### inband

```
public final boolean inband
```

Whether the producer reference time is also present inband in the media segments.

### presentationTime

```
public final long presentationTime
```

The media presentation time corresponding to `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/ProducerReferenceTime#wallClockTimeMs()`, in the track's timescale, or `https://developer.android.com/reference/androidx/media3/common/C#TIME_UNSET()` if not specified.

### type

```
@ProducerReferenceTime.ProducerReferenceTimeType
public final int type
```

The `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/ProducerReferenceTime.ProducerReferenceTimeType` indicating the type of timing source.

### utcTiming

```
public final @Nullable UtcTimingElement utcTiming
```

An optional `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/UtcTimingElement` specifying the UTC timing synchronization source.

### wallClockTimeMs

```
public final long wallClockTimeMs
```

The wall-clock time as a Unix epoch timestamp in milliseconds, or `https://developer.android.com/reference/androidx/media3/common/C#TIME_UNSET()` if not specified.

## Public constructors

### ProducerReferenceTime

```
public ProducerReferenceTime(
    long id,
    boolean inband,
    @ProducerReferenceTime.ProducerReferenceTimeType int type,
    @Nullable String applicationScheme,
    long wallClockTimeMs,
    long presentationTime,
    @Nullable UtcTimingElement utcTiming
)
```

Constructs a new instance.

| Parameters |
|---|---|
| `long id` | An identifier for the producer reference time, or `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/ProducerReferenceTime#ID_UNSET()` if not specified. |
| `boolean inband` | Whether the producer reference time is also present inband. |
| `@https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/ProducerReferenceTime.ProducerReferenceTimeType int type` | The `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/ProducerReferenceTime.ProducerReferenceTimeType`. |
| `@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/java/lang/String.html applicationScheme` | The application scheme URI, or null. |
| `long wallClockTimeMs` | The wall-clock time in milliseconds since epoch, or `https://developer.android.com/reference/androidx/media3/common/C#TIME_UNSET()` if not specified. |
| `long presentationTime` | The presentation time in track timescale, or `https://developer.android.com/reference/androidx/media3/common/C#TIME_UNSET()` if not specified. |
| `@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/UtcTimingElement utcTiming` | An optional `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/UtcTimingElement`, or null. |

## Public methods

### equals

```
public boolean equals(@Nullable Object obj)
```

### hashCode

```
public int hashCode()
```