This file is indexed.

/usr/share/movit/ycbcr_conversion_effect.frag is in libmovit5 1.4.0-1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
// See footer.frag for details about this if statement.
#ifndef YCBCR_ALSO_OUTPUT_RGBA
#define YCBCR_ALSO_OUTPUT_RGBA 0
#endif

uniform sampler2D PREFIX(tex_y);
uniform sampler2D PREFIX(tex_cb);
uniform sampler2D PREFIX(tex_cr);

#if YCBCR_ALSO_OUTPUT_RGBA
vec4[2] FUNCNAME(vec2 tc) {
#else
vec4 FUNCNAME(vec2 tc) {
#endif
	vec4 rgba = INPUT(tc);
	vec4 ycbcr_a;

	ycbcr_a.rgb = PREFIX(ycbcr_matrix) * rgba.rgb + PREFIX(offset);

#if YCBCR_CLAMP_RANGE
	// If we use limited-range Y'CbCr, the card's usual 0–255 clamping
	// won't be enough, so we need to clamp ourselves here.
	//
	// We clamp before dither, which is a bit unfortunate, since
	// it means dither can take us out of the clamped range again.
	// However, since DitherEffect never adds enough dither to change
	// the quantized levels, we will be fine in practice.
	ycbcr_a.rgb = clamp(ycbcr_a.rgb, PREFIX(ycbcr_min), PREFIX(ycbcr_max));
#endif

	ycbcr_a.a = rgba.a;

#if YCBCR_ALSO_OUTPUT_RGBA
	return vec4[2](ycbcr_a, rgba);
#else
	return ycbcr_a;
#endif
}