Changeset 24f83b8b4ff5e22df00a045fcee42c0a16ae1384
- Timestamp:
- 27/08/04 22:44:39
(4 years ago)
- Author:
- Gildas Bazin <gbazin@videolan.org>
- git-committer:
- Gildas Bazin <gbazin@videolan.org> 1093639479 +0000
- git-parent:
[1d08e9ca23cdc16704c7d7744ae3e153e0414694]
- git-author:
- Gildas Bazin <gbazin@videolan.org> 1093639479 +0000
- Message:
* modules/demux/asf/asf.c: ignore the ES extra data for mpeg audio.
* modules/mux/asf.c: bring the tracks back to a 0 based offset.
-
Files:
-
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
| r1954049 |
r24f83b8 |
|
| 648 | 648 | p_sp->i_type_specific_data_length >= sizeof( WAVEFORMATEX ) - 2 ) |
|---|
| 649 | 649 | { |
|---|
| 650 | | es_format_t fmt; |
|---|
| 651 | | uint8_t *p_data = p_sp->p_type_specific_data; |
|---|
| | 650 | es_format_t fmt; |
|---|
| | 651 | uint8_t *p_data = p_sp->p_type_specific_data; |
|---|
| | 652 | int i_format; |
|---|
| 652 | 653 | |
|---|
| 653 | 654 | es_format_Init( &fmt, AUDIO_ES, 0 ); |
|---|
| 654 | | wf_tag_to_fourcc( GetWLE( &p_data[0] ), &fmt.i_codec, NULL ); |
|---|
| | 655 | i_format = GetWLE( &p_data[0] ); |
|---|
| | 656 | wf_tag_to_fourcc( i_format, &fmt.i_codec, NULL ); |
|---|
| 655 | 657 | fmt.audio.i_channels = GetWLE( &p_data[2] ); |
|---|
| 656 | 658 | fmt.audio.i_rate = GetDWLE( &p_data[4] ); |
|---|
| … | … | |
| 659 | 661 | fmt.audio.i_bitspersample = GetWLE( &p_data[14] ); |
|---|
| 660 | 662 | |
|---|
| 661 | | if( p_sp->i_type_specific_data_length > sizeof( WAVEFORMATEX ) ) |
|---|
| | 663 | if( p_sp->i_type_specific_data_length > sizeof( WAVEFORMATEX ) && |
|---|
| | 664 | i_format != WAVE_FORMAT_MPEGLAYER3 && |
|---|
| | 665 | i_format != WAVE_FORMAT_MPEG ) |
|---|
| 662 | 666 | { |
|---|
| 663 | 667 | fmt.i_extra = __MIN( GetWLE( &p_data[16] ), |
|---|
| 664 | | p_sp->i_type_specific_data_length - sizeof( WAVEFORMATEX ) ); |
|---|
| | 668 | p_sp->i_type_specific_data_length - |
|---|
| | 669 | sizeof( WAVEFORMATEX ) ); |
|---|
| 665 | 670 | fmt.p_extra = malloc( fmt.i_extra ); |
|---|
| 666 | | memcpy( fmt.p_extra, &p_data[sizeof( WAVEFORMATEX )], fmt.i_extra ); |
|---|
| | 671 | memcpy( fmt.p_extra, &p_data[sizeof( WAVEFORMATEX )], |
|---|
| | 672 | fmt.i_extra ); |
|---|
| 667 | 673 | } |
|---|
| 668 | 674 | |
|---|
| r1d08e9c |
r24f83b8 |
|
| 34 | 34 | typedef GUID guid_t; |
|---|
| 35 | 35 | |
|---|
| | 36 | #define MAX_ASF_TRACKS 128 |
|---|
| | 37 | |
|---|
| 36 | 38 | /***************************************************************************** |
|---|
| 37 | 39 | * Module descriptor |
|---|
| … | … | |
| 117 | 119 | |
|---|
| 118 | 120 | int i_track; |
|---|
| 119 | | asf_track_t track[128]; |
|---|
| | 121 | asf_track_t track[MAX_ASF_TRACKS]; |
|---|
| 120 | 122 | |
|---|
| 121 | 123 | vlc_bool_t b_write_header; |
|---|
| … | … | |
| 195 | 197 | |
|---|
| 196 | 198 | p_sys->b_write_header = VLC_TRUE; |
|---|
| 197 | | p_sys->i_track = 1; |
|---|
| | 199 | p_sys->i_track = 0; |
|---|
| 198 | 200 | p_sys->i_packet_size = 4096; |
|---|
| 199 | 201 | p_sys->i_packet_count= 0; |
|---|
| … | … | |
| 263 | 265 | } |
|---|
| 264 | 266 | |
|---|
| 265 | | for( i = 1; i < p_sys->i_track; i++ ) |
|---|
| | 267 | for( i = 0; i < p_sys->i_track; i++ ) |
|---|
| 266 | 268 | { |
|---|
| 267 | 269 | free( p_sys->track[i].p_extra ); |
|---|
| … | … | |
| 315 | 317 | |
|---|
| 316 | 318 | msg_Dbg( p_mux, "adding input" ); |
|---|
| 317 | | if( p_sys->i_track > 127 ) |
|---|
| | 319 | if( p_sys->i_track >= MAX_ASF_TRACKS ) |
|---|
| 318 | 320 | { |
|---|
| 319 | 321 | msg_Dbg( p_mux, "cannot add this track (too much track)" ); |
|---|
| … | … | |
| 786 | 788 | i_size = 30 + 104 + 46; |
|---|
| 787 | 789 | i_ci_size = 44; |
|---|
| 788 | | for( i = 1; i < p_sys->i_track; i++ ) |
|---|
| | 790 | for( i = 0; i < p_sys->i_track; i++ ) |
|---|
| 789 | 791 | { |
|---|
| 790 | 792 | i_size += 78 + p_sys->track[i].i_extra; |
|---|
| … | … | |
| 827 | 829 | bo_add_guid ( &bo, &asf_object_header_guid ); |
|---|
| 828 | 830 | bo_addle_u64( &bo, i_size ); |
|---|
| 829 | | bo_addle_u32( &bo, 2 + p_sys->i_track - 1 ); |
|---|
| | 831 | bo_addle_u32( &bo, 2 + p_sys->i_track ); |
|---|
| 830 | 832 | bo_add_u8 ( &bo, 1 ); |
|---|
| 831 | 833 | bo_add_u8 ( &bo, 2 ); |
|---|
| … | … | |
| 875 | 877 | |
|---|
| 876 | 878 | /* stream properties */ |
|---|
| 877 | | for( i = 1; i < p_sys->i_track; i++ ) |
|---|
| | 879 | for( i = 0; i < p_sys->i_track; i++ ) |
|---|
| 878 | 880 | { |
|---|
| 879 | 881 | tk = &p_sys->track[i]; |
|---|
| … | … | |
| 903 | 905 | bo_addle_u64( &bo, i_ci_size ); |
|---|
| 904 | 906 | bo_add_guid ( &bo, &asf_object_codec_comment_reserved_guid ); |
|---|
| 905 | | bo_addle_u32( &bo, p_sys->i_track - 1 ); |
|---|
| 906 | | for( i = 1; i < p_sys->i_track; i++ ) |
|---|
| | 907 | bo_addle_u32( &bo, p_sys->i_track ); |
|---|
| | 908 | for( i = 0; i < p_sys->i_track; i++ ) |
|---|
| 907 | 909 | { |
|---|
| 908 | 910 | tk = &p_sys->track[i]; |
|---|