AvTranscoder  0.9.4
C++APIforLibav/FFmpeg
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
IInputStream.hpp
Go to the documentation of this file.
1 #ifndef _AV_TRANSCODER_CODED_STREAM_I_INPUT_STREAM_HPP_
2 #define _AV_TRANSCODER_CODED_STREAM_I_INPUT_STREAM_HPP_
3 
5 
9 
11 
12 namespace avtranscoder
13 {
14 
15 class AvExport IInputStream
16 {
17 public:
18  virtual ~IInputStream(){};
19 
20  /**
21  * @brief Read the next packet of the stream
22  * @param data: data of next packet read
23  * @return if next packet was read succefully
24  **/
25  virtual bool readNextPacket(CodedData& data) = 0;
26 
27  /**
28  * @note The returned object could be cast depending on the type of the stream (video, audio...)
29  * @see VideoProperties, AudioProperties...
30  * @return the properties of the stream
31  */
32  virtual const StreamProperties& getProperties() const = 0;
33 
34  /**
35  * @return the index of the stream
36  */
37  virtual size_t getStreamIndex() const = 0;
38 
39  //@{
40  /**
41  * Return the codec informations of the stream
42  * @exception Raise a runtime error if the stream is not of the corresponding type
43  */
44  virtual VideoCodec& getVideoCodec() = 0;
45  virtual AudioCodec& getAudioCodec() = 0;
46  virtual DataCodec& getDataCodec() = 0;
47  //@}
48 
49  //@{
50  /**
51  * @brief Functions about buffering
52  * Activate the stream will buffered its data when read packets.
53  * @see IInputStream methods
54  */
55  virtual void activate(const bool activate = true) = 0;
56  virtual bool isActivated() const = 0;
57  virtual void clearBuffering() = 0;
58  //@}
59 };
60 }
61 
62 #endif
Virtual based class of properties for all types of stream.
This class describes coded data.
Definition: CodedData.hpp:18