[Libva] [Libva-intel-driver][PATCH 03/18] Add some new internal variables for a new sequence

Xiang, Haihao haihao.xiang at intel.com
Thu Sep 8 08:33:50 UTC 2016


On Wed, 2016-09-07 at 12:20 +0800, Zhao Yakui wrote:
> 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.

OK, I will use frame_width_in_pixel/frame_height_in_pixel instead of 
frame_width_in_mbs/frame_height_in_mbs and
make WIDTH_IN_MACROBLOCKS()/HEIGHT_IN_MACROBLOCKS() global. 

> 
> > 
> > Thanks
> > Haihao
> > 
> > > 
> > > Thanks
> > >      Yakui
> > > > +
> > > >        void *vme_context;
> > > >        void *mfc_context;
> > > >        void *enc_priv_state;
> 


More information about the Libva mailing list