+ case VLC_FOURCC( 'I', '4', '2', '0' ):
+ p_pack->output_format.i_fourcc = VLC_FOURCC( 'I', '4', '2', '0' );
+ p_pack->output_format.i_cat = VIDEO_ES;
+ break;
+ case VLC_FOURCC( 'I', '4', '2', '2' ):
+ p_pack->output_format.i_fourcc = VLC_FOURCC( 'I', '4', '2', '2' );
+ p_pack->output_format.i_cat = VIDEO_ES;
+ break;
+ case VLC_FOURCC( 'R', 'V', '1', '5' ):
+ p_pack->output_format.i_fourcc = VLC_FOURCC( 'R', 'V', '1', '5' );
+ p_pack->output_format.i_cat = VIDEO_ES;
+ break;
+ case VLC_FOURCC( 'R', 'V', '1', '6' ):
+ p_pack->output_format.i_fourcc = VLC_FOURCC( 'R', 'V', '1', '6' );
+ p_pack->output_format.i_cat = VIDEO_ES;
+ break;
+ case VLC_FOURCC( 'R', 'V', '2', '4' ):
+ p_pack->output_format.i_fourcc = VLC_FOURCC( 'R', 'V', '2', '4' );
+ p_pack->output_format.i_cat = VIDEO_ES;
+ break;
+ case VLC_FOURCC( 'R', 'V', '3', '2' ):
+ p_pack->output_format.i_fourcc = VLC_FOURCC( 'R', 'V', '3', '2' );
+ p_pack->output_format.i_cat = VIDEO_ES;
+ break;
+ case VLC_FOURCC( 'G', 'R', 'E', 'Y' ):
+ p_pack->output_format.i_fourcc = VLC_FOURCC( 'G', 'R', 'E', 'Y' );
+ p_pack->output_format.i_cat = VIDEO_ES;
+ break;
+
+ /* audio */
+ case VLC_FOURCC( 'm', 'p', 'g', 'a' ):
+ p_pack->output_format.i_fourcc = VLC_FOURCC( 'm', 'p', 'g', 'a' );
+ p_pack->output_format.i_cat = AUDIO_ES;
+ break;
+ case VLC_FOURCC( 'w', 'm', 'a', '1' ):
+ p_pack->output_format.i_fourcc = VLC_FOURCC( 'w', 'm', 'a', '1' );
+ p_pack->output_format.i_cat = AUDIO_ES;
+ break;
+ case VLC_FOURCC( 'w', 'm', 'a', '2' ):
+ p_pack->output_format.i_fourcc = VLC_FOURCC( 'w', 'm', 'a', '2' );
+ p_pack->output_format.i_cat = AUDIO_ES;
+ break;
+ case VLC_FOURCC( 'a', 'r', 'a', 'w' ):
+ {
+ WAVEFORMATEX *p_wf = (WAVEFORMATEX*)p_pack->p_fifo->p_waveformatex;
+ if( p_wf )
+ {
+ switch( ( p_wf->wBitsPerSample + 7 ) / 8 )
+ {
+ case 1:
+ p_pack->output_format.i_fourcc = VLC_FOURCC('u','8',' ',' ');
+ break;
+ case 2:
+ p_pack->output_format.i_fourcc = VLC_FOURCC('s','1','6','l');
+ break;
+ case 3:
+ p_pack->output_format.i_fourcc = VLC_FOURCC('s','2','4','l');
+ break;
+ case 4:
+ p_pack->output_format.i_fourcc = VLC_FOURCC('s','3','2','l');
+ break;
+ default:
+ msg_Err( p_pack->p_fifo, "unknown raw audio sample size !!" );
+ return VLC_EGENERIC;
+ }
+ }
+ else
+ {
+ msg_Err( p_pack->p_fifo, "unknown raw audio sample size !!" );
+ return VLC_EGENERIC;
+ }
+ p_pack->output_format.i_cat = AUDIO_ES;
+ break;
+ }
+ case VLC_FOURCC( 't', 'w', 'o', 's' ):
+ {
+ WAVEFORMATEX *p_wf = (WAVEFORMATEX*)p_pack->p_fifo->p_waveformatex;
+ if( p_wf )
+ {
+ switch( ( p_wf->wBitsPerSample + 7 ) / 8 )
+ {
+ case 1:
+ p_pack->output_format.i_fourcc = VLC_FOURCC('s','8',' ',' ');
+ break;
+ case 2:
+ p_pack->output_format.i_fourcc = VLC_FOURCC('s','1','6','b');
+ break;
+ case 3:
+ p_pack->output_format.i_fourcc = VLC_FOURCC('s','2','4','b');
+ break;
+ case 4:
+ p_pack->output_format.i_fourcc = VLC_FOURCC('s','3','2','b');
+ break;
+ default:
+ msg_Err( p_pack->p_fifo, "unknown raw audio sample size !!" );
+ return VLC_EGENERIC;
+ }
+ }
+ else
+ {
+ msg_Err( p_pack->p_fifo, "unknown raw audio sample size !!" );
+ return VLC_EGENERIC;
+ }
+ p_pack->output_format.i_cat = AUDIO_ES;
+ break;
+ }
+ case VLC_FOURCC( 's', 'o', 'w', 't' ):
+ {
+ WAVEFORMATEX *p_wf = (WAVEFORMATEX*)p_pack->p_fifo->p_waveformatex;
+ if( p_wf )
+ {
+ switch( ( p_wf->wBitsPerSample + 7 ) / 8 )
+ {
+ case 1:
+ p_pack->output_format.i_fourcc = VLC_FOURCC('s','8',' ',' ');
+ break;
+ case 2:
+ p_pack->output_format.i_fourcc = VLC_FOURCC('s','1','6','l');
+ break;
+ case 3:
+ p_pack->output_format.i_fourcc = VLC_FOURCC('s','2','4','l');
+ break;
+ case 4:
+ p_pack->output_format.i_fourcc = VLC_FOURCC('s','3','2','l');
+ break;
+ default:
+ msg_Err( p_pack->p_fifo, "unknown raw audio sample size !!" );
+ return VLC_EGENERIC;
+ }
+ }
+ else
+ {
+ msg_Err( p_pack->p_fifo, "unknown raw audio sample size !!" );
+ return VLC_EGENERIC;
+ }
+ p_pack->output_format.i_cat = AUDIO_ES;