[Bug 649931] [apexsink] Allow to play to new, generation 2 AirTunes (AirPlay) hardware

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Sun May 15 18:55:37 PDT 2011


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

--- Comment #4 from W. Michael Petullo <mike at flyn.org> 2011-05-16 01:55:32 UTC ---
 > So the new generation uses UDP? You should make sure that you don't send too
> large packets from the sink then, TCP will handle that correctly by using
> fragmentation but for UDP you have to do it yourself

The new generation uses either TCP or UDP. The protocol supported is advertised
using mDNS/SD. Either way, the packet size is fixed at 12 (RTSP header) + 3
(ALAC header) + 1408 (data).

> ::: ext/apexsink/gstapexsink.c
> @@ +119,3 @@
> +  static GEnumValue generation[] = {
> +    {GST_APEX_GENERATION_ONE, "GST_APEX_GENERATION_ONE", "First generation
> (e.g., original AirPort Express)"},
> +    {GST_APEX_GENERATION_TWO, "GST_APEX_GENERATION_TWO", "Second generation
> (e.g., Apple TV v2)"},
> 
> Please use something else for the name (the first string), e.g. generation-one

Done in second patch.

> @@ +136,3 @@
> +  static GEnumValue transport_protocol[] = {
> +    {GST_APEX_TCP, "GST_APEX_TCP", "TCP"},
> +    {GST_APEX_UDP, "GST_APEX_UDP", "UDP"},
> 
> Please use something else for the name (the first string), e.g. udp and tcp

Done in second patch.

> @@ +407,3 @@
> +        GST_INFO_OBJECT (sink, "ApEx transport protocol set to \"%d\"",
> sink->transport_protocol);
> +      } else {
> +        G_OBJECT_WARN_INVALID_PSPEC (object, "transport protocol", prop_id,
> pspec);
> 
> Instead of this warning you should do nothing and use a GST_WARNING_OBJECT()
> that says that the property can only be changed in NULL state.

Done in second patch.

> @@ +575,3 @@
> +   */
> +  usleep ((gulong) ((length * 1000000.) / (GST_APEX_RAOP_BITRATE *
> +                     GST_APEX_RAOP_BYTES_PER_SAMPLE)));
> 
> Instead of sleeping it's probably a good idea to use the GstClock API here,
> which allows interruptions and everything.

Done in second patch.

I am still working on the timing issues noted in the original report.

-- 
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