# CmcdConfiguration

# CmcdConfiguration

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

*** ** * ** ***

Kotlin \|[Java](https://developer.android.com/reference/androidx/media3/exoplayer/upstream/CmcdConfiguration "View this page in Java")


```
@UnstableApi
class CmcdConfiguration
```

<br />

*** ** * ** ***

Represents a configuration for the Common Media Client Data (CMCD) logging.

## Summary

|                                                                                                                                                                                                                                                                                                                                                                                                                                                            ### Nested types                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `@`[Retention](https://developer.android.com/reference/java/lang/annotation/Retention.html)`(value = `[RetentionPolicy.SOURCE](https://developer.android.com/reference/java/lang/annotation/RetentionPolicy.html#SOURCE)`)` `@`[StringDef](https://developer.android.com/reference/kotlin/androidx/annotation/StringDef)`(value = )` `@`[Documented](https://developer.android.com/reference/java/lang/annotation/Documented.html) `@`[Target](https://developer.android.com/reference/java/lang/annotation/Target.html)`(value = `[ElementType.TYPE_USE](https://developer.android.com/reference/java/lang/annotation/ElementType.html#TYPE_USE)`)` `annotation `[CmcdConfiguration.CmcdKey](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/upstream/CmcdConfiguration.CmcdKey) Indicates that the annotated element represents a CMCD key.                                                                 |
| `@`[Retention](https://developer.android.com/reference/java/lang/annotation/Retention.html)`(value = `[RetentionPolicy.SOURCE](https://developer.android.com/reference/java/lang/annotation/RetentionPolicy.html#SOURCE)`)` `@`[IntDef](https://developer.android.com/reference/kotlin/androidx/annotation/IntDef)`(value = )` `@`[Documented](https://developer.android.com/reference/java/lang/annotation/Documented.html) `@`[Target](https://developer.android.com/reference/java/lang/annotation/Target.html)`(value = `[ElementType.TYPE_USE](https://developer.android.com/reference/java/lang/annotation/ElementType.html#TYPE_USE)`)` `annotation `[CmcdConfiguration.DataTransmissionMode](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/upstream/CmcdConfiguration.DataTransmissionMode) Indicates the mode used for data transmission.                                                          |
| `interface `[CmcdConfiguration.Factory](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/upstream/CmcdConfiguration.Factory) Factory for [CmcdConfiguration](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/upstream/CmcdConfiguration) instances.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| `@`[Retention](https://developer.android.com/reference/java/lang/annotation/Retention.html)`(value = `[RetentionPolicy.SOURCE](https://developer.android.com/reference/java/lang/annotation/RetentionPolicy.html#SOURCE)`)` `@`[StringDef](https://developer.android.com/reference/kotlin/androidx/annotation/StringDef)`(value = )` `@`[Documented](https://developer.android.com/reference/java/lang/annotation/Documented.html) `@`[Target](https://developer.android.com/reference/java/lang/annotation/Target.html)`(value = `[ElementType.TYPE_USE](https://developer.android.com/reference/java/lang/annotation/ElementType.html#TYPE_USE)`)` `annotation `[CmcdConfiguration.HeaderKey](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/upstream/CmcdConfiguration.HeaderKey) Header keys SHOULD be allocated to one of the four defined header names based upon their expected level of variability: |
| `interface `[CmcdConfiguration.RequestConfig](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/upstream/CmcdConfiguration.RequestConfig) Represents configuration which can vary on each request.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |

|                                        ### Constants                                         |
|----------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `const `[String](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)`!` | [CMCD_QUERY_PARAMETER_KEY](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/upstream/CmcdConfiguration#CMCD_QUERY_PARAMETER_KEY())` = "CMCD"`          |
| `const `[String](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)`!` | [KEY_BITRATE](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/upstream/CmcdConfiguration#KEY_BITRATE())` = "br"`                                      |
| `const `[String](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)`!` | [KEY_BUFFER_LENGTH](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/upstream/CmcdConfiguration#KEY_BUFFER_LENGTH())` = "bl"`                          |
| `const `[String](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)`!` | [KEY_BUFFER_STARVATION](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/upstream/CmcdConfiguration#KEY_BUFFER_STARVATION())` = "bs"`                  |
| `const `[String](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)`!` | [KEY_CMCD_OBJECT](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/upstream/CmcdConfiguration#KEY_CMCD_OBJECT())` = "CMCD-Object"`                     |
| `const `[String](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)`!` | [KEY_CMCD_REQUEST](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/upstream/CmcdConfiguration#KEY_CMCD_REQUEST())` = "CMCD-Request"`                  |
| `const `[String](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)`!` | [KEY_CMCD_SESSION](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/upstream/CmcdConfiguration#KEY_CMCD_SESSION())` = "CMCD-Session"`                  |
| `const `[String](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)`!` | [KEY_CMCD_STATUS](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/upstream/CmcdConfiguration#KEY_CMCD_STATUS())` = "CMCD-Status"`                     |
| `const `[String](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)`!` | [KEY_CONTENT_ID](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/upstream/CmcdConfiguration#KEY_CONTENT_ID())` = "cid"`                               |
| `const `[String](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)`!` | [KEY_DEADLINE](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/upstream/CmcdConfiguration#KEY_DEADLINE())` = "dl"`                                    |
| `const `[String](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)`!` | [KEY_MAXIMUM_REQUESTED_BITRATE](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/upstream/CmcdConfiguration#KEY_MAXIMUM_REQUESTED_BITRATE())` = "rtp"` |
| `const `[String](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)`!` | [KEY_MEASURED_THROUGHPUT](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/upstream/CmcdConfiguration#KEY_MEASURED_THROUGHPUT())` = "mtp"`             |
| `const `[String](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)`!` | [KEY_NEXT_OBJECT_REQUEST](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/upstream/CmcdConfiguration#KEY_NEXT_OBJECT_REQUEST())` = "nor"`             |
| `const `[String](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)`!` | [KEY_NEXT_RANGE_REQUEST](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/upstream/CmcdConfiguration#KEY_NEXT_RANGE_REQUEST())` = "nrr"`               |
| `const `[String](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)`!` | [KEY_OBJECT_DURATION](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/upstream/CmcdConfiguration#KEY_OBJECT_DURATION())` = "d"`                       |
| `const `[String](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)`!` | [KEY_OBJECT_TYPE](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/upstream/CmcdConfiguration#KEY_OBJECT_TYPE())` = "ot"`                              |
| `const `[String](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)`!` | [KEY_PLAYBACK_RATE](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/upstream/CmcdConfiguration#KEY_PLAYBACK_RATE())` = "pr"`                          |
| `const `[String](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)`!` | [KEY_SESSION_ID](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/upstream/CmcdConfiguration#KEY_SESSION_ID())` = "sid"`                               |
| `const `[String](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)`!` | [KEY_STARTUP](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/upstream/CmcdConfiguration#KEY_STARTUP())` = "su"`                                      |
| `const `[String](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)`!` | [KEY_STREAMING_FORMAT](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/upstream/CmcdConfiguration#KEY_STREAMING_FORMAT())` = "sf"`                    |
| `const `[String](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)`!` | [KEY_STREAM_TYPE](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/upstream/CmcdConfiguration#KEY_STREAM_TYPE())` = "st"`                              |
| `const `[String](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)`!` | [KEY_TOP_BITRATE](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/upstream/CmcdConfiguration#KEY_TOP_BITRATE())` = "tb"`                              |
| `const `[String](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)`!` | [KEY_VERSION](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/upstream/CmcdConfiguration#KEY_VERSION())` = "v"`                                       |
| `const `[Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)          | [MAX_ID_LENGTH](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/upstream/CmcdConfiguration#MAX_ID_LENGTH())` = 64` Maximum length for ID fields.      |
| `const `[Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)          | [MODE_QUERY_PARAMETER](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/upstream/CmcdConfiguration#MODE_QUERY_PARAMETER())` = 1`                       |
| `const `[Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)          | [MODE_REQUEST_HEADER](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/upstream/CmcdConfiguration#MODE_REQUEST_HEADER())` = 0`                         |

|                                                                                                                                                                                                                                                                                                                                                                                                                                                                            ### Public constructors                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [CmcdConfiguration](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/upstream/CmcdConfiguration#CmcdConfiguration(java.lang.String,java.lang.String,androidx.media3.exoplayer.upstream.CmcdConfiguration.RequestConfig))`(` ` sessionId: `[String](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)`?,` ` contentId: `[String](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)`?,` ` requestConfig: `[CmcdConfiguration.RequestConfig](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/upstream/CmcdConfiguration.RequestConfig)`!` `)` Creates an instance with [dataTransmissionMode](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/upstream/CmcdConfiguration#dataTransmissionMode()) set to [MODE_REQUEST_HEADER](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/upstream/CmcdConfiguration#MODE_REQUEST_HEADER()). |
| [CmcdConfiguration](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/upstream/CmcdConfiguration#CmcdConfiguration(java.lang.String,java.lang.String,androidx.media3.exoplayer.upstream.CmcdConfiguration.RequestConfig,int))`(` ` sessionId: `[String](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)`?,` ` contentId: `[String](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)`?,` ` requestConfig: `[CmcdConfiguration.RequestConfig](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/upstream/CmcdConfiguration.RequestConfig)`!,` ` @`[CmcdConfiguration.DataTransmissionMode](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/upstream/CmcdConfiguration.DataTransmissionMode)` dataTransmissionMode: `[Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html) `)` Creates an instance.                                 |

|                                ### Public functions                                 |
|-------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [Boolean](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html) | [isBitrateLoggingAllowed](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/upstream/CmcdConfiguration#isBitrateLoggingAllowed())`()` Returns whether logging bitrate is allowed based on the [request configuration](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/upstream/CmcdConfiguration.RequestConfig).                                                        |
| [Boolean](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html) | [isBufferLengthLoggingAllowed](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/upstream/CmcdConfiguration#isBufferLengthLoggingAllowed())`()` Returns whether logging buffer length is allowed based on the [request configuration](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/upstream/CmcdConfiguration.RequestConfig).                                        |
| [Boolean](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html) | [isBufferStarvationLoggingAllowed](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/upstream/CmcdConfiguration#isBufferStarvationLoggingAllowed())`()` Returns whether logging buffer starvation is allowed based on the [request configuration](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/upstream/CmcdConfiguration.RequestConfig).                            |
| [Boolean](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html) | [isContentIdLoggingAllowed](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/upstream/CmcdConfiguration#isContentIdLoggingAllowed())`()` Returns whether logging content ID is allowed based on the [request configuration](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/upstream/CmcdConfiguration.RequestConfig).                                                 |
| [Boolean](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html) | [isDeadlineLoggingAllowed](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/upstream/CmcdConfiguration#isDeadlineLoggingAllowed())`()` Returns whether logging deadline is allowed based on the [request configuration](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/upstream/CmcdConfiguration.RequestConfig).                                                     |
| [Boolean](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html) | [isMaximumRequestThroughputLoggingAllowed](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/upstream/CmcdConfiguration#isMaximumRequestThroughputLoggingAllowed())`()` Returns whether logging maximum requested throughput is allowed based on the [request configuration](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/upstream/CmcdConfiguration.RequestConfig). |
| [Boolean](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html) | [isMeasuredThroughputLoggingAllowed](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/upstream/CmcdConfiguration#isMeasuredThroughputLoggingAllowed())`()` Returns whether logging measured throughput is allowed based on the [request configuration](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/upstream/CmcdConfiguration.RequestConfig).                      |
| [Boolean](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html) | [isNextObjectRequestLoggingAllowed](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/upstream/CmcdConfiguration#isNextObjectRequestLoggingAllowed())`()` Returns whether logging next object request is allowed based on the [request configuration](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/upstream/CmcdConfiguration.RequestConfig).                        |
| [Boolean](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html) | [isNextRangeRequestLoggingAllowed](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/upstream/CmcdConfiguration#isNextRangeRequestLoggingAllowed())`()` Returns whether logging next range request is allowed based on the [request configuration](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/upstream/CmcdConfiguration.RequestConfig).                           |
| [Boolean](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html) | [isObjectDurationLoggingAllowed](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/upstream/CmcdConfiguration#isObjectDurationLoggingAllowed())`()` Returns whether logging object duration is allowed based on the [request configuration](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/upstream/CmcdConfiguration.RequestConfig).                                  |
| [Boolean](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html) | [isObjectTypeLoggingAllowed](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/upstream/CmcdConfiguration#isObjectTypeLoggingAllowed())`()` Returns whether logging object type is allowed based on the [request configuration](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/upstream/CmcdConfiguration.RequestConfig).                                              |
| [Boolean](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html) | [isPlaybackRateLoggingAllowed](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/upstream/CmcdConfiguration#isPlaybackRateLoggingAllowed())`()` Returns whether logging playback rate is allowed based on the [request configuration](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/upstream/CmcdConfiguration.RequestConfig).                                        |
| [Boolean](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html) | [isSessionIdLoggingAllowed](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/upstream/CmcdConfiguration#isSessionIdLoggingAllowed())`()` Returns whether logging session ID is allowed based on the [request configuration](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/upstream/CmcdConfiguration.RequestConfig).                                                 |
| [Boolean](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html) | [isStartupLoggingAllowed](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/upstream/CmcdConfiguration#isStartupLoggingAllowed())`()` Returns whether logging startup is allowed based on the [request configuration](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/upstream/CmcdConfiguration.RequestConfig).                                                        |
| [Boolean](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html) | [isStreamTypeLoggingAllowed](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/upstream/CmcdConfiguration#isStreamTypeLoggingAllowed())`()` Returns whether logging stream type is allowed based on the [request configuration](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/upstream/CmcdConfiguration.RequestConfig).                                              |
| [Boolean](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html) | [isStreamingFormatLoggingAllowed](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/upstream/CmcdConfiguration#isStreamingFormatLoggingAllowed())`()` Returns whether logging streaming format is allowed based on the [request configuration](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/upstream/CmcdConfiguration.RequestConfig).                               |
| [Boolean](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html) | [isTopBitrateLoggingAllowed](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/upstream/CmcdConfiguration#isTopBitrateLoggingAllowed())`()` Returns whether logging top bitrate is allowed based on the [request configuration](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/upstream/CmcdConfiguration.RequestConfig).                                              |

|                                                                  ### Public properties                                                                  |
|---------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [String](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)`?`                                                                    | [contentId](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/upstream/CmcdConfiguration#contentId()) A GUID identifying the current content, or `null` if unset.                                                                                                                                                                  |
| [Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)                                                                             | `@`[CmcdConfiguration.DataTransmissionMode](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/upstream/CmcdConfiguration.DataTransmissionMode) [dataTransmissionMode](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/upstream/CmcdConfiguration#dataTransmissionMode()) Mode used for data transmission. |
| [CmcdConfiguration.RequestConfig](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/upstream/CmcdConfiguration.RequestConfig)`!` | [requestConfig](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/upstream/CmcdConfiguration#requestConfig()) Dynamic request specific configuration.                                                                                                                                                                              |
| [String](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)`?`                                                                    | [sessionId](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/upstream/CmcdConfiguration#sessionId()) A GUID identifying the current playback session, or `null` if unset.                                                                                                                                                         |

## Constants

### CMCD_QUERY_PARAMETER_KEY

```
const val CMCD_QUERY_PARAMETER_KEY = "CMCD": String!
```  

### KEY_BITRATE

```
const val KEY_BITRATE = "br": String!
```  

### KEY_BUFFER_LENGTH

```
const val KEY_BUFFER_LENGTH = "bl": String!
```  

### KEY_BUFFER_STARVATION

```
const val KEY_BUFFER_STARVATION = "bs": String!
```  

### KEY_CMCD_OBJECT

```
const val KEY_CMCD_OBJECT = "CMCD-Object": String!
```  

### KEY_CMCD_REQUEST

```
const val KEY_CMCD_REQUEST = "CMCD-Request": String!
```  

### KEY_CMCD_SESSION

```
const val KEY_CMCD_SESSION = "CMCD-Session": String!
```  

### KEY_CMCD_STATUS

```
const val KEY_CMCD_STATUS = "CMCD-Status": String!
```  

### KEY_CONTENT_ID

```
const val KEY_CONTENT_ID = "cid": String!
```  

### KEY_DEADLINE

```
const val KEY_DEADLINE = "dl": String!
```  

### KEY_MAXIMUM_REQUESTED_BITRATE

```
const val KEY_MAXIMUM_REQUESTED_BITRATE = "rtp": String!
```  

### KEY_MEASURED_THROUGHPUT

```
const val KEY_MEASURED_THROUGHPUT = "mtp": String!
```  

### KEY_NEXT_OBJECT_REQUEST

```
const val KEY_NEXT_OBJECT_REQUEST = "nor": String!
```  

### KEY_NEXT_RANGE_REQUEST

```
const val KEY_NEXT_RANGE_REQUEST = "nrr": String!
```  

### KEY_OBJECT_DURATION

```
const val KEY_OBJECT_DURATION = "d": String!
```  

### KEY_OBJECT_TYPE

```
const val KEY_OBJECT_TYPE = "ot": String!
```  

### KEY_PLAYBACK_RATE

```
const val KEY_PLAYBACK_RATE = "pr": String!
```  

### KEY_SESSION_ID

```
const val KEY_SESSION_ID = "sid": String!
```  

### KEY_STARTUP

```
const val KEY_STARTUP = "su": String!
```  

### KEY_STREAMING_FORMAT

```
const val KEY_STREAMING_FORMAT = "sf": String!
```  

### KEY_STREAM_TYPE

```
const val KEY_STREAM_TYPE = "st": String!
```  

### KEY_TOP_BITRATE

```
const val KEY_TOP_BITRATE = "tb": String!
```  

### KEY_VERSION

```
const val KEY_VERSION = "v": String!
```  

### MAX_ID_LENGTH

```
const val MAX_ID_LENGTH = 64: Int
```

Maximum length for ID fields.  

### MODE_QUERY_PARAMETER

```
const val MODE_QUERY_PARAMETER = 1: Int
```  

### MODE_REQUEST_HEADER

```
const val MODE_REQUEST_HEADER = 0: Int
```  

## Public constructors

### CmcdConfiguration

```
CmcdConfiguration(
    sessionId: String?,
    contentId: String?,
    requestConfig: CmcdConfiguration.RequestConfig!
)
```

Creates an instance with [dataTransmissionMode](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/upstream/CmcdConfiguration#dataTransmissionMode()) set to [MODE_REQUEST_HEADER](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/upstream/CmcdConfiguration#MODE_REQUEST_HEADER()).  

### CmcdConfiguration

```
CmcdConfiguration(
    sessionId: String?,
    contentId: String?,
    requestConfig: CmcdConfiguration.RequestConfig!,
    @CmcdConfiguration.DataTransmissionMode dataTransmissionMode: Int
)
```

Creates an instance.  

## Public functions

### isBitrateLoggingAllowed

```
fun isBitrateLoggingAllowed(): Boolean
```

Returns whether logging bitrate is allowed based on the [request configuration](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/upstream/CmcdConfiguration.RequestConfig).  

### isBufferLengthLoggingAllowed

```
fun isBufferLengthLoggingAllowed(): Boolean
```

Returns whether logging buffer length is allowed based on the [request configuration](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/upstream/CmcdConfiguration.RequestConfig).  

### isBufferStarvationLoggingAllowed

```
fun isBufferStarvationLoggingAllowed(): Boolean
```

Returns whether logging buffer starvation is allowed based on the [request configuration](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/upstream/CmcdConfiguration.RequestConfig).  

### isContentIdLoggingAllowed

```
fun isContentIdLoggingAllowed(): Boolean
```

Returns whether logging content ID is allowed based on the [request configuration](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/upstream/CmcdConfiguration.RequestConfig).  

### isDeadlineLoggingAllowed

```
fun isDeadlineLoggingAllowed(): Boolean
```

Returns whether logging deadline is allowed based on the [request configuration](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/upstream/CmcdConfiguration.RequestConfig).  

### isMaximumRequestThroughputLoggingAllowed

```
fun isMaximumRequestThroughputLoggingAllowed(): Boolean
```

Returns whether logging maximum requested throughput is allowed based on the [request configuration](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/upstream/CmcdConfiguration.RequestConfig).  

### isMeasuredThroughputLoggingAllowed

```
fun isMeasuredThroughputLoggingAllowed(): Boolean
```

Returns whether logging measured throughput is allowed based on the [request configuration](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/upstream/CmcdConfiguration.RequestConfig).  

### isNextObjectRequestLoggingAllowed

```
fun isNextObjectRequestLoggingAllowed(): Boolean
```

Returns whether logging next object request is allowed based on the [request configuration](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/upstream/CmcdConfiguration.RequestConfig).  

### isNextRangeRequestLoggingAllowed

```
fun isNextRangeRequestLoggingAllowed(): Boolean
```

Returns whether logging next range request is allowed based on the [request configuration](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/upstream/CmcdConfiguration.RequestConfig).  

### isObjectDurationLoggingAllowed

```
fun isObjectDurationLoggingAllowed(): Boolean
```

Returns whether logging object duration is allowed based on the [request configuration](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/upstream/CmcdConfiguration.RequestConfig).  

### isObjectTypeLoggingAllowed

```
fun isObjectTypeLoggingAllowed(): Boolean
```

Returns whether logging object type is allowed based on the [request configuration](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/upstream/CmcdConfiguration.RequestConfig).  

### isPlaybackRateLoggingAllowed

```
fun isPlaybackRateLoggingAllowed(): Boolean
```

Returns whether logging playback rate is allowed based on the [request configuration](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/upstream/CmcdConfiguration.RequestConfig).  

### isSessionIdLoggingAllowed

```
fun isSessionIdLoggingAllowed(): Boolean
```

Returns whether logging session ID is allowed based on the [request configuration](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/upstream/CmcdConfiguration.RequestConfig).  

### isStartupLoggingAllowed

```
fun isStartupLoggingAllowed(): Boolean
```

Returns whether logging startup is allowed based on the [request configuration](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/upstream/CmcdConfiguration.RequestConfig).  

### isStreamTypeLoggingAllowed

```
fun isStreamTypeLoggingAllowed(): Boolean
```

Returns whether logging stream type is allowed based on the [request configuration](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/upstream/CmcdConfiguration.RequestConfig).  

### isStreamingFormatLoggingAllowed

```
fun isStreamingFormatLoggingAllowed(): Boolean
```

Returns whether logging streaming format is allowed based on the [request configuration](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/upstream/CmcdConfiguration.RequestConfig).  

### isTopBitrateLoggingAllowed

```
fun isTopBitrateLoggingAllowed(): Boolean
```

Returns whether logging top bitrate is allowed based on the [request configuration](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/upstream/CmcdConfiguration.RequestConfig).  

## Public properties

### contentId

```
val contentId: String?
```

A GUID identifying the current content, or `null` if unset.

This value is consistent across multiple different sessions and devices and is defined and updated at the discretion of the service provider. Maximum length is 64 characters.  

### dataTransmissionMode

```
@CmcdConfiguration.DataTransmissionMode
val dataTransmissionMode: Int
```

Mode used for data transmission.  

### requestConfig

```
val requestConfig: CmcdConfiguration.RequestConfig!
```

Dynamic request specific configuration.  

### sessionId

```
val sessionId: String?
```

A GUID identifying the current playback session, or `null` if unset.

A playback session typically ties together segments belonging to a single media asset. Maximum length is 64 characters.