Hi,

Does anyone has comment on this patch?

>From 3406e4e6e0ae5146d6214e73c352d2bc670decba Mon Sep 17 00:00:00 2001
From: xingchao <[email protected]>
Date: Tue, 21 Jun 2011 12:13:14 -0400
Subject: [PATCH] avoid fake rewind in corked state

sink_input_request_rewind() do nothing if in corked state. there's rewind
request need in pa_sink_input_set_state_within_thread(), so mark CORKING
state
after rewinding.
---
 src/pulsecore/sink-input.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/src/pulsecore/sink-input.c b/src/pulsecore/sink-input.c
index f4f3258..02099ce 100644
--- a/src/pulsecore/sink-input.c
+++ b/src/pulsecore/sink-input.c
@@ -1755,7 +1755,6 @@ void
pa_sink_input_set_state_within_thread(pa_sink_input *i, pa_sink_input_state
     if (i->state_change)
         i->state_change(i, state);

-    i->thread_info.state = state;

     if (corking) {

@@ -1764,9 +1763,11 @@ void
pa_sink_input_set_state_within_thread(pa_sink_input *i, pa_sink_input_state
         /* This will tell the implementing sink input driver to rewind
          * so that the unplayed already mixed data is not lost */
         pa_sink_input_request_rewind(i, 0, TRUE, TRUE, FALSE);
+     i->thread_info.state = state;

     } else if (uncorking) {

+     i->thread_info.state = state;
         i->thread_info.underrun_for = (uint64_t) -1;
         i->thread_info.playing_for = 0;

-- 
1.7.1


--xingchao

2011/6/21 xing wang <[email protected]>

> Hi ,
>
> Request to rewind due to corking will do nothing because of sink-input's
> threadinfo state changed to "PA_SINK_INPUT_CORKED". So the patch mark new
> state after finished the rewinding. For uncorking, it's right to set
> "PA_SINK_INPUT_RUNNING" state before the rewind happened.
>
> --xingchao
>
_______________________________________________
pulseaudio-discuss mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss

Reply via email to