+ av_frame_remove_side_data(f, AV_FRAME_DATA_QP_TABLE_PROPERTIES);
+ av_frame_remove_side_data(f, AV_FRAME_DATA_QP_TABLE_DATA);
+
+ ref = av_buffer_ref(buf);
+ if (!av_frame_new_side_data_from_buf(f, AV_FRAME_DATA_QP_TABLE_DATA, ref)) {
+ av_buffer_unref(&ref);
+ return AVERROR(ENOMEM);
+ }
+
+ sd = av_frame_new_side_data(f, AV_FRAME_DATA_QP_TABLE_PROPERTIES,
+ sizeof(struct qp_properties));
+ if (!sd)
+ return AVERROR(ENOMEM);
+
+ p = (struct qp_properties *)sd->data;
+ p->stride = stride;
+ p->type = qp_type;
+