From: Derk-Jan Hartman Date: Thu, 16 Nov 2006 23:56:47 +0000 (+0000) Subject: * forwardport [17824] WAVPACK and TTA in matroska X-Git-Tag: 0.9.0-test0~9418 X-Git-Url: https://git.sesse.net/?a=commitdiff_plain;h=bb2c1996dd031b127567c2cdc62e1f07c0a03bbf;p=vlc * forwardport [17824] WAVPACK and TTA in matroska --- diff --git a/modules/demux/mkv.cpp b/modules/demux/mkv.cpp index 3ef16166c8..1f8c6a29ef 100644 --- a/modules/demux/mkv.cpp +++ b/modules/demux/mkv.cpp @@ -2383,6 +2383,20 @@ bool matroska_segment_c::Select( mtime_t i_start_time ) tracks[i_track]->fmt.p_extra = malloc( tracks[i_track]->i_extra_data ); memcpy( tracks[i_track]->fmt.p_extra, tracks[i_track]->p_extra_data, tracks[i_track]->i_extra_data ); } + else if( !strcmp( tracks[i_track]->psz_codec, "A_WAVPACK4" ) ) + { + tracks[i_track]->fmt.i_codec = VLC_FOURCC( 'W', 'V', 'P', 'K' ); + tracks[i_track]->fmt.i_extra = tracks[i_track]->i_extra_data; + tracks[i_track]->fmt.p_extra = malloc( tracks[i_track]->i_extra_data ); + memcpy( tracks[i_track]->fmt.p_extra, tracks[i_track]->p_extra_data, tracks[i_track]->i_extra_data ); + } + else if( !strcmp( tracks[i_track]->psz_codec, "A_TTA1" ) ) + { + tracks[i_track]->fmt.i_codec = VLC_FOURCC( 'T', 'T', 'A', '1' ); + tracks[i_track]->fmt.i_extra = tracks[i_track]->i_extra_data; + tracks[i_track]->fmt.p_extra = malloc( tracks[i_track]->i_extra_data ); + memcpy( tracks[i_track]->fmt.p_extra, tracks[i_track]->p_extra_data, tracks[i_track]->i_extra_data ); + } else if( !strcmp( tracks[i_track]->psz_codec, "A_PCM/INT/BIG" ) || !strcmp( tracks[i_track]->psz_codec, "A_PCM/INT/LIT" ) || !strcmp( tracks[i_track]->psz_codec, "A_PCM/FLOAT/IEEE" ) ) @@ -2397,18 +2411,6 @@ bool matroska_segment_c::Select( mtime_t i_start_time ) } tracks[i_track]->fmt.audio.i_blockalign = ( tracks[i_track]->fmt.audio.i_bitspersample + 7 ) / 8 * tracks[i_track]->fmt.audio.i_channels; } - else if( !strcmp( tracks[i_track]->psz_codec, "A_TTA1" ) ) - { - /* FIXME: support this codec */ - msg_Err( &sys.demuxer, "TTA not supported yet[%d, n=%d]", (int)i_track, tracks[i_track]->i_number ); - tracks[i_track]->fmt.i_codec = VLC_FOURCC( 'u', 'n', 'd', 'f' ); - } - else if( !strcmp( tracks[i_track]->psz_codec, "A_WAVPACK4" ) ) - { - /* FIXME: support this codec */ - msg_Err( &sys.demuxer, "Wavpack not supported yet[%d, n=%d]", (int)i_track, tracks[i_track]->i_number ); - tracks[i_track]->fmt.i_codec = VLC_FOURCC( 'u', 'n', 'd', 'f' ); - } else if( !strcmp( tracks[i_track]->psz_codec, "S_TEXT/UTF8" ) ) { tracks[i_track]->fmt.i_codec = VLC_FOURCC( 's', 'u', 'b', 't' );