[pulseaudio-discuss] [PATCH 00/16] Format negotiation fixing

Tanu Kaskinen tanu.kaskinen at linux.intel.com
Tue Dec 3 23:50:08 PST 2013


This patch set fixes this release blocker bug:
https://bugs.freedesktop.org/show_bug.cgi?id=68952

The most important bits are pa_format_info_to_sample_spec2() and
pa_format_info_from_sample_spec2(), which enable pa_sink_input_new()
and pa_source_output_new() to interpret missing PCM parameters as a
request to decide those parameters at the server end. When
implementing those, I wanted to use helper functions for getting the
parameters from a pa_format_info object, so I wrote those helper
functions first. When validating the individual parameter values, I
also wanted to use validation functions for that, so the patch set
begins with the addition of some simple validation functions. At the
end of the patch set there are documentation patches that add some
explanation about how to manage the PCM parameter configuration with
the pa_format_info interface.

Tanu Kaskinen (16):
  Add pa_sample_format_valid()
  Add pa_sample_rate_valid()
  Add pa_channels_valid()
  Move pa_format_info_to_sample_spec_fake() to core-format
  core-format: Add pa_format_info_get_sample_format()
  core-format: Add pa_format_info_get_rate()
  core-format: Add pa_format_info_get_channels()
  core-format: Add pa_format_info_get_channel_map()
  format: Simplify pa_format_info_to_sample_spec()
  core-format: Add pa_format_info_to_sample_spec2()
  core-format: Add pa_format_info_from_sample_spec2()
  sink-input, source-output: Do routing related validity checks
    immediately after routing
  sink-input, source-output: Don't support clients that configure volume
    but not channels
  sink-input, source-output: Interpret missing PCM parameters in format
    info as a request to decide those parameters at the server end
  def, format: Document how to leave PCM parameters to be decided by the
    server
  stream: Mention pa_stream_new_extended() in the high-level stream
    creation documentation

 src/Makefile.am                              |   1 +
 src/daemon/daemon-conf.c                     |   6 +-
 src/map-file                                 |   3 +
 src/modules/alsa/alsa-ucm.c                  |  10 +-
 src/modules/bluetooth/module-bluez4-device.c |   5 +-
 src/modules/dbus/iface-core.c                |  10 +-
 src/modules/jack/module-jack-sink.c          |   3 +-
 src/modules/jack/module-jack-source.c        |   3 +-
 src/modules/jack/module-jackdbus-detect.c    |   2 +-
 src/pulse/channelmap.c                       |   8 +-
 src/pulse/def.h                              |  38 +++-
 src/pulse/format.c                           |  67 ++-----
 src/pulse/format.h                           |  56 +++++-
 src/pulse/sample.c                           |  29 +--
 src/pulse/sample.h                           |  10 ++
 src/pulse/stream.c                           |   2 +-
 src/pulse/stream.h                           |  11 +-
 src/pulse/volume.c                           |   5 +-
 src/pulsecore/core-format.c                  | 252 +++++++++++++++++++++++++++
 src/pulsecore/core-format.h                  |  81 +++++++++
 src/pulsecore/mix.c                          |   6 +-
 src/pulsecore/modargs.c                      |  13 +-
 src/pulsecore/protocol-native.c              |   2 +-
 src/pulsecore/resampler.c                    |  12 +-
 src/pulsecore/sconv.c                        |  32 +---
 src/pulsecore/sink-input.c                   |  86 +++------
 src/pulsecore/sink.c                         |   3 +-
 src/pulsecore/source-output.c                |  83 +++------
 src/pulsecore/source.c                       |   3 +-
 src/pulsecore/svolume_c.c                    |   6 +-
 30 files changed, 569 insertions(+), 279 deletions(-)
 create mode 100644 src/pulsecore/core-format.c
 create mode 100644 src/pulsecore/core-format.h

-- 
1.8.3.1



More information about the pulseaudio-discuss mailing list