[Libav-user] enumerating codec_tags

wm4 nfxjfg at googlemail.com
Tue May 26 11:45:43 CEST 2015


On Fri, 22 May 2015 07:58:43 +0200
Steffen.Roeber at hella.com wrote:

> Hi,
> is there any way to iterate through all codec_tags of an AVOutputFormat 
> without using the private header internal.h? I need that header because 
> AVCodecTag is there.
> Currently I'm trying something like:
> auto enumFormat = av_guess_format(nullptr, qPrintable(extension), nullptr
> );
> for (uint32 i = 0; enumFormat->codec_tag && enumFormat->codec_tag[i]; ++i)
>         {
>           auto tag = enumFormat->codec_tag[i];
> 
>           while (tag->id != AV_CODEC_ID_NONE)
>           {
>             encoder = avcodec_find_encoder(tag->id);
> 
>             if (encoder && encoder->type == AVMEDIA_TYPE_VIDEO && 
> av_codec_is_encoder(encoder))
>             {
> //...
>             }
> 
>             ++tag;
>           }
>         }
> What I need, are all codec that are supported by a AVOutputFormat.
> 
> Kind regards
> Steffen

While AVCodecTag is private, you could probably check presence of
support via av_codec_get_tag() and enumerating all codecs ffmpeg knows.
(Roundabout, but might work.)


More information about the Libav-user mailing list