Skip to content
Snippets Groups Projects
  1. Nov 06, 2014
  2. Oct 24, 2014
  3. Oct 14, 2014
  4. Sep 24, 2014
  5. Sep 23, 2014
  6. Sep 19, 2014
  7. Sep 18, 2014
  8. Sep 17, 2014
  9. Sep 16, 2014
  10. Sep 15, 2014
  11. Sep 13, 2014
    • Garg's avatar
      audiobasesink: Fix deadlock caused by holding object lock while calling clock functions · 1c9b57ed
      Garg authored and Sebastian Dröge's avatar Sebastian Dröge committed
      Issue:
      During a PAUSED->PLAYING transition when we are rendering an audio buffer in AudioBaseSink
      we make adjustments to the sink's provided clock i.e. fix clock calibration using the external
      pipeline clock, within "gst_audio_base_sink_sync_latency function inside gstaudiobasesink.c".
      For the calibration adjustment we need to get the sink clock time using "gst_audio_clock_get_time".
      But before calling "gst_audio_clock_get_time" we acquire the Object Lock on the Sink. If sink is
      a pulsesink, "gst_audio_clock_get_time" internally calls "gst_pulsesink_get_time" which needs to
      acquire Pulse Audio Main Loop Lock before querying Pulse Audio for its stream time using
      "pa_stream_get_time". Please see "gst_pulsesink_get_time in pulsesink.c".
      
      So the situation here is we have acquired the Object lock on Sink and need PA Main Loop Lock.
      Now Pulse Audio Main Thread itself might be in the process of posting a stream status
      message after Paused to Playing transition which in turn acquires the PA Main loop lock and
      needs the Object Lock on Pulse Sink. This causes a deadlock with the earlier render thread.
      
      Fix:
      Do not acquire the object Lock on Sink before querying the time on PulseSink clock. This is
      similar to the way we have used get_time at other places in the code. Acquire it after the
      get_time call. This way PA Main loop will be able to post its stream status message by
      acquiring the Sink Object lock and will eventually release its Main Loop lock needed for
      gst_pulsesink_get_time to continue.
      
      https://bugzilla.gnome.org/show_bug.cgi?id=736071
      1c9b57ed
    • Sebastian Dröge's avatar
      videofilter: Unref buffers before calling the transform_frame functions · 74d4f2ee
      Sebastian Dröge authored
      GstVideoFrame has another reference, so the buffer looks unwriteable,
      meaning that we can't attach any metas or anything to it
      
      https://bugzilla.gnome.org/show_bug.cgi?id=736118
      74d4f2ee
  12. Sep 11, 2014
Loading