20 #ifndef GNASH_MEDIAPARSER_H
21 #define GNASH_MEDIAPARSER_H
23 #include <boost/scoped_array.hpp>
24 #include <boost/shared_ptr.hpp>
25 #include <boost/thread/thread.hpp>
26 #include <boost/thread/condition.hpp>
27 #include <boost/thread/barrier.hpp>
33 #include <boost/optional.hpp>
39 #define LOAD_MEDIA_IN_A_SEPARATE_THREAD 1
232 boost::uint16_t sampleSizei,
bool stereoi,
233 boost::uint64_t durationi,
codecType typei)
318 VideoInfo(
int codeci, boost::uint16_t widthi, boost::uint16_t heighti,
319 boost::uint16_t frameRatei, boost::uint64_t durationi,
395 const boost::uint8_t*
data()
const {
return _data.get(); }
401 boost::uint64_t
timestamp()
const {
return _timestamp; }
410 boost::uint32_t _size;
411 boost::scoped_array<boost::uint8_t> _data;
412 unsigned int _frameNum;
413 boost::uint64_t _timestamp;
421 boost::scoped_array<boost::uint8_t>
data;
443 typedef std::multimap<boost::uint64_t, boost::shared_ptr<SimpleBuffer> >
466 virtual bool seek(boost::uint32_t& time)=0;
614 virtual boost::optional<Id3Info>
getId3Info()
const;
700 void waitIfNeeded(boost::mutex::scoped_lock& qMutexLock);
726 typedef std::deque<EncodedVideoFrame*> VideoFrames;
727 typedef std::deque<EncodedAudioFrame*> AudioFrames;
750 VideoFrames _videoFrames;
756 AudioFrames _audioFrames;
758 void requestParserThreadKill()
766 boost::uint64_t audioBufferLength()
const;
769 boost::uint64_t videoBufferLength()
const;
772 boost::uint64_t getBufferLengthNoLock()
const;
780 #endif // __MEDIAPARSER_H__