This file is indexed.

/usr/include/mjpegtools/mplex/videostrm.hpp is in libmjpegtools-dev 1:2.1.0+debian-5.

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
/*
 *  videostrm.hpp:  Video stream elementary input stream
 *
 *  Copyright (C) 2001 Andrew Stevens <andrew.stevens@philips.com>
 *
 *
 *  This program is free software; you can redistribute it and/or
 *  modify it under the terms of version 2 of the GNU General Public License
 *  as published by the Free Software Foundation.
 *
 *  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, write to the Free Software
 *  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 */

#ifndef __VIDEOSTRM_H__
#define __VIDEOSTRM_H__

#include "inputstrm.hpp"
#include "interact.hpp"
#include "stream_params.hpp"

class VideoStream : public ElementaryStream
{
public:
	VideoStream(IBitStream &ibs, VideoParams *parms, 
                Multiplexor &into);
	void Init( const int stream_num );

    static bool Probe(IBitStream &bs );

	void Close();

    inline int DecoderOrder() { return au->dorder; }
	inline int AUType()	{ return au->type; }

    bool SeqEndRunOut();

    const AUnit *NextIFrame();


	inline int NextAUType()
		{
			AUnit *p_au = Lookahead();
			if( p_au != 0 )
				return p_au->type;
			else
				return NOFRAME;
		}


	virtual unsigned int NominalBitRate() 
		{ 
			return bit_rate * 400;
		}

    virtual void OutputGOPControlSector();
	bool RunOutComplete();
	virtual bool MuxPossible(clockticks currentSCR);
    virtual void AUMuxed( bool first_in_sector ) ;

    void SetMaxStdBufferDelay( unsigned int demux_rate );
	void OutputSector();
    inline double FrameRate() const { return frame_rate; }


protected:
    static const unsigned int MAX_GOP_LENGTH = 128;
	void OutputSeqhdrInfo();
	virtual void FillAUbuffer(unsigned int frames_to_buffer);
	virtual void NextDTSPTS(  );
	void ScanFirstSeqHeader();
    uint8_t NewAUTimestamps( int AUtype );
    bool NewAUBuffers( int AUtype );

    unsigned int ExcludeNextIFramePayload();

public:	
    unsigned int num_sequence 	;
    unsigned int num_seq_end	;
    unsigned int num_pictures 	;
    unsigned int num_groups 	;
    unsigned int num_frames[4] 	;
         int64_t avg_frames[4]  ;
    
    unsigned int horizontal_size;
    unsigned int vertical_size 	;
     unsigned int aspect_ratio	;
    unsigned int picture_rate	;
    unsigned int bit_rate 	;
    unsigned int vbv_buffer_size;
    unsigned int CSPF 		;
    double secs_per_frame;

	
	bool dtspts_for_all_au;     // Ensure every AU has a timestamp 
                                // (no two AU can start in one sector)
    bool gop_control_packet;

protected:


	/* State variables for scanning source bit-stream */
    AUnit access_unit;
	int fields_presented;
    int group_start_pic;
	int group_start_field;
    int group_start_SCR;
    int temporal_reference;
    unsigned int pict_struct;
	int pulldown_32;
	int repeat_first_field;
	int prev_temp_ref;
    int ref_present;
    int prev_ref_present;
    double frame_rate;
	double max_bits_persec;
	int AU_pict_data;
	int AU_hdr;
    clockticks max_STD_buffer_delay;
    VideoParams *parms;
}; 	

//
// DVD's generate control sectors for each GOP...
//

class DVDVideoStream : public VideoStream
{
public:
	DVDVideoStream(IBitStream &ibs,VideoParams *parms,Multiplexor &into) : 
        VideoStream( ibs, parms, into )
        {
            gop_control_packet = true;
        }
    void OutputGOPControlSector();  
};

#endif // __INPUTSTRM_H__


/* 
 * Local variables:
 *  c-file-style: "stroustrup"
 *  tab-width: 4
 *  indent-tabs-mode: nil
 * End:
 */