11 #include "libavformat/avformat.h"
18 using avcpp_format_const =
typename std::conditional<
20 typename std::remove_pointer<
21 decltype(AVFormatContext::iformat)
23 >::value,
const T, T>::type;
25 using FmtCodec =
class Codec;
27 bool codec_supported(
const AVCodecTag *
const *codecTag,
const FmtCodec &codec);
28 bool codec_supported(
const AVCodecTag *
const *codecTag, AVCodecID codec_id);
36 const char* name() const noexcept {
40 const char* longName() const noexcept {
41 return RAW_GET(long_name,
nullptr);
44 int32_t flags() const noexcept {
48 bool isFlags(int32_t flags)
const noexcept {
50 return (m_raw->flags & flags);
55 void setFormat(T* format) noexcept {
59 bool codecSupported(
const class Codec &codec)
const noexcept
63 return internal::codec_supported(m_raw->codec_tag, codec);
66 bool codecSupported(AVCodecID codec_id)
const noexcept
70 return internal::codec_supported(m_raw->codec_tag, codec_id);
77 class InputFormat :
public Format<avcpp_format_const<AVInputFormat>>
80 using Format<avcpp_format_const<AVInputFormat>>::Format;
81 using Format<avcpp_format_const<AVInputFormat>>::setFormat;
83 InputFormat() =
default;
85 InputFormat(
const std::string& name) noexcept;
87 bool setFormat(
const std::string& name) noexcept;
92 class OutputFormat :
public Format<avcpp_format_const<AVOutputFormat>>
95 using Format<avcpp_format_const<AVOutputFormat>>::Format;
96 using Format<avcpp_format_const<AVOutputFormat>>::setFormat;
98 OutputFormat() =
default;
100 OutputFormat(
const std::string& name,
101 const std::string& url = std::string(),
102 const std::string& mime = std::string()) noexcept;
104 bool setFormat(const
std::
string& name,
105 const
std::
string& url =
std::
string(),
106 const
std::
string& mime =
std::
string()) noexcept;
108 AVCodecID defaultVideoCodecId() const noexcept;
109 AVCodecID defaultAudioCodecId() const noexcept;
113 OutputFormat guessOutputFormat(const
std::
string& name,
114 const
std::
string& url =
std::
string(),
115 const
std::
string& mime =
std::
string());
#define RAW_GET(field, def)
Definition: ffmpeg.h:47
Definition: audioresampler.cpp:8
Definition: averror.h:228
void reset(T *raw=nullptr)
Definition: ffmpeg.h:29