historical/toontown-classic.git/panda/pandac/input/libp3movies.in

1558 lines
61 KiB
Text
Raw Normal View History

2024-01-16 11:20:27 -06:00
1565844211
3 3
11 libp3movies 4 Aas2 12 panda3d.core
93
104 37 upcast_to_TypedWritableReferenceCount 0 12 197 49 MovieAudio::upcast_to_TypedWritableReferenceCount 0 1 7 53
upcast from MovieAudio to TypedWritableReferenceCount
85
TypedWritableReferenceCount *MovieAudio::upcast_to_TypedWritableReferenceCount(void);
105 22 downcast_to_MovieAudio 0 12 198 51 TypedWritableReferenceCount::downcast_to_MovieAudio 0 0 55
downcast from TypedWritableReferenceCount to MovieAudio
70
MovieAudio *TypedWritableReferenceCount::downcast_to_MovieAudio(void);
106 17 upcast_to_Namable 0 12 197 29 MovieAudio::upcast_to_Namable 0 1 8 33
upcast from MovieAudio to Namable
45
Namable *MovieAudio::upcast_to_Namable(void);
107 22 downcast_to_MovieAudio 0 12 199 31 Namable::downcast_to_MovieAudio 0 0 35
downcast from Namable to MovieAudio
50
MovieAudio *Namable::downcast_to_MovieAudio(void);
108 10 MovieAudio 0 4 197 22 MovieAudio::MovieAudio 0 2 1 2 200
/**
* This constructor returns a null audio stream --- a stream of total silence,
* at 8000 samples per second. To get more interesting audio, you need to
* construct a subclass of this class.
*/
134
explicit MovieAudio::MovieAudio(std::string const &name = "Blank Audio");
inline MovieAudio::MovieAudio(MovieAudio const &) = default;
109 11 ~MovieAudio 0 6 197 23 MovieAudio::~MovieAudio 0 0 10
/**
*
*/
38
virtual MovieAudio::~MovieAudio(void);
110 4 open 0 6 197 16 MovieAudio::open 0 1 3 56
/**
* Open this audio, returning a MovieAudioCursor
*/
61
virtual PointerTo< MovieAudioCursor > MovieAudio::open(void);
111 3 get 0 4 197 15 MovieAudio::get 0 1 4 103
/**
* Obtains a MovieAudio that references a file. Just calls
* MovieTypeRegistry::make_audio().
*/
69
static PointerTo< MovieAudio > MovieAudio::get(Filename const &name);
112 12 get_filename 0 4 197 24 MovieAudio::get_filename 0 1 5 142
/**
* Returns the movie's filename. A movie is not guaranteed to have a
* filename, if not, then this function returns a null filename.
*/
60
inline Filename const &MovieAudio::get_filename(void) const;
113 14 get_class_type 0 4 197 26 MovieAudio::get_class_type 0 1 6 0
51
static TypeHandle MovieAudio::get_class_type(void);
114 9 FlacAudio 0 4 202 20 FlacAudio::FlacAudio 0 2 9 10 14
/**
* xxx
*/
101
FlacAudio::FlacAudio(Filename const &name);
inline FlacAudio::FlacAudio(FlacAudio const &) = default;
115 4 make 0 4 202 15 FlacAudio::make 0 1 11 55
/**
* Obtains a MovieAudio that references a file.
*/
69
static PointerTo< MovieAudio > FlacAudio::make(Filename const &name);
116 14 get_class_type 0 4 202 25 FlacAudio::get_class_type 0 1 12 0
50
static TypeHandle FlacAudio::get_class_type(void);
117 16 MovieAudioCursor 0 4 203 34 MovieAudioCursor::MovieAudioCursor 0 2 13 14 200
/**
* This constructor returns a null audio stream --- a stream of total silence,
* at 8000 samples per second. To get more interesting audio, you need to
* construct a subclass of this class.
*/
131
MovieAudioCursor::MovieAudioCursor(MovieAudio *src);
inline MovieAudioCursor::MovieAudioCursor(MovieAudioCursor const &) = default;
118 10 get_source 0 4 203 28 MovieAudioCursor::get_source 0 1 15 63
/**
* Returns the MovieAudio which this cursor references.
*/
72
inline PointerTo< MovieAudio > MovieAudioCursor::get_source(void) const;
119 10 audio_rate 0 4 203 28 MovieAudioCursor::audio_rate 0 1 16 41
/**
* Returns the audio sample rate.
*/
52
inline int MovieAudioCursor::audio_rate(void) const;
120 14 audio_channels 0 4 203 32 MovieAudioCursor::audio_channels 0 1 17 83
/**
* Returns the number of audio channels (ie, two for stereo, one for mono).
*/
56
inline int MovieAudioCursor::audio_channels(void) const;
121 6 length 0 4 203 24 MovieAudioCursor::length 0 1 18 742
/**
* Returns the length of the movie. Attempting to read audio samples beyond
* the specified length will produce silent samples.
*
* Some kinds of Movie, such as internet TV station, might not have a
* predictable length. In that case, the length will be set to a very large
* number: 1.0E10.
*
* Some AVI files have incorrect length values encoded into them - they may be
* a second or two long or short. When playing such an AVI using the Movie
* class, you may see a slightly truncated video, or a slightly elongated
* video (padded with black frames). There are utilities out there to fix the
* length values in AVI files.
*
* An audio consumer needs to check the length, the ready status, and the
* aborted flag.
*/
51
inline double MovieAudioCursor::length(void) const;
122 8 can_seek 0 4 203 26 MovieAudioCursor::can_seek 0 1 19 429
/**
* Returns true if the movie can seek. If this is true, seeking is still not
* guaranteed to be fast: for some movies, seeking is implemented by rewinding
* to the beginning and then fast-forwarding to the desired location. Even if
* the movie cannot seek, the seek method can still advance to an arbitrary
* location by reading samples and discarding them. However, to move
* backward, can_seek must return true.
*/
51
inline bool MovieAudioCursor::can_seek(void) const;
123 13 can_seek_fast 0 4 203 31 MovieAudioCursor::can_seek_fast 0 1 20 61
/**
* Returns true if seek operations are constant time.
*/
56
inline bool MovieAudioCursor::can_seek_fast(void) const;
124 4 tell 0 4 203 22 MovieAudioCursor::tell 0 1 21 54
/**
* Returns the current offset within the file.
*/
49
inline double MovieAudioCursor::tell(void) const;
125 12 skip_samples 0 4 203 30 MovieAudioCursor::skip_samples 0 1 22 86
/**
* Skip audio samples from the stream. This is mostly for debugging purposes.
*/
50
inline void MovieAudioCursor::skip_samples(int n);
126 7 aborted 0 4 203 25 MovieAudioCursor::aborted 0 1 23 138
/**
* If aborted is true, it means that the "ready" samples are not being
* replenished. See the method "ready" for an explanation.
*/
50
inline bool MovieAudioCursor::aborted(void) const;
127 5 ready 0 6 203 23 MovieAudioCursor::ready 0 1 24 1120
/**
* Returns the number of audio samples that are ready to read. This is
* primarily relevant for sources like microphones which produce samples at a
* fixed rate. If you try to read more samples than are ready, the result
* will be silent samples.
*
* Some audio streams do not have a limit on how fast they can produce
* samples. Such streams will always return 0x40000000 as the ready-count.
* This may well exceed the length of the audio stream. You therefore need to
* check length separately.
*
* If the aborted flag is set, that means the ready count is no longer being
* replenished. For example, a MovieAudioCursor might be reading from an
* internet radio station, and it might buffer data to avoid underruns. If it
* loses connection to the radio station, it will set the aborted flag to
* indicate that the buffer is no longer being replenished. But it is still
* ok to read the samples that are in the buffer, at least until they run out.
* Once those are gone, there will be no more.
*
* An audio consumer needs to check the length, the ready status, and the
* aborted flag.
*/
48
virtual int MovieAudioCursor::ready(void) const;
128 4 seek 0 6 203 22 MovieAudioCursor::seek 0 1 25 746
/**
* Skips to the specified offset within the file.
*
* If the movie reports that it cannot seek, then this method can still
* advance by reading samples and discarding them. However, to move backward,
* can_seek must be true.
*
* If the movie reports that it can_seek, it doesn't mean that it can do so
* quickly. It may have to rewind the movie and then fast forward to the
* desired location. Only if can_seek_fast returns true can seek operations
* be done in constant time.
*
* Seeking may not be precise, because AVI files often have inaccurate
* indices. After seeking, tell will indicate that the cursor is at the
* target location. However, in truth, the data you read may come from a
* slightly offset location.
*/
51
virtual void MovieAudioCursor::seek(double offset);
129 12 read_samples 0 4 203 30 MovieAudioCursor::read_samples 0 2 26 27 798
/**
* Read audio samples from the stream. N is the number of samples you wish to
* read. Your buffer must be equal in size to N * channels. Multiple-channel
* audio will be interleaved.
*/
/**
* Read audio samples from the stream into a Datagram. N is the number of
* samples you wish to read. Multiple-channel audio will be interleaved.
*
* This is not particularly efficient, but it may be a convenient way to
* manipulate samples in python.
*/
/**
* Read audio samples from the stream and returns them as a string. The
* samples are stored little-endian in the string. N is the number of samples
* you wish to read. Multiple-channel audio will be interleaved.
*
* This is not particularly efficient, but it may be a convenient way to
* manipulate samples in python.
*/
109
void MovieAudioCursor::read_samples(int n, Datagram *dg);
vector_uchar MovieAudioCursor::read_samples(int n);
130 14 get_class_type 0 4 203 32 MovieAudioCursor::get_class_type 0 1 28 0
57
static TypeHandle MovieAudioCursor::get_class_type(void);
131 15 FlacAudioCursor 0 4 204 32 FlacAudioCursor::FlacAudioCursor 0 2 29 30 129
/**
* Reads the .wav header from the indicated stream. This leaves the read
* pointer positioned at the start of the data.
*/
156
explicit FlacAudioCursor::FlacAudioCursor(FlacAudio *src, std::istream *stream);
inline FlacAudioCursor::FlacAudioCursor(FlacAudioCursor const &) = default;
132 14 get_class_type 0 4 204 31 FlacAudioCursor::get_class_type 0 1 31 0
56
static TypeHandle FlacAudioCursor::get_class_type(void);
133 37 upcast_to_TypedWritableReferenceCount 0 12 205 49 MovieVideo::upcast_to_TypedWritableReferenceCount 0 1 39 53
upcast from MovieVideo to TypedWritableReferenceCount
85
TypedWritableReferenceCount *MovieVideo::upcast_to_TypedWritableReferenceCount(void);
134 22 downcast_to_MovieVideo 0 12 198 51 TypedWritableReferenceCount::downcast_to_MovieVideo 0 0 55
downcast from TypedWritableReferenceCount to MovieVideo
70
MovieVideo *TypedWritableReferenceCount::downcast_to_MovieVideo(void);
135 17 upcast_to_Namable 0 12 205 29 MovieVideo::upcast_to_Namable 0 1 40 33
upcast from MovieVideo to Namable
45
Namable *MovieVideo::upcast_to_Namable(void);
136 22 downcast_to_MovieVideo 0 12 199 31 Namable::downcast_to_MovieVideo 0 0 35
downcast from Namable to MovieVideo
50
MovieVideo *Namable::downcast_to_MovieVideo(void);
137 10 MovieVideo 0 4 205 22 MovieVideo::MovieVideo 0 2 32 33 212
/**
* This constructor returns a null video stream --- a stream of plain blue and
* white frames that last one second each. To get more interesting video, you
* need to construct a subclass of this class.
*/
125
MovieVideo::MovieVideo(std::string const &name = "Blank Video");
inline MovieVideo::MovieVideo(MovieVideo const &) = default;
138 11 ~MovieVideo 0 6 205 23 MovieVideo::~MovieVideo 0 0 10
/**
*
*/
38
virtual MovieVideo::~MovieVideo(void);
139 4 open 0 6 205 16 MovieVideo::open 0 1 34 107
/**
* Open this video, returning a MovieVideoCursor of the appropriate type.
* Returns NULL on error.
*/
61
virtual PointerTo< MovieVideoCursor > MovieVideo::open(void);
140 3 get 0 4 205 15 MovieVideo::get 0 1 35 103
/**
* Obtains a MovieVideo that references a file. Just calls
* MovieTypeRegistry::make_video().
*/
69
static PointerTo< MovieVideo > MovieVideo::get(Filename const &name);
141 12 get_filename 0 4 205 24 MovieVideo::get_filename 0 1 36 144
/**
* Returns the movie's filename. A movie is not guaranteed to have a
* filename, if not, then this function returns an empty filename.
*/
60
inline Filename const &MovieVideo::get_filename(void) const;
142 16 get_subfile_info 0 4 205 28 MovieVideo::get_subfile_info 0 1 37 150
/**
* If the movie is to be loaded from a subfile on disk, this returns the
* subfile info. Check info.is_empty() to see if this is valid data.
*/
67
inline SubfileInfo const &MovieVideo::get_subfile_info(void) const;
143 14 get_class_type 0 4 205 26 MovieVideo::get_class_type 0 1 38 0
51
static TypeHandle MovieVideo::get_class_type(void);
144 12 InkblotVideo 0 4 208 26 InkblotVideo::InkblotVideo 0 2 41 42 14
/**
* xxx
*/
126
explicit InkblotVideo::InkblotVideo(int x, int y, int fps);
inline InkblotVideo::InkblotVideo(InkblotVideo const &) = default;
145 14 get_class_type 0 4 208 28 InkblotVideo::get_class_type 0 1 43 0
53
static TypeHandle InkblotVideo::get_class_type(void);
146 10 get_source 0 4 209 28 MovieVideoCursor::get_source 0 1 45 59
/**
* Get the MovieVideo which this cursor references.
*/
65
PointerTo< MovieVideo > MovieVideoCursor::get_source(void) const;
147 6 size_x 0 4 209 24 MovieVideoCursor::size_x 0 1 46 48
/**
* Get the horizontal size of the movie.
*/
48
inline int MovieVideoCursor::size_x(void) const;
148 6 size_y 0 4 209 24 MovieVideoCursor::size_y 0 1 47 46
/**
* Get the vertical size of the movie.
*/
48
inline int MovieVideoCursor::size_y(void) const;
149 18 get_num_components 0 4 209 36 MovieVideoCursor::get_num_components 0 1 48 68
/**
* Returns 4 if the movie has an alpha channel, 3 otherwise.
*/
60
inline int MovieVideoCursor::get_num_components(void) const;
150 6 length 0 4 209 24 MovieVideoCursor::length 0 1 49 1170
/**
* Returns the length of the movie.
*
* Some kinds of Movie, such as internet TV station, might not have a
* predictable length. In that case, the length will be set to a very large
* number: 1.0E10. If the internet TV station goes offline, the video or audio
* stream will set its abort flag. Reaching the end of the movie (ie, the
* specified length) normally does not cause the abort flag to be set.
*
* The video and audio streams produced by get_video and get_audio are always
* of unlimited duration - you can always read another video frame or another
* audio sample. This is true even if the specified length is reached, or an
* abort is flagged. If either stream runs out of data, it will synthesize
* blank video frames and silent audio samples as necessary to satisfy read
* requests.
*
* Some AVI files have incorrect length values encoded into them - usually,
* they're a second or two long or short. When playing such an AVI using the
* Movie class, you may see a slightly truncated video, or a slightly
* elongated video (padded with black frames). There are utilities out there
* to fix the length values in AVI files.
*
*/
51
inline double MovieVideoCursor::length(void) const;
151 8 can_seek 0 4 209 26 MovieVideoCursor::can_seek 0 1 50 430
/**
* Returns true if the movie can seek. If this is true, seeking is still not
* guaranteed to be fast: for some movies, seeking is implemented by rewinding
* to the beginning and then fast-forwarding to the desired location. Even if
* the movie cannot seek, the fetch methods can still advance to an arbitrary
* location by reading frames and discarding them. However, to move backward,
* can_seek must return true.
*/
51
inline bool MovieVideoCursor::can_seek(void) const;
152 13 can_seek_fast 0 4 209 31 MovieVideoCursor::can_seek_fast 0 1 51 61
/**
* Returns true if seek operations are constant time.
*/
56
inline bool MovieVideoCursor::can_seek_fast(void) const;
153 7 aborted 0 4 209 25 MovieVideoCursor::aborted 0 1 52 260
/**
* Returns true if the video has aborted prematurely. For example, this could
* occur if the Movie was actually an internet TV station, and the connection
* was lost. Reaching the normal end of the video does not constitute an
* 'abort' condition.
*/
50
inline bool MovieVideoCursor::aborted(void) const;
154 5 ready 0 4 209 23 MovieVideoCursor::ready 0 1 53 156
/**
* Returns true if the cursor is a streaming source, and if a video frame is
* ready to be read. For non- streaming sources, this is always false.
*/
48
inline bool MovieVideoCursor::ready(void) const;
155 9 streaming 0 4 209 27 MovieVideoCursor::streaming 0 1 54 528
/**
* Returns true if the video frames are being "pushed" at us by something that
* operates at its own speed - for example, a webcam. In this case, the
* frames come when they're ready to come. Attempting to read too soon will
* produce nothing, reading too late will cause frames to be dropped. In this
* case, the ready flag can be used to determine whether or not a frame is
* ready for reading.
*
* When streaming, you should still pay attention to last_start, but the value
* of next_start is only a guess.
*/
52
inline bool MovieVideoCursor::streaming(void) const;
156 13 setup_texture 0 4 209 31 MovieVideoCursor::setup_texture 0 1 55 130
/**
* Set up the specified Texture object to contain content from this movie.
* This should be called once, not every frame.
*/
57
void MovieVideoCursor::setup_texture(Texture *tex) const;
157 8 set_time 0 6 209 26 MovieVideoCursor::set_time 0 1 56 850
/**
* Updates the cursor to the indicated time. If loop_count >= 1, the time is
* clamped to the movie's length * loop_count. If loop_count <= 0, the time
* is understood to be modulo the movie's length.
*
* Returns true if a new frame is now available, false otherwise. If this
* returns true, you should immediately follow this with exactly *one* call to
* fetch_buffer().
*
* If the movie reports that it can_seek, you may also specify a time value
* less than the previous value you passed to set_time(). Otherwise, you may
* only specify a time value greater than or equal to the previous value.
*
* If the movie reports that it can_seek, it doesn't mean that it can do so
* quickly. It may have to rewind the movie and then fast forward to the
* desired location. Only if can_seek_fast returns true can it seek rapidly.
*/
74
virtual bool MovieVideoCursor::set_time(double timestamp, int loop_count);
158 17 compare_timestamp 0 6 210 43 MovieVideoCursor::Buffer::compare_timestamp 0 1 63 335
/**
* Used to sort different buffers to ensure they correspond to the same source
* frame, particularly important when synchronizing the different pages of a
* multi-page texture.
*
* Returns 0 if the two buffers are of the same frame, <0 if this one comes
* earlier than the other one, and >0 if the other one comes earlier.
*/
101
virtual int MovieVideoCursor::Buffer::compare_timestamp(MovieVideoCursor::Buffer const *other) const;
159 13 get_timestamp 0 6 210 39 MovieVideoCursor::Buffer::get_timestamp 0 1 64 236
/**
* Returns the nearest timestamp value of this particular buffer. Ideally,
* MovieVideoCursor::set_time() for this timestamp would return this buffer
* again. This need be defined only if compare_timestamp() is also defined.
*/
67
virtual double MovieVideoCursor::Buffer::get_timestamp(void) const;
160 14 get_class_type 0 4 210 40 MovieVideoCursor::Buffer::get_class_type 0 1 65 0
65
static TypeHandle MovieVideoCursor::Buffer::get_class_type(void);
161 6 Buffer 0 4 210 32 MovieVideoCursor::Buffer::Buffer 0 1 62 10
/**
*
*/
84
inline MovieVideoCursor::Buffer::Buffer(MovieVideoCursor::Buffer const &) = default;
162 12 fetch_buffer 0 6 209 30 MovieVideoCursor::fetch_buffer 0 1 57 331
/**
* Gets the current video frame (as specified by set_time()) from the movie
* and returns it in a pre-allocated buffer. You may simply let the buffer
* dereference and delete itself when you are done with it.
*
* This may return NULL (even if set_time() returned true) if the frame is not
* available for some reason.
*/
83
virtual PointerTo< MovieVideoCursor::Buffer > MovieVideoCursor::fetch_buffer(void);
163 16 apply_to_texture 0 6 209 34 MovieVideoCursor::apply_to_texture 0 1 58 66
/**
* Stores this buffer's contents in the indicated texture.
*/
110
virtual void MovieVideoCursor::apply_to_texture(MovieVideoCursor::Buffer const *buffer, Texture *t, int page);
164 20 apply_to_texture_rgb 0 6 209 38 MovieVideoCursor::apply_to_texture_rgb 0 1 59 140
/**
* Copies this buffer's contents into the RGB channels of the supplied
* texture. The alpha channel of the texture is not touched.
*/
114
virtual void MovieVideoCursor::apply_to_texture_rgb(MovieVideoCursor::Buffer const *buffer, Texture *t, int page);
165 22 apply_to_texture_alpha 0 6 209 40 MovieVideoCursor::apply_to_texture_alpha 0 1 60 141
/**
* Copies this buffer's contents into the alpha channel of the supplied
* texture. The RGB channels of the texture are not touched.
*/
131
virtual void MovieVideoCursor::apply_to_texture_alpha(MovieVideoCursor::Buffer const *buffer, Texture *t, int page, int alpha_src);
166 14 get_class_type 0 4 209 32 MovieVideoCursor::get_class_type 0 1 61 0
57
static TypeHandle MovieVideoCursor::get_class_type(void);
167 16 MovieVideoCursor 0 4 209 34 MovieVideoCursor::MovieVideoCursor 0 1 44 121
/**
* This is a virtual base class and should not be created directly. Instead,
* create a more specialized class.
*/
78
inline MovieVideoCursor::MovieVideoCursor(MovieVideoCursor const &) = default;
168 18 InkblotVideoCursor 0 4 212 38 InkblotVideoCursor::InkblotVideoCursor 0 2 66 67 14
/**
* xxx
*/
143
InkblotVideoCursor::InkblotVideoCursor(InkblotVideo *src);
inline InkblotVideoCursor::InkblotVideoCursor(InkblotVideoCursor const &) = default;
169 14 get_class_type 0 4 212 34 InkblotVideoCursor::get_class_type 0 1 68 0
59
static TypeHandle InkblotVideoCursor::get_class_type(void);
170 15 get_num_options 0 4 213 32 MicrophoneAudio::get_num_options 0 1 69 218
/**
* Returns the number of microphone options. An "option" consists of a device
* plus a set of configuration parameters. For example, "Soundblaster Audigy
* Line in at 44,100 samples/sec" would be an option.
*/
50
static int MicrophoneAudio::get_num_options(void);
171 10 get_option 0 4 213 27 MicrophoneAudio::get_option 0 1 70 45
/**
* Returns the nth microphone option.
*/
71
static PointerTo< MicrophoneAudio > MicrophoneAudio::get_option(int n);
172 12 get_channels 0 4 213 29 MicrophoneAudio::get_channels 0 1 71 42
/**
* Returns the number of channels.
*/
53
inline int MicrophoneAudio::get_channels(void) const;
173 8 get_rate 0 4 213 25 MicrophoneAudio::get_rate 0 1 72 35
/**
* Returns the sample rate.
*/
49
inline int MicrophoneAudio::get_rate(void) const;
174 0 0 0 0 0 0 0 0
0
175 14 get_class_type 0 4 213 31 MicrophoneAudio::get_class_type 0 1 73 0
56
static TypeHandle MicrophoneAudio::get_class_type(void);
176 9 OpusAudio 0 4 216 20 OpusAudio::OpusAudio 0 2 74 75 14
/**
* xxx
*/
101
OpusAudio::OpusAudio(Filename const &name);
inline OpusAudio::OpusAudio(OpusAudio const &) = default;
177 4 make 0 4 216 15 OpusAudio::make 0 1 76 55
/**
* Obtains a MovieAudio that references a file.
*/
69
static PointerTo< MovieAudio > OpusAudio::make(Filename const &name);
178 14 get_class_type 0 4 216 25 OpusAudio::get_class_type 0 1 77 0
50
static TypeHandle OpusAudio::get_class_type(void);
179 15 OpusAudioCursor 0 4 217 32 OpusAudioCursor::OpusAudioCursor 0 2 78 79 129
/**
* Reads the .wav header from the indicated stream. This leaves the read
* pointer positioned at the start of the data.
*/
156
explicit OpusAudioCursor::OpusAudioCursor(OpusAudio *src, std::istream *stream);
inline OpusAudioCursor::OpusAudioCursor(OpusAudioCursor const &) = default;
180 14 get_class_type 0 4 217 31 OpusAudioCursor::get_class_type 0 1 80 0
56
static TypeHandle OpusAudioCursor::get_class_type(void);
181 13 UserDataAudio 0 4 218 28 UserDataAudio::UserDataAudio 0 2 81 82 104
/**
* This constructor returns a UserDataAudio --- a means to supply raw audio
* samples manually.
*/
154
UserDataAudio::UserDataAudio(int rate, int channels, bool remove_after_read = true);
inline UserDataAudio::UserDataAudio(UserDataAudio const &) = default;
182 6 append 0 4 218 21 UserDataAudio::append 0 2 83 84 413
/**
* Appends audio samples to the buffer.
*/
/**
* Appends audio samples to the buffer from a datagram. This is intended to
* make it easy to send streaming raw audio over a network.
*/
/**
* Appends audio samples to the buffer from a string. The samples must be
* stored little-endian in the string. This is not particularly efficient,
* but it may be convenient to deal with samples in python.
*/
172
void UserDataAudio::append(int16_t *data, int n);
void UserDataAudio::append(DatagramIterator *src, int len = 1073741824);
void UserDataAudio::append(vector_uchar const &);
183 4 done 0 4 218 19 UserDataAudio::done 0 1 85 143
// A promise not to write any more samples.
/**
* Promises not to append any more samples, ie, this marks the end of the
* audio stream.
*/
31
void UserDataAudio::done(void);
184 14 get_class_type 0 4 218 29 UserDataAudio::get_class_type 0 1 86 0
54
static TypeHandle UserDataAudio::get_class_type(void);
185 19 UserDataAudioCursor 0 4 219 40 UserDataAudioCursor::UserDataAudioCursor 0 2 87 88 10
/**
*
*/
149
UserDataAudioCursor::UserDataAudioCursor(UserDataAudio *src);
inline UserDataAudioCursor::UserDataAudioCursor(UserDataAudioCursor const &) = default;
186 14 get_class_type 0 4 219 35 UserDataAudioCursor::get_class_type 0 1 89 0
60
static TypeHandle UserDataAudioCursor::get_class_type(void);
187 11 VorbisAudio 0 4 220 24 VorbisAudio::VorbisAudio 0 2 90 91 14
/**
* xxx
*/
111
VorbisAudio::VorbisAudio(Filename const &name);
inline VorbisAudio::VorbisAudio(VorbisAudio const &) = default;
188 4 make 0 4 220 17 VorbisAudio::make 0 1 92 55
/**
* Obtains a MovieAudio that references a file.
*/
71
static PointerTo< MovieAudio > VorbisAudio::make(Filename const &name);
189 14 get_class_type 0 4 220 27 VorbisAudio::get_class_type 0 1 93 0
52
static TypeHandle VorbisAudio::get_class_type(void);
190 17 VorbisAudioCursor 0 4 221 36 VorbisAudioCursor::VorbisAudioCursor 0 2 94 95 129
/**
* Reads the .wav header from the indicated stream. This leaves the read
* pointer positioned at the start of the data.
*/
168
explicit VorbisAudioCursor::VorbisAudioCursor(VorbisAudio *src, std::istream *stream);
inline VorbisAudioCursor::VorbisAudioCursor(VorbisAudioCursor const &) = default;
191 14 get_class_type 0 4 221 33 VorbisAudioCursor::get_class_type 0 1 96 0
58
static TypeHandle VorbisAudioCursor::get_class_type(void);
192 8 WavAudio 0 4 222 18 WavAudio::WavAudio 0 2 97 98 14
/**
* xxx
*/
96
WavAudio::WavAudio(Filename const &name);
inline WavAudio::WavAudio(WavAudio const &) = default;
193 4 make 0 4 222 14 WavAudio::make 0 1 99 55
/**
* Obtains a MovieAudio that references a file.
*/
68
static PointerTo< MovieAudio > WavAudio::make(Filename const &name);
194 14 get_class_type 0 4 222 24 WavAudio::get_class_type 0 1 100 0
49
static TypeHandle WavAudio::get_class_type(void);
195 14 WavAudioCursor 0 4 223 30 WavAudioCursor::WavAudioCursor 0 2 101 102 129
/**
* Reads the .wav header from the indicated stream. This leaves the read
* pointer positioned at the start of the data.
*/
150
explicit WavAudioCursor::WavAudioCursor(WavAudio *src, std::istream *stream);
inline WavAudioCursor::WavAudioCursor(WavAudioCursor const &) = default;
196 14 get_class_type 0 4 223 30 WavAudioCursor::get_class_type 0 1 103 0
55
static TypeHandle WavAudioCursor::get_class_type(void);
103
1 0 0 7 8 226 109 0 0 1 6 param0 0 224
2 0 0 7 8 226 109 0 200 /**
* This constructor returns a null audio stream --- a stream of total silence,
* at 8000 samples per second. To get more interesting audio, you need to
* construct a subclass of this class.
*/ 1 4 name 1 227
3 0 0 7 10 228 0 0 56 /**
* Open this audio, returning a MovieAudioCursor
*/ 1 4 this 3 226
4 0 0 7 11 226 109 0 103 /**
* Obtains a MovieAudio that references a file. Just calls
* MovieTypeRegistry::make_audio().
*/ 1 4 name 1 229
5 0 0 6 12 229 0 0 142 /**
* Returns the movie's filename. A movie is not guaranteed to have a
* filename, if not, then this function returns a null filename.
*/ 1 4 this 3 224
6 0 0 7 16 231 0 0 0 0
7 0 0 7 3 232 0 0 0 1 4 this 3 226
8 0 0 6 6 233 0 0 0 1 4 this 3 226
9 0 0 7 18 234 109 0 14 /**
* xxx
*/ 1 4 name 1 229
10 0 0 7 18 234 109 0 0 1 6 param0 0 235
11 0 0 7 19 226 109 0 55 /**
* Obtains a MovieAudio that references a file.
*/ 1 4 name 1 229
12 0 0 7 20 231 0 0 0 0
13 0 0 7 22 228 0 0 200 /**
* This constructor returns a null audio stream --- a stream of total silence,
* at 8000 samples per second. To get more interesting audio, you need to
* construct a subclass of this class.
*/ 1 3 src 1 226
14 0 0 7 22 228 0 0 0 1 6 param0 0 237
15 0 0 7 23 226 109 0 63 /**
* Returns the MovieAudio which this cursor references.
*/ 1 4 this 3 237
16 0 0 6 24 215 0 0 41 /**
* Returns the audio sample rate.
*/ 1 4 this 3 237
17 0 0 6 25 215 0 0 83 /**
* Returns the number of audio channels (ie, two for stereo, one for mono).
*/ 1 4 this 3 237
18 0 0 6 26 239 0 0 742 /**
* Returns the length of the movie. Attempting to read audio samples beyond
* the specified length will produce silent samples.
*
* Some kinds of Movie, such as internet TV station, might not have a
* predictable length. In that case, the length will be set to a very large
* number: 1.0E10.
*
* Some AVI files have incorrect length values encoded into them - they may be
* a second or two long or short. When playing such an AVI using the Movie
* class, you may see a slightly truncated video, or a slightly elongated
* video (padded with black frames). There are utilities out there to fix the
* length values in AVI files.
*
* An audio consumer needs to check the length, the ready status, and the
* aborted flag.
*/ 1 4 this 3 237
19 0 0 6 27 240 0 0 429 /**
* Returns true if the movie can seek. If this is true, seeking is still not
* guaranteed to be fast: for some movies, seeking is implemented by rewinding
* to the beginning and then fast-forwarding to the desired location. Even if
* the movie cannot seek, the seek method can still advance to an arbitrary
* location by reading samples and discarding them. However, to move
* backward, can_seek must return true.
*/ 1 4 this 3 237
20 0 0 6 28 240 0 0 61 /**
* Returns true if seek operations are constant time.
*/ 1 4 this 3 237
21 0 0 6 29 239 0 0 54 /**
* Returns the current offset within the file.
*/ 1 4 this 3 237
22 0 0 4 30 241 0 0 86 /**
* Skip audio samples from the stream. This is mostly for debugging purposes.
*/ 2 4 this 3 228 1 n 1 215
23 0 0 6 31 240 0 0 138 /**
* If aborted is true, it means that the "ready" samples are not being
* replenished. See the method "ready" for an explanation.
*/ 1 4 this 3 237
24 0 0 6 32 215 0 0 1120 /**
* Returns the number of audio samples that are ready to read. This is
* primarily relevant for sources like microphones which produce samples at a
* fixed rate. If you try to read more samples than are ready, the result
* will be silent samples.
*
* Some audio streams do not have a limit on how fast they can produce
* samples. Such streams will always return 0x40000000 as the ready-count.
* This may well exceed the length of the audio stream. You therefore need to
* check length separately.
*
* If the aborted flag is set, that means the ready count is no longer being
* replenished. For example, a MovieAudioCursor might be reading from an
* internet radio station, and it might buffer data to avoid underruns. If it
* loses connection to the radio station, it will set the aborted flag to
* indicate that the buffer is no longer being replenished. But it is still
* ok to read the samples that are in the buffer, at least until they run out.
* Once those are gone, there will be no more.
*
* An audio consumer needs to check the length, the ready status, and the
* aborted flag.
*/ 1 4 this 3 237
25 0 0 4 33 241 0 0 746 /**
* Skips to the specified offset within the file.
*
* If the movie reports that it cannot seek, then this method can still
* advance by reading samples and discarding them. However, to move backward,
* can_seek must be true.
*
* If the movie reports that it can_seek, it doesn't mean that it can do so
* quickly. It may have to rewind the movie and then fast forward to the
* desired location. Only if can_seek_fast returns true can seek operations
* be done in constant time.
*
* Seeking may not be precise, because AVI files often have inaccurate
* indices. After seeking, tell will indicate that the cursor is at the
* target location. However, in truth, the data you read may come from a
* slightly offset location.
*/ 2 4 this 3 228 6 offset 1 239
26 0 0 6 34 242 0 0 334 /**
* Read audio samples from the stream and returns them as a string. The
* samples are stored little-endian in the string. N is the number of samples
* you wish to read. Multiple-channel audio will be interleaved.
*
* This is not particularly efficient, but it may be a convenient way to
* manipulate samples in python.
*/ 2 4 this 3 228 1 n 1 215
27 0 0 4 34 241 0 0 265 /**
* Read audio samples from the stream into a Datagram. N is the number of
* samples you wish to read. Multiple-channel audio will be interleaved.
*
* This is not particularly efficient, but it may be a convenient way to
* manipulate samples in python.
*/ 3 4 this 3 228 1 n 1 215 2 dg 1 244
28 0 0 7 35 231 0 0 0 0
29 0 0 7 37 248 0 0 129 /**
* Reads the .wav header from the indicated stream. This leaves the read
* pointer positioned at the start of the data.
*/ 2 3 src 1 234 6 stream 1 246
30 0 0 7 37 248 0 0 0 1 6 param0 0 249
31 0 0 7 38 231 0 0 0 0
32 0 0 7 44 253 138 0 0 1 6 param0 0 251
33 0 0 7 44 253 138 0 212 /**
* This constructor returns a null video stream --- a stream of plain blue and
* white frames that last one second each. To get more interesting video, you
* need to construct a subclass of this class.
*/ 1 4 name 1 227
34 0 0 7 46 254 0 0 107 /**
* Open this video, returning a MovieVideoCursor of the appropriate type.
* Returns NULL on error.
*/ 1 4 this 3 253
35 0 0 7 47 253 138 0 103 /**
* Obtains a MovieVideo that references a file. Just calls
* MovieTypeRegistry::make_video().
*/ 1 4 name 1 229
36 0 0 6 48 229 0 0 144 /**
* Returns the movie's filename. A movie is not guaranteed to have a
* filename, if not, then this function returns an empty filename.
*/ 1 4 this 3 251
37 0 0 6 49 255 0 0 150 /**
* If the movie is to be loaded from a subfile on disk, this returns the
* subfile info. Check info.is_empty() to see if this is valid data.
*/ 1 4 this 3 251
38 0 0 7 54 231 0 0 0 0
39 0 0 7 40 232 0 0 0 1 4 this 3 253
40 0 0 6 42 233 0 0 0 1 4 this 3 253
41 0 0 7 56 258 138 0 0 1 6 param0 0 256
42 0 0 7 56 258 138 0 14 /**
* xxx
*/ 3 1 x 1 215 1 y 1 215 3 fps 1 215
43 0 0 7 57 231 0 0 0 0
44 0 0 7 82 254 0 0 0 1 6 param0 0 259
45 0 0 7 59 253 138 0 59 /**
* Get the MovieVideo which this cursor references.
*/ 1 4 this 3 259
46 0 0 6 60 215 0 0 48 /**
* Get the horizontal size of the movie.
*/ 1 4 this 3 259
47 0 0 6 61 215 0 0 46 /**
* Get the vertical size of the movie.
*/ 1 4 this 3 259
48 0 0 6 62 215 0 0 68 /**
* Returns 4 if the movie has an alpha channel, 3 otherwise.
*/ 1 4 this 3 259
49 0 0 6 63 239 0 0 1170 /**
* Returns the length of the movie.
*
* Some kinds of Movie, such as internet TV station, might not have a
* predictable length. In that case, the length will be set to a very large
* number: 1.0E10. If the internet TV station goes offline, the video or audio
* stream will set its abort flag. Reaching the end of the movie (ie, the
* specified length) normally does not cause the abort flag to be set.
*
* The video and audio streams produced by get_video and get_audio are always
* of unlimited duration - you can always read another video frame or another
* audio sample. This is true even if the specified length is reached, or an
* abort is flagged. If either stream runs out of data, it will synthesize
* blank video frames and silent audio samples as necessary to satisfy read
* requests.
*
* Some AVI files have incorrect length values encoded into them - usually,
* they're a second or two long or short. When playing such an AVI using the
* Movie class, you may see a slightly truncated video, or a slightly
* elongated video (padded with black frames). There are utilities out there
* to fix the length values in AVI files.
*
*/ 1 4 this 3 259
50 0 0 6 64 240 0 0 430 /**
* Returns true if the movie can seek. If this is true, seeking is still not
* guaranteed to be fast: for some movies, seeking is implemented by rewinding
* to the beginning and then fast-forwarding to the desired location. Even if
* the movie cannot seek, the fetch methods can still advance to an arbitrary
* location by reading frames and discarding them. However, to move backward,
* can_seek must return true.
*/ 1 4 this 3 259
51 0 0 6 65 240 0 0 61 /**
* Returns true if seek operations are constant time.
*/ 1 4 this 3 259
52 0 0 6 66 240 0 0 260 /**
* Returns true if the video has aborted prematurely. For example, this could
* occur if the Movie was actually an internet TV station, and the connection
* was lost. Reaching the normal end of the video does not constitute an
* 'abort' condition.
*/ 1 4 this 3 259
53 0 0 6 67 240 0 0 156 /**
* Returns true if the cursor is a streaming source, and if a video frame is
* ready to be read. For non- streaming sources, this is always false.
*/ 1 4 this 3 259
54 0 0 6 68 240 0 0 528 /**
* Returns true if the video frames are being "pushed" at us by something that
* operates at its own speed - for example, a webcam. In this case, the
* frames come when they're ready to come. Attempting to read too soon will
* produce nothing, reading too late will cause frames to be dropped. In this
* case, the ready flag can be used to determine whether or not a frame is
* ready for reading.
*
* When streaming, you should still pay attention to last_start, but the value
* of next_start is only a guess.
*/ 1 4 this 3 259
55 0 0 4 69 241 0 0 130 /**
* Set up the specified Texture object to contain content from this movie.
* This should be called once, not every frame.
*/ 2 4 this 3 259 3 tex 1 261
56 0 0 6 70 240 0 0 850 /**
* Updates the cursor to the indicated time. If loop_count >= 1, the time is
* clamped to the movie's length * loop_count. If loop_count <= 0, the time
* is understood to be modulo the movie's length.
*
* Returns true if a new frame is now available, false otherwise. If this
* returns true, you should immediately follow this with exactly *one* call to
* fetch_buffer().
*
* If the movie reports that it can_seek, you may also specify a time value
* less than the previous value you passed to set_time(). Otherwise, you may
* only specify a time value greater than or equal to the previous value.
*
* If the movie reports that it can_seek, it doesn't mean that it can do so
* quickly. It may have to rewind the movie and then fast forward to the
* desired location. Only if can_seek_fast returns true can it seek rapidly.
*/ 3 4 this 3 254 9 timestamp 1 239 10 loop_count 1 215
57 0 0 7 77 263 0 0 331 /**
* Gets the current video frame (as specified by set_time()) from the movie
* and returns it in a pre-allocated buffer. You may simply let the buffer
* dereference and delete itself when you are done with it.
*
* This may return NULL (even if set_time() returned true) if the frame is not
* available for some reason.
*/ 1 4 this 3 254
58 0 0 4 78 241 0 0 66 /**
* Stores this buffer's contents in the indicated texture.
*/ 4 4 this 3 254 6 buffer 1 264 1 t 1 261 4 page 1 215
59 0 0 4 79 241 0 0 140 /**
* Copies this buffer's contents into the RGB channels of the supplied
* texture. The alpha channel of the texture is not touched.
*/ 4 4 this 3 254 6 buffer 1 264 1 t 1 261 4 page 1 215
60 0 0 4 80 241 0 0 141 /**
* Copies this buffer's contents into the alpha channel of the supplied
* texture. The RGB channels of the texture are not touched.
*/ 5 4 this 3 254 6 buffer 1 264 1 t 1 261 4 page 1 215 9 alpha_src 1 215
61 0 0 7 81 231 0 0 0 0
62 0 0 7 76 263 0 0 0 1 6 param0 0 264
63 0 0 6 73 215 0 0 335 /**
* Used to sort different buffers to ensure they correspond to the same source
* frame, particularly important when synchronizing the different pages of a
* multi-page texture.
*
* Returns 0 if the two buffers are of the same frame, <0 if this one comes
* earlier than the other one, and >0 if the other one comes earlier.
*/ 2 4 this 3 264 5 other 1 264
64 0 0 6 74 239 0 0 236 /**
* Returns the nearest timestamp value of this particular buffer. Ideally,
* MovieVideoCursor::set_time() for this timestamp would return this buffer
* again. This need be defined only if compare_timestamp() is also defined.
*/ 1 4 this 3 264
65 0 0 7 75 231 0 0 0 0
66 0 0 7 84 266 0 0 14 /**
* xxx
*/ 1 3 src 1 258
67 0 0 7 84 266 0 0 0 1 6 param0 0 267
68 0 0 7 85 231 0 0 0 0
69 0 0 6 87 215 0 0 218 /**
* Returns the number of microphone options. An "option" consists of a device
* plus a set of configuration parameters. For example, "Soundblaster Audigy
* Line in at 44,100 samples/sec" would be an option.
*/ 0
70 0 0 7 88 269 109 0 45 /**
* Returns the nth microphone option.
*/ 1 1 n 1 215
71 0 0 6 90 215 0 0 42 /**
* Returns the number of channels.
*/ 1 4 this 3 270
72 0 0 6 91 215 0 0 35 /**
* Returns the sample rate.
*/ 1 4 this 3 270
73 0 0 7 98 231 0 0 0 0
74 0 0 7 100 272 109 0 14 /**
* xxx
*/ 1 4 name 1 229
75 0 0 7 100 272 109 0 0 1 6 param0 0 273
76 0 0 7 101 226 109 0 55 /**
* Obtains a MovieAudio that references a file.
*/ 1 4 name 1 229
77 0 0 7 102 231 0 0 0 0
78 0 0 7 104 275 0 0 129 /**
* Reads the .wav header from the indicated stream. This leaves the read
* pointer positioned at the start of the data.
*/ 2 3 src 1 272 6 stream 1 246
79 0 0 7 104 275 0 0 0 1 6 param0 0 276
80 0 0 7 105 231 0 0 0 0
81 0 0 7 107 280 109 0 0 1 6 param0 0 278
82 0 0 7 107 280 109 0 104 /**
* This constructor returns a UserDataAudio --- a means to supply raw audio
* samples manually.
*/ 3 4 rate 1 215 8 channels 1 215 17 remove_after_read 1 240
83 0 0 4 108 241 0 0 144 /**
* Appends audio samples to the buffer from a datagram. This is intended to
* make it easy to send streaming raw audio over a network.
*/ 3 4 this 3 280 3 src 1 281 3 len 1 215
84 0 0 4 108 241 0 0 218 /**
* Appends audio samples to the buffer from a string. The samples must be
* stored little-endian in the string. This is not particularly efficient,
* but it may be convenient to deal with samples in python.
*/ 2 4 this 3 280 6 param0 0 242
85 0 0 4 109 241 0 0 98 /**
* Promises not to append any more samples, ie, this marks the end of the
* audio stream.
*/ 1 4 this 3 280
86 0 0 7 110 231 0 0 0 0
87 0 0 7 112 283 0 0 10 /**
*
*/ 1 3 src 1 280
88 0 0 7 112 283 0 0 0 1 6 param0 0 284
89 0 0 7 113 231 0 0 0 0
90 0 0 7 115 286 109 0 14 /**
* xxx
*/ 1 4 name 1 229
91 0 0 7 115 286 109 0 0 1 6 param0 0 287
92 0 0 7 116 226 109 0 55 /**
* Obtains a MovieAudio that references a file.
*/ 1 4 name 1 229
93 0 0 7 117 231 0 0 0 0
94 0 0 7 119 289 0 0 129 /**
* Reads the .wav header from the indicated stream. This leaves the read
* pointer positioned at the start of the data.
*/ 2 3 src 1 286 6 stream 1 246
95 0 0 7 119 289 0 0 0 1 6 param0 0 290
96 0 0 7 120 231 0 0 0 0
97 0 0 7 122 292 109 0 14 /**
* xxx
*/ 1 4 name 1 229
98 0 0 7 122 292 109 0 0 1 6 param0 0 293
99 0 0 7 123 226 109 0 55 /**
* Obtains a MovieAudio that references a file.
*/ 1 4 name 1 229
100 0 0 7 124 231 0 0 0 0
101 0 0 7 126 295 0 0 129 /**
* Reads the .wav header from the indicated stream. This leaves the read
* pointer positioned at the start of the data.
*/ 2 3 src 1 292 6 stream 1 246
102 0 0 7 126 295 0 0 0 1 6 param0 0 296
103 0 0 7 127 231 0 0 0 0
101
197 10 MovieAudio 0 26625 10 MovieAudio 10 MovieAudio 0 0 0 1 108 109 1 298 4 110 111 112 113 0 0 2 3 198 104 105 3 199 106 107 0 0 397
/**
* A MovieAudio is actually any source that provides a sequence of audio
* samples. That could include an AVI file, a microphone, or an internet TV
* station.
*
* The difference between a MovieAudio and a MovieAudioCursor is like the
* difference between a filename and a file handle. The MovieAudio just
* indicates a particular movie. The MovieAudioCursor is what allows access.
*/
198 27 TypedWritableReferenceCount 0 2048 27 TypedWritableReferenceCount 27 TypedWritableReferenceCount 0 0 0 0 0 0 0 0 0 0 0 0 414
/**
* A base class for things which need to inherit from both TypedWritable and
* from ReferenceCount. It's convenient to define this intermediate base
* class instead of multiply inheriting from the two classes each time they
* are needed, so that we can sensibly pass around pointers to things which
* are both TypedWritables and ReferenceCounters.
*
* See also TypedObject for detailed instructions.
*/
199 7 Namable 0 2048 7 Namable 7 Namable 0 0 0 0 0 0 0 0 0 0 0 0 125
/**
* A base class for all things which can have a name. The name is either
* empty or nonempty, but it is never NULL.
*/
200 14 Filename const 0 8832 14 Filename const 14 Filename const 0 0 201 0 0 0 0 0 0 0 0 0 0
201 8 Filename 0 2048 8 Filename 8 Filename 0 0 0 0 0 0 0 0 0 0 0 0 550
/**
* The name of a file, such as a texture file or an Egg file. Stores the full
* pathname, and includes functions for extracting out the directory prefix
* part and the file extension and stuff.
*
* A Filename is also aware of the mapping between the Unix-like filename
* convention we use internally, and the local OS's specific filename
* convention, and it knows how to perform basic OS-specific I/O, like testing
* for file existence and searching a searchpath, as well as the best way to
* open an fstream for reading or writing.
*/
202 9 FlacAudio 0 75777 9 FlacAudio 9 FlacAudio 0 0 0 1 114 109 0 2 115 116 0 0 1 0 197 0 0 0 0 102
/**
* Reads FLAC audio files. Ogg-encapsulated FLAC files are not supported.
*
* @since 1.10.0
*/
203 16 MovieAudioCursor 0 75777 16 MovieAudioCursor 16 MovieAudioCursor 0 0 0 1 117 0 0 13 118 119 120 121 122 123 124 125 126 127 128 129 130 0 0 1 0 198 0 0 0 0 501
/**
* A MovieAudio is actually any source that provides a sequence of audio
* samples. That could include an AVI file, a microphone, or an internet TV
* station. A MovieAudioCursor is a handle that lets you read data
* sequentially from a MovieAudio.
*
* Thread safety: each individual MovieAudioCursor must be owned and accessed
* by a single thread. It is OK for two different threads to open the same
* file at the same time, as long as they use separate MovieAudioCursor
* objects.
*/
204 15 FlacAudioCursor 0 75777 15 FlacAudioCursor 15 FlacAudioCursor 0 0 0 1 131 0 0 1 132 0 0 1 0 203 0 0 0 0 89
/**
* Implements decoding of FLAC audio files.
*
* @see FlacAudio
* @since 1.10.0
*/
205 10 MovieVideo 0 26625 10 MovieVideo 10 MovieVideo 0 0 0 1 137 138 2 299 300 5 139 140 141 142 143 0 0 2 3 198 133 134 3 199 135 136 0 0 400
/**
* A MovieVideo is actually any source that provides a sequence of video
* frames. That could include an AVI file, a digital camera, or an internet
* TV station.
*
* The difference between a MovieVideo and a MovieVideoCursor is like the
* difference between a filename and a file handle. The MovieVideo just
* indicates a particular movie. The MovieVideoCursor is what allows access.
*/
206 17 SubfileInfo const 0 8832 17 SubfileInfo const 17 SubfileInfo const 0 0 207 0 0 0 0 0 0 0 0 0 0
207 11 SubfileInfo 0 2048 11 SubfileInfo 11 SubfileInfo 0 0 0 0 0 0 0 0 0 0 0 0 200
/**
* This class records a particular byte sub-range within an existing file on
* disk. Generally, the filename is understood as a physical file on disk,
* and not to be looked up via the vfs.
*/
208 12 InkblotVideo 0 75777 12 InkblotVideo 12 InkblotVideo 0 0 0 1 144 138 0 1 145 0 0 1 0 205 0 0 0 0 85
/**
* A cellular automaton that generates an amusing pattern of swirling colors.
*/
209 16 MovieVideoCursor 0 75777 16 MovieVideoCursor 16 MovieVideoCursor 0 0 0 1 167 0 0 17 146 147 148 149 150 151 152 153 154 155 156 157 162 163 164 165 166 0 0 1 0 198 0 0 0 1 210 504
/**
* A MovieVideo is actually any source that provides a sequence of video
* frames. That could include an AVI file, a digital camera, or an internet
* TV station. A MovieVideoCursor is a handle that lets you read data
* sequentially from a MovieVideo.
*
* Thread safety: each individual MovieVideoCursor must be owned and accessed
* by a single thread. It is OK for two different threads to open the same
* file at the same time, as long as they use separate MovieVideoCursor
* objects.
*/
210 6 Buffer 0 337921 24 MovieVideoCursor::Buffer 24 MovieVideoCursor::Buffer 209 0 0 1 161 0 0 3 158 159 160 0 0 1 0 211 0 0 0 0 0
211 19 TypedReferenceCount 0 2048 19 TypedReferenceCount 19 TypedReferenceCount 0 0 0 0 0 0 0 0 0 0 0 0 410
/**
* A base class for things which need to inherit from both TypedObject and
* from ReferenceCount. It's convenient to define this intermediate base
* class instead of multiply inheriting from the two classes each time they
* are needed, so that we can sensibly pass around pointers to things which
* are both TypedObjects and ReferenceCounters.
*
* See also TypedObject for detailed instructions.
*/
212 18 InkblotVideoCursor 0 75777 18 InkblotVideoCursor 18 InkblotVideoCursor 0 0 0 1 168 0 0 1 169 0 0 1 0 209 0 0 0 0 85
/**
* A cellular automaton that generates an amusing pattern of swirling colors.
*/
213 15 MicrophoneAudio 0 75777 15 MicrophoneAudio 15 MicrophoneAudio 0 0 0 0 109 3 301 302 303 5 170 171 172 173 175 1 304 0 1 0 197 0 0 0 0 99
/**
* Class MicrophoneAudio provides the means to read raw audio samples from a
* microphone.
*/
214 28 PointerTo< MicrophoneAudio > 0 2048 28 PointerTo< MicrophoneAudio > 28 PointerTo< MicrophoneAudio > 0 0 0 0 0 0 0 0 0 0 0 0 0
215 3 int 0 8194 3 int 3 int 0 1 0 0 0 0 0 0 0 0 0 0 0
216 9 OpusAudio 0 75777 9 OpusAudio 9 OpusAudio 0 0 0 1 176 109 0 2 177 178 0 0 1 0 197 0 0 0 0 116
/**
* Interfaces with the libopusfile library to implement decoding of Opus
* audio files.
*
* @since 1.10.0
*/
217 15 OpusAudioCursor 0 75777 15 OpusAudioCursor 15 OpusAudioCursor 0 0 0 1 179 0 0 1 180 0 0 1 0 203 0 0 0 0 134
/**
* Interfaces with the libopusfile library to implement decoding of Opus
* audio files.
*
* @see OpusAudio
* @since 1.10.0
*/
218 13 UserDataAudio 0 75777 13 UserDataAudio 13 UserDataAudio 0 0 0 1 181 109 0 3 182 183 184 0 0 1 0 197 0 0 0 0 358
/**
* A UserDataAudio is a way for the user to manually supply raw audio samples.
* remove_after_read means the data will be removed if read once. Else data
* will be stored (enable looping and seeking). Expects data as 16 bit signed
* (word); Example for stereo: 1.word = 1.channel,2.word = 2.channel, 3.word =
* 1.channel,4.word = 2.channel, etc.
*/
219 19 UserDataAudioCursor 0 75777 19 UserDataAudioCursor 19 UserDataAudioCursor 0 0 0 1 185 0 0 1 186 0 0 1 0 203 0 0 0 0 98
/**
* A UserDataAudioCursor is a means to manually supply a sequence of raw audio
* samples.
*/
220 11 VorbisAudio 0 75777 11 VorbisAudio 11 VorbisAudio 0 0 0 1 187 109 0 2 188 189 0 0 1 0 197 0 0 0 0 104
/**
* Interfaces with the libvorbisfile library to implement decoding of Ogg
* Vorbis audio files.
*/
221 17 VorbisAudioCursor 0 75777 17 VorbisAudioCursor 17 VorbisAudioCursor 0 0 0 1 190 0 0 1 191 0 0 1 0 203 0 0 0 0 104
/**
* Interfaces with the libvorbisfile library to implement decoding of Ogg
* Vorbis audio files.
*/
222 8 WavAudio 0 75777 8 WavAudio 8 WavAudio 0 0 0 1 192 109 0 2 193 194 0 0 1 0 197 0 0 0 0 104
/**
* A native PCM .wav loader. Supported formats are linear PCM, IEEE float,
* A-law and mu-law.
*/
223 14 WavAudioCursor 0 75777 14 WavAudioCursor 14 WavAudioCursor 0 0 0 1 195 0 0 1 196 0 0 1 0 203 0 0 0 0 111
/**
* Used for reading PCM .wav files. Supported formats are linear PCM, IEEE
* float, A-law and mu-law.
*/
224 18 MovieAudio const * 0 8576 18 MovieAudio const * 18 MovieAudio const * 0 0 225 0 0 0 0 0 0 0 0 0 0
225 16 MovieAudio const 0 8832 16 MovieAudio const 16 MovieAudio const 0 0 197 0 0 0 0 0 0 0 0 0 0
226 12 MovieAudio * 0 8576 12 MovieAudio * 12 MovieAudio * 0 0 197 0 0 0 0 0 0 0 0 0 0
227 13 atomic string 0 2 13 atomic string 13 atomic string 0 7 0 0 0 0 0 0 0 0 0 0 0
228 18 MovieAudioCursor * 0 8576 18 MovieAudioCursor * 18 MovieAudioCursor * 0 0 203 0 0 0 0 0 0 0 0 0 0
229 16 Filename const * 0 8576 16 Filename const * 16 Filename const * 0 0 200 0 0 0 0 0 0 0 0 0 0
230 10 TypeHandle 0 16779264 10 TypeHandle 10 TypeHandle 0 0 0 0 0 0 0 0 0 0 0 0 732
/**
* TypeHandle is the identifier used to differentiate C++ class types. Any
* C++ classes that inherit from some base class, and must be differentiated
* at run time, should store a static TypeHandle object that can be queried
* through a static member function named get_class_type(). Most of the time,
* it is also desirable to inherit from TypedObject, which provides some
* virtual functions to return the TypeHandle for a particular instance.
*
* At its essence, a TypeHandle is simply a unique identifier that is assigned
* by the TypeRegistry. The TypeRegistry stores a tree of TypeHandles, so
* that ancestry of a particular type may be queried, and the type name may be
* retrieved for run-time display.
*/
231 12 TypeHandle * 0 8576 12 TypeHandle * 12 TypeHandle * 0 0 230 0 0 0 0 0 0 0 0 0 0
232 29 TypedWritableReferenceCount * 0 8576 29 TypedWritableReferenceCount * 29 TypedWritableReferenceCount * 0 0 198 0 0 0 0 0 0 0 0 0 0
233 9 Namable * 0 8576 9 Namable * 9 Namable * 0 0 199 0 0 0 0 0 0 0 0 0 0
234 11 FlacAudio * 0 8576 11 FlacAudio * 11 FlacAudio * 0 0 202 0 0 0 0 0 0 0 0 0 0
235 17 FlacAudio const * 0 8576 17 FlacAudio const * 17 FlacAudio const * 0 0 236 0 0 0 0 0 0 0 0 0 0
236 15 FlacAudio const 0 8832 15 FlacAudio const 15 FlacAudio const 0 0 202 0 0 0 0 0 0 0 0 0 0
237 24 MovieAudioCursor const * 0 8576 24 MovieAudioCursor const * 24 MovieAudioCursor const * 0 0 238 0 0 0 0 0 0 0 0 0 0
238 22 MovieAudioCursor const 0 8832 22 MovieAudioCursor const 22 MovieAudioCursor const 0 0 203 0 0 0 0 0 0 0 0 0 0
239 6 double 0 8194 6 double 6 double 0 3 0 0 0 0 0 0 0 0 0 0 0
240 4 bool 0 8194 4 bool 4 bool 0 4 0 0 0 0 0 0 0 0 0 0 0
241 4 void 0 8194 4 void 4 void 0 6 0 0 0 0 0 0 0 0 0 0 0
242 12 vector_uchar 0 2105344 12 vector_uchar 12 vector_uchar 0 0 243 0 0 0 0 0 0 0 0 0 0
243 24 pvector< unsigned char > 0 2048 24 pvector< unsigned char > 24 pvector< unsigned char > 0 0 0 0 0 0 0 0 0 0 0 0 0
244 10 Datagram * 0 8576 10 Datagram * 10 Datagram * 0 0 245 0 0 0 0 0 0 0 0 0 0
245 8 Datagram 0 2048 8 Datagram 8 Datagram 0 0 0 0 0 0 0 0 0 0 0 0 565
/**
* An ordered list of data elements, formatted in memory for transmission over
* a socket or writing to a data file.
*
* Data elements should be added one at a time, in order, to the Datagram.
* The nature and contents of the data elements are totally up to the user.
* When a Datagram has been transmitted and received, its data elements may be
* extracted using a DatagramIterator; it is up to the caller to know the
* correct type of each data element in order.
*
* A Datagram is itself headerless; it is simply a collection of data
* elements.
*/
246 9 istream * 0 8576 14 std::istream * 14 std::istream * 0 0 247 0 0 0 0 0 0 0 0 0 0
247 7 istream 0 2048 12 std::istream 12 std::istream 0 0 0 0 0 0 0 0 0 0 0 0 0
248 17 FlacAudioCursor * 0 8576 17 FlacAudioCursor * 17 FlacAudioCursor * 0 0 204 0 0 0 0 0 0 0 0 0 0
249 23 FlacAudioCursor const * 0 8576 23 FlacAudioCursor const * 23 FlacAudioCursor const * 0 0 250 0 0 0 0 0 0 0 0 0 0
250 21 FlacAudioCursor const 0 8832 21 FlacAudioCursor const 21 FlacAudioCursor const 0 0 204 0 0 0 0 0 0 0 0 0 0
251 18 MovieVideo const * 0 8576 18 MovieVideo const * 18 MovieVideo const * 0 0 252 0 0 0 0 0 0 0 0 0 0
252 16 MovieVideo const 0 8832 16 MovieVideo const 16 MovieVideo const 0 0 205 0 0 0 0 0 0 0 0 0 0
253 12 MovieVideo * 0 8576 12 MovieVideo * 12 MovieVideo * 0 0 205 0 0 0 0 0 0 0 0 0 0
254 18 MovieVideoCursor * 0 8576 18 MovieVideoCursor * 18 MovieVideoCursor * 0 0 209 0 0 0 0 0 0 0 0 0 0
255 19 SubfileInfo const * 0 8576 19 SubfileInfo const * 19 SubfileInfo const * 0 0 206 0 0 0 0 0 0 0 0 0 0
256 20 InkblotVideo const * 0 8576 20 InkblotVideo const * 20 InkblotVideo const * 0 0 257 0 0 0 0 0 0 0 0 0 0
257 18 InkblotVideo const 0 8832 18 InkblotVideo const 18 InkblotVideo const 0 0 208 0 0 0 0 0 0 0 0 0 0
258 14 InkblotVideo * 0 8576 14 InkblotVideo * 14 InkblotVideo * 0 0 208 0 0 0 0 0 0 0 0 0 0
259 24 MovieVideoCursor const * 0 8576 24 MovieVideoCursor const * 24 MovieVideoCursor const * 0 0 260 0 0 0 0 0 0 0 0 0 0
260 22 MovieVideoCursor const 0 8832 22 MovieVideoCursor const 22 MovieVideoCursor const 0 0 209 0 0 0 0 0 0 0 0 0 0
261 9 Texture * 0 8576 9 Texture * 9 Texture * 0 0 262 0 0 0 0 0 0 0 0 0 0
262 7 Texture 0 2048 7 Texture 7 Texture 0 0 0 0 0 0 0 0 0 0 0 0 688
/**
* Represents a texture object, which is typically a single 2-d image but may
* also represent a 1-d or 3-d texture image, or the six 2-d faces of a cube
* map texture.
*
* A texture's image data might be stored in system RAM (see get_ram_image())
* or its image may be represented in texture memory on one or more
* GraphicsStateGuardians (see prepare()), or both. The typical usage pattern
* is that a texture is loaded from an image file on disk, which copies its
* image data into system RAM; then the first time the texture is rendered its
* image data is copied to texture memory (actually, to the graphics API), and
* the system RAM image is automatically freed.
*/
263 8 Buffer * 0 8576 26 MovieVideoCursor::Buffer * 26 MovieVideoCursor::Buffer * 0 0 210 0 0 0 0 0 0 0 0 0 0
264 14 Buffer const * 0 8576 32 MovieVideoCursor::Buffer const * 32 MovieVideoCursor::Buffer const * 0 0 265 0 0 0 0 0 0 0 0 0 0
265 12 Buffer const 0 8832 30 MovieVideoCursor::Buffer const 30 MovieVideoCursor::Buffer const 0 0 210 0 0 0 0 0 0 0 0 0 0
266 20 InkblotVideoCursor * 0 8576 20 InkblotVideoCursor * 20 InkblotVideoCursor * 0 0 212 0 0 0 0 0 0 0 0 0 0
267 26 InkblotVideoCursor const * 0 8576 26 InkblotVideoCursor const * 26 InkblotVideoCursor const * 0 0 268 0 0 0 0 0 0 0 0 0 0
268 24 InkblotVideoCursor const 0 8832 24 InkblotVideoCursor const 24 InkblotVideoCursor const 0 0 212 0 0 0 0 0 0 0 0 0 0
269 17 MicrophoneAudio * 0 8576 17 MicrophoneAudio * 17 MicrophoneAudio * 0 0 213 0 0 0 0 0 0 0 0 0 0
270 23 MicrophoneAudio const * 0 8576 23 MicrophoneAudio const * 23 MicrophoneAudio const * 0 0 271 0 0 0 0 0 0 0 0 0 0
271 21 MicrophoneAudio const 0 8832 21 MicrophoneAudio const 21 MicrophoneAudio const 0 0 213 0 0 0 0 0 0 0 0 0 0
272 11 OpusAudio * 0 8576 11 OpusAudio * 11 OpusAudio * 0 0 216 0 0 0 0 0 0 0 0 0 0
273 17 OpusAudio const * 0 8576 17 OpusAudio const * 17 OpusAudio const * 0 0 274 0 0 0 0 0 0 0 0 0 0
274 15 OpusAudio const 0 8832 15 OpusAudio const 15 OpusAudio const 0 0 216 0 0 0 0 0 0 0 0 0 0
275 17 OpusAudioCursor * 0 8576 17 OpusAudioCursor * 17 OpusAudioCursor * 0 0 217 0 0 0 0 0 0 0 0 0 0
276 23 OpusAudioCursor const * 0 8576 23 OpusAudioCursor const * 23 OpusAudioCursor const * 0 0 277 0 0 0 0 0 0 0 0 0 0
277 21 OpusAudioCursor const 0 8832 21 OpusAudioCursor const 21 OpusAudioCursor const 0 0 217 0 0 0 0 0 0 0 0 0 0
278 21 UserDataAudio const * 0 8576 21 UserDataAudio const * 21 UserDataAudio const * 0 0 279 0 0 0 0 0 0 0 0 0 0
279 19 UserDataAudio const 0 8832 19 UserDataAudio const 19 UserDataAudio const 0 0 218 0 0 0 0 0 0 0 0 0 0
280 15 UserDataAudio * 0 8576 15 UserDataAudio * 15 UserDataAudio * 0 0 218 0 0 0 0 0 0 0 0 0 0
281 18 DatagramIterator * 0 8576 18 DatagramIterator * 18 DatagramIterator * 0 0 282 0 0 0 0 0 0 0 0 0 0
282 16 DatagramIterator 0 2048 16 DatagramIterator 16 DatagramIterator 0 0 0 0 0 0 0 0 0 0 0 0 215
/**
* A class to retrieve the individual data elements previously stored in a
* Datagram. Elements may be retrieved one at a time; it is up to the caller
* to know the correct type and order of each element.
*/
283 21 UserDataAudioCursor * 0 8576 21 UserDataAudioCursor * 21 UserDataAudioCursor * 0 0 219 0 0 0 0 0 0 0 0 0 0
284 27 UserDataAudioCursor const * 0 8576 27 UserDataAudioCursor const * 27 UserDataAudioCursor const * 0 0 285 0 0 0 0 0 0 0 0 0 0
285 25 UserDataAudioCursor const 0 8832 25 UserDataAudioCursor const 25 UserDataAudioCursor const 0 0 219 0 0 0 0 0 0 0 0 0 0
286 13 VorbisAudio * 0 8576 13 VorbisAudio * 13 VorbisAudio * 0 0 220 0 0 0 0 0 0 0 0 0 0
287 19 VorbisAudio const * 0 8576 19 VorbisAudio const * 19 VorbisAudio const * 0 0 288 0 0 0 0 0 0 0 0 0 0
288 17 VorbisAudio const 0 8832 17 VorbisAudio const 17 VorbisAudio const 0 0 220 0 0 0 0 0 0 0 0 0 0
289 19 VorbisAudioCursor * 0 8576 19 VorbisAudioCursor * 19 VorbisAudioCursor * 0 0 221 0 0 0 0 0 0 0 0 0 0
290 25 VorbisAudioCursor const * 0 8576 25 VorbisAudioCursor const * 25 VorbisAudioCursor const * 0 0 291 0 0 0 0 0 0 0 0 0 0
291 23 VorbisAudioCursor const 0 8832 23 VorbisAudioCursor const 23 VorbisAudioCursor const 0 0 221 0 0 0 0 0 0 0 0 0 0
292 10 WavAudio * 0 8576 10 WavAudio * 10 WavAudio * 0 0 222 0 0 0 0 0 0 0 0 0 0
293 16 WavAudio const * 0 8576 16 WavAudio const * 16 WavAudio const * 0 0 294 0 0 0 0 0 0 0 0 0 0
294 14 WavAudio const 0 8832 14 WavAudio const 14 WavAudio const 0 0 222 0 0 0 0 0 0 0 0 0 0
295 16 WavAudioCursor * 0 8576 16 WavAudioCursor * 16 WavAudioCursor * 0 0 223 0 0 0 0 0 0 0 0 0 0
296 22 WavAudioCursor const * 0 8576 22 WavAudioCursor const * 22 WavAudioCursor const * 0 0 297 0 0 0 0 0 0 0 0 0 0
297 20 WavAudioCursor const 0 8832 20 WavAudioCursor const 20 WavAudioCursor const 0 0 223 0 0 0 0 0 0 0 0 0 0
0
6
298 8 filename 0 2 200 112 0 0 0 0 0 0 0 20 MovieAudio::filename 0
299 8 filename 0 2 200 141 0 0 0 0 0 0 0 20 MovieVideo::filename 0
300 12 subfile_info 0 2 206 142 0 0 0 0 0 0 0 24 MovieVideo::subfile_info 0
301 7 options 0 66 214 174 0 0 0 0 170 0 0 24 MicrophoneAudio::options 0
302 8 channels 0 2 215 172 0 0 0 0 0 0 0 25 MicrophoneAudio::channels 0
303 4 rate 0 2 215 173 0 0 0 0 0 0 0 21 MicrophoneAudio::rate 0
1
304 11 get_options 0 170 171 28 MicrophoneAudio::get_options 0