- WAVEFORMATEX *p_wf =
- (WAVEFORMATEX*)p_input->input_format.p_format;
-
- p_stream->i_cat = AUDIO_ES;
- p_stream->fcc[0] = '0' + p_mux->i_streams / 10;
- p_stream->fcc[1] = '0' + p_mux->i_streams % 10;
- p_stream->fcc[2] = 'w';
- p_stream->fcc[3] = 'b';
-
- p_stream->p_bih = NULL;
- p_stream->p_wf = malloc( sizeof( WAVEFORMATEX ) + p_wf->cbSize );
- memcpy( p_stream->p_wf,
- p_wf,
- sizeof( WAVEFORMATEX ) + p_wf->cbSize);
+ case VLC_FOURCC( 'a', '5', '2', ' ' ):
+ p_wf->wFormatTag = WAVE_FORMAT_A52;
+ break;
+ case VLC_FOURCC( 'm', 'p', 'g', 'a' ):
+ p_wf->wFormatTag = WAVE_FORMAT_MPEGLAYER3;
+ break;
+ case VLC_FOURCC( 'w', 'm', 'a', '1' ):
+ p_wf->wFormatTag = WAVE_FORMAT_WMA1;
+ break;
+ case VLC_FOURCC( 'w', 'm', 'a', ' ' ):
+ case VLC_FOURCC( 'w', 'm', 'a', '2' ):
+ p_wf->wFormatTag = WAVE_FORMAT_WMA2;
+ break;
+ case VLC_FOURCC( 'w', 'm', 'a', 'p' ):
+ p_wf->wFormatTag = WAVE_FORMAT_WMAP;
+ break;
+ case VLC_FOURCC( 'w', 'm', 'a', 'l' ):
+ p_wf->wFormatTag = WAVE_FORMAT_WMAL;
+ break;
+ /* raw codec */
+ case VLC_FOURCC( 'u', '8', ' ', ' ' ):
+ p_wf->wFormatTag = WAVE_FORMAT_PCM;
+ p_wf->nBlockAlign= p_wf->nChannels;
+ p_wf->wBitsPerSample = 8;
+ break;
+ case VLC_FOURCC( 's', '1', '6', 'l' ):
+ p_wf->wFormatTag = WAVE_FORMAT_PCM;
+ p_wf->nBlockAlign= 2 * p_wf->nChannels;
+ p_wf->wBitsPerSample = 16;
+ break;
+ case VLC_FOURCC( 's', '2', '4', 'l' ):
+ p_wf->wFormatTag = WAVE_FORMAT_PCM;
+ p_wf->nBlockAlign= 3 * p_wf->nChannels;
+ p_wf->wBitsPerSample = 24;
+ break;
+ case VLC_FOURCC( 's', '3', '2', 'l' ):
+ p_wf->wFormatTag = WAVE_FORMAT_PCM;
+ p_wf->nBlockAlign= 4 * p_wf->nChannels;
+ p_wf->wBitsPerSample = 32;
+ break;
+ default:
+ return VLC_EGENERIC;