forked from avTranscoder/avTranscoder
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathIDecoder.hpp
More file actions
48 lines (39 loc) · 1.23 KB
/
Copy pathIDecoder.hpp
File metadata and controls
48 lines (39 loc) · 1.23 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#ifndef _AV_TRANSCODER_ESSENCE_STREAM_IDECODER_HPP_
#define _AV_TRANSCODER_ESSENCE_STREAM_IDECODER_HPP_
#include <AvTranscoder/common.hpp>
#include <AvTranscoder/frame/Frame.hpp>
#include <AvTranscoder/profile/ProfileLoader.hpp>
namespace avtranscoder
{
class AvExport IDecoder
{
public:
virtual ~IDecoder() {};
/**
* @brief Setup the decoder
* @param profile: set decoder parameters from the given profile
* @note Open the decoder.
*/
virtual void setupDecoder( const ProfileLoader::Profile& profile = ProfileLoader::Profile() ) = 0;
/**
* @brief Decode next frame
* @param frameBuffer: the frame decoded
* @return status of decoding
*/
virtual bool decodeNextFrame( Frame& frameBuffer ) = 0;
/**
* @brief Decode substream of next frame
* @param frameBuffer: the frame decoded
* @param subStreamIndex: index of substream to extract
* @return status of decoding
*/
virtual bool decodeNextFrame( Frame& frameBuffer, const size_t subStreamIndex ) = 0;
/**
* @brief Set the next frame of the input stream (which bypass the work of decoding)
* @note Not yet implemented for VideoDecoder and AudioDecoder
* @param inputFrame: the new next frame
*/
virtual void setNextFrame( Frame& inputFrame ) {}
};
}
#endif