20 #include <com/avpkit/core/ContainerFormat.h>
22 #define VS_FFMPEG_GOT_OFF_THEIR_BUTT_AND_EXPOSED_THIS
23 #ifdef VS_FFMPEG_GOT_OFF_THEIR_BUTT_AND_EXPOSED_THIS
37 namespace com {
namespace avpkit {
namespace core
40 ContainerFormat :: ContainerFormat()
46 ContainerFormat :: ~ContainerFormat()
53 if (shortName && *shortName)
55 mInputFormat = av_find_input_format(shortName);
59 return (mInputFormat == NULL ? -1 : 0);
66 if ((shortName && *shortName) ||
68 (mimeType && *mimeType))
70 mOutputFormat = av_guess_format(shortName, url, mimeType);
74 return (mOutputFormat == NULL ? -1 : 0);
79 return (mInputFormat ? mInputFormat->name : 0);
84 return (mInputFormat ? mInputFormat->long_name : 0);
89 return (mOutputFormat ? mOutputFormat->name : 0);
94 return (mOutputFormat ? mOutputFormat->long_name : 0);
99 return (mOutputFormat ? mOutputFormat->mime_type : 0);
102 ContainerFormat :: getInputFormat()
107 ContainerFormat :: getOutputFormat()
109 return mOutputFormat;
125 return (mInputFormat ? mInputFormat->flags : 0);
132 mInputFormat->flags = newFlags;
140 result = mInputFormat->flags & flag;
151 mInputFormat->flags |= flag;
155 mInputFormat->flags &= (~flag);
163 return (mOutputFormat ? mOutputFormat->flags : 0);
170 mOutputFormat->flags = newFlags;
178 result = mOutputFormat->flags & flag;
189 mOutputFormat->flags |= flag;
193 mOutputFormat->flags &= (~flag);
200 return mOutputFormat;
212 if (!mOutputFormat || !mOutputFormat->extensions ||
213 !*mOutputFormat->extensions)
215 return mOutputFormat->extensions;
222 return ICodec::AV_CODEC_ID_NONE;
223 return (
ICodec::ID)mOutputFormat->audio_codec;
230 return ICodec::AV_CODEC_ID_NONE;
231 return (
ICodec::ID)mOutputFormat->video_codec;
238 return ICodec::AV_CODEC_ID_NONE;
239 return (
ICodec::ID)mOutputFormat->subtitle_codec;
248 const struct AVCodecTag *
const*tags = mOutputFormat->codec_tag;
258 for(
const struct AVCodecTag * tag = tags[i];
259 tag && tag->id != ICodec::AV_CODEC_ID_NONE;
271 return ICodec::AV_CODEC_ID_NONE;
273 const struct AVCodecTag *
const*tags = mOutputFormat->codec_tag;
275 return ICodec::AV_CODEC_ID_NONE;
284 const struct AVCodecTag * tag = tags[i];
285 tag && tag->id != ICodec::AV_CODEC_ID_NONE;
288 if (numCodecs == index)
292 return ICodec::AV_CODEC_ID_NONE;
299 return ICodec::AV_CODEC_ID_NONE;
301 const struct AVCodecTag *
const*tags = mOutputFormat->codec_tag;
303 return ICodec::AV_CODEC_ID_NONE;
312 const struct AVCodecTag * tag = tags[i];
313 tag && tag->id != ICodec::AV_CODEC_ID_NONE;
316 if (numCodecs == index)
320 return ICodec::AV_CODEC_ID_NONE;
334 return (int32_t)av_codec_get_tag(mOutputFormat->codec_tag,
ID
These are the codecs this library currently supports.
WARNING: Do not use logging in this class, and do not set any static file variables to values other t...