This file is indexed.

/usr/include/obs/obs-scene.h is in libobs-dev 21.0.2+dfsg1-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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
/******************************************************************************
    Copyright (C) 2013 by Hugh Bailey <obs.jim@gmail.com>

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 2 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
******************************************************************************/

#pragma once

#include "obs.h"
#include "obs-internal.h"
#include "graphics/matrix4.h"

/* how obs scene! */

struct item_action {
	bool visible;
	uint64_t timestamp;
};

struct obs_scene_item {
	volatile long         ref;
	volatile bool         removed;

	int64_t               id;

	struct obs_scene      *parent;
	struct obs_source     *source;
	volatile long         active_refs;
	volatile long         defer_update;
	bool                  user_visible;
	bool                  visible;
	bool                  selected;
	bool                  locked;

	gs_texrender_t        *item_render;
	struct obs_sceneitem_crop crop;

	struct vec2           pos;
	struct vec2           scale;
	float                 rot;
	uint32_t              align;

	/* last width/height of the source, this is used to check whether
	 * the transform needs updating */
	uint32_t              last_width;
	uint32_t              last_height;

	struct vec2           output_scale;
	enum obs_scale_type   scale_filter;

	struct matrix4        box_transform;
	struct matrix4        draw_transform;

	enum obs_bounds_type  bounds_type;
	uint32_t              bounds_align;
	struct vec2           bounds;

	obs_hotkey_pair_id    toggle_visibility;

	obs_data_t            *private_settings;

	pthread_mutex_t       actions_mutex;
	DARRAY(struct item_action) audio_actions;

	/* would do **prev_next, but not really great for reordering */
	struct obs_scene_item *prev;
	struct obs_scene_item *next;
};

struct obs_scene {
	struct obs_source     *source;

	int64_t               id_counter;

	pthread_mutex_t       video_mutex;
	pthread_mutex_t       audio_mutex;
	struct obs_scene_item *first_item;
};