[PATCH] aplay: capture: write only the amount of read frames

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

 



This patch changes the way aborted stream is being saved. Currently when
    abort signal happens the write back of read samples is skipped but there     is no reason to not save them. Also, we need to know how much frames have
    been read and write only those.

    Signed-off-by: Marcin Rajwa <marcin.rajwa@xxxxxxxxxxxxxxx>

diff --git a/aplay/aplay.c b/aplay/aplay.c
index 6836558..f5010dc 100644
--- a/aplay/aplay.c
+++ b/aplay/aplay.c
@@ -3204,11 +3204,12 @@ static void capture(char *orig_name)
                        size_t c = (rest <= (off64_t)chunk_bytes) ?
                                (size_t)rest : chunk_bytes;
                        size_t f = c * 8 / bits_per_frame;
-                       if (pcm_read(audiobuf, f) != f) {
+                       size_t read = pcm_read(audiobuf, f);
+                       size_t save;
+                       if (read != f)
                                in_aborting = 1;
-                               break;
-                       }
-                       if (xwrite(fd, audiobuf, c) != c) {
+                       save = read / 8 * bits_per_frame;
+                       if (xwrite(fd, audiobuf, save) != save) {
                                perror(name);
                                in_aborting = 1;
                                break;



[Index of Archives]     [ALSA User]     [Linux Audio Users]     [Pulse Audio]     [Kernel Archive]     [Asterisk PBX]     [Photo Sharing]     [Linux Sound]     [Video 4 Linux]     [Gimp]     [Yosemite News]

  Powered by Linux