diff --git a/src/libOggFLAC/include/private/ogg_decoder_aspect.h b/src/libOggFLAC/include/private/ogg_decoder_aspect.h index a5292e17..1f535f14 100644 --- a/src/libOggFLAC/include/private/ogg_decoder_aspect.h +++ b/src/libOggFLAC/include/private/ogg_decoder_aspect.h @@ -53,6 +53,7 @@ void OggFLAC__ogg_decoder_aspect_set_defaults(OggFLAC__OggDecoderAspect *aspect) FLAC__bool OggFLAC__ogg_decoder_aspect_init(OggFLAC__OggDecoderAspect *aspect); void OggFLAC__ogg_decoder_aspect_finish(OggFLAC__OggDecoderAspect *aspect); void OggFLAC__ogg_decoder_aspect_flush(OggFLAC__OggDecoderAspect *aspect); +void OggFLAC__ogg_decoder_aspect_reset(OggFLAC__OggDecoderAspect *aspect); typedef FLAC__StreamDecoderReadStatus (*OggFLAC__OggDecoderAspectReadCallbackProxy)(void *decoder, FLAC__byte buffer[], unsigned *bytes, void *client_data); diff --git a/src/libOggFLAC/ogg_decoder_aspect.c b/src/libOggFLAC/ogg_decoder_aspect.c index a8c1f15c..970c734b 100644 --- a/src/libOggFLAC/ogg_decoder_aspect.c +++ b/src/libOggFLAC/ogg_decoder_aspect.c @@ -77,7 +77,13 @@ void OggFLAC__ogg_decoder_aspect_set_defaults(OggFLAC__OggDecoderAspect *aspect) void OggFLAC__ogg_decoder_aspect_flush(OggFLAC__OggDecoderAspect *aspect) { - (void)ogg_sync_clear(&aspect->sync_state); + OggFLAC__ogg_decoder_aspect_reset(aspect); +} + +void OggFLAC__ogg_decoder_aspect_reset(OggFLAC__OggDecoderAspect *aspect) +{ + (void)ogg_stream_reset(&aspect->sync_state); + (void)ogg_sync_reset(&aspect->sync_state); } OggFLAC__OggDecoderAspectReadStatus OggFLAC__ogg_decoder_aspect_read_callback_wrapper(OggFLAC__OggDecoderAspect *aspect, FLAC__byte buffer[], unsigned *bytes, OggFLAC__OggDecoderAspectReadCallbackProxy read_callback, void *decoder, void *client_data)