• R/O
  • HTTP
  • SSH
  • HTTPS

コミット

タグ
未設定

よく使われているワード(クリックで追加)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

hardware/intel/intel-driver


コミットメタ情報

リビジョン8e0a1017c327cfad275ec4f7f4e56b6f95d52037 (tree)
日時2016-05-26 13:54:42
作者Zhao Yakui <yakui.zhao@inte...>
コミッターXiang, Haihao

ログメッセージ

Add the VAEncMacroblockMapBufferType buffer for encoding

Signed-off-by: Zhao Yakui <yakui.zhao@intel.com>
Reviewed-by: Sean V Kelley <sean.v.kelley@intel.com>

変更サマリ

差分

--- a/src/i965_drv_video.c
+++ b/src/i965_drv_video.c
@@ -2090,6 +2090,7 @@ i965_destroy_context(struct object_heap *heap, struct object_base *obj)
20902090 i965_release_buffer_store(&obj_context->codec_state.encode.packed_header_data_ext[i]);
20912091 free(obj_context->codec_state.encode.packed_header_data_ext);
20922092
2093+ i965_release_buffer_store(&obj_context->codec_state.encode.encmb_map);
20932094 } else {
20942095 assert(obj_context->codec_state.decode.num_slice_params <= obj_context->codec_state.decode.max_slice_params);
20952096 assert(obj_context->codec_state.decode.num_slice_datas <= obj_context->codec_state.decode.max_slice_datas);
@@ -2361,6 +2362,7 @@ i965_create_buffer_internal(VADriverContextP ctx,
23612362 case VAProcFilterParameterBufferType:
23622363 case VAHuffmanTableBufferType:
23632364 case VAProbabilityBufferType:
2365+ case VAEncMacroblockMapBufferType:
23642366 /* Ok */
23652367 break;
23662368
@@ -2421,6 +2423,7 @@ i965_create_buffer_internal(VADriverContextP ctx,
24212423 } else if (type == VASliceDataBufferType ||
24222424 type == VAImageBufferType ||
24232425 type == VAEncCodedBufferType ||
2426+ type == VAEncMacroblockMapBufferType ||
24242427 type == VAProbabilityBufferType) {
24252428
24262429 /* If the buffer is wrapped, the bo/buffer of buffer_store is bogus.
@@ -2799,6 +2802,7 @@ i965_BeginPicture(VADriverContextP ctx,
27992802 obj_context->codec_state.encode.num_packed_header_data_ext = 0;
28002803 obj_context->codec_state.encode.slice_index = 0;
28012804 obj_context->codec_state.encode.vps_sps_seq_index = 0;
2805+ i965_release_buffer_store(&obj_context->codec_state.encode.encmb_map);
28022806 } else {
28032807 obj_context->codec_state.decode.current_render_target = render_target;
28042808 i965_release_buffer_store(&obj_context->codec_state.decode.pic_param);
@@ -3064,6 +3068,7 @@ DEF_RENDER_ENCODE_SINGLE_BUFFER_FUNC(huffman_table, huffman_table)
30643068 /* extended buffer */
30653069 DEF_RENDER_ENCODE_SINGLE_BUFFER_FUNC(sequence_parameter_ext, seq_param_ext)
30663070 DEF_RENDER_ENCODE_SINGLE_BUFFER_FUNC(picture_parameter_ext, pic_param_ext)
3071+DEF_RENDER_ENCODE_SINGLE_BUFFER_FUNC(encmb_map, encmb_map)
30673072
30683073 #define DEF_RENDER_ENCODE_MULTI_BUFFER_FUNC(name, member) DEF_RENDER_MULTI_BUFFER_FUNC(encode, name, member)
30693074 // DEF_RENDER_ENCODE_MULTI_BUFFER_FUNC(slice_parameter, slice_params)
@@ -3335,6 +3340,10 @@ i965_encoder_render_picture(VADriverContextP ctx,
33353340 obj_buffer);
33363341 break;
33373342
3343+ case VAEncMacroblockMapBufferType:
3344+ vaStatus = I965_RENDER_ENCODE_BUFFER(encmb_map);
3345+ break;
3346+
33383347 default:
33393348 vaStatus = VA_STATUS_ERROR_UNSUPPORTED_BUFFERTYPE;
33403349 break;
--- a/src/i965_drv_video.h
+++ b/src/i965_drv_video.h
@@ -159,6 +159,7 @@ struct encode_state
159159 struct buffer_store *packed_header_param[5];
160160 struct buffer_store *packed_header_data[5];
161161 struct buffer_store **slice_params_ext;
162+ struct buffer_store *encmb_map;
162163 int max_slice_params_ext;
163164 int num_slice_params_ext;
164165