Skip to main content

## renderer_codecs

# Function renderer_codecs

Source

    pub fn renderer_codecs() -> (String, String)

Expand description

What the renderer that will actually decode video on this platform can play.

Returns `(video_codecs, audio_codecs)` as Jellyfin-style comma lists.

This exists because the answer was previously derived in four places and hardcoded in a fifth, each of them assuming the webview was decoding: the device profile, the transcoding targets, the direct-play audio narrowing, the client-side audio override, and `get_video_stream_url`’s `VideoCodec`. On Android the decoder is ExoPlayer, so every one of those was wrong there — the observed cost being an hevc source re-encoded to h264 because its audio was eac3, and dts forced to transcode though the device decodes it.

One source, so the copies cannot disagree again.

TRACES: UR-004, UR-080 | DR-234