This file is indexed.

/usr/include/avifile-0.7/renderer.h is in libavifile-0.7-dev 1:0.7.48~20090503.ds-19+b1.

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
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
#ifndef AVIFILE_RENDERER_H
#define AVIFILE_RENDERER_H

#include "avm_stl.h"
#include "image.h"
#include "subtitle.h"

AVM_BEGIN_NAMESPACE;

class IPlayerWidget;

/** Structure for describtion of video mode */
struct VideoMode
{
    /// width of the screen
    int width;
    /// height of the screen
    int height;
    /// vertical refresh frequency
    float freq;
    /// textual representation for this mode
    avm::string name;
    VideoMode(int w = 0, int h = 0, float f = 0.);
};


/**
 * Abstract interface for video rendering
 *
 *  One day we may support more renderers
 *  We do not want to have any XFree specific stuff here
 */
class IVideoRenderer : public IImageAllocator
{
public:
    enum Property {
	SYNC,
	REFRESH,
	FULLSCREEN,		// true - maximize with FULLSCREEN toggle
	DRAW_CIMAGE,		// CImage*
	DRAW_SUBTITLES,

	WINDOW_SIZE = 100,	// int* width, int* height
	WINDOW_POSITION,	// get*/set int* x, int* y
	WINDOW_CAPTION, 	// char*
	SUBTITLE_FONT,		// char*
	SUBTITLE_POSITION,	// get*/set int* y
	SUBTITLE_VISIBLE,
	VIDEO_MODES,		// avm::vector<VideoMode> - list of video modes
	VIDEO_OVERLAYS,		// avm::vector<fcctype_t> - list of overlay

	LAST
    };
    enum Cursor {
	NORMAL,
	ZOOMLU,
	ZOOMRB
    };
    /**
     * Allow YUV renderer to use software YUV->RGB conversion
     * ( slow, only for testing purposes )
     * SDL has very fast implementation - used now
     */
    static bool allow_sw_yuv;

    virtual ~IVideoRenderer() {}

    // possible new interface???
    virtual int Set(...)					= 0;
    virtual int Get(...) const					= 0;
#if 1

    /**
     * Issues the request to draw the image in the window memory
     * might be empty when direct rendering is being used
     */
    virtual int Draw(const CImage* data)			= 0;
    /**
     * Draws a line of subtitles below the picture.
     */
    virtual int DrawSubtitles(const subtitle_line_t* sl) { return -1; }
    /**
     * Returns actual size of the rendered image
     */
    virtual int GetSize(int& width, int& height) const	{ return -1; }
    /**
     * Returns actual x, y coordinates of the window.
     */
    virtual int GetPosition(int& x, int& y) const	{ return -1; }
    /**
     * Returns available video modes
     */
    virtual const avm::vector<VideoMode>& GetVideoModes() const	= 0;
    /**
     * Returns runtime configurable parameters
     */
    virtual IRtConfig* GetRtConfig() const { return 0; }
    /**
     * Called to blit image on the screen
     */
    virtual int Sync()						= 0;
    /**
     * Redraws image (resize, move with pause)
     */
    virtual int Refresh()					= 0;
    /**
     * Resizes renderer window and stretch the image in it.
     */
    virtual int Resize(int& new_w, int& new_h)		{ return -1; }
    /**
     * Set window titlebar
     * \param title window title name
     * \param icon  pathname to icon of the window
     */
    virtual int SetCaption(const char* title, const char* icon) { return -1; }
    /**
     * Set font for subtitle
     */
    virtual int SetFont(const char* font)		{ return -1; }
    /**
     * Set window position
     * \param x coordinate
     * \param y coordinate
     */
    virtual int SetPosition(int x, int y)		{ return -1; }
    /**
     * Toggle on/off fullscreen mode. maximize=true means that
     * renderer should stretch the picture to dimensions of 
     * screen when going fullscreen without changing screen mode.
     */
    virtual int ToggleFullscreen(bool maximize = false)	{ return -1; }
    /**
     * Pick area in the image which is displayed in the given window
     * \param x  coordinate for the begining of zoomed area
     * \param y  coordinate for the begining of zoomed area
     * \param width width of zoomed area (0 disables zooming)
     * \param height height of zoomed area (0 disables zooming)
     */
    virtual int Zoom(int x, int y, int width, int height) { return -1; }
    virtual int SetCursor(Cursor cursor) { return -1; }
#endif
    virtual int Lock() const = 0;
    virtual int TryLock() const = 0;
    virtual int Unlock() const = 0;
};

#ifndef X_DISPLAY_MISSING
/**
 * Creates SDL video renderer for RGB data in current depth of
 * display from 2nd argument. Last argument specifies whether
 * this renderer should reserve place for subtitles or not.
 */
AVMEXPORT IVideoRenderer* CreateFullscreenRenderer(IPlayerWidget*, void* dpy,
					int width, int height, bool sub = false);
/**
 * Creates SDL video renderer for YUV data in format yuv_fmt.
 * If it fails ( e.g. because yuv_fmt is not supported by X server
 * and VideoRenderer::allow_sw_yuv==false ), returns pointer to
 * 'ordinary' fullscreen renderer and puts 0 into yuv_fmt.
 */    
AVMEXPORT IVideoRenderer* CreateYUVRenderer(IPlayerWidget*, void* dpy,
				 int width, int height,
				 fourcc_t yuv_fmt, bool sub = false);
/*
VideoRenderer* CreateXvYUVRenderer(PlayerWidget*, void* dpy,
				   int width, int height,
				   fourcc_t yuv_fmt, bool sub = false);
 */
/**
 * Function that returns actual bit depth of specified X display.
 * Should be used instead of any other functions with similar
 * purpose ( DefaultDepth(), x11Depth() in Qt ) when determining
 * bit depth of data to pass to renderer.
 */
AVMEXPORT int GetPhysicalDepth(void* dpy);

#else
static inline int GetPhysicalDepth(void* dpy) { return 0; }
#endif // X_DISPLAY_MISSING

AVM_END_NAMESPACE;

#ifdef AVM_COMPATIBLE
typedef avm::VideoMode VideoMode;
typedef avm::IVideoRenderer VideoRenderer;

#ifndef X_DISPLAY_MISSING
static inline VideoRenderer* CreateFullscreenRenderer(avm::IPlayerWidget* pw, void* dpy,
						      int width, int height, bool sub = false)
{
    return avm::CreateFullscreenRenderer(pw, dpy, width, height, sub);
}

static inline VideoRenderer* CreateYUVRenderer(avm::IPlayerWidget* pw, void* dpy,
					       int width, int height,
					       fourcc_t yuv_fmt, bool sub = false)
{
    return avm::CreateYUVRenderer(pw, dpy, width, height, yuv_fmt, sub);
}

#endif // X_DISPLAY_MISSING

static inline int GetPhysicalDepth(void* dpy) { return avm::GetPhysicalDepth(dpy); }
#endif // AVM_COMPATIBLE

#endif // AVIFILE_RENDERER_H