[FFmpeg-devel] [PATCH][VAAPI][2/6] Add common data structures and helpers (take 3)

Gwenole Beauchesne gbeauchesne
Fri Mar 6 11:20:25 CET 2009


New patch attached, sync'ed to current patch queue and SVN.

>> The buf/buf_size args to AVHWAccel::start_frame() are particularly useful 
>> for optimization purposes. Whenever possible, slice data chunks are 
>> directly copied to mapped HW memory. Otherwise, they are accumulated to a 
>> temporary buffer that will be copied in end_frame().
>> - vaapi_slice_data_prepare() [usually called in ::start_frame()]
>> - vaapi_slice_data_append()  [usually called in ::decode_slice()]
>> - vaapi_slice_data_commit()  [usually called in ::end_frame()]
>> The same happens for slice control blocks. If we can predetermine the 
>> number of slices, we can map the whole slice params buffer from HW memory 
>> space. Otherwise, they are accumulated to a temporary buffer that is also 
>> copied in end_frame().
>> - vaapi_slice_params_prepare() [usually called in ::start_frame()]
>> - vaapi_slice_params_next()    [usually called in ::decode_slice()]
>> - vaapi_slice_params_commit()  [usually called in ::end_frame()]
>> Other helpers include:
>> - vaapi_common_end_frame(): common commit code to the HW accelerator
>> - vaapi_render_picture(): doing the actual rendering
> - ff_vaapi_destroy_picture(): implements AVHWAccel::close() for 
> hwaccel_data_private destruction.

Removed since hwaccel_data_private allocation/destruction is controlled by 
{alloc,free}_frame_buffer() only.

Renamed ff_get_vaapi_render_state() to ff_get_vaapi_render_state_private() 
for consistency and updated the former to use AVFrame.data[3].

-------------- next part --------------
A non-text attachment was scrubbed...
Name: ffmpeg.hwaccel.vaapi.common.3.patch
Type: text/x-diff
Size: 23583 bytes
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20090306/9cc48351/attachment.patch>

More information about the ffmpeg-devel mailing list