12 #include <libavcodec/avcodec.h>
13 #include <libavutil/avutil.h>
14 #include <libavutil/pixdesc.h>
24 : _formatContext(filename, AV_OPT_FLAG_DECODING_PARAM)
65 bool nextPacketFound =
false;
66 while(!nextPacketFound)
80 const int packetStreamIndex = data.
getAVPacket().stream_index;
81 if(packetStreamIndex == (
int)streamIndex)
83 LOG_DEBUG(
"Get a packet from stream " << streamIndex)
84 nextPacketFound =
true;
98 const uint64_t position = frame /
getFps() * AV_TIME_BASE;
104 const uint64_t position = time * AV_TIME_BASE;
119 catch(
const std::out_of_range& e)
121 std::stringstream msg;
123 msg <<
" has no stream at index ";
125 throw std::runtime_error(msg.str());
143 std::string msg(
"Invalid format profile to setup unwrapping.");
145 throw std::runtime_error(msg);
150 LOG_INFO(
"Setup unwrapping with:\n" << profile)
153 for(ProfileLoader::Profile::const_iterator it = profile.begin(); it != profile.end(); ++it)
164 catch(std::exception& e)
166 LOG_WARN(
"InputFile - can't set option " << (*it).first <<
" to " << (*it).second <<
": " << e.what())
171 std::ostream&
operator<<(std::ostream& flux,
const InputFile& input)
196 ++subtitleStreamIndex)
203 ++attachementStreamIndex)
210 ++unknownStreamIndex)
const std::vector< avtranscoder::AudioProperties > & getAudioProperties() const
const std::vector< avtranscoder::UnknownProperties > & getUnknownProperties() const
Base class of Progress. Inherit this class to have your own way to manage a progress bar...
const std::vector< avtranscoder::VideoProperties > & getVideoProperties() const
void setString(const std::string &value)
EAnalyseLevel
Level of file analysis.
size_t getNbStreams() const
const std::vector< avtranscoder::SubtitleProperties > & getSubtitleProperties() const
void extractStreamProperties(IProgress &progress, const EAnalyseLevel level)
Relaunch streams analysis with a specific level.
static bool checkFormatProfile(const Profile &profileToCheck)
void clear()
Clear existing data and set size to 0.
bool seek(const uint64_t position, const int flag)
Seek at a specific position.
const std::vector< avtranscoder::AttachementProperties > & getAttachementProperties() const
std::string getDescriptionFromErrorCode(const int code)
Get the string description corresponding to the error code provided by ffmpeg/libav.
size_t getNbSubtitleStreams() const
std::map< std::string, std::string > Profile
const std::string avProfileIdentificator
const std::string avProfileIdentificatorHuman
size_t getNbAudioStreams() const
void refAVStream(const AVStream &avStream)
Wrapper of AVOption. Get its type to know what the option is about: Int, Double, Ratio, Choice... Parse its array of options to get the potential childs (Choice and Group).
Option & getOption(const std::string &optionName)
const std::vector< avtranscoder::DataProperties > & getDataProperties() const
void findStreamInfo(AVDictionary **options=NULL)
Read packets of a media file to get stream information.
size_t getNbAttachementStreams() const
size_t getNbDataStreams() const
This class describes coded data.
size_t getNbUnknownStreams() const
AVFormatContext & getAVFormatContext() const
const std::string avProfileType
AVStream & getAVStream(size_t index) const
size_t getNbVideoStreams() const