1 #ifndef _AV_TRANSCODER_TRANSCODER_HPP_
2 #define _AV_TRANSCODER_TRANSCODER_HPP_
61 void add(
const std::string& filename);
71 void add(
const std::string& filename,
const size_t streamIndex,
const std::string& profileName =
"",
72 const float offset = 0);
77 void add(
const std::string& filename,
const size_t streamIndex,
const std::string& profileName,
ICodec& codec,
78 const float offset = 0);
85 const float offset = 0);
90 const float offset = 0);
97 void add(
const std::string& filename,
const size_t streamIndex,
const int subStreamIndex,
98 const std::string& profileName =
"",
const float offset = 0);
103 void add(
const std::string& filename,
const size_t streamIndex,
const int subStreamIndex,
const std::string& profileName,
104 ICodec& codec,
const float offset = 0);
111 void add(
const std::string& filename,
const size_t streamIndex,
const int subStreamIndex,
116 void add(
const std::string& filename,
const size_t streamIndex,
const int subStreamIndex,
129 void preProcessCodecLatency();
172 void setProcessMethod(
const EProcessMethod eProcessMethod,
const size_t indexBasedStream = 0,
173 const double outputDuration = 0);
176 void addRewrapStream(
const std::string& filename,
const size_t streamIndex,
const float offset);
178 void addTranscodeStream(
const std::string& filename,
const size_t streamIndex,
const int subStreamIndex,
180 void addTranscodeStream(
const std::string& filename,
const size_t streamIndex,
const int subStreamIndex,
188 InputFile* addInputFile(
const std::string& filename,
const int streamIndex,
const float offset);
191 const size_t streamIndex);
197 float getStreamDuration(
size_t indexStream)
const;
202 float getMinTotalDuration()
const;
207 float getMaxTotalDuration()
const;
213 float getExpectedOutputDuration()
const;
220 float getCurrentOutputDuration()
const;
225 void manageSwitchToGenerator();
Base class of Progress. Inherit this class to have your own way to manage a progress bar...
ProcessStat contains statistics given after the process.
std::vector< InputFile * > _inputFiles
The list of input files which contain added streams (has ownership)
std::vector< StreamTranscoder * > _streamTranscodersAllocated
Streams allocated inside the Transcoder (has ownership)
IOutputfile is the interface to wrap and write medias. It can be overloaded to integrate custom wrapp...
A Transcoder manages a list of streams, and process a transcode to create an output media file...
void add(PropertyVector &propertyVector, const std::string &key, const size_t &value)
std::map< std::string, std::string > Profile
std::vector< StreamTranscoder * > & getStreamTranscoders()
Return the list of streams added to the transcoder.
EProcessMethod
Enum to set a policy of how we manage the process in case of several streams. eProcessMethodShortest:...
EProcessMethod getProcessMethod() const
Get current processMethod.
EProcessMethod _eProcessMethod
Processing policy.
std::vector< StreamTranscoder * > _streamTranscoders
All streams of the output media file after process.
ProfileLoader _profileLoader
Objet to get existing profiles, and add new ones for the Transcoder.
StreamTranscoder & getStreamTranscoder(size_t streamIndex) const
size_t _mainStreamIndex
Index of stream used to stop the process of transcode in case of eProcessMethodBasedOnStream.
IOutputFile & _outputFile
The output media file after process (has link)