diff --git a/ChangeLog b/ChangeLog index 33e6664caa..62c5a32cdd 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,14 @@ +2006-09-30 Edward Hervey + + * ext/ffmpeg/gstffmpegcodecmap.c: (gst_ffmpeg_codecid_to_caps): + Clarify some CODEC_ID <=> mime type conversions for image formats. + * ext/ffmpeg/gstffmpegdemux.c: (gst_ffmpegdemux_register): + Cleanup on demuxer registration. + Bumped flv demuxer to RANK_MARGINAL since it proved solid enough. + Will have to go over more demuxers, for which we don't have any + gst-plugins-* alternative, to figure out which ones can move to + RANK_MARGINAL too. + 2006-09-29 Tim-Philipp Müller * ext/ffmpeg/gstffmpegdec.c: (gst_ffmpegdec_register): diff --git a/ext/ffmpeg/gstffmpegcodecmap.c b/ext/ffmpeg/gstffmpegcodecmap.c index dddebeb932..63d5a3db5c 100644 --- a/ext/ffmpeg/gstffmpegcodecmap.c +++ b/ext/ffmpeg/gstffmpegcodecmap.c @@ -604,6 +604,14 @@ gst_ffmpeg_codecid_to_caps (enum CodecID codec_id, caps = gst_ff_vid_caps_new (context, "image/png", NULL); break; + case CODEC_ID_PPM: + caps = gst_ff_vid_caps_new (context, "image/ppm", NULL); + break; + + case CODEC_ID_PBM: + caps = gst_ff_vid_caps_new (context, "image/pbm", NULL); + break; + case CODEC_ID_SMC: caps = gst_ff_vid_caps_new (context, "video/x-smc", NULL); break; @@ -624,8 +632,6 @@ gst_ffmpeg_codecid_to_caps (enum CodecID codec_id, case CODEC_ID_VIXL: case CODEC_ID_QPEG: case CODEC_ID_XVID: - case CODEC_ID_PPM: - case CODEC_ID_PBM: case CODEC_ID_PGM: case CODEC_ID_PGMYUV: case CODEC_ID_PAM: diff --git a/ext/ffmpeg/gstffmpegdemux.c b/ext/ffmpeg/gstffmpegdemux.c index beb3a0a95d..135147408e 100644 --- a/ext/ffmpeg/gstffmpegdemux.c +++ b/ext/ffmpeg/gstffmpegdemux.c @@ -1365,7 +1365,7 @@ gst_ffmpegdemux_register (GstPlugin * plugin) gchar *type_name, *typefind_name; gchar *p, *name = NULL; GstCaps *sinkcaps, *audiosrccaps, *videosrccaps; - gint rank = GST_RANK_NONE; /* don't autoplug unless more stable */ + gint rank; gboolean register_typefind_func = TRUE; /* no emulators */ @@ -1374,7 +1374,13 @@ gst_ffmpegdemux_register (GstPlugin * plugin) !strcmp (in_plugin->name, "audio_device") || !strncmp (in_plugin->name, "image", 5) || !strcmp (in_plugin->name, "mpegvideo") || - !strcmp (in_plugin->name, "mjpeg")) + !strcmp (in_plugin->name, "mjpeg") || + !strcmp (in_plugin->name, "redir")) + goto next; + + /* no network demuxers */ + if (!strcmp (in_plugin->name, "sdp") || + !strcmp (in_plugin->name, "rtsp")) goto next; /* these don't do what one would expect or @@ -1382,13 +1388,8 @@ gst_ffmpegdemux_register (GstPlugin * plugin) if (!strcmp (in_plugin->name, "aac")) goto next; - /* these are known to be buggy or broken or not - * tested enough to let them be autoplugged */ - if (!strcmp (in_plugin->name, "mp3") || /* = application/x-id3 */ - !strcmp (in_plugin->name, "avi") || !strcmp (in_plugin->name, "ogg")) { - rank = GST_RANK_NONE; - } - + /* Don't use the typefind functions of formats for which we already have + * better typefind functions */ if (!strcmp (in_plugin->name, "mov,mp4,m4a,3gp,3g2,mj2") || !strcmp (in_plugin->name, "avi") || !strcmp (in_plugin->name, "asf") || @@ -1401,6 +1402,14 @@ gst_ffmpegdemux_register (GstPlugin * plugin) !strcmp (in_plugin->name, "tta") || !strcmp (in_plugin->name, "rm")) register_typefind_func = FALSE; + /* Set the rank of demuxers know to work to MARGINAL. + * Set demuxers for which we already have another implementation to NONE + * Set All others to NONE*/ + if (!strcmp (in_plugin->name, "flv")) + rank = GST_RANK_MARGINAL; + else + rank = GST_RANK_NONE; + p = name = g_strdup (in_plugin->name); while (*p) { if (*p == '.' || *p == ',')