1 --- a/src/pulsecore/sink-input.c 2016-04-13 11:44:04.389999429 +0200
2 +++ b/src/pulsecore/sink-input.c 2016-04-13 11:52:45.167998560 +0200
4 update_n_corked(i, state);
8 + i->corked_internal = false;
10 /* We might need to update the sink's volume if we are in flat volume mode. */
11 if (pa_sink_flat_volume_enabled(i->sink))
12 pa_sink_set_volume(i->sink, NULL, false, i->save_volume);
13 @@ -1493,13 +1496,38 @@
17 +static void pa_sink_input_cork_really(pa_sink_input *i, bool b) {
18 + pa_sink_input_assert_ref(i);
19 + pa_assert_ctl_context();
20 + pa_assert(PA_SINK_INPUT_IS_LINKED(i->state));
22 + if (i->corked_internal == false && i->corked == false)
27 + sink_input_set_state(i, b ? PA_SINK_INPUT_CORKED : PA_SINK_INPUT_RUNNING);
30 /* Called from main context */
31 void pa_sink_input_cork(pa_sink_input *i, bool b) {
32 pa_sink_input_assert_ref(i);
33 pa_assert_ctl_context();
34 pa_assert(PA_SINK_INPUT_IS_LINKED(i->state));
36 - sink_input_set_state(i, b ? PA_SINK_INPUT_CORKED : PA_SINK_INPUT_RUNNING);
39 + pa_sink_input_cork_really(i, b);
42 +void pa_sink_input_cork_internal(pa_sink_input *i, bool b) {
43 + pa_sink_input_assert_ref(i);
44 + pa_assert_ctl_context();
45 + pa_assert(PA_SINK_INPUT_IS_LINKED(i->state));
47 + i->corked_internal = b;
49 + pa_sink_input_cork_really(i, b);
52 /* Called from main context */
53 --- a/src/pulsecore/sink-input.h 2016-04-13 11:44:28.035999390 +0200
54 +++ b/src/pulsecore/sink-input.h 2016-04-13 11:53:56.325998441 +0200
56 /* for volume ramps */
57 pa_cvolume_ramp_int ramp;
60 + bool corked_internal;
62 pa_resample_method_t requested_resample_method, actual_resample_method;
64 /* Returns the chunk of audio data and drops it from the
66 void pa_sink_input_request_rewind(pa_sink_input *i, size_t nbytes, bool rewrite, bool flush, bool dont_rewind_render);
68 void pa_sink_input_cork(pa_sink_input *i, bool b);
69 +void pa_sink_input_cork_internal(pa_sink_input *i, bool b);
71 int pa_sink_input_set_rate(pa_sink_input *i, uint32_t rate);
72 int pa_sink_input_update_rate(pa_sink_input *i);