On Fri, 2016-08-19 at 10:23 +0800, Zhao Yakui wrote: > On 08/15/2016 10:46 AM, Xiang, Haihao wrote: > > > > Set encoder_context->get_status to this local function when > > initializing, > > so that we can fetch VP9 encoding status from the underlying > > context. > > > > This patch changes the input parameters and removes redundant > > assigns > > This looks good to me. > > Add: Reviewed-by: Zhao Yakui <yakui.z...@intel.com>
lgtm. applied. Thanks, Sean > > Thanks > Yakui > > > > > > Signed-off-by: Xiang, Haihao<haihao.xi...@intel.com> > > --- > > src/gen9_vp9_encapi.h | 9 --------- > > src/gen9_vp9_encoder.c | 53 ++++++++++++++++++++++--------------- > > ------------- > > src/i965_drv_video.c | 14 +------------ > > 3 files changed, 24 insertions(+), 52 deletions(-) > > > > diff --git a/src/gen9_vp9_encapi.h b/src/gen9_vp9_encapi.h > > index 0100a06..99963fc 100644 > > --- a/src/gen9_vp9_encapi.h > > +++ b/src/gen9_vp9_encapi.h > > @@ -40,13 +40,4 @@ gen9_vp9_vme_context_init(VADriverContextP ctx, > > struct intel_encoder_context *en > > extern Bool > > gen9_vp9_pak_context_init(VADriverContextP ctx, struct > > intel_encoder_context *encoder_context); > > > > -/* buffer points to the start address of coded_buffer. It is also > > - * interpreted as i965_coded_buffer_segment. > > - */ > > -extern VAStatus > > -gen9_vp9_get_coded_status(VADriverContextP ctx, > > - char *buffer, > > - struct hw_context *hw_context); > > - > > - > > #endif // _INTE_VP9_ENC_API_H_ > > diff --git a/src/gen9_vp9_encoder.c b/src/gen9_vp9_encoder.c > > index eecd206..edfbda6 100644 > > --- a/src/gen9_vp9_encoder.c > > +++ b/src/gen9_vp9_encoder.c > > @@ -5790,6 +5790,7 @@ > > gen9_vp9_pak_pipeline_prepare(VADriverContextP ctx, > > coded_buffer_segment = (struct i965_coded_buffer_segment > > *)bo->virtual; > > coded_buffer_segment->mapped = 0; > > coded_buffer_segment->codec = encoder_context->codec; > > + coded_buffer_segment->status_support = 1; > > dri_bo_unmap(bo); > > > > return VA_STATUS_SUCCESS; > > @@ -6008,58 +6009,50 @@ gen9_vp9_vme_context_init(VADriverContextP > > ctx, struct intel_encoder_context *en > > return true; > > } > > > > -Bool > > -gen9_vp9_pak_context_init(VADriverContextP ctx, struct > > intel_encoder_context *encoder_context) > > -{ > > - /* VME& PAK share the same context */ > > - struct gen9_encoder_context_vp9 *pak_context = > > encoder_context->vme_context; > > - > > - if (!pak_context) > > - return false; > > - > > - encoder_context->mfc_context = pak_context; > > - encoder_context->mfc_context_destroy = > > gen9_vp9_pak_context_destroy; > > - encoder_context->mfc_pipeline = gen9_vp9_pak_pipeline; > > - encoder_context->mfc_brc_prepare = gen9_vp9_pak_brc_prepare; > > - > > - return true; > > -} > > - > > -VAStatus > > +static VAStatus > > gen9_vp9_get_coded_status(VADriverContextP ctx, > > - char *buffer, > > - struct hw_context *hw_context) > > + struct intel_encoder_context > > *encoder_context, > > + struct i965_coded_buffer_segment > > *coded_buf_seg) > > { > > - struct intel_encoder_context *encoder_context = > > - (struct intel_encoder_context *)hw_context; > > struct gen9_vp9_state *vp9_state = NULL; > > struct vp9_encode_status_buffer_internal *status_buffer; > > - struct i965_coded_buffer_segment *coded_buf_seg; > > unsigned int *buf_ptr; > > > > - if (!encoder_context || !buffer) > > + if (!encoder_context || !coded_buf_seg) > > return VA_STATUS_ERROR_INVALID_BUFFER; > > > > vp9_state = (struct gen9_vp9_state *)(encoder_context- > > >enc_priv_state); > > - coded_buf_seg = (struct i965_coded_buffer_segment *) buffer; > > > > if (!vp9_state) > > return VA_STATUS_ERROR_INVALID_BUFFER; > > > > status_buffer =&vp9_state->status_buffer; > > > > - buf_ptr = (unsigned int *)(buffer + status_buffer- > > >bs_byte_count_offset); > > - coded_buf_seg->base.buf = buffer + > > I965_CODEDBUFFER_HEADER_SIZE; > > - coded_buf_seg->base.next = NULL; > > + buf_ptr = (unsigned int *)((char *)coded_buf_seg + > > status_buffer->bs_byte_count_offset); > > > > /* the stream size is writen into the bs_byte_count_offset > > address of buffer */ > > coded_buf_seg->base.size = *buf_ptr; > > > > - coded_buf_seg->mapped = 1; > > - > > /* One VACodedBufferSegment for VP9 will be added later. > > * It will be linked to the next element of coded_buf_seg- > > >base.next > > */ > > > > return VA_STATUS_SUCCESS; > > } > > + > > +Bool > > +gen9_vp9_pak_context_init(VADriverContextP ctx, struct > > intel_encoder_context *encoder_context) > > +{ > > + /* VME& PAK share the same context */ > > + struct gen9_encoder_context_vp9 *pak_context = > > encoder_context->vme_context; > > + > > + if (!pak_context) > > + return false; > > + > > + encoder_context->mfc_context = pak_context; > > + encoder_context->mfc_context_destroy = > > gen9_vp9_pak_context_destroy; > > + encoder_context->mfc_pipeline = gen9_vp9_pak_pipeline; > > + encoder_context->mfc_brc_prepare = gen9_vp9_pak_brc_prepare; > > + encoder_context->get_status = gen9_vp9_get_coded_status; > > + return true; > > +} > > diff --git a/src/i965_drv_video.c b/src/i965_drv_video.c > > index 9839584..05743ef 100644 > > --- a/src/i965_drv_video.c > > +++ b/src/i965_drv_video.c > > @@ -2644,16 +2644,7 @@ i965_MapBuffer(VADriverContextP ctx, > > coded_buffer_segment->status_support) { > > vaStatus = obj_context->hw_context- > > >get_status(ctx, obj_context->hw_context, coded_buffer_segment); > > } else { > > - > > - if (coded_buffer_segment->codec == CODEC_VP9) > > { > > - > > - if (obj_context == NULL) > > - return VA_STATUS_ERROR_ENCODING_ERROR; > > - > > - gen9_vp9_get_coded_status(ctx, (char > > *)coded_buffer_segment, > > - obj_context- > > >hw_context); > > - } > > - else if (coded_buffer_segment->codec == > > CODEC_H264 || > > + if (coded_buffer_segment->codec == CODEC_H264 > > || > > coded_buffer_segment->codec == > > CODEC_H264_MVC) { > > delimiter0 = H264_DELIMITER0; > > delimiter1 = H264_DELIMITER1; > > @@ -2680,9 +2671,6 @@ i965_MapBuffer(VADriverContextP ctx, > > ASSERT_RET(0, > > VA_STATUS_ERROR_UNSUPPORTED_PROFILE); > > } > > > > - if(coded_buffer_segment->codec == CODEC_VP9) { > > - /* it is already handled */ > > - } else > > if(coded_buffer_segment->codec == CODEC_JPEG) > > { > > for(i = 0; i< obj_buffer->size_element > > - header_offset - 1 - 0x1000; i++) { > > if( (buffer[i] == 0xFF)&& (buffer[i > > + 1] == 0xD9)) { > > _______________________________________________ > Libva mailing list > Libva@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/libva
signature.asc
Description: This is a digitally signed message part
_______________________________________________ Libva mailing list Libva@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libva