- case AUDIO_ES:
- id->p_es->p_bitmapinfoheader = NULL;
- id->p_es->p_waveformatex =
- malloc( sizeof( WAVEFORMATEX ) + p_fmt->i_extra );
-#define p_wf ((WAVEFORMATEX*)id->p_es->p_waveformatex)
- p_wf->wFormatTag = WAVE_FORMAT_UNKNOWN;
- p_wf->nChannels = p_fmt->audio.i_channels;
- p_wf->nSamplesPerSec = p_fmt->audio.i_rate;
- p_wf->nAvgBytesPerSec= p_fmt->i_bitrate / 8;
- p_wf->nBlockAlign = p_fmt->audio.i_blockalign;
- p_wf->wBitsPerSample = 0;
- p_wf->cbSize = p_fmt->i_extra;
- if( p_fmt->i_extra > 0 )
- {
- memcpy( &p_wf[1],
- p_fmt->p_extra,
- p_fmt->i_extra );
- }
-#undef p_wf
- break;
- case VIDEO_ES:
- id->p_es->p_waveformatex = NULL;
- id->p_es->p_bitmapinfoheader = malloc( sizeof( BITMAPINFOHEADER ) + p_fmt->i_extra );
-#define p_bih ((BITMAPINFOHEADER*)id->p_es->p_bitmapinfoheader)
- p_bih->biSize = sizeof( BITMAPINFOHEADER ) + p_fmt->i_extra;
- p_bih->biWidth = p_fmt->video.i_width;
- p_bih->biHeight = p_fmt->video.i_height;
- p_bih->biPlanes = 0;
- p_bih->biBitCount = 0;
- p_bih->biCompression = 0;
- p_bih->biSizeImage = 0;
- p_bih->biXPelsPerMeter = 0;
- p_bih->biYPelsPerMeter = 0;
- p_bih->biClrUsed = 0;
- p_bih->biClrImportant = 0;
- if( p_fmt->i_extra > 0 )
- {
- memcpy( &p_bih[1],
- p_fmt->p_extra,
- p_fmt->i_extra );
- }
-#undef p_bih
- break;
- default:
- msg_Err( p_stream, "unknown es type" );
+ p_sys->p_input = vlc_object_find( p_stream, VLC_OBJECT_INPUT,
+ FIND_PARENT );
+ if( p_sys->p_input == NULL )
+ {
+ msg_Err( p_stream, "cannot find input" );