# media::TimelineRate

## Summary

| ### Constructors and Destructors ||
|---|---|
| `https://fuchsia.dev/reference/cpp/class/media/timeline-rate#classmedia_1_1_timeline_rate_1a6fb76a9085a503c6095e5888ca571f42()` ||
| `https://fuchsia.dev/reference/cpp/class/media/timeline-rate#classmedia_1_1_timeline_rate_1accabab7f8649a390e92afa1a227c6a56(uint32_t subject_delta)` ||
| `https://fuchsia.dev/reference/cpp/class/media/timeline-rate#classmedia_1_1_timeline_rate_1a58654902c1169292bf0c3f78711f175c(float rate_as_float)` ||
| `https://fuchsia.dev/reference/cpp/class/media/timeline-rate#classmedia_1_1_timeline_rate_1a9cbf8f1ccde10b8e62c14ebe25de8114(uint32_t subject_delta, uint32_t reference_delta)` ||

| ### Public static attributes ||
|---|---|
| `https://fuchsia.dev/reference/cpp/class/media/timeline-rate#classmedia_1_1_timeline_rate_1a53083eb528483f54073117c7e0c09420` | `const https://fuchsia.dev/reference/cpp/class/media/timeline-rate#classmedia_1_1_timeline_rate` |
| `https://fuchsia.dev/reference/cpp/class/media/timeline-rate#classmedia_1_1_timeline_rate_1a6eda7dc1683a2c57c7dae4e9aaaf1067` | `const https://fuchsia.dev/reference/cpp/class/media/timeline-rate#classmedia_1_1_timeline_rate` |
| `https://fuchsia.dev/reference/cpp/class/media/timeline-rate#classmedia_1_1_timeline_rate_1a5ad94fe53a05a1944bc2499740f8c8cc = std::numeric_limits::max()` | `constexpr int64_t` |

| ### Public static functions ||
|---|---|
| `https://fuchsia.dev/reference/cpp/class/media/timeline-rate#classmedia_1_1_timeline_rate_1affbd5ac36e51a019e141a8c6054b1cff(uint32_t a_subject_delta, uint32_t a_reference_delta, uint32_t b_subject_delta, uint32_t b_reference_delta, uint32_t *product_subject_delta, uint32_t *product_reference_delta, bool exact)` | `void` |
| `https://fuchsia.dev/reference/cpp/class/media/timeline-rate#classmedia_1_1_timeline_rate_1a659991db1ff5c7cfef5bcf16066e9586(https://fuchsia.dev/reference/cpp/class/media/timeline-rate#classmedia_1_1_timeline_rate a, https://fuchsia.dev/reference/cpp/class/media/timeline-rate#classmedia_1_1_timeline_rate b, bool exact)` | `https://fuchsia.dev/reference/cpp/class/media/timeline-rate#classmedia_1_1_timeline_rate` |
| `https://fuchsia.dev/reference/cpp/class/media/timeline-rate#classmedia_1_1_timeline_rate_1a51fdd53153a8ae08fd6c8a55aa4334ea(uint32_t *subject_delta, uint32_t *reference_delta)` | `void` |
| `https://fuchsia.dev/reference/cpp/class/media/timeline-rate#classmedia_1_1_timeline_rate_1a49c52eef23ce7785fa3ab77f417383a3(int64_t value, uint32_t subject_delta, uint32_t reference_delta)` | `int64_t` |

| ### Public functions ||
|---|---|
| `https://fuchsia.dev/reference/cpp/class/media/timeline-rate#classmedia_1_1_timeline_rate_1a9e330acd87d944b3046e406bb02da205() const ` | `https://fuchsia.dev/reference/cpp/class/media/timeline-rate#classmedia_1_1_timeline_rate` |
| `https://fuchsia.dev/reference/cpp/class/media/timeline-rate#classmedia_1_1_timeline_rate_1a1edc937592bc8f8b52ee0ceba34adf8d(int64_t value) const ` | `int64_t` |
| `https://fuchsia.dev/reference/cpp/class/media/timeline-rate#classmedia_1_1_timeline_rate_1aec74430254f6db9e09041fb034ab832c(int64_t value) const ` | `int64_t` |
| `https://fuchsia.dev/reference/cpp/class/media/timeline-rate#classmedia_1_1_timeline_rate_1a6e000c11ae29fa6cc1577a1ad00228d3() const ` | `bool` |
| `https://fuchsia.dev/reference/cpp/class/media/timeline-rate#classmedia_1_1_timeline_rate_1a7d79a5f75f6affd9fdec8bd2c3597bda() const ` | `uint32_t` |
| `https://fuchsia.dev/reference/cpp/class/media/timeline-rate#classmedia_1_1_timeline_rate_1a414c81d06773d0ce2bbb62e00a343596() const ` | `uint32_t` |

## Public static attributes

### NsPerSecond

```c++
const TimelineRate NsPerSecond
```

### Zero

```c++
const TimelineRate Zero
```

### kOverflow

```c++
constexpr int64_t kOverflow = std::numeric_limits<int64_t>::max()
```

## Public static functions

### Product

```c++
void Product(
  uint32_t a_subject_delta,
  uint32_t a_reference_delta,
  uint32_t b_subject_delta,
  uint32_t b_reference_delta,
  uint32_t *product_subject_delta,
  uint32_t *product_reference_delta,
  bool exact
)
```

### Product

```c++
TimelineRate Product(
  TimelineRate a,
  TimelineRate b,
  bool exact
)
```

### Reduce

```c++
void Reduce(
  uint32_t *subject_delta,
  uint32_t *reference_delta
)
```

### Scale

```c++
int64_t Scale(
  int64_t value,
  uint32_t subject_delta,
  uint32_t reference_delta
)
```

## Public functions

### Inverse

```c++
TimelineRate Inverse() const 
```

### Scale

```c++
int64_t Scale(
  int64_t value
) const 
```

### ScaleInverse

```c++
int64_t ScaleInverse(
  int64_t value
) const 
```

### TimelineRate

```c++
 TimelineRate()
```

### TimelineRate

```c++
 TimelineRate(
  uint32_t subject_delta
)
```

### TimelineRate

```c++
 TimelineRate(
  float rate_as_float
)
```

### TimelineRate

```c++
 TimelineRate(
  uint32_t subject_delta,
  uint32_t reference_delta
)
```

### invertible

```c++
bool invertible() const 
```

### reference_delta

```c++
uint32_t reference_delta() const 
```

### subject_delta

```c++
uint32_t subject_delta() const 
```