AvTranscoder  0.9.4
C++APIforLibav/FFmpeg
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
IOutputFile.hpp
Go to the documentation of this file.
1 #ifndef _AV_TRANSCODER_FILE_IOUTPUT_FILE_HPP_
2 #define _AV_TRANSCODER_FILE_IOUTPUT_FILE_HPP_
3 
5 
9 
11 
12 #include <string>
13 #include <stdexcept>
14 
15 namespace avtranscoder
16 {
17 
18 /**
19  * @brief IOutputfile is the interface to wrap and write medias.
20  * It can be overloaded to integrate custom wrapper.
21  **/
22 class AvExport IOutputFile
23 {
24 public:
25  virtual ~IOutputFile(){};
26 
27  /**
28  * @brief Add a video output stream
29  * @param videoCodec description of output stream
30  **/
31  virtual IOutputStream& addVideoStream(const VideoCodec& videoCodec)
32  {
33  throw std::logic_error("function is not implemented");
34  }
35 
36  /**
37  * @brief Add an audio output stream
38  * @param audioCodec description of output stream
39  **/
40  virtual IOutputStream& addAudioStream(const AudioCodec& audioCodec)
41  {
42  throw std::logic_error("function is not implemented");
43  }
44 
45  /**
46  * @brief Add a data output stream
47  * @param dataCodec description of output stream
48  **/
49  virtual IOutputStream& addDataStream(const DataCodec& dataCodec)
50  {
51  throw std::logic_error("function is not implemented");
52  }
53 
54  /**
55  * @brief Write the header of file (if necessary)
56  **/
57  virtual bool beginWrap() = 0;
58 
59  /**
60  * @brief Wrap a packet of data in the output ressource
61  * @param data coded packet information for the current stream
62  * @param streamIndex refers to the stream in output ressource
63  * @return the wrapping status after wrapping
64  * @see EWrappingStatus
65  **/
66  virtual IOutputStream::EWrappingStatus wrap(const CodedData& data, const size_t streamIndex) = 0;
67 
68  /**
69  * @brief Write the footer of file (if necessary)
70  **/
71  virtual bool endWrap() = 0;
72 
73  /**
74  * @brief Get the output stream
75  * @param streamIndex select the output stream
76  * @return the output stream reference
77  **/
78  virtual IOutputStream& getStream(const size_t streamIndex) = 0;
79 };
80 }
81 
82 #endif
IOutputfile is the interface to wrap and write medias. It can be overloaded to integrate custom wrapp...
Definition: IOutputFile.hpp:22
EWrappingStatus
define wrapping result status
virtual IOutputStream & addVideoStream(const VideoCodec &videoCodec)
Add a video output stream.
Definition: IOutputFile.hpp:31
virtual IOutputStream & addDataStream(const DataCodec &dataCodec)
Add a data output stream.
Definition: IOutputFile.hpp:49
virtual IOutputStream & addAudioStream(const AudioCodec &audioCodec)
Add an audio output stream.
Definition: IOutputFile.hpp:40
This class describes coded data.
Definition: CodedData.hpp:18
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy