mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-10-02 16:52:42 +00:00
av_codec_next (deprecated) -> av_codec_iterate
https://bugzilla.gnome.org/show_bug.cgi?id=792900
This commit is contained in:
parent
37b58e0753
commit
e4bf6147a0
4 changed files with 36 additions and 50 deletions
|
@ -861,19 +861,18 @@ gst_ffmpegauddec_register (GstPlugin * plugin)
|
||||||
};
|
};
|
||||||
GType type;
|
GType type;
|
||||||
AVCodec *in_plugin;
|
AVCodec *in_plugin;
|
||||||
|
void *i = 0;
|
||||||
gint rank;
|
gint rank;
|
||||||
|
|
||||||
in_plugin = av_codec_next (NULL);
|
|
||||||
|
|
||||||
GST_LOG ("Registering decoders");
|
GST_LOG ("Registering decoders");
|
||||||
|
|
||||||
while (in_plugin) {
|
while ((in_plugin = (AVCodec *) av_codec_iterate (&i))) {
|
||||||
gchar *type_name;
|
gchar *type_name;
|
||||||
|
|
||||||
/* only decoders */
|
/* only decoders */
|
||||||
if (!av_codec_is_decoder (in_plugin)
|
if (!av_codec_is_decoder (in_plugin)
|
||||||
|| in_plugin->type != AVMEDIA_TYPE_AUDIO) {
|
|| in_plugin->type != AVMEDIA_TYPE_AUDIO) {
|
||||||
goto next;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* no quasi codecs, please */
|
/* no quasi codecs, please */
|
||||||
|
@ -888,7 +887,7 @@ gst_ffmpegauddec_register (GstPlugin * plugin)
|
||||||
#else
|
#else
|
||||||
in_plugin->id <= AV_CODEC_ID_PCM_S16BE_PLANAR)) {
|
in_plugin->id <= AV_CODEC_ID_PCM_S16BE_PLANAR)) {
|
||||||
#endif
|
#endif
|
||||||
goto next;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* No decoders depending on external libraries (we don't build them, but
|
/* No decoders depending on external libraries (we don't build them, but
|
||||||
|
@ -898,7 +897,7 @@ gst_ffmpegauddec_register (GstPlugin * plugin)
|
||||||
GST_DEBUG
|
GST_DEBUG
|
||||||
("Not using external library decoder %s. Use the gstreamer-native ones instead.",
|
("Not using external library decoder %s. Use the gstreamer-native ones instead.",
|
||||||
in_plugin->name);
|
in_plugin->name);
|
||||||
goto next;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
GST_DEBUG ("Trying plugin %s [%s]", in_plugin->name, in_plugin->long_name);
|
GST_DEBUG ("Trying plugin %s [%s]", in_plugin->name, in_plugin->long_name);
|
||||||
|
@ -919,7 +918,7 @@ gst_ffmpegauddec_register (GstPlugin * plugin)
|
||||||
!strcmp (in_plugin->name, "dvdsub") ||
|
!strcmp (in_plugin->name, "dvdsub") ||
|
||||||
!strcmp (in_plugin->name, "dvbsub")) {
|
!strcmp (in_plugin->name, "dvbsub")) {
|
||||||
GST_LOG ("Ignoring decoder %s", in_plugin->name);
|
GST_LOG ("Ignoring decoder %s", in_plugin->name);
|
||||||
goto next;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* construct the type */
|
/* construct the type */
|
||||||
|
@ -963,9 +962,6 @@ gst_ffmpegauddec_register (GstPlugin * plugin)
|
||||||
}
|
}
|
||||||
|
|
||||||
g_free (type_name);
|
g_free (type_name);
|
||||||
|
|
||||||
next:
|
|
||||||
in_plugin = av_codec_next (in_plugin);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
GST_LOG ("Finished Registering decoders");
|
GST_LOG ("Finished Registering decoders");
|
||||||
|
|
|
@ -772,18 +772,18 @@ gst_ffmpegaudenc_register (GstPlugin * plugin)
|
||||||
};
|
};
|
||||||
GType type;
|
GType type;
|
||||||
AVCodec *in_plugin;
|
AVCodec *in_plugin;
|
||||||
|
void *i = 0;
|
||||||
|
|
||||||
|
|
||||||
GST_LOG ("Registering encoders");
|
GST_LOG ("Registering encoders");
|
||||||
|
|
||||||
in_plugin = av_codec_next (NULL);
|
while ((in_plugin = (AVCodec *) av_codec_iterate (&i))) {
|
||||||
while (in_plugin) {
|
|
||||||
gchar *type_name;
|
gchar *type_name;
|
||||||
guint rank;
|
guint rank;
|
||||||
|
|
||||||
/* Skip non-AV codecs */
|
/* Skip non-AV codecs */
|
||||||
if (in_plugin->type != AVMEDIA_TYPE_AUDIO)
|
if (in_plugin->type != AVMEDIA_TYPE_AUDIO)
|
||||||
goto next;
|
continue;
|
||||||
|
|
||||||
/* no quasi codecs, please */
|
/* no quasi codecs, please */
|
||||||
if (in_plugin->id == AV_CODEC_ID_PCM_S16LE_PLANAR ||
|
if (in_plugin->id == AV_CODEC_ID_PCM_S16LE_PLANAR ||
|
||||||
|
@ -797,7 +797,7 @@ gst_ffmpegaudenc_register (GstPlugin * plugin)
|
||||||
#else
|
#else
|
||||||
in_plugin->id <= AV_CODEC_ID_PCM_S16BE_PLANAR)) {
|
in_plugin->id <= AV_CODEC_ID_PCM_S16BE_PLANAR)) {
|
||||||
#endif
|
#endif
|
||||||
goto next;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* No encoders depending on external libraries (we don't build them, but
|
/* No encoders depending on external libraries (we don't build them, but
|
||||||
|
@ -807,12 +807,12 @@ gst_ffmpegaudenc_register (GstPlugin * plugin)
|
||||||
GST_DEBUG
|
GST_DEBUG
|
||||||
("Not using external library encoder %s. Use the gstreamer-native ones instead.",
|
("Not using external library encoder %s. Use the gstreamer-native ones instead.",
|
||||||
in_plugin->name);
|
in_plugin->name);
|
||||||
goto next;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* only encoders */
|
/* only encoders */
|
||||||
if (!av_codec_is_encoder (in_plugin)) {
|
if (!av_codec_is_encoder (in_plugin)) {
|
||||||
goto next;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* FIXME : We should have a method to know cheaply whether we have a mapping
|
/* FIXME : We should have a method to know cheaply whether we have a mapping
|
||||||
|
@ -824,7 +824,7 @@ gst_ffmpegaudenc_register (GstPlugin * plugin)
|
||||||
if (!strcmp (in_plugin->name, "vorbis")
|
if (!strcmp (in_plugin->name, "vorbis")
|
||||||
|| !strcmp (in_plugin->name, "flac")) {
|
|| !strcmp (in_plugin->name, "flac")) {
|
||||||
GST_LOG ("Ignoring encoder %s", in_plugin->name);
|
GST_LOG ("Ignoring encoder %s", in_plugin->name);
|
||||||
goto next;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* construct the type */
|
/* construct the type */
|
||||||
|
@ -866,9 +866,6 @@ gst_ffmpegaudenc_register (GstPlugin * plugin)
|
||||||
}
|
}
|
||||||
|
|
||||||
g_free (type_name);
|
g_free (type_name);
|
||||||
|
|
||||||
next:
|
|
||||||
in_plugin = av_codec_next (in_plugin);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
GST_LOG ("Finished registering encoders");
|
GST_LOG ("Finished registering encoders");
|
||||||
|
|
|
@ -2231,19 +2231,18 @@ gst_ffmpegviddec_register (GstPlugin * plugin)
|
||||||
GType type;
|
GType type;
|
||||||
AVCodec *in_plugin;
|
AVCodec *in_plugin;
|
||||||
gint rank;
|
gint rank;
|
||||||
|
void *i = 0;
|
||||||
in_plugin = av_codec_next (NULL);
|
|
||||||
|
|
||||||
GST_LOG ("Registering decoders");
|
GST_LOG ("Registering decoders");
|
||||||
|
|
||||||
while (in_plugin) {
|
while ((in_plugin = (AVCodec *) av_codec_iterate (&i))) {
|
||||||
gchar *type_name;
|
gchar *type_name;
|
||||||
gchar *plugin_name;
|
gchar *plugin_name;
|
||||||
|
|
||||||
/* only video decoders */
|
/* only video decoders */
|
||||||
if (!av_codec_is_decoder (in_plugin)
|
if (!av_codec_is_decoder (in_plugin)
|
||||||
|| in_plugin->type != AVMEDIA_TYPE_VIDEO)
|
|| in_plugin->type != AVMEDIA_TYPE_VIDEO)
|
||||||
goto next;
|
continue;
|
||||||
|
|
||||||
/* no quasi codecs, please */
|
/* no quasi codecs, please */
|
||||||
if (in_plugin->id == AV_CODEC_ID_RAWVIDEO ||
|
if (in_plugin->id == AV_CODEC_ID_RAWVIDEO ||
|
||||||
|
@ -2262,7 +2261,7 @@ gst_ffmpegviddec_register (GstPlugin * plugin)
|
||||||
|| in_plugin->id == AV_CODEC_ID_WRAPPED_AVFRAME
|
|| in_plugin->id == AV_CODEC_ID_WRAPPED_AVFRAME
|
||||||
#endif
|
#endif
|
||||||
|| in_plugin->id == AV_CODEC_ID_ZLIB) {
|
|| in_plugin->id == AV_CODEC_ID_ZLIB) {
|
||||||
goto next;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* No decoders depending on external libraries (we don't build them, but
|
/* No decoders depending on external libraries (we don't build them, but
|
||||||
|
@ -2272,7 +2271,7 @@ gst_ffmpegviddec_register (GstPlugin * plugin)
|
||||||
GST_DEBUG
|
GST_DEBUG
|
||||||
("Not using external library decoder %s. Use the gstreamer-native ones instead.",
|
("Not using external library decoder %s. Use the gstreamer-native ones instead.",
|
||||||
in_plugin->name);
|
in_plugin->name);
|
||||||
goto next;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* No vdpau plugins until we can figure out how to properly use them
|
/* No vdpau plugins until we can figure out how to properly use them
|
||||||
|
@ -2281,42 +2280,42 @@ gst_ffmpegviddec_register (GstPlugin * plugin)
|
||||||
GST_DEBUG
|
GST_DEBUG
|
||||||
("Ignoring VDPAU decoder %s. We can't handle this outside of ffmpeg",
|
("Ignoring VDPAU decoder %s. We can't handle this outside of ffmpeg",
|
||||||
in_plugin->name);
|
in_plugin->name);
|
||||||
goto next;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (g_str_has_suffix (in_plugin->name, "_xvmc")) {
|
if (g_str_has_suffix (in_plugin->name, "_xvmc")) {
|
||||||
GST_DEBUG
|
GST_DEBUG
|
||||||
("Ignoring XVMC decoder %s. We can't handle this outside of ffmpeg",
|
("Ignoring XVMC decoder %s. We can't handle this outside of ffmpeg",
|
||||||
in_plugin->name);
|
in_plugin->name);
|
||||||
goto next;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (strstr (in_plugin->name, "vaapi")) {
|
if (strstr (in_plugin->name, "vaapi")) {
|
||||||
GST_DEBUG
|
GST_DEBUG
|
||||||
("Ignoring VAAPI decoder %s. We can't handle this outside of ffmpeg",
|
("Ignoring VAAPI decoder %s. We can't handle this outside of ffmpeg",
|
||||||
in_plugin->name);
|
in_plugin->name);
|
||||||
goto next;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (g_str_has_suffix (in_plugin->name, "_qsv")) {
|
if (g_str_has_suffix (in_plugin->name, "_qsv")) {
|
||||||
GST_DEBUG
|
GST_DEBUG
|
||||||
("Ignoring qsv decoder %s. We can't handle this outside of ffmpeg",
|
("Ignoring qsv decoder %s. We can't handle this outside of ffmpeg",
|
||||||
in_plugin->name);
|
in_plugin->name);
|
||||||
goto next;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (g_str_has_suffix (in_plugin->name, "_cuvid")) {
|
if (g_str_has_suffix (in_plugin->name, "_cuvid")) {
|
||||||
GST_DEBUG
|
GST_DEBUG
|
||||||
("Ignoring CUVID decoder %s. We can't handle this outside of ffmpeg",
|
("Ignoring CUVID decoder %s. We can't handle this outside of ffmpeg",
|
||||||
in_plugin->name);
|
in_plugin->name);
|
||||||
goto next;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (g_str_has_suffix (in_plugin->name, "_v4l2m2m")) {
|
if (g_str_has_suffix (in_plugin->name, "_v4l2m2m")) {
|
||||||
GST_DEBUG
|
GST_DEBUG
|
||||||
("Ignoring V4L2 mem-to-mem decoder %s. We can't handle this outside of ffmpeg",
|
("Ignoring V4L2 mem-to-mem decoder %s. We can't handle this outside of ffmpeg",
|
||||||
in_plugin->name);
|
in_plugin->name);
|
||||||
goto next;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
GST_DEBUG ("Trying plugin %s [%s]", in_plugin->name, in_plugin->long_name);
|
GST_DEBUG ("Trying plugin %s [%s]", in_plugin->name, in_plugin->long_name);
|
||||||
|
@ -2335,7 +2334,7 @@ gst_ffmpegviddec_register (GstPlugin * plugin)
|
||||||
!strcmp (in_plugin->name, "dvdsub") ||
|
!strcmp (in_plugin->name, "dvdsub") ||
|
||||||
!strcmp (in_plugin->name, "dvbsub")) {
|
!strcmp (in_plugin->name, "dvbsub")) {
|
||||||
GST_LOG ("Ignoring decoder %s", in_plugin->name);
|
GST_LOG ("Ignoring decoder %s", in_plugin->name);
|
||||||
goto next;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* construct the type */
|
/* construct the type */
|
||||||
|
@ -2393,9 +2392,6 @@ gst_ffmpegviddec_register (GstPlugin * plugin)
|
||||||
}
|
}
|
||||||
|
|
||||||
g_free (type_name);
|
g_free (type_name);
|
||||||
|
|
||||||
next:
|
|
||||||
in_plugin = av_codec_next (in_plugin);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
GST_LOG ("Finished Registering decoders");
|
GST_LOG ("Finished Registering decoders");
|
||||||
|
|
|
@ -837,6 +837,7 @@ gst_ffmpegvidenc_register (GstPlugin * plugin)
|
||||||
};
|
};
|
||||||
GType type;
|
GType type;
|
||||||
AVCodec *in_plugin;
|
AVCodec *in_plugin;
|
||||||
|
void *i = 0;
|
||||||
|
|
||||||
|
|
||||||
GST_LOG ("Registering encoders");
|
GST_LOG ("Registering encoders");
|
||||||
|
@ -844,13 +845,12 @@ gst_ffmpegvidenc_register (GstPlugin * plugin)
|
||||||
/* build global ffmpeg param/property info */
|
/* build global ffmpeg param/property info */
|
||||||
gst_ffmpeg_cfg_init ();
|
gst_ffmpeg_cfg_init ();
|
||||||
|
|
||||||
in_plugin = av_codec_next (NULL);
|
while ((in_plugin = (AVCodec *) av_codec_iterate (&i))) {
|
||||||
while (in_plugin) {
|
|
||||||
gchar *type_name;
|
gchar *type_name;
|
||||||
|
|
||||||
/* Skip non-AV codecs */
|
/* Skip non-AV codecs */
|
||||||
if (in_plugin->type != AVMEDIA_TYPE_VIDEO)
|
if (in_plugin->type != AVMEDIA_TYPE_VIDEO)
|
||||||
goto next;
|
continue;
|
||||||
|
|
||||||
/* no quasi codecs, please */
|
/* no quasi codecs, please */
|
||||||
if (in_plugin->id == AV_CODEC_ID_RAWVIDEO ||
|
if (in_plugin->id == AV_CODEC_ID_RAWVIDEO ||
|
||||||
|
@ -869,7 +869,7 @@ gst_ffmpegvidenc_register (GstPlugin * plugin)
|
||||||
|| in_plugin->id == AV_CODEC_ID_WRAPPED_AVFRAME
|
|| in_plugin->id == AV_CODEC_ID_WRAPPED_AVFRAME
|
||||||
#endif
|
#endif
|
||||||
|| in_plugin->id == AV_CODEC_ID_ZLIB) {
|
|| in_plugin->id == AV_CODEC_ID_ZLIB) {
|
||||||
goto next;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* No encoders depending on external libraries (we don't build them, but
|
/* No encoders depending on external libraries (we don't build them, but
|
||||||
|
@ -879,41 +879,41 @@ gst_ffmpegvidenc_register (GstPlugin * plugin)
|
||||||
GST_DEBUG
|
GST_DEBUG
|
||||||
("Not using external library encoder %s. Use the gstreamer-native ones instead.",
|
("Not using external library encoder %s. Use the gstreamer-native ones instead.",
|
||||||
in_plugin->name);
|
in_plugin->name);
|
||||||
goto next;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (strstr (in_plugin->name, "vaapi")) {
|
if (strstr (in_plugin->name, "vaapi")) {
|
||||||
GST_DEBUG
|
GST_DEBUG
|
||||||
("Ignoring VAAPI encoder %s. We can't handle this outside of ffmpeg",
|
("Ignoring VAAPI encoder %s. We can't handle this outside of ffmpeg",
|
||||||
in_plugin->name);
|
in_plugin->name);
|
||||||
goto next;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (strstr (in_plugin->name, "nvenc")) {
|
if (strstr (in_plugin->name, "nvenc")) {
|
||||||
GST_DEBUG
|
GST_DEBUG
|
||||||
("Ignoring nvenc encoder %s. We can't handle this outside of ffmpeg",
|
("Ignoring nvenc encoder %s. We can't handle this outside of ffmpeg",
|
||||||
in_plugin->name);
|
in_plugin->name);
|
||||||
goto next;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (g_str_has_suffix (in_plugin->name, "_qsv")) {
|
if (g_str_has_suffix (in_plugin->name, "_qsv")) {
|
||||||
GST_DEBUG
|
GST_DEBUG
|
||||||
("Ignoring qsv encoder %s. We can't handle this outside of ffmpeg",
|
("Ignoring qsv encoder %s. We can't handle this outside of ffmpeg",
|
||||||
in_plugin->name);
|
in_plugin->name);
|
||||||
goto next;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (g_str_has_suffix (in_plugin->name, "_v4l2m2m")) {
|
if (g_str_has_suffix (in_plugin->name, "_v4l2m2m")) {
|
||||||
GST_DEBUG
|
GST_DEBUG
|
||||||
("Ignoring V4L2 mem-to-mem encoder %s. We can't handle this outside of ffmpeg",
|
("Ignoring V4L2 mem-to-mem encoder %s. We can't handle this outside of ffmpeg",
|
||||||
in_plugin->name);
|
in_plugin->name);
|
||||||
goto next;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* only video encoders */
|
/* only video encoders */
|
||||||
if (!av_codec_is_encoder (in_plugin)
|
if (!av_codec_is_encoder (in_plugin)
|
||||||
|| in_plugin->type != AVMEDIA_TYPE_VIDEO)
|
|| in_plugin->type != AVMEDIA_TYPE_VIDEO)
|
||||||
goto next;
|
continue;
|
||||||
|
|
||||||
/* FIXME : We should have a method to know cheaply whether we have a mapping
|
/* FIXME : We should have a method to know cheaply whether we have a mapping
|
||||||
* for the given plugin or not */
|
* for the given plugin or not */
|
||||||
|
@ -923,7 +923,7 @@ gst_ffmpegvidenc_register (GstPlugin * plugin)
|
||||||
/* no codecs for which we're GUARANTEED to have better alternatives */
|
/* no codecs for which we're GUARANTEED to have better alternatives */
|
||||||
if (!strcmp (in_plugin->name, "gif")) {
|
if (!strcmp (in_plugin->name, "gif")) {
|
||||||
GST_LOG ("Ignoring encoder %s", in_plugin->name);
|
GST_LOG ("Ignoring encoder %s", in_plugin->name);
|
||||||
goto next;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* construct the type */
|
/* construct the type */
|
||||||
|
@ -955,9 +955,6 @@ gst_ffmpegvidenc_register (GstPlugin * plugin)
|
||||||
}
|
}
|
||||||
|
|
||||||
g_free (type_name);
|
g_free (type_name);
|
||||||
|
|
||||||
next:
|
|
||||||
in_plugin = av_codec_next (in_plugin);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
GST_LOG ("Finished registering encoders");
|
GST_LOG ("Finished registering encoders");
|
||||||
|
|
Loading…
Reference in a new issue