[Bug 686459] pulsesink: playbin uri=x.mp3 audio-sink='identity ! pulsesink' => not-negotiated flow error

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Thu Jun 6 03:51:37 PDT 2013


https://bugzilla.gnome.org/show_bug.cgi?id=686459
  GStreamer | gst-plugins-good | git

--- Comment #10 from Arun Raghavan <arun at accosted.net> 2013-06-06 10:51:32 UTC ---
(In reply to comment #8)
> Review of attachment 245368 [details]:
> 
> ::: ext/pulse/pulsesink.c
> @@ +2021,3 @@
> +          /* raw formats PA supports == raw formats GST supports, so skip
> +           * setting formats (FIXME?) */
> +          ret = gst_caps_from_string ("audio/x-raw");
> 
> gst_caps_new_empty_simple()
> 
> Could you also use the GstAudioInfo caps creation function here? There are some
> fields missing here :)

I've fixed this and the next comment a little differently (and IMO less
messily). Patch coming soon.

> @@ +2053,3 @@
> +
> +  if (pa_format_info_get_prop_int (format, PA_PROP_FORMAT_RATE, &rate) == 0)
> +    gst_caps_set_simple (ret, "rate", G_TYPE_INT, rate, NULL);
> 
> Should always have rate and channels set, in the worst case the [1,MAX] range.
> Alternatively intersect with the template caps afterwards

See previous note.

> @@ +2131,3 @@
> +  }
> +
> +  if (!pbuf->stream) {
> 
> It should only create a stream and do all that when in >=READY state

When we get to this point, we know we're in READY because there is a
pbuf->context.

> @@ +2141,3 @@
> +    pa_format_info_set_sample_format (format, PA_SAMPLE_S16LE);
> +    pa_format_info_set_rate (format, GST_AUDIO_DEF_RATE);
> +    pa_format_info_set_channels (format, GST_AUDIO_DEF_CHANNELS);
> 
> Can using this format ever fail although in general stuff would work?

It really should not. Eventually, as the comment notes, I'd like to be able to
connect with an "ANY" format. This needs some fixes with how the formats
handling happens in PulseAudio, which I am doing independently.

-- 
Configure bugmail: https://bugzilla.gnome.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
You are the assignee for the bug.


More information about the gstreamer-bugs mailing list