AvTranscoder  0.9.4
C++APIforLibav/FFmpeg
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
VideoDecoder.hpp
Go to the documentation of this file.
1 #ifndef _AV_TRANSCODER_DECODER_VIDEO_DECODER_HPP_
2 #define _AV_TRANSCODER_DECODER_VIDEO_DECODER_HPP_
3 
4 #include "IDecoder.hpp"
5 
6 namespace avtranscoder
7 {
8 
9 class InputStream;
10 
11 class AvExport VideoDecoder : public IDecoder
12 {
13 public:
14  VideoDecoder(InputStream& inputStream);
15  ~VideoDecoder();
16 
17  void setupDecoder(const ProfileLoader::Profile& profile = ProfileLoader::Profile());
18 
19  bool decodeNextFrame(Frame& frameBuffer);
20  bool decodeNextFrame(Frame& frameBuffer, const size_t subStreamIndex);
21 
22  void flushDecoder();
23 
24 private:
25  InputStream* _inputStream; ///< Stream from which we read next frames (no ownership, has link)
26 
27  bool _isSetup;
28 };
29 }
30 
31 #endif
std::map< std::string, std::string > Profile
This class describes decoded (raw) audio or video data.
Definition: Frame.hpp:16
InputStream * _inputStream
Stream from which we read next frames (no ownership, has link)