]> git.sesse.net Git - vlc/commitdiff
live555 : fix quicktime audio codec settings.
authorSébastien Escudier <sebastien-devel@celeos.eu>
Fri, 9 Mar 2012 07:31:05 +0000 (08:31 +0100)
committerSébastien Escudier <sebastien-devel@celeos.eu>
Fri, 9 Mar 2012 07:31:37 +0000 (08:31 +0100)
modules/demux/live555.cpp

index 28afd33a6c929688e89827e3600bd3057a9c94d7..241b970e83a58e741f4ce3908d68bec80dffe7c9 100644 (file)
@@ -1776,6 +1776,8 @@ static void StreamRead( void *p_private, unsigned int i_size,
         QuickTimeGenericRTPSource::QTState &qtState = qtRTPSource->qtState;
         uint8_t *sdAtom = (uint8_t*)&qtState.sdAtom[4];
 
+        /* Get codec informations from the quicktime atoms :
+         * http://developer.apple.com/quicktime/icefloe/dispatch026.html */
         if( tk->fmt.i_cat == VIDEO_ES ) {
             if( qtState.sdAtomSize < 16 + 32 )
             {
@@ -1816,7 +1818,7 @@ static void StreamRead( void *p_private, unsigned int i_size,
             }
         }
         else {
-            if( qtState.sdAtomSize < 4 )
+            if( qtState.sdAtomSize < 24 )
             {
                 /* invalid */
                 p_sys->event_data = 0xff;
@@ -1824,6 +1826,7 @@ static void StreamRead( void *p_private, unsigned int i_size,
                 return;
             }
             tk->fmt.i_codec = VLC_FOURCC(sdAtom[0],sdAtom[1],sdAtom[2],sdAtom[3]);
+            tk->fmt.audio.i_bitspersample = (sdAtom[22] << 8) | sdAtom[23];
         }
         tk->p_es = es_out_Add( p_demux->out, &tk->fmt );
     }