Hello community,

here is the log from the commit of package seamonkey for openSUSE:Factory 
checked in at 2012-10-11 11:27:01
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/seamonkey (Old)
 and      /work/SRC/openSUSE:Factory/.seamonkey.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "seamonkey", Maintainer is "gnome-maintain...@suse.de"

Changes:
--------
--- /work/SRC/openSUSE:Factory/seamonkey/seamonkey.changes      2012-09-13 
00:07:05.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.seamonkey.new/seamonkey.changes 2012-10-11 
11:30:45.000000000 +0200
@@ -1,0 +2,37 @@
+Mon Oct  8 20:32:50 UTC 2012 - w...@rosenauer.org
+
+- update to SeaMonkey 2.13 (bnc#783533)
+  * MFSA 2012-74/CVE-2012-3982/CVE-2012-3983
+    Miscellaneous memory safety hazards
+  * MFSA 2012-75/CVE-2012-3984 (bmo#575294)
+    select element persistance allows for attacks
+  * MFSA 2012-76/CVE-2012-3985 (bmo#655649)
+    Continued access to initial origin after setting document.domain
+  * MFSA 2012-77/CVE-2012-3986 (bmo#775868)
+    Some DOMWindowUtils methods bypass security checks
+  * MFSA 2012-79/CVE-2012-3988 (bmo#725770)
+    DOS and crash with full screen and history navigation
+  * MFSA 2012-80/CVE-2012-3989 (bmo#783867)
+    Crash with invalid cast when using instanceof operator
+  * MFSA 2012-81/CVE-2012-3991 (bmo#783260)
+    GetProperty function can bypass security checks
+  * MFSA 2012-82/CVE-2012-3994 (bmo#765527)
+    top object and location property accessible by plugins
+  * MFSA 2012-83/CVE-2012-3993/CVE-2012-4184 (bmo#768101, bmo#780370)
+    Chrome Object Wrapper (COW) does not disallow acces to privileged
+    functions or properties
+  * MFSA 2012-84/CVE-2012-3992 (bmo#775009)
+    Spoofing and script injection through location.hash
+  * MFSA 2012-85/CVE-2012-3995/CVE-2012-4179/CVE-2012-4180/
+    CVE-2012-4181/CVE-2012-4182/CVE-2012-4183
+    Use-after-free, buffer overflow, and out of bounds read issues
+    found using Address Sanitizer
+  * MFSA 2012-86/CVE-2012-4185/CVE-2012-4186/CVE-2012-4187/
+    CVE-2012-4188
+    Heap memory corruption issues found using Address Sanitizer
+  * MFSA 2012-87/CVE-2012-3990 (bmo#787704)
+    Use-after-free in the IME State Manager
+- requires NSPR 4.9.2
+- improve GStreamer integration (bmo#760140)
+
+-------------------------------------------------------------------

Old:
----
  l10n-2.12.1.tar.bz2
  seamonkey-2.12.1-source.tar.bz2

New:
----
  l10n-2.13.tar.bz2
  mozilla-gstreamer-760140.patch
  seamonkey-2.13-source.tar.bz2

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ seamonkey.spec ++++++
--- /var/tmp/diff_new_pack.HxVzFX/_old  2012-10-11 11:30:53.000000000 +0200
+++ /var/tmp/diff_new_pack.HxVzFX/_new  2012-10-11 11:30:53.000000000 +0200
@@ -48,9 +48,9 @@
 %endif
 Provides:       web_browser
 Provides:       browser(npapi)
-Version:        2.12.1
+Version:        2.13
 Release:        0
-%define releasedate 2012090400
+%define releasedate 2012100800
 Summary:        The successor of the Mozilla Application Suite
 License:        MPL-2.0
 Group:          Productivity/Networking/Web/Browsers
@@ -75,6 +75,7 @@
 Patch7:         mozilla-ntlm-full-path.patch
 Patch8:         mozilla-ua-locale.patch
 Patch9:         mozilla-ppc.patch
+Patch10:        mozilla-gstreamer-760140.patch
 Patch20:        seamonkey-ua-locale.patch
 Patch21:        seamonkey-shared-nss-db.patch
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
@@ -153,7 +154,7 @@
 %package translations-other
 Summary:        Extra translations for SeaMonkey
 Group:          System/Localization
-Provides:       locale(%{name}:be;lt;sk;tr;uk)
+Provides:       locale(%{name}:be;gl;lt;sk;tr;uk)
 PreReq:         %{name} = %{version}
 
 %description translations-other
@@ -176,6 +177,7 @@
 %patch7 -p1
 %patch8 -p1
 %patch9 -p1
+%patch10 -p1
 popd
 # comm patches
 %patch20 -p1

++++++ compare-locales.tar.bz2 ++++++

++++++ create-tar.sh ++++++
--- /var/tmp/diff_new_pack.HxVzFX/_old  2012-10-11 11:30:53.000000000 +0200
+++ /var/tmp/diff_new_pack.HxVzFX/_new  2012-10-11 11:30:53.000000000 +0200
@@ -2,8 +2,8 @@
 
 CHANNEL="release"
 BRANCH="releases/comm-$CHANNEL"
-RELEASE_TAG="SEAMONKEY_2_12_1_RELEASE"
-VERSION="2.12.1"
+RELEASE_TAG="SEAMONKEY_2_13_RELEASE"
+VERSION="2.13"
 
 echo "cloning $BRANCH..."
 hg clone http://hg.mozilla.org/$BRANCH seamonkey

++++++ l10n-2.12.1.tar.bz2 -> l10n-2.13.tar.bz2 ++++++
/work/SRC/openSUSE:Factory/seamonkey/l10n-2.12.1.tar.bz2 
/work/SRC/openSUSE:Factory/.seamonkey.new/l10n-2.13.tar.bz2 differ: char 11, 
line 1

++++++ mozilla-gstreamer-760140.patch ++++++
From: Alessandro Decina <alessandr...@gmail.com>
Bug 760140 - Query the GstRegistry for the required demuxers/decoders from 
canPlayType

diff --git a/content/base/src/nsContentUtils.cpp 
b/content/base/src/nsContentUtils.cpp
--- a/content/base/src/nsContentUtils.cpp
+++ b/content/base/src/nsContentUtils.cpp
@@ -137,16 +137,19 @@ static NS_DEFINE_CID(kXTFServiceCID, NS_
 #include "xpcprivate.h" // nsXPConnect
 #include "nsScriptSecurityManager.h"
 #include "nsIChannelPolicy.h"
 #include "nsChannelPolicy.h"
 #include "nsIContentSecurityPolicy.h"
 #include "nsContentDLF.h"
 #ifdef MOZ_MEDIA
 #include "nsHTMLMediaElement.h"
+#ifdef MOZ_GSTREAMER
+#include "nsGStreamerDecoder.h"
+#endif
 #endif
 #include "nsDOMTouchEvent.h"
 #include "nsIContentViewer.h"
 #include "nsIObjectLoadingContent.h"
 #include "nsCCUncollectableMarker.h"
 #include "mozilla/Base64.h"
 #include "mozilla/Preferences.h"
 #include "nsDOMMutationObserver.h"
@@ -6511,26 +6514,23 @@ nsContentUtils::FindInternalContentViewe
         }
         return docFactory.forget();
       }
     }
   }
 #endif
 
 #ifdef MOZ_GSTREAMER
-  if (nsHTMLMediaElement::IsH264Enabled()) {
-    for (unsigned int i = 0; i < ArrayLength(nsHTMLMediaElement::gH264Types); 
++i) {
-      const char* type = nsHTMLMediaElement::gH264Types[i];
-      if (!strcmp(aType, type)) {
-        docFactory = 
do_GetService("@mozilla.org/content/document-loader-factory;1");
-        if (docFactory && aLoaderType) {
-          *aLoaderType = TYPE_CONTENT;
-        }
-        return docFactory.forget();
+  if (nsHTMLMediaElement::IsGStreamerEnabled()) {
+    if (nsGStreamerDecoder::CanHandleMediaType(aType, NULL)) {
+      docFactory = 
do_GetService("@mozilla.org/content/document-loader-factory;1");
+      if (docFactory && aLoaderType) {
+        *aLoaderType = TYPE_CONTENT;
       }
+      return docFactory.forget();
     }
   }
 #endif
 #endif // MOZ_MEDIA
 
   return NULL;
 }
 
diff --git a/content/html/content/public/nsHTMLMediaElement.h 
b/content/html/content/public/nsHTMLMediaElement.h
--- a/content/html/content/public/nsHTMLMediaElement.h
+++ b/content/html/content/public/nsHTMLMediaElement.h
@@ -250,17 +250,19 @@ public:
   void UpdateMediaSize(nsIntSize size);
 
   // Returns the CanPlayStatus indicating if we can handle this
   // MIME type. The MIME type should not include the codecs parameter.
   // If it returns anything other than CANPLAY_NO then it also
   // returns a null-terminated list of supported codecs
   // in *aSupportedCodecs. This list should not be freed, it is static data.
   static CanPlayStatus CanHandleMediaType(const char* aMIMEType,
-                                          char const *const ** 
aSupportedCodecs);
+                                          const char* aCodecs,
+                                          char const *const ** 
aSupportedCodecs,
+                                          bool* aCheckSupportedCodecs);
 
   // Returns the CanPlayStatus indicating if we can handle the
   // full MIME type including the optional codecs parameter.
   static CanPlayStatus GetCanPlay(const nsAString& aType);
 
   // Returns true if we should handle this MIME type when it appears
   // as an <object> or as a toplevel page. If, in practice, our support
   // for the type is more limited than appears in the wild, we should return
@@ -290,20 +292,17 @@ public:
 #ifdef MOZ_WEBM
   static bool IsWebMEnabled();
   static bool IsWebMType(const nsACString& aType);
   static const char gWebMTypes[2][17];
   static char const *const gWebMCodecs[4];
 #endif
 
 #ifdef MOZ_GSTREAMER
-  static bool IsH264Enabled();
-  static bool IsH264Type(const nsACString& aType);
-  static const char gH264Types[3][17];
-  static char const *const gH264Codecs[7];
+  static bool IsGStreamerEnabled();
 #endif
 
 #ifdef MOZ_MEDIA_PLUGINS
   static bool IsMediaPluginsEnabled();
   static bool IsMediaPluginsType(const nsACString& aType);
 #endif
 
   /**
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
@@ -2070,68 +2070,40 @@ nsHTMLMediaElement::IsWebMType(const nsA
     }
   }
 
   return false;
 }
 #endif
 
 #ifdef MOZ_GSTREAMER
-const char nsHTMLMediaElement::gH264Types[3][17] = {
-  "video/mp4",
-  "video/3gpp",
-  "video/quicktime",
-};
-
-char const *const nsHTMLMediaElement::gH264Codecs[7] = {
-  "avc1.42E01E",
-  "avc1.42001E",
-  "avc1.58A01E",
-  "avc1.4D401E",
-  "avc1.64001E",
-  "mp4a.40.2",
-  nsnull
-};
-
 bool
-nsHTMLMediaElement::IsH264Enabled()
+nsHTMLMediaElement::IsGStreamerEnabled()
 {
-  return Preferences::GetBool("media.h264.enabled");
-}
-
-bool
-nsHTMLMediaElement::IsH264Type(const nsACString& aType)
-{
-  if (!IsH264Enabled()) {
-    return false;
-  }
-
-  for (PRUint32 i = 0; i < ArrayLength(gH264Types); ++i) {
-    if (aType.EqualsASCII(gH264Types[i])) {
-      return true;
-    }
-  }
-
-  return false;
+  return Preferences::GetBool("media.gstreamer.enabled");
 }
 #endif
 
 #ifdef MOZ_MEDIA_PLUGINS
 bool
 nsHTMLMediaElement::IsMediaPluginsEnabled()
 {
   return Preferences::GetBool("media.plugins.enabled");
 }
 #endif
 
 /* static */
 nsHTMLMediaElement::CanPlayStatus 
 nsHTMLMediaElement::CanHandleMediaType(const char* aMIMEType,
-                                       char const *const ** aCodecList)
+                                       const char *aCodecs,
+                                       char const *const ** aCodecList,
+                                       bool* aCheckCodecList)
 {
+  if (aCheckCodecList)
+    *aCheckCodecList = true;
 #ifdef MOZ_RAW
   if (IsRawType(nsDependentCString(aMIMEType))) {
     *aCodecList = gRawCodecs;
     return CANPLAY_MAYBE;
   }
 #endif
 #ifdef MOZ_OGG
   if (IsOggType(nsDependentCString(aMIMEType))) {
@@ -2148,20 +2120,22 @@ nsHTMLMediaElement::CanHandleMediaType(c
 #ifdef MOZ_WEBM
   if (IsWebMType(nsDependentCString(aMIMEType))) {
     *aCodecList = gWebMCodecs;
     return CANPLAY_YES;
   }
 #endif
 
 #ifdef MOZ_GSTREAMER
-  if (IsH264Type(nsDependentCString(aMIMEType))) {
-    *aCodecList = gH264Codecs;
-    return CANPLAY_MAYBE;
-  }
+  if (aCheckCodecList)
+    *aCheckCodecList = false;
+  if (aCodecList)
+    *aCodecList = NULL;
+  if (nsGStreamerDecoder::CanHandleMediaType(aMIMEType, aCodecs))
+    return CANPLAY_YES;
 #endif
 #ifdef MOZ_MEDIA_PLUGINS
   if (GetMediaPluginHost()->FindDecoder(nsDependentCString(aMIMEType), 
aCodecList))
     return CANPLAY_MAYBE;
 #endif
   return CANPLAY_NO;
 }
 
@@ -2176,17 +2150,17 @@ bool nsHTMLMediaElement::ShouldHandleMed
   if (IsOggType(nsDependentCString(aMIMEType)))
     return true;
 #endif
 #ifdef MOZ_WEBM
   if (IsWebMType(nsDependentCString(aMIMEType)))
     return true;
 #endif
 #ifdef MOZ_GSTREAMER
-  if (IsH264Type(nsDependentCString(aMIMEType)))
+  if (nsGStreamerDecoder::CanHandleMediaType(aMIMEType, NULL))
     return true;
 #endif
 #ifdef MOZ_MEDIA_PLUGINS
   if (GetMediaPluginHost()->FindDecoder(nsDependentCString(aMIMEType), NULL))
     return true;
 #endif
   // We should not return true for Wave types, since there are some
   // Wave codecs actually in use in the wild that we don't support, and
@@ -2212,26 +2186,31 @@ nsHTMLMediaElement::GetCanPlay(const nsA
 {
   nsContentTypeParser parser(aType);
   nsAutoString mimeType;
   nsresult rv = parser.GetType(mimeType);
   if (NS_FAILED(rv))
     return CANPLAY_NO;
 
   NS_ConvertUTF16toUTF8 mimeTypeUTF8(mimeType);
+  nsAutoString codecs;
+  rv = parser.GetParameter("codecs", codecs);
+  NS_ConvertUTF16toUTF8 codecsUTF8(codecs);
   char const *const * supportedCodecs;
+  bool checkSupportedCodecs = true;
   CanPlayStatus status = CanHandleMediaType(mimeTypeUTF8.get(),
-                                            &supportedCodecs);
+                                            codecsUTF8.get(),
+                                            &supportedCodecs,
+                                            &checkSupportedCodecs);
   if (status == CANPLAY_NO)
     return CANPLAY_NO;
 
-  nsAutoString codecs;
-  rv = parser.GetParameter("codecs", codecs);
-  if (NS_FAILED(rv)) {
-    // Parameter not found or whatever
+  if (codecs.IsEmpty() || !checkSupportedCodecs) {
+    /* no codecs to check for or they were already checked in 
CanHandleMediaType
+     * above */
     return status;
   }
 
   CanPlayStatus result = CANPLAY_YES;
   // See http://www.rfc-editor.org/rfc/rfc4281.txt for the description
   // of the 'codecs' parameter
   nsCharSeparatedTokenizer tokenizer(codecs, ',');
   bool expectMoreTokens = false;
@@ -2309,17 +2288,19 @@ nsHTMLMediaElement::CreateDecoder(const 
     nsRefPtr<nsWebMDecoder> decoder = new nsWebMDecoder();
     if (decoder->Init(this)) {
       return decoder.forget();
     }
   }
 #endif
 
 #ifdef MOZ_GSTREAMER 
-  if (IsH264Type(aType)) {
+  const char *type;
+  NS_CStringGetData(aType, &type, NULL);
+  if (nsGStreamerDecoder::CanHandleMediaType(type, NULL)) {
     nsRefPtr<nsGStreamerDecoder> decoder = new nsGStreamerDecoder();
     if (decoder->Init(this)) {
       return decoder.forget();
     }
   }
 #endif
   return nsnull;
 }
diff --git a/content/media/gstreamer/Makefile.in 
b/content/media/gstreamer/Makefile.in
--- a/content/media/gstreamer/Makefile.in
+++ b/content/media/gstreamer/Makefile.in
@@ -16,16 +16,17 @@ LIBXUL_LIBRARY      = 1
 
 EXPORTS                += \
                nsGStreamerDecoder.h \
                $(NULL)
 
 CPPSRCS                = \
                nsGStreamerReader.cpp \
                nsGStreamerDecoder.cpp \
+               nsGStreamerFormatHelper.cpp \
                $(NULL)
 
 FORCE_STATIC_LIB = 1
 
 include $(topsrcdir)/config/rules.mk
 
 CFLAGS         += $(GSTREAMER_CFLAGS)
 CXXFLAGS       += $(GSTREAMER_CFLAGS)
diff --git a/content/media/gstreamer/nsGStreamerDecoder.cpp 
b/content/media/gstreamer/nsGStreamerDecoder.cpp
--- a/content/media/gstreamer/nsGStreamerDecoder.cpp
+++ b/content/media/gstreamer/nsGStreamerDecoder.cpp
@@ -2,13 +2,19 @@
 /* vim:set ts=2 sw=2 sts=2 et cindent: */
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this file,
  * You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 #include "nsBuiltinDecoderStateMachine.h"
 #include "nsGStreamerReader.h"
 #include "nsGStreamerDecoder.h"
+#include "nsGStreamerFormatHelper.h"
 
 nsDecoderStateMachine* nsGStreamerDecoder::CreateStateMachine()
 {
   return new nsBuiltinDecoderStateMachine(this, new nsGStreamerReader(this));
 }
+
+bool nsGStreamerDecoder::CanHandleMediaType(const char* aMIMEType,
+                                            const char* aCodecs) {
+  return nsGStreamerFormatHelper::Instance()->CanHandleMediaType(aMIMEType, 
aCodecs);
+}
diff --git a/content/media/gstreamer/nsGStreamerDecoder.h 
b/content/media/gstreamer/nsGStreamerDecoder.h
--- a/content/media/gstreamer/nsGStreamerDecoder.h
+++ b/content/media/gstreamer/nsGStreamerDecoder.h
@@ -9,11 +9,12 @@
 
 #include "nsBuiltinDecoder.h"
 
 class nsGStreamerDecoder : public nsBuiltinDecoder
 {
 public:
   virtual nsMediaDecoder* Clone() { return new nsGStreamerDecoder(); }
   virtual nsDecoderStateMachine* CreateStateMachine();
+  static bool CanHandleMediaType(const char* aMIMEType, const char* aCodecs);
 };
 
 #endif
diff --git a/content/media/gstreamer/nsGStreamerFormatHelper.cpp 
b/content/media/gstreamer/nsGStreamerFormatHelper.cpp
new file mode 100644
--- /dev/null
+++ b/content/media/gstreamer/nsGStreamerFormatHelper.cpp
@@ -0,0 +1,149 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* vim:set ts=2 sw=2 sts=2 et cindent: */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this file,
+ * You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#include "nsGStreamerFormatHelper.h"
+#include "nsCharSeparatedTokenizer.h"
+#include "nsXPCOMStrings.h"
+
+#define ENTRY_FORMAT(entry) entry[0]
+#define ENTRY_CAPS(entry) entry[1]
+
+nsGStreamerFormatHelper* nsGStreamerFormatHelper::gInstance = NULL;
+
+nsGStreamerFormatHelper *nsGStreamerFormatHelper::Instance() {
+  if (!gInstance) {
+    gst_init(NULL, NULL);
+    gInstance = new nsGStreamerFormatHelper();
+  }
+
+  return gInstance;
+}
+
+nsGStreamerFormatHelper::nsGStreamerFormatHelper()
+  : mFactories(NULL),
+    mCookie(0)
+{
+  const char *containers[3][2] = {
+    {"video/mp4", "video/quicktime"},
+    {"audio/mp4", "audio/mpeg, mpegversion=(int)4"},
+    {"audio/mpeg", "audio/mpeg, mpegversion=(int)1"},
+  };
+  memcpy(mContainers, containers, sizeof(containers));
+
+  const char *codecs[7][2] = {
+    {"avc1.42E01E", "video/x-h264"},
+    {"avc1.42001E", "video/x-h264"},
+    {"avc1.58A01E", "video/x-h264"},
+    {"avc1.4D401E", "video/x-h264"},
+    {"avc1.64001E", "video/x-h264"},
+    {"mp4a.40.2", "audio/mpeg, mpegversion=(int)4"},
+    {"mp3", "audio/mpeg, mpegversion=(int)1"},
+  };
+  memcpy(mCodecs, codecs, sizeof(codecs));
+}
+
+nsGStreamerFormatHelper::~nsGStreamerFormatHelper() {
+  if (mFactories)
+    g_list_free(mFactories);
+}
+
+bool nsGStreamerFormatHelper::CanHandleMediaType(const char* aMIMEType,
+                                                 const char *aCodecs) {
+  GstCaps *caps = ConvertFormatsToCaps(aMIMEType, aCodecs);
+  if (!caps) {
+    return false;
+  }
+
+  bool ret = HaveElementsToProcessCaps(caps);
+  gst_caps_unref(caps);
+
+  return ret;
+}
+
+GstCaps *nsGStreamerFormatHelper::ConvertFormatsToCaps(const char *aMIMEType,
+                                                       const char *aCodecs) {
+  unsigned int i;
+
+  /* convert aMIMEType to gst container caps */
+  const char *capsString = NULL;
+  for (i = 0; i < G_N_ELEMENTS(mContainers); i++) {
+    if (!strcmp(ENTRY_FORMAT(mContainers[i]), aMIMEType)) {
+      capsString = ENTRY_CAPS(mContainers[i]);
+      break;
+    }
+  }
+
+  if (!capsString) {
+    /* we couldn't find any matching caps */
+    return NULL;
+  }
+
+  GstCaps *caps = gst_caps_from_string(capsString);
+  /* container only */
+  if (!aCodecs) {
+    return caps;
+  }
+
+  nsDependentCSubstring codecs(aCodecs, strlen(aCodecs));
+  nsCCharSeparatedTokenizer tokenizer(codecs, ',');
+  while (tokenizer.hasMoreTokens()) {
+    const nsCSubstring& codec = tokenizer.nextToken();
+    capsString = NULL;
+
+    for (i = 0; i < G_N_ELEMENTS(mCodecs); i++) {
+      if (codec.Equals(ENTRY_FORMAT(mCodecs[i]))) {
+        capsString = ENTRY_CAPS(mCodecs[i]);
+        break;
+      }
+    }
+
+    if (!capsString) {
+      gst_caps_unref(caps);
+      return NULL;
+    }
+
+    GstCaps *tmp = gst_caps_from_string(capsString);
+    /* appends and frees tmp */
+    gst_caps_append(caps, tmp);
+  }
+
+  return caps;
+}
+
+bool nsGStreamerFormatHelper::HaveElementsToProcessCaps(GstCaps *aCaps) {
+
+  GList *factories = GetFactories();
+
+  GList *list;
+  /* here aCaps contains [containerCaps, [codecCaps1, [codecCaps2, ...]]] so 
process
+   * caps structures individually as we want one element for _each_
+   * structure */
+  for (unsigned int i = 0; i < gst_caps_get_size(aCaps); i++) {
+    GstStructure *s = gst_caps_get_structure(aCaps, i);
+    GstCaps *caps = gst_caps_new_full(gst_structure_copy(s), NULL);
+    list = gst_element_factory_list_filter (factories, caps, GST_PAD_SINK, 
FALSE);
+    gst_caps_unref(caps);
+    if (!list) {
+      return false;
+    }
+    g_list_free(list);
+  }
+
+  return true;
+}
+
+GList * nsGStreamerFormatHelper::GetFactories() {
+  uint32_t cookie = gst_default_registry_get_feature_list_cookie ();
+  if (cookie != mCookie) {
+    g_list_free(mFactories);
+    mFactories = gst_element_factory_list_get_elements
+        (GST_ELEMENT_FACTORY_TYPE_DEMUXER | GST_ELEMENT_FACTORY_TYPE_DECODER,
+         GST_RANK_MARGINAL);
+    mCookie = cookie;
+  }
+
+  return mFactories;
+}
diff --git a/content/media/gstreamer/nsGStreamerFormatHelper.h 
b/content/media/gstreamer/nsGStreamerFormatHelper.h
new file mode 100644
--- /dev/null
+++ b/content/media/gstreamer/nsGStreamerFormatHelper.h
@@ -0,0 +1,37 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* vim:set ts=2 sw=2 sts=2 et cindent: */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this file,
+ * You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#if !defined(nsGStreamerFormatHelper_h_)
+#define nsGStreamerFormatHelper_h_
+
+#include <gst/gst.h>
+#include <mozilla/Types.h>
+
+class nsGStreamerFormatHelper {
+  public:
+    static nsGStreamerFormatHelper *Instance();
+    ~nsGStreamerFormatHelper();
+
+    bool CanHandleMediaType(const char *aMIMEType,
+                            const char *aCodecs);
+
+  private:
+    nsGStreamerFormatHelper();
+    GstCaps *ConvertFormatsToCaps(const char *aMIMEType,
+                                  const char *aCodecs);
+    char * const *CodecListFromCaps(GstCaps *aCaps);
+    bool HaveElementsToProcessCaps(GstCaps *aCaps);
+    GList *GetFactories();
+
+    static nsGStreamerFormatHelper *gInstance;
+
+    const char *mContainers[3][2];
+    const char *mCodecs[7][2];
+    GList *mFactories;
+    uint32_t mCookie;
+};
+
+#endif
diff --git a/modules/libpref/src/init/all.js b/modules/libpref/src/init/all.js
--- a/modules/libpref/src/init/all.js
+++ b/modules/libpref/src/init/all.js
@@ -159,17 +159,17 @@ pref("media.opus.enabled", true);
 #endif
 #ifdef MOZ_WAVE
 pref("media.wave.enabled", true);
 #endif
 #ifdef MOZ_WEBM
 pref("media.webm.enabled", true);
 #endif
 #ifdef MOZ_GSTREAMER
-pref("media.h264.enabled", true);
+pref("media.gstreamer.enabled", true);
 #endif
 
 
 // Whether to autostart a media element with an |autoplay| attribute
 pref("media.autoplay.enabled", true);
 
 // 0 = Off, 1 = Full, 2 = Tagged Images Only. 
 // See eCMSMode in gfx/thebes/gfxPlatform.h
++++++ mozilla-gstreamer.patch ++++++
--- /var/tmp/diff_new_pack.HxVzFX/_old  2012-10-11 11:30:53.000000000 +0200
+++ /var/tmp/diff_new_pack.HxVzFX/_new  2012-10-11 11:30:53.000000000 +0200
@@ -1,14 +1,12 @@
 # HG changeset patch
-# Parent a9a49c20c491011f981b6c110aadfa6a01a1431e
+# Parent e4b87e710b1a5f0bb7db058911bc163b4bf30227
 # User Wolfgang Rosenauer <w...@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 
+@@ -2277,21 +2277,17 @@ nsHTMLMediaElement::CreateDecoder(const 
      nsRefPtr<nsRawDecoder> decoder = new nsRawDecoder();
      if (decoder->Init(this)) {
        return decoder.forget();
@@ -30,7 +28,7 @@
  #ifdef MOZ_WAVE
    if (IsWaveType(aType)) {
      nsRefPtr<nsWaveDecoder> decoder = new nsWaveDecoder();
-@@ -2306,21 +2302,17 @@ nsHTMLMediaElement::CreateDecoder(const 
+@@ -2305,21 +2301,17 @@ nsHTMLMediaElement::CreateDecoder(const 
      nsRefPtr<nsMediaPluginDecoder> decoder = new nsMediaPluginDecoder(aType);
      if (decoder->Init(this)) {
        return decoder.forget();
@@ -52,25 +50,3 @@
  
  #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
-@@ -447,16 +447,18 @@ bool nsGStreamerReader::DecodeVideoFrame
-   for(int i = 0; i < 3; i++) {
-     b.mPlanes[i].mData = data + gst_video_format_get_component_offset(format, 
i,
-         width, height);
-     b.mPlanes[i].mStride = gst_video_format_get_row_stride(format, i, width);
-     b.mPlanes[i].mHeight = gst_video_format_get_component_height(format,
-         i, height);
-     b.mPlanes[i].mWidth = gst_video_format_get_component_width(format,
-         i, width);
-+    b.mPlanes[i].mOffset = 0;
-+    b.mPlanes[i].mSkip = 0;
-   }
- 
-   bool isKeyframe = !GST_BUFFER_FLAG_IS_SET(buffer,
-       GST_BUFFER_FLAG_DELTA_UNIT);
-   /* XXX ? */
-   PRInt64 offset = 0;
-   VideoData *video = VideoData::Create(mInfo,
-                                        mDecoder->GetImageContainer(),

++++++ mozilla-ntlm-full-path.patch ++++++
--- /var/tmp/diff_new_pack.HxVzFX/_old  2012-10-11 11:30:53.000000000 +0200
+++ /var/tmp/diff_new_pack.HxVzFX/_new  2012-10-11 11:30:53.000000000 +0200
@@ -1,12 +1,12 @@
 # HG changeset patch
 # User Petr Cerny <pce...@novell.com>
-# Parent a843037ea4cee813a68dd529e7a503d1e40b81e4
+# Parent 4f5fe2278cd5cff898ad762457312f60a7e82a67
 Bug 634334 - call to the ntlm_auth helper fails
 
 diff --git a/extensions/auth/nsAuthSambaNTLM.cpp 
b/extensions/auth/nsAuthSambaNTLM.cpp
 --- a/extensions/auth/nsAuthSambaNTLM.cpp
 +++ b/extensions/auth/nsAuthSambaNTLM.cpp
-@@ -200,17 +200,17 @@ static PRUint8* ExtractMessage(const nsA
+@@ -168,17 +168,17 @@ static PRUint8* ExtractMessage(const nsA
  nsresult
  nsAuthSambaNTLM::SpawnNTLMAuthHelper()
  {
@@ -14,14 +14,14 @@
      if (!username)
          return NS_ERROR_FAILURE;
  
-     char* args[] = {
+     const char* const args[] = {
 -        "ntlm_auth",
 +        "/usr/bin/ntlm_auth",
          "--helper-protocol", "ntlmssp-client-1",
          "--use-cached-creds",
-         "--username", const_cast<char*>(username),
+         "--username", username,
          nsnull
      };
  
-     bool isOK = SpawnIOChild(args, &mChildPID, &mFromChildFD, &mToChildFD);
+     bool isOK = SpawnIOChild(const_cast<char* const*>(args), &mChildPID, 
&mFromChildFD, &mToChildFD);
      if (!isOK)  

++++++ mozilla-ppc.patch ++++++
--- /var/tmp/diff_new_pack.HxVzFX/_old  2012-10-11 11:30:53.000000000 +0200
+++ /var/tmp/diff_new_pack.HxVzFX/_new  2012-10-11 11:30:53.000000000 +0200
@@ -1,5 +1,5 @@
 # HG changeset patch
-# Parent 0f6722dd9d75458124795d22e9240887c9b4aeca
+# Parent 58ae98c85e39def96a90cb21c90e871f41a03a71
 # User Wolfgang Rosenauer <w...@rosenauer.org>
 Bug 746112 - RegExp hang on ppc64 in execute.
 Bug 750620 - Make double-conversion portable to exotic architectures. TM: 
mozilla15
@@ -67,9 +67,9 @@
          parentheses.subpatternId = subpatternId;
          parentheses.isCopy = false;
          parentheses.isTerminal = false;
-diff --git a/memory/jemalloc/jemalloc.c b/memory/jemalloc/jemalloc.c
---- a/memory/jemalloc/jemalloc.c
-+++ b/memory/jemalloc/jemalloc.c
+diff --git a/memory/mozjemalloc/jemalloc.c b/memory/mozjemalloc/jemalloc.c
+--- a/memory/mozjemalloc/jemalloc.c
++++ b/memory/mozjemalloc/jemalloc.c
 @@ -1086,17 +1086,19 @@ struct arena_s {
  static unsigned               ncpus;
  #endif

++++++ mozilla-shared-nss-db.patch ++++++
--- /var/tmp/diff_new_pack.HxVzFX/_old  2012-10-11 11:30:53.000000000 +0200
+++ /var/tmp/diff_new_pack.HxVzFX/_new  2012-10-11 11:30:53.000000000 +0200
@@ -7,7 +7,7 @@
 diff --git a/config/autoconf.mk.in b/config/autoconf.mk.in
 --- a/config/autoconf.mk.in
 +++ b/config/autoconf.mk.in
-@@ -573,16 +573,20 @@ MOZ_ENABLE_LIBNOTIFY     = @MOZ_ENABLE_LIBNO
+@@ -540,16 +540,20 @@ MOZ_ENABLE_LIBNOTIFY     = @MOZ_ENABLE_LIBNO
  
  MOZ_ALSA_LIBS           = @MOZ_ALSA_LIBS@
  MOZ_ALSA_CFLAGS         = @MOZ_ALSA_CFLAGS@
@@ -20,9 +20,9 @@
 +NSSHELPER_CFLAGS = @NSSHELPER_CFLAGS@
 +NSSHELPER_LIBS = @NSSHELPER_LIBS@
 +
- MOZ_NATIVE_MAKEDEPEND = @SYSTEM_MAKEDEPEND@
+ MOZ_NATIVE_MAKEDEPEND = @MOZ_NATIVE_MAKEDEPEND@
  
- export CL_INCLUDES_PREFIX = @CL_INCLUDES_PREFIX@
+ CL_INCLUDES_PREFIX = @CL_INCLUDES_PREFIX@
  
  MOZ_AUTO_DEPS = @MOZ_AUTO_DEPS@
  COMPILER_DEPEND = @COMPILER_DEPEND@
@@ -31,7 +31,7 @@
 diff --git a/configure.in b/configure.in
 --- a/configure.in
 +++ b/configure.in
-@@ -8270,16 +8270,31 @@ AC_SUBST(QCMS_LIBS)
+@@ -8052,16 +8052,31 @@ AC_SUBST(QCMS_LIBS)
  
  dnl ========================================================
  dnl HarfBuzz
@@ -66,11 +66,11 @@
 diff --git a/security/manager/ssl/src/Makefile.in 
b/security/manager/ssl/src/Makefile.in
 --- a/security/manager/ssl/src/Makefile.in
 +++ b/security/manager/ssl/src/Makefile.in
-@@ -86,12 +86,14 @@ EXTRA_DEPS = $(NSS_DEP_LIBS)
- DEFINES += \
-   -DNSS_ENABLE_ECC \
-   -DDLL_PREFIX=\"$(DLL_PREFIX)\" \
-   -DDLL_SUFFIX=\"$(DLL_SUFFIX)\" \
+@@ -90,12 +90,14 @@ DEFINES += \
+   $(NULL)
+ 
+ EXPORTS += \
+   nsNSSShutDown.h \
    $(NULL)
  
  # Use local includes because they are inserted before INCLUDES
@@ -107,7 +107,7 @@
  #include "nsNetUtil.h"
  #include "nsAppDirectoryServiceDefs.h"
  #include "nsDirectoryService.h"
-@@ -1738,18 +1745,34 @@ nsNSSComponent::InitializeNSS(bool showW
+@@ -1740,18 +1747,34 @@ nsNSSComponent::InitializeNSS(bool showW
      ConfigureInternalPKCS11Token();
  
      // The NSS_INIT_NOROOTINIT flag turns off the loading of the root certs
@@ -147,7 +147,7 @@
 diff --git a/toolkit/library/Makefile.in b/toolkit/library/Makefile.in
 --- a/toolkit/library/Makefile.in
 +++ b/toolkit/library/Makefile.in
-@@ -446,17 +446,17 @@ EXTRA_DSO_LDOPTS += -INCREMENTAL:NO
+@@ -441,17 +441,17 @@ EXTRA_DSO_LDOPTS += -INCREMENTAL:NO
  endif
  endif
  endif
@@ -163,6 +163,6 @@
  CXXFLAGS += $(TK_CFLAGS)
  OS_LIBS += \
    -framework SystemConfiguration \
-   -framework QuickTime \
+   -framework QTKit \
    -framework IOKit \
    -F/System/Library/PrivateFrameworks -framework CoreUI \

++++++ seamonkey-2.12.1-source.tar.bz2 -> seamonkey-2.13-source.tar.bz2 ++++++
/work/SRC/openSUSE:Factory/seamonkey/seamonkey-2.12.1-source.tar.bz2 
/work/SRC/openSUSE:Factory/.seamonkey.new/seamonkey-2.13-source.tar.bz2 differ: 
char 11, line 1

-- 
To unsubscribe, e-mail: opensuse-commit+unsubscr...@opensuse.org
For additional commands, e-mail: opensuse-commit+h...@opensuse.org

Reply via email to