Skip to content

Commit

Permalink
Verify if media container is supported for playback
Browse files Browse the repository at this point in the history
  • Loading branch information
nielsvanvelzen committed Jan 9, 2025
1 parent 63d30eb commit c4531f5
Showing 1 changed file with 15 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -52,9 +52,20 @@ fun toFormat(stream: MediaStream, track: MediaStreamVideoTrack) = Format.Builder
f.setSampleMimeType(getFfmpegVideoMimeType(track.codec))
}.build()

fun MediaStream.toFormats() = tracks.map { track ->
when (track) {
is MediaStreamAudioTrack -> toFormat(stream = this, track)
is MediaStreamVideoTrack -> toFormat(stream = this, track)
@OptIn(UnstableApi::class)
fun toFormat(stream: MediaStream) = Format.Builder().also { f ->
f.setId(stream.identifier)
f.setContainerMimeType(getFfmpegContainerMimeType(stream.container.format))
f.setSampleMimeType(getFfmpegContainerMimeType(stream.container.format))
}.build()

fun MediaStream.toFormats(): List<Format> {
val containerFormat = toFormat(this)
val trackFormats = tracks.map { track ->
when (track) {
is MediaStreamAudioTrack -> toFormat(stream = this, track)
is MediaStreamVideoTrack -> toFormat(stream = this, track)
}
}
return trackFormats + containerFormat
}

0 comments on commit c4531f5

Please sign in to comment.