Author: ayoung
Date: Mon Mar 29 09:21:05 2010
New Revision: 8672

URL: http://svn.slimdevices.com/jive?rev=8672&view=rev
Log:
Fixed bug 15840: Squeezeplay-based players may sometimes fail with MP4 files 
(AAC-HE, AAC-HD or ALAC) 
Allow mp4_open() to return 2 meaning not yet done parseing header.

Modified:
    7.5/trunk/squeezeplay/src/squeezeplay/src/audio/decode/decode_alac.c
    7.5/trunk/squeezeplay/src/squeezeplay/src/audio/mp4.c

Modified: 7.5/trunk/squeezeplay/src/squeezeplay/src/audio/decode/decode_alac.c
URL: 
http://svn.slimdevices.com/jive/7.5/trunk/squeezeplay/src/squeezeplay/src/audio/decode/decode_alac.c?rev=8672&r1=8671&r2=8672&view=diff
==============================================================================
--- 7.5/trunk/squeezeplay/src/squeezeplay/src/audio/decode/decode_alac.c 
(original)
+++ 7.5/trunk/squeezeplay/src/squeezeplay/src/audio/decode/decode_alac.c Mon 
Mar 29 09:21:05 2010
@@ -55,7 +55,10 @@
        }
 
        if (!self->init) {
-               if (!mp4_open(&self->mp4)) {
+               size_t status = mp4_open(&self->mp4);
+               if (status == 2) {
+                       return TRUE;            /* need to wait for some more 
data */
+               } else  if (status != 1) {
                        current_decoder_state |= DECODE_STATE_ERROR | 
DECODE_STATE_NOT_SUPPORTED;
                        return FALSE;
                }

Modified: 7.5/trunk/squeezeplay/src/squeezeplay/src/audio/mp4.c
URL: 
http://svn.slimdevices.com/jive/7.5/trunk/squeezeplay/src/squeezeplay/src/audio/mp4.c?rev=8672&r1=8671&r2=8672&view=diff
==============================================================================
--- 7.5/trunk/squeezeplay/src/squeezeplay/src/audio/mp4.c (original)
+++ 7.5/trunk/squeezeplay/src/squeezeplay/src/audio/mp4.c Mon Mar 29 09:21:05 
2010
@@ -692,8 +692,13 @@
 
                r = mp4_fill_buffer(mp4, &streaming);
                if (r < 0) {
-                       LOG_ERROR(log_audio_codec, "premature end of stream");
-                       return 0;
+                       if (streaming) {
+                               LOG_DEBUG(log_audio_codec, "waiting for more 
stream");
+                               return 2;
+                       } else {
+                               LOG_ERROR(log_audio_codec, "premature end of 
stream");
+                               return 0;
+                       }
                }
 
                /* parse box */

_______________________________________________
Jive-checkins mailing list
[email protected]
http://lists.slimdevices.com/mailman/listinfo/jive-checkins

Reply via email to