mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-04-02 05:51:14 -04:00
media: visl: Add HEVC short and long term RPS sets
Log the recently added v4l2 controls to set HEVC short and long term RPS sets with 2 new ftrace entries. Reviewed-by: Nicolas Dufresne <nicolas.dufresne@collabora.com> Signed-off-by: Detlev Casanova <detlev.casanova@collabora.com> Signed-off-by: Nicolas Dufresne <nicolas.dufresne@collabora.com> Signed-off-by: Hans Verkuil <hverkuil+cisco@kernel.org>
This commit is contained in:
committed by
Hans Verkuil
parent
fa05705107
commit
4cb9cd80b3
@@ -547,6 +547,9 @@ static void visl_trace_ctrls(struct visl_ctx *ctx, struct visl_run *run)
|
||||
trace_v4l2_hevc_dpb_entry(&run->hevc.dpram->dpb[i]);
|
||||
|
||||
trace_v4l2_hevc_pred_weight_table(&run->hevc.spram->pred_weight_table);
|
||||
trace_v4l2_ctrl_hevc_ext_sps_lt_rps(run->hevc.rps_lt);
|
||||
trace_v4l2_ctrl_hevc_ext_sps_st_rps(run->hevc.rps_st);
|
||||
|
||||
break;
|
||||
case VISL_CODEC_AV1:
|
||||
trace_v4l2_ctrl_av1_sequence(run->av1.seq);
|
||||
@@ -611,6 +614,10 @@ void visl_device_run(void *priv)
|
||||
run.hevc.spram = visl_find_control_data(ctx, V4L2_CID_STATELESS_HEVC_SLICE_PARAMS);
|
||||
run.hevc.sm = visl_find_control_data(ctx, V4L2_CID_STATELESS_HEVC_SCALING_MATRIX);
|
||||
run.hevc.dpram = visl_find_control_data(ctx, V4L2_CID_STATELESS_HEVC_DECODE_PARAMS);
|
||||
run.hevc.rps_lt = visl_find_control_data(ctx,
|
||||
V4L2_CID_STATELESS_HEVC_EXT_SPS_LT_RPS);
|
||||
run.hevc.rps_st = visl_find_control_data(ctx,
|
||||
V4L2_CID_STATELESS_HEVC_EXT_SPS_ST_RPS);
|
||||
break;
|
||||
case VISL_CODEC_AV1:
|
||||
run.av1.seq = visl_find_control_data(ctx, V4L2_CID_STATELESS_AV1_SEQUENCE);
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
#ifndef _VISL_DEC_H_
|
||||
#define _VISL_DEC_H_
|
||||
|
||||
#include "linux/v4l2-controls.h"
|
||||
#include "visl.h"
|
||||
|
||||
struct visl_fwht_run {
|
||||
@@ -43,6 +44,8 @@ struct visl_hevc_run {
|
||||
const struct v4l2_ctrl_hevc_slice_params *spram;
|
||||
const struct v4l2_ctrl_hevc_scaling_matrix *sm;
|
||||
const struct v4l2_ctrl_hevc_decode_params *dpram;
|
||||
const struct v4l2_ctrl_hevc_ext_sps_lt_rps *rps_lt;
|
||||
const struct v4l2_ctrl_hevc_ext_sps_st_rps *rps_st;
|
||||
};
|
||||
|
||||
struct visl_av1_run {
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0+ */
|
||||
#include "linux/v4l2-controls.h"
|
||||
#if !defined(_VISL_TRACE_HEVC_H_) || defined(TRACE_HEADER_MULTI_READ)
|
||||
#define _VISL_TRACE_HEVC_H_
|
||||
|
||||
@@ -343,6 +344,54 @@ DECLARE_EVENT_CLASS(v4l2_ctrl_hevc_decode_params_tmpl,
|
||||
))
|
||||
);
|
||||
|
||||
DECLARE_EVENT_CLASS(v4l2_ctrl_hevc_ext_sps_lt_rps_tmpl,
|
||||
TP_PROTO(const struct v4l2_ctrl_hevc_ext_sps_lt_rps *lt),
|
||||
TP_ARGS(lt),
|
||||
TP_STRUCT__entry(__field_struct(struct v4l2_ctrl_hevc_ext_sps_lt_rps, lt)),
|
||||
TP_fast_assign(__entry->lt = *lt),
|
||||
TP_printk("\nflags %s\n"
|
||||
"lt_ref_pic_poc_lsb_sps %x\n",
|
||||
__print_flags(__entry->lt.flags, "|",
|
||||
{V4L2_HEVC_EXT_SPS_LT_RPS_FLAG_USED_LT, "USED_LT"}
|
||||
),
|
||||
__entry->lt.lt_ref_pic_poc_lsb_sps
|
||||
)
|
||||
)
|
||||
|
||||
DECLARE_EVENT_CLASS(v4l2_ctrl_hevc_ext_sps_st_rps_tmpl,
|
||||
TP_PROTO(const struct v4l2_ctrl_hevc_ext_sps_st_rps *st),
|
||||
TP_ARGS(st),
|
||||
TP_STRUCT__entry(__field_struct(struct v4l2_ctrl_hevc_ext_sps_st_rps, st)),
|
||||
TP_fast_assign(__entry->st = *st),
|
||||
TP_printk("\nflags %s\n"
|
||||
"delta_idx_minus1: %u\n"
|
||||
"delta_rps_sign: %u\n"
|
||||
"abs_delta_rps_minus1: %u\n"
|
||||
"num_negative_pics: %u\n"
|
||||
"num_positive_pics: %u\n"
|
||||
"used_by_curr_pic: %08x\n"
|
||||
"use_delta_flag: %08x\n"
|
||||
"delta_poc_s0_minus1: %s\n"
|
||||
"delta_poc_s1_minus1: %s\n",
|
||||
__print_flags(__entry->st.flags, "|",
|
||||
{V4L2_HEVC_EXT_SPS_ST_RPS_FLAG_INTER_REF_PIC_SET_PRED, "INTER_REF_PIC_SET_PRED"}
|
||||
),
|
||||
__entry->st.delta_idx_minus1,
|
||||
__entry->st.delta_rps_sign,
|
||||
__entry->st.abs_delta_rps_minus1,
|
||||
__entry->st.num_negative_pics,
|
||||
__entry->st.num_positive_pics,
|
||||
__entry->st.used_by_curr_pic,
|
||||
__entry->st.use_delta_flag,
|
||||
__print_array(__entry->st.delta_poc_s0_minus1,
|
||||
ARRAY_SIZE(__entry->st.delta_poc_s0_minus1),
|
||||
sizeof(__entry->st.delta_poc_s0_minus1[0])),
|
||||
__print_array(__entry->st.delta_poc_s1_minus1,
|
||||
ARRAY_SIZE(__entry->st.delta_poc_s1_minus1),
|
||||
sizeof(__entry->st.delta_poc_s1_minus1[0]))
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
DECLARE_EVENT_CLASS(v4l2_hevc_dpb_entry_tmpl,
|
||||
TP_PROTO(const struct v4l2_hevc_dpb_entry *e),
|
||||
@@ -391,6 +440,16 @@ DEFINE_EVENT(v4l2_ctrl_hevc_decode_params_tmpl, v4l2_ctrl_hevc_decode_params,
|
||||
TP_ARGS(d)
|
||||
);
|
||||
|
||||
DEFINE_EVENT(v4l2_ctrl_hevc_ext_sps_lt_rps_tmpl, v4l2_ctrl_hevc_ext_sps_lt_rps,
|
||||
TP_PROTO(const struct v4l2_ctrl_hevc_ext_sps_lt_rps *lt),
|
||||
TP_ARGS(lt)
|
||||
);
|
||||
|
||||
DEFINE_EVENT(v4l2_ctrl_hevc_ext_sps_st_rps_tmpl, v4l2_ctrl_hevc_ext_sps_st_rps,
|
||||
TP_PROTO(const struct v4l2_ctrl_hevc_ext_sps_st_rps *st),
|
||||
TP_ARGS(st)
|
||||
);
|
||||
|
||||
DEFINE_EVENT(v4l2_hevc_dpb_entry_tmpl, v4l2_hevc_dpb_entry,
|
||||
TP_PROTO(const struct v4l2_hevc_dpb_entry *e),
|
||||
TP_ARGS(e)
|
||||
|
||||
Reference in New Issue
Block a user