From 6870aa930c1b75b319326ecddcc02b93b58b7d8f Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst Date: Wed, 9 Jul 2008 11:39:00 -0700 Subject: [PATCH] Revert "winemp3: Don't keep unused data buffered." This reverts commit 8f46a5119249562aceabff6d120948cbfacb6423. Breaks complex mp3's that set up 'bit buckets' --- dlls/winemp3.acm/interface.c | 5 +---- dlls/winemp3.acm/mpegl3.c | 7 ++----- dlls/winemp3.acm/mpglib.h | 2 +- 3 files changed, 4 insertions(+), 10 deletions(-) diff --git a/dlls/winemp3.acm/interface.c b/dlls/winemp3.acm/interface.c index 1511cbb..0da22dd 100644 --- a/dlls/winemp3.acm/interface.c +++ b/dlls/winemp3.acm/interface.c @@ -51,7 +51,7 @@ BOOL InitMP3(struct mpstr *mp) return !0; } -void ClearMP3Buffer(struct mpstr *mp) +void ExitMP3(struct mpstr *mp) { struct buf *b,*bn; @@ -62,9 +62,6 @@ void ClearMP3Buffer(struct mpstr *mp) free(b); b = bn; } - mp->tail = NULL; - mp->head = NULL; - mp->bsize = 0; } static struct buf *addbuf(struct mpstr *mp,const unsigned char *buf,int size) diff --git a/dlls/winemp3.acm/mpegl3.c b/dlls/winemp3.acm/mpegl3.c index 5ad4433..5ede22e 100644 --- a/dlls/winemp3.acm/mpegl3.c +++ b/dlls/winemp3.acm/mpegl3.c @@ -182,9 +182,6 @@ static void mp3_horse(PACMDRVSTREAMINSTANCE adsi, buffered_after = get_num_buffered_bytes(&amd->mp); TRACE("before %d put %d during %d after %d\n", buffered_before, *nsrc, buffered_during, buffered_after); - - *nsrc -= buffered_after; - ClearMP3Buffer(&amd->mp); } /*********************************************************************** @@ -398,7 +395,7 @@ static LRESULT MPEG3_FormatSuggest(PACMDRVFORMATSUGGEST adfs) */ static void MPEG3_Reset(PACMDRVSTREAMINSTANCE adsi, AcmMpeg3Data* aad) { - ClearMP3Buffer(&aad->mp); + ExitMP3(&aad->mp); InitMP3(&aad->mp); } @@ -460,7 +457,7 @@ static LRESULT MPEG3_StreamOpen(PACMDRVSTREAMINSTANCE adsi) */ static LRESULT MPEG3_StreamClose(PACMDRVSTREAMINSTANCE adsi) { - ClearMP3Buffer(&((AcmMpeg3Data*)adsi->dwDriver)->mp); + ExitMP3(&((AcmMpeg3Data*)adsi->dwDriver)->mp); HeapFree(GetProcessHeap(), 0, (void*)adsi->dwDriver); return MMSYSERR_NOERROR; } diff --git a/dlls/winemp3.acm/mpglib.h b/dlls/winemp3.acm/mpglib.h index 865e781..4efe8ae 100644 --- a/dlls/winemp3.acm/mpglib.h +++ b/dlls/winemp3.acm/mpglib.h @@ -62,7 +62,7 @@ extern "C" { BOOL InitMP3(struct mpstr *mp); int decodeMP3(struct mpstr *mp,const unsigned char *inmemory,int inmemsize, unsigned char *outmemory,int outmemsize,int *done); -void ClearMP3Buffer(struct mpstr *mp); +void ExitMP3(struct mpstr *mp); #ifdef __cplusplus } -- 1.5.4.1