[Libva] [Libva-intel-driver][PATCH 03/18] Add some new internal variables for a new sequence
Zhao Yakui
yakui.zhao at intel.com
Wed Sep 7 04:20:26 UTC 2016
On 09/07/2016 11:03 AM, Xiang, Haihao wrote:
>
>> On 09/06/2016 11:41 PM, Xiang, Haihao wrote:
>>> Currently these variables are used only for H.264 encoding
>>>
>>> Signed-off-by: Xiang, Haihao<haihao.xiang at intel.com>
>>> ---
>>> src/i965_encoder.c | 7 +++++++
>>> src/i965_encoder.h | 4 ++++
>>> 2 files changed, 11 insertions(+)
>>>
>>> diff --git a/src/i965_encoder.c b/src/i965_encoder.c
>>> index e7e1554..d045881 100644
>>> --- a/src/i965_encoder.c
>>> +++ b/src/i965_encoder.c
>>> @@ -376,6 +376,12 @@
>>> intel_encoder_check_avc_parameter(VADriverContextP ctx,
>>> */
>>> encoder_context->is_new_sequence = (pic_param-
>>>> pic_fields.bits.idr_pic_flag&& seq_param);
>>>
>>> + if (encoder_context->is_new_sequence) {
>>> + encoder_context->num_frames_in_sequence = 0;
>>> + encoder_context->frame_width_in_mbs = seq_param-
>>>> picture_width_in_mbs;
>>> + encoder_context->frame_height_in_mbs = seq_param-
>>>> picture_height_in_mbs;
>>> + }
>>> +
>>> return VA_STATUS_SUCCESS;
>>>
>>> error:
>>> @@ -775,6 +781,7 @@ intel_encoder_end_picture(VADriverContextP ctx,
>>> }
>>>
>>> encoder_context->mfc_pipeline(ctx, profile, encode_state,
>>> encoder_context);
>>> + encoder_context->num_frames_in_sequence++;
>>>
>>> return VA_STATUS_SUCCESS;
>>> }
>>> diff --git a/src/i965_encoder.h b/src/i965_encoder.h
>>> index bec83e3..de20ef9 100644
>>> --- a/src/i965_encoder.h
>>> +++ b/src/i965_encoder.h
>>> @@ -59,6 +59,10 @@ struct intel_encoder_context
>>> unsigned int rate_control_mode;
>>> unsigned int quality_level;
>>> unsigned int quality_range;
>>> + unsigned int num_frames_in_sequence;
>>> + unsigned int frame_width_in_mbs;
>>> + unsigned int frame_height_in_mbs;
>>
>> Can we rename the frame_width_in_mbs/frame_height_in_mbs to
>> frame_width_in_pixel/frame_height_in_pixel?
>> The frame_width_in_mbs/frame_height_in_mbs is specific to some codec.
>
> frame_width_in_mbs/frame_height_in_mbs
> and frame_width_in_pixel/frame_height_in_pixel are different.
> We can add the two new fields if they are needed in the future.
Yes. They are the different meaning.
For the H264 they should be frame_width_in_mbs/frame_height_in_mbs.
But for the other codec they are not used.
What I mean is that the frame_width_in_pixel is added for
encoder_context and then the specific codec will determine how to
intercept it.
>
> Thanks
> Haihao
>
>>
>> Thanks
>> Yakui
>>> +
>>> void *vme_context;
>>> void *mfc_context;
>>> void *enc_priv_state;
More information about the Libva
mailing list