Resampler rewinding

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Tanu,

the first diagram should look like this:

DIAGRAM FOR HARDWARE SINK 1 BEFORE STARTING THE MOVE

+---------------------------------------------------------------------------------+-----
|           client stream memblockq                                               |
+---------------------------------------------------------------------------------+-----
                                                                                  ^ read index

+------------------------------------------------------------+--------------------+-----
|  client history_queue                                      |    queue length    |
+------------------------------------------------------------+--------------------+-----
                                                             ^ read index         ^write index
                                                                                  
 
                                                   +------------------------------+
                                                   | data in the client resampler |
                                                   +------------------------------+

+--------------------------------------------------+
|  client render_memblockq  |     queue length     |
+--------------------------------------------------+
                            ^ read index           ^ write index

----------------------------+
   |      dma buffer        |
----------------------------+
   ^ hardware playback position,
     can't rewind beyond this point

This is why I do not need to take the render memblockq length into account when
rewinding the history queue. (When rewinding during a volume change, the history
queue is also rewound by the same amount as the render memblockq plus the data in
the resampler. Then the resampler bit is fed back into the resampler.)

The third diagram is correct again, before finishing the move, the read pointers are
out of sync and will be re-synchronized when pa_sink_input_drop() is called the next
time during FINISH_MOVE.
_______________________________________________
pulseaudio-discuss mailing list
pulseaudio-discuss@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss

[Index of Archives]     [Linux Audio Users]     [AMD Graphics]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux