Skip to content
This repository has been archived by the owner on Sep 16, 2023. It is now read-only.

Chroma banding in HDR10 playback vs Quicktime X #40

Closed
csdesigns opened this issue Feb 22, 2022 · 7 comments
Closed

Chroma banding in HDR10 playback vs Quicktime X #40

csdesigns opened this issue Feb 22, 2022 · 7 comments
Labels
duplicate This issue or pull request already exists

Comments

@csdesigns
Copy link

MacBookPro18,2 (16" M1 Max/32GB)
macOS Monterey 12.3 Beta (21E5212f)
IINA 1.2.0 (build 129)

Expected behavior:
Rendering performance similar to Quicktime when displaying in XDR/HDR mode.

Actual behavior:
Some HDR10 files exhibit minor chroma banding compared to Quicktime X on macOS (XDR/HDR) or mpv (tone-mapped).

mpv log:
[   0.005][v][cplayer] mpv 0.34.1 Copyright © 2000-2021 mpv/MPlayer/mplayer2 projects
[   0.005][v][cplayer]  built on Mon Feb 21 03:12:55 UTC 2022
[   0.005][v][cplayer] FFmpeg library versions:
[   0.005][v][cplayer]    libavutil       57.17.100
[   0.005][v][cplayer]    libavcodec      59.18.100
[   0.005][v][cplayer]    libavformat     59.16.100
[   0.005][v][cplayer]    libswscale      6.4.100
[   0.005][v][cplayer]    libavfilter     8.24.100
[   0.005][v][cplayer]    libswresample   4.3.100
[   0.005][v][cplayer] FFmpeg version: 5.0
[   0.005][v][cplayer] 
[   0.005][v][cplayer] Configuration: waf configure --prefix=/opt/homebrew/Cellar/mpv-iina/0.34.1 --enable-javascript --enable-libmpv-shared --enable-lua --enable-libarchive --enable-uchardet --enable-libbluray --disable-swift --disable-debug-build --disable-macos-media-player --confdir=/opt/homebrew/etc/mpv --datadir=/opt/homebrew/Cellar/mpv-iina/0.34.1/share/mpv-iina --mandir=/opt/homebrew/Cellar/mpv-iina/0.34.1/share/man --docdir=/opt/homebrew/Cellar/mpv-iina/0.34.1/share/doc/mpv-iina --lua=luajit
[   0.005][v][cplayer] List of enabled features: asm bsd-fstatfs build-date cocoa coreaudio cplayer cplugins ffmpeg ffmpeg-aviocontext-bytes-read gl gl-cocoa glob glob-posix gpl iconv javascript jpeg lcms2 libarchive libass libavdevice libbluray libdl libm libmpv-shared lua luajit macos-10-11-features macos-10-12-2-features macos-10-14-features macos-touchbar optimize osx-thread-name plain-gl posix posix-or-mingw pthreads stdatomic uchardet vector videotoolbox-gl videotoolbox-hwaccel zlib
[   0.005][v][cplayer] mpv 0.34.1 Copyright © 2000-2021 mpv/MPlayer/mplayer2 projects
[   0.005][v][cplayer]  built on Mon Feb 21 03:12:55 UTC 2022
[   0.005][v][cplayer] FFmpeg library versions:
[   0.005][v][cplayer]    libavutil       57.17.100
[   0.005][v][cplayer]    libavcodec      59.18.100
[   0.005][v][cplayer]    libavformat     59.16.100
[   0.005][v][cplayer]    libswscale      6.4.100
[   0.005][v][cplayer]    libavfilter     8.24.100
[   0.005][v][cplayer]    libswresample   4.3.100
[   0.005][v][cplayer] FFmpeg version: 5.0
[   0.005][v][cplayer] 
[   0.005][v][cplayer] Configuration: waf configure --prefix=/opt/homebrew/Cellar/mpv-iina/0.34.1 --enable-javascript --enable-libmpv-shared --enable-lua --enable-libarchive --enable-uchardet --enable-libbluray --disable-swift --disable-debug-build --disable-macos-media-player --confdir=/opt/homebrew/etc/mpv --datadir=/opt/homebrew/Cellar/mpv-iina/0.34.1/share/mpv-iina --mandir=/opt/homebrew/Cellar/mpv-iina/0.34.1/share/man --docdir=/opt/homebrew/Cellar/mpv-iina/0.34.1/share/doc/mpv-iina --lua=luajit
[   0.005][v][cplayer] List of enabled features: asm bsd-fstatfs build-date cocoa coreaudio cplayer cplugins ffmpeg ffmpeg-aviocontext-bytes-read gl gl-cocoa glob glob-posix gpl iconv javascript jpeg lcms2 libarchive libass libavdevice libbluray libdl libm libmpv-shared lua luajit macos-10-11-features macos-10-12-2-features macos-10-14-features macos-touchbar optimize osx-thread-name plain-gl posix posix-or-mingw pthreads stdatomic uchardet vector videotoolbox-gl videotoolbox-hwaccel zlib
[   0.005][d][global] config path: '' -> '~/.config/mpv'
[   0.005][d][global] user path: '~~home/' -> '~/.config/mpv'
[   0.005][d][global] user path: '~~old_home/' -> ''
[   0.005][d][global] config path: 'encoding-profiles.conf' -/-> '~/.config/mpv/encoding-profiles.conf'
[   0.005][d][global] config path: 'mpv.conf' -> '~/.config/mpv/mpv.conf'
[   0.005][d][global] config path: 'config' -/-> '~/.config/mpv/config'
[   0.005][v][cplayer] Reading config file ~/.config/mpv/mpv.conf
[   0.005][v][cplayer] Applying profile 'default'...
[   0.005][v][cplayer] Setting option 'hwdec-codecs' = 'h264,vc1,hevc,vp8,vp9,av1,prores' (flags = 4)
[   0.005][d][global] user path: '/Applications/IINA.app/Contents/Resources/config/iina-default-input.conf' -> '/Applications/IINA.app/Contents/Resources/config/iina-default-input.conf'
[   0.005][v][bdmv/bluray] Opening /Applications/IINA.app/Contents/Resources/config/iina-default-input.conf
[   0.006][v][file] Opening /Applications/IINA.app/Contents/Resources/config/iina-default-input.conf
[   0.006][d][file] resize stream to 131072 bytes, drop 0 bytes
[   0.006][d][file] Stream opened successfully.
[   0.006][v][input] Parsing input config file /Applications/IINA.app/Contents/Resources/config/iina-default-input.conf
[   0.006][v][input] Input config file /Applications/IINA.app/Contents/Resources/config/iina-default-input.conf parsed: 69 binds
[   0.006][d][global] user path: '~/Library/Logs/com.colliderli.iina/2022-02-22-17-42-13_DMUnad/mpv.log' -> '~/Library/Logs/com.colliderli.iina/2022-02-22-17-42-13_DMUnad/mpv.log'
[   0.006][d][ytdl_hook] Loading lua script @ytdl_hook.lua...
[   0.006][d][stats] Loading lua script @stats.lua...
[   0.006][d][console] Loading lua script @console.lua...
[   0.006][d][auto_profiles] Loading lua script @auto_profiles.lua...
[   0.006][d][osx] Exiting...
[   0.006][d][global] config path: 'scripts' -/-> '~/.config/mpv/scripts'
[   0.006][d][stats] loading mp.defaults
[   0.006][d][console] loading mp.defaults
[   0.006][d][ytdl_hook] loading mp.defaults
[   0.006][d][auto_profiles] loading mp.defaults
[   0.006][v][cplayer] Set property: vo="libmpv" -> 1
[   0.006][v][cplayer] Set property: keepaspect="no" -> 1
[   0.006][v][cplayer] Set property: gpu-hwdec-interop="auto" -> 1
[   0.006][d][ytdl_hook] loading @ytdl_hook.lua
[   0.006][d][auto_profiles] loading @auto_profiles.lua
[   0.006][d][stats] loading @stats.lua
[   0.006][d][console] loading @console.lua
[   0.007][d][ytdl_hook] reading options for ytdl_hook 
[   0.007][d][global] config path: 'script-opts/ytdl_hook.conf' -/-> '~/.config/mpv/script-opts/ytdl_hook.conf'
[   0.007][d][ytdl_hook] script-opts/ytdl_hook.conf not found. 
[   0.007][d][global] config path: 'lua-settings/ytdl_hook.conf' -/-> '~/.config/mpv/lua-settings/ytdl_hook.conf'
[   0.007][d][ytdl_hook] lua-settings/ytdl_hook.conf not found. 
[   0.007][d][stats] reading options for stats 
[   0.007][d][global] config path: 'script-opts/stats.conf' -/-> '~/.config/mpv/script-opts/stats.conf'
[   0.007][d][stats] script-opts/stats.conf not found. 
[   0.007][d][global] config path: 'lua-settings/stats.conf' -/-> '~/.config/mpv/lua-settings/stats.conf'
[   0.007][d][stats] lua-settings/stats.conf not found. 
[   0.017][v][ao/coreaudio] selected audio output device: MacBook Pro Speakers (44)
[   0.017][d][console] reading options for console 
[   0.017][d][global] config path: 'script-opts/console.conf' -/-> '~/.config/mpv/script-opts/console.conf'
[   0.017][d][console] script-opts/console.conf not found. 
[   0.017][d][global] config path: 'lua-settings/console.conf' -/-> '~/.config/mpv/lua-settings/console.conf'
[   0.017][d][console] lua-settings/console.conf not found. 
[   0.017][d][auto_profiles] Exiting...
[   0.017][d][cplayer] Run command: define-section, flags=64, args=[name="input_console", contents="", flags="default"]
[   0.017][d][cplayer] Run command: enable-section, flags=64, args=[name="input_console", flags="allow-hide-cursor+allow-vo-dragging"]
[   0.017][d][cplayer] Run command: define-section, flags=64, args=[name="input_forced_console", contents="", flags="force"]
[   0.017][d][cplayer] Run command: enable-section, flags=64, args=[name="input_forced_console", flags="allow-hide-cursor+allow-vo-dragging"]
[   0.017][v][cplayer] Waiting for scripts...
[   0.018][d][global] config path: 'fonts' -/-> '~/.config/mpv/fonts'
[   0.018][d][osd/libass] ASS library version: 0x1502000 (runtime 0x1502000)
[   0.018][v][osd/libass] libass API version: 0x1502000
[   0.018][v][osd/libass] libass source: tarball: 0.15.2
[   0.018][v][osd/libass] Shaper: FriBidi 1.0.11 (SIMPLE) HarfBuzz-ng 3.4.0 (COMPLEX)
[   0.018][d][global] config path: 'subfont.ttf' -/-> '~/.config/mpv/subfont.ttf'
[   0.018][d][global] config path: 'fonts.conf' -/-> '~/.config/mpv/fonts.conf'
[   0.018][v][osd/libass] Setting up fonts...
[   0.018][v][osd/libass] Using font provider coretext
[   0.018][v][osd/libass] Done.
[   0.018][d][cplayer] Run command: define-section, flags=64, args=[name="input_stats", contents="", flags="default"]
[   0.018][d][cplayer] Run command: enable-section, flags=64, args=[name="input_stats", flags="allow-hide-cursor+allow-vo-dragging"]
[   0.018][v][cplayer] Done loading scripts.
[   0.019][d][cplayer] Run command: define-section, flags=64, args=[name="input_forced_stats", contents="", flags="force"]
[   0.019][d][cplayer] Run command: enable-section, flags=64, args=[name="input_forced_stats", flags="allow-hide-cursor+allow-vo-dragging"]
[   3.172][v][libmpv_render] GL_VERSION='4.1 Metal - 76.3'
[   3.172][v][libmpv_render] Detected desktop OpenGL 4.1.
[   3.172][v][libmpv_render] GL_VENDOR='Apple'
[   3.172][v][libmpv_render] GL_RENDERER='Apple M1 Max'
[   3.172][v][libmpv_render] GL_SHADING_LANGUAGE_VERSION='4.10'
[   3.172][d][libmpv_render] Combined OpenGL extensions string:
[   3.172][d][libmpv_render]  GL_ARB_blend_func_extended GL_ARB_draw_buffers_blend GL_ARB_draw_indirect GL_ARB_ES2_compatibility GL_ARB_explicit_attrib_location GL_ARB_gpu_shader_fp64 GL_ARB_gpu_shader5 GL_ARB_instanced_arrays GL_ARB_internalformat_query GL_ARB_occlusion_query2 GL_ARB_sample_shading GL_ARB_sampler_objects GL_ARB_separate_shader_objects GL_ARB_shader_bit_encoding GL_ARB_shader_subroutine GL_ARB_shading_language_include GL_ARB_tessellation_shader GL_ARB_texture_buffer_object_rgb32 GL_ARB_texture_cube_map_array GL_ARB_texture_gather GL_ARB_texture_query_lod GL_ARB_texture_rgb10_a2ui GL_ARB_texture_storage GL_ARB_texture_swizzle GL_ARB_timer_query GL_ARB_transform_feedback2 GL_ARB_transform_feedback3 GL_ARB_vertex_attrib_64bit GL_ARB_vertex_type_2_10_10_10_rev GL_ARB_viewport_array GL_EXT_debug_label GL_EXT_debug_marker GL_EXT_framebuffer_multisample_blit_scaled GL_EXT_texture_compression_s3tc GL_EXT_texture_filter_anisotropic GL_EXT_texture_sRGB_decode GL_APPLE_client_storage GL_APPLE_container_object_shareable GL_APPLE_flush_render GL_APPLE_rgb_422 GL_APPLE_row_bytes GL_APPLE_texture_range GL_NV_texture_barrier
[   3.172][v][libmpv_render] Loaded extension GL_APPLE_rgb_422.
[   3.172][v][libmpv_render] GL_*_swap_control extension missing.
[   3.172][d][libmpv_render] Texture formats:
[   3.172][d][libmpv_render]   NAME       COMP*TYPE SIZE           DEPTH PER COMP.
[   3.172][d][libmpv_render]   r8         1*unorm   1B    LF CR ST {8}
[   3.172][d][libmpv_render]   rg8        2*unorm   2B    LF CR ST {8 8}
[   3.172][d][libmpv_render]   rgb8       3*unorm   3B    LF CR ST {8 8 8}
[   3.172][d][libmpv_render]   rgba8      4*unorm   4B    LF CR ST {8 8 8 8}
[   3.172][d][libmpv_render]   r16        1*unorm   2B    LF CR ST {16}
[   3.172][d][libmpv_render]   rg16       2*unorm   4B    LF CR ST {16 16}
[   3.172][d][libmpv_render]   rgb16      3*unorm   6B    LF CR ST {16 16 16}
[   3.172][d][libmpv_render]   rgba16     4*unorm   8B    LF CR ST {16 16 16 16}
[   3.172][d][libmpv_render]   r8ui       1*uint    1B       CR ST {8}
[   3.172][d][libmpv_render]   rg8ui      2*uint    2B       CR ST {8 8}
[   3.172][d][libmpv_render]   rgb8ui     3*uint    3B          ST {8 8 8}
[   3.172][d][libmpv_render]   rgba8ui    4*uint    4B       CR ST {8 8 8 8}
[   3.172][d][libmpv_render]   r16ui      1*uint    2B       CR ST {16}
[   3.172][d][libmpv_render]   rg16ui     2*uint    4B       CR ST {16 16}
[   3.172][d][libmpv_render]   rgb16ui    3*uint    6B          ST {16 16 16}
[   3.172][d][libmpv_render]   rgba16ui   4*uint    8B       CR ST {16 16 16 16}
[   3.172][d][libmpv_render]   r16f       1*float   4B    LF CR ST {32/16}
[   3.172][d][libmpv_render]   rg16f      2*float   8B    LF CR ST {32/16 32/16}
[   3.172][d][libmpv_render]   rgb16f     3*float  12B    LF CR ST {32/16 32/16 32/16}
[   3.172][d][libmpv_render]   rgba16f    4*float  16B    LF CR ST {32/16 32/16 32/16 32/16}
[   3.172][d][libmpv_render]   r32f       1*float   4B    LF CR ST {32}
[   3.172][d][libmpv_render]   rg32f      2*float   8B    LF CR ST {32 32}
[   3.172][d][libmpv_render]   rgb32f     3*float  12B    LF CR ST {32 32 32}
[   3.172][d][libmpv_render]   rgba32f    4*float  16B    LF CR ST {32 32 32 32}
[   3.172][d][libmpv_render]   rgb10_a2   4*unorm   4B    LF CR ST {0/10 0/10 0/10 0/2}
[   3.172][d][libmpv_render]   rgba12     4*unorm   8B    LF CR ST {16/12 16/12 16/12 16/12}
[   3.172][d][libmpv_render]   rgb10      3*unorm   6B    LF CR ST {16/10 16/10 16/10}
[   3.172][d][libmpv_render]   rgb565     3*unorm   2B    LF    ST {0/8 0/8 0/8}
[   3.172][d][libmpv_render]   appleyp    0*unorm   2B    LF    ST {}
[   3.172][d][libmpv_render]  LA = LUMINANCE_ALPHA hack format
[   3.172][d][libmpv_render]  LF = linear filterable
[   3.172][d][libmpv_render]  CR = can be used for render targets
[   3.172][d][libmpv_render]  ST = can be used for storable images
[   3.172][d][libmpv_render] Image formats:
[   3.172][d][libmpv_render]   yuv444p => 3 planes 1x1 8/0 [r8/r8/r8] (r/g/b) [unorm]
[   3.172][d][libmpv_render]   yuv420p => 3 planes 2x2 8/0 [r8/r8/r8] (r/g/b) [unorm]
[   3.172][d][libmpv_render]   gray => 1 planes 1x1 8/0 [r8] (r) [unorm]
[   3.172][d][libmpv_render]   gray16 => 1 planes 1x1 16/0 [r16] (r) [unorm]
[   3.172][d][libmpv_render]   uyvy422 => 1 planes 1x1 0/0 [appleyp] (brg) [unknown]
[   3.172][d][libmpv_render]   nv12 => 2 planes 2x2 8/0 [r8/rg8] (r/gb) [unorm]
[   3.172][d][libmpv_render]   p010 => 2 planes 2x2 16/6 [r16/rg16] (r/gb) [unorm]
[   3.172][d][libmpv_render]   argb => 1 planes 1x1 8/0 [rgba8] (argb) [unorm]
[   3.172][d][libmpv_render]   bgra => 1 planes 1x1 8/0 [rgba8] (bgra) [unorm]
[   3.172][d][libmpv_render]   abgr => 1 planes 1x1 8/0 [rgba8] (abgr) [unorm]
[   3.172][d][libmpv_render]   rgba => 1 planes 1x1 8/0 [rgba8] (rgba) [unorm]
[   3.172][d][libmpv_render]   bgr24 => 1 planes 1x1 8/0 [rgb8] (bgr) [unorm]
[   3.172][d][libmpv_render]   rgb24 => 1 planes 1x1 8/0 [rgb8] (rgb) [unorm]
[   3.172][d][libmpv_render]   0rgb => 1 planes 1x1 8/0 [rgba8] (_rgb) [unorm]
[   3.172][d][libmpv_render]   bgr0 => 1 planes 1x1 8/0 [rgba8] (bgr) [unorm]
[   3.172][d][libmpv_render]   0bgr => 1 planes 1x1 8/0 [rgba8] (_bgr) [unorm]
[   3.172][d][libmpv_render]   rgb0 => 1 planes 1x1 8/0 [rgba8] (rgb) [unorm]
[   3.172][d][libmpv_render]   rgba64 => 1 planes 1x1 16/0 [rgba16] (rgba) [unorm]
[   3.172][d][libmpv_render]   rgb565 => 1 planes 1x1 0/0 [rgb565] (rgb) [unknown]
[   3.172][d][libmpv_render]   pal8
[   3.172][d][libmpv_render]   vdpau
[   3.172][d][libmpv_render]   d3d11
[   3.172][d][libmpv_render]   dxva2_vld
[   3.172][d][libmpv_render]   mmal
[   3.172][d][libmpv_render]   mediacodec
[   3.172][d][libmpv_render]   drm_prime
[   3.172][d][libmpv_render]   cuda
[   3.172][d][libmpv_render]   yap8 => 2 planes 1x1 8/0 [r8/r8] (r/a) [unorm]
[   3.172][d][libmpv_render]   yap16 => 2 planes 1x1 16/0 [r16/r16] (r/a) [unorm]
[   3.172][d][libmpv_render]   grayaf32 => 2 planes 1x1 32/0 [r16f/r16f] (r/a) [float]
[   3.172][d][libmpv_render]   yuv444pf => 3 planes 1x1 32/0 [r16f/r16f/r16f] (r/g/b) [float]
[   3.172][d][libmpv_render]   yuva444pf => 4 planes 1x1 32/0 [r16f/r16f/r16f/r16f] (r/g/b/a) [float]
[   3.172][d][libmpv_render]   yuv420pf => 3 planes 2x2 32/0 [r16f/r16f/r16f] (r/g/b) [float]
[   3.172][d][libmpv_render]   yuva420pf => 4 planes 2x2 32/0 [r16f/r16f/r16f/r16f] (r/g/b/a) [float]
[   3.172][d][libmpv_render]   yuv422pf => 3 planes 2x1 32/0 [r16f/r16f/r16f] (r/g/b) [float]
[   3.172][d][libmpv_render]   yuva422pf => 4 planes 2x1 32/0 [r16f/r16f/r16f/r16f] (r/g/b/a) [float]
[   3.172][d][libmpv_render]   yuv440pf => 3 planes 1x2 32/0 [r16f/r16f/r16f] (r/g/b) [float]
[   3.172][d][libmpv_render]   yuva440pf => 4 planes 1x2 32/0 [r16f/r16f/r16f/r16f] (r/g/b/a) [float]
[   3.172][d][libmpv_render]   yuv410pf => 3 planes 4x4 32/0 [r16f/r16f/r16f] (r/g/b) [float]
[   3.172][d][libmpv_render]   yuva410pf => 4 planes 4x4 32/0 [r16f/r16f/r16f/r16f] (r/g/b/a) [float]
[   3.172][d][libmpv_render]   yuv411pf => 3 planes 4x1 32/0 [r16f/r16f/r16f] (r/g/b) [float]
[   3.172][d][libmpv_render]   yuva411pf => 4 planes 4x1 32/0 [r16f/r16f/r16f/r16f] (r/g/b/a) [float]
[   3.172][d][libmpv_render]   rgb30 => 1 planes 1x1 10/0 [rgb10_a2] (bgr) [unknown]
[   3.172][d][libmpv_render]   y1 => 1 planes 1x1 8/-7 [r8] (r) [unorm]
[   3.172][d][libmpv_render]   gbrp1 => 3 planes 1x1 8/-7 [r8/r8/r8] (g/b/r) [unorm]
[   3.172][d][libmpv_render]   gbrp2 => 3 planes 1x1 8/-6 [r8/r8/r8] (g/b/r) [unorm]
[   3.172][d][libmpv_render]   gbrp3 => 3 planes 1x1 8/-5 [r8/r8/r8] (g/b/r) [unorm]
[   3.172][d][libmpv_render]   gbrp4 => 3 planes 1x1 8/-4 [r8/r8/r8] (g/b/r) [unorm]
[   3.172][d][libmpv_render]   gbrp5 => 3 planes 1x1 8/-3 [r8/r8/r8] (g/b/r) [unorm]
[   3.172][d][libmpv_render]   gbrp6 => 3 planes 1x1 8/-2 [r8/r8/r8] (g/b/r) [unorm]
[   3.172][d][libmpv_render]   vdpau_output
[   3.172][d][libmpv_render]   vaapi
[   3.172][d][libmpv_render]   videotoolbox
[   3.172][d][libmpv_render]   yuyv422
[   3.172][d][libmpv_render]   yuv422p => 3 planes 2x1 8/0 [r8/r8/r8] (r/g/b) [unorm]
[   3.172][d][libmpv_render]   yuv410p => 3 planes 4x4 8/0 [r8/r8/r8] (r/g/b) [unorm]
[   3.172][d][libmpv_render]   yuv411p => 3 planes 4x1 8/0 [r8/r8/r8] (r/g/b) [unorm]
[   3.172][d][libmpv_render]   monow
[   3.172][d][libmpv_render]   monob
[   3.172][d][libmpv_render]   yuvj422p => 3 planes 2x1 8/0 [r8/r8/r8] (r/g/b) [unorm]
[   3.172][d][libmpv_render]   uyyvyy411
[   3.172][d][libmpv_render]   bgr8
[   3.172][d][libmpv_render]   bgr4
[   3.172][d][libmpv_render]   bgr4_byte
[   3.172][d][libmpv_render]   rgb8
[   3.172][d][libmpv_render]   rgb4
[   3.172][d][libmpv_render]   rgb4_byte
[   3.172][d][libmpv_render]   nv21 => 2 planes 2x2 8/0 [r8/rg8] (r/bg) [unorm]
[   3.172][d][libmpv_render]   gray16be
[   3.172][d][libmpv_render]   yuv440p => 3 planes 1x2 8/0 [r8/r8/r8] (r/g/b) [unorm]
[   3.172][d][libmpv_render]   yuvj440p => 3 planes 1x2 8/0 [r8/r8/r8] (r/g/b) [unorm]
[   3.172][d][libmpv_render]   yuva420p => 4 planes 2x2 8/0 [r8/r8/r8/r8] (r/g/b/a) [unorm]
[   3.172][d][libmpv_render]   rgb48be
[   3.172][d][libmpv_render]   rgb48 => 1 planes 1x1 16/0 [rgb16] (rgb) [unorm]
[   3.172][d][libmpv_render]   rgb565be
[   3.172][d][libmpv_render]   rgb555be
[   3.172][d][libmpv_render]   rgb555
[   3.172][d][libmpv_render]   bgr565be
[   3.172][d][libmpv_render]   bgr565
[   3.172][d][libmpv_render]   bgr555be
[   3.172][d][libmpv_render]   bgr555
[   3.172][d][libmpv_render]   yuv420p16 => 3 planes 2x2 16/0 [r16/r16/r16] (r/g/b) [unorm]
[   3.172][d][libmpv_render]   yuv420p16be
[   3.172][d][libmpv_render]   yuv422p16 => 3 planes 2x1 16/0 [r16/r16/r16] (r/g/b) [unorm]
[   3.172][d][libmpv_render]   yuv422p16be
[   3.172][d][libmpv_render]   yuv444p16 => 3 planes 1x1 16/0 [r16/r16/r16] (r/g/b) [unorm]
[   3.172][d][libmpv_render]   yuv444p16be
[   3.172][d][libmpv_render]   rgb444
[   3.172][d][libmpv_render]   rgb444be
[   3.172][d][libmpv_render]   bgr444
[   3.172][d][libmpv_render]   bgr444be
[   3.172][d][libmpv_render]   ya8 => 1 planes 1x1 8/0 [rg8] (ra) [unorm]
[   3.172][d][libmpv_render]   bgr48be
[   3.172][d][libmpv_render]   bgr48 => 1 planes 1x1 16/0 [rgb16] (bgr) [unorm]
[   3.172][d][libmpv_render]   yuv420p9be
[   3.172][d][libmpv_render]   yuv420p9 => 3 planes 2x2 16/-7 [r16/r16/r16] (r/g/b) [unorm]
[   3.172][d][libmpv_render]   yuv420p10be
[   3.172][d][libmpv_render]   yuv420p10 => 3 planes 2x2 16/-6 [r16/r16/r16] (r/g/b) [unorm]
[   3.172][d][libmpv_render]   yuv422p10be
[   3.172][d][libmpv_render]   yuv422p10 => 3 planes 2x1 16/-6 [r16/r16/r16] (r/g/b) [unorm]
[   3.172][d][libmpv_render]   yuv444p9be
[   3.172][d][libmpv_render]   yuv444p9 => 3 planes 1x1 16/-7 [r16/r16/r16] (r/g/b) [unorm]
[   3.172][d][libmpv_render]   yuv444p10be
[   3.172][d][libmpv_render]   yuv444p10 => 3 planes 1x1 16/-6 [r16/r16/r16] (r/g/b) [unorm]
[   3.172][d][libmpv_render]   yuv422p9be
[   3.172][d][libmpv_render]   yuv422p9 => 3 planes 2x1 16/-7 [r16/r16/r16] (r/g/b) [unorm]
[   3.172][d][libmpv_render]   gbrp => 3 planes 1x1 8/0 [r8/r8/r8] (g/b/r) [unorm]
[   3.172][d][libmpv_render]   gbrp9be
[   3.173][d][libmpv_render]   gbrp9 => 3 planes 1x1 16/-7 [r16/r16/r16] (g/b/r) [unorm]
[   3.173][d][libmpv_render]   gbrp10be
[   3.173][d][libmpv_render]   gbrp10 => 3 planes 1x1 16/-6 [r16/r16/r16] (g/b/r) [unorm]
[   3.173][d][libmpv_render]   gbrp16be
[   3.173][d][libmpv_render]   gbrp16 => 3 planes 1x1 16/0 [r16/r16/r16] (g/b/r) [unorm]
[   3.173][d][libmpv_render]   yuva422p => 4 planes 2x1 8/0 [r8/r8/r8/r8] (r/g/b/a) [unorm]
[   3.173][d][libmpv_render]   yuva444p => 4 planes 1x1 8/0 [r8/r8/r8/r8] (r/g/b/a) [unorm]
[   3.173][d][libmpv_render]   yuva420p9be
[   3.173][d][libmpv_render]   yuva420p9 => 4 planes 2x2 16/-7 [r16/r16/r16/r16] (r/g/b/a) [unorm]
[   3.173][d][libmpv_render]   yuva422p9be
[   3.173][d][libmpv_render]   yuva422p9 => 4 planes 2x1 16/-7 [r16/r16/r16/r16] (r/g/b/a) [unorm]
[   3.173][d][libmpv_render]   yuva444p9be
[   3.173][d][libmpv_render]   yuva444p9 => 4 planes 1x1 16/-7 [r16/r16/r16/r16] (r/g/b/a) [unorm]
[   3.173][d][libmpv_render]   yuva420p10be
[   3.173][d][libmpv_render]   yuva420p10 => 4 planes 2x2 16/-6 [r16/r16/r16/r16] (r/g/b/a) [unorm]
[   3.173][d][libmpv_render]   yuva422p10be
[   3.173][d][libmpv_render]   yuva422p10 => 4 planes 2x1 16/-6 [r16/r16/r16/r16] (r/g/b/a) [unorm]
[   3.173][d][libmpv_render]   yuva444p10be
[   3.173][d][libmpv_render]   yuva444p10 => 4 planes 1x1 16/-6 [r16/r16/r16/r16] (r/g/b/a) [unorm]
[   3.173][d][libmpv_render]   yuva420p16be
[   3.173][d][libmpv_render]   yuva420p16 => 4 planes 2x2 16/0 [r16/r16/r16/r16] (r/g/b/a) [unorm]
[   3.173][d][libmpv_render]   yuva422p16be
[   3.173][d][libmpv_render]   yuva422p16 => 4 planes 2x1 16/0 [r16/r16/r16/r16] (r/g/b/a) [unorm]
[   3.173][d][libmpv_render]   yuva444p16be
[   3.173][d][libmpv_render]   yuva444p16 => 4 planes 1x1 16/0 [r16/r16/r16/r16] (r/g/b/a) [unorm]
[   3.173][d][libmpv_render]   xyz12 => 1 planes 1x1 16/4 [rgb16] (rgb) [unorm]
[   3.173][d][libmpv_render]   xyz12be
[   3.173][d][libmpv_render]   nv16 => 2 planes 2x1 8/0 [r8/rg8] (r/gb) [unorm]
[   3.173][d][libmpv_render]   nv20 => 2 planes 2x1 16/-6 [r16/rg16] (r/gb) [unorm]
[   3.173][d][libmpv_render]   nv20be
[   3.173][d][libmpv_render]   rgba64be
[   3.173][d][libmpv_render]   bgra64be
[   3.173][d][libmpv_render]   bgra64 => 1 planes 1x1 16/0 [rgba16] (bgra) [unorm]
[   3.173][d][libmpv_render]   yvyu422
[   3.173][d][libmpv_render]   ya16be
[   3.173][d][libmpv_render]   ya16 => 1 planes 1x1 16/0 [rg16] (ra) [unorm]
[   3.173][d][libmpv_render]   gbrap => 4 planes 1x1 8/0 [r8/r8/r8/r8] (g/b/r/a) [unorm]
[   3.173][d][libmpv_render]   gbrap16be
[   3.173][d][libmpv_render]   gbrap16 => 4 planes 1x1 16/0 [r16/r16/r16/r16] (g/b/r/a) [unorm]
[   3.173][d][libmpv_render]   qsv
[   3.173][d][libmpv_render]   d3d11va_vld
[   3.173][d][libmpv_render]   yuv420p12be
[   3.173][d][libmpv_render]   yuv420p12 => 3 planes 2x2 16/-4 [r16/r16/r16] (r/g/b) [unorm]
[   3.173][d][libmpv_render]   yuv420p14be
[   3.173][d][libmpv_render]   yuv420p14 => 3 planes 2x2 16/-2 [r16/r16/r16] (r/g/b) [unorm]
[   3.173][d][libmpv_render]   yuv422p12be
[   3.173][d][libmpv_render]   yuv422p12 => 3 planes 2x1 16/-4 [r16/r16/r16] (r/g/b) [unorm]
[   3.173][d][libmpv_render]   yuv422p14be
[   3.173][d][libmpv_render]   yuv422p14 => 3 planes 2x1 16/-2 [r16/r16/r16] (r/g/b) [unorm]
[   3.173][d][libmpv_render]   yuv444p12be
[   3.173][d][libmpv_render]   yuv444p12 => 3 planes 1x1 16/-4 [r16/r16/r16] (r/g/b) [unorm]
[   3.173][d][libmpv_render]   yuv444p14be
[   3.173][d][libmpv_render]   yuv444p14 => 3 planes 1x1 16/-2 [r16/r16/r16] (r/g/b) [unorm]
[   3.173][d][libmpv_render]   gbrp12be
[   3.173][d][libmpv_render]   gbrp12 => 3 planes 1x1 16/-4 [r16/r16/r16] (g/b/r) [unorm]
[   3.173][d][libmpv_render]   gbrp14be
[   3.173][d][libmpv_render]   gbrp14 => 3 planes 1x1 16/-2 [r16/r16/r16] (g/b/r) [unorm]
[   3.173][d][libmpv_render]   yuvj411p => 3 planes 4x1 8/0 [r8/r8/r8] (r/g/b) [unorm]
[   3.173][d][libmpv_render]   bayer_bggr8
[   3.173][d][libmpv_render]   bayer_rggb8
[   3.173][d][libmpv_render]   bayer_gbrg8
[   3.173][d][libmpv_render]   bayer_grbg8
[   3.173][d][libmpv_render]   bayer_bggr16
[   3.173][d][libmpv_render]   bayer_bggr16be
[   3.173][d][libmpv_render]   bayer_rggb16
[   3.173][d][libmpv_render]   bayer_rggb16be
[   3.173][d][libmpv_render]   bayer_gbrg16
[   3.173][d][libmpv_render]   bayer_gbrg16be
[   3.173][d][libmpv_render]   bayer_grbg16
[   3.173][d][libmpv_render]   bayer_grbg16be
[   3.173][d][libmpv_render]   xvmc
[   3.173][d][libmpv_render]   yuv440p10 => 3 planes 1x2 16/-6 [r16/r16/r16] (r/g/b) [unorm]
[   3.173][d][libmpv_render]   yuv440p10be
[   3.173][d][libmpv_render]   yuv440p12 => 3 planes 1x2 16/-4 [r16/r16/r16] (r/g/b) [unorm]
[   3.173][d][libmpv_render]   yuv440p12be
[   3.173][d][libmpv_render]   ayuv64 => 1 planes 1x1 16/0 [rgba16] (argb) [unorm]
[   3.173][d][libmpv_render]   ayuv64be
[   3.173][d][libmpv_render]   p010be
[   3.173][d][libmpv_render]   gbrap12be
[   3.173][d][libmpv_render]   gbrap12 => 4 planes 1x1 16/-4 [r16/r16/r16/r16] (g/b/r/a) [unorm]
[   3.173][d][libmpv_render]   gbrap10be
[   3.173][d][libmpv_render]   gbrap10 => 4 planes 1x1 16/-6 [r16/r16/r16/r16] (g/b/r/a) [unorm]
[   3.173][d][libmpv_render]   gray12be
[   3.173][d][libmpv_render]   gray12 => 1 planes 1x1 16/-4 [r16] (r) [unorm]
[   3.173][d][libmpv_render]   gray10be
[   3.173][d][libmpv_render]   gray10 => 1 planes 1x1 16/-6 [r16] (r) [unorm]
[   3.173][d][libmpv_render]   p016 => 2 planes 2x2 16/0 [r16/rg16] (r/gb) [unorm]
[   3.173][d][libmpv_render]   p016be
[   3.173][d][libmpv_render]   gray9be
[   3.173][d][libmpv_render]   gray9 => 1 planes 1x1 16/-7 [r16] (r) [unorm]
[   3.173][d][libmpv_render]   gbrpf32be
[   3.173][d][libmpv_render]   gbrpf32 => 3 planes 1x1 32/0 [r16f/r16f/r16f] (g/b/r) [float]
[   3.173][d][libmpv_render]   gbrapf32be
[   3.173][d][libmpv_render]   gbrapf32 => 4 planes 1x1 32/0 [r16f/r16f/r16f/r16f] (g/b/r/a) [float]
[   3.173][d][libmpv_render]   opencl
[   3.173][d][libmpv_render]   gray14be
[   3.173][d][libmpv_render]   gray14 => 1 planes 1x1 16/-2 [r16] (r) [unorm]
[   3.173][d][libmpv_render]   grayf32be
[   3.173][d][libmpv_render]   grayf32 => 1 planes 1x1 32/0 [r16f] (r) [float]
[   3.173][d][libmpv_render]   yuva422p12be
[   3.173][d][libmpv_render]   yuva422p12 => 4 planes 2x1 16/-4 [r16/r16/r16/r16] (r/g/b/a) [unorm]
[   3.173][d][libmpv_render]   yuva444p12be
[   3.173][d][libmpv_render]   yuva444p12 => 4 planes 1x1 16/-4 [r16/r16/r16/r16] (r/g/b/a) [unorm]
[   3.173][d][libmpv_render]   nv24 => 2 planes 1x1 8/0 [r8/rg8] (r/gb) [unorm]
[   3.173][d][libmpv_render]   nv42 => 2 planes 1x1 8/0 [r8/rg8] (r/bg) [unorm]
[   3.173][d][libmpv_render]   vulkan
[   3.173][d][libmpv_render]   y210be
[   3.173][d][libmpv_render]   y210
[   3.173][d][libmpv_render]   x2rgb10be
[   3.173][d][libmpv_render]   x2bgr10
[   3.173][d][libmpv_render]   x2bgr10be
[   3.173][d][libmpv_render]   p210be
[   3.173][d][libmpv_render]   p210 => 2 planes 2x1 16/6 [r16/rg16] (r/gb) [unorm]
[   3.173][d][libmpv_render]   p410be
[   3.173][d][libmpv_render]   p410 => 2 planes 1x1 16/6 [r16/rg16] (r/gb) [unorm]
[   3.173][d][libmpv_render]   p216be
[   3.173][d][libmpv_render]   p216 => 2 planes 2x1 16/0 [r16/rg16] (r/gb) [unorm]
[   3.173][d][libmpv_render]   p416be
[   3.173][d][libmpv_render]   p416 => 2 planes 1x1 16/0 [r16/rg16] (r/gb) [unorm]
[   3.173][v][libmpv_render] Testing FBO format rgba16f
[   3.173][d][libmpv_render] Resizing texture: 16x16
[   3.173][v][libmpv_render] Using FBO format rgba16f.
[   3.173][v][libmpv_render] Disabling HDR peak computation (one or more of the following is not supported: compute shaders=0, SSBO=0).
[   3.173][v][libmpv_render] No advanced processing required. Enabling dumb mode.
[   3.173][v][libmpv_render] Loading hwdec driver 'videotoolbox'
[   3.174][v][cplayer] Set property: override-display-fps=120.000000 -> 1
[   3.282][d][cplayer] Run command: loadfile, flags=64, args=[url="~/Desktop/Synamedia-MWC-8Kp60-200Mbps.mp4", flags="replace", options=""]
[   3.282][d][global] user path: '~/Library/Application Support/com.colliderli.iina/watch_later' -> '~/Library/Application Support/com.colliderli.iina/watch_later'
[   3.282][i][cplayer] Resuming playback. This behavior can be disabled with --no-resume-playback.
[   3.282][v][cplayer] Loading config '~/Library/Application Support/com.colliderli.iina/watch_later/F1F05234414E615E31152AECCADDCD19'
[   3.282][v][cplayer] Reading config file ~/Library/Application Support/com.colliderli.iina/watch_later/F1F05234414E615E31152AECCADDCD19
[   3.282][v][cplayer] Applying profile 'default'...
[   3.282][v][cplayer] Setting option 'start' = '4.537867' (flags = 36)
[   3.283][v][cplayer] Running hook: ytdl_hook/on_load
[   3.283][v][ytdl_hook] ytdl:// hook 
[   3.283][v][ytdl_hook] not a ytdl:// url 
[   3.284][v][bdmv/bluray] Opening ~/Desktop/Synamedia-MWC-8Kp60-200Mbps.mp4
[   3.284][v][file] Opening ~/Desktop/Synamedia-MWC-8Kp60-200Mbps.mp4
[   3.284][d][file] resize stream to 131072 bytes, drop 0 bytes
[   3.284][d][file] Stream opened successfully.
[   3.284][v][demux] Trying demuxers for level=normal.
[   3.284][d][demux] Trying demuxer: disc (force-level: normal)
[   3.284][d][demux] Trying demuxer: edl (force-level: normal)
[   3.284][d][demux] Trying demuxer: cue (force-level: normal)
[   3.284][d][demux] Trying demuxer: rawaudio (force-level: normal)
[   3.284][d][demux] Trying demuxer: rawvideo (force-level: normal)
[   3.284][d][demux] Trying demuxer: mkv (force-level: normal)
[   3.284][d][demux] Trying demuxer: libarchive (force-level: normal)
[   3.284][d][demux] Trying demuxer: lavf (force-level: normal)
[   3.285][v][lavf] Found 'mov,mp4,m4a,3gp,3g2,mj2' at score=100 size=2048.
[   3.285][v][file] stream level seek from 131072 to 5254294702
[   3.287][v][file] stream level seek from 5254539729 to 44
[   3.287][v][file] stream level seek from 131116 to 5254539729
[   3.287][v][demux] Detected file format: mov,mp4,m4a,3gp,3g2,mj2 (libavformat)
[   3.287][v][cplayer] Opening done: ~/Desktop/Synamedia-MWC-8Kp60-200Mbps.mp4
[   3.287][v][find_files] Loading external files in ~/Desktop/
[   3.287][v][cplayer] Running hook: ytdl_hook/on_preloaded
[   3.287][v][lavf] select track 0
[   3.287][i][cplayer]  (+) Video --vid=1 (*) (hevc 7680x4320 59.940fps)
[   3.287][i][display-tags] File tags:
[   3.287][i][display-tags]  Comment: Generated by Assimilate Product Suite v9.4
[   3.287][v][vo/libmpv] Assuming 120.000000 FPS for display sync.
[   3.287][v][vd] Container reported FPS: 59.940060
[   3.287][v][vd] Codec list:
[   3.287][v][vd]     hevc - HEVC (High Efficiency Video Coding)
[   3.287][v][vd] Opening decoder hevc
[   3.287][v][vd] Looking at hwdec hevc-videotoolbox...
[   3.287][v][vd] Trying hardware decoding via hevc-videotoolbox.
[   3.288][v][vd] Selected codec: hevc (HEVC (High Efficiency Video Coding))
[   3.288][v][vf] User filter list:
[   3.288][v][vf]   (empty)
[   3.288][v][cplayer] Starting playback...
[   3.288][v][lavf] queuing seek to 4.537867
[   3.288][v][cplayer] hr-seek, skipping to 4.537867
[   3.288][v][lavf] execute seek (to 4.537867 flags 32)
[   3.288][v][lavf] seek done
[   3.288][v][file] stream level seek from 5254539729 to 103088212
[   3.291][v][vd] Pixel formats supported by decoder: videotoolbox_vld yuv420p10le
[   3.291][v][vd] Codec profile: Main 10 (0x2)
[   3.291][v][vd] Requesting pixfmt 'videotoolbox_vld' from decoder.
[   3.483][i][vd] Using hardware decoding (videotoolbox).
[   3.483][v][vd] Decoder format: 7680x4320 videotoolbox[p010] bt.2020-ncl/bt.2020/pq/limited/auto SP=4.926108 CL=mpeg2/4/h264
[   3.484][v][vd] Using container aspect ratio.
[   3.484][v][vf] [in] 7680x4320 videotoolbox[p010] bt.2020-ncl/bt.2020/pq/limited/display SP=4.926108 CL=mpeg2/4/h264
[   3.484][v][vf] [userdeint] 7680x4320 videotoolbox[p010] bt.2020-ncl/bt.2020/pq/limited/display SP=4.926108 CL=mpeg2/4/h264
[   3.484][v][vf] [userdeint] (disabled)
[   3.484][v][vf] [autorotate] 7680x4320 videotoolbox[p010] bt.2020-ncl/bt.2020/pq/limited/display SP=4.926108 CL=mpeg2/4/h264
[   3.484][v][vf] [autorotate] (disabled)
[   3.484][v][vf] [convert] 7680x4320 videotoolbox[p010] bt.2020-ncl/bt.2020/pq/limited/display SP=4.926108 CL=mpeg2/4/h264
[   3.484][v][vf] [convert] (disabled)
[   3.484][v][vf] [out] 7680x4320 videotoolbox[p010] bt.2020-ncl/bt.2020/pq/limited/display SP=4.926108 CL=mpeg2/4/h264
[   3.484][v][cplayer] Set property: pause=true -> 1
[   3.487][v][cplayer] Set property: pause=false -> 1
[   3.487][v][cplayer] Set property: icc-profile="" -> 1
[   3.487][v][cplayer] Set property: target-trc="pq" -> 1
[   3.487][v][cplayer] Set property: target-prim="bt.2020" -> 1
[   3.488][d][cplayer] Run command: loadfile, flags=64, args=[url="~/Desktop/50Hz-ProRes422HQ.mov", flags="append", options=""]
[   3.488][d][cplayer] Run command: playlist-move, flags=64, args=[index1="1", index2="0"]
[   3.519][d][cplayer] Run command: loadfile, flags=64, args=[url="~/Desktop/60Hz-ProRes422HQ.mov", flags="append", options=""]
[   3.537][d][cplayer] Run command: playlist-move, flags=64, args=[index1="2", index2="1"]
[   3.602][d][cplayer] Run command: loadfile, flags=64, args=[url="~/Desktop/MWC-8Kp50.mp4", flags="append", options=""]
[   3.602][d][cplayer] Run command: playlist-move, flags=64, args=[index1="3", index2="2"]
[   3.614][d][cplayer] Run command: loadfile, flags=64, args=[url="~/Desktop/Synamedia-MWC-8Kp50-120Mbps.mp4", flags="append", options=""]
[   3.637][d][cplayer] Run command: playlist-move, flags=64, args=[index1="4", index2="3"]
[   3.654][d][cplayer] Run command: loadfile, flags=64, args=[url="~/Desktop/Synamedia-MWC-8Kp50-200Mbps.mp4", flags="append", options=""]
[   3.670][d][cplayer] Run command: playlist-move, flags=64, args=[index1="5", index2="4"]
[   3.695][d][cplayer] Run command: loadfile, flags=64, args=[url="~/Desktop/Synamedia-MWC-8Kp60-120Mbps.mp4", flags="append", options=""]
[   3.709][d][cplayer] Run command: playlist-move, flags=64, args=[index1="6", index2="5"]
[   3.738][d][cplayer] Run command: loadfile, flags=64, args=[url="~/Desktop/Synamedia-MWC-8Kp60-120Mbps-videotoolbox.mp4", flags="append", options=""]
[   3.761][d][cplayer] Run command: playlist-move, flags=64, args=[index1="7", index2="6"]
[   3.770][d][cplayer] Run command: loadfile, flags=64, args=[url="~/Desktop/Videotoolbox.mp4", flags="append", options=""]
[   3.795][i][cplayer] VO: [libmpv] 7680x4320 videotoolbox[p010]
[   3.795][v][cplayer] VO: Description: render API for libmpv
[   3.795][v][vo/libmpv] reconfig to 7680x4320 videotoolbox[p010] bt.2020-ncl/bt.2020/pq/limited/display SP=4.926108 CL=mpeg2/4/h264
[   3.796][v][libmpv_render] Window size: 3260x1832 (Borders: l=0 t=0 r=0 b=0)
[   3.796][v][libmpv_render] Video source: 7680x4320 (1:1)
[   3.796][v][libmpv_render] Video display: (0, 0) 7680x4320 -> (0, 0) 3260x1832
[   3.796][v][libmpv_render] Video scale: 0.424479/0.424074
[   3.796][v][libmpv_render] OSD borders: l=0 t=0 r=0 b=0
[   3.796][v][libmpv_render] Video borders: l=0 t=0 r=0 b=0
[   3.796][v][libmpv_render] Testing FBO format rgba16f
[   3.796][d][libmpv_render] Resizing texture: 16x16
[   3.796][v][libmpv_render] Using FBO format rgba16f.
[   3.796][v][libmpv_render] No advanced processing required. Enabling dumb mode.
[   3.796][v][libmpv_render] Testing FBO format rgba16f
[   3.796][d][libmpv_render] Resizing texture: 16x16
[   3.796][v][libmpv_render] Using FBO format rgba16f.
[   3.796][v][libmpv_render] Disabling HDR peak computation (one or more of the following is not supported: compute shaders=0, SSBO=0).
[   3.796][v][libmpv_render] No advanced processing required. Enabling dumb mode.
[   3.796][v][cplayer] first video frame after restart shown
[   3.796][d][cplayer] starting video playback
[   3.796][v][cplayer] playback restart complete @ 4.537867, audio=eof, video=playing
[   3.797][d][libmpv_render] vertex shader source:
[   3.798][d][libmpv_render] [  1] #version 410
[   3.798][d][libmpv_render] [  2] #define tex1D texture
[   3.798][d][libmpv_render] [  3] #define tex3D texture
[   3.798][d][libmpv_render] [  4] #define LUT_POS(x, lut_size) mix(0.5 / (lut_size), 1.0 - 0.5 / (lut_size), (x))
[   3.798][d][libmpv_render] [  5] in vec2 vertex_position;
[   3.798][d][libmpv_render] [  6] in vec2 vertex_texcoord0;
[   3.798][d][libmpv_render] [  7] out vec2 texcoord0;
[   3.798][d][libmpv_render] [  8] in vec2 vertex_texcoord1;
[   3.798][d][libmpv_render] [  9] out vec2 texcoord1;
[   3.798][d][libmpv_render] [ 10] void main() {
[   3.798][d][libmpv_render] [ 11] gl_Position = vec4(vertex_position, 1.0, 1.0);
[   3.798][d][libmpv_render] [ 12] texcoord0 = vertex_texcoord0;
[   3.798][d][libmpv_render] [ 13] texcoord1 = vertex_texcoord1;
[   3.798][d][libmpv_render] [ 14] }
[   3.798][d][libmpv_render] fragment shader source:
[   3.798][d][libmpv_render] [  1] #version 410
[   3.798][d][libmpv_render] [  2] #define tex1D texture
[   3.798][d][libmpv_render] [  3] #define tex3D texture
[   3.798][d][libmpv_render] [  4] #define LUT_POS(x, lut_size) mix(0.5 / (lut_size), 1.0 - 0.5 / (lut_size), (x))
[   3.798][d][libmpv_render] [  5] out vec4 out_color;
[   3.798][d][libmpv_render] [  6] in vec2 texcoord0;
[   3.798][d][libmpv_render] [  7] in vec2 texcoord1;
[   3.798][d][libmpv_render] [  8] uniform mat3 colormatrix;
[   3.798][d][libmpv_render] [  9] uniform vec3 colormatrix_c;
[   3.798][d][libmpv_render] [ 10] uniform vec3 src_luma;
[   3.798][d][libmpv_render] [ 11] uniform vec3 dst_luma;
[   3.798][d][libmpv_render] [ 12] uniform sampler2DRect texture0;
[   3.798][d][libmpv_render] [ 13] uniform vec2 texture_size0;
[   3.798][d][libmpv_render] [ 14] uniform mat2 texture_rot0;
[   3.798][d][libmpv_render] [ 15] uniform vec2 texture_off0;
[   3.798][d][libmpv_render] [ 16] uniform vec2 pixel_size0;
[   3.798][d][libmpv_render] [ 17] uniform sampler2DRect texture1;
[   3.798][d][libmpv_render] [ 18] uniform vec2 texture_size1;
[   3.798][d][libmpv_render] [ 19] uniform mat2 texture_rot1;
[   3.798][d][libmpv_render] [ 20] uniform vec2 texture_off1;
[   3.798][d][libmpv_render] [ 21] uniform vec2 pixel_size1;
[   3.798][d][libmpv_render] [ 22] void main() {
[   3.798][d][libmpv_render] [ 23] vec4 color = vec4(0.0, 0.0, 0.0, 1.0);
[   3.798][d][libmpv_render] [ 24] color.r = 1.003906 * vec4(texture(texture0, texcoord0)).r;
[   3.798][d][libmpv_render] [ 25] color.gb = 1.003906 * vec4(texture(texture1, texcoord1)).rg;
[   3.798][d][libmpv_render] [ 26] color = color.rgbr;
[   3.798][d][libmpv_render] [ 27] color.rgb = mat3(colormatrix) * color.rgb + colormatrix_c;
[   3.798][d][libmpv_render] [ 28] color.a = 1.0;
[   3.798][d][libmpv_render] [ 29] // color mapping
[   3.798][d][libmpv_render] [ 30] // linearize
[   3.798][d][libmpv_render] [ 31] color.rgb = clamp(color.rgb, 0.0, 1.0);
[   3.798][d][libmpv_render] [ 32] color.rgb = pow(color.rgb, vec3(1.0/78.843750));
[   3.798][d][libmpv_render] [ 33] color.rgb = max(color.rgb - vec3(0.835938), vec3(0.0)) 
[   3.798][d][libmpv_render] [ 34]              / (vec3(18.851562) - vec3(18.687500) * color.rgb);
[   3.798][d][libmpv_render] [ 35] color.rgb = pow(color.rgb, vec3(6.277395));
[   3.798][d][libmpv_render] [ 36] color.rgb *= vec3(49.261084);
[   3.798][d][libmpv_render] [ 37] color.rgb *= vec3(1.0/49.261086);
[   3.798][d][libmpv_render] [ 38] color.rgb *= vec3(49.261086);
[   3.798][d][libmpv_render] [ 39] color.rgb *= vec3(0.020300);
[   3.798][d][libmpv_render] [ 40] // delinearize
[   3.798][d][libmpv_render] [ 41] color.rgb = clamp(color.rgb, 0.0, 1.0);
[   3.798][d][libmpv_render] [ 42] color.rgb *= vec3(49.261086);
[   3.798][d][libmpv_render] [ 43] color.rgb *= vec3(1.0/49.261084);
[   3.798][d][libmpv_render] [ 44] color.rgb = pow(color.rgb, vec3(0.159302));
[   3.798][d][libmpv_render] [ 45] color.rgb = (vec3(0.835938) + vec3(18.851562) * color.rgb) 
[   3.798][d][libmpv_render] [ 46]              / (vec3(1.0) + vec3(18.687500) * color.rgb);
[   3.798][d][libmpv_render] [ 47] color.rgb = pow(color.rgb, vec3(78.843750));
[   3.798][d][libmpv_render] [ 48] out_color = color;
[   3.798][d][libmpv_render] [ 49] }
[   3.798][d][libmpv_render] shader link log (status=1): 
[   3.807][v][libmpv_render] Window size: 3344x1880 (Borders: l=0 t=0 r=0 b=0)
[   3.807][v][libmpv_render] Video source: 7680x4320 (1:1)
[   3.807][v][libmpv_render] Video display: (0, 0) 7680x4320 -> (0, 0) 3344x1880
[   3.807][v][libmpv_render] Video scale: 0.435417/0.435185
[   3.807][v][libmpv_render] OSD borders: l=0 t=0 r=0 b=0
[   3.807][v][libmpv_render] Video borders: l=0 t=0 r=0 b=0
[   3.819][v][libmpv_render] Window size: 3376x1900 (Borders: l=0 t=0 r=0 b=0)
[   3.819][v][libmpv_render] Video source: 7680x4320 (1:1)
[   3.819][v][libmpv_render] Video display: (0, 0) 7680x4320 -> (0, 0) 3376x1900
[   3.819][v][libmpv_render] Video scale: 0.439583/0.439815
[   3.820][v][libmpv_render] OSD borders: l=0 t=0 r=0 b=0
[   3.820][v][libmpv_render] Video borders: l=0 t=0 r=0 b=0
[   3.833][v][libmpv_render] Window size: 3428x1928 (Borders: l=0 t=0 r=0 b=0)
[   3.833][v][libmpv_render] Video source: 7680x4320 (1:1)
[   3.833][v][libmpv_render] Video display: (0, 0) 7680x4320 -> (0, 0) 3428x1928
[   3.833][v][libmpv_render] Video scale: 0.446354/0.446296
[   3.833][v][libmpv_render] OSD borders: l=0 t=0 r=0 b=0
[   3.833][v][libmpv_render] Video borders: l=0 t=0 r=0 b=0
[   3.850][v][libmpv_render] Window size: 3452x1944 (Borders: l=0 t=0 r=0 b=0)
[   3.850][v][libmpv_render] Video source: 7680x4320 (1:1)
[   3.850][v][libmpv_render] Video display: (0, 0) 7680x4320 -> (0, 0) 3452x1944
[   3.850][v][libmpv_render] Video scale: 0.449479/0.450000
[   3.850][v][libmpv_render] OSD borders: l=0 t=0 r=0 b=0
[   3.850][v][libmpv_render] Video borders: l=0 t=0 r=0 b=0
[   3.866][v][cplayer] Set property: window-scale=0.225000 -> 1
[   3.867][v][libmpv_render] Window size: 3456x1944 (Borders: l=0 t=0 r=0 b=0)
[   3.867][v][libmpv_render] Video source: 7680x4320 (1:1)
[   3.867][v][libmpv_render] Video display: (0, 0) 7680x4320 -> (0, 0) 3456x1944
[   3.867][v][libmpv_render] Video scale: 0.450000/0.450000
[   3.867][v][libmpv_render] OSD borders: l=0 t=0 r=0 b=0
[   3.867][v][libmpv_render] Video borders: l=0 t=0 r=0 b=0
[   3.867][v][cplayer] Set property: window-scale=0.225000 -> 1
[   7.575][d][cplayer] Run command: write-watch-later-config, flags=64, args=[]
[   7.575][d][global] config path: '~/Library/Application Support/com.colliderli.iina/watch_later' -> '~/Library/Application Support/com.colliderli.iina/watch_later'
[   7.575][i][cplayer] Saving state.
[   7.592][d][vd] Uninit decoder.
[   7.807][v][vo/libmpv] mpv_render_context_render() not being called or stuck.
[   7.815][d][libmpv_render] flushing shader cache
[   7.815][v][lavf] deselect track 0
[   7.821][i][cplayer] Video: no video
[   7.821][d][cplayer] Run command: quit, flags=64, args=[code="0"]
[   7.821][d][global] config path: '~/Library/Application Support/com.colliderli.iina/watch_later' -> '~/Library/Application Support/com.colliderli.iina/watch_later'
[   7.822][i][cplayer] Saving state.
[   7.822][v][cplayer] EOF code: 5  
[   7.822][d][cplayer] Terminating demuxers...
[   7.823][d][cplayer] Done terminating demuxers.
[   7.823][v][cplayer] finished playback, success (reason 3)
[   7.823][i][cplayer] 
[   7.823][d][console] Exiting...
[   7.823][d][ytdl_hook] Exiting...
[   7.823][d][stats] Exiting...
[   8.177][d][main] Exiting...

Steps to reproduce:
Open HDR10 MP4 file in IINA. Open same file in QT X. Compare chroma gradation. Can upload sample file upon request.

How often does this happen?
In general, I find HDR10 support in this fork of IINA quite good. But I have seen minor traces of chroma banding in areas where similar banding is not present in QT in either tone-mapped or HDR display modes. Similarly, mpv tone-mapped output does not display similar banding (color gradation is smooth).

@CarterLi
Copy link
Owner

CarterLi commented Feb 23, 2022

What does mediainfo ( install with brew install mediainfo ) print?

Some HDR10 files exhibit minor chroma banding compared to Quicktime X on macOS (XDR/HDR) or mpv (tone-mapped)

What options did you use for mpv?

@csdesigns
Copy link
Author

csdesigns commented Feb 23, 2022

What does mediainfo ( install with brew install mediainfo ) print?

mediainfo report:
General
Complete name                            : ~/Desktop/8Kp60-120Mbps.mp4
Format                                   : MPEG-4
Format profile                           : Base Media
Codec ID                                 : isom (isom/iso2/mp41)
File size                                : 2.87 GiB
Duration                                 : 3 min 30 s
Overall bit rate                         : 117 Mb/s
Writing application                      : Lavf59.17.102

Video
ID                                       : 1
Format                                   : HEVC
Format/Info                              : High Efficiency Video Coding
Format profile                           : Main 10@L6.1@High
HDR format                               : SMPTE ST 2086, HDR10 compatible
Codec ID                                 : hvc1
Codec ID/Info                            : High Efficiency Video Coding
Duration                                 : 3 min 30 s
Bit rate                                 : 117 Mb/s
Width                                    : 7 680 pixels
Height                                   : 4 320 pixels
Display aspect ratio                     : 16:9
Frame rate mode                          : Variable
Frame rate                               : 59.940 (60000/1001) FPS
Minimum frame rate                       : 57.554 FPS
Maximum frame rate                       : 62.500 FPS
Color space                              : YUV
Chroma subsampling                       : 4:2:0
Bit depth                                : 10 bits
Bits/(Pixel*Frame)                       : 0.059
Stream size                              : 2.87 GiB (100%)
Writing library                          : x265 3.5+1-f0c1022b6:[Linux][GCC 8.3.0][64 bit] 10bit
Color range                              : Limited
Color primaries                          : BT.2020
Transfer characteristics                 : PQ
Matrix coefficients                      : BT.2020 non-constant
Mastering display color primaries        : R: x=0.677500 y=0.322500, G: x=0.245100 y=0.703200, B: x=0.138100 y=0.052700, White point: x=0.312700 y=0.322500
Mastering display luminance              : min: 0.0001 cd/m2, max: 1000 cd/m2
Maximum Content Light Level              : 1000 cd/m2
Maximum Frame-Average Light Level        : 120 cd/m2
mdhd_Duration                            : 210209
Codec configuration box                  : hvcC

What options did you use for mpv?

Nothing special, just using the default configuration pretty much (running build mpv 0.34.0-202-g27c38eac10):
mpv 8Kp60-120Mbps.mp4 --hwdec=videotoolbox


As you can see, I have to run mpv with the '--hwdec=videotoolbox' option in order for the hw acceleration to initiate. Without this option, mpv defaults to sw decoding (and yes, 'hevc' is whitelisted in my mpv.conf file). Not sure if this has something to do with this being HDR, 8K, the high bit rate, or a combination of them all. Your fork of IINA is able to decode this HEVC file using hw acceleration without extra configuration.

I similarly have issues with ProRes decoding in mpv. In my experience, ProRes is generally an efficient enough codec that most modern Macs don't require hw acceleration, but 8Kp60 certainly does need the extra boost. QTX has no issue playing the ProRes file without dropping frames, but I can't get mpv to play back 8Kp60 ProRes422HQ smoothly, even with '--hwdec=videotoolbox' enabled and 'prores' whitelisted in the conf.

@CarterLi
Copy link
Owner

mediainfo report:

Nothing special here. Not dolby vision. Maximum luminance 1000 nits. Do you use 2021 MBP or 2020 Macbook?

mpv 8Kp60-120Mbps.mp4 --hwdec=videotoolbox

No. mpv doesn't support HDR playback on mac without the HDR/EDR patch. And even with that patch, extra flags are needed for HDR playback. See #8 for detail.

Your fork of IINA is able to decode this HEVC file using hw acceleration without extra configuration.

That's the default preference. See Preference dialog

@csdesigns
Copy link
Author

csdesigns commented Feb 23, 2022

Nothing special here. Not dolby vision. Maximum luminance 1000 nits. Do you use 2021 MBP or 2020 Macbook?

Correct, just plain ordinary static HDR10 (PQ). The hardware in question is a 2021 16" MBP with minLED display + M1 Max.

No. mpv doesn't support HDR playback on mac without the HDR/EDR patch. And even with that patch, extra flags are needed for HDR playback. See #8 for detail.

Yes, understood. Never claimed the build of mpv I'm using supported true HDR, just tone-mapping to SDR. In such case, the chroma banding is not evident in the displayed output. Visible chroma banding is only evident from your IINA fork. I appreciate the ability to semi-accurately view 98% of HDR10 on my MBP with your fork, so if this is just what it is, then fine. But reading some other closed threads seemed to indicate that you're open to improvements when brought to your attention.

That's the default preference. See Preference dialog

Indeed. Not complaining here. Only trying to provide context to the behavior I'm seeing. I don't experience hw acceleration of ProRes in IINA, no matter the Preference setting; however, I'm not seeing hw acceleration directly from mpv either, so not sure the issue there...

@CarterLi
Copy link
Owner

CarterLi commented Feb 23, 2022

But reading some other closed threads seemed to indicate that you're open to improvements when brought to your attention.

sample please ( cut into 2 seconds )?

To be honest there are not many things I can do, since it's MPV that handling the playback. What I can do is to try different flags being passed to MPV.

@CarterLi
Copy link
Owner

Since this issue is HDR related. Can we move to #8 for better issue tracking?

@CarterLi CarterLi added the duplicate This issue or pull request already exists label Feb 23, 2022
@CarterLi
Copy link
Owner

Closing this issue. Future discussion should be in #8

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
duplicate This issue or pull request already exists
Projects
None yet
Development

No branches or pull requests

2 participants