]> git.tuebingen.mpg.de Git - paraslash.git/blobdiff - wma_afh.c
wma_afh: Compute the chunk time more accurately.
[paraslash.git] / wma_afh.c
index 94e6848b517c490487870ca29b25767baeb4ff43..e78802ee6cd2e6a3d15f75da674923344214d061 100644 (file)
--- a/wma_afh.c
+++ b/wma_afh.c
@@ -185,16 +185,15 @@ next:
        }
 }
 
-static void set_chunk_tv(int num_frames, int num_chunks, int frequency,
+static void set_chunk_tv(int frames_per_chunk, int frequency,
                struct timeval *result)
 {
-       uint64_t x = (uint64_t)num_frames * 1000 * 1000
-               / frequency / num_chunks;
+       uint64_t x = (uint64_t)frames_per_chunk * 2048 * 1000 * 1000
+               / frequency;
 
        result->tv_sec = x / 1000 / 1000;
        result->tv_usec = x % (1000 * 1000);
-       PARA_INFO_LOG("%d chunks, chunk time: %lums\n", num_chunks,
-               tv2ms(result));
+       PARA_INFO_LOG("chunk time: %lums\n", tv2ms(result));
 }
 
 /* Must be called on a frame boundary. */
@@ -235,7 +234,7 @@ static int wma_make_chunk_table(char *buf, size_t buf_size, int block_align,
                }
        }
        afhi->chunks_total = j;
-       set_chunk_tv(num_frames * 2048, j + 10 /* FIXME */, afhi->frequency, &afhi->chunk_tv);
+       set_chunk_tv(frames_per_chunk, afhi->frequency, &afhi->chunk_tv);
        return 1;
 fail:
        free(afhi->chunk_table);