19 #ifndef GNASH_SWF_DEFINEVIDEOSTREAMTAG_H
20 #define GNASH_SWF_DEFINEVIDEOSTREAMTAG_H
22 #include <boost/shared_array.hpp>
23 #include <boost/thread/mutex.hpp>
24 #include <boost/ptr_container/ptr_vector.hpp>
35 class movie_definition;
47 VideoData(boost::shared_array<boost::uint8_t>
data, boost::uint32_t size,
74 typedef boost::ptr_vector<media::EncodedVideoFrame> EmbeddedFrames;
83 typedef EmbeddedFrames::const_reference Frame;
85 bool operator()(Frame frame,
size_t i)
const {
86 return frame.frameNum() <
i;
89 bool operator()(
size_t i, Frame frame)
const {
90 return i < frame.frameNum();
141 size_t visitSlice(
const T&
t, boost::uint32_t from, boost::uint32_t to)
const {
143 boost::mutex::scoped_lock lock(_video_mutex);
146 EmbeddedFrames::const_iterator lower = std::lower_bound(
147 _video_frames.begin(), _video_frames.end(), from, FrameFinder());
149 EmbeddedFrames::const_iterator upper = std::upper_bound(
150 lower, _video_frames.end(), to, FrameFinder());
153 return (upper - lower);
172 boost::uint8_t m_reserved_flags;
175 boost::uint8_t m_deblocking_flags;
178 bool m_smoothing_flags;
186 boost::uint16_t m_num_frames;
202 mutable boost::mutex _video_mutex;
204 EmbeddedFrames _video_frames;
207 boost::uint32_t _width;
210 boost::uint32_t _height;
216 std::auto_ptr<media::VideoInfo> _videoInfo;
224 #endif // GNASH_VIDEO_STREAM_DEF_H
Client program's interface to the definition of a movie or sprite.
Definition: movie_definition.h:95
void for_each(C &container, R(T::*pmf)(const A &), const A &arg)
Definition: Renderer_ogl.cpp:692
DisplayObject is the base class for all DisplayList objects.
Definition: DisplayObject.h:168
TagType
SWF tag types. Symbolic names copied from Ming.
Definition: SWF.h:30
void readDefineVideoFrame(SWFStream &in, SWF::TagType tag, movie_definition &m)
Read tag SWF::VIDEOFRAME.
media::VideoInfo * getVideoInfo() const
Get info about video embedded in this definition.
Definition: DefineVideoStreamTag.h:132
SimpleBuffer data
Definition: LocalConnection_as.cpp:153
Anonymous namespace for callbacks, local functions, event handlers etc.
Definition: dbus_ext.cpp:40
Immutable data representing the definition of a movie display element.
Definition: DefinitionTag.h:48
Definition: GnashKey.h:164
boost::shared_array< boost::uint8_t > videoData
Definition: DefineVideoStreamTag.h:60
Definition: GnashKey.h:166
static void loader(SWFStream &in, SWF::TagType tag, movie_definition &m, const RunResources &r)
Read tag SWF::DEFINEVIDEOSTREAM.
Definition: DefineVideoStreamTag.cpp:55
Class to group together per-run and external resources for Gnash.
Definition: RunResources.h:43
DisplayObject * createDisplayObject(Global_as &gl, DisplayObject *parent) const
Create a DisplayObject with the given parent.
Definition: DefineVideoStreamTag.cpp:116
VideoData(boost::shared_array< boost::uint8_t > data, boost::uint32_t size, media::videoFrameType ft)
Definition: DefineVideoStreamTag.h:47
The Global object ultimately contains all objects in an ActionScript run.
Definition: Global_as.h:55
media::videoFrameType frameType
Definition: DefineVideoStreamTag.h:62
Definition: DefineVideoStreamTag.h:67
size_t visitSlice(const T &t, boost::uint32_t from, boost::uint32_t to) const
Visit a slice of encoded video frames.
Definition: DefineVideoStreamTag.h:141
Definition: GnashKey.h:132
Rectangle class, see swf defined rectangle record.
Definition: SWFRect.h:44
~DefineVideoStreamTag()
Definition: DefineVideoStreamTag.cpp:49
Definition: GnashKey.h:155
void addVideoFrameTag(std::auto_ptr< media::EncodedVideoFrame > frame)
Definition: DefineVideoStreamTag.cpp:108
Definition: GnashKey.h:159
boost::uint32_t dataSize
Definition: DefineVideoStreamTag.h:61
const SWFRect & bounds() const
Return local video bounds in twips.
Definition: DefineVideoStreamTag.h:123
~VideoData()
Definition: DefineVideoStreamTag.h:56
Definition: DefineVideoStreamTag.h:44
Definition: GnashKey.h:331
SWF stream wrapper class.
Definition: SWFStream.h:58