The problem with av_codec_get_tag is, that it returns 0 if failed and also 
0 in case of AV_CODEC_RAWVIDEO.
What I want is a generic solution to get a list of supported codecs for an 
arbitrary muxer.



Von:    wm4 <[email protected]>
An:     [email protected], 
Datum:  26.05.2015 11:46
Betreff:        Re: [Libav-user] enumerating codec_tags
Gesendet von:   [email protected]



On Fri, 22 May 2015 07:58:43 +0200
[email protected] 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.)
_______________________________________________
Libav-user mailing list
[email protected]
http://ffmpeg.org/mailman/listinfo/libav-user

_______________________________________________
Libav-user mailing list
[email protected]
http://ffmpeg.org/mailman/listinfo/libav-user

Reply via email to