# coding: utf-8

"""
    Emby Server REST API (BETA)
"""

import pprint
import re  # noqa: F401

import six

class MediaStream(object):
    """NOTE: This class is auto generated by the swagger code generator program.

    Do not edit the class manually.
    """
    """
    Attributes:
      swagger_types (dict): The key is attribute name
                            and the value is attribute type.
      attribute_map (dict): The key is attribute name
                            and the value is json key in definition.
    """
    swagger_types = {
        'codec': 'str',
        'codec_tag': 'str',
        'language': 'str',
        'color_transfer': 'str',
        'color_primaries': 'str',
        'color_space': 'str',
        'comment': 'str',
        'stream_start_time_ticks': 'int',
        'time_base': 'str',
        'title': 'str',
        'extradata': 'str',
        'video_range': 'str',
        'display_title': 'str',
        'display_language': 'str',
        'nal_length_size': 'str',
        'is_interlaced': 'bool',
        'is_avc': 'bool',
        'channel_layout': 'str',
        'bit_rate': 'int',
        'bit_depth': 'int',
        'ref_frames': 'int',
        'rotation': 'int',
        'channels': 'int',
        'sample_rate': 'int',
        'is_default': 'bool',
        'is_forced': 'bool',
        'is_hearing_impaired': 'bool',
        'height': 'int',
        'width': 'int',
        'average_frame_rate': 'float',
        'real_frame_rate': 'float',
        'profile': 'str',
        'type': 'MediaStreamType',
        'aspect_ratio': 'str',
        'index': 'int',
        'is_external': 'bool',
        'delivery_method': 'SubtitleDeliveryMethod',
        'delivery_url': 'str',
        'is_external_url': 'bool',
        'is_text_subtitle_stream': 'bool',
        'supports_external_stream': 'bool',
        'path': 'str',
        'protocol': 'MediaProtocol',
        'pixel_format': 'str',
        'level': 'float',
        'is_anamorphic': 'bool',
        'extended_video_type': 'ExtendedVideoTypes',
        'extended_video_sub_type': 'ExtendedVideoSubTypes',
        'extended_video_sub_type_description': 'str',
        'item_id': 'str',
        'server_id': 'str',
        'attachment_size': 'int',
        'mime_type': 'str',
        'subtitle_location_type': 'SubtitleLocationType'
    }

    attribute_map = {
        'codec': 'Codec',
        'codec_tag': 'CodecTag',
        'language': 'Language',
        'color_transfer': 'ColorTransfer',
        'color_primaries': 'ColorPrimaries',
        'color_space': 'ColorSpace',
        'comment': 'Comment',
        'stream_start_time_ticks': 'StreamStartTimeTicks',
        'time_base': 'TimeBase',
        'title': 'Title',
        'extradata': 'Extradata',
        'video_range': 'VideoRange',
        'display_title': 'DisplayTitle',
        'display_language': 'DisplayLanguage',
        'nal_length_size': 'NalLengthSize',
        'is_interlaced': 'IsInterlaced',
        'is_avc': 'IsAVC',
        'channel_layout': 'ChannelLayout',
        'bit_rate': 'BitRate',
        'bit_depth': 'BitDepth',
        'ref_frames': 'RefFrames',
        'rotation': 'Rotation',
        'channels': 'Channels',
        'sample_rate': 'SampleRate',
        'is_default': 'IsDefault',
        'is_forced': 'IsForced',
        'is_hearing_impaired': 'IsHearingImpaired',
        'height': 'Height',
        'width': 'Width',
        'average_frame_rate': 'AverageFrameRate',
        'real_frame_rate': 'RealFrameRate',
        'profile': 'Profile',
        'type': 'Type',
        'aspect_ratio': 'AspectRatio',
        'index': 'Index',
        'is_external': 'IsExternal',
        'delivery_method': 'DeliveryMethod',
        'delivery_url': 'DeliveryUrl',
        'is_external_url': 'IsExternalUrl',
        'is_text_subtitle_stream': 'IsTextSubtitleStream',
        'supports_external_stream': 'SupportsExternalStream',
        'path': 'Path',
        'protocol': 'Protocol',
        'pixel_format': 'PixelFormat',
        'level': 'Level',
        'is_anamorphic': 'IsAnamorphic',
        'extended_video_type': 'ExtendedVideoType',
        'extended_video_sub_type': 'ExtendedVideoSubType',
        'extended_video_sub_type_description': 'ExtendedVideoSubTypeDescription',
        'item_id': 'ItemId',
        'server_id': 'ServerId',
        'attachment_size': 'AttachmentSize',
        'mime_type': 'MimeType',
        'subtitle_location_type': 'SubtitleLocationType'
    }

    def __init__(self, codec=None, codec_tag=None, language=None, color_transfer=None, color_primaries=None, color_space=None, comment=None, stream_start_time_ticks=None, time_base=None, title=None, extradata=None, video_range=None, display_title=None, display_language=None, nal_length_size=None, is_interlaced=None, is_avc=None, channel_layout=None, bit_rate=None, bit_depth=None, ref_frames=None, rotation=None, channels=None, sample_rate=None, is_default=None, is_forced=None, is_hearing_impaired=None, height=None, width=None, average_frame_rate=None, real_frame_rate=None, profile=None, type=None, aspect_ratio=None, index=None, is_external=None, delivery_method=None, delivery_url=None, is_external_url=None, is_text_subtitle_stream=None, supports_external_stream=None, path=None, protocol=None, pixel_format=None, level=None, is_anamorphic=None, extended_video_type=None, extended_video_sub_type=None, extended_video_sub_type_description=None, item_id=None, server_id=None, attachment_size=None, mime_type=None, subtitle_location_type=None):  # noqa: E501
        """MediaStream - a model defined in Swagger"""  # noqa: E501
        self._codec = None
        self._codec_tag = None
        self._language = None
        self._color_transfer = None
        self._color_primaries = None
        self._color_space = None
        self._comment = None
        self._stream_start_time_ticks = None
        self._time_base = None
        self._title = None
        self._extradata = None
        self._video_range = None
        self._display_title = None
        self._display_language = None
        self._nal_length_size = None
        self._is_interlaced = None
        self._is_avc = None
        self._channel_layout = None
        self._bit_rate = None
        self._bit_depth = None
        self._ref_frames = None
        self._rotation = None
        self._channels = None
        self._sample_rate = None
        self._is_default = None
        self._is_forced = None
        self._is_hearing_impaired = None
        self._height = None
        self._width = None
        self._average_frame_rate = None
        self._real_frame_rate = None
        self._profile = None
        self._type = None
        self._aspect_ratio = None
        self._index = None
        self._is_external = None
        self._delivery_method = None
        self._delivery_url = None
        self._is_external_url = None
        self._is_text_subtitle_stream = None
        self._supports_external_stream = None
        self._path = None
        self._protocol = None
        self._pixel_format = None
        self._level = None
        self._is_anamorphic = None
        self._extended_video_type = None
        self._extended_video_sub_type = None
        self._extended_video_sub_type_description = None
        self._item_id = None
        self._server_id = None
        self._attachment_size = None
        self._mime_type = None
        self._subtitle_location_type = None
        self.discriminator = None
        if codec is not None:
            self.codec = codec
        if codec_tag is not None:
            self.codec_tag = codec_tag
        if language is not None:
            self.language = language
        if color_transfer is not None:
            self.color_transfer = color_transfer
        if color_primaries is not None:
            self.color_primaries = color_primaries
        if color_space is not None:
            self.color_space = color_space
        if comment is not None:
            self.comment = comment
        if stream_start_time_ticks is not None:
            self.stream_start_time_ticks = stream_start_time_ticks
        if time_base is not None:
            self.time_base = time_base
        if title is not None:
            self.title = title
        if extradata is not None:
            self.extradata = extradata
        if video_range is not None:
            self.video_range = video_range
        if display_title is not None:
            self.display_title = display_title
        if display_language is not None:
            self.display_language = display_language
        if nal_length_size is not None:
            self.nal_length_size = nal_length_size
        if is_interlaced is not None:
            self.is_interlaced = is_interlaced
        if is_avc is not None:
            self.is_avc = is_avc
        if channel_layout is not None:
            self.channel_layout = channel_layout
        if bit_rate is not None:
            self.bit_rate = bit_rate
        if bit_depth is not None:
            self.bit_depth = bit_depth
        if ref_frames is not None:
            self.ref_frames = ref_frames
        if rotation is not None:
            self.rotation = rotation
        if channels is not None:
            self.channels = channels
        if sample_rate is not None:
            self.sample_rate = sample_rate
        if is_default is not None:
            self.is_default = is_default
        if is_forced is not None:
            self.is_forced = is_forced
        if is_hearing_impaired is not None:
            self.is_hearing_impaired = is_hearing_impaired
        if height is not None:
            self.height = height
        if width is not None:
            self.width = width
        if average_frame_rate is not None:
            self.average_frame_rate = average_frame_rate
        if real_frame_rate is not None:
            self.real_frame_rate = real_frame_rate
        if profile is not None:
            self.profile = profile
        if type is not None:
            self.type = type
        if aspect_ratio is not None:
            self.aspect_ratio = aspect_ratio
        if index is not None:
            self.index = index
        if is_external is not None:
            self.is_external = is_external
        if delivery_method is not None:
            self.delivery_method = delivery_method
        if delivery_url is not None:
            self.delivery_url = delivery_url
        if is_external_url is not None:
            self.is_external_url = is_external_url
        if is_text_subtitle_stream is not None:
            self.is_text_subtitle_stream = is_text_subtitle_stream
        if supports_external_stream is not None:
            self.supports_external_stream = supports_external_stream
        if path is not None:
            self.path = path
        if protocol is not None:
            self.protocol = protocol
        if pixel_format is not None:
            self.pixel_format = pixel_format
        if level is not None:
            self.level = level
        if is_anamorphic is not None:
            self.is_anamorphic = is_anamorphic
        if extended_video_type is not None:
            self.extended_video_type = extended_video_type
        if extended_video_sub_type is not None:
            self.extended_video_sub_type = extended_video_sub_type
        if extended_video_sub_type_description is not None:
            self.extended_video_sub_type_description = extended_video_sub_type_description
        if item_id is not None:
            self.item_id = item_id
        if server_id is not None:
            self.server_id = server_id
        if attachment_size is not None:
            self.attachment_size = attachment_size
        if mime_type is not None:
            self.mime_type = mime_type
        if subtitle_location_type is not None:
            self.subtitle_location_type = subtitle_location_type

    @property
    def codec(self):
        """Gets the codec of this MediaStream.  # noqa: E501

        The codec.    Probe Field: `codec_name`    Applies to: `MediaBrowser.Model.Entities.MediaStreamType.Video`, `MediaBrowser.Model.Entities.MediaStreamType.Audio`, `MediaBrowser.Model.Entities.MediaStreamType.Subtitle`    Related Enums: `T:Emby.Media.Model.Enums.VideoMediaTypes`, `Emby.Media.Model.Enums.AudioMediaTypes`, `Emby.Media.Model.Enums.SubtitleMediaTypes`.  # noqa: E501

        :return: The codec of this MediaStream.  # noqa: E501
        :rtype: str
        """
        return self._codec

    @codec.setter
    def codec(self, codec):
        """Sets the codec of this MediaStream.

        The codec.    Probe Field: `codec_name`    Applies to: `MediaBrowser.Model.Entities.MediaStreamType.Video`, `MediaBrowser.Model.Entities.MediaStreamType.Audio`, `MediaBrowser.Model.Entities.MediaStreamType.Subtitle`    Related Enums: `T:Emby.Media.Model.Enums.VideoMediaTypes`, `Emby.Media.Model.Enums.AudioMediaTypes`, `Emby.Media.Model.Enums.SubtitleMediaTypes`.  # noqa: E501

        :param codec: The codec of this MediaStream.  # noqa: E501
        :type: str
        """

        self._codec = codec

    @property
    def codec_tag(self):
        """Gets the codec_tag of this MediaStream.  # noqa: E501

        The codec tag.    Probe Field: `codec_tag`    Applies to: `MediaBrowser.Model.Entities.MediaStreamType.Video`, `MediaBrowser.Model.Entities.MediaStreamType.Audio`, `MediaBrowser.Model.Entities.MediaStreamType.Subtitle`.  # noqa: E501

        :return: The codec_tag of this MediaStream.  # noqa: E501
        :rtype: str
        """
        return self._codec_tag

    @codec_tag.setter
    def codec_tag(self, codec_tag):
        """Sets the codec_tag of this MediaStream.

        The codec tag.    Probe Field: `codec_tag`    Applies to: `MediaBrowser.Model.Entities.MediaStreamType.Video`, `MediaBrowser.Model.Entities.MediaStreamType.Audio`, `MediaBrowser.Model.Entities.MediaStreamType.Subtitle`.  # noqa: E501

        :param codec_tag: The codec_tag of this MediaStream.  # noqa: E501
        :type: str
        """

        self._codec_tag = codec_tag

    @property
    def language(self):
        """Gets the language of this MediaStream.  # noqa: E501

        The language.    Probe Field: `tags[\"language\"]`    Applies to: `MediaBrowser.Model.Entities.MediaStreamType.Audio`, `MediaBrowser.Model.Entities.MediaStreamType.Subtitle`.  # noqa: E501

        :return: The language of this MediaStream.  # noqa: E501
        :rtype: str
        """
        return self._language

    @language.setter
    def language(self, language):
        """Sets the language of this MediaStream.

        The language.    Probe Field: `tags[\"language\"]`    Applies to: `MediaBrowser.Model.Entities.MediaStreamType.Audio`, `MediaBrowser.Model.Entities.MediaStreamType.Subtitle`.  # noqa: E501

        :param language: The language of this MediaStream.  # noqa: E501
        :type: str
        """

        self._language = language

    @property
    def color_transfer(self):
        """Gets the color_transfer of this MediaStream.  # noqa: E501

        The color transfer characteristics.    Probe Field: `color_transfer`    Applies to: `MediaBrowser.Model.Entities.MediaStreamType.Video`    Related Enum: `Emby.Media.Model.Enums.ColorTransfers`.  # noqa: E501

        :return: The color_transfer of this MediaStream.  # noqa: E501
        :rtype: str
        """
        return self._color_transfer

    @color_transfer.setter
    def color_transfer(self, color_transfer):
        """Sets the color_transfer of this MediaStream.

        The color transfer characteristics.    Probe Field: `color_transfer`    Applies to: `MediaBrowser.Model.Entities.MediaStreamType.Video`    Related Enum: `Emby.Media.Model.Enums.ColorTransfers`.  # noqa: E501

        :param color_transfer: The color_transfer of this MediaStream.  # noqa: E501
        :type: str
        """

        self._color_transfer = color_transfer

    @property
    def color_primaries(self):
        """Gets the color_primaries of this MediaStream.  # noqa: E501

        The chromaticity coordinates of the source primaries.    Probe Field: `color_primaries`    Applies to: `MediaBrowser.Model.Entities.MediaStreamType.Video`    Related Enum: `Emby.Media.Model.Enums.ColorPrimaries`.  # noqa: E501

        :return: The color_primaries of this MediaStream.  # noqa: E501
        :rtype: str
        """
        return self._color_primaries

    @color_primaries.setter
    def color_primaries(self, color_primaries):
        """Sets the color_primaries of this MediaStream.

        The chromaticity coordinates of the source primaries.    Probe Field: `color_primaries`    Applies to: `MediaBrowser.Model.Entities.MediaStreamType.Video`    Related Enum: `Emby.Media.Model.Enums.ColorPrimaries`.  # noqa: E501

        :param color_primaries: The color_primaries of this MediaStream.  # noqa: E501
        :type: str
        """

        self._color_primaries = color_primaries

    @property
    def color_space(self):
        """Gets the color_space of this MediaStream.  # noqa: E501

        The YUV colorspace type.    Probe Field: `color_space`    Applies to: `MediaBrowser.Model.Entities.MediaStreamType.Video`    Related Enum: `Emby.Media.Model.Enums.ColorSpaces`.  # noqa: E501

        :return: The color_space of this MediaStream.  # noqa: E501
        :rtype: str
        """
        return self._color_space

    @color_space.setter
    def color_space(self, color_space):
        """Sets the color_space of this MediaStream.

        The YUV colorspace type.    Probe Field: `color_space`    Applies to: `MediaBrowser.Model.Entities.MediaStreamType.Video`    Related Enum: `Emby.Media.Model.Enums.ColorSpaces`.  # noqa: E501

        :param color_space: The color_space of this MediaStream.  # noqa: E501
        :type: str
        """

        self._color_space = color_space

    @property
    def comment(self):
        """Gets the comment of this MediaStream.  # noqa: E501

        The comment.    Probe Field: `tags[\"comment\"]`    Applies to: `MediaBrowser.Model.Entities.MediaStreamType.Video`, `MediaBrowser.Model.Entities.MediaStreamType.Audio`, `MediaBrowser.Model.Entities.MediaStreamType.Subtitle`.  # noqa: E501

        :return: The comment of this MediaStream.  # noqa: E501
        :rtype: str
        """
        return self._comment

    @comment.setter
    def comment(self, comment):
        """Sets the comment of this MediaStream.

        The comment.    Probe Field: `tags[\"comment\"]`    Applies to: `MediaBrowser.Model.Entities.MediaStreamType.Video`, `MediaBrowser.Model.Entities.MediaStreamType.Audio`, `MediaBrowser.Model.Entities.MediaStreamType.Subtitle`.  # noqa: E501

        :param comment: The comment of this MediaStream.  # noqa: E501
        :type: str
        """

        self._comment = comment

    @property
    def stream_start_time_ticks(self):
        """Gets the stream_start_time_ticks of this MediaStream.  # noqa: E501

        The start time of the stream.    Probe Field: `start_time`    Applies to: `MediaBrowser.Model.Entities.MediaStreamType.Video`, `MediaBrowser.Model.Entities.MediaStreamType.Audio`, `MediaBrowser.Model.Entities.MediaStreamType.Subtitle`.    Actual type: `System.TimeSpan`.  # noqa: E501

        :return: The stream_start_time_ticks of this MediaStream.  # noqa: E501
        :rtype: int
        """
        return self._stream_start_time_ticks

    @stream_start_time_ticks.setter
    def stream_start_time_ticks(self, stream_start_time_ticks):
        """Sets the stream_start_time_ticks of this MediaStream.

        The start time of the stream.    Probe Field: `start_time`    Applies to: `MediaBrowser.Model.Entities.MediaStreamType.Video`, `MediaBrowser.Model.Entities.MediaStreamType.Audio`, `MediaBrowser.Model.Entities.MediaStreamType.Subtitle`.    Actual type: `System.TimeSpan`.  # noqa: E501

        :param stream_start_time_ticks: The stream_start_time_ticks of this MediaStream.  # noqa: E501
        :type: int
        """

        self._stream_start_time_ticks = stream_start_time_ticks

    @property
    def time_base(self):
        """Gets the time_base of this MediaStream.  # noqa: E501

        The time\\-base.    Probe Field: `time_base`    Applies to: `MediaBrowser.Model.Entities.MediaStreamType.Video`, `MediaBrowser.Model.Entities.MediaStreamType.Audio`, `MediaBrowser.Model.Entities.MediaStreamType.Subtitle`.    Actual type: `Emby.Media.Model.Types.Rational`.  # noqa: E501

        :return: The time_base of this MediaStream.  # noqa: E501
        :rtype: str
        """
        return self._time_base

    @time_base.setter
    def time_base(self, time_base):
        """Sets the time_base of this MediaStream.

        The time\\-base.    Probe Field: `time_base`    Applies to: `MediaBrowser.Model.Entities.MediaStreamType.Video`, `MediaBrowser.Model.Entities.MediaStreamType.Audio`, `MediaBrowser.Model.Entities.MediaStreamType.Subtitle`.    Actual type: `Emby.Media.Model.Types.Rational`.  # noqa: E501

        :param time_base: The time_base of this MediaStream.  # noqa: E501
        :type: str
        """

        self._time_base = time_base

    @property
    def title(self):
        """Gets the title of this MediaStream.  # noqa: E501

        The title.    Probe Field: `tags[\"title\"]`    Applies to: `MediaBrowser.Model.Entities.MediaStreamType.Video`, `MediaBrowser.Model.Entities.MediaStreamType.Audio`, `MediaBrowser.Model.Entities.MediaStreamType.Subtitle`.  # noqa: E501

        :return: The title of this MediaStream.  # noqa: E501
        :rtype: str
        """
        return self._title

    @title.setter
    def title(self, title):
        """Sets the title of this MediaStream.

        The title.    Probe Field: `tags[\"title\"]`    Applies to: `MediaBrowser.Model.Entities.MediaStreamType.Video`, `MediaBrowser.Model.Entities.MediaStreamType.Audio`, `MediaBrowser.Model.Entities.MediaStreamType.Subtitle`.  # noqa: E501

        :param title: The title of this MediaStream.  # noqa: E501
        :type: str
        """

        self._title = title

    @property
    def extradata(self):
        """Gets the extradata of this MediaStream.  # noqa: E501

        The extradata.    Probe Field: `extradata`    Applies to: `MediaBrowser.Model.Entities.MediaStreamType.Video`, `MediaBrowser.Model.Entities.MediaStreamType.Audio`, `MediaBrowser.Model.Entities.MediaStreamType.Subtitle`.    Currently, this value is only parsed for subtitle streams with codec `Emby.Media.Model.Enums.SubtitleMediaTypes.dvb_teletext`.  # noqa: E501

        :return: The extradata of this MediaStream.  # noqa: E501
        :rtype: str
        """
        return self._extradata

    @extradata.setter
    def extradata(self, extradata):
        """Sets the extradata of this MediaStream.

        The extradata.    Probe Field: `extradata`    Applies to: `MediaBrowser.Model.Entities.MediaStreamType.Video`, `MediaBrowser.Model.Entities.MediaStreamType.Audio`, `MediaBrowser.Model.Entities.MediaStreamType.Subtitle`.    Currently, this value is only parsed for subtitle streams with codec `Emby.Media.Model.Enums.SubtitleMediaTypes.dvb_teletext`.  # noqa: E501

        :param extradata: The extradata of this MediaStream.  # noqa: E501
        :type: str
        """

        self._extradata = extradata

    @property
    def video_range(self):
        """Gets the video_range of this MediaStream.  # noqa: E501


        :return: The video_range of this MediaStream.  # noqa: E501
        :rtype: str
        """
        return self._video_range

    @video_range.setter
    def video_range(self, video_range):
        """Sets the video_range of this MediaStream.


        :param video_range: The video_range of this MediaStream.  # noqa: E501
        :type: str
        """

        self._video_range = video_range

    @property
    def display_title(self):
        """Gets the display_title of this MediaStream.  # noqa: E501

        The display title.    Custom property set by the application.  # noqa: E501

        :return: The display_title of this MediaStream.  # noqa: E501
        :rtype: str
        """
        return self._display_title

    @display_title.setter
    def display_title(self, display_title):
        """Sets the display_title of this MediaStream.

        The display title.    Custom property set by the application.  # noqa: E501

        :param display_title: The display_title of this MediaStream.  # noqa: E501
        :type: str
        """

        self._display_title = display_title

    @property
    def display_language(self):
        """Gets the display_language of this MediaStream.  # noqa: E501

        The display language.    Custom property set by the application.  # noqa: E501

        :return: The display_language of this MediaStream.  # noqa: E501
        :rtype: str
        """
        return self._display_language

    @display_language.setter
    def display_language(self, display_language):
        """Sets the display_language of this MediaStream.

        The display language.    Custom property set by the application.  # noqa: E501

        :param display_language: The display_language of this MediaStream.  # noqa: E501
        :type: str
        """

        self._display_language = display_language

    @property
    def nal_length_size(self):
        """Gets the nal_length_size of this MediaStream.  # noqa: E501

        The nal length size.    Probe Field: `nal_length_size`    Applies to: `MediaBrowser.Model.Entities.MediaStreamType.Video` of type `Emby.Media.Model.Enums.VideoMediaTypes.h264`.    Actual type: `System.Int32`.  # noqa: E501

        :return: The nal_length_size of this MediaStream.  # noqa: E501
        :rtype: str
        """
        return self._nal_length_size

    @nal_length_size.setter
    def nal_length_size(self, nal_length_size):
        """Sets the nal_length_size of this MediaStream.

        The nal length size.    Probe Field: `nal_length_size`    Applies to: `MediaBrowser.Model.Entities.MediaStreamType.Video` of type `Emby.Media.Model.Enums.VideoMediaTypes.h264`.    Actual type: `System.Int32`.  # noqa: E501

        :param nal_length_size: The nal_length_size of this MediaStream.  # noqa: E501
        :type: str
        """

        self._nal_length_size = nal_length_size

    @property
    def is_interlaced(self):
        """Gets the is_interlaced of this MediaStream.  # noqa: E501

        A value indicating whether this instance is interlaced.    Probe Field: `field_order` \\!\\= `progressive`    Applies to: `MediaBrowser.Model.Entities.MediaStreamType.Video`.  # noqa: E501

        :return: The is_interlaced of this MediaStream.  # noqa: E501
        :rtype: bool
        """
        return self._is_interlaced

    @is_interlaced.setter
    def is_interlaced(self, is_interlaced):
        """Sets the is_interlaced of this MediaStream.

        A value indicating whether this instance is interlaced.    Probe Field: `field_order` \\!\\= `progressive`    Applies to: `MediaBrowser.Model.Entities.MediaStreamType.Video`.  # noqa: E501

        :param is_interlaced: The is_interlaced of this MediaStream.  # noqa: E501
        :type: bool
        """

        self._is_interlaced = is_interlaced

    @property
    def is_avc(self):
        """Gets the is_avc of this MediaStream.  # noqa: E501


        :return: The is_avc of this MediaStream.  # noqa: E501
        :rtype: bool
        """
        return self._is_avc

    @is_avc.setter
    def is_avc(self, is_avc):
        """Sets the is_avc of this MediaStream.


        :param is_avc: The is_avc of this MediaStream.  # noqa: E501
        :type: bool
        """

        self._is_avc = is_avc

    @property
    def channel_layout(self):
        """Gets the channel_layout of this MediaStream.  # noqa: E501

        The channel layout.    Probe Field: `channel_layout`    Applies to: `MediaBrowser.Model.Entities.MediaStreamType.Audio`    Related Enum: `MediaBrowser.Model.Entities.MediaStream.ChannelLayout`.  # noqa: E501

        :return: The channel_layout of this MediaStream.  # noqa: E501
        :rtype: str
        """
        return self._channel_layout

    @channel_layout.setter
    def channel_layout(self, channel_layout):
        """Sets the channel_layout of this MediaStream.

        The channel layout.    Probe Field: `channel_layout`    Applies to: `MediaBrowser.Model.Entities.MediaStreamType.Audio`    Related Enum: `MediaBrowser.Model.Entities.MediaStream.ChannelLayout`.  # noqa: E501

        :param channel_layout: The channel_layout of this MediaStream.  # noqa: E501
        :type: str
        """

        self._channel_layout = channel_layout

    @property
    def bit_rate(self):
        """Gets the bit_rate of this MediaStream.  # noqa: E501

        The bit rate.    Probe Field: `bit_rate`    Applies to: `MediaBrowser.Model.Entities.MediaStreamType.Video`, `MediaBrowser.Model.Entities.MediaStreamType.Audio`.    THIS VALUE IS PROCESSED BY CUSTOM LOGIC AND DOES NOT NECESSARILY MATCH FFPROBE RESULTS\\!  # noqa: E501

        :return: The bit_rate of this MediaStream.  # noqa: E501
        :rtype: int
        """
        return self._bit_rate

    @bit_rate.setter
    def bit_rate(self, bit_rate):
        """Sets the bit_rate of this MediaStream.

        The bit rate.    Probe Field: `bit_rate`    Applies to: `MediaBrowser.Model.Entities.MediaStreamType.Video`, `MediaBrowser.Model.Entities.MediaStreamType.Audio`.    THIS VALUE IS PROCESSED BY CUSTOM LOGIC AND DOES NOT NECESSARILY MATCH FFPROBE RESULTS\\!  # noqa: E501

        :param bit_rate: The bit_rate of this MediaStream.  # noqa: E501
        :type: int
        """

        self._bit_rate = bit_rate

    @property
    def bit_depth(self):
        """Gets the bit_depth of this MediaStream.  # noqa: E501

        The bit depth.    Probe Field: `bits_per_sample` or `bits_per_raw_sample`    Applies to: `MediaBrowser.Model.Entities.MediaStreamType.Video`, `MediaBrowser.Model.Entities.MediaStreamType.Audio`.  # noqa: E501

        :return: The bit_depth of this MediaStream.  # noqa: E501
        :rtype: int
        """
        return self._bit_depth

    @bit_depth.setter
    def bit_depth(self, bit_depth):
        """Sets the bit_depth of this MediaStream.

        The bit depth.    Probe Field: `bits_per_sample` or `bits_per_raw_sample`    Applies to: `MediaBrowser.Model.Entities.MediaStreamType.Video`, `MediaBrowser.Model.Entities.MediaStreamType.Audio`.  # noqa: E501

        :param bit_depth: The bit_depth of this MediaStream.  # noqa: E501
        :type: int
        """

        self._bit_depth = bit_depth

    @property
    def ref_frames(self):
        """Gets the ref_frames of this MediaStream.  # noqa: E501

        The reference frames.    Probe Field: `refs`    Applies to: `MediaBrowser.Model.Entities.MediaStreamType.Video`.  # noqa: E501

        :return: The ref_frames of this MediaStream.  # noqa: E501
        :rtype: int
        """
        return self._ref_frames

    @ref_frames.setter
    def ref_frames(self, ref_frames):
        """Sets the ref_frames of this MediaStream.

        The reference frames.    Probe Field: `refs`    Applies to: `MediaBrowser.Model.Entities.MediaStreamType.Video`.  # noqa: E501

        :param ref_frames: The ref_frames of this MediaStream.  # noqa: E501
        :type: int
        """

        self._ref_frames = ref_frames

    @property
    def rotation(self):
        """Gets the rotation of this MediaStream.  # noqa: E501


        :return: The rotation of this MediaStream.  # noqa: E501
        :rtype: int
        """
        return self._rotation

    @rotation.setter
    def rotation(self, rotation):
        """Sets the rotation of this MediaStream.


        :param rotation: The rotation of this MediaStream.  # noqa: E501
        :type: int
        """

        self._rotation = rotation

    @property
    def channels(self):
        """Gets the channels of this MediaStream.  # noqa: E501

        The audio channel count.    Probe Field: `channels`    Applies to: `MediaBrowser.Model.Entities.MediaStreamType.Audio`.  # noqa: E501

        :return: The channels of this MediaStream.  # noqa: E501
        :rtype: int
        """
        return self._channels

    @channels.setter
    def channels(self, channels):
        """Sets the channels of this MediaStream.

        The audio channel count.    Probe Field: `channels`    Applies to: `MediaBrowser.Model.Entities.MediaStreamType.Audio`.  # noqa: E501

        :param channels: The channels of this MediaStream.  # noqa: E501
        :type: int
        """

        self._channels = channels

    @property
    def sample_rate(self):
        """Gets the sample_rate of this MediaStream.  # noqa: E501

        The sample rate.    Probe Field: `sample_rate`    Applies to: `MediaBrowser.Model.Entities.MediaStreamType.Audio`    Related Enum: `Emby.Media.Model.Enums.SampleRates`.  # noqa: E501

        :return: The sample_rate of this MediaStream.  # noqa: E501
        :rtype: int
        """
        return self._sample_rate

    @sample_rate.setter
    def sample_rate(self, sample_rate):
        """Sets the sample_rate of this MediaStream.

        The sample rate.    Probe Field: `sample_rate`    Applies to: `MediaBrowser.Model.Entities.MediaStreamType.Audio`    Related Enum: `Emby.Media.Model.Enums.SampleRates`.  # noqa: E501

        :param sample_rate: The sample_rate of this MediaStream.  # noqa: E501
        :type: int
        """

        self._sample_rate = sample_rate

    @property
    def is_default(self):
        """Gets the is_default of this MediaStream.  # noqa: E501

        A value indicating whether this instance is default.    Probe Field: `disposition[\"default\"]`    Applies to: `MediaBrowser.Model.Entities.MediaStreamType.Video`, `MediaBrowser.Model.Entities.MediaStreamType.Audio`, `MediaBrowser.Model.Entities.MediaStreamType.Subtitle`.  # noqa: E501

        :return: The is_default of this MediaStream.  # noqa: E501
        :rtype: bool
        """
        return self._is_default

    @is_default.setter
    def is_default(self, is_default):
        """Sets the is_default of this MediaStream.

        A value indicating whether this instance is default.    Probe Field: `disposition[\"default\"]`    Applies to: `MediaBrowser.Model.Entities.MediaStreamType.Video`, `MediaBrowser.Model.Entities.MediaStreamType.Audio`, `MediaBrowser.Model.Entities.MediaStreamType.Subtitle`.  # noqa: E501

        :param is_default: The is_default of this MediaStream.  # noqa: E501
        :type: bool
        """

        self._is_default = is_default

    @property
    def is_forced(self):
        """Gets the is_forced of this MediaStream.  # noqa: E501

        A value indicating whether this instance is forced.    Probe Field: `disposition[\"forced\"]`    Applies to: `MediaBrowser.Model.Entities.MediaStreamType.Video`, `MediaBrowser.Model.Entities.MediaStreamType.Audio`, `MediaBrowser.Model.Entities.MediaStreamType.Subtitle`.  # noqa: E501

        :return: The is_forced of this MediaStream.  # noqa: E501
        :rtype: bool
        """
        return self._is_forced

    @is_forced.setter
    def is_forced(self, is_forced):
        """Sets the is_forced of this MediaStream.

        A value indicating whether this instance is forced.    Probe Field: `disposition[\"forced\"]`    Applies to: `MediaBrowser.Model.Entities.MediaStreamType.Video`, `MediaBrowser.Model.Entities.MediaStreamType.Audio`, `MediaBrowser.Model.Entities.MediaStreamType.Subtitle`.  # noqa: E501

        :param is_forced: The is_forced of this MediaStream.  # noqa: E501
        :type: bool
        """

        self._is_forced = is_forced

    @property
    def is_hearing_impaired(self):
        """Gets the is_hearing_impaired of this MediaStream.  # noqa: E501


        :return: The is_hearing_impaired of this MediaStream.  # noqa: E501
        :rtype: bool
        """
        return self._is_hearing_impaired

    @is_hearing_impaired.setter
    def is_hearing_impaired(self, is_hearing_impaired):
        """Sets the is_hearing_impaired of this MediaStream.


        :param is_hearing_impaired: The is_hearing_impaired of this MediaStream.  # noqa: E501
        :type: bool
        """

        self._is_hearing_impaired = is_hearing_impaired

    @property
    def height(self):
        """Gets the height of this MediaStream.  # noqa: E501

        The height.    Probe Field: `height`    Applies to: `MediaBrowser.Model.Entities.MediaStreamType.Video`.  # noqa: E501

        :return: The height of this MediaStream.  # noqa: E501
        :rtype: int
        """
        return self._height

    @height.setter
    def height(self, height):
        """Sets the height of this MediaStream.

        The height.    Probe Field: `height`    Applies to: `MediaBrowser.Model.Entities.MediaStreamType.Video`.  # noqa: E501

        :param height: The height of this MediaStream.  # noqa: E501
        :type: int
        """

        self._height = height

    @property
    def width(self):
        """Gets the width of this MediaStream.  # noqa: E501

        The width.    Probe Field: `width`    Applies to: `MediaBrowser.Model.Entities.MediaStreamType.Video`.  # noqa: E501

        :return: The width of this MediaStream.  # noqa: E501
        :rtype: int
        """
        return self._width

    @width.setter
    def width(self, width):
        """Sets the width of this MediaStream.

        The width.    Probe Field: `width`    Applies to: `MediaBrowser.Model.Entities.MediaStreamType.Video`.  # noqa: E501

        :param width: The width of this MediaStream.  # noqa: E501
        :type: int
        """

        self._width = width

    @property
    def average_frame_rate(self):
        """Gets the average_frame_rate of this MediaStream.  # noqa: E501

        The average frame rate..    Probe Field: `avg_frame_rate`    Applies to: `MediaBrowser.Model.Entities.MediaStreamType.Video`.    Actual type: `Emby.Media.Model.Types.Rational`.  # noqa: E501

        :return: The average_frame_rate of this MediaStream.  # noqa: E501
        :rtype: float
        """
        return self._average_frame_rate

    @average_frame_rate.setter
    def average_frame_rate(self, average_frame_rate):
        """Sets the average_frame_rate of this MediaStream.

        The average frame rate..    Probe Field: `avg_frame_rate`    Applies to: `MediaBrowser.Model.Entities.MediaStreamType.Video`.    Actual type: `Emby.Media.Model.Types.Rational`.  # noqa: E501

        :param average_frame_rate: The average_frame_rate of this MediaStream.  # noqa: E501
        :type: float
        """

        self._average_frame_rate = average_frame_rate

    @property
    def real_frame_rate(self):
        """Gets the real_frame_rate of this MediaStream.  # noqa: E501

        The real frame rate..    Probe Field: `r_frame_rate`    Applies to: `MediaBrowser.Model.Entities.MediaStreamType.Video`.    Actual type: `Emby.Media.Model.Types.Rational`.  # noqa: E501

        :return: The real_frame_rate of this MediaStream.  # noqa: E501
        :rtype: float
        """
        return self._real_frame_rate

    @real_frame_rate.setter
    def real_frame_rate(self, real_frame_rate):
        """Sets the real_frame_rate of this MediaStream.

        The real frame rate..    Probe Field: `r_frame_rate`    Applies to: `MediaBrowser.Model.Entities.MediaStreamType.Video`.    Actual type: `Emby.Media.Model.Types.Rational`.  # noqa: E501

        :param real_frame_rate: The real_frame_rate of this MediaStream.  # noqa: E501
        :type: float
        """

        self._real_frame_rate = real_frame_rate

    @property
    def profile(self):
        """Gets the profile of this MediaStream.  # noqa: E501

        The profile.    Probe Field: `profile`    Applies to: `MediaBrowser.Model.Entities.MediaStreamType.Video`, `MediaBrowser.Model.Entities.MediaStreamType.Audio`    Related Enums: `Emby.Media.Model.Enums.AacProfiles`, `Emby.Media.Model.Enums.AvcProfiles`, `Emby.Media.Model.Enums.H263Profiles`, `Emby.Media.Model.Enums.HevcProfiles`, `Emby.Media.Model.Enums.Mpeg2Profiles`,`Emby.Media.Model.Enums.Vc1Profiles`, `Emby.Media.Model.Enums.Mpeg4Profiles`, `Emby.Media.Model.Enums.Vp8Profiles`, `Emby.Media.Model.Enums.Vp9Profiles`.  # noqa: E501

        :return: The profile of this MediaStream.  # noqa: E501
        :rtype: str
        """
        return self._profile

    @profile.setter
    def profile(self, profile):
        """Sets the profile of this MediaStream.

        The profile.    Probe Field: `profile`    Applies to: `MediaBrowser.Model.Entities.MediaStreamType.Video`, `MediaBrowser.Model.Entities.MediaStreamType.Audio`    Related Enums: `Emby.Media.Model.Enums.AacProfiles`, `Emby.Media.Model.Enums.AvcProfiles`, `Emby.Media.Model.Enums.H263Profiles`, `Emby.Media.Model.Enums.HevcProfiles`, `Emby.Media.Model.Enums.Mpeg2Profiles`,`Emby.Media.Model.Enums.Vc1Profiles`, `Emby.Media.Model.Enums.Mpeg4Profiles`, `Emby.Media.Model.Enums.Vp8Profiles`, `Emby.Media.Model.Enums.Vp9Profiles`.  # noqa: E501

        :param profile: The profile of this MediaStream.  # noqa: E501
        :type: str
        """

        self._profile = profile

    @property
    def type(self):
        """Gets the type of this MediaStream.  # noqa: E501


        :return: The type of this MediaStream.  # noqa: E501
        :rtype: MediaStreamType
        """
        return self._type

    @type.setter
    def type(self, type):
        """Sets the type of this MediaStream.


        :param type: The type of this MediaStream.  # noqa: E501
        :type: MediaStreamType
        """

        self._type = type

    @property
    def aspect_ratio(self):
        """Gets the aspect_ratio of this MediaStream.  # noqa: E501

        The aspect ratio.    Probe Field: `display_aspect_ratio`    Applies to: `MediaBrowser.Model.Entities.MediaStreamType.Video`.    Actual type: `Emby.Media.Model.Types.Rational`.  # noqa: E501

        :return: The aspect_ratio of this MediaStream.  # noqa: E501
        :rtype: str
        """
        return self._aspect_ratio

    @aspect_ratio.setter
    def aspect_ratio(self, aspect_ratio):
        """Sets the aspect_ratio of this MediaStream.

        The aspect ratio.    Probe Field: `display_aspect_ratio`    Applies to: `MediaBrowser.Model.Entities.MediaStreamType.Video`.    Actual type: `Emby.Media.Model.Types.Rational`.  # noqa: E501

        :param aspect_ratio: The aspect_ratio of this MediaStream.  # noqa: E501
        :type: str
        """

        self._aspect_ratio = aspect_ratio

    @property
    def index(self):
        """Gets the index of this MediaStream.  # noqa: E501

        The index of the stream inside its container.    Probe Field: `index`    Applies to: `MediaBrowser.Model.Entities.MediaStreamType.Video`, `MediaBrowser.Model.Entities.MediaStreamType.Audio`, `MediaBrowser.Model.Entities.MediaStreamType.Subtitle`.  # noqa: E501

        :return: The index of this MediaStream.  # noqa: E501
        :rtype: int
        """
        return self._index

    @index.setter
    def index(self, index):
        """Sets the index of this MediaStream.

        The index of the stream inside its container.    Probe Field: `index`    Applies to: `MediaBrowser.Model.Entities.MediaStreamType.Video`, `MediaBrowser.Model.Entities.MediaStreamType.Audio`, `MediaBrowser.Model.Entities.MediaStreamType.Subtitle`.  # noqa: E501

        :param index: The index of this MediaStream.  # noqa: E501
        :type: int
        """

        self._index = index

    @property
    def is_external(self):
        """Gets the is_external of this MediaStream.  # noqa: E501

        A value indicating whether this instance is external.    Custom property set by the application.  # noqa: E501

        :return: The is_external of this MediaStream.  # noqa: E501
        :rtype: bool
        """
        return self._is_external

    @is_external.setter
    def is_external(self, is_external):
        """Sets the is_external of this MediaStream.

        A value indicating whether this instance is external.    Custom property set by the application.  # noqa: E501

        :param is_external: The is_external of this MediaStream.  # noqa: E501
        :type: bool
        """

        self._is_external = is_external

    @property
    def delivery_method(self):
        """Gets the delivery_method of this MediaStream.  # noqa: E501


        :return: The delivery_method of this MediaStream.  # noqa: E501
        :rtype: SubtitleDeliveryMethod
        """
        return self._delivery_method

    @delivery_method.setter
    def delivery_method(self, delivery_method):
        """Sets the delivery_method of this MediaStream.


        :param delivery_method: The delivery_method of this MediaStream.  # noqa: E501
        :type: SubtitleDeliveryMethod
        """

        self._delivery_method = delivery_method

    @property
    def delivery_url(self):
        """Gets the delivery_url of this MediaStream.  # noqa: E501

        The delivery URL.    Custom property set by the application.  # noqa: E501

        :return: The delivery_url of this MediaStream.  # noqa: E501
        :rtype: str
        """
        return self._delivery_url

    @delivery_url.setter
    def delivery_url(self, delivery_url):
        """Sets the delivery_url of this MediaStream.

        The delivery URL.    Custom property set by the application.  # noqa: E501

        :param delivery_url: The delivery_url of this MediaStream.  # noqa: E501
        :type: str
        """

        self._delivery_url = delivery_url

    @property
    def is_external_url(self):
        """Gets the is_external_url of this MediaStream.  # noqa: E501

        A value indicating whether this instance is external URL.    Custom property set by the application.  # noqa: E501

        :return: The is_external_url of this MediaStream.  # noqa: E501
        :rtype: bool
        """
        return self._is_external_url

    @is_external_url.setter
    def is_external_url(self, is_external_url):
        """Sets the is_external_url of this MediaStream.

        A value indicating whether this instance is external URL.    Custom property set by the application.  # noqa: E501

        :param is_external_url: The is_external_url of this MediaStream.  # noqa: E501
        :type: bool
        """

        self._is_external_url = is_external_url

    @property
    def is_text_subtitle_stream(self):
        """Gets the is_text_subtitle_stream of this MediaStream.  # noqa: E501


        :return: The is_text_subtitle_stream of this MediaStream.  # noqa: E501
        :rtype: bool
        """
        return self._is_text_subtitle_stream

    @is_text_subtitle_stream.setter
    def is_text_subtitle_stream(self, is_text_subtitle_stream):
        """Sets the is_text_subtitle_stream of this MediaStream.


        :param is_text_subtitle_stream: The is_text_subtitle_stream of this MediaStream.  # noqa: E501
        :type: bool
        """

        self._is_text_subtitle_stream = is_text_subtitle_stream

    @property
    def supports_external_stream(self):
        """Gets the supports_external_stream of this MediaStream.  # noqa: E501

        A value indicating whether \\[supports external stream\\].  # noqa: E501

        :return: The supports_external_stream of this MediaStream.  # noqa: E501
        :rtype: bool
        """
        return self._supports_external_stream

    @supports_external_stream.setter
    def supports_external_stream(self, supports_external_stream):
        """Sets the supports_external_stream of this MediaStream.

        A value indicating whether \\[supports external stream\\].  # noqa: E501

        :param supports_external_stream: The supports_external_stream of this MediaStream.  # noqa: E501
        :type: bool
        """

        self._supports_external_stream = supports_external_stream

    @property
    def path(self):
        """Gets the path of this MediaStream.  # noqa: E501

        The filename.  # noqa: E501

        :return: The path of this MediaStream.  # noqa: E501
        :rtype: str
        """
        return self._path

    @path.setter
    def path(self, path):
        """Sets the path of this MediaStream.

        The filename.  # noqa: E501

        :param path: The path of this MediaStream.  # noqa: E501
        :type: str
        """

        self._path = path

    @property
    def protocol(self):
        """Gets the protocol of this MediaStream.  # noqa: E501


        :return: The protocol of this MediaStream.  # noqa: E501
        :rtype: MediaProtocol
        """
        return self._protocol

    @protocol.setter
    def protocol(self, protocol):
        """Sets the protocol of this MediaStream.


        :param protocol: The protocol of this MediaStream.  # noqa: E501
        :type: MediaProtocol
        """

        self._protocol = protocol

    @property
    def pixel_format(self):
        """Gets the pixel_format of this MediaStream.  # noqa: E501

        The pixel format.    Probe Field: `pix_fmt`    Applies to: `MediaBrowser.Model.Entities.MediaStreamType.Video`.    Actual type: `MediaBrowser.Model.Entities.MediaStream.PixelFormat`.  # noqa: E501

        :return: The pixel_format of this MediaStream.  # noqa: E501
        :rtype: str
        """
        return self._pixel_format

    @pixel_format.setter
    def pixel_format(self, pixel_format):
        """Sets the pixel_format of this MediaStream.

        The pixel format.    Probe Field: `pix_fmt`    Applies to: `MediaBrowser.Model.Entities.MediaStreamType.Video`.    Actual type: `MediaBrowser.Model.Entities.MediaStream.PixelFormat`.  # noqa: E501

        :param pixel_format: The pixel_format of this MediaStream.  # noqa: E501
        :type: str
        """

        self._pixel_format = pixel_format

    @property
    def level(self):
        """Gets the level of this MediaStream.  # noqa: E501

        The codec level.    Probe Field: `level`    Applies to: `MediaBrowser.Model.Entities.MediaStreamType.Video`    Related Enums: `Emby.Media.Model.Enums.AvcLevels`, `Emby.Media.Model.Enums.H263Levels`, `Emby.Media.Model.Enums.HevcLevels`, `Emby.Media.Model.Enums.Mpeg2Levels`,`Emby.Media.Model.Enums.Vc1Levels`, `Emby.Media.Model.Enums.Mpeg4Levels`, `Emby.Media.Model.Enums.Vp8Levels`, `Emby.Media.Model.Enums.Vp9Levels`.  # noqa: E501

        :return: The level of this MediaStream.  # noqa: E501
        :rtype: float
        """
        return self._level

    @level.setter
    def level(self, level):
        """Sets the level of this MediaStream.

        The codec level.    Probe Field: `level`    Applies to: `MediaBrowser.Model.Entities.MediaStreamType.Video`    Related Enums: `Emby.Media.Model.Enums.AvcLevels`, `Emby.Media.Model.Enums.H263Levels`, `Emby.Media.Model.Enums.HevcLevels`, `Emby.Media.Model.Enums.Mpeg2Levels`,`Emby.Media.Model.Enums.Vc1Levels`, `Emby.Media.Model.Enums.Mpeg4Levels`, `Emby.Media.Model.Enums.Vp8Levels`, `Emby.Media.Model.Enums.Vp9Levels`.  # noqa: E501

        :param level: The level of this MediaStream.  # noqa: E501
        :type: float
        """

        self._level = level

    @property
    def is_anamorphic(self):
        """Gets the is_anamorphic of this MediaStream.  # noqa: E501

        A value indicating whether this instance is anamorphic.  # noqa: E501

        :return: The is_anamorphic of this MediaStream.  # noqa: E501
        :rtype: bool
        """
        return self._is_anamorphic

    @is_anamorphic.setter
    def is_anamorphic(self, is_anamorphic):
        """Sets the is_anamorphic of this MediaStream.

        A value indicating whether this instance is anamorphic.  # noqa: E501

        :param is_anamorphic: The is_anamorphic of this MediaStream.  # noqa: E501
        :type: bool
        """

        self._is_anamorphic = is_anamorphic

    @property
    def extended_video_type(self):
        """Gets the extended_video_type of this MediaStream.  # noqa: E501


        :return: The extended_video_type of this MediaStream.  # noqa: E501
        :rtype: ExtendedVideoTypes
        """
        return self._extended_video_type

    @extended_video_type.setter
    def extended_video_type(self, extended_video_type):
        """Sets the extended_video_type of this MediaStream.


        :param extended_video_type: The extended_video_type of this MediaStream.  # noqa: E501
        :type: ExtendedVideoTypes
        """

        self._extended_video_type = extended_video_type

    @property
    def extended_video_sub_type(self):
        """Gets the extended_video_sub_type of this MediaStream.  # noqa: E501


        :return: The extended_video_sub_type of this MediaStream.  # noqa: E501
        :rtype: ExtendedVideoSubTypes
        """
        return self._extended_video_sub_type

    @extended_video_sub_type.setter
    def extended_video_sub_type(self, extended_video_sub_type):
        """Sets the extended_video_sub_type of this MediaStream.


        :param extended_video_sub_type: The extended_video_sub_type of this MediaStream.  # noqa: E501
        :type: ExtendedVideoSubTypes
        """

        self._extended_video_sub_type = extended_video_sub_type

    @property
    def extended_video_sub_type_description(self):
        """Gets the extended_video_sub_type_description of this MediaStream.  # noqa: E501

        The extended video sub\\-type description.  # noqa: E501

        :return: The extended_video_sub_type_description of this MediaStream.  # noqa: E501
        :rtype: str
        """
        return self._extended_video_sub_type_description

    @extended_video_sub_type_description.setter
    def extended_video_sub_type_description(self, extended_video_sub_type_description):
        """Sets the extended_video_sub_type_description of this MediaStream.

        The extended video sub\\-type description.  # noqa: E501

        :param extended_video_sub_type_description: The extended_video_sub_type_description of this MediaStream.  # noqa: E501
        :type: str
        """

        self._extended_video_sub_type_description = extended_video_sub_type_description

    @property
    def item_id(self):
        """Gets the item_id of this MediaStream.  # noqa: E501

        Used only by our Windows app. Not used by Emby Server.  # noqa: E501

        :return: The item_id of this MediaStream.  # noqa: E501
        :rtype: str
        """
        return self._item_id

    @item_id.setter
    def item_id(self, item_id):
        """Sets the item_id of this MediaStream.

        Used only by our Windows app. Not used by Emby Server.  # noqa: E501

        :param item_id: The item_id of this MediaStream.  # noqa: E501
        :type: str
        """

        self._item_id = item_id

    @property
    def server_id(self):
        """Gets the server_id of this MediaStream.  # noqa: E501

        Used only by our Windows app. Not used by Emby Server.  # noqa: E501

        :return: The server_id of this MediaStream.  # noqa: E501
        :rtype: str
        """
        return self._server_id

    @server_id.setter
    def server_id(self, server_id):
        """Sets the server_id of this MediaStream.

        Used only by our Windows app. Not used by Emby Server.  # noqa: E501

        :param server_id: The server_id of this MediaStream.  # noqa: E501
        :type: str
        """

        self._server_id = server_id

    @property
    def attachment_size(self):
        """Gets the attachment_size of this MediaStream.  # noqa: E501

        The size of the attachment.  # noqa: E501

        :return: The attachment_size of this MediaStream.  # noqa: E501
        :rtype: int
        """
        return self._attachment_size

    @attachment_size.setter
    def attachment_size(self, attachment_size):
        """Sets the attachment_size of this MediaStream.

        The size of the attachment.  # noqa: E501

        :param attachment_size: The attachment_size of this MediaStream.  # noqa: E501
        :type: int
        """

        self._attachment_size = attachment_size

    @property
    def mime_type(self):
        """Gets the mime_type of this MediaStream.  # noqa: E501

        The type of the MIME.  # noqa: E501

        :return: The mime_type of this MediaStream.  # noqa: E501
        :rtype: str
        """
        return self._mime_type

    @mime_type.setter
    def mime_type(self, mime_type):
        """Sets the mime_type of this MediaStream.

        The type of the MIME.  # noqa: E501

        :param mime_type: The mime_type of this MediaStream.  # noqa: E501
        :type: str
        """

        self._mime_type = mime_type

    @property
    def subtitle_location_type(self):
        """Gets the subtitle_location_type of this MediaStream.  # noqa: E501


        :return: The subtitle_location_type of this MediaStream.  # noqa: E501
        :rtype: SubtitleLocationType
        """
        return self._subtitle_location_type

    @subtitle_location_type.setter
    def subtitle_location_type(self, subtitle_location_type):
        """Sets the subtitle_location_type of this MediaStream.


        :param subtitle_location_type: The subtitle_location_type of this MediaStream.  # noqa: E501
        :type: SubtitleLocationType
        """

        self._subtitle_location_type = subtitle_location_type

    def to_dict(self):
        """Returns the model properties as a dict"""
        result = {}

        for attr, _ in six.iteritems(self.swagger_types):
            value = getattr(self, attr)
            if isinstance(value, list):
                result[attr] = list(map(
                    lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
                    value
                ))
            elif hasattr(value, "to_dict"):
                result[attr] = value.to_dict()
            elif isinstance(value, dict):
                result[attr] = dict(map(
                    lambda item: (item[0], item[1].to_dict())
                    if hasattr(item[1], "to_dict") else item,
                    value.items()
                ))
            else:
                result[attr] = value
        if issubclass(MediaStream, dict):
            for key, value in self.items():
                result[key] = value

        return result

    def to_str(self):
        """Returns the string representation of the model"""
        return pprint.pformat(self.to_dict())

    def __repr__(self):
        """For `print` and `pprint`"""
        return self.to_str()

    def __eq__(self, other):
        """Returns true if both objects are equal"""
        if not isinstance(other, MediaStream):
            return False

        return self.__dict__ == other.__dict__

    def __ne__(self, other):
        """Returns true if both objects are not equal"""
        return not self == other
