This file is indexed.

/usr/include/avifile-0.7/subtitle.h is in libavifile-0.7-dev 1:0.7.48~20090503.ds-18.

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
#ifndef AVIFILE_SUBTITLE_H
#define AVIFILE_SUBTITLE_H

/**
 * subtitle is plain C library - usable outside of avifile
 *
 * All subtitle lines are internally stored in UTF-8 format
 * (iconv is used for conversion and must be present for this)
 */

/** Maximum supported number of lines which may compose one subtitle */
#define SUBTITLE_MAX_LINES 5

#if defined(__cplusplus)
extern "C" {
#endif

/**
 * Types of recognized subtitles
 * with a short example of such subtitle line
 */
typedef struct __subtitles_s subtitles_t;

typedef enum
{
    /** \internal */
    SUBTITLE_UNSELECTED,
    /**
     * .SUB
     * {123}{345} text
     */
    SUBTITLE_MICRODVD,
    /**
     * .SRT
     * 123
     * 1:23:55.125 --> 1:24:00.275
     */
    SUBTITLE_SUBRIP,
    /**
     * 1:23:55
     * text
     */
    SUBTITLE_VPLAYER,
    SUBTITLE_AQT,
    SUBTITLE_SAMI,
    /**
     * 1:23:55.125,1:24:00.275
     * text
     */
    SUBTITLE_SUBVIEWER,
    SUBTITLE_MPSUB,		/* mplayer's format of subtitles */
    SUBTITLE_LAST
} subtitle_t;

typedef struct subtitle_line_t
{
    /** how many text lines are in this subtitle element */
    unsigned int lines;
    /** starting time for display  (time in 1/1000s = 1ms) */
    unsigned int start;
    /** ending time for display  (time in 1/1000s = 1ms) */
    unsigned int end;
    /** pointers to individual subtitle lines */
    char* line[SUBTITLE_MAX_LINES];
} subtitle_line_t;

/**
 * tries to open subtitle for the given filename
 * \returns  file descriptor
 */
int subtitle_filename(const char* filename, char** opened_filename);

/**
 * Opens subtiles from a given filename
 *
 * \param fd  file descriptor with opened file with subtitles
 * \param fps frame per seconds (needed for some subtitles types
 * \param codepage  when NULL default system codepage is used
 */
subtitles_t* subtitle_open(int fd, double fps, const char* codepage);
/**
 * Closes and destroys array of subtitles
 * \param subset  array of subtitles for freeing
 *
 * \warning after calling this function the subset array could no longer
 * be accessed as all the memory allocated by this structure has been
 * released
 */
void subtitle_close(subtitles_t* subs);
void subtitle_set_fps(subtitles_t*, double fps);
/** Returns number of lines in the subtitle array */
unsigned int subtitle_get_lines(subtitles_t*);
/** Returns type of subtitles */
subtitle_t subtitle_get_type(subtitles_t*, const char**);
/**
 * Copies subtitle into given subtitle_line_t pointer
 * It will check first if the line isn't already copied
 * returns true if subtitle is found
 */
int subtitle_get(subtitle_line_t*, subtitles_t*, double timepos);
/**
 * Check if two subtitles are equal
 * checking linecount & start,end pos (text is not being compared!)
 */
int subtitle_line_equals(const subtitle_line_t*, const subtitle_line_t*);
/** creates new empty subtitle line */
subtitle_line_t* subtitle_line_new(void);
/** duplicates one subtitle line */
subtitle_line_t* subtitle_line_copy(const subtitle_line_t*);
/** free allocated subtitle line (obtained with subtitle_line_copy) */
void subtitle_line_free(subtitle_line_t*);

/**
 * write subtitles to file
 */
int subtitle_write(const subtitles_t* st, const char* filename, subtitle_t type);

/*
 might be implemented later

 write
 update
 insert
 delete
 */

/*
 * private structure currently kept here
 */
struct __subtitles_s
{
    /*
     * never accessed directly
     * use suplied functions to manipulate subtitle array
     */
    int fd;
    subtitle_t type;
    unsigned int allocated;
    unsigned int count;
    int frame_based; /* if subtitles use frame number */
    int time_diff;
    double fps;
    char* encoding;  /* original encoding */
    char* out_encoding; /* for write */
    subtitle_line_t* subtitle;
};

#if defined(__cplusplus)
}
#endif

#endif // AVIFILE_SUBTITLE_H