fastpixapi 1.1.2 → 1.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (112) hide show
  1. checksums.yaml +4 -4
  2. data/lib/crystalline/metadata_fields.rb +56 -48
  3. data/lib/crystalline/types.rb +3 -3
  4. data/lib/crystalline.rb +4 -5
  5. data/lib/fastpix_client/dimensions.rb +54 -61
  6. data/lib/fastpix_client/drm_configurations.rb +49 -56
  7. data/lib/fastpix_client/errors.rb +36 -25
  8. data/lib/fastpix_client/fastpixapi.rb +2 -4
  9. data/lib/fastpix_client/in_video_ai_features.rb +108 -168
  10. data/lib/fastpix_client/input_video.rb +70 -77
  11. data/lib/fastpix_client/live_playback.rb +82 -99
  12. data/lib/fastpix_client/manage_live_stream.rb +149 -264
  13. data/lib/fastpix_client/manage_videos.rb +249 -566
  14. data/lib/fastpix_client/metrics.rb +79 -123
  15. data/lib/fastpix_client/models/components/addtrackrequest.rb +6 -2
  16. data/lib/fastpix_client/models/components/addtrackrequest.rbi +2 -0
  17. data/lib/fastpix_client/models/components/addtrackresponse.rb +6 -2
  18. data/lib/fastpix_client/models/components/addtrackresponse.rbi +2 -0
  19. data/lib/fastpix_client/models/components/audiotrack.rb +6 -2
  20. data/lib/fastpix_client/models/components/audiotrack.rbi +2 -0
  21. data/lib/fastpix_client/models/components/createlivestreamresponsedto.rb +10 -18
  22. data/lib/fastpix_client/models/components/createmediarequest.rb +9 -18
  23. data/lib/fastpix_client/models/components/generatetrackresponse.rb +6 -2
  24. data/lib/fastpix_client/models/components/generatetrackresponse.rbi +2 -0
  25. data/lib/fastpix_client/models/components/getallmediaresponse.rb +20 -38
  26. data/lib/fastpix_client/models/components/getallmediaresponse.rbi +2 -0
  27. data/lib/fastpix_client/models/components/getallmediaresponse_mp4support.rb +32 -12
  28. data/lib/fastpix_client/models/components/getallmediaresponse_mp4support.rbi +11 -1
  29. data/lib/fastpix_client/models/components/getallmediaresponse_sourceresolution.rb +2 -0
  30. data/lib/fastpix_client/models/components/getcreatelivestreamresponsedto.rb +9 -20
  31. data/lib/fastpix_client/models/components/{getmediaresponse.rb → getmediadetailresponse.rb} +25 -43
  32. data/lib/fastpix_client/models/components/{getmediaresponse.rbi → getmediadetailresponse.rbi} +4 -2
  33. data/lib/fastpix_client/models/components/{getmediaresponse_maxresolution.rb → getmediadetailresponse_maxresolution.rb} +2 -2
  34. data/lib/fastpix_client/models/components/getmediadetailresponse_maxresolution.rbi +11 -0
  35. data/lib/fastpix_client/models/components/{getmediaresponse_mediaquality.rb → getmediadetailresponse_mediaquality.rb} +2 -2
  36. data/lib/fastpix_client/models/components/getmediadetailresponse_mediaquality.rbi +11 -0
  37. data/lib/fastpix_client/models/components/getmediadetailresponse_mp4support.rb +48 -0
  38. data/lib/fastpix_client/models/components/getmediadetailresponse_mp4support.rbi +21 -0
  39. data/lib/fastpix_client/models/components/{getmediaresponse_sourceresolution.rb → getmediadetailresponse_sourceresolution.rb} +4 -2
  40. data/lib/fastpix_client/models/components/getmediadetailresponse_sourceresolution.rbi +11 -0
  41. data/lib/fastpix_client/models/components/{getmediaresponse_status.rb → getmediadetailresponse_status.rb} +2 -2
  42. data/lib/fastpix_client/models/components/getmediadetailresponse_status.rbi +11 -0
  43. data/lib/fastpix_client/models/components/{getmediaresponse_track.rb → getmediadetailresponse_track.rb} +1 -1
  44. data/lib/fastpix_client/models/components/getmediadetailresponse_track.rbi +11 -0
  45. data/lib/fastpix_client/models/components/live_media_clips.rb +16 -30
  46. data/lib/fastpix_client/models/components/live_media_clips.rbi +2 -0
  47. data/lib/fastpix_client/models/components/live_media_clips_mp4support.rb +32 -12
  48. data/lib/fastpix_client/models/components/live_media_clips_mp4support.rbi +11 -1
  49. data/lib/fastpix_client/models/components/live_media_clips_sourceresolution.rb +2 -0
  50. data/lib/fastpix_client/models/components/media.rb +18 -35
  51. data/lib/fastpix_client/models/components/media.rbi +2 -0
  52. data/lib/fastpix_client/models/components/media_mp4support.rb +32 -12
  53. data/lib/fastpix_client/models/components/media_mp4support.rbi +11 -1
  54. data/lib/fastpix_client/models/components/media_sourceresolution.rb +2 -0
  55. data/lib/fastpix_client/models/components/patchresponsedata.rb +9 -18
  56. data/lib/fastpix_client/models/components/sourceaccessmedia.rb +18 -35
  57. data/lib/fastpix_client/models/components/sourceaccessmedia.rbi +2 -0
  58. data/lib/fastpix_client/models/components/sourceaccessmedia_mp4support.rb +32 -12
  59. data/lib/fastpix_client/models/components/sourceaccessmedia_mp4support.rbi +11 -1
  60. data/lib/fastpix_client/models/components/sourceaccessmedia_sourceresolution.rb +2 -0
  61. data/lib/fastpix_client/models/components/subtitletrack.rb +6 -2
  62. data/lib/fastpix_client/models/components/subtitletrack.rbi +2 -0
  63. data/lib/fastpix_client/models/components/tracksubtitlesgeneraterequest.rb +6 -2
  64. data/lib/fastpix_client/models/components/tracksubtitlesgeneraterequest.rbi +2 -0
  65. data/lib/fastpix_client/models/components/update_media.rb +18 -35
  66. data/lib/fastpix_client/models/components/update_media.rbi +2 -0
  67. data/lib/fastpix_client/models/components/update_media_maxresolution.rb +0 -1
  68. data/lib/fastpix_client/models/components/update_media_mp4support.rb +32 -12
  69. data/lib/fastpix_client/models/components/update_media_mp4support.rbi +11 -1
  70. data/lib/fastpix_client/models/components/updatetrackrequest.rb +7 -7
  71. data/lib/fastpix_client/models/components/updatetrackrequest.rbi +2 -2
  72. data/lib/fastpix_client/models/components/updatetrackresponse.rb +6 -2
  73. data/lib/fastpix_client/models/components/updatetrackresponse.rbi +2 -0
  74. data/lib/fastpix_client/models/components/videotrack.rb +6 -2
  75. data/lib/fastpix_client/models/components/videotrack.rbi +2 -0
  76. data/lib/fastpix_client/models/components/videotrackforgetall.rb +6 -2
  77. data/lib/fastpix_client/models/components/videotrackforgetall.rbi +2 -0
  78. data/lib/fastpix_client/models/components/views.rb +51 -124
  79. data/lib/fastpix_client/models/components.rb +7 -7
  80. data/lib/fastpix_client/models/errors/empty_response_error.rb +15 -0
  81. data/lib/fastpix_client/models/errors.rb +1 -0
  82. data/lib/fastpix_client/models/operations/get_media_response.rb +1 -1
  83. data/lib/fastpix_client/models/operations/get_media_responsebody.rb +2 -2
  84. data/lib/fastpix_client/models/operations/push_media_settings.rb +9 -20
  85. data/lib/fastpix_client/playback.rb +122 -213
  86. data/lib/fastpix_client/playlist.rb +152 -297
  87. data/lib/fastpix_client/sdk_hooks/registration.rb +2 -2
  88. data/lib/fastpix_client/sdk_hooks/types.rb +4 -0
  89. data/lib/fastpix_client/sdkconfiguration.rb +3 -3
  90. data/lib/fastpix_client/signing_keys.rb +76 -120
  91. data/lib/fastpix_client/simulcast_stream.rb +100 -144
  92. data/lib/fastpix_client/start_live_stream.rb +55 -37
  93. data/lib/fastpix_client/utils/forms.rb +97 -101
  94. data/lib/fastpix_client/utils/headers.rb +44 -34
  95. data/lib/fastpix_client/utils/query_params.rb +39 -29
  96. data/lib/fastpix_client/utils/request_bodies.rb +4 -8
  97. data/lib/fastpix_client/utils/security.rb +30 -18
  98. data/lib/fastpix_client/utils/url.rb +83 -60
  99. data/lib/fastpix_client/utils/utils.rb +19 -37
  100. data/lib/fastpix_client/views.rb +69 -93
  101. data/lib/fastpixapi.rb +10 -10
  102. data/lib/openssl_patch.rb +24 -24
  103. metadata +17 -18
  104. data/lib/fastpix_client/models/components/getmediaresponse_maxresolution.rbi +0 -11
  105. data/lib/fastpix_client/models/components/getmediaresponse_mediaquality.rbi +0 -11
  106. data/lib/fastpix_client/models/components/getmediaresponse_mp4support.rb +0 -28
  107. data/lib/fastpix_client/models/components/getmediaresponse_mp4support.rbi +0 -11
  108. data/lib/fastpix_client/models/components/getmediaresponse_sourceresolution.rbi +0 -11
  109. data/lib/fastpix_client/models/components/getmediaresponse_status.rbi +0 -11
  110. data/lib/fastpix_client/models/components/getmediaresponse_track.rbi +0 -11
  111. data/test/sdk_examples_test.rb +0 -20
  112. data/test/test_helper.rb +0 -29
@@ -28,13 +28,8 @@ module FastpixClient
28
28
  field :playback_ids, Crystalline::Nilable.new(Crystalline::Array.new(Models::Components::PlaybackId)), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('playbackIds') } }
29
29
  # A media consists of different media tracks, like video, audio, and subtitle, all combined.
30
30
  field :tracks, Crystalline::Nilable.new(Crystalline::Array.new(Crystalline::Union.new(Models::Components::VideoTrack, Models::Components::AudioTrack, Models::Components::SubtitleTrack))), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('tracks') } }
31
- # Determines the type of MP4 support for the media.
32
- # - **none**: Disables MP4 support.
33
- # - **capped_4k**: Enables MP4 downloads with resolutions up to 4K.
34
- # - **audioOnly**: Provides an MP4 stream containing only the audio.
35
- # - **audioOnly,capped_4k**: Enables both MP4 video downloads (up to 4K) and an audio-only stream.
36
- #
37
- field :mp4_support, Crystalline::Nilable.new(Models::Components::LiveMediaClipsMp4Support), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('mp4Support'), 'decoder': Utils.enum_from_string(Models::Components::LiveMediaClipsMp4Support, true) } }
31
+ # The MP4 renditions generated for the media. Present only when MP4 support is enabled.
32
+ field :mp4_support, Crystalline::Nilable.new(Crystalline::Array.new(Models::Components::LiveMediaClipsMp4Support)), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('mp4Support') } }
38
33
  # The length of the media in seconds, with a maximum allowed duration of 12 hours per individual media.
39
34
  field :duration, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('duration') } }
40
35
  # Time the media was created, defined as a localDateTime (UTC Time).
@@ -55,11 +50,13 @@ module FastpixClient
55
50
  field :is_audio_only, Crystalline::Nilable.new(Crystalline::Boolean.new), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('isAudioOnly') } }
56
51
  # Indicates whether subtitles are available for the media.
57
52
  field :subtitle_available, Crystalline::Nilable.new(Crystalline::Boolean.new), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('subtitleAvailable') } }
53
+ # Whether the audio track of the media has been volume-normalized.
54
+ field :optimize_audio, Crystalline::Nilable.new(Crystalline::Boolean.new), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('optimizeAudio') } }
58
55
  # The aspect ratio of a video is a value that describes the relative shape of a video based on its width and height.
59
56
  field :aspect_ratio, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('aspectRatio') } }
60
57
 
61
- sig { params(id: T.nilable(::String), workspace_id: T.nilable(::String), stream_id: T.nilable(::String), creator_id: T.nilable(::String), status: T.nilable(Models::Components::LiveMediaClipsStatus), source_access: T.nilable(T::Boolean), playback_ids: T.nilable(T::Array[Models::Components::PlaybackId]), tracks: T.nilable(T::Array[T.any(Models::Components::VideoTrack, Models::Components::AudioTrack, Models::Components::SubtitleTrack)]), mp4_support: T.nilable(Models::Components::LiveMediaClipsMp4Support), duration: T.nilable(::String), created_at: T.nilable(::DateTime), updated_at: T.nilable(::DateTime), thumbnail: T.nilable(::String), title: T.nilable(::String), max_resolution: T.nilable(Models::Components::LiveMediaClipsMaxResolution), source_resolution: T.nilable(Models::Components::LiveMediaClipsSourceResolution), generated_subtitles: T.nilable(T::Array[Models::Components::TracksSubtitles]), is_audio_only: T.nilable(T::Boolean), subtitle_available: T.nilable(T::Boolean), aspect_ratio: T.nilable(::String)).void }
62
- def initialize(id: nil, workspace_id: nil, stream_id: nil, creator_id: nil, status: nil, source_access: nil, playback_ids: nil, tracks: nil, mp4_support: nil, duration: nil, created_at: nil, updated_at: nil, thumbnail: nil, title: nil, max_resolution: Models::Components::LiveMediaClipsMaxResolution::ONE_THOUSAND_AND_EIGHTYP, source_resolution: Models::Components::LiveMediaClipsSourceResolution::ONE_THOUSAND_AND_EIGHTYP, generated_subtitles: nil, is_audio_only: nil, subtitle_available: nil, aspect_ratio: nil)
58
+ sig { params(id: T.nilable(::String), workspace_id: T.nilable(::String), stream_id: T.nilable(::String), creator_id: T.nilable(::String), status: T.nilable(Models::Components::LiveMediaClipsStatus), source_access: T.nilable(T::Boolean), playback_ids: T.nilable(T::Array[Models::Components::PlaybackId]), tracks: T.nilable(T::Array[T.any(Models::Components::VideoTrack, Models::Components::AudioTrack, Models::Components::SubtitleTrack)]), mp4_support: T.nilable(T::Array[Models::Components::LiveMediaClipsMp4Support]), duration: T.nilable(::String), created_at: T.nilable(::DateTime), updated_at: T.nilable(::DateTime), thumbnail: T.nilable(::String), title: T.nilable(::String), max_resolution: T.nilable(Models::Components::LiveMediaClipsMaxResolution), source_resolution: T.nilable(Models::Components::LiveMediaClipsSourceResolution), generated_subtitles: T.nilable(T::Array[Models::Components::TracksSubtitles]), is_audio_only: T.nilable(T::Boolean), subtitle_available: T.nilable(T::Boolean), optimize_audio: T.nilable(T::Boolean), aspect_ratio: T.nilable(::String)).void }
59
+ def initialize(id: nil, workspace_id: nil, stream_id: nil, creator_id: nil, status: nil, source_access: nil, playback_ids: nil, tracks: nil, mp4_support: nil, duration: nil, created_at: nil, updated_at: nil, thumbnail: nil, title: nil, max_resolution: Models::Components::LiveMediaClipsMaxResolution::ONE_THOUSAND_AND_EIGHTYP, source_resolution: Models::Components::LiveMediaClipsSourceResolution::ONE_THOUSAND_AND_EIGHTYP, generated_subtitles: nil, is_audio_only: nil, subtitle_available: nil, optimize_audio: nil, aspect_ratio: nil)
63
60
  @id = id
64
61
  @workspace_id = workspace_id
65
62
  @stream_id = stream_id
@@ -79,33 +76,22 @@ module FastpixClient
79
76
  @generated_subtitles = generated_subtitles
80
77
  @is_audio_only = is_audio_only
81
78
  @subtitle_available = subtitle_available
79
+ @optimize_audio = optimize_audio
82
80
  @aspect_ratio = aspect_ratio
83
81
  end
84
82
 
85
83
  sig { params(other: T.untyped).returns(T::Boolean) }
86
84
  def ==(other)
87
85
  return false unless other.is_a? self.class
88
- return false unless @id == other.id
89
- return false unless @workspace_id == other.workspace_id
90
- return false unless @stream_id == other.stream_id
91
- return false unless @creator_id == other.creator_id
92
- return false unless @status == other.status
93
- return false unless @source_access == other.source_access
94
- return false unless @playback_ids == other.playback_ids
95
- return false unless @tracks == other.tracks
96
- return false unless @mp4_support == other.mp4_support
97
- return false unless @duration == other.duration
98
- return false unless @created_at == other.created_at
99
- return false unless @updated_at == other.updated_at
100
- return false unless @thumbnail == other.thumbnail
101
- return false unless @title == other.title
102
- return false unless @max_resolution == other.max_resolution
103
- return false unless @source_resolution == other.source_resolution
104
- return false unless @generated_subtitles == other.generated_subtitles
105
- return false unless @is_audio_only == other.is_audio_only
106
- return false unless @subtitle_available == other.subtitle_available
107
- return false unless @aspect_ratio == other.aspect_ratio
108
- true
86
+
87
+ [@id, @workspace_id, @stream_id, @creator_id, @status,
88
+ @source_access, @playback_ids, @tracks, @mp4_support, @duration,
89
+ @created_at, @updated_at, @thumbnail, @title, @max_resolution,
90
+ @source_resolution, @generated_subtitles, @is_audio_only, @subtitle_available, @optimize_audio, @aspect_ratio] ==
91
+ [other.id, other.workspace_id, other.stream_id, other.creator_id, other.status,
92
+ other.source_access, other.playback_ids, other.tracks, other.mp4_support, other.duration,
93
+ other.created_at, other.updated_at, other.thumbnail, other.title, other.max_resolution,
94
+ other.source_resolution, other.generated_subtitles, other.is_audio_only, other.subtitle_available, other.optimize_audio, other.aspect_ratio]
109
95
  end
110
96
  end
111
97
  end
@@ -46,6 +46,8 @@ class FastpixClient::Models::Components::LiveMediaClips
46
46
  def is_audio_only=(str_); end
47
47
  def subtitle_available(); end
48
48
  def subtitle_available=(str_); end
49
+ def optimize_audio(); end
50
+ def optimize_audio=(str_); end
49
51
  def aspect_ratio(); end
50
52
  def aspect_ratio=(str_); end
51
53
  end
@@ -7,20 +7,40 @@
7
7
  module FastpixClient
8
8
  module Models
9
9
  module Components
10
- # LiveMediaClipsMp4Support - Determines the type of MP4 support for the media.
11
- # - **none**: Disables MP4 support.
12
- # - **capped_4k**: Enables MP4 downloads with resolutions up to 4K.
13
- # - **audioOnly**: Provides an MP4 stream containing only the audio.
14
- # - **audioOnly,capped_4k**: Enables both MP4 video downloads (up to 4K) and an audio-only stream.
15
- #
16
- class LiveMediaClipsMp4Support < T::Enum
10
+ # LiveMediaClipsMp4Support - One MP4 rendition generated for the media when MP4 support is requested.
11
+ class LiveMediaClipsMp4Support
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
17
14
 
15
+ # The MP4 rendition type. `capped_4k` is a downloadable MP4 video capped at 4K resolution, `audioOnly` is a downloadable m4a audio-only file.
16
+ field :type, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('type') } }
17
+ # Generation status of this MP4 rendition. One of `preparing`, `ready`, or `failed`.
18
+ field :status, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('status') } }
19
+ # Pixel height of the rendition. Omitted for the `audioOnly` type.
20
+ field :height, Crystalline::Nilable.new(::Integer), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('height') } }
21
+ # Pixel width of the rendition. Omitted for the `audioOnly` type.
22
+ field :width, Crystalline::Nilable.new(::Integer), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('width') } }
23
+ # File extension of the downloadable rendition. One of `mp4` or `m4a`.
24
+ field :ext, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('ext') } }
18
25
 
19
- enums do
20
- NONE = new('none')
21
- CAPPED_4K = new('capped_4k')
22
- AUDIO_ONLY = new('audioOnly')
23
- AUDIO_ONLY_CAPPED_4K = new('audioOnly,capped_4k')
26
+ sig { params(type: T.nilable(::String), status: T.nilable(::String), height: T.nilable(::Integer), width: T.nilable(::Integer), ext: T.nilable(::String)).void }
27
+ def initialize(type: nil, status: nil, height: nil, width: nil, ext: nil)
28
+ @type = type
29
+ @status = status
30
+ @height = height
31
+ @width = width
32
+ @ext = ext
33
+ end
34
+
35
+ sig { params(other: T.untyped).returns(T::Boolean) }
36
+ def ==(other)
37
+ return false unless other.is_a? self.class
38
+ return false unless @type == other.type
39
+ return false unless @status == other.status
40
+ return false unless @height == other.height
41
+ return false unless @width == other.width
42
+ return false unless @ext == other.ext
43
+ true
24
44
  end
25
45
  end
26
46
  end
@@ -8,4 +8,14 @@ end
8
8
 
9
9
 
10
10
  class FastpixClient::Models::Components::LiveMediaClipsMp4Support
11
- end
11
+ def type(); end
12
+ def type=(str_); end
13
+ def status(); end
14
+ def status=(str_); end
15
+ def height(); end
16
+ def height=(str_); end
17
+ def width(); end
18
+ def width=(str_); end
19
+ def ext(); end
20
+ def ext=(str_); end
21
+ end
@@ -22,6 +22,8 @@ module FastpixClient
22
22
  SEVEN_HUNDRED_AND_TWENTY = new('720')
23
23
  FOUR_HUNDRED_AND_EIGHTYP = new('480p')
24
24
  FOUR_HUNDRED_AND_EIGHTY = new('480')
25
+ THREE_HUNDRED_AND_SIXTYP = new('360p')
26
+ THREE_HUNDRED_AND_SIXTY = new('360')
25
27
  end
26
28
  end
27
29
  end
@@ -22,13 +22,8 @@ module FastpixClient
22
22
  field :creator_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('creatorId') } }
23
23
  # Determines the media’s status, which can be one of the possible values.
24
24
  field :status, Crystalline::Nilable.new(Models::Components::MediaStatus), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('status'), 'decoder': Utils.enum_from_string(Models::Components::MediaStatus, true) } }
25
- # Determines the type of MP4 support for the media.
26
- # - **none**: Disables MP4 support.
27
- # - **capped_4k**: Enables MP4 downloads with resolutions up to 4K.
28
- # - **audioOnly**: Provides an MP4 stream containing only the audio.
29
- # - **audioOnly,capped_4k**: Enables both MP4 video downloads (up to 4K) and an audio-only stream.
30
- #
31
- field :mp4_support, Crystalline::Nilable.new(Models::Components::MediaMp4Support), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('mp4Support'), 'decoder': Utils.enum_from_string(Models::Components::MediaMp4Support, true) } }
25
+ # The MP4 renditions generated for the media. Present only when MP4 support is enabled.
26
+ field :mp4_support, Crystalline::Nilable.new(Crystalline::Array.new(Models::Components::MediaMp4Support)), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('mp4Support') } }
32
27
  # A collection of Playback ID objects utilized for crafting HLS playback URLs.
33
28
  field :playback_ids, Crystalline::Nilable.new(Crystalline::Array.new(Models::Components::PlaybackId)), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('playbackIds') } }
34
29
  # A media consists of different media tracks, like video, audio, and subtitle, all combined.
@@ -66,11 +61,13 @@ module FastpixClient
66
61
  field :is_audio_only, Crystalline::Nilable.new(Crystalline::Boolean.new), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('isAudioOnly') } }
67
62
  # Indicates whether subtitles are available for the media.
68
63
  field :subtitle_available, Crystalline::Nilable.new(Crystalline::Boolean.new), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('subtitleAvailable') } }
64
+ # Enhance the quality and volume of the audio track. This is available for pre-recorded content only.
65
+ field :optimize_audio, Crystalline::Nilable.new(Crystalline::Boolean.new), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('optimizeAudio') } }
69
66
  # The aspect ratio of a video is a value that describes the relative shape of a video based on its width and height.
70
67
  field :aspect_ratio, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('aspectRatio') } }
71
68
 
72
- sig { params(id: T.nilable(::String), workspace_id: T.nilable(::String), media_quality: T.nilable(Models::Components::MediaMediaQuality), creator_id: T.nilable(::String), status: T.nilable(Models::Components::MediaStatus), mp4_support: T.nilable(Models::Components::MediaMp4Support), playback_ids: T.nilable(T::Array[Models::Components::PlaybackId]), tracks: T.nilable(T::Array[T.any(Models::Components::VideoTrack, Models::Components::AudioTrack, Models::Components::SubtitleTrack)]), summary: T.nilable(Models::Components::AiSummaryRecord), chapters: T.nilable(Models::Components::AiResponseRecord), named_entities: T.nilable(Models::Components::AiResponseRecord), moderation: T.nilable(Models::Components::AiResponseRecord), duration: T.nilable(::String), created_at: T.nilable(::DateTime), updated_at: T.nilable(::DateTime), thumbnail: T.nilable(::String), metadata: T.nilable(T::Hash[Symbol, ::String]), title: T.nilable(::String), max_resolution: T.nilable(Models::Components::MediaMaxResolution), source_resolution: T.nilable(Models::Components::MediaSourceResolution), source_access: T.nilable(T::Boolean), generated_subtitles: T.nilable(T::Array[Models::Components::TracksSubtitles]), is_audio_only: T.nilable(T::Boolean), subtitle_available: T.nilable(T::Boolean), aspect_ratio: T.nilable(::String)).void }
73
- def initialize(id: nil, workspace_id: nil, media_quality: nil, creator_id: nil, status: nil, mp4_support: nil, playback_ids: nil, tracks: nil, summary: nil, chapters: nil, named_entities: nil, moderation: nil, duration: nil, created_at: nil, updated_at: nil, thumbnail: nil, metadata: nil, title: nil, max_resolution: Models::Components::MediaMaxResolution::ONE_THOUSAND_AND_EIGHTYP, source_resolution: Models::Components::MediaSourceResolution::ONE_THOUSAND_AND_EIGHTYP, source_access: nil, generated_subtitles: nil, is_audio_only: nil, subtitle_available: nil, aspect_ratio: nil)
69
+ sig { params(id: T.nilable(::String), workspace_id: T.nilable(::String), media_quality: T.nilable(Models::Components::MediaMediaQuality), creator_id: T.nilable(::String), status: T.nilable(Models::Components::MediaStatus), mp4_support: T.nilable(T::Array[Models::Components::MediaMp4Support]), playback_ids: T.nilable(T::Array[Models::Components::PlaybackId]), tracks: T.nilable(T::Array[T.any(Models::Components::VideoTrack, Models::Components::AudioTrack, Models::Components::SubtitleTrack)]), summary: T.nilable(Models::Components::AiSummaryRecord), chapters: T.nilable(Models::Components::AiResponseRecord), named_entities: T.nilable(Models::Components::AiResponseRecord), moderation: T.nilable(Models::Components::AiResponseRecord), duration: T.nilable(::String), created_at: T.nilable(::DateTime), updated_at: T.nilable(::DateTime), thumbnail: T.nilable(::String), metadata: T.nilable(T::Hash[Symbol, ::String]), title: T.nilable(::String), max_resolution: T.nilable(Models::Components::MediaMaxResolution), source_resolution: T.nilable(Models::Components::MediaSourceResolution), source_access: T.nilable(T::Boolean), generated_subtitles: T.nilable(T::Array[Models::Components::TracksSubtitles]), is_audio_only: T.nilable(T::Boolean), subtitle_available: T.nilable(T::Boolean), optimize_audio: T.nilable(T::Boolean), aspect_ratio: T.nilable(::String)).void }
70
+ def initialize(id: nil, workspace_id: nil, media_quality: nil, creator_id: nil, status: nil, mp4_support: nil, playback_ids: nil, tracks: nil, summary: nil, chapters: nil, named_entities: nil, moderation: nil, duration: nil, created_at: nil, updated_at: nil, thumbnail: nil, metadata: nil, title: nil, max_resolution: Models::Components::MediaMaxResolution::ONE_THOUSAND_AND_EIGHTYP, source_resolution: Models::Components::MediaSourceResolution::ONE_THOUSAND_AND_EIGHTYP, source_access: nil, generated_subtitles: nil, is_audio_only: nil, subtitle_available: nil, optimize_audio: nil, aspect_ratio: nil)
74
71
  @id = id
75
72
  @workspace_id = workspace_id
76
73
  @media_quality = media_quality
@@ -95,38 +92,24 @@ module FastpixClient
95
92
  @generated_subtitles = generated_subtitles
96
93
  @is_audio_only = is_audio_only
97
94
  @subtitle_available = subtitle_available
95
+ @optimize_audio = optimize_audio
98
96
  @aspect_ratio = aspect_ratio
99
97
  end
100
98
 
101
99
  sig { params(other: T.untyped).returns(T::Boolean) }
102
100
  def ==(other)
103
101
  return false unless other.is_a? self.class
104
- return false unless @id == other.id
105
- return false unless @workspace_id == other.workspace_id
106
- return false unless @media_quality == other.media_quality
107
- return false unless @creator_id == other.creator_id
108
- return false unless @status == other.status
109
- return false unless @mp4_support == other.mp4_support
110
- return false unless @playback_ids == other.playback_ids
111
- return false unless @tracks == other.tracks
112
- return false unless @summary == other.summary
113
- return false unless @chapters == other.chapters
114
- return false unless @named_entities == other.named_entities
115
- return false unless @moderation == other.moderation
116
- return false unless @duration == other.duration
117
- return false unless @created_at == other.created_at
118
- return false unless @updated_at == other.updated_at
119
- return false unless @thumbnail == other.thumbnail
120
- return false unless @metadata == other.metadata
121
- return false unless @title == other.title
122
- return false unless @max_resolution == other.max_resolution
123
- return false unless @source_resolution == other.source_resolution
124
- return false unless @source_access == other.source_access
125
- return false unless @generated_subtitles == other.generated_subtitles
126
- return false unless @is_audio_only == other.is_audio_only
127
- return false unless @subtitle_available == other.subtitle_available
128
- return false unless @aspect_ratio == other.aspect_ratio
129
- true
102
+
103
+ [@id, @workspace_id, @media_quality, @creator_id, @status,
104
+ @mp4_support, @playback_ids, @tracks, @summary, @chapters,
105
+ @named_entities, @moderation, @duration, @created_at, @updated_at,
106
+ @thumbnail, @metadata, @title, @max_resolution, @source_resolution,
107
+ @source_access, @generated_subtitles, @is_audio_only, @subtitle_available, @optimize_audio, @aspect_ratio] ==
108
+ [other.id, other.workspace_id, other.media_quality, other.creator_id, other.status,
109
+ other.mp4_support, other.playback_ids, other.tracks, other.summary, other.chapters,
110
+ other.named_entities, other.moderation, other.duration, other.created_at, other.updated_at,
111
+ other.thumbnail, other.metadata, other.title, other.max_resolution, other.source_resolution,
112
+ other.source_access, other.generated_subtitles, other.is_audio_only, other.subtitle_available, other.optimize_audio, other.aspect_ratio]
130
113
  end
131
114
  end
132
115
  end
@@ -56,6 +56,8 @@ class FastpixClient::Models::Components::Media
56
56
  def is_audio_only=(str_); end
57
57
  def subtitle_available(); end
58
58
  def subtitle_available=(str_); end
59
+ def optimize_audio(); end
60
+ def optimize_audio=(str_); end
59
61
  def aspect_ratio(); end
60
62
  def aspect_ratio=(str_); end
61
63
  end
@@ -7,20 +7,40 @@
7
7
  module FastpixClient
8
8
  module Models
9
9
  module Components
10
- # MediaMp4Support - Determines the type of MP4 support for the media.
11
- # - **none**: Disables MP4 support.
12
- # - **capped_4k**: Enables MP4 downloads with resolutions up to 4K.
13
- # - **audioOnly**: Provides an MP4 stream containing only the audio.
14
- # - **audioOnly,capped_4k**: Enables both MP4 video downloads (up to 4K) and an audio-only stream.
15
- #
16
- class MediaMp4Support < T::Enum
10
+ # MediaMp4Support - One MP4 rendition generated for the media when MP4 support is requested.
11
+ class MediaMp4Support
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
17
14
 
15
+ # The MP4 rendition type. `capped_4k` is a downloadable MP4 video capped at 4K resolution, `audioOnly` is a downloadable m4a audio-only file.
16
+ field :type, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('type') } }
17
+ # Generation status of this MP4 rendition. One of `preparing`, `ready`, or `failed`.
18
+ field :status, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('status') } }
19
+ # Pixel height of the rendition. Omitted for the `audioOnly` type.
20
+ field :height, Crystalline::Nilable.new(::Integer), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('height') } }
21
+ # Pixel width of the rendition. Omitted for the `audioOnly` type.
22
+ field :width, Crystalline::Nilable.new(::Integer), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('width') } }
23
+ # File extension of the downloadable rendition. One of `mp4` or `m4a`.
24
+ field :ext, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('ext') } }
18
25
 
19
- enums do
20
- NONE = new('none')
21
- CAPPED_4K = new('capped_4k')
22
- AUDIO_ONLY = new('audioOnly')
23
- AUDIO_ONLY_CAPPED_4K = new('audioOnly,capped_4k')
26
+ sig { params(type: T.nilable(::String), status: T.nilable(::String), height: T.nilable(::Integer), width: T.nilable(::Integer), ext: T.nilable(::String)).void }
27
+ def initialize(type: nil, status: nil, height: nil, width: nil, ext: nil)
28
+ @type = type
29
+ @status = status
30
+ @height = height
31
+ @width = width
32
+ @ext = ext
33
+ end
34
+
35
+ sig { params(other: T.untyped).returns(T::Boolean) }
36
+ def ==(other)
37
+ return false unless other.is_a? self.class
38
+ return false unless @type == other.type
39
+ return false unless @status == other.status
40
+ return false unless @height == other.height
41
+ return false unless @width == other.width
42
+ return false unless @ext == other.ext
43
+ true
24
44
  end
25
45
  end
26
46
  end
@@ -8,4 +8,14 @@ end
8
8
 
9
9
 
10
10
  class FastpixClient::Models::Components::MediaMp4Support
11
- end
11
+ def type(); end
12
+ def type=(str_); end
13
+ def status(); end
14
+ def status=(str_); end
15
+ def height(); end
16
+ def height=(str_); end
17
+ def width(); end
18
+ def width=(str_); end
19
+ def ext(); end
20
+ def ext=(str_); end
21
+ end
@@ -22,6 +22,8 @@ module FastpixClient
22
22
  SEVEN_HUNDRED_AND_TWENTY = new('720')
23
23
  FOUR_HUNDRED_AND_EIGHTYP = new('480p')
24
24
  FOUR_HUNDRED_AND_EIGHTY = new('480')
25
+ THREE_HUNDRED_AND_SIXTYP = new('360p')
26
+ THREE_HUNDRED_AND_SIXTY = new('360')
25
27
  end
26
28
  end
27
29
  end
@@ -71,24 +71,15 @@ module FastpixClient
71
71
  sig { params(other: T.untyped).returns(T::Boolean) }
72
72
  def ==(other)
73
73
  return false unless other.is_a? self.class
74
- return false unless @stream_id == other.stream_id
75
- return false unless @stream_key == other.stream_key
76
- return false unless @srt_secret == other.srt_secret
77
- return false unless @trial == other.trial
78
- return false unless @status == other.status
79
- return false unless @max_resolution == other.max_resolution
80
- return false unless @max_duration == other.max_duration
81
- return false unless @created_at == other.created_at
82
- return false unless @reconnect_window == other.reconnect_window
83
- return false unless @enable_recording == other.enable_recording
84
- return false unless @enable_dvr_mode == other.enable_dvr_mode
85
- return false unless @media_policy == other.media_policy
86
- return false unless @metadata == other.metadata
87
- return false unless @low_latency == other.low_latency
88
- return false unless @closed_captions == other.closed_captions
89
- return false unless @playback_ids == other.playback_ids
90
- return false unless @srt_playback_response == other.srt_playback_response
91
- true
74
+
75
+ [@stream_id, @stream_key, @srt_secret, @trial, @status,
76
+ @max_resolution, @max_duration, @created_at, @reconnect_window, @enable_recording,
77
+ @enable_dvr_mode, @media_policy, @metadata, @low_latency, @closed_captions,
78
+ @playback_ids, @srt_playback_response] ==
79
+ [other.stream_id, other.stream_key, other.srt_secret, other.trial, other.status,
80
+ other.max_resolution, other.max_duration, other.created_at, other.reconnect_window, other.enable_recording,
81
+ other.enable_dvr_mode, other.media_policy, other.metadata, other.low_latency, other.closed_captions,
82
+ other.playback_ids, other.srt_playback_response]
92
83
  end
93
84
  end
94
85
  end
@@ -22,13 +22,8 @@ module FastpixClient
22
22
  field :creator_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('creatorId') } }
23
23
  # Determines the media's status, which can be one of the possible values.
24
24
  field :status, Crystalline::Nilable.new(Models::Components::SourceAccessMediaStatus), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('status'), 'decoder': Utils.enum_from_string(Models::Components::SourceAccessMediaStatus, true) } }
25
- # Determines the type of MP4 support for the media.
26
- # - **none**: Disables MP4 support.
27
- # - **capped_4k**: Enables MP4 downloads with resolutions up to 4K.
28
- # - **audioOnly**: Provides an MP4 stream containing only the audio.
29
- # - **audioOnly,capped_4k**: Enables both MP4 video downloads (up to 4K) and an audio-only stream.
30
- #
31
- field :mp4_support, Crystalline::Nilable.new(Models::Components::SourceAccessMediaMp4Support), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('mp4Support'), 'decoder': Utils.enum_from_string(Models::Components::SourceAccessMediaMp4Support, true) } }
25
+ # The MP4 renditions generated for the media. Present only when MP4 support is enabled.
26
+ field :mp4_support, Crystalline::Nilable.new(Crystalline::Array.new(Models::Components::SourceAccessMediaMp4Support)), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('mp4Support') } }
32
27
  # A collection of Playback ID objects utilized for crafting HLS playback URLs.
33
28
  field :playback_ids, Crystalline::Nilable.new(Crystalline::Array.new(Models::Components::PlaybackId)), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('playbackIds') } }
34
29
  # A media consists of different media tracks, like video, audio, and subtitle, all combined.
@@ -66,11 +61,13 @@ module FastpixClient
66
61
  field :is_audio_only, Crystalline::Nilable.new(Crystalline::Boolean.new), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('isAudioOnly') } }
67
62
  # Indicates whether subtitles are available for the media.
68
63
  field :subtitle_available, Crystalline::Nilable.new(Crystalline::Boolean.new), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('subtitleAvailable') } }
64
+ # Enhance the quality and volume of the audio track. This is available for pre-recorded content only.
65
+ field :optimize_audio, Crystalline::Nilable.new(Crystalline::Boolean.new), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('optimizeAudio') } }
69
66
  # The aspect ratio of a video describes its shape based on the relationship between its width and height.
70
67
  field :aspect_ratio, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('aspectRatio') } }
71
68
 
72
- sig { params(id: T.nilable(::String), workspace_id: T.nilable(::String), media_quality: T.nilable(Models::Components::SourceAccessMediaMediaQuality), creator_id: T.nilable(::String), status: T.nilable(Models::Components::SourceAccessMediaStatus), mp4_support: T.nilable(Models::Components::SourceAccessMediaMp4Support), playback_ids: T.nilable(T::Array[Models::Components::PlaybackId]), tracks: T.nilable(T::Array[T.any(Models::Components::VideoTrack, Models::Components::AudioTrack, Models::Components::SubtitleTrack)]), summary: T.nilable(Models::Components::AiSummaryRecord), chapters: T.nilable(Models::Components::AiResponseRecord), named_entities: T.nilable(Models::Components::AiResponseRecord), moderation: T.nilable(Models::Components::AiResponseRecord), duration: T.nilable(::String), created_at: T.nilable(::DateTime), updated_at: T.nilable(::DateTime), thumbnail: T.nilable(::String), metadata: T.nilable(T::Hash[Symbol, ::String]), title: T.nilable(::String), max_resolution: T.nilable(Models::Components::SourceAccessMediaMaxResolution), source_resolution: T.nilable(Models::Components::SourceAccessMediaSourceResolution), source_access: T.nilable(T::Boolean), generated_subtitles: T.nilable(T::Array[Models::Components::TracksSubtitles]), is_audio_only: T.nilable(T::Boolean), subtitle_available: T.nilable(T::Boolean), aspect_ratio: T.nilable(::String)).void }
73
- def initialize(id: nil, workspace_id: nil, media_quality: nil, creator_id: nil, status: nil, mp4_support: nil, playback_ids: nil, tracks: nil, summary: nil, chapters: nil, named_entities: nil, moderation: nil, duration: nil, created_at: nil, updated_at: nil, thumbnail: nil, metadata: nil, title: nil, max_resolution: Models::Components::SourceAccessMediaMaxResolution::ONE_THOUSAND_AND_EIGHTYP, source_resolution: Models::Components::SourceAccessMediaSourceResolution::ONE_THOUSAND_AND_EIGHTYP, source_access: nil, generated_subtitles: nil, is_audio_only: nil, subtitle_available: nil, aspect_ratio: nil)
69
+ sig { params(id: T.nilable(::String), workspace_id: T.nilable(::String), media_quality: T.nilable(Models::Components::SourceAccessMediaMediaQuality), creator_id: T.nilable(::String), status: T.nilable(Models::Components::SourceAccessMediaStatus), mp4_support: T.nilable(T::Array[Models::Components::SourceAccessMediaMp4Support]), playback_ids: T.nilable(T::Array[Models::Components::PlaybackId]), tracks: T.nilable(T::Array[T.any(Models::Components::VideoTrack, Models::Components::AudioTrack, Models::Components::SubtitleTrack)]), summary: T.nilable(Models::Components::AiSummaryRecord), chapters: T.nilable(Models::Components::AiResponseRecord), named_entities: T.nilable(Models::Components::AiResponseRecord), moderation: T.nilable(Models::Components::AiResponseRecord), duration: T.nilable(::String), created_at: T.nilable(::DateTime), updated_at: T.nilable(::DateTime), thumbnail: T.nilable(::String), metadata: T.nilable(T::Hash[Symbol, ::String]), title: T.nilable(::String), max_resolution: T.nilable(Models::Components::SourceAccessMediaMaxResolution), source_resolution: T.nilable(Models::Components::SourceAccessMediaSourceResolution), source_access: T.nilable(T::Boolean), generated_subtitles: T.nilable(T::Array[Models::Components::TracksSubtitles]), is_audio_only: T.nilable(T::Boolean), subtitle_available: T.nilable(T::Boolean), optimize_audio: T.nilable(T::Boolean), aspect_ratio: T.nilable(::String)).void }
70
+ def initialize(id: nil, workspace_id: nil, media_quality: nil, creator_id: nil, status: nil, mp4_support: nil, playback_ids: nil, tracks: nil, summary: nil, chapters: nil, named_entities: nil, moderation: nil, duration: nil, created_at: nil, updated_at: nil, thumbnail: nil, metadata: nil, title: nil, max_resolution: Models::Components::SourceAccessMediaMaxResolution::ONE_THOUSAND_AND_EIGHTYP, source_resolution: Models::Components::SourceAccessMediaSourceResolution::ONE_THOUSAND_AND_EIGHTYP, source_access: nil, generated_subtitles: nil, is_audio_only: nil, subtitle_available: nil, optimize_audio: nil, aspect_ratio: nil)
74
71
  @id = id
75
72
  @workspace_id = workspace_id
76
73
  @media_quality = media_quality
@@ -95,38 +92,24 @@ module FastpixClient
95
92
  @generated_subtitles = generated_subtitles
96
93
  @is_audio_only = is_audio_only
97
94
  @subtitle_available = subtitle_available
95
+ @optimize_audio = optimize_audio
98
96
  @aspect_ratio = aspect_ratio
99
97
  end
100
98
 
101
99
  sig { params(other: T.untyped).returns(T::Boolean) }
102
100
  def ==(other)
103
101
  return false unless other.is_a? self.class
104
- return false unless @id == other.id
105
- return false unless @workspace_id == other.workspace_id
106
- return false unless @media_quality == other.media_quality
107
- return false unless @creator_id == other.creator_id
108
- return false unless @status == other.status
109
- return false unless @mp4_support == other.mp4_support
110
- return false unless @playback_ids == other.playback_ids
111
- return false unless @tracks == other.tracks
112
- return false unless @summary == other.summary
113
- return false unless @chapters == other.chapters
114
- return false unless @named_entities == other.named_entities
115
- return false unless @moderation == other.moderation
116
- return false unless @duration == other.duration
117
- return false unless @created_at == other.created_at
118
- return false unless @updated_at == other.updated_at
119
- return false unless @thumbnail == other.thumbnail
120
- return false unless @metadata == other.metadata
121
- return false unless @title == other.title
122
- return false unless @max_resolution == other.max_resolution
123
- return false unless @source_resolution == other.source_resolution
124
- return false unless @source_access == other.source_access
125
- return false unless @generated_subtitles == other.generated_subtitles
126
- return false unless @is_audio_only == other.is_audio_only
127
- return false unless @subtitle_available == other.subtitle_available
128
- return false unless @aspect_ratio == other.aspect_ratio
129
- true
102
+
103
+ [@id, @workspace_id, @media_quality, @creator_id, @status,
104
+ @mp4_support, @playback_ids, @tracks, @summary, @chapters,
105
+ @named_entities, @moderation, @duration, @created_at, @updated_at,
106
+ @thumbnail, @metadata, @title, @max_resolution, @source_resolution,
107
+ @source_access, @generated_subtitles, @is_audio_only, @subtitle_available, @optimize_audio, @aspect_ratio] ==
108
+ [other.id, other.workspace_id, other.media_quality, other.creator_id, other.status,
109
+ other.mp4_support, other.playback_ids, other.tracks, other.summary, other.chapters,
110
+ other.named_entities, other.moderation, other.duration, other.created_at, other.updated_at,
111
+ other.thumbnail, other.metadata, other.title, other.max_resolution, other.source_resolution,
112
+ other.source_access, other.generated_subtitles, other.is_audio_only, other.subtitle_available, other.optimize_audio, other.aspect_ratio]
130
113
  end
131
114
  end
132
115
  end
@@ -56,6 +56,8 @@ class FastpixClient::Models::Components::SourceAccessMedia
56
56
  def is_audio_only=(str_); end
57
57
  def subtitle_available(); end
58
58
  def subtitle_available=(str_); end
59
+ def optimize_audio(); end
60
+ def optimize_audio=(str_); end
59
61
  def aspect_ratio(); end
60
62
  def aspect_ratio=(str_); end
61
63
  end
@@ -7,20 +7,40 @@
7
7
  module FastpixClient
8
8
  module Models
9
9
  module Components
10
- # SourceAccessMediaMp4Support - Determines the type of MP4 support for the media.
11
- # - **none**: Disables MP4 support.
12
- # - **capped_4k**: Enables MP4 downloads with resolutions up to 4K.
13
- # - **audioOnly**: Provides an MP4 stream containing only the audio.
14
- # - **audioOnly,capped_4k**: Enables both MP4 video downloads (up to 4K) and an audio-only stream.
15
- #
16
- class SourceAccessMediaMp4Support < T::Enum
10
+ # SourceAccessMediaMp4Support - One MP4 rendition generated for the media when MP4 support is requested.
11
+ class SourceAccessMediaMp4Support
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
17
14
 
15
+ # The MP4 rendition type. `capped_4k` is a downloadable MP4 video capped at 4K resolution, `audioOnly` is a downloadable m4a audio-only file.
16
+ field :type, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('type') } }
17
+ # Generation status of this MP4 rendition. One of `preparing`, `ready`, or `failed`.
18
+ field :status, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('status') } }
19
+ # Pixel height of the rendition. Omitted for the `audioOnly` type.
20
+ field :height, Crystalline::Nilable.new(::Integer), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('height') } }
21
+ # Pixel width of the rendition. Omitted for the `audioOnly` type.
22
+ field :width, Crystalline::Nilable.new(::Integer), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('width') } }
23
+ # File extension of the downloadable rendition. One of `mp4` or `m4a`.
24
+ field :ext, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('ext') } }
18
25
 
19
- enums do
20
- NONE = new('none')
21
- CAPPED_4K = new('capped_4k')
22
- AUDIO_ONLY = new('audioOnly')
23
- AUDIO_ONLY_CAPPED_4K = new('audioOnly,capped_4k')
26
+ sig { params(type: T.nilable(::String), status: T.nilable(::String), height: T.nilable(::Integer), width: T.nilable(::Integer), ext: T.nilable(::String)).void }
27
+ def initialize(type: nil, status: nil, height: nil, width: nil, ext: nil)
28
+ @type = type
29
+ @status = status
30
+ @height = height
31
+ @width = width
32
+ @ext = ext
33
+ end
34
+
35
+ sig { params(other: T.untyped).returns(T::Boolean) }
36
+ def ==(other)
37
+ return false unless other.is_a? self.class
38
+ return false unless @type == other.type
39
+ return false unless @status == other.status
40
+ return false unless @height == other.height
41
+ return false unless @width == other.width
42
+ return false unless @ext == other.ext
43
+ true
24
44
  end
25
45
  end
26
46
  end
@@ -8,4 +8,14 @@ end
8
8
 
9
9
 
10
10
  class FastpixClient::Models::Components::SourceAccessMediaMp4Support
11
- end
11
+ def type(); end
12
+ def type=(str_); end
13
+ def status(); end
14
+ def status=(str_); end
15
+ def height(); end
16
+ def height=(str_); end
17
+ def width(); end
18
+ def width=(str_); end
19
+ def ext(); end
20
+ def ext=(str_); end
21
+ end
@@ -22,6 +22,8 @@ module FastpixClient
22
22
  SEVEN_HUNDRED_AND_TWENTY = new('720')
23
23
  FOUR_HUNDRED_AND_EIGHTYP = new('480p')
24
24
  FOUR_HUNDRED_AND_EIGHTY = new('480')
25
+ THREE_HUNDRED_AND_SIXTYP = new('360p')
26
+ THREE_HUNDRED_AND_SIXTY = new('360')
25
27
  end
26
28
  end
27
29
  end
@@ -18,6 +18,8 @@ module FastpixClient
18
18
  field :type, Crystalline::Nilable.new(Models::Components::SubtitleTrackType), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('type'), 'decoder': Utils.enum_from_string(Models::Components::SubtitleTrackType, true) } }
19
19
  # Indicates the current state of the track. 'available' means the track has been processed successfully and is ready to be used or played.
20
20
  field :status, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('status') } }
21
+ # Title of the track.
22
+ field :title, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('title') } }
21
23
  # Name of the language in which the subtitles will be generated.
22
24
  #
23
25
  field :language_name, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('languageName') } }
@@ -25,11 +27,12 @@ module FastpixClient
25
27
  #
26
28
  field :language_code, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('languageCode') } }
27
29
 
28
- sig { params(id: T.nilable(::String), type: T.nilable(Models::Components::SubtitleTrackType), status: T.nilable(::String), language_name: T.nilable(::String), language_code: T.nilable(::String)).void }
29
- def initialize(id: nil, type: nil, status: nil, language_name: nil, language_code: nil)
30
+ sig { params(id: T.nilable(::String), type: T.nilable(Models::Components::SubtitleTrackType), status: T.nilable(::String), title: T.nilable(::String), language_name: T.nilable(::String), language_code: T.nilable(::String)).void }
31
+ def initialize(id: nil, type: nil, status: nil, title: nil, language_name: nil, language_code: nil)
30
32
  @id = id
31
33
  @type = type
32
34
  @status = status
35
+ @title = title
33
36
  @language_name = language_name
34
37
  @language_code = language_code
35
38
  end
@@ -40,6 +43,7 @@ module FastpixClient
40
43
  return false unless @id == other.id
41
44
  return false unless @type == other.type
42
45
  return false unless @status == other.status
46
+ return false unless @title == other.title
43
47
  return false unless @language_name == other.language_name
44
48
  return false unless @language_code == other.language_code
45
49
  true
@@ -14,6 +14,8 @@ class FastpixClient::Models::Components::SubtitleTrack
14
14
  def type=(str_); end
15
15
  def status(); end
16
16
  def status=(str_); end
17
+ def title(); end
18
+ def title=(str_); end
17
19
  def language_name(); end
18
20
  def language_name=(str_); end
19
21
  def language_code(); end