# HG changeset patch # User reimar # Date 1160945306 0 # Node ID 7cfd3a04d5370c83c83a9271025aee39c1f2d553 # Parent 70b334325fa038576427e388d109bfee2e910cb4 Implement AOPLAY_FINAL_CHUNK support for dshow and win32 out. diff -r 70b334325fa0 -r 7cfd3a04d537 libao2/ao_dsound.c --- a/libao2/ao_dsound.c Sun Oct 15 18:55:57 2006 +0000 +++ b/libao2/ao_dsound.c Sun Oct 15 20:48:26 2006 +0000 @@ -605,6 +605,7 @@ if(space > buffer_size)space -= buffer_size; // write_offset < play_offset if(space < len) len = space; + if (!(flags & AOPLAY_FINAL_CHUNK)) len = (len / ao_data.outburst) * ao_data.outburst; return write_buffer(data, len); } diff -r 70b334325fa0 -r 7cfd3a04d537 libao2/ao_win32.c --- a/libao2/ao_win32.c Sun Oct 15 18:55:57 2006 +0000 +++ b/libao2/ao_win32.c Sun Oct 15 20:48:26 2006 +0000 @@ -322,6 +322,7 @@ // return: number of bytes played static int play(void* data,int len,int flags) { + if (!(flags & AOPLAY_FINAL_CHUNK)) len = (len/ao_data.outburst)*ao_data.outburst; return write_waveOutBuffer(data,len); }