mozilla-gstreamer-1.patch
changeset 637 73640b76d6c3
parent 627 cc7671532e60
child 641 8d4c4f06e0e4
--- a/mozilla-gstreamer-1.patch	Tue Mar 19 09:18:24 2013 +0100
+++ b/mozilla-gstreamer-1.patch	Mon Mar 25 23:57:09 2013 +0100
@@ -1,5 +1,5 @@
 # HG changeset patch
-# Parent 0559be6b60075e1a708ca90e874f922ff200c462
+# Parent bbef353e571ee80b20c52274c7660b49d01985ba
 # User Mike Gorse <mgorse@suse.com>
 
 Bug 806917 - support GStreamer 1.0
@@ -7,7 +7,7 @@
 diff --git a/configure.in b/configure.in
 --- a/configure.in
 +++ b/configure.in
-@@ -5758,28 +5758,36 @@ fi
+@@ -5706,26 +5706,34 @@ fi
  
  AC_SUBST(MOZ_PULSEAUDIO)
  AC_SUBST(MOZ_PULSEAUDIO_CFLAGS)
@@ -35,13 +35,11 @@
 -    # API version, eg 0.10, 1.0 etc
 -    GST_API_VERSION=0.10
      # core/base release number
-     # depend on >= 0.10.33 as that's when the playbin2 source-setup signal was
-     # introduced
--    GST_VERSION=0.10.33
+-    GST_VERSION=0.10.25
 +    if test "$GST_API_VERSION" = "1.0"; then
 +      GST_VERSION=1.0
 +    else
-+      GST_VERSION=0.10.33
++      GST_VERSION=0.10.25
 +    fi
      PKG_CHECK_MODULES(GSTREAMER,
                        gstreamer-$GST_API_VERSION >= $GST_VERSION
@@ -102,7 +100,7 @@
  GStreamerReader::~GStreamerReader()
  {
    MOZ_COUNT_DTOR(GStreamerReader);
-@@ -120,19 +124,26 @@ nsresult GStreamerReader::Init(MediaDeco
+@@ -122,19 +126,26 @@ nsresult GStreamerReader::Init(MediaDeco
    mVideoSink = gst_parse_bin_from_description("capsfilter name=filter ! "
        "appsink name=videosink sync=true max-buffers=1 "
        "caps=video/x-raw-yuv,format=(fourcc)I420"
@@ -128,11 +126,11 @@
  #ifdef MOZ_SAMPLE_TYPE_FLOAT32
          "appsink name=audiosink sync=true caps=audio/x-raw-float,"
  #ifdef IS_LITTLE_ENDIAN
-         "channels={1,2},rate=44100,width=32,endianness=1234", TRUE, NULL);
+         "channels={1,2},width=32,endianness=1234", TRUE, NULL);
  #else
-@@ -145,19 +156,25 @@ nsresult GStreamerReader::Init(MediaDeco
+@@ -147,19 +158,25 @@ nsresult GStreamerReader::Init(MediaDeco
  #else
-         "channels={1,2},rate=48000,width=16,endianness=4321", TRUE, NULL);
+         "channels={1,2},width=16,endianness=4321", TRUE, NULL);
  #endif
  #endif
    mAudioAppSink = GST_APP_SINK(gst_bin_get_by_name(GST_BIN(mAudioSink),
@@ -156,8 +154,8 @@
        "audio-sink", mAudioSink,
        NULL);
  
-   g_object_connect(mPlayBin, "signal::source-setup",
-@@ -231,17 +248,17 @@ nsresult GStreamerReader::ReadMetadata(V
+   g_signal_connect(G_OBJECT(mPlayBin), "notify::source",
+@@ -236,17 +253,17 @@ nsresult GStreamerReader::ReadMetadata(V
        filter = gst_bin_get_by_name(GST_BIN(mAudioSink), "filter");
      else if (!(current_flags & GST_PLAY_FLAG_VIDEO))
        filter = gst_bin_get_by_name(GST_BIN(mVideoSink), "filter");
@@ -176,7 +174,7 @@
      /* start the pipeline */
      gst_element_set_state(mPlayBin, GST_STATE_PAUSED);
  
-@@ -284,19 +301,24 @@ nsresult GStreamerReader::ReadMetadata(V
+@@ -289,19 +306,24 @@ nsresult GStreamerReader::ReadMetadata(V
        gst_element_set_state(mPlayBin, GST_STATE_NULL);
        gst_message_unref(message);
        return NS_ERROR_FAILURE;
@@ -201,7 +199,7 @@
    }
  
    int n_video = 0, n_audio = 0;
-@@ -365,59 +387,87 @@ bool GStreamerReader::DecodeAudioData()
+@@ -370,59 +392,87 @@ bool GStreamerReader::DecodeAudioData()
  {
    NS_ASSERTION(mDecoder->OnDecodeThread(), "Should be on decode thread.");
  
@@ -289,7 +287,7 @@
      {
        ReentrantMonitorAutoEnter mon(mGstThreadsMonitor);
        timestamp = gst_segment_to_stream_time(&mVideoSegment,
-@@ -431,62 +481,90 @@ bool GStreamerReader::DecodeVideoFrame(b
+@@ -436,62 +486,90 @@ bool GStreamerReader::DecodeVideoFrame(b
      else if (fpsNum && fpsDen)
        /* add 1-frame duration */
        nextTimestamp += gst_util_uint64_scale(GST_USECOND, fpsNum, fpsDen);
@@ -380,7 +378,7 @@
                                   int64_t aStartTime,
                                   int64_t aEndTime,
                                   int64_t aCurrentTime)
-@@ -509,52 +587,62 @@ nsresult GStreamerReader::Seek(int64_t a
+@@ -514,52 +592,62 @@ nsresult GStreamerReader::Seek(int64_t a
  
  nsresult GStreamerReader::GetBuffered(nsTimeRanges* aBuffered,
                                          int64_t aStartTime)
@@ -446,7 +444,7 @@
      aBuffered->Add(start, end);
    }
  
-@@ -563,48 +651,64 @@ nsresult GStreamerReader::GetBuffered(ns
+@@ -568,48 +656,64 @@ nsresult GStreamerReader::GetBuffered(ns
  
  void GStreamerReader::ReadAndPushData(guint aLength)
  {
@@ -512,7 +510,7 @@
    }
  
    /*if (mDecoder->mDuration != -1 &&
-@@ -668,60 +772,95 @@ gboolean GStreamerReader::SeekData(GstAp
+@@ -673,60 +777,95 @@ gboolean GStreamerReader::SeekData(GstAp
    if (NS_SUCCEEDED(rv))
      mByteOffset = mLastReportedByteOffset = aOffset;
    else
@@ -608,7 +606,7 @@
    GStreamerReader *reader = (GStreamerReader *) aUserData;
  
    if (aSink == reader->mVideoAppSink)
-@@ -730,18 +869,22 @@ GstFlowReturn GStreamerReader::NewPrerol
+@@ -735,18 +874,22 @@ GstFlowReturn GStreamerReader::NewPrerol
      reader->AudioPreroll();
    return GST_FLOW_OK;
  }
@@ -632,7 +630,7 @@
    NS_ASSERTION(mInfo.mAudioChannels != 0, ("audio channels is zero"));
    NS_ASSERTION(mInfo.mAudioChannels > 0 && mInfo.mAudioChannels <= MAX_CHANNELS,
        "invalid audio channels number");
-@@ -749,19 +892,29 @@ void GStreamerReader::AudioPreroll()
+@@ -754,19 +897,29 @@ void GStreamerReader::AudioPreroll()
    gst_caps_unref(caps);
    gst_object_unref(sinkpad);
  }