IMediaObject *p_dmo;\r
\r
int i_min_output;\r
+ uint8_t *p_buffer;\r
\r
audio_date_t end_date;\r
};\r
msg_Dbg( p_dec, "GetOutputSizeInfo(): bytes %i, align %i",\r
i_size, i_align );\r
p_sys->i_min_output = i_size;\r
+ p_sys->p_buffer = malloc( i_size );\r
+ if( !p_sys->p_buffer ) goto error;\r
}\r
}\r
\r
\r
FreeLibrary( p_sys->hmsdmo_dll );\r
\r
+ if( p_sys->p_buffer ) free( p_sys->p_buffer );\r
free( p_sys );\r
}\r
\r
}\r
\r
/* Get output from the DMO */\r
- block_out.p_buffer = malloc( p_sys->i_min_output );\r
+ block_out.p_buffer = p_sys->p_buffer;;\r
block_out.i_buffer = 0;\r
\r
p_out = CMediaBufferCreate( &block_out, p_sys->i_min_output, VLC_FALSE );\r
#endif\r
\r
p_out->vt->Release( (IUnknown *)p_out );\r
- free( block_out.p_buffer );\r
return NULL;\r
}\r
\r
{\r
msg_Dbg( p_dec, "GetBufferAndLength(): failed" );\r
p_out->vt->Release( (IUnknown *)p_out );\r
- free( block_out.p_buffer );\r
return NULL;\r
}\r
\r
msg_Dbg( p_dec, "ProcessOutput(): no output (i_buffer_out == 0)" );\r
#endif\r
p_out->vt->Release( (IUnknown *)p_out );\r
- free( block_out.p_buffer );\r
return NULL;\r
}\r
\r
aout_DateIncrement( &p_sys->end_date, 1 );\r
\r
p_out->vt->Release( (IUnknown *)p_out );\r
- free( block_out.p_buffer );\r
\r
return p_pic;\r
}\r
aout_DateIncrement( &p_sys->end_date, i_samples );\r
\r
p_out->vt->Release( (IUnknown *)p_out );\r
- free( block_out.p_buffer );\r
\r
return p_aout_buffer;\r
}\r
i_width = p_pic->p[i_plane].i_visible_pitch;\r
i_dst_stride = p_pic->p[i_plane].i_pitch;\r
\r
- p_src += i_width;\r
-\r
for( i_line = 0; i_line < p_pic->p[i_plane].i_lines; i_line++ )\r
{\r
p_dec->p_vlc->pf_memcpy( p_dst, p_src, i_width );\r