hlsdemux: Don't error out if we can't match variant playlists after updating
authorSebastian Dröge <sebastian@centricular.com>
Thu, 23 Apr 2015 15:36:49 +0000 (17:36 +0200)
committerSebastian Dröge <sebastian@centricular.com>
Thu, 23 Apr 2015 15:47:18 +0000 (17:47 +0200)
It's better to just select some random variant playlist instead of stopping,
chances are that it's still continuing to work and we might just have to
select a different variant again later.

ext/hls/m3u8.c

index 9645256..0d1f892 100755 (executable)
@@ -925,15 +925,16 @@ gst_m3u8_client_update_variant_playlist (GstM3U8Client * self, gchar * data,
     }
 
     if (unmatched_lists != NULL) {
-      g_list_free (unmatched_lists);
+      GST_WARNING ("Unable to match all playlists");
 
-      /* We should attempt to handle the case where playlists are dropped/replaced,
-       * and possibly switch over to a comparable (not neccessarily identical)
-       * playlist.
-       */
-      GST_FIXME
-          ("Cannot update variant playlist, unable to match all playlists");
-      goto out;
+      for (list_entry = unmatched_lists; list_entry;
+          list_entry = list_entry->next) {
+        if (list_entry->data == self->current) {
+          GST_WARNING ("Unable to match current playlist");
+        }
+      }
+
+      g_list_free (unmatched_lists);
     }
 
     /* Switch out the variant playlist */