# MakeDecisionRequest ## Fields | Field | Type | Required | Description | Example | | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `Accepts` | [*components.Accepts](../../models/components/accepts.md) | :heavy_minus_sign: | Indicates the client accepts the indicated media types | | | `ClientIdentifier` | **string* | :heavy_minus_sign: | An opaque identifier unique to the client | abc123 | | `Product` | **string* | :heavy_minus_sign: | The name of the client product | Plex for Roku | | `Version` | **string* | :heavy_minus_sign: | The version of the client application | 2.4.1 | | `Platform` | **string* | :heavy_minus_sign: | The platform of the client | Roku | | `PlatformVersion` | **string* | :heavy_minus_sign: | The version of the platform | 4.3 build 1057 | | `Device` | **string* | :heavy_minus_sign: | A relatively friendly name for the client device | Roku 3 | | `Model` | **string* | :heavy_minus_sign: | A potentially less friendly identifier for the device model | 4200X | | `DeviceVendor` | **string* | :heavy_minus_sign: | The device vendor | Roku | | `DeviceName` | **string* | :heavy_minus_sign: | A friendly name for the client | Living Room TV | | `Marketplace` | **string* | :heavy_minus_sign: | The marketplace on which the client application is distributed | googlePlay | | `TranscodeType` | [components.TranscodeType](../../models/components/transcodetype.md) | :heavy_check_mark: | Type of transcode media | | | `TranscodeSessionID` | **string* | :heavy_minus_sign: | Transcode session UUID | | | `AdvancedSubtitles` | [*components.AdvancedSubtitles](../../models/components/advancedsubtitles.md) | :heavy_minus_sign: | Indicates how incompatible advanced subtitles (such as ass/ssa) should be included: * 'burn' - Burn incompatible advanced text subtitles into the video stream * 'text' - Transcode incompatible advanced text subtitles to a compatible text format, even if some markup is lost
| burn | | `AudioBoost` | **int64* | :heavy_minus_sign: | Percentage of original audio loudness to use when transcoding (100 is equivalent to original volume, 50 is half, 200 is double, etc) | 50 | | `AudioChannelCount` | **int64* | :heavy_minus_sign: | Target video number of audio channels. | 5 | | `AutoAdjustQuality` | [*components.BoolInt](../../models/components/boolint.md) | :heavy_minus_sign: | Indicates the client supports ABR. | 1 | | `AutoAdjustSubtitle` | [*components.BoolInt](../../models/components/boolint.md) | :heavy_minus_sign: | Indicates if the server should adjust subtitles based on Voice Activity Data. | 1 | | `DirectPlay` | [*components.BoolInt](../../models/components/boolint.md) | :heavy_minus_sign: | Indicates the client supports direct playing the indicated content. | 1 | | `DirectStream` | [*components.BoolInt](../../models/components/boolint.md) | :heavy_minus_sign: | Indicates the client supports direct streaming the video of the indicated content. | 1 | | `DirectStreamAudio` | [*components.BoolInt](../../models/components/boolint.md) | :heavy_minus_sign: | Indicates the client supports direct streaming the audio of the indicated content. | 1 | | `DisableResolutionRotation` | [*components.BoolInt](../../models/components/boolint.md) | :heavy_minus_sign: | Indicates if resolution should be adjusted for orientation. | 1 | | `HasMDE` | [*components.BoolInt](../../models/components/boolint.md) | :heavy_minus_sign: | Ignore client profiles when determining if direct play is possible. Only has an effect when directPlay=1 and both mediaIndex and partIndex are specified and neither are -1 | 1 | | `Location` | [*operations.Location](../../models/operations/location.md) | :heavy_minus_sign: | Network type of the client, can be used to help determine target bitrate. | wan | | `MediaBufferSize` | **int64* | :heavy_minus_sign: | Buffer size used in playback (in KB). Clients should specify a lower bound if not known exactly. This value could make the difference between transcoding and direct play on bandwidth constrained networks. | 102400 | | `MediaIndex` | **int64* | :heavy_minus_sign: | Index of the media to transcode. -1 or not specified indicates let the server choose. | 0 | | `MusicBitrate` | **int64* | :heavy_minus_sign: | Target bitrate for audio only files (in kbps, used to transcode). | 5000 | | `Offset` | **float64* | :heavy_minus_sign: | Offset from the start of the media (in seconds). | 90.5 | | `PartIndex` | **int64* | :heavy_minus_sign: | Index of the part to transcode. -1 or not specified indicates the server should join parts together in a transcode | 0 | | `Path` | **string* | :heavy_minus_sign: | Internal PMS path of the media to transcode. | /library/metadata/151671 | | `PeakBitrate` | **int64* | :heavy_minus_sign: | Maximum bitrate (in kbps) to use in ABR. | 12000 | | `PhotoResolution` | **string* | :heavy_minus_sign: | Target photo resolution. | 1080x1080 | | `Protocol` | [*operations.Protocol](../../models/operations/protocol.md) | :heavy_minus_sign: | Indicates the network streaming protocol to be used for the transcode session: * 'http' - include the file in the http response such as MKV streaming * 'hls' - hls stream (RFC 8216) * 'dash' - dash stream (ISO/IEC 23009-1:2022)
| dash | | `SecondsPerSegment` | **int64* | :heavy_minus_sign: | Number of seconds to include in each transcoded segment | 5 | | `SubtitleSize` | **int64* | :heavy_minus_sign: | Percentage of original subtitle size to use when burning subtitles (100 is equivalent to original size, 50 is half, ect) | 50 | | `Subtitles` | [*operations.Subtitles](../../models/operations/subtitles.md) | :heavy_minus_sign: | Indicates how subtitles should be included: * 'auto' - Compute the appropriate subtitle setting automatically * 'burn' - Burn the selected subtitle; auto if no selected subtitle * 'none' - Ignore all subtitle streams * 'sidecar' - The selected subtitle should be provided as a sidecar * 'embedded' - The selected subtitle should be provided as an embedded stream * 'segmented' - The selected subtitle should be provided as a segmented stream
| Burn | | `VideoBitrate` | **int64* | :heavy_minus_sign: | Target video bitrate (in kbps). | 12000 | | `VideoQuality` | **int64* | :heavy_minus_sign: | Target photo quality. | 50 | | `VideoResolution` | **string* | :heavy_minus_sign: | Target maximum video resolution. | 1080x1080 | | `XPlexClientProfileExtra` | **string* | :heavy_minus_sign: | See [Profile Augmentations](#section/API-Info/Profile-Augmentations) . | add-limitation(scope=videoCodec&scopeName=*&type=upperBound&name=video.frameRate&value=60&replace=true)+append-transcode-target-codec(type=videoProfile&context=streaming&videoCodec=h264%2Chevc&audioCodec=aac&protocol=dash) | | `XPlexClientProfileName` | **string* | :heavy_minus_sign: | Which built in Client Profile to use in the decision. Generally should only be used to specify the Generic profile. | generic | | `XPlexSessionIdentifier` | **string* | :heavy_minus_sign: | Unique per client playback session. Used if a client can playback multiple items at a time (such as a browser with multiple tabs) | |