Advertisement
Guest User

Untitled

a guest
Sep 8th, 2016
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 162.21 KB | None | 0 0
  1. mpv -v /home/pont/Downloads/h264_sintel_trailer-1080p.mp4
  2. [cplayer] Command line options: '-v' '/home/pont/Downloads/h264_sintel_trailer-1080p.mp4'
  3. [cplayer] mpv 0.20.0 (C) 2000-2016 mpv/MPlayer/mplayer2 projects
  4. [cplayer] built on Sep 2 2016
  5. [cplayer] ffmpeg library versions:
  6. [cplayer] libavutil 55.28.100
  7. [cplayer] libavcodec 57.48.101
  8. [cplayer] libavformat 57.41.100
  9. [cplayer] libswscale 4.1.100
  10. [cplayer] libavfilter 6.47.100
  11. [cplayer] libswresample 2.1.100
  12. [cplayer] ffmpeg version: 3.1.3
  13. [cplayer]
  14. [cplayer] Configuration: ./waf configure --prefix=/usr --bindir=/usr/bin --mandir=/usr/share/man --libdir=/usr/lib64 --docdir=/usr/share/doc/packages/mpv --confdir=/etc/mpv --enable-openal --enable-cdda --enable-libmpv-shared --enable-zsh-comp --enable-manpage-build --disable-sdl1 --disable-sdl2 --disable-build-date --disable-debug
  15. [cplayer] List of enabled features: 52 alsa any-gl asm atomic-builtins atomics audio-input av-avpacket-int64-duration av-new-pixdesc av-pix-fmt-mmal av-subtitle-nopict av-version-info avcodec-chroma-pos-api avcodec-has-codecpar avcodec-new-codec-api avcodec-profile-name avframe-metadata avframe-skip-samples avutil-has-hwcontext avutil-hdr avutil-mastering-metadata caca cdda cplayer dlopen drm dvbin dvdnav dvdread enca encoding fchmod gl gl-x11 glibc-thread-name glob iconv jack jpeg lcms2 libass libass-osd libav libavdevice libavfilter libbluray libdl libm libmpv-shared librt libsmbclient libswresample libv4l2 linux-fstatfs lua nanosleep openal optimize oss-audio oss-audio-native plain-gl posix posix-or-mingw posix-spawn pthreads pulse resampler shm sse4-intrinsics standard-gl subprocess termios tv tv-v4l2 vaapi vaapi-glx vaapi-hwaccel vaapi-x11 vdpau vdpau-gl-x11 vdpau-hwaccel videodev vt.h x11 xext xinerama xrandr xss xv zlib zsh-comp
  16. [global] config path: '' -> '/home/pont/.config/mpv'
  17. [global] config path: 'mpv.conf' -> '/home/pont/.config/mpv/mpv.conf'
  18. [global] config path: 'config' -/-> '/home/pont/.config/mpv/config'
  19. [global] config path: 'mpv.conf' -/-> '/home/pont/.mpv/mpv.conf'
  20. [global] config path: 'config' -/-> '/home/pont/.mpv/config'
  21. [global] config path: 'mpv.conf' -> '/etc/mpv/mpv.conf'
  22. [global] config path: 'config' -/-> '/etc/mpv/config'
  23. [cplayer] Reading config file /etc/mpv/mpv.conf
  24. [cplayer] Reading config file /home/pont/.config/mpv/mpv.conf
  25. [cplayer] Setting option 'vo' = 'opengl-hq:user-shaders="/home/pont/CrossBilateral.glsl"' (flags = 4)
  26. [cplayer] Setting option 'v' = '' (flags = 8)
  27. [global] config path: 'input.conf' -/-> '/home/pont/.config/mpv/input.conf'
  28. [global] config path: 'input.conf' -/-> '/home/pont/.mpv/input.conf'
  29. [global] config path: 'input.conf' -> '/etc/mpv/input.conf'
  30. [global] user path: '/etc/mpv/input.conf' -> '/etc/mpv/input.conf'
  31. [ifo] Opening /etc/mpv/input.conf
  32. [ifo/dvdnav] Opening /etc/mpv/input.conf
  33. [bdmv/bluray] Opening /etc/mpv/input.conf
  34. [file] Opening /etc/mpv/input.conf
  35. [file] Stream opened successfully.
  36. [input] Parsing input config file /etc/mpv/input.conf
  37. [input] Input config file /etc/mpv/input.conf parsed: 0 binds
  38. [osc] Loading script @osc.lua...
  39. [global] config path: 'scripts' -/-> '/home/pont/.config/mpv/scripts'
  40. [global] config path: 'scripts' -/-> '/home/pont/.mpv/scripts'
  41. [global] config path: 'scripts' -/-> '/etc/mpv/scripts'
  42. [osc] loading mp.defaults
  43. [osc] loading @osc.lua
  44. [global] config path: 'lua-settings/osc.conf' -/-> '/home/pont/.config/mpv/lua-settings/osc.conf'
  45. [global] config path: 'lua-settings/osc.conf' -/-> '/home/pont/.mpv/lua-settings/osc.conf'
  46. [global] config path: 'lua-settings/osc.conf' -/-> '/etc/mpv/lua-settings/osc.conf'
  47. [osc] lua-settings/osc.conf not found.
  48. [cplayer] Run command: define-section, flags=0, args=[showhide, mouse_move script-binding osc/__keybinding1
  49. [cplayer] mouse_leave script-binding osc/__keybinding2
  50. [cplayer] , force]
  51. [cplayer] Run command: enable-section, flags=0, args=[showhide, allow-hide-cursor+allow-vo-dragging]
  52. [cplayer] Run command: define-section, flags=0, args=[input, mouse_btn0 script-binding osc/__keybinding3
  53. [cplayer] shift+mouse_btn0 script-binding osc/__keybinding4
  54. [cplayer] mouse_btn2 script-binding osc/__keybinding5
  55. [cplayer] mouse_btn0_dbl ignore
  56. [cplayer] shift+mouse_btn0_dbl ignore
  57. [cplayer] mouse_btn2_dbl ignore
  58. [cplayer] , force]
  59. [cplayer] Run command: enable-section, flags=0, args=[input, ]
  60. [cplayer] Run command: define-section, flags=0, args=[input_osc, del script-binding osc/__keybinding6
  61. [cplayer] , default]
  62. [cplayer] Run command: enable-section, flags=0, args=[input_osc, allow-hide-cursor+allow-vo-dragging]
  63. [cplayer] Run command: define-section, flags=0, args=[input_forced_osc, , force]
  64. [cplayer] Run command: enable-section, flags=0, args=[input_forced_osc, allow-hide-cursor+allow-vo-dragging]
  65. [cplayer] Done loading @osc.lua.
  66. [ytdl_hook] Loading script @ytdl_hook.lua...
  67. [global] config path: 'scripts' -/-> '/home/pont/.config/mpv/scripts'
  68. [global] config path: 'scripts' -/-> '/home/pont/.mpv/scripts'
  69. [global] config path: 'scripts' -/-> '/etc/mpv/scripts'
  70. [ytdl_hook] loading mp.defaults
  71. [cplayer] Run command: disable-section, flags=0, args=[input]
  72. [global] config path: 'fonts' -/-> '/home/pont/.config/mpv/fonts'
  73. [global] config path: 'fonts' -/-> '/home/pont/.mpv/fonts'
  74. [global] config path: 'fonts' -/-> '/etc/mpv/fonts'
  75. [osd/libass] Shaper: FriBidi 0.19.2 (SIMPLE) HarfBuzz-ng 1.1.3 (COMPLEX)
  76. [global] config path: 'subfont.ttf' -/-> '/home/pont/.config/mpv/subfont.ttf'
  77. [global] config path: 'subfont.ttf' -/-> '/home/pont/.mpv/subfont.ttf'
  78. [global] config path: 'subfont.ttf' -/-> '/etc/mpv/subfont.ttf'
  79. [global] config path: 'fonts.conf' -/-> '/home/pont/.config/mpv/fonts.conf'
  80. [global] config path: 'fonts.conf' -/-> '/home/pont/.mpv/fonts.conf'
  81. [global] config path: 'fonts.conf' -/-> '/etc/mpv/fonts.conf'
  82. [osd/libass] Setting up fonts...
  83. [ytdl_hook] loading @ytdl_hook.lua
  84. [cplayer] Run command: hook-add, flags=0, args=[on_load, 1, 10]
  85. [cplayer] Done loading @ytdl_hook.lua.
  86. [global] config path: 'scripts' -/-> '/home/pont/.config/mpv/scripts'
  87. [global] config path: 'scripts' -/-> '/home/pont/.mpv/scripts'
  88. [global] config path: 'scripts' -/-> '/etc/mpv/scripts'
  89. [global] config path: 'watch_later' -> '/home/pont/.config/mpv/watch_later'
  90. [cplayer] Playing: /home/pont/Downloads/h264_sintel_trailer-1080p.mp4
  91. [cplayer] Running hook: ytdl_hook/on_load
  92. [osd/libass] Using font provider fontconfig
  93. [osd/libass] Done.
  94. [cplayer] Run command: hook-ack, flags=0, args=[on_load]
  95. [ifo] Opening /home/pont/Downloads/h264_sintel_trailer-1080p.mp4
  96. [ifo/dvdnav] Opening /home/pont/Downloads/h264_sintel_trailer-1080p.mp4
  97. [bdmv/bluray] Opening /home/pont/Downloads/h264_sintel_trailer-1080p.mp4
  98. [file] Opening /home/pont/Downloads/h264_sintel_trailer-1080p.mp4
  99. [file] Stream opened successfully.
  100. [demux] Trying demuxers for level=normal.
  101. [lavf] Found 'mov,mp4,m4a,3gp,3g2,mj2' at score=100 size=2048.
  102. [lavf] avformat_find_stream_info() finished after 32816 bytes.
  103. [demux] Detected file format: mov,mp4,m4a,3gp,3g2,mj2 (libavformat)
  104. [find_files] Loading external files in /home/pont/Downloads/
  105. [global] config path: 'sub/' -/-> '/home/pont/.config/mpv/sub/'
  106. [global] config path: 'sub/' -/-> '/home/pont/.mpv/sub/'
  107. [global] config path: 'sub/' -/-> '/etc/mpv/sub/'
  108. [global] config path: 'audio/' -/-> '/home/pont/.config/mpv/audio/'
  109. [global] config path: 'audio/' -/-> '/home/pont/.mpv/audio/'
  110. [global] config path: 'audio/' -/-> '/etc/mpv/audio/'
  111. [cplayer] (+) Video --vid=1 (*) (h264)
  112. [cplayer] (+) Audio --aid=1 --alang=und (*) (aac)
  113. [display-tags] File tags:
  114. [display-tags] Artist: Durian Open Movie Team
  115. [display-tags] Title: Sintel Trailer
  116. [vo/opengl-hq] Setting option 'user-shaders' = '/home/pont/CrossBilateral.glsl' (flags = 0)
  117. [vo/opengl-hq] Initializing OpenGL backend 'x11probe'
  118. [vo/opengl-hq/x11] X11 opening display: :0
  119. [vo/opengl-hq/x11] X11 running at 1920x1080 (":0" => local display)
  120. [vo/opengl-hq/x11] Detected wm supports NetWM.
  121. [vo/opengl-hq/x11] Detected wm supports FULLSCREEN state.
  122. [vo/opengl-hq/x11] Detected wm supports ABOVE state.
  123. [vo/opengl-hq/x11] Detected wm supports BELOW state.
  124. [vo/opengl-hq/x11] Detected wm supports STAYS_ON_TOP state.
  125. [vo/opengl-hq/x11] Display 0 (HDMI-0): [0, 0, 1920, 1080] @ 60.000000 FPS
  126. [vo/opengl-hq/x11] Current display FPS: 60.000000
  127. ATTENTION: default value of option allow_glsl_extension_directive_midshader overridden by environment.
  128. ATTENTION: default value of option glsl_zero_init overridden by environment.
  129. ATTENTION: option value of option allow_glsl_extension_directive_midshader ignored.
  130. ATTENTION: default value of option vblank_mode overridden by environment.
  131. [vo/opengl-hq] GLX chose FB config with ID 0xec300260
  132. [vo/opengl-hq] GLX chose visual with ID 0x2ff
  133. [vo/opengl-hq] Creating OpenGL 3.3 context...
  134. [vo/opengl-hq] GL_VERSION='4.3 (Core Profile) Mesa 12.1.0-devel (git-c42acd9 pontostroy:X11)'
  135. [vo/opengl-hq] Detected desktop OpenGL 4.3.
  136. [vo/opengl-hq] GL_VENDOR='X.Org'
  137. [vo/opengl-hq] GL_RENDERER='Gallium 0.4 on AMD TAHITI (DRM 2.47.0 / 4.8.0-rc4-3-si, LLVM 4.0.0)'
  138. [vo/opengl-hq] GL_SHADING_LANGUAGE_VERSION='4.30'
  139. [vo/opengl-hq] Loaded extension GLX_SGI_swap_control.
  140. [vo/opengl-hq] Loaded extension GLX_SGI_video_sync.
  141. [vo/opengl-hq] Loaded extension GL_NV_vdpau_interop.
  142. [vo/opengl-hq] 16 bit texture depth: 16.
  143. [vo/opengl-hq] Reported display depth: R=8, G=8, B=8
  144. [vo/opengl-hq] Testing FBO format 0x805b
  145. [vo/opengl-hq] Create FBO: 16x16 (16x16)
  146. [vo/opengl-hq] Using FBO format 0x805b.
  147. [global] user path: '/home/pont/CrossBilateral.glsl' -> '/home/pont/CrossBilateral.glsl'
  148. [ifo] Opening /home/pont/CrossBilateral.glsl
  149. [ifo/dvdnav] Opening /home/pont/CrossBilateral.glsl
  150. [bdmv/bluray] Opening /home/pont/CrossBilateral.glsl
  151. [file] Opening /home/pont/CrossBilateral.glsl
  152. [file] Stream opened successfully.
  153. [vo/opengl-hq] Assuming 60.000000 FPS for display sync.
  154. [vd] Container reported FPS: 24.000000
  155. [vd] Codec list:
  156. [vd] lavc:h264 - H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10
  157. [vd] Opening video decoder lavc:h264
  158. [vd] Using software decoding.
  159. [vd] Detected 4 logical cores.
  160. [vd] Requesting 5 threads for decoding.
  161. [vd] Selected video codec: H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 [lavc:h264]
  162. [vo/opengl-hq/x11] Disabling screensaver.
  163. [ad] Codec list:
  164. [ad] lavc:aac - AAC (Advanced Audio Coding)
  165. [ad] lavc:aac_fixed (aac) - AAC (Advanced Audio Coding)
  166. [ad] Opening audio decoder lavc:aac
  167. [ad] Requesting 1 threads for decoding.
  168. [ad] Selected audio codec: AAC (Advanced Audio Coding) [lavc:aac]
  169. [cplayer] Starting playback...
  170. [af] Audio filter chain:
  171. [af] [in] 48000Hz stereo 2ch floatp
  172. [af] [out] 48000Hz stereo 2ch floatp
  173. [af] [ao] 48000Hz stereo 2ch floatp
  174. [ao] Trying audio driver 'pulse'
  175. [ao/pulse] requested format: 48000 Hz, stereo channels, floatp
  176. [ao/pulse] Library version: 9.0.0
  177. [ao/pulse] Proto: 31
  178. [ao/pulse] Server proto: 4294967295
  179. [ao/pulse] Channel layouts:
  180. [ao/pulse] - #fl
  181. [ao/pulse] - #fr
  182. [ao/pulse] - #fc
  183. [ao/pulse] - #lfe
  184. [ao/pulse] - #bl
  185. [ao/pulse] - #br
  186. [ao/pulse] - #flc
  187. [ao/pulse] - #frc
  188. [ao/pulse] - #bc
  189. [ao/pulse] - #sl
  190. [ao/pulse] - #sr
  191. [ao/pulse] - #tc
  192. [ao/pulse] - #tfl
  193. [ao/pulse] - #tfc
  194. [ao/pulse] - #tfr
  195. [ao/pulse] - #tbl
  196. [ao/pulse] - #tbc
  197. [ao/pulse] - #tbr
  198. [ao/pulse] result: stereo
  199. [ao/pulse] device buffer: 6000 samples.
  200. [ao/pulse] using soft-buffer of 9600 samples.
  201. [cplayer] AO: [pulse] 48000Hz stereo 2ch float
  202. [cplayer] AO: Description: PulseAudio audio output
  203. [af] Adding filter lavrresample
  204. [af] Audio filter chain:
  205. [af] [in] 48000Hz stereo 2ch floatp
  206. [af] [lavrresample] 48000Hz stereo 2ch float [a]
  207. [af] [out] 48000Hz stereo 2ch float
  208. [af] [ao] 48000Hz stereo 2ch float
  209. [vd] Decoder format: 1920x1080 [0:1] yuv420p auto/auto CL=mpeg2/4/h264
  210. [vf] Video filter chain:
  211. [vf] [in] 1920x1080 yuv420p bt.709/limited CL=mpeg2/4/h264
  212. [vf] [out] 1920x1080 yuv420p bt.709/limited CL=mpeg2/4/h264
  213. [cplayer] VO: [opengl-hq] 1920x1080 yuv420p
  214. [cplayer] VO: Description: Extended OpenGL Renderer (high quality rendering preset)
  215. [vo/opengl-hq] Resize: 1920x1080
  216. [vo/opengl-hq] Window size: 1920x1080
  217. [vo/opengl-hq] Video source: 1920x1080 (1:1)
  218. [vo/opengl-hq] Video display: (0, 0) 1920x1080 -> (0, 0) 1920x1080
  219. [vo/opengl-hq] Video scale: 1.000000/1.000000
  220. [vo/opengl-hq] OSD borders: l=0 t=0 r=0 b=0
  221. [vo/opengl-hq] Video borders: l=0 t=0 r=0 b=0
  222. [vo/opengl-hq] Testing FBO format 0x805b
  223. [vo/opengl-hq] Create FBO: 16x16 (16x16)
  224. [vo/opengl-hq] Using FBO format 0x805b.
  225. [vo/opengl-hq] Texture for plane 0: 1920x1080
  226. [vo/opengl-hq] Texture for plane 1: 960x540
  227. [vo/opengl-hq] Texture for plane 2: 960x540
  228. [cplayer] set video colors output-levels=0
  229. [vo/opengl-hq] Create FBO: 960x540 (960x540)
  230. [vo/opengl-hq] recompiling a shader program:
  231. [vo/opengl-hq] [ 1] // merging plane 1 ...
  232. [vo/opengl-hq] [ 2] color.r = 1.000000 * vec4(texture(texture0, texcoord0)).r;
  233. [vo/opengl-hq] [ 3] // merging plane 2 ... into 1
  234. [vo/opengl-hq] [ 4] color.g = 1.000000 * vec4(texture(texture1, texcoord1)).r;
  235. [vo/opengl-hq] Create FBO: 1920x1080 (1920x1080)
  236. [vo/opengl-hq] recompiling a shader program:
  237. [vo/opengl-hq] header:
  238. [vo/opengl-hq] [ 1] #define HOOKED_raw texture0
  239. [vo/opengl-hq] [ 2] #define HOOKED_pos texcoord0
  240. [vo/opengl-hq] [ 3] #define HOOKED_size texture_size0
  241. [vo/opengl-hq] [ 4] #define HOOKED_rot texture_rot0
  242. [vo/opengl-hq] [ 5] #define HOOKED_pt pixel_size0
  243. [vo/opengl-hq] [ 6] #define HOOKED_tex(pos) (1.000000 * vec4(texture(HOOKED_raw, pos)).rgba)
  244. [vo/opengl-hq] [ 7] #define HOOKED_texOff(off) HOOKED_tex(HOOKED_pos + HOOKED_pt * vec2(off))
  245. [vo/opengl-hq] [ 8] #define LUMA_raw texture0
  246. [vo/opengl-hq] [ 9] #define LUMA_pos texcoord0
  247. [vo/opengl-hq] [ 10] #define LUMA_size texture_size0
  248. [vo/opengl-hq] [ 11] #define LUMA_rot texture_rot0
  249. [vo/opengl-hq] [ 12] #define LUMA_pt pixel_size0
  250. [vo/opengl-hq] [ 13] #define LUMA_tex(pos) (1.000000 * vec4(texture(LUMA_raw, pos)).rgba)
  251. [vo/opengl-hq] [ 14] #define LUMA_texOff(off) LUMA_tex(LUMA_pos + LUMA_pt * vec2(off))
  252. [vo/opengl-hq] [ 15] float mod289(float x) { return x - floor(x / 289.0) * 289.0; }
  253. [vo/opengl-hq] [ 16] float permute(float x) { return mod289((34.0*x + 1.0) * x); }
  254. [vo/opengl-hq] [ 17] float rand(float x) { return fract(x / 41.0); }
  255. [vo/opengl-hq] [ 18] vec4 average(float range, inout float h) {
  256. [vo/opengl-hq] [ 19] float dist = rand(h) * range; h = permute(h);
  257. [vo/opengl-hq] [ 20] float dir = rand(h) * 6.2831853; h = permute(h);
  258. [vo/opengl-hq] [ 21] vec2 o = dist * vec2(cos(dir), sin(dir));
  259. [vo/opengl-hq] [ 22] vec4 ref[4];
  260. [vo/opengl-hq] [ 23] ref[0] = HOOKED_texOff(vec2( o.x, o.y));
  261. [vo/opengl-hq] [ 24] ref[1] = HOOKED_texOff(vec2(-o.y, o.x));
  262. [vo/opengl-hq] [ 25] ref[2] = HOOKED_texOff(vec2(-o.x, -o.y));
  263. [vo/opengl-hq] [ 26] ref[3] = HOOKED_texOff(vec2( o.y, -o.x));
  264. [vo/opengl-hq] [ 27] return (ref[0] + ref[1] + ref[2] + ref[3])/4.0;
  265. [vo/opengl-hq] [ 28] }
  266. [vo/opengl-hq] body:
  267. [vo/opengl-hq] [ 1] {
  268. [vo/opengl-hq] [ 2] vec3 _m = vec3(HOOKED_pos, random) + vec3(1.0);
  269. [vo/opengl-hq] [ 3] float h = permute(permute(permute(_m.x)+_m.y)+_m.z);
  270. [vo/opengl-hq] [ 4] color = HOOKED_tex(HOOKED_pos);
  271. [vo/opengl-hq] [ 5] vec4 avg, diff;
  272. [vo/opengl-hq] [ 6] avg = average(16.000000, h);
  273. [vo/opengl-hq] [ 7] diff = abs(color - avg);
  274. [vo/opengl-hq] [ 8] color = mix(avg, color, greaterThan(diff, vec4(0.003906)));
  275. [vo/opengl-hq] [ 9] vec3 noise;
  276. [vo/opengl-hq] [ 10] noise.x = rand(h); h = permute(h);
  277. [vo/opengl-hq] [ 11] noise.y = rand(h); h = permute(h);
  278. [vo/opengl-hq] [ 12] noise.z = rand(h); h = permute(h);
  279. [vo/opengl-hq] [ 13] color.xyz += 0.005859 * (noise - vec3(0.5));
  280. [vo/opengl-hq] [ 14] }
  281. [vo/opengl-hq] [ 15] color.g = 0.000000;
  282. [vo/opengl-hq] [ 16] color.b = 0.000000;
  283. [vo/opengl-hq] [ 17] color.a = 1.000000;
  284. [vo/opengl-hq] Create FBO: 960x540 (960x540)
  285. [vo/opengl-hq] recompiling a shader program:
  286. [vo/opengl-hq] header:
  287. [vo/opengl-hq] [ 1] #define HOOKED_raw texture0
  288. [vo/opengl-hq] [ 2] #define HOOKED_pos texcoord0
  289. [vo/opengl-hq] [ 3] #define HOOKED_size texture_size0
  290. [vo/opengl-hq] [ 4] #define HOOKED_rot texture_rot0
  291. [vo/opengl-hq] [ 5] #define HOOKED_pt pixel_size0
  292. [vo/opengl-hq] [ 6] #define HOOKED_tex(pos) (1.000000 * vec4(texture(HOOKED_raw, pos)).rgba)
  293. [vo/opengl-hq] [ 7] #define HOOKED_texOff(off) HOOKED_tex(HOOKED_pos + HOOKED_pt * vec2(off))
  294. [vo/opengl-hq] [ 8] #define CHROMA_raw texture0
  295. [vo/opengl-hq] [ 9] #define CHROMA_pos texcoord0
  296. [vo/opengl-hq] [ 10] #define CHROMA_size texture_size0
  297. [vo/opengl-hq] [ 11] #define CHROMA_rot texture_rot0
  298. [vo/opengl-hq] [ 12] #define CHROMA_pt pixel_size0
  299. [vo/opengl-hq] [ 13] #define CHROMA_tex(pos) (1.000000 * vec4(texture(CHROMA_raw, pos)).rgba)
  300. [vo/opengl-hq] [ 14] #define CHROMA_texOff(off) CHROMA_tex(CHROMA_pos + CHROMA_pt * vec2(off))
  301. [vo/opengl-hq] [ 15] float mod289(float x) { return x - floor(x / 289.0) * 289.0; }
  302. [vo/opengl-hq] [ 16] float permute(float x) { return mod289((34.0*x + 1.0) * x); }
  303. [vo/opengl-hq] [ 17] float rand(float x) { return fract(x / 41.0); }
  304. [vo/opengl-hq] [ 18] vec4 average(float range, inout float h) {
  305. [vo/opengl-hq] [ 19] float dist = rand(h) * range; h = permute(h);
  306. [vo/opengl-hq] [ 20] float dir = rand(h) * 6.2831853; h = permute(h);
  307. [vo/opengl-hq] [ 21] vec2 o = dist * vec2(cos(dir), sin(dir));
  308. [vo/opengl-hq] [ 22] vec4 ref[4];
  309. [vo/opengl-hq] [ 23] ref[0] = HOOKED_texOff(vec2( o.x, o.y));
  310. [vo/opengl-hq] [ 24] ref[1] = HOOKED_texOff(vec2(-o.y, o.x));
  311. [vo/opengl-hq] [ 25] ref[2] = HOOKED_texOff(vec2(-o.x, -o.y));
  312. [vo/opengl-hq] [ 26] ref[3] = HOOKED_texOff(vec2( o.y, -o.x));
  313. [vo/opengl-hq] [ 27] return (ref[0] + ref[1] + ref[2] + ref[3])/4.0;
  314. [vo/opengl-hq] [ 28] }
  315. [vo/opengl-hq] body:
  316. [vo/opengl-hq] [ 1] {
  317. [vo/opengl-hq] [ 2] vec3 _m = vec3(HOOKED_pos, random) + vec3(1.0);
  318. [vo/opengl-hq] [ 3] float h = permute(permute(permute(_m.x)+_m.y)+_m.z);
  319. [vo/opengl-hq] [ 4] color = HOOKED_tex(HOOKED_pos);
  320. [vo/opengl-hq] [ 5] vec4 avg, diff;
  321. [vo/opengl-hq] [ 6] avg = average(16.000000, h);
  322. [vo/opengl-hq] [ 7] diff = abs(color - avg);
  323. [vo/opengl-hq] [ 8] color = mix(avg, color, greaterThan(diff, vec4(0.003906)));
  324. [vo/opengl-hq] [ 9] vec3 noise;
  325. [vo/opengl-hq] [ 10] noise.x = rand(h); h = permute(h);
  326. [vo/opengl-hq] [ 11] noise.y = rand(h); h = permute(h);
  327. [vo/opengl-hq] [ 12] noise.z = rand(h); h = permute(h);
  328. [vo/opengl-hq] [ 13] color.xyz += 0.005859 * (noise - vec3(0.5));
  329. [vo/opengl-hq] [ 14] }
  330. [vo/opengl-hq] [ 15] color.b = 0.000000;
  331. [vo/opengl-hq] [ 16] color.a = 1.000000;
  332. [vo/opengl-hq] Create FBO: 960x1080 (960x1080)
  333. [vo/opengl-hq] recompiling a shader program:
  334. [vo/opengl-hq] header:
  335. [vo/opengl-hq] [ 1] #define HOOKED_raw texture0
  336. [vo/opengl-hq] [ 2] #define HOOKED_pos texcoord0
  337. [vo/opengl-hq] [ 3] #define HOOKED_size texture_size0
  338. [vo/opengl-hq] [ 4] #define HOOKED_rot texture_rot0
  339. [vo/opengl-hq] [ 5] #define HOOKED_pt pixel_size0
  340. [vo/opengl-hq] [ 6] #define HOOKED_tex(pos) (1.000000 * vec4(texture(HOOKED_raw, pos)).rgba)
  341. [vo/opengl-hq] [ 7] #define HOOKED_texOff(off) HOOKED_tex(HOOKED_pos + HOOKED_pt * vec2(off))
  342. [vo/opengl-hq] [ 8] #define CHROMA_raw texture0
  343. [vo/opengl-hq] [ 9] #define CHROMA_pos texcoord0
  344. [vo/opengl-hq] [ 10] #define CHROMA_size texture_size0
  345. [vo/opengl-hq] [ 11] #define CHROMA_rot texture_rot0
  346. [vo/opengl-hq] [ 12] #define CHROMA_pt pixel_size0
  347. [vo/opengl-hq] [ 13] #define CHROMA_tex(pos) (1.000000 * vec4(texture(CHROMA_raw, pos)).rgba)
  348. [vo/opengl-hq] [ 14] #define CHROMA_texOff(off) CHROMA_tex(CHROMA_pos + CHROMA_pt * vec2(off))
  349. [vo/opengl-hq] [ 15] #define LUMA_raw texture1
  350. [vo/opengl-hq] [ 16] #define LUMA_pos texcoord1
  351. [vo/opengl-hq] [ 17] #define LUMA_size texture_size1
  352. [vo/opengl-hq] [ 18] #define LUMA_rot texture_rot1
  353. [vo/opengl-hq] [ 19] #define LUMA_pt pixel_size1
  354. [vo/opengl-hq] [ 20] #define LUMA_tex(pos) (1.000000 * vec4(texture(LUMA_raw, pos)).rgba)
  355. [vo/opengl-hq] [ 21] #define LUMA_texOff(off) LUMA_tex(LUMA_pos + LUMA_pt * vec2(off))
  356. [vo/opengl-hq] [ 22]
  357. [vo/opengl-hq] [ 23] // -- Downscaling --
  358. [vo/opengl-hq] [ 24] #define offset (-vec2(0.0, 0.0)*LUMA_size*CHROMA_pt) // -chromaOffset*LUMA_size/CHROMA_size
  359. [vo/opengl-hq] [ 25]
  360. [vo/opengl-hq] [ 26] #define dxdy (vec2(CHROMA_pt.x, LUMA_pt.y)) // 1/output_size
  361. [vo/opengl-hq] [ 27] #define ddxddy (LUMA_pt) // 1/input_size
  362. [vo/opengl-hq] [ 28]
  363. [vo/opengl-hq] [ 29] #define factor ((ddxddy*vec2(CHROMA_size.x, LUMA_size.y))[axis])
  364. [vo/opengl-hq] [ 30]
  365. [vo/opengl-hq] [ 31] #define axis 0
  366. [vo/opengl-hq] [ 32]
  367. [vo/opengl-hq] [ 33] #define Kernel(x) clamp(0.5 + (0.5 - abs(x)) / factor, 0.0, 1.0)
  368. [vo/opengl-hq] [ 34] #define taps (1.0 + factor)
  369. [vo/opengl-hq] [ 35]
  370. [vo/opengl-hq] [ 36] vec4 hook() {
  371. [vo/opengl-hq] [ 37] // Calculate bounds
  372. [vo/opengl-hq] [ 38] float low = floor((LUMA_pos - 0.5*taps*dxdy) * LUMA_size - offset + 0.5)[axis];
  373. [vo/opengl-hq] [ 39] float high = floor((LUMA_pos + 0.5*taps*dxdy) * LUMA_size - offset + 0.5)[axis];
  374. [vo/opengl-hq] [ 40]
  375. [vo/opengl-hq] [ 41] float W = 0.0;
  376. [vo/opengl-hq] [ 42] vec2 avg = vec2(0);
  377. [vo/opengl-hq] [ 43] vec2 pos = LUMA_pos;
  378. [vo/opengl-hq] [ 44]
  379. [vo/opengl-hq] [ 45] for (float k = 0.0; k < high - low; k++) {
  380. [vo/opengl-hq] [ 46] pos[axis] = ddxddy[axis] * (k + low + 0.5);
  381. [vo/opengl-hq] [ 47] float rel = (pos[axis] - LUMA_pos[axis])*vec2(CHROMA_size.x, LUMA_size.y)[axis] + offset[axis]*factor;
  382. [vo/opengl-hq] [ 48] float w = Kernel(rel);
  383. [vo/opengl-hq] [ 49]
  384. [vo/opengl-hq] [ 50] avg += w * vec2(textureLod(LUMA_raw, pos, 0.0).x, pow(textureLod(LUMA_raw, pos, 0.0).x, 2.0));
  385. [vo/opengl-hq] [ 51] W += w;
  386. [vo/opengl-hq] [ 52] }
  387. [vo/opengl-hq] [ 53] avg /= vec2(W);
  388. [vo/opengl-hq] [ 54]
  389. [vo/opengl-hq] [ 55] return vec4(avg[0], avg[1] - avg[0]*avg[0], 0, 0);
  390. [vo/opengl-hq] [ 56] }
  391. [vo/opengl-hq] [ 57]
  392. [vo/opengl-hq] body:
  393. [vo/opengl-hq] [ 1] // custom hook
  394. [vo/opengl-hq] [ 2] color = hook();
  395. [vo/opengl-hq] Create FBO: 960x540 (960x540)
  396. [vo/opengl-hq] recompiling a shader program:
  397. [vo/opengl-hq] header:
  398. [vo/opengl-hq] [ 1] #define HOOKED_raw texture0
  399. [vo/opengl-hq] [ 2] #define HOOKED_pos texcoord0
  400. [vo/opengl-hq] [ 3] #define HOOKED_size texture_size0
  401. [vo/opengl-hq] [ 4] #define HOOKED_rot texture_rot0
  402. [vo/opengl-hq] [ 5] #define HOOKED_pt pixel_size0
  403. [vo/opengl-hq] [ 6] #define HOOKED_tex(pos) (1.000000 * vec4(texture(HOOKED_raw, pos)).rgba)
  404. [vo/opengl-hq] [ 7] #define HOOKED_texOff(off) HOOKED_tex(HOOKED_pos + HOOKED_pt * vec2(off))
  405. [vo/opengl-hq] [ 8] #define CHROMA_raw texture0
  406. [vo/opengl-hq] [ 9] #define CHROMA_pos texcoord0
  407. [vo/opengl-hq] [ 10] #define CHROMA_size texture_size0
  408. [vo/opengl-hq] [ 11] #define CHROMA_rot texture_rot0
  409. [vo/opengl-hq] [ 12] #define CHROMA_pt pixel_size0
  410. [vo/opengl-hq] [ 13] #define CHROMA_tex(pos) (1.000000 * vec4(texture(CHROMA_raw, pos)).rgba)
  411. [vo/opengl-hq] [ 14] #define CHROMA_texOff(off) CHROMA_tex(CHROMA_pos + CHROMA_pt * vec2(off))
  412. [vo/opengl-hq] [ 15] #define DOWNSCALEDLUMAX_raw texture1
  413. [vo/opengl-hq] [ 16] #define DOWNSCALEDLUMAX_pos texcoord1
  414. [vo/opengl-hq] [ 17] #define DOWNSCALEDLUMAX_size texture_size1
  415. [vo/opengl-hq] [ 18] #define DOWNSCALEDLUMAX_rot texture_rot1
  416. [vo/opengl-hq] [ 19] #define DOWNSCALEDLUMAX_pt pixel_size1
  417. [vo/opengl-hq] [ 20] #define DOWNSCALEDLUMAX_tex(pos) (1.000000 * vec4(texture(DOWNSCALEDLUMAX_raw, pos)).rgba)
  418. [vo/opengl-hq] [ 21] #define DOWNSCALEDLUMAX_texOff(off) DOWNSCALEDLUMAX_tex(DOWNSCALEDLUMAX_pos + DOWNSCALEDLUMAX_pt * vec2(off))
  419. [vo/opengl-hq] [ 22]
  420. [vo/opengl-hq] [ 23] // -- Downscaling --
  421. [vo/opengl-hq] [ 24] #define offset (-vec2(0.0, 0.0)*DOWNSCALEDLUMAX_size*CHROMA_pt)
  422. [vo/opengl-hq] [ 25]
  423. [vo/opengl-hq] [ 26] #define dxdy (CHROMA_pt)
  424. [vo/opengl-hq] [ 27] #define ddxddy (DOWNSCALEDLUMAX_pt)
  425. [vo/opengl-hq] [ 28]
  426. [vo/opengl-hq] [ 29] #define factor ((ddxddy*CHROMA_size)[axis])
  427. [vo/opengl-hq] [ 30]
  428. [vo/opengl-hq] [ 31] #define axis 1
  429. [vo/opengl-hq] [ 32]
  430. [vo/opengl-hq] [ 33] #define Kernel(x) clamp(0.5 + (0.5 - abs(x)) / factor, 0.0, 1.0)
  431. [vo/opengl-hq] [ 34] #define taps (1.0 + factor)
  432. [vo/opengl-hq] [ 35]
  433. [vo/opengl-hq] [ 36] vec4 hook() {
  434. [vo/opengl-hq] [ 37] // Calculate bounds
  435. [vo/opengl-hq] [ 38] float low = floor((DOWNSCALEDLUMAX_pos - 0.5*taps*dxdy) * DOWNSCALEDLUMAX_size - offset + 0.5)[axis];
  436. [vo/opengl-hq] [ 39] float high = floor((DOWNSCALEDLUMAX_pos + 0.5*taps*dxdy) * DOWNSCALEDLUMAX_size - offset + 0.5)[axis];
  437. [vo/opengl-hq] [ 40]
  438. [vo/opengl-hq] [ 41] float W = 0.0;
  439. [vo/opengl-hq] [ 42] vec2 avg = vec2(0);
  440. [vo/opengl-hq] [ 43] vec2 pos = DOWNSCALEDLUMAX_pos;
  441. [vo/opengl-hq] [ 44]
  442. [vo/opengl-hq] [ 45] for (float k = 0.0; k < high - low; k++) {
  443. [vo/opengl-hq] [ 46] pos[axis] = ddxddy[axis] * (k + low + 0.5);
  444. [vo/opengl-hq] [ 47] float rel = (pos[axis] - DOWNSCALEDLUMAX_pos[axis])*CHROMA_size[axis] + offset[axis]*factor;
  445. [vo/opengl-hq] [ 48] float w = Kernel(rel);
  446. [vo/opengl-hq] [ 49]
  447. [vo/opengl-hq] [ 50] avg += w * vec2(textureLod(DOWNSCALEDLUMAX_raw, pos, 0.0).x, textureLod(DOWNSCALEDLUMAX_raw, pos, 0.0).y + pow(textureLod(DOWNSCALEDLUMAX_raw, pos, 0.0).x, 2.0));
  448. [vo/opengl-hq] [ 51] W += w;
  449. [vo/opengl-hq] [ 52] }
  450. [vo/opengl-hq] [ 53] avg /= vec2(W);
  451. [vo/opengl-hq] [ 54]
  452. [vo/opengl-hq] [ 55] return vec4(avg[0], texture(CHROMA_raw, CHROMA_pos).xy, avg[1]-avg[0]*avg[0]);
  453. [vo/opengl-hq] [ 56] }
  454. [vo/opengl-hq] [ 57]
  455. [vo/opengl-hq] body:
  456. [vo/opengl-hq] [ 1] // custom hook
  457. [vo/opengl-hq] [ 2] color = hook();
  458. [vo/opengl-hq] Create FBO: 960x1080 (960x1280)
  459. [vo/opengl-hq] recompiling a shader program:
  460. [vo/opengl-hq] [ 1] // upscaling plane 1
  461. [vo/opengl-hq] [ 2] #undef tex
  462. [vo/opengl-hq] [ 3] #define tex texture0
  463. [vo/opengl-hq] [ 4] vec2 pos = texcoord0;
  464. [vo/opengl-hq] [ 5] vec2 size = texture_size0;
  465. [vo/opengl-hq] [ 6] vec2 pt = pixel_size0;
  466. [vo/opengl-hq] [ 7] // pass 1
  467. [vo/opengl-hq] [ 8] color = vec4(0.0);
  468. [vo/opengl-hq] [ 9] {
  469. [vo/opengl-hq] [ 10] vec2 dir = vec2(0.0, 1.0);
  470. [vo/opengl-hq] [ 11] pt *= dir;
  471. [vo/opengl-hq] [ 12] float fcoord = dot(fract(pos * size - vec2(0.5)), dir);
  472. [vo/opengl-hq] [ 13] vec2 base = pos - fcoord * pt - pt * vec2(2.0);
  473. [vo/opengl-hq] [ 14] vec4 c;
  474. [vo/opengl-hq] [ 15] float fcoord_lut = LUT_POS(fcoord, 64.0);
  475. [vo/opengl-hq] [ 16] vec4 c1 = texture(lut, vec2(0.25, fcoord_lut));
  476. [vo/opengl-hq] [ 17] vec4 c2 = texture(lut, vec2(0.75, fcoord_lut));
  477. [vo/opengl-hq] [ 18] float weights[6] = float[](c1.r, c1.g, c1.b, c2.r, c2.g, c2.b);
  478. [vo/opengl-hq] [ 19] // scaler samples
  479. [vo/opengl-hq] [ 20] c = texture(tex, base + pt * vec2(0.0));
  480. [vo/opengl-hq] [ 21] color += vec4(weights[0]) * c;
  481. [vo/opengl-hq] [ 22] c = texture(tex, base + pt * vec2(1.0));
  482. [vo/opengl-hq] [ 23] color += vec4(weights[1]) * c;
  483. [vo/opengl-hq] [ 24] c = texture(tex, base + pt * vec2(2.0));
  484. [vo/opengl-hq] [ 25] color += vec4(weights[2]) * c;
  485. [vo/opengl-hq] [ 26] c = texture(tex, base + pt * vec2(3.0));
  486. [vo/opengl-hq] [ 27] color += vec4(weights[3]) * c;
  487. [vo/opengl-hq] [ 28] c = texture(tex, base + pt * vec2(4.0));
  488. [vo/opengl-hq] [ 29] color += vec4(weights[4]) * c;
  489. [vo/opengl-hq] [ 30] c = texture(tex, base + pt * vec2(5.0));
  490. [vo/opengl-hq] [ 31] color += vec4(weights[5]) * c;
  491. [vo/opengl-hq] [ 32] }
  492. [vo/opengl-hq] [ 33] color *= 1.000000;
  493. [vo/opengl-hq] Create FBO: 1920x1080 (2048x1280)
  494. [vo/opengl-hq] recompiling a shader program:
  495. [vo/opengl-hq] [ 1] #undef tex
  496. [vo/opengl-hq] [ 2] #define tex texture0
  497. [vo/opengl-hq] [ 3] vec2 pos = texcoord0;
  498. [vo/opengl-hq] [ 4] vec2 size = texture_size0;
  499. [vo/opengl-hq] [ 5] vec2 pt = pixel_size0;
  500. [vo/opengl-hq] [ 6] // pass 2
  501. [vo/opengl-hq] [ 7] color = vec4(0.0);
  502. [vo/opengl-hq] [ 8] {
  503. [vo/opengl-hq] [ 9] vec2 dir = vec2(1.0, 0.0);
  504. [vo/opengl-hq] [ 10] pt *= dir;
  505. [vo/opengl-hq] [ 11] float fcoord = dot(fract(pos * size - vec2(0.5)), dir);
  506. [vo/opengl-hq] [ 12] vec2 base = pos - fcoord * pt - pt * vec2(2.0);
  507. [vo/opengl-hq] [ 13] vec4 c;
  508. [vo/opengl-hq] [ 14] float fcoord_lut = LUT_POS(fcoord, 64.0);
  509. [vo/opengl-hq] [ 15] vec4 c1 = texture(lut, vec2(0.25, fcoord_lut));
  510. [vo/opengl-hq] [ 16] vec4 c2 = texture(lut, vec2(0.75, fcoord_lut));
  511. [vo/opengl-hq] [ 17] float weights[6] = float[](c1.r, c1.g, c1.b, c2.r, c2.g, c2.b);
  512. [vo/opengl-hq] [ 18] // scaler samples
  513. [vo/opengl-hq] [ 19] c = texture(tex, base + pt * vec2(0.0));
  514. [vo/opengl-hq] [ 20] color += vec4(weights[0]) * c;
  515. [vo/opengl-hq] [ 21] c = texture(tex, base + pt * vec2(1.0));
  516. [vo/opengl-hq] [ 22] color += vec4(weights[1]) * c;
  517. [vo/opengl-hq] [ 23] c = texture(tex, base + pt * vec2(2.0));
  518. [vo/opengl-hq] [ 24] color += vec4(weights[2]) * c;
  519. [vo/opengl-hq] [ 25] c = texture(tex, base + pt * vec2(3.0));
  520. [vo/opengl-hq] [ 26] color += vec4(weights[3]) * c;
  521. [vo/opengl-hq] [ 27] c = texture(tex, base + pt * vec2(4.0));
  522. [vo/opengl-hq] [ 28] color += vec4(weights[4]) * c;
  523. [vo/opengl-hq] [ 29] c = texture(tex, base + pt * vec2(5.0));
  524. [vo/opengl-hq] [ 30] color += vec4(weights[5]) * c;
  525. [vo/opengl-hq] [ 31] }
  526. [vo/opengl-hq] [ 32] color.b = 0.000000;
  527. [vo/opengl-hq] [ 33] color.a = 1.000000;
  528. [vo/opengl-hq] Create FBO: 1920x1080 (1920x1080)
  529. [vo/opengl-hq] recompiling a shader program:
  530. [vo/opengl-hq] [ 1] // combining planes
  531. [vo/opengl-hq] [ 2] color.r = 1.000000 * vec4(texture(texture0, texcoord0)).r;
  532. [vo/opengl-hq] [ 3] color.gb = 1.000000 * vec4(texture(texture1, texcoord1)).rg;
  533. [vo/opengl-hq] Create FBO: 1920x1080 (1920x1080)
  534. [vo/opengl-hq] recompiling a shader program:
  535. [vo/opengl-hq] header:
  536. [vo/opengl-hq] [ 1] #define HOOKED_raw texture0
  537. [vo/opengl-hq] [ 2] #define HOOKED_pos texcoord0
  538. [vo/opengl-hq] [ 3] #define HOOKED_size texture_size0
  539. [vo/opengl-hq] [ 4] #define HOOKED_rot texture_rot0
  540. [vo/opengl-hq] [ 5] #define HOOKED_pt pixel_size0
  541. [vo/opengl-hq] [ 6] #define HOOKED_tex(pos) (1.000000 * vec4(texture(HOOKED_raw, pos)).rgba)
  542. [vo/opengl-hq] [ 7] #define HOOKED_texOff(off) HOOKED_tex(HOOKED_pos + HOOKED_pt * vec2(off))
  543. [vo/opengl-hq] [ 8] #define NATIVE_raw texture0
  544. [vo/opengl-hq] [ 9] #define NATIVE_pos texcoord0
  545. [vo/opengl-hq] [ 10] #define NATIVE_size texture_size0
  546. [vo/opengl-hq] [ 11] #define NATIVE_rot texture_rot0
  547. [vo/opengl-hq] [ 12] #define NATIVE_pt pixel_size0
  548. [vo/opengl-hq] [ 13] #define NATIVE_tex(pos) (1.000000 * vec4(texture(NATIVE_raw, pos)).rgba)
  549. [vo/opengl-hq] [ 14] #define NATIVE_texOff(off) NATIVE_tex(NATIVE_pos + NATIVE_pt * vec2(off))
  550. [vo/opengl-hq] [ 15] #define LOWRES_YUV_raw texture1
  551. [vo/opengl-hq] [ 16] #define LOWRES_YUV_pos texcoord1
  552. [vo/opengl-hq] [ 17] #define LOWRES_YUV_size texture_size1
  553. [vo/opengl-hq] [ 18] #define LOWRES_YUV_rot texture_rot1
  554. [vo/opengl-hq] [ 19] #define LOWRES_YUV_pt pixel_size1
  555. [vo/opengl-hq] [ 20] #define LOWRES_YUV_tex(pos) (1.000000 * vec4(texture(LOWRES_YUV_raw, pos)).rgba)
  556. [vo/opengl-hq] [ 21] #define LOWRES_YUV_texOff(off) LOWRES_YUV_tex(LOWRES_YUV_pos + LOWRES_YUV_pt * vec2(off))
  557. [vo/opengl-hq] [ 22]
  558. [vo/opengl-hq] [ 23] // -- CrossBilateral --
  559. [vo/opengl-hq] [ 24]
  560. [vo/opengl-hq] [ 25] // -- Misc --
  561. [vo/opengl-hq] [ 26] #define power 0.5
  562. [vo/opengl-hq] [ 27]
  563. [vo/opengl-hq] [ 28] // -- Convenience --
  564. [vo/opengl-hq] [ 29] #define sqr(x) dot(x,x)
  565. [vo/opengl-hq] [ 30] #define noise 0.15
  566. [vo/opengl-hq] [ 31] #define bitnoise 1.0/(2.0*255.0)
  567. [vo/opengl-hq] [ 32]
  568. [vo/opengl-hq] [ 33] #define dxdy (NATIVE_pt)
  569. [vo/opengl-hq] [ 34] #define ddxddy (LOWRES_YUV_pt)
  570. [vo/opengl-hq] [ 35] #define chromaOffset vec2(0.0, 0.0)
  571. [vo/opengl-hq] [ 36] #define radius 1.0
  572. [vo/opengl-hq] [ 37]
  573. [vo/opengl-hq] [ 38] // -- Window Size --
  574. [vo/opengl-hq] [ 39] #define taps 3
  575. [vo/opengl-hq] [ 40] #define even (float(taps) - 2.0 * floor(float(taps) / 2.0) == 0.0)
  576. [vo/opengl-hq] [ 41] #define minX int(1.0-ceil(float(taps)/2.0))
  577. [vo/opengl-hq] [ 42] #define maxX int(floor(float(taps)/2.0))
  578. [vo/opengl-hq] [ 43]
  579. [vo/opengl-hq] [ 44] // -- Input processing --
  580. [vo/opengl-hq] [ 45] // Luma value
  581. [vo/opengl-hq] [ 46] //#define GetLuma(x,y) LOWRES_YUV_tex(HOOKED_pos + dxdy*vec2(x,y))[0]
  582. [vo/opengl-hq] [ 47] // Chroma value
  583. [vo/opengl-hq] [ 48] #define GetChroma(x,y) LOWRES_YUV_tex(ddxddy*(pos+vec2(x,y)+0.5))
  584. [vo/opengl-hq] [ 49]
  585. [vo/opengl-hq] [ 50] #define localVar 0.0//sqr(bitnoise)
  586. [vo/opengl-hq] [ 51] #define fixLuma 0.0
  587. [vo/opengl-hq] [ 52]
  588. [vo/opengl-hq] [ 53] #define C(i,j) (inversesqrt(sqr(noise) + X[i].w + X[j].w) * exp(-0.5*(sqr(X[i].x - X[j].x)/(sqr(noise) + X[i].w + X[j].w) + sqr((coords[i] - coords[j])/radius))) + fixLuma * (X[i].x - c0.x) * (X[j].x - c0.x))
  589. [vo/opengl-hq] [ 54] #define c(i) (inversesqrt(sqr(noise) + X[i].w + localVar) * exp(-0.5*(sqr(X[i].x - c0.x)/(sqr(noise) + X[i].w + localVar) + sqr((coords[i] - offset)/radius))))
  590. [vo/opengl-hq] [ 55]
  591. [vo/opengl-hq] [ 56] #define N (taps*taps - 1)
  592. [vo/opengl-hq] [ 57]
  593. [vo/opengl-hq] [ 58] vec4 hook() {
  594. [vo/opengl-hq] [ 59] vec4 c0 = HOOKED_tex(HOOKED_pos);
  595. [vo/opengl-hq] [ 60]
  596. [vo/opengl-hq] [ 61] // Calculate position
  597. [vo/opengl-hq] [ 62] vec2 pos = HOOKED_pos * LOWRES_YUV_size - chromaOffset - vec2(0.5);
  598. [vo/opengl-hq] [ 63] vec2 offset = pos - (even ? floor(pos) : round(pos));
  599. [vo/opengl-hq] [ 64] pos -= offset;
  600. [vo/opengl-hq] [ 65]
  601. [vo/opengl-hq] [ 66] vec2 coords[N+1];
  602. [vo/opengl-hq] [ 67] vec4 X[N+1];
  603. [vo/opengl-hq] [ 68] int i=0;
  604. [vo/opengl-hq] [ 69] for (int xx = minX; xx <= maxX; xx++)
  605. [vo/opengl-hq] [ 70] for (int yy = minX; yy <= maxX; yy++)
  606. [vo/opengl-hq] [ 71] if (!(xx == 0 && yy == 0)) {
  607. [vo/opengl-hq] [ 72] coords[i] = vec2(xx,yy);
  608. [vo/opengl-hq] [ 73] X[i++] = GetChroma(xx, yy);
  609. [vo/opengl-hq] [ 74] }
  610. [vo/opengl-hq] [ 75]
  611. [vo/opengl-hq] [ 76] coords[N] = vec2(0,0);
  612. [vo/opengl-hq] [ 77] X[N] = GetChroma(0,0);
  613. [vo/opengl-hq] [ 78]
  614. [vo/opengl-hq] [ 79] float M[N*N];
  615. [vo/opengl-hq] [ 80] float b[N];
  616. [vo/opengl-hq] [ 81]
  617. [vo/opengl-hq] [ 82] for (i=0; i<N; i++) {
  618. [vo/opengl-hq] [ 83] b[i] = c(i) - c(N) - C(i,N) + C(N,N);
  619. [vo/opengl-hq] [ 84] for (int j=i; j<N; j++) {
  620. [vo/opengl-hq] [ 85] M[i*N + j] = C(i,j) - C(i,N) - C(j,N) + C(N,N);
  621. [vo/opengl-hq] [ 86] }
  622. [vo/opengl-hq] [ 87] }
  623. [vo/opengl-hq] [ 88]
  624. [vo/opengl-hq] [ 89] for (i=0; i<N; i++) {
  625. [vo/opengl-hq] [ 90] for (int j=i+1; j<N; j++) {
  626. [vo/opengl-hq] [ 91] b[j] -= b[i] * M[i*N + j] / M[i*N + i];
  627. [vo/opengl-hq] [ 92] for (int k=j; k<N; k++) {
  628. [vo/opengl-hq] [ 93] M[j*N + k] -= M[i*N + k] * M[i*N + j] / M[i*N + i];
  629. [vo/opengl-hq] [ 94] }
  630. [vo/opengl-hq] [ 95] }
  631. [vo/opengl-hq] [ 96] }
  632. [vo/opengl-hq] [ 97]
  633. [vo/opengl-hq] [ 98] //float w[N];
  634. [vo/opengl-hq] [ 99] //float det = 1;
  635. [vo/opengl-hq] [100] //float Tr = 0;
  636. [vo/opengl-hq] [101] for (i=N-1; i>=0; i--) {
  637. [vo/opengl-hq] [102] //w[i] = b[i];
  638. [vo/opengl-hq] [103] for (int j=i+1; j<N; j++) {
  639. [vo/opengl-hq] [104] b[i] -= M[i*N + j] * b[j];
  640. [vo/opengl-hq] [105] }
  641. [vo/opengl-hq] [106] b[i] /= M[i*N + i];
  642. [vo/opengl-hq] [107] //det *= M[i*N + i];
  643. [vo/opengl-hq] [108] //Tr += M[i*N + i];
  644. [vo/opengl-hq] [109] }
  645. [vo/opengl-hq] [110]
  646. [vo/opengl-hq] [111] vec4 interp = X[N];
  647. [vo/opengl-hq] [112] for (i=0; i<N; i++)
  648. [vo/opengl-hq] [113] interp += b[i] * (X[i] - X[N]);
  649. [vo/opengl-hq] [114]
  650. [vo/opengl-hq] [115] // Update c0
  651. [vo/opengl-hq] [116] c0.yz = interp.yz;
  652. [vo/opengl-hq] [117]
  653. [vo/opengl-hq] [118] return c0;
  654. [vo/opengl-hq] [119] }
  655. [vo/opengl-hq] body:
  656. [vo/opengl-hq] [ 1] // custom hook
  657. [vo/opengl-hq] [ 2] color = hook();
  658. [vo/opengl-hq] [ 3] color.a = 1.000000;
  659. [vo/opengl-hq] Create FBO: 1920x1080 (1920x1080)
  660. [vo/opengl-hq] recompiling a shader program:
  661. [vo/opengl-hq] [ 1] color.rgb = 1.000000 * vec4(texture(texture0, texcoord0)).rgb;
  662. [vo/opengl-hq] [ 2] // color conversion
  663. [vo/opengl-hq] [ 3] color.rgb = mat3(colormatrix) * color.rgb + colormatrix_c;
  664. [vo/opengl-hq] [ 4] color.a = 1.0;
  665. [vo/opengl-hq] [ 5] // scaler pre-conversion
  666. [vo/opengl-hq] [ 6] color.rgb = clamp(color.rgb, 0.0, 1.0);
  667. [vo/opengl-hq] [ 7] color.rgb = pow(color.rgb, vec3(2.4));
  668. [vo/opengl-hq] [ 8] // main scaling
  669. [vo/opengl-hq] Dither to 8.
  670. [vo/opengl-hq] recompiling a shader program:
  671. [vo/opengl-hq] [ 1] #undef tex
  672. [vo/opengl-hq] [ 2] #define tex texture0
  673. [vo/opengl-hq] [ 3] vec2 pos = texcoord0;
  674. [vo/opengl-hq] [ 4] vec2 size = texture_size0;
  675. [vo/opengl-hq] [ 5] vec2 pt = pixel_size0;
  676. [vo/opengl-hq] [ 6] color = texture(tex, pos);
  677. [vo/opengl-hq] [ 7] color *= 1.000000;
  678. [vo/opengl-hq] [ 8] color.a = 1.000000;
  679. [vo/opengl-hq] [ 9] // scaler post-conversion
  680. [vo/opengl-hq] [ 10] // color mapping
  681. [vo/opengl-hq] [ 11] color.rgb = clamp(color.rgb, 0.0, 1.0);
  682. [vo/opengl-hq] [ 12] color.rgb = pow(color.rgb, vec3(1.0/2.4));
  683. [vo/opengl-hq] [ 13] // dithering
  684. [vo/opengl-hq] [ 14] vec2 dither_pos = gl_FragCoord.xy / 64.0;
  685. [vo/opengl-hq] [ 15] float dither_value = texture(dither, dither_pos).r;
  686. [vo/opengl-hq] [ 16] color = floor(color * 255.0 + dither_value + 0.5 / 4096.0) / 255.0;
  687. [osd/libass] fontselect: (sans-serif, 400, 0) -> /usr/share/fonts/truetype/arial.ttf, 0, ArialMT
  688. [cplayer] first video frame after restart shown
  689. [cplayer] starting audio playback
  690. [cplayer] playback restart complete
  691. [statusline] AV: 00:00:00 / 00:00:52 (0%) A-V: 0.000
  692. [vo/opengl-hq] Resize: 1903x1060
  693. [vo/opengl-hq] Window size: 1903x1060
  694. [vo/opengl-hq] Video source: 1920x1080 (1:1)
  695. [vo/opengl-hq] Video display: (0, 0) 1920x1080 -> (9, 0) 1884x1060
  696. [vo/opengl-hq] Video scale: 0.981250/0.981481
  697. [vo/opengl-hq] OSD borders: l=9 t=0 r=10 b=0
  698. [vo/opengl-hq] Video borders: l=9 t=0 r=10 b=0
  699. [vo/opengl-hq] Create FBO: 1920x1060 (1920x1280)
  700. [vo/opengl-hq] recompiling a shader program:
  701. [vo/opengl-hq] [ 1] #undef tex
  702. [vo/opengl-hq] [ 2] #define tex texture0
  703. [vo/opengl-hq] [ 3] vec2 pos = texcoord0;
  704. [vo/opengl-hq] [ 4] vec2 size = texture_size0;
  705. [vo/opengl-hq] [ 5] vec2 pt = pixel_size0;
  706. [vo/opengl-hq] [ 6] // pass 1
  707. [vo/opengl-hq] [ 7] color = vec4(0.0);
  708. [vo/opengl-hq] [ 8] {
  709. [vo/opengl-hq] [ 9] vec2 dir = vec2(0.0, 1.0);
  710. [vo/opengl-hq] [ 10] pt *= dir;
  711. [vo/opengl-hq] [ 11] float fcoord = dot(fract(pos * size - vec2(0.5)), dir);
  712. [vo/opengl-hq] [ 12] vec2 base = pos - fcoord * pt - pt * vec2(2.0);
  713. [vo/opengl-hq] [ 13] vec4 c;
  714. [vo/opengl-hq] [ 14] float fcoord_lut = LUT_POS(fcoord, 64.0);
  715. [vo/opengl-hq] [ 15] vec4 c1 = texture(lut, vec2(0.25, fcoord_lut));
  716. [vo/opengl-hq] [ 16] vec4 c2 = texture(lut, vec2(0.75, fcoord_lut));
  717. [vo/opengl-hq] [ 17] float weights[6] = float[](c1.r, c1.g, c1.b, c2.r, c2.g, c2.b);
  718. [vo/opengl-hq] [ 18] // scaler samples
  719. [vo/opengl-hq] [ 19] c = texture(tex, base + pt * vec2(0.0));
  720. [vo/opengl-hq] [ 20] color += vec4(weights[0]) * c;
  721. [vo/opengl-hq] [ 21] c = texture(tex, base + pt * vec2(1.0));
  722. [vo/opengl-hq] [ 22] color += vec4(weights[1]) * c;
  723. [vo/opengl-hq] [ 23] c = texture(tex, base + pt * vec2(2.0));
  724. [vo/opengl-hq] [ 24] color += vec4(weights[2]) * c;
  725. [vo/opengl-hq] [ 25] c = texture(tex, base + pt * vec2(3.0));
  726. [vo/opengl-hq] [ 26] color += vec4(weights[3]) * c;
  727. [vo/opengl-hq] [ 27] c = texture(tex, base + pt * vec2(4.0));
  728. [vo/opengl-hq] [ 28] color += vec4(weights[4]) * c;
  729. [vo/opengl-hq] [ 29] c = texture(tex, base + pt * vec2(5.0));
  730. [vo/opengl-hq] [ 30] color += vec4(weights[5]) * c;
  731. [vo/opengl-hq] [ 31] }
  732. [vo/opengl-hq] [ 32] color *= 1.000000;
  733. [statusline] AV: 00:00:00 / 00:00:52 (0%) A-V: 0.000
  734. [vo/opengl-hq] recompiling a shader program:
  735. [vo/opengl-hq] [ 1] #undef tex
  736. [vo/opengl-hq] [ 2] #define tex texture0
  737. [vo/opengl-hq] [ 3] vec2 pos = texcoord0;
  738. [vo/opengl-hq] [ 4] vec2 size = texture_size0;
  739. [vo/opengl-hq] [ 5] vec2 pt = pixel_size0;
  740. [vo/opengl-hq] [ 6] // pass 2
  741. [vo/opengl-hq] [ 7] color = vec4(0.0);
  742. [vo/opengl-hq] [ 8] {
  743. [vo/opengl-hq] [ 9] vec2 dir = vec2(1.0, 0.0);
  744. [vo/opengl-hq] [ 10] pt *= dir;
  745. [vo/opengl-hq] [ 11] float fcoord = dot(fract(pos * size - vec2(0.5)), dir);
  746. [vo/opengl-hq] [ 12] vec2 base = pos - fcoord * pt - pt * vec2(2.0);
  747. [vo/opengl-hq] [ 13] vec4 c;
  748. [vo/opengl-hq] [ 14] float fcoord_lut = LUT_POS(fcoord, 64.0);
  749. [vo/opengl-hq] [ 15] vec4 c1 = texture(lut, vec2(0.25, fcoord_lut));
  750. [vo/opengl-hq] [ 16] vec4 c2 = texture(lut, vec2(0.75, fcoord_lut));
  751. [vo/opengl-hq] [ 17] float weights[6] = float[](c1.r, c1.g, c1.b, c2.r, c2.g, c2.b);
  752. [vo/opengl-hq] [ 18] // scaler samples
  753. [vo/opengl-hq] [ 19] c = texture(tex, base + pt * vec2(0.0));
  754. [vo/opengl-hq] [ 20] color += vec4(weights[0]) * c;
  755. [vo/opengl-hq] [ 21] c = texture(tex, base + pt * vec2(1.0));
  756. [vo/opengl-hq] [ 22] color += vec4(weights[1]) * c;
  757. [vo/opengl-hq] [ 23] c = texture(tex, base + pt * vec2(2.0));
  758. [vo/opengl-hq] [ 24] color += vec4(weights[2]) * c;
  759. [vo/opengl-hq] [ 25] c = texture(tex, base + pt * vec2(3.0));
  760. [vo/opengl-hq] [ 26] color += vec4(weights[3]) * c;
  761. [vo/opengl-hq] [ 27] c = texture(tex, base + pt * vec2(4.0));
  762. [vo/opengl-hq] [ 28] color += vec4(weights[4]) * c;
  763. [vo/opengl-hq] [ 29] c = texture(tex, base + pt * vec2(5.0));
  764. [vo/opengl-hq] [ 30] color += vec4(weights[5]) * c;
  765. [vo/opengl-hq] [ 31] }
  766. [vo/opengl-hq] [ 32] color.a = 1.000000;
  767. [vo/opengl-hq] [ 33] // scaler post-conversion
  768. [vo/opengl-hq] [ 34] // color mapping
  769. [vo/opengl-hq] [ 35] color.rgb = clamp(color.rgb, 0.0, 1.0);
  770. [vo/opengl-hq] [ 36] color.rgb = pow(color.rgb, vec3(1.0/2.4));
  771. [vo/opengl-hq] [ 37] // dithering
  772. [vo/opengl-hq] [ 38] vec2 dither_pos = gl_FragCoord.xy / 64.0;
  773. [vo/opengl-hq] [ 39] float dither_value = texture(dither, dither_pos).r;
  774. [vo/opengl-hq] [ 40] color = floor(color * 255.0 + dither_value + 0.5 / 4096.0) / 255.0;
  775. [statusline] AV: 00:00:00 / 00:00:52 (0%) A-V: 0.000
  776. [cplayer] Run command: script-binding, flags=9, args=[osc/__keybinding1]
  777. [statusline] AV: 00:00:00 / 00:00:52 (0%) A-V: 0.000
  778. [cplayer] Run command: enable-section, flags=0, args=[input, ]
  779. [cplayer] Run command: script-binding, flags=9, args=[osc/__keybinding1]
  780. [statusline] AV: 00:00:00 / 00:00:52 (0%) A-V: 0.000
  781. [osd/libass] fontselect: (mpv-osd-symbols, 400, 0) -> mpv-osd-symbols-Regular, 0, mpv-osd-symbols-Regular
  782. [vo/opengl-hq] Reallocating OSD texture to 1024x512.
  783. [vo/opengl-hq] recompiling a shader program:
  784. [vo/opengl-hq] [ 1] // OSD (libass)
  785. [vo/opengl-hq] [ 2] color = vec4(ass_color.rgb, ass_color.a * texture(osdtex, texcoord).r);
  786. [vo/opengl-hq] [ 3] // color mapping
  787. [cplayer] Run command: script-binding, flags=9, args=[osc/__keybinding1]
  788. [statusline] AV: 00:00:00 / 00:00:52 (0%) A-V: 0.000
  789. [cplayer] Run command: script-binding, flags=9, args=[osc/__keybinding1]
  790. [statusline] AV: 00:00:00 / 00:00:52 (0%) A-V: 0.000
  791. [cplayer] Run command: script-binding, flags=9, args=[osc/__keybinding1]
  792. [statusline] AV: 00:00:00 / 00:00:52 (0%) A-V: 0.000
  793. [cplayer] Run command: script-binding, flags=9, args=[osc/__keybinding1]
  794. [statusline] AV: 00:00:00 / 00:00:52 (0%) A-V: 0.000
  795. [cplayer] Run command: script-binding, flags=9, args=[osc/__keybinding1]
  796. [statusline] AV: 00:00:00 / 00:00:52 (0%) A-V: 0.000
  797. [cplayer] Run command: script-binding, flags=9, args=[osc/__keybinding1]
  798. [statusline] AV: 00:00:00 / 00:00:52 (1%) A-V: 0.000
  799. [cplayer] Run command: script-binding, flags=9, args=[osc/__keybinding1]
  800. [statusline] AV: 00:00:00 / 00:00:52 (1%) A-V: 0.000 Dropped: 1
  801. [cplayer] Run command: script-binding, flags=9, args=[osc/__keybinding1]
  802. [cplayer] Run command: script-binding, flags=9, args=[osc/__keybinding2]
  803. [statusline] AV: 00:00:00 / 00:00:52 (1%) A-V: 0.000 Dropped: 2
  804. [cplayer] Run command: disable-section, flags=0, args=[input]
  805. [statusline] AV: 00:00:01 / 00:00:52 (2%) A-V: 0.000 Dropped: 3
  806. [cplayer] Run command: script-binding, flags=9, args=[osc/__keybinding1]
  807. [statusline] AV: 00:00:01 / 00:00:52 (2%) A-V: 0.000 Dropped: 3
  808. [cplayer] Run command: script-binding, flags=9, args=[osc/__keybinding1]
  809. [statusline] AV: 00:00:01 / 00:00:52 (2%) A-V: 0.000 Dropped: 3
  810. [cplayer] Run command: enable-section, flags=0, args=[input, ]
  811. [cplayer] Run command: script-binding, flags=9, args=[osc/__keybinding2]
  812. [statusline] AV: 00:00:01 / 00:00:52 (2%) A-V: 0.000 Dropped: 4
  813. [cplayer] Run command: disable-section, flags=0, args=[input]
  814. [statusline] AV: 00:00:02 / 00:00:52 (5%) A-V: 0.000 Dropped: 9
  815. [cplayer] Run command: quit, flags=9, args=[0]
  816. [cplayer] EOF code: 6
  817. [ad] Uninit audio decoder.
  818. [af] Removing filter lavrresample
  819. [vd] Uninit video.
  820. [cplayer] finished playback, success (reason 3)
  821. [cplayer]
  822. [cplayer]
  823. [cplayer] Exiting... (Quit)
  824. [ytdl_hook] Exiting...
  825. [osc] Exiting...
  826. [ao/pulse] draining...
  827. [vo/opengl-hq] flushing shader cache
  828. [vo/opengl-hq/x11] Enabling screensaver.
  829. [vo/opengl-hq/x11] uninit ...
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement