// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
+#if defined(OS_TIZEN)
+#include "media/audio/pulse/pulse_output.h"
+#endif
+
#include "media/audio/pulse/pulse_util.h"
#include "base/logging.h"
return PA_CHANNEL_POSITION_SIDE_LEFT;
case SIDE_RIGHT:
return PA_CHANNEL_POSITION_SIDE_RIGHT;
- case CHANNELS_MAX:
- return PA_CHANNEL_POSITION_INVALID;
default:
NOTREACHED() << "Invalid channel: " << channel;
return PA_CHANNEL_POSITION_INVALID;
pa_channel_map_init(&channel_map);
channel_map.channels = ChannelLayoutToChannelCount(channel_layout);
- for (Channels ch = LEFT; ch < CHANNELS_MAX;
+ for (Channels ch = LEFT; ch <= CHANNELS_MAX;
ch = static_cast<Channels>(ch + 1)) {
int channel_index = ChannelOrder(channel_layout, ch);
if (channel_index < 0)
// than the default channel map (NULL).
map = &source_channel_map;
}
+
#if defined(OS_TIZEN)
+ PulseAudioOutputStream* data =
+ static_cast<PulseAudioOutputStream*>(user_data);
pa_proplist* proplist = pa_proplist_new();
- pa_proplist_sets(proplist, PA_PROP_MEDIA_ROLE, "browser");
+ pa_proplist_sets(proplist, "resource.set.appid", data->app_id().c_str());
+ pa_proplist_sets(proplist, PA_PROP_MEDIA_ROLE, data->app_class().c_str());
*stream = pa_stream_new_with_proplist(*context, "Playback",
&sample_specifications,
map, proplist);
// |minreq| bytes. |tlength| should be a multiple of |minreq|; too low and
// Pulse will issue callbacks way too fast, too high and we don't get
// callbacks frequently enough.
+ //
+ // Setting |minreq| to the exact buffer size leads to more callbacks than
+ // necessary, so we've clipped it to half the buffer size. Regardless of the
+ // requested amount, we'll always fill |params.GetBytesPerBuffer()| though.
pa_buffer_attr pa_buffer_attributes;
pa_buffer_attributes.maxlength = static_cast<uint32_t>(-1);
- pa_buffer_attributes.minreq = params.GetBytesPerBuffer();
+ pa_buffer_attributes.minreq = params.GetBytesPerBuffer() / 2;
pa_buffer_attributes.prebuf = static_cast<uint32_t>(-1);
pa_buffer_attributes.tlength = params.GetBytesPerBuffer() * 3;
pa_buffer_attributes.fragsize = static_cast<uint32_t>(-1);