Name: libmm-player
Summary: Multimedia Framework Player Library
-Version: 0.6.266
+Version: 0.6.267
Release: 0
Group: Multimedia/Libraries
License: Apache-2.0
void _mmplayer_gst_decode_no_more_pads(GstElement *elem, gpointer data);
void _mmplayer_gst_decode_drained(GstElement *bin, gpointer data);
void _mmplayer_gst_about_to_finish(GstElement *bin, gpointer data);
+int _mmplayer_update_not_supported_codec_info(mmplayer_t *player, const gchar *factory_class, const gchar *mime);
void _mmplayer_gst_decode_unknown_type(GstElement *elem, GstPad *pad, GstCaps *caps, gpointer data);
gboolean _mmplayer_gst_decode_autoplug_continue(GstElement *bin, GstPad *pad, GstCaps *caps, gpointer data);
void _mmplayer_pipeline_complete(GstElement *decodebin, gpointer data);
mmplayer_t *player = (mmplayer_t *)data;
mmplayer_track_type_e type = MM_PLAYER_TRACK_TYPE_MAX;
GstCaps *caps = gst_stream_get_caps(stream);
+ GstStructure *caps_structure = NULL;
gchar *caps_str = NULL;
LOGD("Stream type %s flags 0x%x",
if (caps) {
caps_str = gst_caps_to_string(caps);
+ caps_structure = gst_caps_get_structure(caps, 0);
+ const gchar *mime = gst_structure_get_name(caps_structure);
+
LOGD(" caps: %s", caps_str);
+
+ for (int idx = 0; player->ini.unsupported_codec_keyword[idx][0] != '\0'; idx++) {
+ if (caps_str && strstr(caps_str, player->ini.unsupported_codec_keyword[idx])) {
+ LOGW("skip [%s] by unsupported codec keyword [%s]",
+ mime, player->ini.unsupported_codec_keyword[idx]);
+
+ _mmplayer_update_not_supported_codec_info(player, NULL, mime);
+ ret = 0;
+ goto EXIT;
+ }
+ }
}
switch (stype) {
case GST_STREAM_TYPE_AUDIO:
{
- GstStructure *caps_structure = NULL;
gint samplerate = 0;
gint channels = 0;
type = MM_PLAYER_TRACK_TYPE_AUDIO;
- if (caps) {
- caps_structure = gst_caps_get_structure(caps, 0);
+ if (caps_structure) {
gst_structure_get_int(caps_structure, "rate", &samplerate);
gst_structure_get_int(caps_structure, "channels", &channels);
}
case GST_STREAM_TYPE_VIDEO:
{
- GstStructure *caps_structure = NULL;
gint stype = 0;
gint width = 0;
goto EXIT;
}
- if (caps) {
- caps_structure = gst_caps_get_structure(caps, 0);
+ if (caps_structure) {
gst_structure_get_int(caps_structure, "width", &width);
if (width != 0) {
static gboolean __mmplayer_check_subtitle(mmplayer_t *player);
static int __mmplayer_handle_missed_plugin(mmplayer_t *player);
-static int __mmplayer_check_not_supported_codec(mmplayer_t *player, const gchar *factory_class, const gchar *mime);
static void __mmplayer_add_sink(mmplayer_t *player, GstElement *sink, gboolean first);
static void __mmplayer_del_sink(mmplayer_t *player, GstElement *sink);
static void __mmplayer_release_signal_connection(mmplayer_t *player, mmplayer_signal_type_e type);
return FALSE;
}
-static int
-__mmplayer_check_not_supported_codec(mmplayer_t *player, const gchar *factory_class, const gchar *mime)
+int
+_mmplayer_update_not_supported_codec_info(mmplayer_t *player, const gchar *factory_class, const gchar *mime)
{
MMPLAYER_FENTER();
MMPLAYER_FREEIF(caps_str);
/* There is no available codec. */
- __mmplayer_check_not_supported_codec(player, klass, mime);
+ _mmplayer_update_not_supported_codec_info(player, klass, mime);
}
gboolean