Go to the documentation of this file.
20 #ifndef GNASH_MEDIAPARSER_H
21 #define GNASH_MEDIAPARSER_H
26 #include <condition_variable>
32 #include <boost/optional.hpp>
38 #define LOAD_MEDIA_IN_A_SEPARATE_THREAD 1
208 os <<
"Uncompressed";
211 os <<
"Nellymoser 8Hz mono";
217 os <<
"Advanced Audio Coding";
223 os <<
"unknown/invalid codec " <<
static_cast<int>(
t);
268 std::uint16_t sampleSizei,
bool stereoi,
269 std::uint64_t durationi,
codecType typei)
354 VideoInfo(
int codeci, std::uint16_t widthi, std::uint16_t heighti,
355 std::uint16_t frameRatei, std::uint64_t durationi,
431 const std::uint8_t*
data()
const {
return _data.get(); }
447 std::unique_ptr<std::uint8_t[]> _data;
448 unsigned int _frameNum;
449 std::uint64_t _timestamp;
457 std::unique_ptr<std::uint8_t[]>
data;
479 typedef std::multimap<std::uint64_t, std::shared_ptr<SimpleBuffer> >
503 virtual bool seek(std::uint32_t& time)=0;
514 DSOEXPORT std::uint64_t getBufferLength()
const;
524 return _bufferTime.load();
544 DSOEXPORT bool nextFrameTimestamp(std::uint64_t&
ts)
const;
553 DSOEXPORT bool nextVideoFrameTimestamp(std::uint64_t&
ts)
const;
562 DSOEXPORT std::unique_ptr<EncodedVideoFrame> nextVideoFrame();
571 DSOEXPORT bool nextAudioFrameTimestamp(std::uint64_t&
ts)
const;
580 DSOEXPORT std::unique_ptr<EncodedAudioFrame> nextAudioFrame();
621 return _stream->size();
649 virtual boost::optional<Id3Info> getId3Info()
const;
670 void startParserThread();
679 void stopParserThread();
688 void pushEncodedAudioFrame(std::unique_ptr<EncodedAudioFrame> frame);
694 void pushEncodedVideoFrame(std::unique_ptr<EncodedVideoFrame> frame);
712 return _parserThreadKillRequested.load();
726 void waitIfNeeded(std::unique_lock<std::mutex>& qMutexLock);
740 bool bufferFull()
const;
749 typedef std::deque<std::unique_ptr<EncodedVideoFrame>> VideoFrames;
750 typedef std::deque<std::unique_ptr<EncodedAudioFrame>> AudioFrames;
773 VideoFrames _videoFrames;
779 AudioFrames _audioFrames;
781 void requestParserThreadKill()
783 _parserThreadKillRequested=
true;
784 _parserThreadWakeup.notify_all();
788 std::uint64_t audioBufferLength()
const;
791 std::uint64_t videoBufferLength()
const;
794 std::uint64_t getBufferLengthNoLock()
const;
802 #endif // __MEDIAPARSER_H__
void log_debug(StringType msg, Args... args)
Definition: log.h:301
@ i
Definition: GnashKey.h:155
#define _(String)
Definition: log.h:44
Anonymous namespace for callbacks, local functions, event handlers etc.
Definition: dbus_ext.cpp:41
std::uint32_t ts
Definition: LocalConnection_as.cpp:150
void log_error(StringType msg, Args... args)
Definition: log.h:283
@ t
Definition: GnashKey.h:166
void gnashSleep(time_t useconds)
Sleep compatibly for the specified number of microseconds.
Definition: GnashSleep.h:35
#define DSOEXPORT
Definition: dsodefs.h:55
@ e
Definition: GnashKey.h:151