Show
Ignore:
Timestamp:
05/07/08 22:58:12 (3 months ago)
Author:
Laurent Aimar <fenrir@videolan.org>
git-committer:
Laurent Aimar <fenrir@videolan.org> 1215291492 +0000
git-parent:

[4d76391166a752c9405f1bc96447a1a91be5996c]

git-author:
Laurent Aimar <fenrir@videolan.org> 1215291492 +0000
Message:

Fixed ALAC. (close #633)

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • modules/demux/mp4/libmp4.c

    r3561b9b rdf7648f  
    11341134     * XXX hack -> produce a copy of the nearly complete chunk 
    11351135     */ 
     1136    p_box->data.p_sample_soun->i_qt_description = 0; 
     1137    p_box->data.p_sample_soun->p_qt_description = NULL; 
    11361138    if( i_read > 0 ) 
    11371139    { 
    11381140        p_box->data.p_sample_soun->p_qt_description = malloc( i_read ); 
    1139         if( p_box->data.p_sample_soun->p_qt_description == NULL ) 
    1140             MP4_READBOX_EXIT( 0 ); 
    1141         p_box->data.p_sample_soun->i_qt_description = i_read; 
    1142         memcpy( p_box->data.p_sample_soun->p_qt_description, p_peek, i_read ); 
    1143     } 
    1144     else 
    1145     { 
    1146         p_box->data.p_sample_soun->i_qt_description = 0; 
    1147         p_box->data.p_sample_soun->p_qt_description = NULL; 
     1141        if( p_box->data.p_sample_soun->p_qt_description ) 
     1142        { 
     1143            p_box->data.p_sample_soun->i_qt_description = i_read; 
     1144            memcpy( p_box->data.p_sample_soun->p_qt_description, p_peek, i_read ); 
     1145        } 
    11481146    } 
    11491147 
     
    11831181        /* SoundDescriptionV2 */ 
    11841182        double f_sample_rate; 
    1185     int64_t dummy; 
     1183        int64_t dummy; 
    11861184        uint32_t i_channel; 
    11871185 
    11881186        MP4_GET4BYTES( p_box->data.p_sample_soun->i_sample_per_packet ); 
    11891187        MP4_GET8BYTES( dummy ); 
    1190     memcpy( &f_sample_rate, &dummy, 8 ); 
     1188        memcpy( &f_sample_rate, &dummy, 8 ); 
    11911189 
    11921190        msg_Dbg( p_stream, "read box: %f Hz", f_sample_rate ); 
     
    12331231    } 
    12341232 
    1235     if( p_box->i_type == FOURCC_alac ) 
    1236     { 
    1237         free( p_box->data.p_sample_soun->p_qt_description ); 
    1238  
    1239         p_box->data.p_sample_soun->p_qt_description = malloc( i_read ); 
    1240         if( p_box->data.p_sample_soun->p_qt_description == NULL ) 
    1241             MP4_READBOX_EXIT( 0 ); 
    1242         p_box->data.p_sample_soun->i_qt_description = i_read; 
    1243         memcpy( p_box->data.p_sample_soun->p_qt_description, p_peek, i_read ); 
    1244     } 
    1245     else 
    1246     { 
    1247         MP4_ReadBoxContainerRaw( p_stream, p_box ); /* esds */ 
    1248     } 
     1233    MP4_ReadBoxContainerRaw( p_stream, p_box ); /* esds/wave/... */ 
    12491234 
    12501235#ifdef MP4_VERBOSE