use gstreamer only for MP4
authorWolfgang Rosenauer <wr@rosenauer.org>
Mon, 23 Jul 2012 06:33:07 +0200
changeset 512 bab27818f3a5
parent 511 a5cbc8c27e63
child 513 7a651f368dd8
use gstreamer only for MP4
mozilla-gstreamer.patch
--- a/mozilla-gstreamer.patch	Fri Jul 20 09:40:50 2012 +0200
+++ b/mozilla-gstreamer.patch	Mon Jul 23 06:33:07 2012 +0200
@@ -1,8 +1,57 @@
 # HG changeset patch
-# Parent 305397d1d86aaf3d3da2e9357eea2fdd1888a325
+# Parent a9a49c20c491011f981b6c110aadfa6a01a1431e
 # User Wolfgang Rosenauer <wr@rosenauer.org>
 Bug 761030 - Crash with HTML 5 video with gstreamer enabled (TM: 16)
 
+No Bug - use GStreamer _only_ for MP4 (not WebM/OGG)
+
+diff --git a/content/html/content/src/nsHTMLMediaElement.cpp b/content/html/content/src/nsHTMLMediaElement.cpp
+--- a/content/html/content/src/nsHTMLMediaElement.cpp
++++ b/content/html/content/src/nsHTMLMediaElement.cpp
+@@ -2278,21 +2278,17 @@ nsHTMLMediaElement::CreateDecoder(const 
+     nsRefPtr<nsRawDecoder> decoder = new nsRawDecoder();
+     if (decoder->Init(this)) {
+       return decoder.forget();
+     }
+   }
+ #endif
+ #ifdef MOZ_OGG
+   if (IsOggType(aType)) {
+-#ifdef MOZ_GSTREAMER 
+-    nsRefPtr<nsGStreamerDecoder> decoder = new nsGStreamerDecoder();
+-#else
+     nsRefPtr<nsOggDecoder> decoder = new nsOggDecoder();
+-#endif
+     if (decoder->Init(this)) {
+       return decoder.forget();
+     }
+   }
+ #endif
+ #ifdef MOZ_WAVE
+   if (IsWaveType(aType)) {
+     nsRefPtr<nsWaveDecoder> decoder = new nsWaveDecoder();
+@@ -2306,21 +2302,17 @@ nsHTMLMediaElement::CreateDecoder(const 
+     nsRefPtr<nsMediaPluginDecoder> decoder = new nsMediaPluginDecoder(aType);
+     if (decoder->Init(this)) {
+       return decoder.forget();
+     }
+   }
+ #endif
+ #ifdef MOZ_WEBM
+   if (IsWebMType(aType)) {
+-#ifdef MOZ_GSTREAMER 
+-    nsRefPtr<nsGStreamerDecoder> decoder = new nsGStreamerDecoder();
+-#else
+     nsRefPtr<nsWebMDecoder> decoder = new nsWebMDecoder();
+-#endif
+     if (decoder->Init(this)) {
+       return decoder.forget();
+     }
+   }
+ #endif
+ 
+ #ifdef MOZ_GSTREAMER 
+   if (IsH264Type(aType)) {
 diff --git a/content/media/gstreamer/nsGStreamerReader.cpp b/content/media/gstreamer/nsGStreamerReader.cpp
 --- a/content/media/gstreamer/nsGStreamerReader.cpp
 +++ b/content/media/gstreamer/nsGStreamerReader.cpp