AvTranscoder
0.9.4
C++APIforLibav/FFmpeg
|
#include <InputFile.hpp>
Public Member Functions | |
InputFile (const std::string &filename) | |
Open a media file. More... | |
virtual | ~InputFile () |
void | analyse (IProgress &progress, const EAnalyseLevel level=eAnalyseLevelFirstGop) |
Run the analyse on the file after a setup. call this function before getProperties(). More... | |
bool | readNextPacket (CodedData &data, const size_t streamIndex) |
Read the next packet of the specified stream. More... | |
bool | seekAtFrame (const size_t frame, const int flag=AVSEEK_FLAG_ANY) |
Seek at a specific frame / time (in seconds) More... | |
bool | seekAtTime (const double time, const int flag=AVSEEK_FLAG_ANY) |
void | activateStream (const size_t streamIndex, const bool activate=true) |
Activate the indicated stream. More... | |
const FileProperties & | getProperties () const |
Return media properties on the current InputFile. More... | |
InputStream & | getStream (size_t index) |
Get stream type: video, audio, subtitle, etc. More... | |
std::string | getFilename () const |
FormatContext & | getFormatContext () |
virtual void | setupUnwrapping (const ProfileLoader::Profile &profile) |
Set the format of the input file. More... | |
Static Public Member Functions | |
static FileProperties | analyseFile (const std::string &filename, IProgress &progress, const EAnalyseLevel level=eAnalyseLevelFirstGop) |
Get media file properties using static method. More... | |
Protected Attributes | |
FormatContext | _formatContext |
FileProperties * | _properties |
std::string | _filename |
std::vector< InputStream * > | _inputStreams |
Has ownership. More... | |
Private Member Functions | |
InputFile (const InputFile &inputFile) | |
InputFile & | operator= (const InputFile &inputFile) |
double | getFps () |
Get Fps from first video stream. More... | |
Definition at line 18 of file InputFile.hpp.
|
private |
avtranscoder::InputFile::InputFile | ( | const std::string & | filename | ) |
Open a media file.
filename | resource to access |
ios_base::failure | launched if unable to open file |
Definition at line 23 of file InputFile.cpp.
References _formatContext, _inputStreams, _properties, avtranscoder::FormatContext::findStreamInfo(), and avtranscoder::FormatContext::getNbStreams().
|
virtual |
Definition at line 42 of file InputFile.cpp.
References _inputStreams, and _properties.
void avtranscoder::InputFile::activateStream | ( | const size_t | streamIndex, |
const bool | activate = true |
||
) |
Activate the indicated stream.
Definition at line 108 of file InputFile.cpp.
References avtranscoder::InputStream::activate(), and getStream().
Referenced by avtranscoder::Transcoder::addInputFile(), avtranscoder::AudioReader::init(), and avtranscoder::VideoReader::init().
void avtranscoder::InputFile::analyse | ( | IProgress & | progress, |
const EAnalyseLevel | level = eAnalyseLevelFirstGop |
||
) |
Run the analyse on the file after a setup. call this function before getProperties().
progress | callback to get analysis progression |
level | by default eAnalyseLevelFirstGop |
Definition at line 51 of file InputFile.cpp.
References _properties, and avtranscoder::FileProperties::extractStreamProperties().
Referenced by analyseFile(), avtranscoder::AudioReader::init(), avtranscoder::VideoReader::init(), and main().
|
static |
Get media file properties using static method.
filename | input filename |
progress | callback to get analysis progression |
Definition at line 56 of file InputFile.cpp.
References analyse(), and getProperties().
|
inline |
Definition at line 80 of file InputFile.hpp.
Referenced by getStream(), and avtranscoder::InputStream::readNextPacket().
|
inline |
Definition at line 82 of file InputFile.hpp.
Referenced by avtranscoder::InputStream::InputStream().
|
private |
Get Fps from first video stream.
Definition at line 129 of file InputFile.cpp.
References _properties, avtranscoder::FileProperties::getNbVideoStreams(), and avtranscoder::FileProperties::getVideoProperties().
Referenced by seekAtFrame().
|
inline |
Return media properties on the current InputFile.
Definition at line 71 of file InputFile.hpp.
Referenced by avtranscoder::Transcoder::add(), avtranscoder::Transcoder::addInputFile(), analyseFile(), avtranscoder::Transcoder::getProfileFromFile(), avtranscoder::InputStream::getProperties(), avtranscoder::AudioReader::init(), avtranscoder::VideoReader::init(), main(), and avtranscoder::operator<<().
InputStream & avtranscoder::InputFile::getStream | ( | size_t | index | ) |
Get stream type: video, audio, subtitle, etc.
index | stream index |
Definition at line 113 of file InputFile.cpp.
References _inputStreams, and getFilename().
Referenced by activateStream(), avtranscoder::Transcoder::addRewrapStream(), avtranscoder::Transcoder::getProfileFromFile(), avtranscoder::AudioReader::init(), and avtranscoder::VideoReader::init().
bool avtranscoder::InputFile::readNextPacket | ( | CodedData & | data, |
const size_t | streamIndex | ||
) |
Read the next packet of the specified stream.
data | data of next packet read |
Definition at line 63 of file InputFile.cpp.
References _filename, _formatContext, _inputStreams, avtranscoder::CodedData::clear(), avtranscoder::FormatContext::getAVFormatContext(), avtranscoder::CodedData::getAVPacket(), avtranscoder::FormatContext::getAVStream(), avtranscoder::getDescriptionFromErrorCode(), LOG_DEBUG, LOG_INFO, and avtranscoder::CodedData::refAVStream().
Referenced by avtranscoder::InputStream::readNextPacket().
bool avtranscoder::InputFile::seekAtFrame | ( | const size_t | frame, |
const int | flag = AVSEEK_FLAG_ANY |
||
) |
Seek at a specific frame / time (in seconds)
flag | ffmpeg seek flag (by default seek to any frame, even non-keyframes) |
Definition at line 96 of file InputFile.cpp.
References _formatContext, getFps(), and avtranscoder::FormatContext::seek().
Referenced by avtranscoder::IReader::readFrameAt().
bool avtranscoder::InputFile::seekAtTime | ( | const double | time, |
const int | flag = AVSEEK_FLAG_ANY |
||
) |
Definition at line 102 of file InputFile.cpp.
References _formatContext, and avtranscoder::FormatContext::seek().
Referenced by avtranscoder::Transcoder::addInputFile().
|
virtual |
Set the format of the input file.
profile | the profile of the input format |
Definition at line 137 of file InputFile.cpp.
References _formatContext, avtranscoder::constants::avProfileIdentificator, avtranscoder::constants::avProfileIdentificatorHuman, avtranscoder::constants::avProfileType, avtranscoder::ProfileLoader::checkFormatProfile(), avtranscoder::FormatContext::getOption(), LOG_ERROR, LOG_INFO, LOG_WARN, and avtranscoder::Option::setString().
|
protected |
Definition at line 110 of file InputFile.hpp.
Referenced by readNextPacket().
|
protected |
Definition at line 108 of file InputFile.hpp.
Referenced by InputFile(), readNextPacket(), seekAtFrame(), seekAtTime(), and setupUnwrapping().
|
protected |
Has ownership.
Definition at line 111 of file InputFile.hpp.
Referenced by getStream(), InputFile(), readNextPacket(), and ~InputFile().
|
protected |
Definition at line 109 of file InputFile.hpp.
Referenced by analyse(), getFps(), InputFile(), and ~InputFile().