On Fri, Feb 15, 2019 at 9:06 AM Ezequiel Garcia <ezequiel@xxxxxxxxxxxxx> wrote: > > On Wed, 2019-02-13 at 21:35 -0500, Nicolas Dufresne wrote: > > Le mer. 13 févr. 2019 à 16:23, Ezequiel Garcia > > <ezequiel@xxxxxxxxxxxxx> a écrit : > > > Hi, > > > > > > On Wed, 2019-02-13 at 18:15 -0300, Ezequiel Garcia wrote: [snip] > > > > + __u8 version; > > > > + > > > > + /* Populated also if not a key frame */ > > > > + __u16 width; > > > > + __u16 height; > > > > + __u8 horizontal_scale; > > > > + __u8 vertical_scale; > > > > + > > > > + struct v4l2_vp8_segment_header segment_header; > > > > + struct v4l2_vp8_loopfilter_header lf_header; > > > > + struct v4l2_vp8_quantization_header quant_header; > > > > + struct v4l2_vp8_entropy_header entropy_header; > > > > + > > > > + __u8 sign_bias_golden; > > > > + __u8 sign_bias_alternate; > > > > + > > > > + __u8 prob_skip_false; > > > > + __u8 prob_intra; > > > > + __u8 prob_last; > > > > + __u8 prob_gf; > > > > + > > > > + __u32 first_part_size; > > > > + __u32 first_part_offset; // this needed? it's always 3 + 7 * s->keyframe; > > > > > > As the comment says, it seems the first partition offset is always > > > 3 + 7 * s->keyframe. Or am I wrong? > > > > I can't find it in VA API or GStreamer parsers. Ideally we need to > > look in the spec, if it's calculated it does not belong here. > > > > Looking into the spec, I don't think it's part of it. > > > https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/blob/master/gst-libs/gst/codecparsers/gstvp8parser.h#L255 > > https://github.com/intel/libva/blob/master/va/va_dec_vp8.h#L72 > > > > Notice that VA splits this in two, the some part in the picture > > parameter, and some parts as SliceParameters. I believe it's to avoid > > having conditional field base on if key_frame == 0. > > > > That might make sense. Something to look into. Yeah, sounds reasonable, although VAAPI naming is a bit off, since VP8 doesn't have a notion of slices... Best regards, Tomasz