jellyfin / jellyfin-androidtv

Android TV Client for Jellyfin
https://jellyfin.org
GNU General Public License v2.0
2.67k stars 457 forks source link

Dolby Vision - Black bars are not black for non-16:9 media #3470

Closed Gruetti closed 3 months ago

Gruetti commented 5 months ago

Bug Description

Repro

1) Play a Dolby Vision (DoVI) video file that is not 16:9 (for example a movie where the source material had black bars that were removed) 2) Pause the playback on a very dark scene 3) The bars, that are supposedly black, are easily distinguishable by their dark greyish color. It looks like this:

20240326_114959 (excuse the cropping, the reflection shows my entire living room)

Setup

Both devices are capable of DoVi and the TV confirms that DoVi is active.

Additional Info

The issue occurs with every configuration I tried so far. The most obvious result can be achieved setting "HDR Auto" and "DoVi source-led". As soon as the DoVI logo pops up in the corner, the previously uniform black screen changes to the grey bars with perfect black in the area that is covered by the video (as shown in the image).

Could it be that the "black" bars, that are added by the player, are in "HDR10-black" and not in "DoVi-Black", so when the TV switches to DoVi the bars appear grey?

Logs

Log

[2024-03-26 11:36:57.882 +00:00] [INF] [41] Jellyfin.Api.Helpers.MediaInfoHelper: User policy for "User". EnablePlaybackRemuxing: True EnableVideoPlaybackTranscoding: False EnableAudioPlaybackTranscoding: True [2024-03-26 11:36:57.883 +00:00] [INF] [41] Jellyfin.Api.Helpers.MediaInfoHelper: StreamBuilder.BuildVideoItem( Profile="AndroidTV-libVLC", Path="/data/movies/Bullet Train (2022)/Bullet.Train.2022.German.DL.DV.2160p.UHD.BluRay.mkv", AudioStreamIndex=null, SubtitleStreamIndex=null ) => ( PlayMethod=DirectPlay, TranscodeReason=0 ) "media:/videos/62d7e640-8241-215e-fa58-785cff28ea16/stream.mkv?MediaSourceId=62d7e6408241215efa58785cff28ea16&Static=true&VideoCodec=hevc&AudioCodec=dts&AudioStreamIndex=1&SubtitleStreamIndex=7&api_key=&SubtitleMethod=Embed&Tag=750536d32350906ed062ee9f36643899" [2024-03-26 11:36:57.958 +00:00] [INF] [44] Jellyfin.Api.Helpers.MediaInfoHelper: User policy for "User". EnablePlaybackRemuxing: True EnableVideoPlaybackTranscoding: False EnableAudioPlaybackTranscoding: True [2024-03-26 11:36:57.959 +00:00] [INF] [44] Jellyfin.Api.Helpers.MediaInfoHelper: StreamBuilder.BuildVideoItem( Profile="AndroidTV-ExoPlayer", Path="/data/movies/Bullet Train (2022)/Bullet.Train.2022.German.DL.DV.2160p.UHD.BluRay.mkv", AudioStreamIndex=null, SubtitleStreamIndex=null ) => ( PlayMethod=DirectPlay, TranscodeReason=0 ) "media:/videos/62d7e640-8241-215e-fa58-785cff28ea16/stream.mkv?MediaSourceId=62d7e6408241215efa58785cff28ea16&Static=true&VideoCodec=hevc&AudioCodec=dts&AudioStreamIndex=1&SubtitleStreamIndex=7&api_key=&SubtitleMethod=Embed&Tag=750536d32350906ed062ee9f36643899" [2024-03-26 11:37:15.064 +00:00] [INF] [17] Emby.Server.Implementations.Session.SessionManager: Playback stopped reported by app "Android TV" "0.16.7" playing "Bullet Train". Stopped at "15795" ms

File metadata

General

General Count : 347 Count of stream of this kind : 1 Kind of stream : General Kind of stream : General Stream identifier : 0 Unique ID : 261274783400690333786010133738533919228 Unique ID : 261274783400690333786010133738533919228 (0xC48FB162517AA851474901B396B799FC) Count of video streams : 1 Count of audio streams : 6 Count of text streams : 9 Count of menu streams : 1 Video_Format_List : HEVC Video_Format_WithHint_List : HEVC Codecs Video : HEVC Audio_Format_List : DTS XLL / MLP FBA 16-ch / AC-3 / DTS XLL / AC-3 / AC-3 Audio_Format_WithHint_List : DTS XLL / MLP FBA 16-ch / AC-3 / DTS XLL / AC-3 / AC-3 Audio codecs : DTS XLL / MLP FBA 16-ch / AC-3 / DTS XLL / AC-3 / AC-3 Audio_Language_List : German / English / English / English / English / English Text_Format_List : UTF-8 / UTF-8 / PGS / PGS / PGS / PGS / PGS / PGS / PGS Text_Format_WithHint_List : UTF-8 / UTF-8 / PGS / PGS / PGS / PGS / PGS / PGS / PGS Text codecs : UTF-8 / UTF-8 / PGS / PGS / PGS / PGS / PGS / PGS / PGS Text_Language_List : German / English / German / German / English / English / English / German / English Complete name : Bullet.Train.2022.German.DL.DV.2160p.UHD.BluRay.mkv File name extension : Bullet.Train.2022.German.DL.DV.2160p.UHD.BluRay.mkv File name : Bullet.Train.2022.German.DL.DV.2160p.UHD.BluRay File extension : mkv Format : Matroska Format : Matroska Format/Url : https://matroska.org/downloads/windows.html Format/Extensions usually used : mkv mk3d mka mks Commercial name : Matroska Format version : Version 4 File size : 32781832958 File size : 30.5 GiB File size : 31 GiB File size : 31 GiB File size : 30.5 GiB File size : 30.53 GiB Duration : 7591616 Duration : 2 h 6 min Duration : 2 h 6 min 31 s 616 ms Duration : 2 h 6 min Duration : 02:06:31.616 Duration : 02:06:33;12 Duration : 02:06:31.616 (02:06:33;12) Overall bit rate mode : VBR Overall bit rate mode : Variable Overall bit rate : 34545302 Overall bit rate : 34.5 Mb/s Frame rate : 23.976 Frame rate : 23.976 FPS Frame count : 182016 IsStreamable : Yes Title : Bullet Train Movie name : Bullet Train Encoded date : 2022-10-26 18:34:07 UTC File last modification date : 2022-10-26 18:42:12 UTC File last modification date (local) : 2022-10-26 20:42:12 Writing application : mkvmerge v67.0.0 ('Under Stars') 64-bit Writing application : mkvmerge v67.0.0 ('Under Stars') 64-bit Writing library : libebml v1.4.2 + libmatroska v1.6.4 Writing library : libebml v1.4.2 + libmatroska v1.6.4

Video

Count : 381 Count of stream of this kind : 1 Kind of stream : Video Kind of stream : Video Stream identifier : 0 StreamOrder : 0 ID : 1 ID : 1 Unique ID : 13277726002832749564 Format : HEVC Format : HEVC Format/Info : High Efficiency Video Coding Format/Url : http://www.itu.int Commercial name : HEVC Format profile : Main 10@L5.1@High HDR format : Dolby Vision / SMPTE ST 2086 HDR format : Dolby Vision, Version 1.0, dvhe.08.06, BL+RPU, HDR10 compatible / SMPTE ST 2086, HDR10 compatible HDR_Format_Commercial : HDR10 / HDR10 HDR_Format_Version : 1.0 / HDR_Format_Profile : dvhe.08 / HDR_Format_Level : 06 / HDR_Format_Settings : BL+RPU / HDR_Format_Compatibility : HDR10 / HDR10 Internet media type : video/H265 Codec ID : V_MPEGH/ISO/HEVC Duration : 7591584.000000 Duration : 2 h 6 min Duration : 2 h 6 min 31 s 584 ms Duration : 2 h 6 min Duration : 02:06:31.584 Duration : 02:06:33;12 Duration : 02:06:31.584 (02:06:33;12) Bit rate : 24551233 Bit rate : 24.6 Mb/s Width : 3840 Width : 3 840 pixels Height : 1608 Height : 1 608 pixels Sampled_Width : 3840 Sampled_Height : 1608 Pixel aspect ratio : 1.000 Display aspect ratio : 2.388 Display aspect ratio : 2.40:1 Frame rate mode : CFR Frame rate mode : Constant Frame rate : 23.976 Frame rate : 23.976 (24000/1001) FPS FrameRate_Num : 24000 FrameRate_Den : 1001 Frame count : 182016 Color space : YUV Chroma subsampling : 4:2:0 Chroma subsampling : 4:2:0 (Type 2) ChromaSubsampling_Position : Type 2 Bit depth : 10 Bit depth : 10 bits Bits/(Pixel*Frame) : 0.166 Delay : 0 Delay : 00:00:00.000 Delay : 00:00:00;00 Delay : 00:00:00.000 (00:00:00;00) Delay, origin : Container Delay, origin : Container Stream size : 23297844119 Stream size : 21.7 GiB (71%) Stream size : 22 GiB Stream size : 22 GiB Stream size : 21.7 GiB Stream size : 21.70 GiB Stream size : 21.7 GiB (71%) Proportion of this stream : 0.71069 Writing library : x265 - 3.5+39-931178347:[Windows][MSVC 1933][64 bit] 10bit Writing library : x265 3.5+39-931178347:[Windows][MSVC 1933][64 bit] 10bit Encoded_Library_Name : x265 Encoded_Library_Version : 3.5+39-931178347:[Windows][MSVC 1933][64 bit] 10bit Encoding settings : cpuid=1111039 / frame-threads=5 / numa-pools=24 / wpp / no-pmode / no-pme / no-psnr / no-ssim / log-level=2 / input-csp=1 / input-res=3840x1608 / interlace=0 / total-frames=182016 / level-idc=51 / high-tier=1 / uhd-bd=0 / ref=4 / no-allow-non-conformance / repeat-headers / annexb / aud / no-eob / no-eos / hrd / info / hash=0 / no-temporal-layers / no-open-gop / min-keyint=23 / keyint=250 / gop-lookahead=0 / bframes=4 / b-adapt=2 / b-pyramid / bframe-bias=0 / rc-lookahead=25 / lookahead-slices=4 / scenecut=40 / no-hist-scenecut / radl=0 / no-splice / no-intra-refresh / ctu=64 / min-cu-size=8 / rect / no-amp / max-tu-size=32 / tu-inter-depth=1 / tu-intra-depth=1 / limit-tu=0 / rdoq-level=2 / dynamic-rd=0.00 / no-ssim-rd / signhide / no-tskip / nr-intra=0 / nr-inter=0 / no-constrained-intra / no-strong-intra-smoothing / max-merge=3 / limit-refs=3 / limit-modes / me=3 / subme=3 / merange=57 / temporal-mvp / no-frame-dup / no-hme / weightp / no-weightb / no-analyze-src-pics / deblock=-3:-3 / no-sao / no-sao-non-deblock / rd=4 / selective-sao=0 / no-early-skip / rskip / no-fast-intra / no-tskip-fast / no-cu-lossless / no-b-intra / no-splitrd-skip / rdpenalty=0 / psy-rd=2.00 / psy-rdoq=1.00 / no-rd-refine / no-lossless / cbqpoffs=0 / crqpoffs=0 / rc=crf / crf=12.0 / qcomp=0.60 / qpstep=4 / stats-write=0 / stats-read=0 / vbv-maxrate=160000 / vbv-bufsize=160000 / vbv-init=0.9 / min-vbv-fullness=50.0 / max-vbv-fullness=80.0 / crf-max=0.0 / crf-min=0.0 / ipratio=1.40 / pbratio=1.30 / aq-mode=2 / aq-strength=1.00 / cutree / zone-count=0 / no-strict-cbr / qg-size=32 / no-rc-grain / qpmax=69 / qpmin=0 / no-const-vbv / sar=1 / overscan=0 / videoformat=5 / range=0 / colorprim=9 / transfer=16 / colormatrix=9 / chromaloc=1 / chromaloc-top=2 / chromaloc-bottom=2 / display-window=0 / master-display=G(13250,34500)B(7500,3000)R(34000,16000)WP(15635,16450)L(10000000,01) / cll=1038,395 / min-luma=0 / max-luma=1023 / log2-max-poc-lsb=8 / vui-timing-info / vui-hrd-info / slices=1 / no-opt-qp-pps / no-opt-ref-list-length-pps / no-multi-pass-opt-rps / scenecut-bias=0.05 / hist-threshold=0.03 / no-opt-cu-delta-qp / no-aq-motion / hdr10 / hdr10-opt / no-dhdr10-opt / no-idr-recovery-sei / analysis-reuse-level=0 / analysis-save-reuse-level=0 / analysis-load-reuse-level=0 / scale-factor=0 / refine-intra=0 / refine-inter=0 / refine-mv=1 / refine-ctu-distortion=0 / no-limit-sao / ctu-info=0 / no-lowpass-dct / refine-analysis-type=0 / copy-pic=1 / max-ausize-factor=1.0 / no-dynamic-refine / no-single-sei / no-hevc-aq / no-svt / no-field / qp-adaptation-range=1.00 / scenecut-aware-qp=0conformance-window-offsets / right=0 / bottom=0 / decoder-max-rate=0 / no-vbv-live-multi-pass

Application version

0.16.7

Where did you install the app from?

Google Play

Device information

Android box (Nokia 8010)

Android version

Android 11

Jellyfin server version

10.8.13

nielsvanvelzen commented 5 months ago

Are you sure you are running 0.16.7 and not 0.16.6 or older?

Gruetti commented 5 months ago

@nielsvanvelzen At least that's what shows up in the menu:

20240331_201945

nielsvanvelzen commented 5 months ago

Can you try sideloading the 0.16.6 version (or earlier) and see if that fixes the issue for you?

You can find the apk file here: https://github.com/jellyfin/jellyfin-androidtv/releases/tag/v0.16.6

Gruetti commented 5 months ago

I tested this on 0.16.6 and the issue does only occur in 0.16.7. Can I do something more to help you find the cause for this issue?

Gruetti commented 3 months ago

Hi,

I tested the issue again with 0.16.10 and everything seems to work now.