1 /* SPDX-License-Identifier: GPL-2.0-or-later * 1 2 /* 3 * Helper functions for H264 codecs. 4 * 5 * Copyright (c) 2019 Collabora, Ltd. 6 * 7 * Author: Boris Brezillon <boris.brezillon@co 8 */ 9 10 #ifndef _MEDIA_V4L2_H264_H 11 #define _MEDIA_V4L2_H264_H 12 13 #include <media/v4l2-ctrls.h> 14 15 /** 16 * struct v4l2_h264_reflist_builder - Referenc 17 * 18 * @refs.top_field_order_cnt: top field order 19 * @refs.bottom_field_order_cnt: bottom field 20 * @refs.frame_num: reference frame number 21 * @refs.longterm: set to true for a long term 22 * @refs: array of references 23 * @cur_pic_order_count: picture order count o 24 * @cur_pic_fields: fields present in the fram 25 * @unordered_reflist: unordered list of refer 26 * ordered P/B0/B1 lists 27 * @num_valid: number of valid references in t 28 * 29 * This object stores the context of the P/B0/ 30 * This procedure is described in section '8.2 31 * picture lists construction' of the H264 spe 32 */ 33 struct v4l2_h264_reflist_builder { 34 struct { 35 s32 top_field_order_cnt; 36 s32 bottom_field_order_cnt; 37 int frame_num; 38 u16 longterm : 1; 39 } refs[V4L2_H264_NUM_DPB_ENTRIES]; 40 41 s32 cur_pic_order_count; 42 u8 cur_pic_fields; 43 44 struct v4l2_h264_reference unordered_r 45 u8 num_valid; 46 }; 47 48 void 49 v4l2_h264_init_reflist_builder(struct v4l2_h26 50 const struct v4l2_ctrl_h264_de 51 const struct v4l2_ctrl_h264_sp 52 const struct v4l2_h264_dpb_ent 53 54 /** 55 * v4l2_h264_build_b_ref_lists() - Build the B 56 * 57 * @builder: reference list builder context 58 * @b0_reflist: 32 sized array used to store t 59 * is a v4l2_h264_reference struc 60 * @b1_reflist: 32 sized array used to store t 61 * is a v4l2_h264_reference struc 62 * 63 * This functions builds the B0/B1 reference l 64 * in section '8.2.4 Decoding process for refe 65 * of the H264 spec. This function can be used 66 * need to pass B0/B1 reference lists to the h 67 */ 68 void 69 v4l2_h264_build_b_ref_lists(const struct v4l2_ 70 struct v4l2_h264_r 71 struct v4l2_h264_r 72 73 /** 74 * v4l2_h264_build_p_ref_list() - Build the P 75 * 76 * @builder: reference list builder context 77 * @reflist: 32 sized array used to store the 78 * is a v4l2_h264_reference structur 79 * 80 * This functions builds the P reference lists 81 * section '8.2.4 Decoding process for referen 82 * of the H264 spec. This function can be used 83 * need to pass a P reference list to the hard 84 */ 85 void 86 v4l2_h264_build_p_ref_list(const struct v4l2_h 87 struct v4l2_h264_re 88 89 #endif /* _MEDIA_V4L2_H264_H */ 90
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.