Skip to content

ExoPlayer fails with "Source error" on MKV files with compressed content (ContentCompAlgo) #1931

Description

@kfarnung

This issue respects the following points:

  • This issue is not already reported on GitHub (I've searched it).
  • I agree to follow Jellyfin's Code of Conduct.
  • This report addresses only a single issue; If you encounter multiple issues, kindly create separate reports for each one.

Describe the bug

  1. Find an MKV file with embedded compressed PGS subtitles
  2. Switch to Exoplayer in the "Client Settings"
  3. Try to play

Expected: the content plays
Actual: a "Source Error" is shown and no media plays. Enabling subtitles causes the server to transcode and that also mitigates the issue.

Digging in, it looks like this is due to the PGS subitles in the MKV container causing DirectPlay to fail. On Android TV it seems to fall back to DirectStream if this occurs.

Media info of the file

Video
Title: 1080p H264 SDR
Codec: H264
AVC: Yes
Profile: High
Level: 40
Resolution: 1920x1080
Aspect ratio: 16:9
Anamorphic: No
Interlaced: No
Framerate: 23.976025
Bitrate: 11252 kbps
Bit depth: 8 bit
Video range: SDR
Video range type: SDR
Pixel format: yuv420p
Ref frames: 1
NAL: 4


Audio
Title: English - Dolby Digital - 5.1 - Default
Language: eng
Codec: AC3
AVC: No
Layout: 5.1
Channels: 6 ch
Bitrate: 448 kbps
Sample rate: 48000 Hz
Default: Yes
Forced: No
External: No


Subtitle
Title: English - Default - DVDSUB
Language: eng
Codec: DVDSUB
AVC: No
Resolution: 1920x1080
Default: Yes
Forced: No
External: No

Which video player implementations does this bug apply to?

  • Web player (default)
  • Integrated player (ExoPlayer)
  • External player (VLC, mpv, MX Player)

Client logs

03-15 23:40:05.130  8042  8042 E EventLogger: internalError [eventTime=0.23, mediaPos=5106.57, window=0, period=0, loadError
03-15 23:40:05.130  8042  8042 E EventLogger:   androidx.media3.common.ParserException: ContentCompAlgo 0 not supported {contentIsMalformed=true, dataType=1}
03-15 23:40:05.135  8042  8192 E ExoPlayerImplInternal: Playback error
03-15 23:40:05.135  8042  8192 E ExoPlayerImplInternal:   androidx.media3.exoplayer.ExoPlaybackException: Source error
03-15 23:40:05.135  8042  8192 E ExoPlayerImplInternal:       at androidx.media3.exoplayer.ExoPlayerImplInternal.handleIoException(ExoPlayerImplInternal.java:927)
03-15 23:40:05.135  8042  8192 E ExoPlayerImplInternal:   Caused by: androidx.media3.common.ParserException: ContentCompAlgo 0 not supported {contentIsMalformed=true, dataType=1}
03-15 23:40:05.137  8042  8042 E EventLogger: playerFailed [eventTime=0.24, mediaPos=5106.57, window=0, period=0, errorCode=ERROR_CODE_PARSING_CONTAINER_MALFORMED
03-15 23:40:05.137  8042  8042 E EventLogger:   androidx.media3.exoplayer.ExoPlaybackException: Source error
03-15 23:40:05.137  8042  8042 E EventLogger:       at androidx.media3.exoplayer.ExoPlayerImplInternal.handleIoException(ExoPlayerImplInternal.java:927)
03-15 23:40:05.137  8042  8042 E EventLogger:   Caused by: androidx.media3.common.ParserException: ContentCompAlgo 0 not supported {contentIsMalformed=true, dataType=1}

FFmpeg logs

I don't see any ffmpeg logs, likely because this is invoking DirectPlay.

Application version

2.6.3

Where did you install the app from?

Google Play Store

Device information

Google Pixel 9 Pro

Android version

Android 16

Jellyfin server version

10.11.6

Other sources

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions