[grilo-plugins] all: merge {audio,video,image,box} in GrlMedia



commit d5e8910f1c10c6df784f1d89146c94790bca029f
Author: Juan A. Suarez Romero <jasuarez igalia com>
Date:   Tue Dec 15 16:44:30 2015 +0000

    all: merge {audio,video,image,box} in GrlMedia
    
    All GrlMediaFoo types have been merged in GrlMedia.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=755551

 src/bookmarks/grl-bookmarks.c                    |   14 ++--
 src/dleyna/grl-dleyna-source.c                   |   66 ++++++++--------
 src/dmap/grl-daap-db.c                           |   94 +++++++++++-----------
 src/dmap/grl-daap.c                              |    2 +-
 src/dmap/grl-dpap-db.c                           |   58 +++++++-------
 src/dmap/grl-dpap.c                              |    2 +-
 src/filesystem/grl-filesystem.c                  |    2 +-
 src/flickr/grl-flickr.c                          |    6 +-
 src/freebox/grl-freebox.c                        |    4 +-
 src/jamendo/grl-jamendo.c                        |   17 ++--
 src/local-metadata/grl-local-metadata.c          |   18 ++--
 src/lua-factory/grl-lua-factory.c                |   36 ++++----
 src/lua-factory/grl-lua-library.c                |    4 +-
 src/magnatune/grl-magnatune.c                    |   30 +++----
 src/metadata-store/grl-metadata-store.c          |   22 +++---
 src/opensubtitles/grl-opensubtitles.c            |    6 +-
 src/podcasts/grl-podcasts.c                      |   10 +-
 src/raitv/grl-raitv.c                            |    6 +-
 src/shoutcast/grl-shoutcast.c                    |    9 +-
 src/thetvdb/grl-thetvdb.c                        |   46 +++++------
 src/tmdb/grl-tmdb.c                              |   21 ++---
 src/tracker/grl-tracker-source-api.c             |   12 ++--
 src/tracker/grl-tracker-utils.c                  |   10 +-
 src/tracker/grl-tracker-utils.h                  |   18 ++--
 src/vimeo/grl-vimeo.c                            |    6 +-
 src/youtube/grl-youtube.c                        |   10 +-
 tests/dleyna/test_dleyna.c                       |   28 +++---
 tests/local-metadata/test_local_metadata.c       |    2 +-
 tests/lua-factory/sources/test_lua_metrolyrics.c |   10 +-
 tests/spotify-cover/test_spotify_cover.c         |    4 +-
 tests/thetvdb/test_thetvdb_resolve_episodes.c    |   12 ++--
 tests/thetvdb/test_thetvdb_resolve_shows.c       |    8 +-
 tests/thetvdb/test_thetvdb_resolve_stress.c      |   27 +++----
 tests/vimeo/test_vimeo.c                         |    4 +-
 34 files changed, 302 insertions(+), 322 deletions(-)
---
diff --git a/src/bookmarks/grl-bookmarks.c b/src/bookmarks/grl-bookmarks.c
index 3e94a4c..671d2f3 100644
--- a/src/bookmarks/grl-bookmarks.c
+++ b/src/bookmarks/grl-bookmarks.c
@@ -338,19 +338,19 @@ build_media_from_resource (GrlMedia      *content,
 
   if (!media) {
     if (type == BOOKMARK_TYPE_CATEGORY) {
-      media = GRL_MEDIA (grl_media_box_new ());
+      media = grl_media_container_new ();
     } else if (mime_is_audio (mime)) {
       if (type_filter & GRL_TYPE_FILTER_AUDIO)
-        media = GRL_MEDIA (grl_media_new ());
+        media = grl_media_new ();
     } else if (mime_is_video (mime)) {
       if (type_filter & GRL_TYPE_FILTER_VIDEO)
-        media = GRL_MEDIA (grl_media_new ());
+        media = grl_media_new ();
     } else if (mime_is_image (mime)) {
       if (type_filter & GRL_TYPE_FILTER_IMAGE)
-        media = GRL_MEDIA (grl_media_image_new ());
+        media = grl_media_image_new ();
     } else {
       if (type_filter != GRL_TYPE_FILTER_NONE)
-        media = GRL_MEDIA (grl_media_new ());
+        media = grl_media_new ();
     }
   }
 
@@ -675,7 +675,7 @@ find_resource (const gchar   *id,
 static void
 store_bookmark (GrlBookmarksSource *bookmarks_source,
                 GList **keylist,
-                GrlMediaBox *parent,
+                GrlMedia *parent,
                 GrlMedia *bookmark,
                 GError **error)
 {
@@ -716,7 +716,7 @@ store_bookmark (GrlBookmarksSource *bookmarks_source,
 
   GRL_DEBUG ("URL: '%s'", url);
 
-  if (GRL_IS_MEDIA_BOX (bookmark)) {
+  if (grl_media_is_container (bookmark)) {
     type = BOOKMARK_TYPE_CATEGORY;
   } else {
     type = BOOKMARK_TYPE_STREAM;
diff --git a/src/dleyna/grl-dleyna-source.c b/src/dleyna/grl-dleyna-source.c
index fc9f193..acb51cd 100644
--- a/src/dleyna/grl-dleyna-source.c
+++ b/src/dleyna/grl-dleyna-source.c
@@ -502,56 +502,56 @@ media_set_property (GrlMedia *media,
   }
   else if (g_strcmp0 (key, "Artist") == 0) {
     s = g_variant_get_string (value, NULL);
-    if (GRL_IS_MEDIA_AUDIO (media)) {
-      grl_media_audio_set_artist (GRL_MEDIA_AUDIO (media), s);
+    if (grl_media_is_audio (media)) {
+      grl_media_set_artist (media, s);
     }
   }
   else if (g_strcmp0 (key, "Album") == 0) {
     s = g_variant_get_string (value, NULL);
-    if (GRL_IS_MEDIA_AUDIO (media)) {
-      grl_media_audio_set_album (GRL_MEDIA_AUDIO (media), s);
+    if (grl_media_is_audio (media)) {
+      grl_media_set_album (media, s);
     }
   }
   else if (g_strcmp0 (key, "Genre") == 0) {
     s = g_variant_get_string (value, NULL);
-    if (GRL_IS_MEDIA_AUDIO (media)) {
-      grl_media_audio_set_genre (GRL_MEDIA_AUDIO (media), s);
+    if (grl_media_is_audio (media)) {
+      grl_media_set_genre (media, s);
     }
   }
   else if (g_strcmp0 (key, "TrackNumber") == 0) {
     i = g_variant_get_int32 (value);
-    if (GRL_IS_MEDIA_AUDIO (media)) {
-      grl_media_audio_set_track_number (GRL_MEDIA_AUDIO (media), i);
+    if (grl_media_is_audio (media)) {
+      grl_media_set_track_number (media, i);
     }
   }
   else if (g_strcmp0 (key, "ChildCount") == 0) {
     guint32 count = g_variant_get_uint32 (value);
-    if (GRL_IS_MEDIA_BOX (media)) {
-      grl_media_box_set_childcount (GRL_MEDIA_BOX (media), count);
+    if (grl_media_is_container (media)) {
+      grl_media_set_childcount (media, count);
     }
   }
   else if (g_strcmp0 (key, "Width") == 0) {
     i = g_variant_get_int32 (value);
-    if (GRL_IS_MEDIA_VIDEO (media)) {
-      grl_media_video_set_width (GRL_MEDIA_VIDEO (media), i);
+    if (grl_media_is_video (media)) {
+      grl_media_set_width (media, i);
     }
-    if (GRL_IS_MEDIA_IMAGE (media)) {
-      grl_media_image_set_width (GRL_MEDIA_IMAGE (media), i);
+    if (grl_media_is_image (media)) {
+      grl_media_set_width (media, i);
     }
   }
   else if (g_strcmp0 (key, "Height") == 0) {
     i = g_variant_get_int32 (value);
-    if (GRL_IS_MEDIA_VIDEO (media)) {
-      grl_media_video_set_height (GRL_MEDIA_VIDEO (media), i);
+    if (grl_media_is_video (media)) {
+      grl_media_set_height (media, i);
     }
-    if (GRL_IS_MEDIA_IMAGE (media)) {
-      grl_media_image_set_height (GRL_MEDIA_IMAGE (media), i);
+    if (grl_media_is_image (media)) {
+      grl_media_set_height (media, i);
     }
   }
   else if (g_strcmp0 (key, "Bitrate") == 0) {
     i = g_variant_get_int32 (value);
-    if (GRL_IS_MEDIA_AUDIO (media)) {
-      grl_media_audio_set_bitrate (GRL_MEDIA_AUDIO (media), i);
+    if (grl_media_is_audio (media)) {
+      grl_media_set_bitrate (media, i);
     }
   }
   else if (g_strcmp0 (key, "AlbumArtURL") == 0) {
@@ -600,13 +600,13 @@ build_media_from_variant (GVariant *variant)
     media = grl_media_new ();
   }
   else if (g_str_has_prefix (type, "container")) {
-    media = grl_media_box_new ();
+    media = grl_media_container_new ();
   }
   /* Workaround https://github.com/01org/dleyna-server/issues/101 */
   else if (g_str_has_prefix (type, "album") ||
            g_str_has_prefix (type, "person") ||
            g_str_has_prefix (type, "genre")) {
-    media = grl_media_box_new ();
+    media = grl_media_container_new ();
   }
   else if (g_str_has_prefix (type, "audio") ||
            g_str_has_prefix (type, "music")) {
@@ -640,24 +640,24 @@ variant_set_property (GVariantBuilder *builder,
                                     grl_media_get_title (media));
       return TRUE;
     case GRL_METADATA_KEY_ARTIST:
-      if (GRL_IS_MEDIA_AUDIO (media))
+      if (grl_media_is_audio (media))
         g_variant_builder_add_parsed (builder, "{'Artist', <%s>}",
-                                      grl_media_audio_get_artist (GRL_MEDIA_AUDIO (media)));
+                                      grl_media_get_artist (media));
       return TRUE;
     case GRL_METADATA_KEY_ALBUM:
-      if (GRL_IS_MEDIA_AUDIO (media))
+      if (grl_media_is_audio (media))
         g_variant_builder_add_parsed (builder, "{'Album', <%s>}",
-                                      grl_media_audio_get_album (GRL_MEDIA_AUDIO (media)));
+                                      grl_media_get_album (media));
       return TRUE;
     case GRL_METADATA_KEY_GENRE:
-      if (GRL_IS_MEDIA_AUDIO (media))
+      if (grl_media_is_audio (media))
         g_variant_builder_add_parsed (builder, "{'Genre', <%s>}",
-                                      grl_media_audio_get_genre (GRL_MEDIA_AUDIO (media)));
+                                      grl_media_get_genre (media));
       return TRUE;
     case GRL_METADATA_KEY_TRACK_NUMBER:
-      if (GRL_IS_MEDIA_AUDIO (media))
+      if (grl_media_is_audio (media))
         g_variant_builder_add_parsed (builder, "{'TrackNumber', <%i>}",
-                                      grl_media_audio_get_track_number (GRL_MEDIA_AUDIO (media)));
+                                      grl_media_get_track_number (media));
       return TRUE;
     case GRL_METADATA_KEY_AUTHOR:
       g_variant_builder_add_parsed (builder, "{'Creator', <%s>}",
@@ -1513,7 +1513,7 @@ grl_dleyna_source_store (GrlSource *source,
 
   title = g_strdup (grl_media_get_title (ss->media));
 
-  if (!GRL_IS_MEDIA_BOX (ss->media)) {
+  if (!grl_media_is_container (ss->media)) {
     url = grl_media_get_url (ss->media);
     if (url == NULL) {
       error = g_error_new (GRL_CORE_ERROR, GRL_CORE_ERROR_STORE_FAILED,
@@ -1541,7 +1541,7 @@ grl_dleyna_source_store (GrlSource *source,
   if (container_object_path == NULL) {
     /* If no container has been explicitly requested, let the DMS choose the
       * appropriate storage location automatically */
-    if (GRL_IS_MEDIA_BOX (ss->media)) {
+    if (grl_media_is_container (ss->media)) {
       grl_dleyna_media_device_call_create_container_in_any_container (device, title, "container", 
child_types, NULL,
                                                                       
grl_dleyna_source_store_create_container_in_any_container_cb, ss);
     }
@@ -1567,7 +1567,7 @@ grl_dleyna_source_store (GrlSource *source,
       goto out;
     }
 
-    if (GRL_IS_MEDIA_BOX (ss->media)) {
+    if (grl_media_is_container (ss->media)) {
       grl_dleyna_media_container2_call_create_container (container, title, "container", child_types, NULL,
                                                          grl_dleyna_source_store_create_container_cb, ss);
     }
diff --git a/src/dmap/grl-daap-db.c b/src/dmap/grl-daap-db.c
index 641e0dd..4850073 100644
--- a/src/dmap/grl-daap-db.c
+++ b/src/dmap/grl-daap-db.c
@@ -25,15 +25,15 @@
  * database implementation imposes a hierarchical structure, whereas DAAP
  * normally provides a flat structure.
  *
- * Each hash table/set is a mapping between a GrlMediaBox and a series of
- * GrlMedia objects (either more GrlMediaBox objects, or, in the case of a
- * leaf, GrlMediaAudio objects). The constant GrlMediaBox objects (e.g.,
- * albums_box and artists_box) facilitate this, along with additional
+ * Each hash table/set is a mapping between a GrlMedia container and a series of
+ * GrlMedia objects (either more GrlMedia container objects, or, in the case of a
+ * leaf, GrlMediaAudio objects). The constant GrlMedia container objects (e.g.,
+ * albums_container and artists_container) facilitate this, along with additional
  * GrlMediaAudio objects that the grl_daap_db_add function creates.
  *
  * An application will normally first browse using the NULL container,
- * and thus will first receive albums_box and artists_box. Browsing
- * albums_box will provide the application the GrlMediaBox objects in
+ * and thus will first receive albums_container and artists_container. Browsing
+ * albums_container will provide the application the GrlMedia container objects in
  * albums. Further browsing one of these objects will provide the
  * application with the songs contained therein.
  *
@@ -67,11 +67,11 @@
 static guint nextid = G_MAXINT; /* NOTE: this should be G_MAXUINT, but iPhoto can't handle it. */
 
 struct GrlDAAPDbPrivate {
-  /* Contains each album box (tracked with albums hash table) */
-  GrlMediaBox *albums_box;
+  /* Contains each album container (tracked with albums hash table) */
+  GrlMedia *albums_container;
 
-  /* Contains each artist box (tracked with artist hash table) */
-  GrlMediaBox *artists_box;
+  /* Contains each artist container (tracked with artist hash table) */
+  GrlMedia *artists_container;
 
   GHashTable  *root;
   GHashTable  *albums;
@@ -84,13 +84,13 @@ enum {
 };
 
 static guint
-box_hash (gconstpointer a)
+container_hash (gconstpointer a)
 {
   return g_str_hash (grl_media_get_id (GRL_MEDIA (a)));
 }
 
 static gboolean
-box_equal (gconstpointer a, gconstpointer b)
+container_equal (gconstpointer a, gconstpointer b)
 {
   return g_str_equal (grl_media_get_id (GRL_MEDIA (a)), grl_media_get_id (GRL_MEDIA (b)));
 }
@@ -129,25 +129,25 @@ static void
 set_insert (GHashTable *category, const char *category_name, char *set_name, GrlMedia *media)
 {
   gchar      *id = NULL;
-  GrlMedia   *box;
+  GrlMedia   *container;
   GHashTable *set;
 
   id = g_strdup_printf ("%s-%s", category_name, set_name);
 
-  box = g_object_new (GRL_TYPE_MEDIA_BOX, NULL);
-  grl_media_set_id    (box, id);
-  grl_media_set_title (box, set_name);
+  container = grl_media_container_new ();
+  grl_media_set_id    (container, id);
+  grl_media_set_title (container, set_name);
 
-  set = g_hash_table_lookup (category, box);
+  set = g_hash_table_lookup (category, container);
   if (NULL == set) {
-    set = g_hash_table_new_full (box_hash, box_equal, g_object_unref, NULL);
-    g_hash_table_insert (category, g_object_ref (box), set);
+    set = g_hash_table_new_full (container_hash, container_equal, g_object_unref, NULL);
+    g_hash_table_insert (category, g_object_ref (container), set);
   }
 
   g_hash_table_insert (set, g_object_ref (media), NULL);
 
   g_free (id);
-  g_object_unref (box);
+  g_object_unref (container);
 }
 
 static guint
@@ -214,21 +214,19 @@ grl_daap_db_add (DMAPDb *_db, DMAPRecord *_record)
   }
 
   if (has_video == FALSE) {
-    GrlMediaAudio *media_audio = GRL_MEDIA_AUDIO (media);
-
-    grl_media_audio_set_bitrate      (media_audio, bitrate);
-    grl_media_audio_set_track_number (media_audio, track);
+    grl_media_set_bitrate      (media, bitrate);
+    grl_media_set_track_number (media, track);
 
     if (album) {
-      grl_media_audio_set_album (media_audio, album);
+      grl_media_set_album (media, album);
     }
 
     if (artist) {
-      grl_media_audio_set_artist (media_audio, artist);
+      grl_media_set_artist (media, artist);
     }
 
     if (genre) {
-      grl_media_audio_set_genre (media_audio, genre);
+      grl_media_set_genre (media, genre);
     }
   }
 
@@ -265,12 +263,12 @@ grl_daap_db_browse (GrlDAAPDb *db,
   GHashTableIter iter;
   gpointer key, val;
 
-  const gchar *box_id = grl_media_get_id (container);
-  if (NULL == box_id) {
+  const gchar *container_id = grl_media_get_id (container);
+  if (NULL == container_id) {
     hash_table = db->priv->root;
-  } else if (same_media (container, GRL_MEDIA (db->priv->albums_box))) {
+  } else if (same_media (container, GRL_MEDIA (db->priv->albums_container))) {
     hash_table = db->priv->albums;
-  } else if (same_media (container, GRL_MEDIA (db->priv->artists_box))) {
+  } else if (same_media (container, GRL_MEDIA (db->priv->artists_container))) {
     hash_table = db->priv->artists;
   } else {
     hash_table = g_hash_table_lookup (db->priv->artists, container);
@@ -285,7 +283,7 @@ grl_daap_db_browse (GrlDAAPDb *db,
     GError *error = g_error_new (GRL_CORE_ERROR,
                                  GRL_CORE_ERROR_BROWSE_FAILED,
                                  _("Invalid container identifier %s"),
-                                 box_id);
+                                 container_id);
     func (source, op_id, NULL, 0, user_data, error);
     goto done;
   }
@@ -297,8 +295,8 @@ grl_daap_db_browse (GrlDAAPDb *db,
     if (i < skip) {
       continue;
     }
-    if (GRL_IS_MEDIA_BOX (key)) {
-      grl_media_box_set_childcount (GRL_MEDIA_BOX (key), g_hash_table_size (val));
+    if (grl_media_is_container (key)) {
+      grl_media_set_childcount (key, g_hash_table_size (val));
     }
     func (source, op_id, GRL_MEDIA (g_object_ref (key)), --remaining, user_data, NULL);
   }
@@ -333,7 +331,7 @@ grl_daap_db_search (GrlDAAPDb *db,
     g_hash_table_iter_init (&iter1, hash_tables[i]);
     /* For each album or artist in above... */
     for (j = 0; g_hash_table_iter_next (&iter1, &key1, &val1); j++) {
-      if (GRL_IS_MEDIA_BOX (key1)) {
+      if (grl_media_is_container (key1)) {
         g_hash_table_iter_init (&iter2, val1);
         /* For each media item in above... */
         for (k = 0; g_hash_table_iter_next (&iter2, &key2, &val2); k++) {
@@ -387,21 +385,21 @@ grl_daap_db_init (GrlDAAPDb *db)
 {
   db->priv = GRL_DAAP_DB_GET_PRIVATE (db);
 
-  db->priv->albums_box  = g_object_new (GRL_TYPE_MEDIA_BOX, NULL);
-  db->priv->artists_box = g_object_new (GRL_TYPE_MEDIA_BOX, NULL);
+  db->priv->albums_container  = grl_media_container_new ();
+  db->priv->artists_container = grl_media_container_new ();
 
-  grl_media_set_id    (GRL_MEDIA (db->priv->albums_box), ALBUMS_ID);
-  grl_media_set_title (GRL_MEDIA (db->priv->albums_box), ALBUMS_NAME);
+  grl_media_set_id    (GRL_MEDIA (db->priv->albums_container), ALBUMS_ID);
+  grl_media_set_title (GRL_MEDIA (db->priv->albums_container), ALBUMS_NAME);
 
-  grl_media_set_id    (GRL_MEDIA (db->priv->artists_box), ARTISTS_ID);
-  grl_media_set_title (GRL_MEDIA (db->priv->artists_box), ARTISTS_NAME);
+  grl_media_set_id    (GRL_MEDIA (db->priv->artists_container), ARTISTS_ID);
+  grl_media_set_title (GRL_MEDIA (db->priv->artists_container), ARTISTS_NAME);
 
-  db->priv->root    = g_hash_table_new_full (box_hash, box_equal, g_object_unref, (GDestroyNotify) 
g_hash_table_destroy);
-  db->priv->albums  = g_hash_table_new_full (box_hash, box_equal, g_object_unref, (GDestroyNotify) 
g_hash_table_destroy);
-  db->priv->artists = g_hash_table_new_full (box_hash, box_equal, g_object_unref, (GDestroyNotify) 
g_hash_table_destroy);
+  db->priv->root    = g_hash_table_new_full (container_hash, container_equal, g_object_unref, 
(GDestroyNotify) g_hash_table_destroy);
+  db->priv->albums  = g_hash_table_new_full (container_hash, container_equal, g_object_unref, 
(GDestroyNotify) g_hash_table_destroy);
+  db->priv->artists = g_hash_table_new_full (container_hash, container_equal, g_object_unref, 
(GDestroyNotify) g_hash_table_destroy);
 
-  g_hash_table_insert (db->priv->root, g_object_ref (db->priv->albums_box),  db->priv->albums);
-  g_hash_table_insert (db->priv->root, g_object_ref (db->priv->artists_box), db->priv->artists);
+  g_hash_table_insert (db->priv->root, g_object_ref (db->priv->albums_container),  db->priv->albums);
+  g_hash_table_insert (db->priv->root, g_object_ref (db->priv->artists_container), db->priv->artists);
 }
 
 static void
@@ -411,8 +409,8 @@ grl_daap_db_finalize (GObject *object)
 
   GRL_DEBUG ("Finalizing GrlDAAPDb");
 
-  g_object_unref (db->priv->albums_box);
-  g_object_unref (db->priv->artists_box);
+  g_object_unref (db->priv->albums_container);
+  g_object_unref (db->priv->artists_container);
 
   g_hash_table_destroy (db->priv->albums);
   g_hash_table_destroy (db->priv->artists);
diff --git a/src/dmap/grl-daap.c b/src/dmap/grl-daap.c
index edcdb61..59aa981 100644
--- a/src/dmap/grl-daap.c
+++ b/src/dmap/grl-daap.c
@@ -344,7 +344,7 @@ grl_daap_connect (gchar *name, gchar *host, guint port, ResultCbAndArgsAndDb *cb
 static gboolean
 grl_daap_match (GrlMedia *media, gpointer val, gpointer user_data)
 {
-  g_assert (GRL_IS_MEDIA_AUDIO (media) || GRL_IS_MEDIA_VIDEO (media));
+  g_assert (grl_media_is_audio (media) || grl_media_is_video (media));
 
   if (NULL == user_data) {
     return TRUE;
diff --git a/src/dmap/grl-dpap-db.c b/src/dmap/grl-dpap-db.c
index ea418d2..69f8e34 100644
--- a/src/dmap/grl-dpap-db.c
+++ b/src/dmap/grl-dpap-db.c
@@ -39,8 +39,8 @@
 static guint nextid = G_MAXINT; /* NOTE: this should be G_MAXUINT, but iPhoto can't handle it. */
 
 struct GrlDPAPDbPrivate {
-  /* Contains each picture box (tracked with photos hash table) */
-  GrlMediaBox *photos_box;
+  /* Contains each picture container (tracked with photos hash table) */
+  GrlMedia *photos_container;
 
   GHashTable  *root;
   GHashTable  *photos;
@@ -52,13 +52,13 @@ enum {
 };
 
 static guint
-box_hash (gconstpointer a)
+container_hash (gconstpointer a)
 {
   return g_str_hash (grl_media_get_id (GRL_MEDIA (a)));
 }
 
 static gboolean
-box_equal (gconstpointer a, gconstpointer b)
+container_equal (gconstpointer a, gconstpointer b)
 {
   return g_str_equal (grl_media_get_id (GRL_MEDIA (a)), grl_media_get_id (GRL_MEDIA (b)));
 }
@@ -97,25 +97,25 @@ static void
 set_insert (GHashTable *category, const char *category_name, char *set_name, GrlMedia *media)
 {
   gchar      *id = NULL;
-  GrlMedia   *box;
+  GrlMedia   *container;
   GHashTable *set;
 
   id = g_strdup_printf ("%s-%s", category_name, set_name);
 
-  box = g_object_new (GRL_TYPE_MEDIA_BOX, NULL);
-  grl_media_set_id    (box, id);
-  grl_media_set_title (box, set_name);
+  container = grl_media_container_new ();
+  grl_media_set_id    (container, id);
+  grl_media_set_title (container, set_name);
 
-  set = g_hash_table_lookup (category, box);
+  set = g_hash_table_lookup (category, container);
   if (set == NULL) {
-    set = g_hash_table_new_full (box_hash, box_equal, g_object_unref, NULL);
-    g_hash_table_insert (category, g_object_ref (box), set);
+    set = g_hash_table_new_full (container_hash, container_equal, g_object_unref, NULL);
+    g_hash_table_insert (category, g_object_ref (container), set);
   }
 
   g_hash_table_insert (set, g_object_ref (media), NULL);
 
   g_free (id);
-  g_object_unref (box);
+  g_object_unref (container);
 }
 
 static guint
@@ -181,11 +181,9 @@ grl_dpap_db_add (DMAPDb *_db, DMAPRecord *_record)
     grl_media_set_url (media, url);
   }
 
-  GrlMediaImage *media_image = GRL_MEDIA_IMAGE (media);
+  grl_media_set_width  (media, width);
+  grl_media_set_height (media, height);
 
-  grl_media_image_set_width  (media_image, width);
-  grl_media_image_set_height (media_image, height);
- 
   set_insert (db->priv->photos,  PHOTOS_ID, "Unknown",  media);
 
   g_free (id_s);
@@ -218,10 +216,10 @@ grl_dpap_db_browse (GrlDPAPDb *db,
   GHashTableIter iter;
   gpointer key, val;
 
-  const gchar *box_id = grl_media_get_id (container);
-  if (box_id == NULL) {
+  const gchar *container_id = grl_media_get_id (container);
+  if (container_id == NULL) {
     hash_table = db->priv->root;
-  } else if (same_media (container, GRL_MEDIA (db->priv->photos_box))) {
+  } else if (same_media (container, GRL_MEDIA (db->priv->photos_container))) {
     hash_table = db->priv->photos;
   } else {
     hash_table = g_hash_table_lookup (db->priv->photos, container);
@@ -233,7 +231,7 @@ grl_dpap_db_browse (GrlDPAPDb *db,
     GError *error = g_error_new (GRL_CORE_ERROR,
                                  GRL_CORE_ERROR_BROWSE_FAILED,
                                  "Invalid container identifier %s",
-                                 box_id);
+                                 container_id);
     func (source, op_id, NULL, 0, user_data, error);
     goto done;
   }
@@ -244,8 +242,8 @@ grl_dpap_db_browse (GrlDPAPDb *db,
   for (i = 0; g_hash_table_iter_next (&iter, &key, &val) && i < skip + count; i++) {
     if (i < skip)
       continue;
-    if (GRL_IS_MEDIA_BOX (key))
-      grl_media_box_set_childcount (GRL_MEDIA_BOX (key), g_hash_table_size (val));
+    if (grl_media_is_container (key))
+      grl_media_set_childcount (key, g_hash_table_size (val));
     func (source, op_id, GRL_MEDIA (g_object_ref (key)), --remaining, user_data, NULL);
   }
 done:
@@ -279,7 +277,7 @@ grl_dpap_db_search (GrlDPAPDb *db,
     g_hash_table_iter_init (&iter1, hash_tables[i]);
     /* For each album or artist in above... */
     for (j = 0; g_hash_table_iter_next (&iter1, &key1, &val1); j++) {
-      if (GRL_IS_MEDIA_BOX (key1)) {
+      if (grl_media_is_container (key1)) {
         g_hash_table_iter_init (&iter2, val1);
         /* For each media item in above... */
         for (k = 0; g_hash_table_iter_next (&iter2, &key2, &val2); k++) {
@@ -333,15 +331,15 @@ grl_dpap_db_init (GrlDPAPDb *db)
 {
   db->priv = GRL_DPAP_DB_GET_PRIVATE (db);
 
-  db->priv->photos_box  = g_object_new (GRL_TYPE_MEDIA_BOX, NULL);
+  db->priv->photos_container  = grl_media_container_new ();
 
-  grl_media_set_id    (GRL_MEDIA (db->priv->photos_box), PHOTOS_ID);
-  grl_media_set_title (GRL_MEDIA (db->priv->photos_box), PHOTOS_NAME);
+  grl_media_set_id    (GRL_MEDIA (db->priv->photos_container), PHOTOS_ID);
+  grl_media_set_title (GRL_MEDIA (db->priv->photos_container), PHOTOS_NAME);
 
-  db->priv->root   = g_hash_table_new_full (box_hash, box_equal, g_object_unref, (GDestroyNotify) 
g_hash_table_destroy);
-  db->priv->photos = g_hash_table_new_full (box_hash, box_equal, g_object_unref, (GDestroyNotify) 
g_hash_table_destroy);
+  db->priv->root   = g_hash_table_new_full (container_hash, container_equal, g_object_unref, 
(GDestroyNotify) g_hash_table_destroy);
+  db->priv->photos = g_hash_table_new_full (container_hash, container_equal, g_object_unref, 
(GDestroyNotify) g_hash_table_destroy);
 
-  g_hash_table_insert (db->priv->root, g_object_ref (db->priv->photos_box), db->priv->photos);
+  g_hash_table_insert (db->priv->root, g_object_ref (db->priv->photos_container), db->priv->photos);
 }
 
 static void
@@ -351,7 +349,7 @@ grl_dpap_db_finalize (GObject *object)
 
   GRL_DEBUG ("Finalizing GrlDPAPDb");
 
-  g_object_unref (db->priv->photos_box);
+  g_object_unref (db->priv->photos_container);
 
   g_hash_table_destroy (db->priv->photos);
 }
diff --git a/src/dmap/grl-dpap.c b/src/dmap/grl-dpap.c
index 0e9ad1c..86fad62 100644
--- a/src/dmap/grl-dpap.c
+++ b/src/dmap/grl-dpap.c
@@ -344,7 +344,7 @@ grl_dpap_connect (gchar *name, gchar *host, guint port, ResultCbAndArgsAndDb *cb
 static gboolean
 grl_dpap_match (GrlMedia *media, gpointer val, gpointer user_data)
 {
-  g_assert (GRL_IS_MEDIA_IMAGE (media));
+  g_assert (grl_media_is_image (media));
 
   if (user_data == NULL)
     return TRUE;
diff --git a/src/filesystem/grl-filesystem.c b/src/filesystem/grl-filesystem.c
index c71545a..1bda4f0 100644
--- a/src/filesystem/grl-filesystem.c
+++ b/src/filesystem/grl-filesystem.c
@@ -1160,7 +1160,7 @@ grl_filesystem_source_resolve (GrlSource *source,
       file = g_file_new_for_uri (chosen_uris->data);
     } else {
       grl_media_set_title (rs->media, SOURCE_NAME);
-      grl_media_box_set_childcount (GRL_MEDIA_BOX (rs->media), len);
+      grl_media_set_childcount (rs->media, len);
       rs->callback (rs->source, rs->operation_id, rs->media, rs->user_data, NULL);
       return;
     }
diff --git a/src/flickr/grl-flickr.c b/src/flickr/grl-flickr.c
index 9f8b99a..484b6ef 100644
--- a/src/flickr/grl-flickr.c
+++ b/src/flickr/grl-flickr.c
@@ -279,7 +279,7 @@ grl_flickr_source_public_new (const gchar *flickr_api_key,
                          "source-id", PUBLIC_SOURCE_ID,
                          "source-name", PUBLIC_SOURCE_NAME,
                          "source-desc", PUBLIC_SOURCE_DESC,
-                         "supported-media", GRL_MEDIA_TYPE_IMAGE,
+                         "supported-media", GRL_SUPPORTED_MEDIA_IMAGE,
                          "source-tags", tags,
                          NULL);
   source->priv->flickr = g_flickr_new (flickr_api_key, flickr_secret,
@@ -639,7 +639,7 @@ photosetslist_cb (GFlickr *f, GList *photosets, gpointer user_data)
 
   while (photosets && count > 0) {
     count--;
-    media = grl_media_box_new ();
+    media = grl_media_container_new ();
     grl_media_set_id (media,
                       g_hash_table_lookup (photosets->data,
                                            "photoset_id"));
@@ -741,7 +741,7 @@ gettags_cb (GFlickr *f, GList *taglist, gpointer user_data)
   count = g_list_length (taglist);
   while (taglist) {
     count--;
-    media = grl_media_box_new ();
+    media = grl_media_container_new ();
     grl_media_set_id (media, taglist->data);
     grl_media_set_title (media, taglist->data);
     bs->callback (bs->source,
diff --git a/src/freebox/grl-freebox.c b/src/freebox/grl-freebox.c
index e06699e..e89eb7e 100644
--- a/src/freebox/grl-freebox.c
+++ b/src/freebox/grl-freebox.c
@@ -208,7 +208,7 @@ grl_freebox_source_new_tv (void)
                          "source-id", TV_SOURCE_ID,
                          "source-name", TV_SOURCE_NAME,
                          "source-desc", TV_SOURCE_DESC,
-                         "supported-media", GRL_MEDIA_TYPE_VIDEO,
+                         "supported-media", GRL_SUPPORTED_MEDIA_VIDEO,
                          "source-icon", icon,
                          "source-tags", tags,
                          NULL);
@@ -239,7 +239,7 @@ grl_freebox_source_new_radio (void)
                          "source-id", RADIO_SOURCE_ID,
                          "source-name", RADIO_SOURCE_NAME,
                          "source-desc", RADIO_SOURCE_DESC,
-                         "supported-media", GRL_MEDIA_TYPE_AUDIO,
+                         "supported-media", GRL_SUPPORTED_MEDIA_AUDIO,
                          "source-icon", icon,
                          "source-tags", tags,
                          NULL);
diff --git a/src/jamendo/grl-jamendo.c b/src/jamendo/grl-jamendo.c
index 7793585..a58be4b 100644
--- a/src/jamendo/grl-jamendo.c
+++ b/src/jamendo/grl-jamendo.c
@@ -242,7 +242,7 @@ grl_jamendo_source_new (void)
                       "source-id", SOURCE_ID,
                       "source-name", SOURCE_NAME,
                       "source-desc", SOURCE_DESC,
-                      "supported-media", GRL_MEDIA_TYPE_AUDIO,
+                      "supported-media", GRL_SUPPORTED_MEDIA_AUDIO,
                       "source-tags", tags,
                       NULL);
 }
@@ -542,8 +542,7 @@ update_media_from_entry (GrlMedia *media, const Entry *entry)
     }
 
     if (entry->album_genre) {
-      grl_media_audio_set_genre (GRL_MEDIA_AUDIO (media),
-                                 entry->album_genre);
+      grl_media_set_genre (media, entry->album_genre);
     }
 
     if (entry->track_url) {
@@ -586,7 +585,7 @@ xml_parse_entries_idle (gpointer user_data)
     if (entry->category == JAMENDO_TRACK_CAT) {
       media = grl_media_audio_new ();
     } else {
-      media = grl_media_box_new ();
+      media = grl_media_container_new ();
     }
 
     update_media_from_entry (media, entry);
@@ -772,7 +771,7 @@ static void
 update_media_from_root (GrlMedia *media)
 {
   grl_media_set_title (media, JAMENDO_ROOT_NAME);
-  grl_media_box_set_childcount (GRL_MEDIA_BOX (media), 3);
+  grl_media_set_childcount (media, 3);
 }
 
 static void
@@ -806,7 +805,7 @@ update_media_from_feeds (GrlMedia *media)
   };
 
   update_media_from_entry (media, &entry);
-  grl_media_box_set_childcount (GRL_MEDIA_BOX (media), G_N_ELEMENTS(feeds));
+  grl_media_set_childcount (media, G_N_ELEMENTS(feeds));
 }
 
 static void
@@ -827,7 +826,7 @@ send_toplevel_categories (GrlSourceBrowseSpec *bs)
   remaining = MIN (count, 3 - skip);
 
   while (remaining > 0) {
-    media = grl_media_box_new ();
+    media = grl_media_container_new ();
     switch (skip) {
     case 0:
       update_media_from_artists (media);
@@ -875,7 +874,7 @@ send_feeds (GrlSourceBrowseSpec *bs)
     for (i = skip; remaining > 0 && i < G_N_ELEMENTS (feeds); i++) {
       GrlMedia *media;
 
-      media = grl_media_box_new ();
+      media = grl_media_container_new ();
       update_media_from_feed (media, i);
       remaining--;
       bs->callback (bs->source,
@@ -976,7 +975,7 @@ grl_jamendo_source_resolve (GrlSource *source,
                          GRL_METADATA_KEY_ID)) {
     /* Get info from root */
     if (!rs->media) {
-      rs->media = grl_media_box_new ();
+      rs->media = grl_media_container_new ();
     }
     update_media_from_root (rs->media);
   } else {
diff --git a/src/local-metadata/grl-local-metadata.c b/src/local-metadata/grl-local-metadata.c
index 6ecce31..c48b84f 100644
--- a/src/local-metadata/grl-local-metadata.c
+++ b/src/local-metadata/grl-local-metadata.c
@@ -366,7 +366,7 @@ got_file_info (GFile *file,
 
   flags = get_resolution_flags (rs->keys, priv);
 
-  if (GRL_IS_MEDIA_AUDIO (rs->media) &&
+  if (grl_media_is_audio (rs->media) &&
       !(thumbnail_path && thumbnail_is_valid)) {
     /* We couldn't get a per-track thumbnail; try for a per-album one,
      * using libmediaart */
@@ -468,8 +468,8 @@ resolve_album_art (ResolveData         *resolve_data,
 
   resolve_data_start_operation (resolve_data, "album-art");
 
-  artist = grl_media_audio_get_artist (GRL_MEDIA_AUDIO (resolve_data->rs->media));
-  album = grl_media_audio_get_album (GRL_MEDIA_AUDIO (resolve_data->rs->media));
+  artist = grl_media_get_artist (resolve_data->rs->media);
+  album = grl_media_get_album (resolve_data->rs->media);
 
   if (!artist || !album)
     goto done;
@@ -604,10 +604,10 @@ grl_local_metadata_source_may_resolve (GrlSource *source,
                                        GrlKeyID key_id,
                                        GList **missing_keys)
 {
-  if (!media || GRL_IS_MEDIA_VIDEO (media))
+  if (!media || grl_media_is_video (media))
     return FALSE;
 
-  if (GRL_IS_MEDIA_AUDIO (media)) {
+  if (grl_media_is_audio (media)) {
     gboolean have_artist = FALSE, have_album = FALSE;
 
     if ((have_artist = grl_data_has_key (GRL_DATA (media),
@@ -635,7 +635,7 @@ grl_local_metadata_source_may_resolve (GrlSource *source,
     return FALSE;
   }
 
-  if (GRL_IS_MEDIA_IMAGE (media)) {
+  if (grl_media_is_image (media)) {
     if (key_id != GRL_METADATA_KEY_THUMBNAIL)
       return FALSE;
     if (!grl_data_has_key (GRL_DATA (media), GRL_METADATA_KEY_URL))
@@ -680,7 +680,7 @@ grl_local_metadata_source_resolve (GrlSource *source,
     error = g_error_new_literal (GRL_CORE_ERROR,
                                  GRL_CORE_ERROR_RESOLVE_FAILED,
                                  _("Cannot resolve any of the given keys"));
-  if (GRL_IS_MEDIA_IMAGE (rs->media) && can_access == FALSE)
+  if (grl_media_is_image (rs->media) && can_access == FALSE)
     error = g_error_new_literal (GRL_CORE_ERROR,
                                  GRL_CORE_ERROR_RESOLVE_FAILED,
                                  _("A GIO supported URL for images is required"));
@@ -694,9 +694,9 @@ grl_local_metadata_source_resolve (GrlSource *source,
 
   GRL_DEBUG ("\ttrying to resolve for: %s", grl_media_get_url (rs->media));
 
-  if (GRL_IS_MEDIA_IMAGE (rs->media)) {
+  if (grl_media_is_image (rs->media)) {
     resolve_image (data, flags);
-  } else if (GRL_IS_MEDIA_AUDIO (rs->media)) {
+  } else if (grl_media_is_audio (rs->media)) {
     /* Try for a per-track thumbnail first; we'll fall back to album art
      * if the track doesn't have one */
     resolve_image (data, flags);
diff --git a/src/lua-factory/grl-lua-factory.c b/src/lua-factory/grl-lua-factory.c
index a37c7d1..0cdbc87 100644
--- a/src/lua-factory/grl-lua-factory.c
+++ b/src/lua-factory/grl-lua-factory.c
@@ -109,7 +109,7 @@ static gint lua_plugin_source_info (lua_State *L,
                                     gchar **source_id,
                                     gchar **source_name,
                                     gchar **source_desc,
-                                    GrlMediaType *source_supported_media,
+                                    GrlSupportedMedia *source_supported_media,
                                     GIcon **source_icon,
                                     guint *auto_split_threshold,
                                     gchar ***source_tags);
@@ -364,7 +364,7 @@ grl_lua_factory_source_new (gchar       *lua_plugin_path,
   gchar *source_name = NULL;
   gchar *source_desc = NULL;
   GIcon *source_icon = NULL;
-  GrlMediaType source_supported_media = GRL_MEDIA_TYPE_ALL;
+  GrlSupportedMedia source_supported_media = GRL_SUPPORTED_MEDIA_ALL;
   guint auto_split_threshold;
   gchar **source_tags;
   gint ret = 0;
@@ -1249,7 +1249,7 @@ lua_plugin_source_info (lua_State *L,
                         gchar **source_id,
                         gchar **source_name,
                         gchar **source_desc,
-                        GrlMediaType *source_supported_media,
+                        GrlSupportedMedia *source_supported_media,
                         GIcon **source_icon,
                         guint *auto_split_threshold,
                         gchar ***source_tags)
@@ -1314,13 +1314,13 @@ lua_plugin_source_info (lua_State *L,
 
   if (lua_source_media != NULL) {
     if (g_strcmp0 (lua_source_media, "audio") == 0)
-      *source_supported_media = GRL_MEDIA_TYPE_AUDIO;
+      *source_supported_media = GRL_SUPPORTED_MEDIA_AUDIO;
     else if (g_strcmp0 (lua_source_media, "video") == 0)
-      *source_supported_media = GRL_MEDIA_TYPE_VIDEO;
+      *source_supported_media = GRL_SUPPORTED_MEDIA_VIDEO;
     else if (g_strcmp0 (lua_source_media, "image") == 0)
-      *source_supported_media = GRL_MEDIA_TYPE_IMAGE;
+      *source_supported_media = GRL_SUPPORTED_MEDIA_IMAGE;
     else if (g_strcmp0 (lua_source_media, "all") == 0)
-      *source_supported_media = GRL_MEDIA_TYPE_ALL;
+      *source_supported_media = GRL_SUPPORTED_MEDIA_ALL;
   }
 
   if (lua_source_icon != NULL) {
@@ -1387,7 +1387,7 @@ lua_plugin_source_all_keys (lua_State *L,
   lua_pushstring (L, LUA_SOURCE_RESOLVE_KEYS);
   lua_gettable (L, -2);
   if (lua_istable (L, -1)) {
-    GrlMediaType media_type = GRL_MEDIA_TYPE_NONE;
+    GrlSupportedMedia supported_media = GRL_SUPPORTED_MEDIA_NONE;
 
     /* check required type field */
     lua_pushstring (L, "type");
@@ -1395,17 +1395,17 @@ lua_plugin_source_all_keys (lua_State *L,
     if (lua_isstring (L, -1)) {
       key_name = lua_tostring (L, -1);
       if (g_strcmp0 (key_name, "audio") == 0)
-        media_type = GRL_MEDIA_TYPE_AUDIO;
+        supported_media = GRL_SUPPORTED_MEDIA_AUDIO;
       else if (g_strcmp0 (key_name, "video") == 0)
-        media_type = GRL_MEDIA_TYPE_VIDEO;
+        supported_media = GRL_SUPPORTED_MEDIA_VIDEO;
       else if (g_strcmp0 (key_name, "image") == 0)
-        media_type = GRL_MEDIA_TYPE_IMAGE;
+        supported_media = GRL_SUPPORTED_MEDIA_IMAGE;
       else if (g_strcmp0 (key_name, "all") == 0)
-        media_type = GRL_MEDIA_TYPE_ALL;
+        supported_media = GRL_SUPPORTED_MEDIA_ALL;
     }
     lua_pop (L, 1);
 
-    *resolve_type = media_type;
+    *resolve_type = supported_media;
 
     /* check required table field */
     *resolve_keys = keys_table_array_to_list (L, LUA_REQUIRED_TABLE, registry, source_id);
@@ -1635,7 +1635,7 @@ grl_lua_factory_source_may_resolve (GrlSource *source,
   GrlLuaFactorySource *lua_source = GRL_LUA_FACTORY_SOURCE (source);
   GList *it_keys = NULL;
   GList *missing = NULL;
-  GrlMediaType res_type = GRL_MEDIA_TYPE_NONE;
+  GrlSupportedMedia res_type = GRL_SUPPORTED_MEDIA_NONE;
   GrlKeyID it_key_id = GRL_METADATA_KEY_INVALID;
 
   GRL_DEBUG ("grl_lua_factory_source_may_resolve");
@@ -1655,10 +1655,10 @@ grl_lua_factory_source_may_resolve (GrlSource *source,
 
   /* Verify if the source resolve type and media type match */
   res_type = lua_source->priv->resolve_type;
-  if ((GRL_IS_MEDIA_BOX (media) && (res_type != GRL_MEDIA_TYPE_ALL))
-      || (GRL_IS_MEDIA_AUDIO (media) && !(res_type & GRL_MEDIA_TYPE_AUDIO))
-      || (GRL_IS_MEDIA_IMAGE (media) && !(res_type & GRL_MEDIA_TYPE_IMAGE))
-      || (GRL_IS_MEDIA_VIDEO (media) && !(res_type & GRL_MEDIA_TYPE_VIDEO))) {
+  if ((grl_media_is_container (media) && (res_type != GRL_SUPPORTED_MEDIA_ALL))
+      || (grl_media_is_audio (media) && !(res_type & GRL_SUPPORTED_MEDIA_AUDIO))
+      || (grl_media_is_image (media) && !(res_type & GRL_SUPPORTED_MEDIA_IMAGE))
+      || (grl_media_is_video (media) && !(res_type & GRL_SUPPORTED_MEDIA_VIDEO))) {
     return FALSE;
   }
 
diff --git a/src/lua-factory/grl-lua-library.c b/src/lua-factory/grl-lua-library.c
index da61eb3..c391e96 100644
--- a/src/lua-factory/grl-lua-library.c
+++ b/src/lua-factory/grl-lua-library.c
@@ -315,8 +315,8 @@ grl_util_build_media (lua_State *L,
     if (lua_isstring (L, -1)) {
       const gchar *media_type = lua_tostring (L, -1);
 
-      if (g_strcmp0 (media_type, "box") == 0)
-        media = grl_media_box_new ();
+      if (g_strcmp0 (media_type, "container") == 0)
+        media = grl_media_container_new ();
       else if (g_strcmp0 (media_type, "image") == 0)
         media = grl_media_image_new ();
       else if (g_strcmp0 (media_type, "audio") == 0)
diff --git a/src/magnatune/grl-magnatune.c b/src/magnatune/grl-magnatune.c
index ba4637c..3749104 100644
--- a/src/magnatune/grl-magnatune.c
+++ b/src/magnatune/grl-magnatune.c
@@ -237,7 +237,7 @@ grl_magnatune_source_new(void)
                         "source-id", SOURCE_ID,
                         "source-name", SOURCE_NAME,
                         "source-desc", SOURCE_DESC,
-                        "supported-media", GRL_MEDIA_TYPE_AUDIO,
+                        "supported-media", GRL_SUPPORTED_MEDIA_AUDIO,
                         "source-tags", tags,
                         NULL);
 
@@ -603,15 +603,12 @@ build_media(gint track_id,
             const gchar *url_to_mp3)
 {
   GrlMedia *media = NULL;
-  GrlMediaAudio *audio = NULL;
   gchar *str_track_id = NULL;
 
   media = grl_media_audio_new();
-  audio = GRL_MEDIA_AUDIO(media);
-  grl_media_audio_set_track_number(audio, track_number);
-  grl_media_audio_set_artist(audio, artist_name);
-  grl_media_audio_set_album(audio, album_name);
-
+  grl_media_set_track_number(media, track_number);
+  grl_media_set_artist(media, artist_name);
+  grl_media_set_album(media, album_name);
   grl_media_set_url(media, url_to_mp3);
   grl_media_set_duration(media, duration);
   grl_media_set_title(media, track_name);
@@ -665,7 +662,7 @@ build_media_id_name_from_stmt(sqlite3_stmt *sql_stmt)
   gchar *id = NULL;
   const gchar *media_name = NULL;
 
-  media = grl_media_box_new();
+  media = grl_media_container_new();
   media_id = (guint) sqlite3_column_int(sql_stmt, 0);
   media_name = (gchar *) sqlite3_column_text(sql_stmt, 1);
   id = g_strdup_printf("%d", media_id);
@@ -749,7 +746,7 @@ magnatune_browse_root(OperationSpec *os)
 
   num = (os->count > MAGNATUNE_NUM_CAT) ? MAGNATUNE_NUM_CAT: os->count;
 
-  media = grl_media_box_new();
+  media = grl_media_container_new();
   grl_media_set_title(media, MAGNATUNE_ROOT_ARTIST);
   id = g_strdup_printf("root-%d", MAGNATUNE_ARTIST_CAT);
   grl_media_set_id(media, id);
@@ -760,7 +757,7 @@ magnatune_browse_root(OperationSpec *os)
   if (num == 0)
     return;
 
-  media = grl_media_box_new();
+  media = grl_media_container_new();
   grl_media_set_title(media, MAGNATUNE_ROOT_ALBUM);
   id = g_strdup_printf("root-%d", MAGNATUNE_ALBUM_CAT);
   grl_media_set_id(media, id);
@@ -771,7 +768,7 @@ magnatune_browse_root(OperationSpec *os)
   if (num == 0)
     return;
 
-  media = grl_media_box_new();
+  media = grl_media_container_new();
   grl_media_set_title(media, MAGNATUNE_ROOT_GENRE);
   id = g_strdup_printf("root-%d", MAGNATUNE_GENRE_CAT);
   grl_media_set_id(media, id);
@@ -785,10 +782,9 @@ magnatune_execute_browse(OperationSpec *os)
 {
   MagnatuneBuildMediaFn *build_fn;
   GrlMedia *media = NULL;
-  const gchar *container_id = NULL;
-  gchar *sql = NULL;
+  const gchar *container_id = NULL;  gchar *sql = NULL;
   gchar **touple = NULL;
-  gchar *box_id = NULL;
+  gchar *new_container_id = NULL;
   gchar *category_str_id = NULL;
   gint id = 0;
   gint num_medias = 0;
@@ -860,11 +856,11 @@ magnatune_execute_browse(OperationSpec *os)
   num_medias = g_list_length(list_medias) - 1;;
   for (iter = list_medias; iter; iter = iter->next) {
     media = iter->data;
-    box_id = g_strdup_printf("%s-%s",
+    new_container_id = g_strdup_printf("%s-%s",
                              category_str_id,
                              grl_media_get_id(media));
-    grl_media_set_id(media, box_id);
-    g_free(box_id);
+    grl_media_set_id(media, new_container_id);
+    g_free(new_container_id);
 
     os->callback(os->source,
                  os->operation_id,
diff --git a/src/metadata-store/grl-metadata-store.c b/src/metadata-store/grl-metadata-store.c
index b91fdeb..1e1f2ed 100644
--- a/src/metadata-store/grl-metadata-store.c
+++ b/src/metadata-store/grl-metadata-store.c
@@ -118,7 +118,7 @@ enum {
   MEDIA_AUDIO,
   MEDIA_VIDEO,
   MEDIA_IMAGE,
-  MEDIA_BOX
+  MEDIA_CONTAINER
 };
 
 static GrlMetadataStoreSource *grl_metadata_store_source_new (void);
@@ -384,17 +384,17 @@ get_column_name_from_key_id (GrlKeyID key_id)
 static int
 get_media_type (GrlMedia *media)
 {
-  if (GRL_IS_MEDIA_AUDIO (media)) {
+  if (grl_media_is_audio (media)) {
     return MEDIA_AUDIO;
   }
-  if (GRL_IS_MEDIA_VIDEO (media)) {
+  if (grl_media_is_video (media)) {
     return MEDIA_VIDEO;
   }
-  if (GRL_IS_MEDIA_IMAGE (media)) {
+  if (grl_media_is_image (media)) {
     return MEDIA_IMAGE;
   }
-  if (GRL_IS_MEDIA_BOX (media)) {
-    return MEDIA_BOX;
+  if (grl_media_is_container (media)) {
+    return MEDIA_CONTAINER;
   }
 
   return MEDIA;
@@ -657,8 +657,8 @@ create_media (sqlite3_stmt * stmt, GList *keys)
   case MEDIA_IMAGE:
     media = grl_media_image_new ();
     break;
-  case MEDIA_BOX:
-    media = grl_media_box_new ();
+  case MEDIA_CONTAINER:
+    media = grl_media_container_new ();
     break;
   default:
     media = grl_media_new ();
@@ -740,12 +740,12 @@ grl_metadata_store_source_may_resolve (GrlSource *source,
 
 
   if (media) {
-    if (!(GRL_IS_MEDIA_VIDEO (media) ||
-          GRL_IS_MEDIA_AUDIO (media) ||
+    if (!(grl_media_is_video (media) ||
+          grl_media_is_audio (media) ||
           key_id == GRL_METADATA_KEY_FAVOURITE))
       /* the keys we handle for now only make sense for audio and video,
          with exception of the 'favourite' key, valid as well for pictures
-         and boxes */
+         and containers */
       return FALSE;
 
     if (grl_data_has_key (GRL_DATA (media), GRL_METADATA_KEY_ID))
diff --git a/src/opensubtitles/grl-opensubtitles.c b/src/opensubtitles/grl-opensubtitles.c
index 9224fa0..20b5584 100644
--- a/src/opensubtitles/grl-opensubtitles.c
+++ b/src/opensubtitles/grl-opensubtitles.c
@@ -412,8 +412,8 @@ G_GNUC_BEGIN_IGNORE_DEPRECATIONS
 
       episode = lookup_int (ht, "SeriesSeason");
       season = lookup_int (ht, "SeriesEpisode");
-      if (season != grl_media_video_get_episode (GRL_MEDIA_VIDEO (media)) ||
-          episode != grl_media_video_get_season (GRL_MEDIA_VIDEO (media))) {
+      if (season != grl_media_get_episode (media) ||
+          episode != grl_media_get_season (media)) {
         continue;
       }
     }
@@ -577,7 +577,7 @@ grl_opensubtitles_source_may_resolve (GrlSource *source,
     return FALSE;
   }
 
-  if (!GRL_IS_MEDIA_VIDEO (media))
+  if (!grl_media_is_video (media))
     return FALSE;
 
   if (grl_data_has_key (GRL_DATA (media), GRL_METADATA_KEY_SHOW)) {
diff --git a/src/podcasts/grl-podcasts.c b/src/podcasts/grl-podcasts.c
index 89efa1d..9de34e3 100644
--- a/src/podcasts/grl-podcasts.c
+++ b/src/podcasts/grl-podcasts.c
@@ -618,13 +618,13 @@ build_media (GrlMedia *content,
 
   if (is_podcast) {
     if (!media) {
-      media = GRL_MEDIA (grl_media_box_new ());
+      media = grl_media_container_new ();
     }
 
     grl_media_set_id (media, id);
     if (desc)
       grl_media_set_description (media, desc);
-    grl_media_box_set_childcount (GRL_MEDIA_BOX (media), childcount);
+    grl_media_set_childcount (media, childcount);
   } else {
     if (!media) {
       if (mime_is_audio (mime)) {
@@ -1209,7 +1209,7 @@ parse_entry_idle (gpointer user_data)
                       NULL);
     /* Notify about changes */
     if (GRL_PODCASTS_SOURCE (osp->os->source)->priv->notify_changes) {
-      media = grl_media_box_new ();
+      media = grl_media_container_new ();
       grl_media_set_id (media, osp->os->media_id);
       grl_source_notify_change (GRL_SOURCE (osp->os->source),
                                 media,
@@ -1321,7 +1321,7 @@ parse_feed (OperationSpec *os, const gchar *str, GError **error)
 
   if (stream_count <= 0) {
     if (GRL_PODCASTS_SOURCE (os->source)->priv->notify_changes) {
-      podcast = grl_media_box_new ();
+      podcast = grl_media_container_new ();
       grl_media_set_id (podcast, os->media_id);
       grl_source_notify_change (GRL_SOURCE (os->source),
                                 podcast,
@@ -1801,7 +1801,7 @@ grl_podcasts_source_store (GrlSource *source, GrlSourceStoreSpec *ss)
 
   keylist = grl_data_get_keys (GRL_DATA (ss->media));
 
-  if (GRL_IS_MEDIA_BOX (ss->media)) {
+  if (grl_media_is_container (ss->media)) {
     error = g_error_new_literal (GRL_CORE_ERROR,
                                  GRL_CORE_ERROR_STORE_FAILED,
                                  _("Cannot create containers. Only feeds are accepted"));
diff --git a/src/raitv/grl-raitv.c b/src/raitv/grl-raitv.c
index 8ac022e..ac65b38 100644
--- a/src/raitv/grl-raitv.c
+++ b/src/raitv/grl-raitv.c
@@ -281,7 +281,7 @@ grl_raitv_source_new (void)
                          "source-id", SOURCE_ID,
                          "source-name", SOURCE_NAME,
                          "source-desc", SOURCE_DESC,
-                         "supported-media", GRL_MEDIA_TYPE_VIDEO,
+                         "supported-media", GRL_SUPPORTED_MEDIA_VIDEO,
                          "source-icon", icon,
                          "source-tags", tags,
                          NULL);
@@ -1012,7 +1012,7 @@ produce_container_from_directory (GrlMedia *media,
   gchar* mediaid=NULL;
 
   if (!media) {
-    content = grl_media_box_new ();
+    content = grl_media_container_new ();
   } else {
     content = media;
   }
@@ -1267,7 +1267,7 @@ grl_raitv_source_resolve (GrlSource *source,
 
   GRL_DEBUG ("Starting resolve source: url=%s",grl_media_get_url (rs->media));
 
-  if (!GRL_IS_MEDIA_VIDEO (rs->media) && !GRL_IS_MEDIA_BOX (rs->media)) {
+  if (!grl_media_is_video (rs->media) && !grl_media_is_container (rs->media)) {
     rs->callback (rs->source, rs->operation_id, rs->media, rs->user_data, NULL);
     return;
   }
diff --git a/src/shoutcast/grl-shoutcast.c b/src/shoutcast/grl-shoutcast.c
index df177d0..7d64a72 100644
--- a/src/shoutcast/grl-shoutcast.c
+++ b/src/shoutcast/grl-shoutcast.c
@@ -195,7 +195,7 @@ grl_shoutcast_source_new (const gchar *dev_key)
                           "source-id", SOURCE_ID,
                           "source-name", SOURCE_NAME,
                           "source-desc", SOURCE_DESC,
-                          "supported-media", GRL_MEDIA_TYPE_AUDIO,
+                          "supported-media", GRL_SUPPORTED_MEDIA_AUDIO,
                           "source-tags", tags,
                           NULL);
 
@@ -267,7 +267,7 @@ build_media_from_genre (OperationData *op_data)
   if (op_data->media) {
     media = op_data->media;
   } else {
-    media = grl_media_box_new ();
+    media = grl_media_container_new ();
   }
 
   genre_name = (gchar *) xmlGetProp (op_data->xml_entries,
@@ -327,10 +327,9 @@ build_media_from_station (OperationData *op_data)
   grl_media_set_id (media, media_id);
   grl_media_set_title (media, station_name);
   grl_media_set_mime (media, station_mime);
-  grl_media_audio_set_genre (GRL_MEDIA_AUDIO (media), station_genre);
+  grl_media_set_genre (media, station_genre);
   grl_media_set_url (media, media_url);
-  grl_media_audio_set_bitrate (GRL_MEDIA_AUDIO (media),
-                               atoi (station_bitrate));
+  grl_media_set_bitrate (media, atoi (station_bitrate));
 
   g_free (station_name);
   g_free (station_mime);
diff --git a/src/thetvdb/grl-thetvdb.c b/src/thetvdb/grl-thetvdb.c
index 4051ad0..a90e0c4 100644
--- a/src/thetvdb/grl-thetvdb.c
+++ b/src/thetvdb/grl-thetvdb.c
@@ -319,7 +319,7 @@ grl_thetvdb_source_new (const gchar *api_key)
                          "source-id", SOURCE_ID,
                          "source-name", SOURCE_NAME,
                          "source-desc", SOURCE_DESC,
-                         "supported-media", GRL_MEDIA_TYPE_VIDEO,
+                         "supported-media", GRL_SUPPORTED_MEDIA_VIDEO,
                          "source-tags", tags,
                          NULL);
 
@@ -845,7 +845,7 @@ get_from_cache_episode_or_series (EpisodeResource *eres,
  * NOTE: We give preference to an episode over the tv show for those metadatas
  * that could provide information for both. */
 static void
-thetvdb_update_media_from_resources (GrlMediaVideo *video,
+thetvdb_update_media_from_resources (GrlMedia *video,
                                      GList *keys,
                                      SeriesResource *sres,
                                      EpisodeResource *eres)
@@ -867,7 +867,7 @@ thetvdb_update_media_from_resources (GrlMediaVideo *video,
         g_object_get (eres, EPISODE_COLUMN_SEASON_NUMBER, &num, NULL);
 
       if (num > 0)
-        grl_media_video_set_season (video, num);
+        grl_media_set_season (video, num);
       else
         failed_keys++;
       break;
@@ -877,7 +877,7 @@ thetvdb_update_media_from_resources (GrlMediaVideo *video,
         g_object_get (eres, EPISODE_COLUMN_EPISODE_NUMBER, &num, NULL);
 
       if (num > 0)
-        grl_media_video_set_episode (video, num);
+        grl_media_set_episode (video, num);
       else
         failed_keys++;
       break;
@@ -887,7 +887,7 @@ thetvdb_update_media_from_resources (GrlMediaVideo *video,
         g_object_get (eres, EPISODE_COLUMN_EPISODE_NAME, &str, NULL);
 
       if (str != NULL) {
-        grl_media_video_set_episode_title (video, str);
+        grl_media_set_episode_title (video, str);
         g_free (str);
       } else
         failed_keys++;
@@ -1062,13 +1062,13 @@ thetvdb_update_media_from_resources (GrlMediaVideo *video,
   str = NULL;
   g_object_get (sres, SERIES_COLUMN_SERIES_NAME, &str, NULL);
   if (str != NULL) {
-    grl_media_video_set_show (video, str);
+    grl_media_set_show (video, str);
     g_free (str);
   }
 
   if (failed_keys == g_list_length (keys)) {
     GRL_DEBUG ("Couldn't resolve requested keys for %s",
-               grl_media_video_get_show (video));
+               grl_media_get_show (video));
   }
 }
 
@@ -1105,7 +1105,7 @@ web_request_succeed (const OperationSpec *os,
   GrlTheTVDBSource *tvdb_source;
 
   tvdb_source = GRL_THETVDB_SOURCE (os->source);
-  show = grl_media_video_get_show (GRL_MEDIA_VIDEO (os->media));
+  show = grl_media_get_show (os->media);
 
   wait_list = g_hash_table_lookup (tvdb_source->priv->ht_wait_list, show);
   for (it = wait_list; it != NULL; it = it->next) {
@@ -1132,7 +1132,7 @@ web_request_failed (const OperationSpec *os)
   GrlTheTVDBSource *tvdb_source;
 
   tvdb_source = GRL_THETVDB_SOURCE (os->source);
-  show = grl_media_video_get_show (GRL_MEDIA_VIDEO (os->media));
+  show = grl_media_get_show (os->media);
 
   wait_list = g_hash_table_lookup (tvdb_source->priv->ht_wait_list, show);
   for (it = wait_list; it != NULL; it = it->next) {
@@ -1224,11 +1224,9 @@ web_get_all_zipped_done (GObject *source_object,
   SeriesResource *sres = NULL;
   EpisodeResource *eres;
   OperationSpec *os;
-  GrlMediaVideo *video;
   GrlTheTVDBSource *tvdb_source;
 
   os = (OperationSpec *) user_data;
-  video = GRL_MEDIA_VIDEO (os->media);
   tvdb_source = GRL_THETVDB_SOURCE (os->source);
 
   grl_net_wc_request_finish (GRL_NET_WC (source_object),
@@ -1252,11 +1250,11 @@ web_get_all_zipped_done (GObject *source_object,
   g_free (xml_data);
 
   sres = xml_parse_and_save_serie (tvdb_source->priv->repository, doc,
-                                   grl_media_video_get_show (video));
+                                   grl_media_get_show (os->media));
   eres = xml_parse_and_save_episodes (tvdb_source->priv->repository, doc,
                                       grl_media_get_title (os->media),
-                                      grl_media_video_get_season (video),
-                                      grl_media_video_get_episode (video));
+                                      grl_media_get_season (os->media),
+                                      grl_media_get_episode (os->media));
   xmlFreeDoc (doc);
 
 get_all_zipped_end:
@@ -1330,7 +1328,7 @@ thetvdb_execute_resolve_web (OperationSpec *os)
   GRL_DEBUG ("thetvdb_resolve_web");
 
   tvdb_source = GRL_THETVDB_SOURCE (os->source);
-  show = grl_media_video_get_show (GRL_MEDIA_VIDEO (os->media));
+  show = grl_media_get_show (os->media);
 
   /* If there is a request on this show already, wait. */
   wait_list = g_hash_table_lookup (tvdb_source->priv->ht_wait_list, show);
@@ -1363,7 +1361,7 @@ cache_find_episode_done (GObject *object,
   GError *err = NULL;
 
   os = (OperationSpec *) user_data;
-  show = grl_media_video_get_show (GRL_MEDIA_VIDEO (os->media));
+  show = grl_media_get_show (os->media);
 
   resource = gom_repository_find_one_finish (GOM_REPOSITORY (object),
                                              res,
@@ -1381,7 +1379,7 @@ cache_find_episode_done (GObject *object,
     goto episode_done_end;
   }
 
-  thetvdb_update_media_from_resources (GRL_MEDIA_VIDEO (os->media),
+  thetvdb_update_media_from_resources (os->media,
                                        os->keys,
                                        os->serie_resource,
                                        EPISODE_RESOURCE (resource));
@@ -1407,8 +1405,8 @@ cache_find_episode (OperationSpec *os)
 
   tvdb_source = GRL_THETVDB_SOURCE (os->source);
   title = grl_media_get_title (os->media);
-  season_number = grl_media_video_get_season (GRL_MEDIA_VIDEO (os->media));
-  episode_number = grl_media_video_get_episode (GRL_MEDIA_VIDEO (os->media));
+  season_number = grl_media_get_season (os->media);
+  episode_number = grl_media_get_episode (os->media);
 
   g_object_get (os->serie_resource,
                 SERIES_COLUMN_SERIES_ID, &series_id,
@@ -1474,7 +1472,7 @@ cache_find_episode (OperationSpec *os)
 
 cache_episode_end:
   /* This media does not specify an episode: return series metadata */
-  thetvdb_update_media_from_resources (GRL_MEDIA_VIDEO (os->media),
+  thetvdb_update_media_from_resources (os->media,
                                        os->keys,
                                        os->serie_resource,
                                        NULL);
@@ -1495,7 +1493,7 @@ cache_find_serie_done (GObject *object,
   GError *err = NULL;
 
   os = (OperationSpec *) user_data;
-  show = grl_media_video_get_show (GRL_MEDIA_VIDEO (os->media));
+  show = grl_media_get_show (os->media);
 
   resource = gom_repository_find_one_finish (GOM_REPOSITORY (object),
                                              res,
@@ -1562,7 +1560,7 @@ cache_find_fuzzy_series_done (GObject *object,
 
 cache_miss:
   if (err != NULL) {
-    const gchar *show = grl_media_video_get_show (GRL_MEDIA_VIDEO (os->media));
+    const gchar *show = grl_media_get_show (os->media);
     GRL_DEBUG ("[Series] Cache miss with '%s' due '%s'", show, err->message);
     g_error_free (err);
   }
@@ -1586,7 +1584,7 @@ thetvdb_execute_resolve_cache (OperationSpec *os)
   GRL_DEBUG ("thetvdb_resolve_cache");
 
   tvdb_source = GRL_THETVDB_SOURCE (os->source);
-  show = grl_media_video_get_show (GRL_MEDIA_VIDEO (os->media));
+  show = grl_media_get_show (os->media);
 
   /* Get series async */
   g_value_init (&value, G_TYPE_STRING);
@@ -1647,7 +1645,7 @@ grl_thetvdb_source_may_resolve (GrlSource *source,
     return FALSE;
 
   /* Check if resolve type and media type match */
-  if (media && !GRL_IS_MEDIA_VIDEO (media))
+  if (media && !grl_media_is_video (media))
     return FALSE;
 
   /* Check if the media has a show */
diff --git a/src/tmdb/grl-tmdb.c b/src/tmdb/grl-tmdb.c
index 20c2124..afe741a 100644
--- a/src/tmdb/grl-tmdb.c
+++ b/src/tmdb/grl-tmdb.c
@@ -729,8 +729,7 @@ on_request_ready (GObject *source,
   if (SHOULD_RESOLVE (GRL_METADATA_KEY_ORIGINAL_TITLE)) {
     value = grl_tmdb_request_get (request, "$.original_title");
     if (value != NULL) {
-      grl_media_video_set_original_title (GRL_MEDIA_VIDEO (closure->rs->media),
-                                          g_value_get_string (value));
+      grl_media_set_original_title (closure->rs->media, g_value_get_string (value));
       g_value_unset (value);
       g_free (value);
     }
@@ -867,8 +866,7 @@ on_request_ready (GObject *source,
       values = grl_tmdb_request_get_string_list (request, "$.casts.cast..name");
     iter = values;
     while (iter != NULL) {
-      grl_media_video_add_performer (GRL_MEDIA_VIDEO (closure->rs->media),
-                                     iter->data);
+      grl_media_add_performer (closure->rs->media, iter->data);
       iter = iter->next;
     }
     g_list_free_full (values, g_free);
@@ -884,8 +882,7 @@ on_request_ready (GObject *source,
                                                              producer_filter);
     iter = values;
     while (iter != NULL) {
-        grl_media_video_add_producer (GRL_MEDIA_VIDEO (closure->rs->media),
-                                      iter->data);
+        grl_media_add_producer (closure->rs->media, iter->data);
       iter = iter->next;
     }
     g_list_free_full (values, g_free);
@@ -901,8 +898,7 @@ on_request_ready (GObject *source,
                                                              director_filter);
     iter = values;
     while (iter != NULL) {
-      grl_media_video_add_director (GRL_MEDIA_VIDEO (closure->rs->media),
-                                    iter->data);
+      grl_media_add_director (closure->rs->media, iter->data);
       iter = iter->next;
     }
     g_list_free_full (values, g_free);
@@ -1088,8 +1084,7 @@ on_search_ready (GObject *source,
   if (SHOULD_RESOLVE (GRL_METADATA_KEY_ORIGINAL_TITLE)) {
     value = grl_tmdb_request_get (request, "$.results[0].original_title");
     if (value != NULL) {
-      grl_media_video_set_original_title (GRL_MEDIA_VIDEO (closure->rs->media),
-                                          g_value_get_string (value));
+      grl_media_set_original_title (closure->rs->media, g_value_get_string (value));
       g_value_unset (value);
       g_free (value);
     }
@@ -1281,7 +1276,7 @@ grl_tmdb_source_may_resolve (GrlSource *source,
     return FALSE;
 
   /* We can only entertain videos */
-  if (media && !GRL_IS_MEDIA_VIDEO (media))
+  if (media && !grl_media_is_video (media))
     return FALSE;
 
   /* Caller wants to check what's needed to resolve */
@@ -1316,14 +1311,14 @@ grl_tmdb_source_resolve (GrlSource *source,
   guint64 movie_id = 0;
   GList *it;
 
-  if (!GRL_IS_MEDIA_VIDEO (rs->media)) {
+  if (!grl_media_is_video (rs->media)) {
     /* We only entertain videos */
     rs->callback (source, rs->operation_id, rs->media, rs->user_data, NULL);
     return;
   }
 
   /* If the media is a TV show, don't handle it */
-  if (grl_media_video_get_show (GRL_MEDIA_VIDEO (rs->media)) != NULL) {
+  if (grl_media_get_show (rs->media) != NULL) {
     rs->callback (source, rs->operation_id, rs->media, rs->user_data, NULL);
     return;
   }
diff --git a/src/tracker/grl-tracker-source-api.c b/src/tracker/grl-tracker-source-api.c
index 175e8f8..c7e01b9 100644
--- a/src/tracker/grl-tracker-source-api.c
+++ b/src/tracker/grl-tracker-source-api.c
@@ -719,7 +719,7 @@ grl_tracker_source_create_constraint (int min, int max)
  *
  * First column must be the media type, and it does not need to be named.  It
  * must match with any value supported in rdf:type() property, or
- * grilo#Box. Types understood are:
+ * grilo#Container. Types understood are:
  *
  * <itemizedlist>
  *   <listitem>
@@ -749,7 +749,7 @@ grl_tracker_source_create_constraint (int min, int max)
  *   </listitem>
  *   <listitem>
  *     <para>
- *       <literal>grilo#Box</literal>
+ *       <literal>grilo#Container</literal>
  *     </para>
  *   </listitem>
  * </itemizedlist>
@@ -1127,7 +1127,7 @@ grl_tracker_source_browse_category (GrlSource *source,
       }
     } else {
       if (remaining == 4) {
-        media = grl_media_box_new ();
+        media = grl_media_container_new ();
         grl_media_set_title (media, "Documents");
         grl_media_set_id (media, "documents");
         grl_data_set_string (GRL_DATA (media),
@@ -1138,7 +1138,7 @@ grl_tracker_source_browse_category (GrlSource *source,
       }
 
       if (filter & GRL_TYPE_FILTER_AUDIO) {
-        media = grl_media_box_new ();
+        media = grl_media_container_new ();
         grl_media_set_title (media, "Music");
         grl_media_set_id (media, "music");
         grl_data_set_string (GRL_DATA (media),
@@ -1149,7 +1149,7 @@ grl_tracker_source_browse_category (GrlSource *source,
       }
 
       if (filter & GRL_TYPE_FILTER_IMAGE) {
-        media = grl_media_box_new ();
+        media = grl_media_container_new ();
         grl_media_set_title (media, "Photos");
         grl_media_set_id (media, "photos");
         grl_data_set_string (GRL_DATA (media),
@@ -1160,7 +1160,7 @@ grl_tracker_source_browse_category (GrlSource *source,
       }
 
       if (filter & GRL_TYPE_FILTER_VIDEO) {
-        media = grl_media_box_new ();
+        media = grl_media_container_new ();
         grl_media_set_title (media, "Videos");
         grl_media_set_id (media, "videos");
         grl_data_set_string (GRL_DATA (media),
diff --git a/src/tracker/grl-tracker-utils.c b/src/tracker/grl-tracker-utils.c
index 2ac87ec..87cfe30 100644
--- a/src/tracker/grl-tracker-utils.c
+++ b/src/tracker/grl-tracker-utils.c
@@ -598,13 +598,13 @@ grl_tracker_build_grilo_media (const gchar *rdf_type)
   } else if (g_hash_table_lookup (ht, RDF_TYPE_IMAGE)) {
     media = grl_media_image_new ();
   } else if (g_hash_table_lookup (ht, RDF_TYPE_ARTIST)) {
-    media = grl_media_box_new ();
+    media = grl_media_container_new ();
   } else if (g_hash_table_lookup (ht, RDF_TYPE_ALBUM)) {
-    media = grl_media_box_new ();
-  } else if (g_hash_table_lookup (ht, RDF_TYPE_BOX)) {
-    media = grl_media_box_new ();
+    media = grl_media_container_new ();
+  } else if (g_hash_table_lookup (ht, RDF_TYPE_CONTAINER)) {
+    media = grl_media_container_new ();
   } else if (g_hash_table_lookup (ht, RDF_TYPE_FOLDER)) {
-    media = grl_media_box_new ();
+    media = grl_media_container_new ();
   }
 
   g_hash_table_destroy (ht);
diff --git a/src/tracker/grl-tracker-utils.h b/src/tracker/grl-tracker-utils.h
index 797d7e2..430be88 100644
--- a/src/tracker/grl-tracker-utils.h
+++ b/src/tracker/grl-tracker-utils.h
@@ -30,15 +30,15 @@
 
 /* ------- Definitions ------- */
 
-#define RDF_TYPE_ALBUM    "nmm#MusicAlbum"
-#define RDF_TYPE_ARTIST   "nmm#Artist"
-#define RDF_TYPE_AUDIO    "nfo#Audio"
-#define RDF_TYPE_MUSIC    "nmm#MusicPiece"
-#define RDF_TYPE_IMAGE    "nmm#Photo"
-#define RDF_TYPE_VIDEO    "nmm#Video"
-#define RDF_TYPE_FOLDER   "nfo#Folder"
-#define RDF_TYPE_DOCUMENT "nfo#Document"
-#define RDF_TYPE_BOX      "grilo#Box"
+#define RDF_TYPE_ALBUM     "nmm#MusicAlbum"
+#define RDF_TYPE_ARTIST    "nmm#Artist"
+#define RDF_TYPE_AUDIO     "nfo#Audio"
+#define RDF_TYPE_MUSIC     "nmm#MusicPiece"
+#define RDF_TYPE_IMAGE     "nmm#Photo"
+#define RDF_TYPE_VIDEO     "nmm#Video"
+#define RDF_TYPE_FOLDER    "nfo#Folder"
+#define RDF_TYPE_DOCUMENT  "nfo#Document"
+#define RDF_TYPE_CONTAINER "grilo#Container"
 
 #define RDF_TYPE_VOLUME "tracker#Volume"
 #define RDF_TYPE_UPNP   "upnp#ContentDirectory"
diff --git a/src/vimeo/grl-vimeo.c b/src/vimeo/grl-vimeo.c
index 3ddbaa5..800c776 100644
--- a/src/vimeo/grl-vimeo.c
+++ b/src/vimeo/grl-vimeo.c
@@ -196,7 +196,7 @@ grl_vimeo_source_new (void)
                          "source-id", SOURCE_ID,
                          "source-name", SOURCE_NAME,
                          "source-desc", SOURCE_DESC,
-                         "supported-media", GRL_MEDIA_TYPE_VIDEO,
+                         "supported-media", GRL_SUPPORTED_MEDIA_VIDEO,
                          "source-icon", icon,
                          "source-tags", tags,
                          NULL);
@@ -330,13 +330,13 @@ update_media (GrlMedia *media, GHashTable *video)
   str = g_hash_table_lookup (video, VIMEO_VIDEO_WIDTH);
   if (str)
   {
-    grl_media_video_set_width (GRL_MEDIA_VIDEO (media), str_to_gint (str));
+    grl_media_set_width (media, str_to_gint (str));
   }
 
   str = g_hash_table_lookup (video, VIMEO_VIDEO_HEIGHT);
   if (str)
   {
-    grl_media_video_set_height (GRL_MEDIA_VIDEO (media), str_to_gint (str));
+    grl_media_set_height (media, str_to_gint (str));
   }
 }
 
diff --git a/src/youtube/grl-youtube.c b/src/youtube/grl-youtube.c
index 3547fd4..5844b63 100644
--- a/src/youtube/grl-youtube.c
+++ b/src/youtube/grl-youtube.c
@@ -347,7 +347,7 @@ grl_youtube_source_new (const gchar *api_key, const gchar *client_id, const gcha
                                             "auto-split-threshold",
                                             YOUTUBE_MAX_CHUNK,
                                              "yt-service", service,
-                                             "supported-media", GRL_MEDIA_TYPE_VIDEO,
+                                             "supported-media", GRL_SUPPORTED_MEDIA_VIDEO,
                                              "source-icon", icon,
                                              "source-tags", tags,
                                             NULL));
@@ -920,7 +920,7 @@ classify_media_id (const gchar *media_id)
 
 static void
 set_category_childcount (GDataService *service,
-                        GrlMediaBox *content,
+                        GrlMedia *content,
                          CategoryInfo *dir,
                          guint index)
 {
@@ -956,7 +956,7 @@ set_category_childcount (GDataService *service,
   }
 
   if (set_childcount) {
-    grl_media_box_set_childcount (content, childcount);
+    grl_media_set_childcount (content, childcount);
   }
 }
 
@@ -970,7 +970,7 @@ produce_container_from_directory (GDataService *service,
 
   if (!media) {
     /* Create mode */
-    content = grl_media_box_new ();
+    content = grl_media_container_new ();
   } else {
     /* Update mode */
     content = media;
@@ -984,7 +984,7 @@ produce_container_from_directory (GDataService *service,
     grl_media_set_title (content, g_dgettext (GETTEXT_PACKAGE, dir[index].name));
   }
   grl_media_set_site (content, YOUTUBE_SITE_URL);
-  set_category_childcount (service, GRL_MEDIA_BOX (content), dir, index);
+  set_category_childcount (service, content, dir, index);
 
   return content;
 }
diff --git a/tests/dleyna/test_dleyna.c b/tests/dleyna/test_dleyna.c
index a1cb18e..68cd083 100644
--- a/tests/dleyna/test_dleyna.c
+++ b/tests/dleyna/test_dleyna.c
@@ -133,17 +133,17 @@ test_browse (TestDleynaFixture *fixture,
   g_assert_no_error (error);
   g_assert_cmpint (g_list_length (results), ==, 4);
   media = GRL_MEDIA (results->data);
-  g_assert (GRL_IS_MEDIA_BOX (media));
+  g_assert (grl_media_is_container (media));
   g_assert_cmpstr (grl_media_get_id (media), ==, "dleyna:/com/intel/dLeynaServer/server/0");
   g_assert_cmpstr (grl_media_get_title (media), ==, "The Root");
   g_assert_cmpstr (grl_media_get_url (media), ==, "http://127.0.0.1:4242/root/DIDL_S.xml";);
-  g_assert_cmpint (grl_media_box_get_childcount (GRL_MEDIA_BOX (media)), ==, 3);
+  g_assert_cmpint (grl_media_get_childcount (media), ==, 3);
   media = GRL_MEDIA (results->next->next->next->data);
-  g_assert (GRL_IS_MEDIA_BOX (media));
+  g_assert (grl_media_is_container (media));
   g_assert_cmpstr (grl_media_get_id (media), ==, "dleyna:/com/intel/dLeynaServer/server/0/3");
   g_assert_cmpstr (grl_media_get_title (media), ==, "Stuff");
   g_assert_cmpstr (grl_media_get_url (media), ==, "http://127.0.0.1:4242/stuff/DIDL_S.xml";);
-  g_assert_cmpint (grl_media_box_get_childcount (GRL_MEDIA_BOX (media)), ==, 5);
+  g_assert_cmpint (grl_media_get_childcount (media), ==, 5);
   container = g_object_ref (media); /* Keep a ref for the subsequent test */
   g_list_free_full (results, g_object_unref);
 
@@ -153,7 +153,7 @@ test_browse (TestDleynaFixture *fixture,
   g_assert_no_error (error);
   g_assert_cmpint (g_list_length (results), ==, 5);
   media = GRL_MEDIA (results->next->next->data);
-  g_assert (GRL_IS_MEDIA_IMAGE (media));
+  g_assert (grl_media_is_image (media));
   g_assert_cmpstr (grl_media_get_id (media), ==, "dleyna:/com/intel/dLeynaServer/server/0/33");
   g_assert_cmpstr (grl_media_get_title (media), ==, "A picture.jpg");
   g_assert_cmpstr (grl_media_get_url (media), ==, "http://127.0.0.1:4242/stuff/picture.jpg";);
@@ -188,17 +188,17 @@ test_store (TestDleynaFixture *fixture,
   g_assert_cmpstr (grl_media_get_id (media), ==, "dleyna:/com/intel/dLeynaServer/server/0/any000");
 
   /* Try again explicitly choosing a container */
-  container = grl_media_box_new ();
+  container = grl_media_container_new ();
   grl_media_set_id (container, "dleyna:/com/intel/dLeynaServer/server/0/3");
 
-  grl_source_store_sync (source, GRL_MEDIA_BOX (container), media, GRL_WRITE_NORMAL, &error);
+  grl_source_store_sync (source, container, media, GRL_WRITE_NORMAL, &error);
   g_assert_no_error (error);
   g_assert_cmpstr (grl_media_get_id (media), ==, "dleyna:/com/intel/dLeynaServer/server/0/3/up000");
 
   g_object_unref (media);
 
   /* Create a container, letting the DMS to choose the parent */
-  media = GRL_MEDIA (grl_media_box_new ());
+  media = GRL_MEDIA (grl_media_container_new ());
   grl_media_set_title (media, "New container");
 
   grl_source_store_sync (source, NULL, media, GRL_WRITE_NORMAL, &error);
@@ -206,7 +206,7 @@ test_store (TestDleynaFixture *fixture,
   g_assert_cmpstr (grl_media_get_id (media), ==, "dleyna:/com/intel/dLeynaServer/server/0/any001");
 
   /* Again, but explictly choosing the parent */
-  grl_source_store_sync (source, GRL_MEDIA_BOX (container), media, GRL_WRITE_NORMAL, &error);
+  grl_source_store_sync (source, container, media, GRL_WRITE_NORMAL, &error);
   g_assert_no_error (error);
   g_assert_cmpstr (grl_media_get_id (media), ==, "dleyna:/com/intel/dLeynaServer/server/0/3/up001");
 
@@ -233,10 +233,10 @@ test_store_metadata (TestDleynaFixture *fixture,
   grl_media_set_url (media, "file://" GRILO_PLUGINS_TESTS_DLEYNA_DATA_PATH "/helloworld.txt");
   grl_media_set_author (media, "Tizio Caio Sempronio");
 
-  container = grl_media_box_new ();
+  container = grl_media_container_new ();
   grl_media_set_id (container, "dleyna:/com/intel/dLeynaServer/server/0/3");
 
-  grl_source_store_sync (source, GRL_MEDIA_BOX (container), media, GRL_WRITE_FULL, &error);
+  grl_source_store_sync (source, container, media, GRL_WRITE_FULL, &error);
   g_assert_no_error (error);
   g_assert_cmpstr (grl_media_get_id (media), ==, "dleyna:/com/intel/dLeynaServer/server/0/3/up000");
 
@@ -371,13 +371,13 @@ test_notifications (TestDleynaFixture *fixture,
   media = grl_media_new ();
   grl_media_set_url (media, "file://" GRILO_PLUGINS_TESTS_DLEYNA_DATA_PATH "/helloworld.txt");
 
-  container = grl_media_box_new ();
+  container = grl_media_container_new ();
   grl_media_set_id (container, "dleyna:/com/intel/dLeynaServer/server/0/32");
 
-  grl_source_store_sync (source, GRL_MEDIA_BOX (container), media, GRL_WRITE_NORMAL, &error);
+  grl_source_store_sync (source, container, media, GRL_WRITE_NORMAL, &error);
   g_assert_no_error (error);
   g_assert_cmpstr (grl_media_get_id (media), ==, "dleyna:/com/intel/dLeynaServer/server/0/32/up000");
-  grl_source_store_sync (source, GRL_MEDIA_BOX (container), media, GRL_WRITE_NORMAL, &error);
+  grl_source_store_sync (source, container, media, GRL_WRITE_NORMAL, &error);
   g_assert_no_error (error);
   g_assert_cmpstr (grl_media_get_id (media), ==, "dleyna:/com/intel/dLeynaServer/server/0/32/up001");
 
diff --git a/tests/local-metadata/test_local_metadata.c b/tests/local-metadata/test_local_metadata.c
index cb64e49..876e414 100644
--- a/tests/local-metadata/test_local_metadata.c
+++ b/tests/local-metadata/test_local_metadata.c
@@ -73,7 +73,7 @@ get_show_for_title (GrlSource  *source,
   *season = grl_data_get_int (GRL_DATA (media), GRL_METADATA_KEY_SEASON);
   *episode = grl_data_get_int (GRL_DATA (media), GRL_METADATA_KEY_EPISODE);
   show = g_strdup (grl_data_get_string (GRL_DATA (media), GRL_METADATA_KEY_SHOW));
-  str = grl_media_video_get_episode_title (GRL_MEDIA_VIDEO (media));
+  str = grl_media_get_episode_title (media);
   *new_title = (str && str[0] == '\0') ? NULL : g_strdup (str);
 
   g_object_unref (media);
diff --git a/tests/lua-factory/sources/test_lua_metrolyrics.c 
b/tests/lua-factory/sources/test_lua_metrolyrics.c
index 6414323..b6ee330 100644
--- a/tests/lua-factory/sources/test_lua_metrolyrics.c
+++ b/tests/lua-factory/sources/test_lua_metrolyrics.c
@@ -38,14 +38,14 @@ get_lyrics (GrlSource *source,
             const gchar *title)
 {
   GList *keys;
-  GrlMediaAudio *audio;
+  GrlMedia *audio;
   GrlOperationOptions *options;
   GError *error = NULL;
   gchar *lyrics;
 
-  audio = GRL_MEDIA_AUDIO (grl_media_audio_new ());
-  grl_media_audio_set_artist (audio, artist);
-  grl_media_set_title (GRL_MEDIA (audio), title);
+  audio = grl_media_audio_new ();
+  grl_media_set_artist (audio, artist);
+  grl_media_set_title (audio, title);
 
   keys = grl_metadata_key_list_new (GRL_METADATA_KEY_LYRICS, NULL);
   options = grl_operation_options_new (NULL);
@@ -58,7 +58,7 @@ get_lyrics (GrlSource *source,
                            &error);
   g_assert_no_error (error);
 
-  lyrics = g_strdup (grl_media_audio_get_lyrics (audio));
+  lyrics = g_strdup (grl_media_get_lyrics (audio));
 
   g_list_free (keys);
   g_object_unref (options);
diff --git a/tests/spotify-cover/test_spotify_cover.c b/tests/spotify-cover/test_spotify_cover.c
index aef37d7..a60bafa 100644
--- a/tests/spotify-cover/test_spotify_cover.c
+++ b/tests/spotify-cover/test_spotify_cover.c
@@ -31,8 +31,8 @@ build_media_audio (const gchar *artist,
   GrlMedia *media;
 
   media = grl_media_audio_new ();
-  grl_media_audio_set_artist (GRL_MEDIA_AUDIO (media), artist);
-  grl_media_audio_set_album (GRL_MEDIA_AUDIO (media), album);
+  grl_media_set_artist (media, artist);
+  grl_media_set_album (media, album);
 
   return media;
 }
diff --git a/tests/thetvdb/test_thetvdb_resolve_episodes.c b/tests/thetvdb/test_thetvdb_resolve_episodes.c
index ca3aa3b..11e68d2 100644
--- a/tests/thetvdb/test_thetvdb_resolve_episodes.c
+++ b/tests/thetvdb/test_thetvdb_resolve_episodes.c
@@ -35,7 +35,7 @@ get_episode_metadata_from_episode (GrlSource *source,
                                    gchar **title,
                                    gchar **episode_screen)
 {
-  GrlMediaVideo *video;
+  GrlMedia *video;
   GrlOperationOptions *options;
   GList *keys;
   GDateTime *date;
@@ -54,10 +54,10 @@ get_episode_metadata_from_episode (GrlSource *source,
   g_assert_cmpint (zap2it_key, !=, GRL_METADATA_KEY_INVALID);
   g_assert_cmpint (ss_key, !=, GRL_METADATA_KEY_INVALID);
 
-  video = GRL_MEDIA_VIDEO (grl_media_video_new ());
-  grl_media_video_set_show (video, show);
-  grl_media_video_set_season (video, season);
-  grl_media_video_set_episode (video, episode);
+  video = grl_media_video_new ();
+  grl_media_set_show (video, show);
+  grl_media_set_season (video, season);
+  grl_media_set_episode (video, episode);
 
   keys = grl_metadata_key_list_new (GRL_METADATA_KEY_EPISODE_TITLE,
                                     GRL_METADATA_KEY_PUBLICATION_DATE,
@@ -75,7 +75,7 @@ get_episode_metadata_from_episode (GrlSource *source,
                            keys,
                            options,
                            NULL);
-  *title = g_strdup (grl_media_video_get_episode_title (video));
+  *title = g_strdup (grl_media_get_episode_title (video));
   *imdb = g_strdup (grl_data_get_string (GRL_DATA (video), imdb_key));
   *tvdb_id = g_strdup (grl_data_get_string (GRL_DATA (video), tvdb_key));
   *zap2it = g_strdup (grl_data_get_string (GRL_DATA (video), zap2it_key));
diff --git a/tests/thetvdb/test_thetvdb_resolve_shows.c b/tests/thetvdb/test_thetvdb_resolve_shows.c
index 9921da6..a448bfe 100644
--- a/tests/thetvdb/test_thetvdb_resolve_shows.c
+++ b/tests/thetvdb/test_thetvdb_resolve_shows.c
@@ -36,7 +36,7 @@ get_show_metadata (GrlSource *source,
                    gchar **fanart,
                    gchar **poster)
 {
-  GrlMediaVideo *video;
+  GrlMedia *video;
   GrlOperationOptions *options;
   GList *keys;
   GDateTime *date;
@@ -60,8 +60,8 @@ get_show_metadata (GrlSource *source,
   g_assert_cmpint (banner_key, !=, GRL_METADATA_KEY_INVALID);
   g_assert_cmpint (poster_key, !=, GRL_METADATA_KEY_INVALID);
 
-  video = GRL_MEDIA_VIDEO (grl_media_video_new ());
-  grl_media_video_set_show (video, *show);
+  video = grl_media_video_new ();
+  grl_media_set_show (video, *show);
   g_free (*show);
 
   keys = grl_metadata_key_list_new (GRL_METADATA_KEY_SHOW,
@@ -83,7 +83,7 @@ get_show_metadata (GrlSource *source,
                            options,
                            NULL);
 
-  *show = g_strdup (grl_media_video_get_show (video));
+  *show = g_strdup (grl_media_get_show (video));
 
   if (tvdb_id) {
       *tvdb_id = g_strdup (grl_data_get_string (GRL_DATA (video), tvdb_key));
diff --git a/tests/thetvdb/test_thetvdb_resolve_stress.c b/tests/thetvdb/test_thetvdb_resolve_stress.c
index abca4f7..ce95756 100644
--- a/tests/thetvdb/test_thetvdb_resolve_stress.c
+++ b/tests/thetvdb/test_thetvdb_resolve_stress.c
@@ -188,7 +188,6 @@ check_videos_metadata (GrlSource    *source,
                        gpointer      user_data,
                        const GError *error)
 {
-  GrlMediaVideo *video;
   GDateTime *date;
   const gchar *imdb;
   const gchar *tvdb_id;
@@ -201,26 +200,24 @@ check_videos_metadata (GrlSource    *source,
   if (error)
     g_error ("Resolve operation failed. Reason: %s", error->message);
 
-  video = GRL_MEDIA_VIDEO (media);
-
-  title = grl_media_video_get_episode_title (video);
+  title = grl_media_get_episode_title (media);
   g_assert_cmpstr (videos[i].title, ==, title);
 
-  imdb = grl_data_get_string (GRL_DATA (video), imdb_key);
+  imdb = grl_data_get_string (GRL_DATA (media), imdb_key);
   g_assert_cmpstr (videos[i].imdb, ==, imdb);
 
-  tvdb_id = grl_data_get_string (GRL_DATA (video), tvdb_key);
+  tvdb_id = grl_data_get_string (GRL_DATA (media), tvdb_key);
   g_assert_cmpstr (videos[i].tvdb_id, ==, tvdb_id);
 
-  zap2it = grl_data_get_string (GRL_DATA (video), zap2it_key);
+  zap2it = grl_data_get_string (GRL_DATA (media), zap2it_key);
   g_assert_cmpstr (videos[i].zap2it_id, ==, zap2it);
 
-  date = grl_media_get_publication_date (GRL_MEDIA (video));
+  date = grl_media_get_publication_date (GRL_MEDIA (media));
   publication_date = g_date_time_format (date, "%Y-%m-%d");
   g_assert_cmpstr (videos[i].publication_date, ==, publication_date);
   g_free (publication_date);
 
-  episode_screen = grl_data_get_string (GRL_DATA (video), ss_key);
+  episode_screen = grl_data_get_string (GRL_DATA (media), ss_key);
   if (g_strcmp0 (videos[i].url_episode_screen, episode_screen) != 0)
     g_message ("[%s] Episode screen changed from %s to %s",
                videos[i].show, videos[i].url_episode_screen, episode_screen);
@@ -271,15 +268,15 @@ test_episodes_stress (void)
                                     GRL_METADATA_KEY_INVALID);
 
   for (i = 0; i < G_N_ELEMENTS (videos); i++) {
-    GrlMediaVideo *video;
+    GrlMedia *video;
 
-    video = GRL_MEDIA_VIDEO (grl_media_video_new ());
-    grl_media_video_set_show (video, videos[i].show);
-    grl_media_video_set_season (video, videos[i].season);
-    grl_media_video_set_episode (video, videos[i].episode);
+    video = grl_media_video_new ();
+    grl_media_set_show (video, videos[i].show);
+    grl_media_set_season (video, videos[i].season);
+    grl_media_set_episode (video, videos[i].episode);
 
     grl_source_resolve (source,
-                        GRL_MEDIA (video),
+                        video,
                         keys,
                         options,
                         check_videos_metadata,
diff --git a/tests/vimeo/test_vimeo.c b/tests/vimeo/test_vimeo.c
index 3190ebc..1b4f79b 100644
--- a/tests/vimeo/test_vimeo.c
+++ b/tests/vimeo/test_vimeo.c
@@ -76,7 +76,7 @@ test_search_normal (void)
 
   media = g_list_nth_data (medias, 0);
 
-  g_assert (GRL_IS_MEDIA_VIDEO (media));
+  g_assert (grl_media_is_video (media));
   g_assert_cmpstr (grl_media_get_id (media),
                    ==,
                    "31110838");
@@ -92,7 +92,7 @@ test_search_normal (void)
 
   media = g_list_nth_data (medias, 1);
 
-  g_assert (GRL_IS_MEDIA_VIDEO (media));
+  g_assert (grl_media_is_video (media));
   g_assert_cmpstr (grl_media_get_id (media),
                    ==,
                    "13797705");


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]