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
