#include <media/v4l2-h264.h>
#include <media/v4l2-mem2mem.h>
#include "rkvdec.h"
#include "rkvdec-regs.h"
#define RKV_CABAC_INIT_BUFFER_SIZE …
#define RKV_RPS_SIZE …
#define RKV_ERROR_INFO_SIZE …
#define RKVDEC_NUM_REFLIST …
struct rkvdec_h264_scaling_list { … };
struct rkvdec_sps_pps_packet { … };
struct rkvdec_ps_field { … };
#define PS_FIELD(_offset, _len) …
#define SEQ_PARAMETER_SET_ID …
#define PROFILE_IDC …
#define CONSTRAINT_SET3_FLAG …
#define CHROMA_FORMAT_IDC …
#define BIT_DEPTH_LUMA …
#define BIT_DEPTH_CHROMA …
#define QPPRIME_Y_ZERO_TRANSFORM_BYPASS_FLAG …
#define LOG2_MAX_FRAME_NUM_MINUS4 …
#define MAX_NUM_REF_FRAMES …
#define PIC_ORDER_CNT_TYPE …
#define LOG2_MAX_PIC_ORDER_CNT_LSB_MINUS4 …
#define DELTA_PIC_ORDER_ALWAYS_ZERO_FLAG …
#define PIC_WIDTH_IN_MBS …
#define PIC_HEIGHT_IN_MBS …
#define FRAME_MBS_ONLY_FLAG …
#define MB_ADAPTIVE_FRAME_FIELD_FLAG …
#define DIRECT_8X8_INFERENCE_FLAG …
#define MVC_EXTENSION_ENABLE …
#define NUM_VIEWS …
#define VIEW_ID(i) …
#define NUM_ANCHOR_REFS_L(i) …
#define ANCHOR_REF_L(i) …
#define NUM_NON_ANCHOR_REFS_L(i) …
#define NON_ANCHOR_REFS_L(i) …
#define PIC_PARAMETER_SET_ID …
#define PPS_SEQ_PARAMETER_SET_ID …
#define ENTROPY_CODING_MODE_FLAG …
#define BOTTOM_FIELD_PIC_ORDER_IN_FRAME_PRESENT_FLAG …
#define NUM_REF_IDX_L_DEFAULT_ACTIVE_MINUS1(i) …
#define WEIGHTED_PRED_FLAG …
#define WEIGHTED_BIPRED_IDC …
#define PIC_INIT_QP_MINUS26 …
#define PIC_INIT_QS_MINUS26 …
#define CHROMA_QP_INDEX_OFFSET …
#define DEBLOCKING_FILTER_CONTROL_PRESENT_FLAG …
#define CONSTRAINED_INTRA_PRED_FLAG …
#define REDUNDANT_PIC_CNT_PRESENT …
#define TRANSFORM_8X8_MODE_FLAG …
#define SECOND_CHROMA_QP_INDEX_OFFSET …
#define SCALING_LIST_ENABLE_FLAG …
#define SCALING_LIST_ADDRESS …
#define IS_LONG_TERM(i) …
#define DPB_OFFS(i, j) …
#define DPB_INFO(i, j) …
#define BOTTOM_FLAG(i, j) …
#define VIEW_INDEX_OFF(i, j) …
struct rkvdec_h264_priv_tbl { … };
struct rkvdec_h264_reflists { … };
struct rkvdec_h264_run { … };
struct rkvdec_h264_ctx { … };
#define CABAC_ENTRY(ctxidx, idc0_m, idc0_n, idc1_m, idc1_n, \
idc2_m, idc2_n, intra_m, intra_n) …
static const s8 rkvdec_h264_cabac_table[4][464][2] = …;
static void set_ps_field(u32 *buf, struct rkvdec_ps_field field, u32 value)
{ … }
static void assemble_hw_pps(struct rkvdec_ctx *ctx,
struct rkvdec_h264_run *run)
{ … }
static void lookup_ref_buf_idx(struct rkvdec_ctx *ctx,
struct rkvdec_h264_run *run)
{ … }
static void assemble_hw_rps(struct rkvdec_ctx *ctx,
struct v4l2_h264_reflist_builder *builder,
struct rkvdec_h264_run *run)
{ … }
static void assemble_hw_scaling_list(struct rkvdec_ctx *ctx,
struct rkvdec_h264_run *run)
{ … }
static const u32 poc_reg_tbl_top_field[16] = …;
static const u32 poc_reg_tbl_bottom_field[16] = …;
static void config_registers(struct rkvdec_ctx *ctx,
struct rkvdec_h264_run *run)
{ … }
#define RKVDEC_H264_MAX_DEPTH_IN_BYTES …
static int rkvdec_h264_adjust_fmt(struct rkvdec_ctx *ctx,
struct v4l2_format *f)
{ … }
static int rkvdec_h264_validate_sps(struct rkvdec_ctx *ctx,
const struct v4l2_ctrl_h264_sps *sps)
{ … }
static int rkvdec_h264_start(struct rkvdec_ctx *ctx)
{ … }
static void rkvdec_h264_stop(struct rkvdec_ctx *ctx)
{ … }
static void rkvdec_h264_run_preamble(struct rkvdec_ctx *ctx,
struct rkvdec_h264_run *run)
{ … }
static int rkvdec_h264_run(struct rkvdec_ctx *ctx)
{ … }
static int rkvdec_h264_try_ctrl(struct rkvdec_ctx *ctx, struct v4l2_ctrl *ctrl)
{ … }
const struct rkvdec_coded_fmt_ops rkvdec_h264_fmt_ops = …;