Gnash  0.8.11dev
NetStream_as.h
Go to the documentation of this file.
1 //
2 // Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
3 // Free Software Foundation, Inc
4 //
5 // This program is free software; you can redistribute it and/or modify
6 // it under the terms of the GNU General Public License as published by
7 // the Free Software Foundation; either version 3 of the License, or
8 // (at your option) any later version.
9 //
10 // This program is distributed in the hope that it will be useful,
11 // but WITHOUT ANY WARRANTY; without even the implied warranty of
12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 // GNU General Public License for more details.
14 //
15 // You should have received a copy of the GNU General Public License
16 // along with this program; if not, write to the Free Software
17 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
18 
19 
20 #ifndef GNASH_NETSTREAM_H
21 #define GNASH_NETSTREAM_H
22 
23 
24 #ifndef __STDC_CONSTANT_MACROS
25 #define __STDC_CONSTANT_MACROS
26 #endif
27 
28 #include <atomic>
29 #include <string>
30 #include <memory>
31 #include <mutex>
32 
33 #include <boost/intrusive_ptr.hpp>
34 #include <boost/ptr_container/ptr_deque.hpp>
35 
36 #include "PlayHead.h" // for composition
37 #include "Relay.h" // for ActiveRelay inheritance
38 #include <memory>
39 
40 // Forward declarations
41 namespace gnash {
42  class InterruptableVirtualClock;
43  class as_object;
44  class CharacterProxy;
45  class IOChannel;
46  class NetConnection_as;
47  class as_function;
48  class DisplayObject;
49  struct ObjectURI;
50  namespace image {
51  class GnashImage;
52  }
53  namespace media {
54  class MediaHandler;
55  class AudioDecoder;
56  class AudioInfo;
57  class MediaParser;
58  class VideoDecoder;
59  class VideoInfo;
60  }
61  namespace sound {
62  class sound_handler;
63  class InputStream;
64  }
65 }
66 
67 namespace gnash {
68 
70 //
80 public:
81 
86 
88  //
93  {
94  public:
96  :
97  m_size(0),
98  m_data(nullptr),
99  m_ptr(nullptr)
100  {}
101 
103  {
104  delete [] m_data;
105  }
106 
108  std::uint32_t m_size;
109 
111  //
114  std::uint8_t* m_data;
115 
117  std::uint8_t* m_ptr;
118  };
119 
120  typedef boost::ptr_deque<CursoredBuffer> AudioQueue;
121 
122  // Delete all samples in the audio queue.
123  void cleanAudioQueue();
124 
126 
130 
133 
136  std::mutex _audioQueueMutex;
137 
138  // Id of an attached audio streamer, 0 if none
140 
142  //
146  void attachAuxStreamer();
147 
149  //
153  void detachAuxStreamer();
154 
156  unsigned int fetch(std::int16_t* samples, unsigned int nSamples,
157  bool& eof);
158 
160  static unsigned int fetchWrapper(void* owner, std::int16_t* samples,
161  unsigned int nSamples, bool& eof);
162 
164  //
170  void push(CursoredBuffer* audio);
171 
172 };
173 
174 // -----------------------------------------------------------------
175 
177 //
181 class NetStream_as : public ActiveRelay
182 {
183 
184 public:
185 
186  enum PauseMode {
189  pauseModeUnPause = 1
190  };
191 
193 
194  ~NetStream_as();
195 
197  return _playHead.getState();
198  }
199 
201  //
205  int videoHeight() const;
206 
208  //
212  int videoWidth() const;
213 
216  void close();
217 
219  void setAudioController(DisplayObject* controller);
220 
222  //
225  void pause(PauseMode mode);
226 
228  //
232  void play(const std::string& source);
233 
235  //
240  void seek(std::uint32_t pos);
241 
243  //
246  std::int32_t time();
247 
252  void update();
253 
255  double getCurrentFPS() { return 0; }
256 
258  //
263  _netCon = nc;
264  }
265 
267  bool isConnected() const { return (_netCon); }
268 
271  //
275  void setBufferTime(std::uint32_t time);
276 
279  //
282  std::uint32_t bufferTime() { return _bufferTime; }
283 
285  long bytesLoaded();
286 
288  //
291  long bytesTotal();
292 
295  //
299  long bufferLength();
300 
302  //
306  std::unique_ptr<image::GnashImage> get_video();
307 
310  {
311  _invalidatedVideoCharacter = ch;
312  }
313 
314  virtual void markReachableResources() const;
315 
317  //
323  static unsigned int audio_streamer(void *udata, std::int16_t* samples,
324  unsigned int nSamples, bool& eof);
325 
326 private:
327 
329  enum StatusCode {
330 
331  // Internal status, not a valid ActionScript value
332  invalidStatus,
333 
335  bufferEmpty,
336 
338  bufferFull,
339 
341  bufferFlush,
342 
344  playStart,
345 
347  playStop,
348 
350  seekNotify,
351 
353  streamNotFound,
354 
356  invalidTime
357  };
358 
359  enum DecodingState {
360  DEC_NONE,
361  DEC_STOPPED,
362  DEC_DECODING,
363  DEC_BUFFERING
364  };
365 
366  typedef std::pair<std::string, std::string> NetStreamStatus;
367 
369  //
373  void getStatusCodeInfo(StatusCode code, NetStreamStatus& info);
374 
376  as_object* getStatusObject(StatusCode code);
377 
379  //
382  void initVideoDecoder(const media::VideoInfo& info);
383 
385  //
388  void initAudioDecoder(const media::AudioInfo& parser);
389 
390  // Setups the playback
391  bool startPlayback();
392 
393  // Pauses the playhead
394  //
395  // Users:
396  // - ::decodeFLVFrame()
397  // - ::pause()
398  // - ::play()
399  //
400  void pausePlayback();
401 
402  // Resumes the playback
403  //
404  // Users:
405  // - ::av_streamer()
406  // - ::play()
407  // - ::startPlayback()
408  // - ::advance()
409  //
410  void unpausePlayback();
411 
413  //
426  void refreshVideoFrame(bool alsoIfPaused = false);
427 
430  void refreshAudioBuffer();
431 
433  //
436  std::unique_ptr<image::GnashImage> decodeNextVideoFrame();
437 
439  //
442  BufferedAudioStreamer::CursoredBuffer* decodeNextAudioFrame();
443 
447  void pushDecodedAudioFrames(std::uint32_t ts);
448 
450  //
459  std::unique_ptr<image::GnashImage> getDecodedVideoFrame(std::uint32_t ts);
460 
461  DecodingState decodingStatus(DecodingState newstate = DEC_NONE);
462 
466  void parseNextChunk();
467 
469  //
486  void setStatus(StatusCode code);
487 
491  //
498  void processStatusNotifications();
499 
501  void stopAdvanceTimer();
502 
504  void startAdvanceTimer();
505 
506  NetConnection_as* _netCon;
507 
508  std::unique_ptr<CharacterProxy> _audioController;
509 
510  // The size of the buffer in milliseconds
511  std::uint32_t _bufferTime;
512 
513  // Mutex to insure we don't corrupt the image
514  std::mutex image_mutex;
515 
516  // The image/videoframe which is given to the renderer
517  std::unique_ptr<image::GnashImage> _imageframe;
518 
519  // The video URL
520  std::string url;
521 
522  // The input media parser
523  std::unique_ptr<media::MediaParser> _parser;
524 
525  // The position in the inputfile, only used when not playing a FLV
526  long _inputPos;
527 
529  DisplayObject* _invalidatedVideoCharacter;
530 
532  std::atomic<int> _decoding_state;
533 
535  std::unique_ptr<media::VideoDecoder> _videoDecoder;
536 
538  bool _videoInfoKnown;
539 
541  std::unique_ptr<media::AudioDecoder> _audioDecoder;
542 
544  bool _audioInfoKnown;
545 
547  std::unique_ptr<InterruptableVirtualClock> _playbackClock;
548 
550  PlayHead _playHead;
551 
552  // Current sound handler
553  sound::sound_handler* _soundHandler;
554 
555  // Current media handler
556  media::MediaHandler* _mediaHandler;
557 
559  //
563  std::unique_ptr<IOChannel> _inputStream;
564 
566  BufferedAudioStreamer _audioStreamer;
567 
569  //
571  std::atomic<int> _statusCode;
572 };
573 
574 void netstream_class_init(as_object& global, const ObjectURI& uri);
575 
576 void registerNetStreamNative(as_object& global);
577 
578 } // gnash namespace
579 
580 #endif
581 
AMF.h
gnash::CharacterProxy
A proxy for DisplayObject pointers.
Definition: CharacterProxy.h:44
sound_handler.h
gnash::NetStream_as::bytesTotal
long bytesTotal()
Returns the total number of bytes (size) of the media file.
Definition: NetStream_as.cpp:1427
gnash::isNativeType
bool isNativeType(const as_object *obj, T *&relay)
Check whether the object is an instance of a known type.
Definition: as_object.h:875
gnash::movie_root::removeAdvanceCallback
void removeAdvanceCallback(ActiveRelay *obj)
Definition: movie_root.cpp:1464
gnash::toNumber
double toNumber(const as_value &v, const VM &vm)
Convert an as_value to a double.
Definition: VM.cpp:451
gnash::NetConnection_as::getStream
std::unique_ptr< IOChannel > getStream(const std::string &name)
Get an stream by name.
Definition: NetConnection_as.cpp:628
movie_root.h
gnash::NetStream_as::pauseModeToggle
@ pauseModeToggle
Definition: NetStream_as.h:187
gnash::media::MediaHandler::createMediaParser
virtual std::unique_ptr< MediaParser > createMediaParser(std::unique_ptr< IOChannel > stream)
Return an appropriate MediaParser for given input.
Definition: MediaHandler.cpp:65
AudioDecoder.h
gnash::NetStream_as::audio_streamer
static unsigned int audio_streamer(void *udata, std::int16_t *samples, unsigned int nSamples, bool &eof)
Callback used by sound_handler to get audio data.
gnash::NetStream_as::seek
void seek(std::uint32_t pos)
Seek in the media played by the current instance.
Definition: NetStream_as.cpp:725
gnash::NetStream_as::getCurrentFPS
double getCurrentFPS()
Returns the current framerate in frames per second.
Definition: NetStream_as.h:255
gnash::PlayHead::getPosition
std::uint64_t getPosition() const
Get current playhead position (milliseconds)
Definition: PlayHead.h:77
PlayHead.h
gnash::toBool
bool toBool(const as_value &v, const VM &vm)
Convert an as_value to boolean type.
Definition: VM.cpp:445
gnash::as_object
The base class for all ActionScript objects.
Definition: as_object.h:162
gnash::as_object::setRelay
void setRelay(Relay *p)
Set the as_object's Relay object.
Definition: as_object.h:604
AMFConverter.h
gnash::HostMessage::NOTIFY_ERROR
@ NOTIFY_ERROR
Definition: HostInterface.h:166
gnash::toObject
as_object * toObject(const as_value &v, VM &vm)
Convert an as_value to an object.
Definition: VM.cpp:457
gnash::BufferedAudioStreamer::attachAuxStreamer
void attachAuxStreamer()
Attach the aux streamer.
Definition: NetStream_as.cpp:1450
gnash::NetStream_as::PauseMode
PauseMode
Definition: NetStream_as.h:186
gnash::BufferedAudioStreamer::_soundHandler
sound::sound_handler * _soundHandler
Definition: NetStream_as.h:125
gnash::sound::sound_handler::unplugInputStream
virtual void unplugInputStream(InputStream *id)
Unplug an external InputStream from the mixer.
Definition: sound_handler.cpp:373
gnash::NetStream_as::playbackState
PlayHead::PlaybackStatus playbackState() const
Definition: NetStream_as.h:196
gnash::PlayHead::PLAY_PLAYING
@ PLAY_PLAYING
Definition: PlayHead.h:40
gnash::log_debug
void log_debug(StringType msg, Args... args)
Definition: log.h:301
gnash::BufferedAudioStreamer::cleanAudioQueue
void cleanAudioQueue()
Definition: NetStream_as.cpp:1573
VirtualClock.h
gnash::NetStream_as::setAudioController
void setAudioController(DisplayObject *controller)
Make audio controlled by given DisplayObject.
Definition: NetStream_as.cpp:278
LOG_ONCE
#define LOG_ONCE(x)
Definition: log.h:49
gnash::NetStream_as::play
void play(const std::string &source)
Starts the playback of the media.
Definition: NetStream_as.cpp:359
_
#define _(String)
Definition: log.h:44
gnash::ActiveRelay::owner
as_object & owner() const
Return the as_object that this Relay is attached to.
Definition: Relay.h:108
gnash::NetStream_as::pauseModePause
@ pauseModePause
Definition: NetStream_as.h:188
gnash::VM
The AVM1 virtual machine.
Definition: VM.h:72
MediaHandler.h
gnash
Anonymous namespace for callbacks, local functions, event handlers etc.
Definition: dbus_ext.cpp:41
gnash::SoundException
An exception from SoundHandler subsystem.
Definition: GnashException.h:70
gnash::BufferedAudioStreamer::CursoredBuffer::m_ptr
std::uint8_t * m_ptr
Cursor into the data.
Definition: NetStream_as.h:117
gnash::NetStream_as::setInvalidatedVideo
void setInvalidatedVideo(DisplayObject *ch)
Register the DisplayObject to invalidate on video updates.
Definition: NetStream_as.h:309
gnash::BufferedAudioStreamer::_audioQueueMutex
std::mutex _audioQueueMutex
Definition: NetStream_as.h:136
GNASH_REPORT_FUNCTION
#define GNASH_REPORT_FUNCTION
Definition: log.h:452
gnash::NetStream_as::NetStream_as
NetStream_as(as_object *owner)
Contruct a NetStream object.
Definition: NetStream_as.cpp:100
gnash::BufferedAudioStreamer::CursoredBuffer::m_data
std::uint8_t * m_data
Actual data.
Definition: NetStream_as.h:114
gnash::media::VideoInfo
Information about a video stream.
Definition: MediaParser.h:323
gnash::key::m
@ m
Definition: GnashKey.h:159
gnash::BufferedAudioStreamer::fetch
unsigned int fetch(std::int16_t *samples, unsigned int nSamples, bool &eof)
Fetch samples from the audio queue.
Definition: NetStream_as.cpp:1505
gnash::PlayHead::setAudioConsumerAvailable
void setAudioConsumerAvailable()
Set an audio consumer as available.
Definition: PlayHead.h:71
NativeFunction.h
gnash::key::n
@ n
Definition: GnashKey.h:160
start
@ start
Definition: klash_part.cpp:330
Global_as.h
gnash::getGlobal
Global_as & getGlobal(const as_environment &env)
Definition: as_environment.cpp:651
gnash::BufferedAudioStreamer::BufferedAudioStreamer
BufferedAudioStreamer(sound::sound_handler *handler)
Definition: NetStream_as.cpp:1495
gnash::getVM
VM & getVM(const as_environment &env)
Definition: as_environment.h:222
ts
std::uint32_t ts
Definition: LocalConnection_as.cpp:150
gnash::NetConnection_as
NetConnection ActionScript class.
Definition: NetConnection_as.h:46
gnash::NetStream_as::markReachableResources
virtual void markReachableResources() const
Mark any reachable resources other than the owner.
Definition: NetStream_as.cpp:284
gnash::BufferedAudioStreamer::AudioQueue
boost::ptr_deque< CursoredBuffer > AudioQueue
Definition: NetStream_as.h:120
UNUSED
#define UNUSED(x)
Definition: utility.h:113
gnash::log_error
void log_error(StringType msg, Args... args)
Definition: log.h:283
gnash::NetStream_as::time
std::int32_t time()
Tells where the playhead currently is.
Definition: NetStream_as.cpp:1380
gnash::BufferedAudioStreamer::_audioQueue
AudioQueue _audioQueue
Definition: NetStream_as.h:129
gnash::PlayHead::setAudioConsumed
void setAudioConsumed()
Mark current position as being consumed by audio consumer.
Definition: PlayHead.h:107
gnash::createObject
as_object * createObject(const Global_as &gl)
Definition: Global_as.cpp:303
gnash::BufferedAudioStreamer::CursoredBuffer::CursoredBuffer
CursoredBuffer()
Definition: NetStream_as.h:95
NetStream_as.h
gnash::fn_call
Parameters/environment for builtin or user-defined functions callable from ActionScript.
Definition: fn_call.h:118
gnash::callMethod
as_value callMethod(fn_call::Args &args, as_object *obj, const ObjectURI &uri)
Call a member function of this object in an AS-compatible way.
Definition: Global_as.h:219
gnash::BufferedAudioStreamer::CursoredBuffer::m_size
std::uint32_t m_size
Number of samples left in buffer starting from cursor.
Definition: NetStream_as.h:108
gnash::NetStream_as::videoWidth
int videoWidth() const
Get the real width of the video in pixels if the decoder exists.
Definition: NetStream_as.cpp:1200
gnash::netstream_class_init
void netstream_class_init(as_object &where, const ObjectURI &uri)
Definition: NetStream_as.cpp:130
gnash::sound::adjustVolume
void adjustVolume(T *start, T *end, float volume)
Volume adjustment.
Definition: SoundUtils.h:39
gnash::getRunResources
const RunResources & getRunResources(const as_object &o)
Get the RunResources from an as_object.
Definition: as_object.cpp:1142
gnash::NSV::PROP_ON_STATUS
@ PROP_ON_STATUS
Definition: namedStrings.h:179
GnashAlgorithm.h
gnash::amf::readString
std::string readString(const std::uint8_t *&pos, const std::uint8_t *end)
Read a string value from the buffer.
Definition: AMF.cpp:87
gnash::sound::sound_handler::attach_aux_streamer
virtual InputStream * attach_aux_streamer(aux_streamer_ptr ptr, void *udata)
Plug an external InputStream into the mixer.
Definition: sound_handler.cpp:820
IF_VERBOSE_ASCODING_ERRORS
#define IF_VERBOSE_ASCODING_ERRORS(x)
Definition: log.h:397
gnash::key::code
code
Definition: GnashKey.h:44
gnash::get
T * get(as_object *o)
Extract the DisplayObject attached to an object.
Definition: as_object.h:842
gnash::ActiveRelay
A native type that requires periodic updates from the core (movie_root).
Definition: Relay.h:80
gnash::NetStream_as::~NetStream_as
~NetStream_as()
Definition: NetStream_as.cpp:303
gnash::VM::registerNative
void registerNative(as_c_function_ptr fun, unsigned int x, unsigned int y)
Definition: VM.cpp:268
gnash::BufferedAudioStreamer::_audioQueueSize
size_t _audioQueueSize
Number of bytes in the audio queue, protected by _audioQueueMutex.
Definition: NetStream_as.h:132
gnash::PlayHead::seekTo
void seekTo(std::uint64_t position)
Change current position to the given time.
Definition: PlayHead.cpp:112
gnash::fn_call::nargs
Args::size_type nargs
Number of arguments to this ActionScript function call.
Definition: fn_call.h:178
VideoDecoder.h
gnash::NetStream_as::pauseModeUnPause
@ pauseModeUnPause
Definition: NetStream_as.h:189
gnash::PlayHead::PlaybackStatus
PlaybackStatus
Flags for playback state.
Definition: PlayHead.h:39
gnash::DisplayObject::set_invalidated
void set_invalidated()
This function marks the DisplayObject as being modified in aspect and keeps track of current invalida...
Definition: DisplayObject.cpp:183
gnash::as_value
ActionScript value type.
Definition: as_value.h:95
gnash::NetStream_as
NetStream_as ActionScript class.
Definition: NetStream_as.h:182
gnash::BufferedAudioStreamer::push
void push(CursoredBuffer *audio)
Push a buffer to the audio queue.
Definition: NetStream_as.cpp:1555
VM.h
gnash::NetStream_as::bufferLength
long bufferLength()
Definition: NetStream_as.cpp:192
gnash::PlayHead::getState
PlaybackStatus getState() const
Get current playback state.
Definition: PlayHead.h:80
SoundUtils.h
gnash::NetStream_as::get_video
std::unique_ptr< image::GnashImage > get_video()
Returns the video frame closest to current cursor. See time().
Definition: NetStream_as.cpp:203
gnash::NetStream_as::update
void update()
Definition: NetStream_as.cpp:1208
gnash::NetStream_as::close
void close()
Definition: NetStream_as.cpp:335
gnash::NetConnection_as::isConnected
bool isConnected() const
Definition: NetConnection_as.h:92
gnash::PlayHead::isVideoConsumed
bool isVideoConsumed() const
Return true if video of current position have been consumed.
Definition: PlayHead.h:89
gnash::NetStream_as::isConnected
bool isConnected() const
Return true if the NetStream has an associated NetConnection.
Definition: NetStream_as.h:267
gnash::fn_call::arg
const Args::value_type & arg(unsigned int n) const
Access a particular argument.
Definition: fn_call.h:194
gnash::PlayHead::advanceIfConsumed
void advanceIfConsumed()
Advance position if all available consumers consumed the current one.
Definition: PlayHead.cpp:89
gnash::media::MediaHandler::createAudioDecoder
virtual std::unique_ptr< AudioDecoder > createAudioDecoder(const AudioInfo &info)=0
Create an AudioDecoder for decoding what's specified in the AudioInfo.
gnash::log_aserror
void log_aserror(StringType msg, Args... args)
Definition: log.h:331
Relay.h
log.h
gnash::BufferedAudioStreamer::_auxStreamer
sound::InputStream * _auxStreamer
Definition: NetStream_as.h:139
gnash::getRoot
movie_root & getRoot(const as_environment &env)
Definition: as_environment.cpp:645
gnash::NetStream_as::bufferTime
std::uint32_t bufferTime()
Definition: NetStream_as.h:282
gnash::media::MediaHandler::createVideoDecoder
virtual std::unique_ptr< VideoDecoder > createVideoDecoder(const VideoInfo &info)=0
Create a VideoDecoder for decoding what's specified in the VideoInfo.
fn_call.h
gnash::NetStream_as::videoHeight
int videoHeight() const
Get the real height of the video in pixels if the decoder exists.
Definition: NetStream_as.cpp:1193
NetConnection_as.h
gnash::as_object::get_prototype
as_object * get_prototype() const
Return this object's proto member.
Definition: as_object.cpp:932
gnash::sound::sound_handler
Sound mixer.
Definition: sound_handler.h:88
gnash::InterruptableVirtualClock
A VirtualClock wrapper adding pause/resume capabilities.
Definition: VirtualClock.h:55
gnashconfig.h
gnash::BufferedAudioStreamer::CursoredBuffer::~CursoredBuffer
~CursoredBuffer()
Definition: NetStream_as.h:102
namedStrings.h
gnash::registerBuiltinClass
as_object * registerBuiltinClass(as_object &where, Global_as::ASFunction ctor, Global_as::Properties p, Global_as::Properties c, const ObjectURI &uri)
Register a built-in class.
Definition: Global_as.h:144
gnash::BufferedAudioStreamer::detachAuxStreamer
void detachAuxStreamer()
Detach the aux streamer.
Definition: NetStream_as.cpp:1472
RunResources.h
test.uri
uri
Definition: test.py:12
gnash::log_security
void log_security(StringType msg, Args... args)
Definition: log.h:319
gnash::NetStream_as::bytesLoaded
long bytesLoaded()
Returns the number of bytes of the media file that have been buffered.
Definition: NetStream_as.cpp:1416
gnash::ActiveRelay::setReachable
virtual void setReachable()
Mark any other reachable resources, and finally mark our owner.
Definition: Relay.cpp:36
gnash::registerNetStreamNative
void registerNetStreamNative(as_object &global)
Definition: NetStream_as.cpp:139
gnash::getURI
ObjectURI getURI(const VM &vm, const std::string &str, bool lowerCaseHint=false)
Definition: VM.h:290
gnash::PlayHead::PLAY_PAUSED
@ PLAY_PAUSED
Definition: PlayHead.h:41
gnash::media::MediaParser::OrderedMetaTags
std::vector< MetaTags::mapped_type > OrderedMetaTags
Definition: MediaParser.h:482
gnash::BufferedAudioStreamer::CursoredBuffer
A buffer with a cursor state.
Definition: NetStream_as.h:93
gnash::DisplayObject
DisplayObject is the base class for all DisplayList objects.
Definition: DisplayObject.h:169
gnash::BufferedAudioStreamer::fetchWrapper
static unsigned int fetchWrapper(void *owner, std::int16_t *samples, unsigned int nSamples, bool &eof)
Fetch samples from the audio queue.
Definition: NetStream_as.cpp:1486
gnash::PlayHead::setVideoConsumerAvailable
void setVideoConsumerAvailable()
Set a video consumer as available.
Definition: PlayHead.h:61
source
@ source
Definition: klash_part.cpp:329
CharacterProxy.h
gnash::sound::InputStream
A sound input stream.
Definition: InputStream.h:47
gnash::fn_call::this_ptr
as_object * this_ptr
Definition: fn_call.h:170
StreamProvider.h
gnash::key::o
@ o
Definition: GnashKey.h:161
gnash::NetStream_as::setBufferTime
void setBufferTime(std::uint32_t time)
Definition: NetStream_as.cpp:184
gnash::log_unimpl
void log_unimpl(StringType msg, Args... args)
Definition: log.h:289
gnash::ObjectURI
A URI for describing as_objects.
Definition: ObjectURI.h:45
gnash::PlayHead::isAudioConsumed
bool isAudioConsumed() const
Return true if audio of current position have been consumed.
Definition: PlayHead.h:101
gnash::BufferedAudioStreamer
Buffered AudioStreamer.
Definition: NetStream_as.h:79
GnashException.h
gnash::NetStream_as::pause
void pause(PauseMode mode)
Pauses/starts the playback of the media played by the current instance.
Definition: NetStream_as.cpp:311
gnash::key::e
@ e
Definition: GnashKey.h:151
gnash::PlayHead::setState
PlaybackStatus setState(PlaybackStatus newState)
Set playback state, returning old state.
Definition: PlayHead.cpp:45
gnash::PlayHead::setVideoConsumed
void setVideoConsumed()
Mark current position as being consumed by video consumer.
Definition: PlayHead.h:95
gnash::movie_root::addAdvanceCallback
void addAdvanceCallback(ActiveRelay *obj)
Definition: movie_root.cpp:1458
gnash::NetStream_as::setNetCon
void setNetCon(NetConnection_as *nc)
Sets the NetConnection needed to access external files.
Definition: NetStream_as.h:262
gnash::GcResource::setReachable
void setReachable() const
Mark this resource as being reachable.
Definition: GC.h:92