radeon/vcn: add decode message create
authorLeo Liu <leo.liu@amd.com>
Tue, 2 May 2017 20:20:46 +0000 (16:20 -0400)
committerLeo Liu <leo.liu@amd.com>
Thu, 25 May 2017 15:40:20 +0000 (11:40 -0400)
Signed-off-by: Leo Liu <leo.liu@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
src/gallium/drivers/radeon/radeon_vcn_dec.c

index 6258005058cf528da1fe593b285d0c2f0d1ada27..a61620ddba66a6283b1d154ba781b928ad2a4159 100644 (file)
@@ -87,7 +87,27 @@ static void radeon_dec_destroy_associated_data(void *data)
 
 static void rvcn_dec_message_create(struct radeon_decoder *dec)
 {
-       /* TODO */
+       rvcn_dec_message_header_t *header = dec->msg;
+       rvcn_dec_message_create_t *create = dec->msg + sizeof(rvcn_dec_message_header_t);
+       unsigned sizes = sizeof(rvcn_dec_message_header_t) + sizeof(rvcn_dec_message_create_t);
+
+       memset(dec->msg, 0, sizes);
+       header->header_size = sizeof(rvcn_dec_message_header_t);
+       header->total_size = sizes;
+       header->num_buffers = 1;
+       header->msg_type = RDECODE_MSG_CREATE;
+       header->stream_handle = dec->stream_handle;
+       header->status_report_feedback_number = 0;
+
+       header->index[0].message_id = RDECODE_MESSAGE_CREATE;
+       header->index[0].offset = sizeof(rvcn_dec_message_header_t);
+       header->index[0].size = sizeof(rvcn_dec_message_create_t);
+       header->index[0].filled = 0;
+
+       create->stream_type = dec->stream_type;
+       create->session_flags = 0;
+       create->width_in_samples = dec->base.width;
+       create->height_in_samples = dec->base.height;
 }
 
 static struct pb_buffer *rvcn_dec_message_decode(struct radeon_decoder *dec)