Hi all,

If I have code that does this:

    while (FLAC__stream_decoder_process_single (decoder))
        /* Do something. */ ;

I get an infinite loop. Shouldn't FLAC__stream_decoder_process_single
return false if it gets to FLAC__STREAM_DECODER_END_OF_STREAM?

If so, here's a patch.

Cheers,
Erik


------------------8<------------------8<------------------8<------------------
diff -u -r1.140 stream_decoder.c
--- src/libFLAC/stream_decoder.c        10 Jul 2007 02:08:51 -0000      1.140
+++ src/libFLAC/stream_decoder.c        14 Jul 2007 09:15:01 -0000
@@ -1060,6 +1060,7 @@
                                        return true; /* above function sets the 
status for us */
                                break;
                        case FLAC__STREAM_DECODER_END_OF_STREAM:
+                               return false;
                        case FLAC__STREAM_DECODER_ABORTED:
                                return true;
                        default:
------------------8<------------------8<------------------8<------------------


-- 
-----------------------------------------------------------------
Erik de Castro Lopo
-----------------------------------------------------------------
"Python addresses true pseudocode's two major failings: that it
isn't standardized, and it isn't executable."
- Grant R. Griffin  in comp.dsp
_______________________________________________
Flac-dev mailing list
Flac-dev@xiph.org
http://lists.xiph.org/mailman/listinfo/flac-dev

Reply via email to