//------------------------------------------------------------------------------
//
// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
//
// Changes to this file may cause incorrect behavior and will be lost when
// the code is regenerated.
//
//------------------------------------------------------------------------------
#nullable enable
namespace LukeHagar.PlexAPI.SDK.Models.Components
{
using LukeHagar.PlexAPI.SDK.Utils;
using Newtonsoft.Json;
using System.Collections.Generic;
///
/// `Stream` represents a particular stream from a media item, such as the video stream, audio stream, or subtitle stream. The stream may either be part of the file represented by the parent `Part` or, especially for subtitles, an external file. The stream contains more detailed information about the specific stream. For example, a video may include the `aspectRatio` at the `Media` level, but detailed information about the video stream like the color space will be included on the `Stream` for the video stream. Note that photos do not have streams (mostly as an optimization).
///
///
///
///
///
public class Stream
{
[JsonProperty("default")]
public bool? Default { get; set; }
[JsonProperty("audioChannelLayout")]
public object? AudioChannelLayout { get; set; }
[JsonProperty("bitDepth")]
public long? BitDepth { get; set; }
[JsonProperty("bitrate")]
public long? Bitrate { get; set; }
///
/// For subtitle streams only. If `true` then the server can attempt to automatically sync the subtitle timestamps with the video.
///
[JsonProperty("canAutoSync")]
public bool? CanAutoSync { get; set; }
[JsonProperty("chromaLocation")]
public object? ChromaLocation { get; set; }
[JsonProperty("chromaSubsampling")]
public object? ChromaSubsampling { get; set; }
///
/// The codec of the stream, such as `h264` or `aac`
///
[JsonProperty("codec")]
public object? Codec { get; set; }
[JsonProperty("colorPrimaries")]
public object? ColorPrimaries { get; set; }
[JsonProperty("colorRange")]
public object? ColorRange { get; set; }
[JsonProperty("colorSpace")]
public object? ColorSpace { get; set; }
[JsonProperty("colorTrc")]
public object? ColorTrc { get; set; }
///
/// A friendly name for the stream, often comprised of the language and codec information
///
[JsonProperty("displayTitle")]
public object? DisplayTitle { get; set; }
[JsonProperty("frameRate")]
public double? FrameRate { get; set; }
[JsonProperty("hasScalingMatrix")]
public object? HasScalingMatrix { get; set; }
[JsonProperty("height")]
public long? Height { get; set; }
[JsonProperty("id")]
public long? Id { get; set; }
///
/// If the stream is part of the `Part` and not an external resource, the index of the stream within that part
///
[JsonProperty("index")]
public long? Index { get; set; }
///
/// If the stream is independently streamable, the key from which it can be streamed
///
[JsonProperty("key")]
public object? Key { get; set; }
[JsonProperty("language")]
public object? Language { get; set; }
///
/// The three character language code for the stream contents
///
[JsonProperty("languageCode")]
public object? LanguageCode { get; set; }
[JsonProperty("level")]
public long? Level { get; set; }
[JsonProperty("profile")]
public object? Profile { get; set; }
[JsonProperty("refFrames")]
public long? RefFrames { get; set; }
[JsonProperty("samplingRate")]
public long? SamplingRate { get; set; }
[JsonProperty("selected")]
public bool? Selected { get; set; }
[JsonProperty("streamIdentifier")]
public long? StreamIdentifier { get; set; }
///
/// A number indicating the type of the stream. `1` for video, `2` for audio, `3` for subtitles, `4` for lyrics
///
[JsonProperty("streamType")]
public long? StreamType { get; set; }
[JsonProperty("width")]
public long? Width { get; set; }
[JsonProperty("additionalProperties")]
public Dictionary? AdditionalProperties { get; set; }
}
}