- case VLC_FOURCC( 'm', 'p','g', 'a' ):
- case VLC_FOURCC( 'a', '5','2', ' ' ):
- memcpy( p_stream->header.stream_type,
- "audio ",
- 8 );
- if( p_input->input_format.i_fourcc == VLC_FOURCC( 'm', 'p','g', 'a' ) )
- {
- memcpy( p_stream->header.sub_type, "55 ", 4 );
- }
- else if( p_input->input_format.i_fourcc == VLC_FOURCC( 'a', '5','2', ' ' ) )
- {
- memcpy( p_stream->header.sub_type, "2000", 4 );
- }
- SetDWLE( &p_stream->header.i_size, sizeof( ogg_stream_header_t ) - 1);
- SetQWLE( &p_stream->header.i_time_unit, 1000000 ); /* is it used ? */
- SetDWLE( &p_stream->header.i_default_len, 0 ); /* ??? */
- SetDWLE( &p_stream->header.i_buffer_size, 30*1024 );
- if( p_wf )
- {
- SetQWLE( &p_stream->header.i_samples_per_unit, p_wf->nSamplesPerSec );
- SetWLE( &p_stream->header.i_bits_per_sample, p_wf->wBitsPerSample );
- SetDWLE( &p_stream->header.header.audio.i_channels, p_wf->nChannels );
- SetDWLE( &p_stream->header.header.audio.i_block_align, p_wf->nBlockAlign );
- SetDWLE( &p_stream->header.header.audio.i_avgbytespersec, p_wf->nAvgBytesPerSec );
- }
- else
- {
- /* perhaps it's better to fail */
- SetQWLE( &p_stream->header.i_samples_per_unit, 44100 );
- SetWLE( &p_stream->header.i_bits_per_sample, 0 );
- SetDWLE( &p_stream->header.header.audio.i_channels, 2 );
- SetDWLE( &p_stream->header.header.audio.i_block_align, 0 );
- SetDWLE( &p_stream->header.header.audio.i_avgbytespersec, 0 );
- }
- break;
- case VLC_FOURCC( 'v', 'o', 'r', 'b' ):
- default:
- FREE( p_input->p_mux_data );
- return( VLC_EGENERIC );