mirror of
https://github.com/nyanmisaka/mpp.git
synced 2025-10-08 10:30:04 +08:00
[vdpu383]: Update debug information print
Change-Id: I642e9f27afc3c4fda1cf9639d99d3e0ff9e79409 Signed-off-by: Hongjin Li <vic.hong@rock-chips.com>
This commit is contained in:
@@ -109,110 +109,6 @@ typedef struct Vdpu383H264dRegCtx_t {
|
|||||||
Vdpu383H264dRegSet *regs;
|
Vdpu383H264dRegSet *regs;
|
||||||
} Vdpu383H264dRegCtx;
|
} Vdpu383H264dRegCtx;
|
||||||
|
|
||||||
//#define DUMP_DATA
|
|
||||||
|
|
||||||
#ifdef DUMP_DATA
|
|
||||||
static RK_U32 dump_cur_frame = 0;
|
|
||||||
static char dump_cur_dir[128];
|
|
||||||
static char dump_cur_fname_path[512];
|
|
||||||
|
|
||||||
static MPP_RET flip_string(char *str)
|
|
||||||
{
|
|
||||||
RK_U32 len = strlen(str);
|
|
||||||
RK_U32 i, j;
|
|
||||||
|
|
||||||
for (i = 0, j = len - 1; i <= j; i++, j--) {
|
|
||||||
// swapping characters
|
|
||||||
char c = str[i];
|
|
||||||
str[i] = str[j];
|
|
||||||
str[j] = c;
|
|
||||||
}
|
|
||||||
|
|
||||||
return MPP_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
static MPP_RET dump_data(char *fname_path, void *data, RK_U32 data_bit_size, RK_U32 line_bits, RK_U32 big_end)
|
|
||||||
{
|
|
||||||
RK_U8 *buf_p = (RK_U8 *)data;
|
|
||||||
RK_U8 cur_data;
|
|
||||||
RK_U32 i;
|
|
||||||
RK_U32 loop_cnt;
|
|
||||||
FILE *dump_fp = NULL;
|
|
||||||
char line_tmp[256];
|
|
||||||
RK_U32 str_idx = 0;
|
|
||||||
|
|
||||||
dump_fp = fopen(fname_path, "w+");
|
|
||||||
if (!dump_fp) {
|
|
||||||
mpp_err_f("open file: %s error!\n", fname_path);
|
|
||||||
return MPP_NOK;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ((data_bit_size % 4 != 0) || (line_bits % 8 != 0)) {
|
|
||||||
mpp_err_f("line bits not align to 4!\n");
|
|
||||||
return MPP_NOK;
|
|
||||||
}
|
|
||||||
|
|
||||||
loop_cnt = data_bit_size / 8;
|
|
||||||
for (i = 0; i < loop_cnt; i++) {
|
|
||||||
cur_data = buf_p[i];
|
|
||||||
|
|
||||||
sprintf(&line_tmp[str_idx++], "%0x", cur_data & 0xf);
|
|
||||||
if ((i * 8 + 4) % line_bits == 0) {
|
|
||||||
line_tmp[str_idx++] = '\0';
|
|
||||||
str_idx = 0;
|
|
||||||
if (!big_end)
|
|
||||||
flip_string(line_tmp);
|
|
||||||
fprintf(dump_fp, "%s\n", line_tmp);
|
|
||||||
}
|
|
||||||
sprintf(&line_tmp[str_idx++], "%0x", (cur_data >> 4) & 0xf);
|
|
||||||
if ((i * 8 + 8) % line_bits == 0) {
|
|
||||||
line_tmp[str_idx++] = '\0';
|
|
||||||
str_idx = 0;
|
|
||||||
if (!big_end)
|
|
||||||
flip_string(line_tmp);
|
|
||||||
fprintf(dump_fp, "%s\n", line_tmp);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// last line
|
|
||||||
if (data_bit_size % 4) {
|
|
||||||
cur_data = buf_p[i];
|
|
||||||
sprintf(&line_tmp[str_idx++], "%0x", cur_data & 0xf);
|
|
||||||
if ((i * 8 + 8) % line_bits == 0) {
|
|
||||||
line_tmp[str_idx++] = '\0';
|
|
||||||
str_idx = 0;
|
|
||||||
if (!big_end)
|
|
||||||
flip_string(line_tmp);
|
|
||||||
fprintf(dump_fp, "%s\n", line_tmp);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (data_bit_size % line_bits) {
|
|
||||||
loop_cnt = (line_bits - (data_bit_size % line_bits)) / 4;
|
|
||||||
for (i = 0; i < loop_cnt; i++)
|
|
||||||
sprintf(&line_tmp[str_idx++], "%0x", 0);
|
|
||||||
line_tmp[str_idx++] = '\0';
|
|
||||||
str_idx = 0;
|
|
||||||
if (!big_end)
|
|
||||||
flip_string(line_tmp);
|
|
||||||
fprintf(dump_fp, "%s\n", line_tmp);
|
|
||||||
}
|
|
||||||
|
|
||||||
fclose(dump_fp);
|
|
||||||
|
|
||||||
return MPP_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
static MPP_RET dump_reg(RK_U32 *reg_s, RK_U32 count, RK_U32 log_start_idx)
|
|
||||||
{
|
|
||||||
RK_U32 loop;
|
|
||||||
for (loop = 0; loop < count; loop++) {
|
|
||||||
mpp_log("reg[%03d]: 0%08x", log_start_idx + loop, reg_s[loop]);
|
|
||||||
}
|
|
||||||
|
|
||||||
return MPP_OK;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
static RK_U32 rkv_ver_align(RK_U32 val)
|
static RK_U32 rkv_ver_align(RK_U32 val)
|
||||||
{
|
{
|
||||||
return MPP_ALIGN(val, 16);
|
return MPP_ALIGN(val, 16);
|
||||||
@@ -577,13 +473,13 @@ static MPP_RET set_registers(H264dHalCtx_t *p_hal, Vdpu383H264dRegSet *regs, Hal
|
|||||||
mpp_buf_slot_get_prop(p_hal->packet_slots, task->dec.input, SLOT_BUFFER, &mbuffer);
|
mpp_buf_slot_get_prop(p_hal->packet_slots, task->dec.input, SLOT_BUFFER, &mbuffer);
|
||||||
regs->common_addr.reg128_strm_base = mpp_buffer_get_fd(mbuffer);
|
regs->common_addr.reg128_strm_base = mpp_buffer_get_fd(mbuffer);
|
||||||
// regs->h264d_paras.reg65_strm_start_bit = 2 * 8;
|
// regs->h264d_paras.reg65_strm_start_bit = 2 * 8;
|
||||||
#ifdef DUMP_DATA
|
#ifdef DUMP_VDPU383_DATAS
|
||||||
{
|
{
|
||||||
char *cur_fname = "stream_in.dat";
|
char *cur_fname = "stream_in.dat";
|
||||||
memset(dump_cur_fname_path, 0, sizeof(dump_cur_fname_path));
|
memset(dump_cur_fname_path, 0, sizeof(dump_cur_fname_path));
|
||||||
sprintf(dump_cur_fname_path, "%s/%s", dump_cur_dir, cur_fname);
|
sprintf(dump_cur_fname_path, "%s/%s", dump_cur_dir, cur_fname);
|
||||||
dump_data(dump_cur_fname_path, (void *)mpp_buffer_get_ptr(mbuffer),
|
dump_data_to_file(dump_cur_fname_path, (void *)mpp_buffer_get_ptr(mbuffer),
|
||||||
8 * p_hal->strm_len, 128, 0);
|
8 * p_hal->strm_len, 128, 0);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -883,15 +779,15 @@ MPP_RET vdpu383_h264d_gen_regs(void *hal, HalTaskInfo *task)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef DUMP_DATA
|
#ifdef DUMP_VDPU383_DATAS
|
||||||
{
|
{
|
||||||
dump_cur_frame++;
|
|
||||||
memset(dump_cur_dir, 0, sizeof(dump_cur_dir));
|
memset(dump_cur_dir, 0, sizeof(dump_cur_dir));
|
||||||
sprintf(dump_cur_dir, "avc/Frame%04d", dump_cur_frame);
|
sprintf(dump_cur_dir, "avc/Frame%04d", dump_cur_frame);
|
||||||
if (access(dump_cur_dir, 0)) {
|
if (access(dump_cur_dir, 0)) {
|
||||||
if (mkdir(dump_cur_dir))
|
if (mkdir(dump_cur_dir))
|
||||||
mpp_err_f("error: mkdir %s\n", dump_cur_dir);
|
mpp_err_f("error: mkdir %s\n", dump_cur_dir);
|
||||||
}
|
}
|
||||||
|
dump_cur_frame++;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@@ -27,94 +27,6 @@
|
|||||||
#include "vdpu383_h265d.h"
|
#include "vdpu383_h265d.h"
|
||||||
#include "vdpu383_com.h"
|
#include "vdpu383_com.h"
|
||||||
|
|
||||||
// #define DUMP_DATA
|
|
||||||
|
|
||||||
#ifdef DUMP_DATA
|
|
||||||
static RK_U32 dump_cur_frame = 0;
|
|
||||||
static char dump_cur_dir[128];
|
|
||||||
static char dump_cur_fname_path[512];
|
|
||||||
|
|
||||||
static flip_string(char *str)
|
|
||||||
{
|
|
||||||
RK_U32 len = strlen(str);
|
|
||||||
RK_U32 i, j;
|
|
||||||
|
|
||||||
for (i = 0, j = len - 1; i <= j; i++, j--) {
|
|
||||||
// swapping characters
|
|
||||||
char c = str[i];
|
|
||||||
str[i] = str[j];
|
|
||||||
str[j] = c;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static MPP_RET dump_data(char *fname_path, void *data, RK_U32 data_bit_size, RK_U32 line_bits, RK_U32 big_end)
|
|
||||||
{
|
|
||||||
RK_U8 *buf_p = (RK_U8 *)data;
|
|
||||||
RK_U8 cur_data;
|
|
||||||
RK_U32 i;
|
|
||||||
RK_U32 loop_cnt;
|
|
||||||
FILE *dump_fp = NULL;
|
|
||||||
char line_tmp[256];
|
|
||||||
RK_U32 str_idx = 0;
|
|
||||||
|
|
||||||
dump_fp = fopen(fname_path, "w+");
|
|
||||||
|
|
||||||
if ((data_bit_size % 4 != 0) || (line_bits % 8 != 0)) {
|
|
||||||
mpp_err_f("line bits not align to 4!\n");
|
|
||||||
return MPP_NOK;
|
|
||||||
}
|
|
||||||
|
|
||||||
loop_cnt = data_bit_size / 8;
|
|
||||||
for (i = 0; i < loop_cnt; i++) {
|
|
||||||
cur_data = buf_p[i];
|
|
||||||
|
|
||||||
sprintf(&line_tmp[str_idx++], "%0x", cur_data & 0xf);
|
|
||||||
if ((i * 8 + 4) % line_bits == 0) {
|
|
||||||
line_tmp[str_idx++] = '\0';
|
|
||||||
str_idx = 0;
|
|
||||||
if (!big_end)
|
|
||||||
flip_string(line_tmp);
|
|
||||||
fprintf(dump_fp, "%s\n", line_tmp);
|
|
||||||
}
|
|
||||||
sprintf(&line_tmp[str_idx++], "%0x", (cur_data >> 4) & 0xf);
|
|
||||||
if ((i * 8 + 8) % line_bits == 0) {
|
|
||||||
line_tmp[str_idx++] = '\0';
|
|
||||||
str_idx = 0;
|
|
||||||
if (!big_end)
|
|
||||||
flip_string(line_tmp);
|
|
||||||
fprintf(dump_fp, "%s\n", line_tmp);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// last line
|
|
||||||
if (data_bit_size % 4) {
|
|
||||||
cur_data = buf_p[i];
|
|
||||||
sprintf(&line_tmp[str_idx++], "%0x", cur_data & 0xf);
|
|
||||||
if ((i * 8 + 8) % line_bits == 0) {
|
|
||||||
line_tmp[str_idx++] = '\0';
|
|
||||||
str_idx = 0;
|
|
||||||
if (!big_end)
|
|
||||||
flip_string(line_tmp);
|
|
||||||
fprintf(dump_fp, "%s\n", line_tmp);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (data_bit_size % line_bits) {
|
|
||||||
loop_cnt = (line_bits - (data_bit_size % line_bits)) / 4;
|
|
||||||
for (i = 0; i < loop_cnt; i++)
|
|
||||||
sprintf(&line_tmp[str_idx++], "%0x", 0);
|
|
||||||
line_tmp[str_idx++] = '\0';
|
|
||||||
str_idx = 0;
|
|
||||||
if (!big_end)
|
|
||||||
flip_string(line_tmp);
|
|
||||||
fprintf(dump_fp, "%s\n", line_tmp);
|
|
||||||
}
|
|
||||||
|
|
||||||
fclose(dump_fp);
|
|
||||||
|
|
||||||
return MPP_OK;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define HW_RPS
|
#define HW_RPS
|
||||||
#define PPS_SIZE (112 * 64)//(96x64)
|
#define PPS_SIZE (112 * 64)//(96x64)
|
||||||
|
|
||||||
@@ -702,12 +614,12 @@ static RK_S32 hal_h265d_v345_output_pps_packet(void *hal, void *dxva)
|
|||||||
mpp_log("pps[%3d] = 0x%08x\n", i, tmp[i]);
|
mpp_log("pps[%3d] = 0x%08x\n", i, tmp[i]);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
#ifdef DUMP_DATA
|
#ifdef DUMP_VDPU383_DATAS
|
||||||
{
|
{
|
||||||
char *cur_fname = "global_cfg.dat";
|
char *cur_fname = "global_cfg.dat";
|
||||||
memset(dump_cur_fname_path, 0, sizeof(dump_cur_fname_path));
|
memset(dump_cur_fname_path, 0, sizeof(dump_cur_fname_path));
|
||||||
sprintf(dump_cur_fname_path, "%s/%s", dump_cur_dir, cur_fname);
|
sprintf(dump_cur_fname_path, "%s/%s", dump_cur_dir, cur_fname);
|
||||||
dump_data(dump_cur_fname_path, (void *)bp.pbuf, 64 * bp.index + bp.bitpos, 128, 0);
|
dump_data_to_file(dump_cur_fname_path, (void *)bp.pbuf, 64 * bp.index + bp.bitpos, 128, 0);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -907,12 +819,12 @@ static RK_S32 hal_h265d_vdpu383_rps(void *dxva, void *rps_buf, void* sw_rps_buf,
|
|||||||
mpp_put_bits(&bp, 0, 128);
|
mpp_put_bits(&bp, 0, 128);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef DUMP_DATA
|
#ifdef DUMP_VDPU383_DATAS
|
||||||
{
|
{
|
||||||
char *cur_fname = "rps_128bit.dat";
|
char *cur_fname = "rps_128bit.dat";
|
||||||
memset(dump_cur_fname_path, 0, sizeof(dump_cur_fname_path));
|
memset(dump_cur_fname_path, 0, sizeof(dump_cur_fname_path));
|
||||||
sprintf(dump_cur_fname_path, "%s/%s", dump_cur_dir, cur_fname);
|
sprintf(dump_cur_fname_path, "%s/%s", dump_cur_dir, cur_fname);
|
||||||
dump_data(dump_cur_fname_path, (void *)bp.pbuf, 64 * bp.index + bp.bitpos, 128, 0);
|
dump_data_to_file(dump_cur_fname_path, (void *)bp.pbuf, 64 * bp.index + bp.bitpos, 128, 0);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -1001,7 +913,7 @@ static MPP_RET hal_h265d_vdpu383_gen_regs(void *hal, HalTaskInfo *syn)
|
|||||||
return MPP_ERR_NULL_PTR;
|
return MPP_ERR_NULL_PTR;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef DUMP_DATA
|
#ifdef DUMP_VDPU383_DATAS
|
||||||
{
|
{
|
||||||
memset(dump_cur_dir, 0, sizeof(dump_cur_dir));
|
memset(dump_cur_dir, 0, sizeof(dump_cur_dir));
|
||||||
sprintf(dump_cur_dir, "hevc/Frame%04d", dump_cur_frame);
|
sprintf(dump_cur_dir, "hevc/Frame%04d", dump_cur_frame);
|
||||||
@@ -1119,12 +1031,13 @@ static MPP_RET hal_h265d_vdpu383_gen_regs(void *hal, HalTaskInfo *syn)
|
|||||||
mv_buf = hal_bufs_get_buf(reg_ctx->cmv_bufs, dxva_ctx->pp.CurrPic.Index7Bits);
|
mv_buf = hal_bufs_get_buf(reg_ctx->cmv_bufs, dxva_ctx->pp.CurrPic.Index7Bits);
|
||||||
|
|
||||||
hw_regs->h265d_addrs.reg216_colmv_cur_base = mpp_buffer_get_fd(mv_buf->buf[0]);
|
hw_regs->h265d_addrs.reg216_colmv_cur_base = mpp_buffer_get_fd(mv_buf->buf[0]);
|
||||||
#ifdef DUMP_DATA
|
#ifdef DUMP_VDPU383_DATAS
|
||||||
{
|
{
|
||||||
char *cur_fname = "colmv_cur_frame.dat";
|
char *cur_fname = "colmv_cur_frame.dat";
|
||||||
memset(dump_cur_fname_path, 0, sizeof(dump_cur_fname_path));
|
memset(dump_cur_fname_path, 0, sizeof(dump_cur_fname_path));
|
||||||
sprintf(dump_cur_fname_path, "%s/%s", dump_cur_dir, cur_fname);
|
sprintf(dump_cur_fname_path, "%s/%s", dump_cur_dir, cur_fname);
|
||||||
dump_data(dump_cur_fname_path, (void *)mpp_buffer_get_ptr(mv_buf->buf[0]), mpp_buffer_get_size(mv_buf->buf[0]), 64, 0);
|
dump_data_to_file(dump_cur_fname_path, (void *)mpp_buffer_get_ptr(mv_buf->buf[0]),
|
||||||
|
mpp_buffer_get_size(mv_buf->buf[0]), 64, 0);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -1134,12 +1047,13 @@ static MPP_RET hal_h265d_vdpu383_gen_regs(void *hal, HalTaskInfo *syn)
|
|||||||
dxva_ctx->bitstream = mpp_buffer_get_ptr(streambuf);
|
dxva_ctx->bitstream = mpp_buffer_get_ptr(streambuf);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef DUMP_DATA
|
#ifdef DUMP_VDPU383_DATAS
|
||||||
{
|
{
|
||||||
char *cur_fname = "stream_in_128bit.dat";
|
char *cur_fname = "stream_in_128bit.dat";
|
||||||
memset(dump_cur_fname_path, 0, sizeof(dump_cur_fname_path));
|
memset(dump_cur_fname_path, 0, sizeof(dump_cur_fname_path));
|
||||||
sprintf(dump_cur_fname_path, "%s/%s", dump_cur_dir, cur_fname);
|
sprintf(dump_cur_fname_path, "%s/%s", dump_cur_dir, cur_fname);
|
||||||
dump_data(dump_cur_fname_path, (void *)mpp_buffer_get_ptr(streambuf), mpp_buffer_get_size(streambuf), 128, 0);
|
dump_data_to_file(dump_cur_fname_path, (void *)mpp_buffer_get_ptr(streambuf),
|
||||||
|
mpp_buffer_get_size(streambuf), 128, 0);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@@ -20,6 +20,8 @@
|
|||||||
|
|
||||||
#define MPP_RCB_BYTES(bits) MPP_ALIGN((bits + 7) / 8, RCB_ALLINE_SIZE)
|
#define MPP_RCB_BYTES(bits) MPP_ALIGN((bits + 7) / 8, RCB_ALLINE_SIZE)
|
||||||
|
|
||||||
|
// #define DUMP_VDPU383_DATAS
|
||||||
|
|
||||||
typedef enum Vdpu383RcbType_e {
|
typedef enum Vdpu383RcbType_e {
|
||||||
RCB_STRMD_ROW,
|
RCB_STRMD_ROW,
|
||||||
RCB_STRMD_TILE_ROW,
|
RCB_STRMD_TILE_ROW,
|
||||||
@@ -523,6 +525,16 @@ void vdpu383_setup_statistic(Vdpu383CtrlReg *com);
|
|||||||
void vdpu383_afbc_align_calc(MppBufSlots slots, MppFrame frame, RK_U32 expand);
|
void vdpu383_afbc_align_calc(MppBufSlots slots, MppFrame frame, RK_U32 expand);
|
||||||
RK_S32 vdpu383_set_rcbinfo(MppDev dev, Vdpu383RcbInfo *rcb_info);
|
RK_S32 vdpu383_set_rcbinfo(MppDev dev, Vdpu383RcbInfo *rcb_info);
|
||||||
|
|
||||||
|
#ifdef DUMP_VDPU383_DATAS
|
||||||
|
extern RK_U32 dump_cur_frame;
|
||||||
|
extern char dump_cur_dir[128];
|
||||||
|
extern char dump_cur_fname_path[512];
|
||||||
|
|
||||||
|
MPP_RET flip_string(char *str);
|
||||||
|
MPP_RET dump_data_to_file(char *fname_path, void *data, RK_U32 data_bit_size,
|
||||||
|
RK_U32 line_bits, RK_U32 big_end);
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@@ -168,3 +168,96 @@ RK_S32 vdpu383_set_rcbinfo(MppDev dev, Vdpu383RcbInfo *rcb_info)
|
|||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef DUMP_VDPU383_DATAS
|
||||||
|
RK_U32 dump_cur_frame = 0;
|
||||||
|
char dump_cur_dir[128];
|
||||||
|
char dump_cur_fname_path[512];
|
||||||
|
|
||||||
|
MPP_RET flip_string(char *str)
|
||||||
|
{
|
||||||
|
RK_U32 len = strlen(str);
|
||||||
|
RK_U32 i, j;
|
||||||
|
|
||||||
|
for (i = 0, j = len - 1; i <= j; i++, j--) {
|
||||||
|
// swapping characters
|
||||||
|
char c = str[i];
|
||||||
|
str[i] = str[j];
|
||||||
|
str[j] = c;
|
||||||
|
}
|
||||||
|
|
||||||
|
return MPP_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
MPP_RET dump_data_to_file(char *fname_path, void *data, RK_U32 data_bit_size,
|
||||||
|
RK_U32 line_bits, RK_U32 big_end)
|
||||||
|
{
|
||||||
|
RK_U8 *buf_p = (RK_U8 *)data;
|
||||||
|
RK_U8 cur_data;
|
||||||
|
RK_U32 i;
|
||||||
|
RK_U32 loop_cnt;
|
||||||
|
FILE *dump_fp = NULL;
|
||||||
|
char line_tmp[256];
|
||||||
|
RK_U32 str_idx = 0;
|
||||||
|
|
||||||
|
dump_fp = fopen(fname_path, "w+");
|
||||||
|
if (!dump_fp) {
|
||||||
|
mpp_err_f("open file: %s error!\n", fname_path);
|
||||||
|
return MPP_NOK;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((data_bit_size % 4 != 0) || (line_bits % 8 != 0)) {
|
||||||
|
mpp_err_f("line bits not align to 4!\n");
|
||||||
|
return MPP_NOK;
|
||||||
|
}
|
||||||
|
|
||||||
|
loop_cnt = data_bit_size / 8;
|
||||||
|
for (i = 0; i < loop_cnt; i++) {
|
||||||
|
cur_data = buf_p[i];
|
||||||
|
|
||||||
|
sprintf(&line_tmp[str_idx++], "%0x", cur_data & 0xf);
|
||||||
|
if ((i * 8 + 4) % line_bits == 0) {
|
||||||
|
line_tmp[str_idx++] = '\0';
|
||||||
|
str_idx = 0;
|
||||||
|
if (!big_end)
|
||||||
|
flip_string(line_tmp);
|
||||||
|
fprintf(dump_fp, "%s\n", line_tmp);
|
||||||
|
}
|
||||||
|
sprintf(&line_tmp[str_idx++], "%0x", (cur_data >> 4) & 0xf);
|
||||||
|
if ((i * 8 + 8) % line_bits == 0) {
|
||||||
|
line_tmp[str_idx++] = '\0';
|
||||||
|
str_idx = 0;
|
||||||
|
if (!big_end)
|
||||||
|
flip_string(line_tmp);
|
||||||
|
fprintf(dump_fp, "%s\n", line_tmp);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// last line
|
||||||
|
if (data_bit_size % 4) {
|
||||||
|
cur_data = buf_p[i];
|
||||||
|
sprintf(&line_tmp[str_idx++], "%0x", cur_data & 0xf);
|
||||||
|
if ((i * 8 + 8) % line_bits == 0) {
|
||||||
|
line_tmp[str_idx++] = '\0';
|
||||||
|
str_idx = 0;
|
||||||
|
if (!big_end)
|
||||||
|
flip_string(line_tmp);
|
||||||
|
fprintf(dump_fp, "%s\n", line_tmp);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (data_bit_size % line_bits) {
|
||||||
|
loop_cnt = (line_bits - (data_bit_size % line_bits)) / 4;
|
||||||
|
for (i = 0; i < loop_cnt; i++)
|
||||||
|
sprintf(&line_tmp[str_idx++], "%0x", 0);
|
||||||
|
line_tmp[str_idx++] = '\0';
|
||||||
|
str_idx = 0;
|
||||||
|
if (!big_end)
|
||||||
|
flip_string(line_tmp);
|
||||||
|
fprintf(dump_fp, "%s\n", line_tmp);
|
||||||
|
}
|
||||||
|
|
||||||
|
fclose(dump_fp);
|
||||||
|
|
||||||
|
return MPP_OK;
|
||||||
|
}
|
||||||
|
#endif
|
@@ -71,99 +71,9 @@ typedef struct Vdpu383Vp9dCtx_t {
|
|||||||
RK_U8 header_data[168];
|
RK_U8 header_data[168];
|
||||||
} Vdpu383Vp9dCtx;
|
} Vdpu383Vp9dCtx;
|
||||||
|
|
||||||
// #define DUMP_DATA
|
#ifdef DUMP_VDPU383_DATAS
|
||||||
|
|
||||||
#ifdef DUMP_DATA
|
|
||||||
static RK_U32 dump_cur_frame = 0;
|
|
||||||
static char dump_cur_dir[128];
|
|
||||||
static char dump_cur_fname_path[512];
|
|
||||||
static RK_U32 cur_last_segid_flag;
|
static RK_U32 cur_last_segid_flag;
|
||||||
static MppBuffer cur_last_prob_base;
|
static MppBuffer cur_last_prob_base;
|
||||||
|
|
||||||
static MPP_RET flip_string(char *str)
|
|
||||||
{
|
|
||||||
RK_U32 len = strlen(str);
|
|
||||||
RK_U32 i, j;
|
|
||||||
|
|
||||||
for (i = 0, j = len - 1; i <= j; i++, j--) {
|
|
||||||
// swapping characters
|
|
||||||
char c = str[i];
|
|
||||||
str[i] = str[j];
|
|
||||||
str[j] = c;
|
|
||||||
}
|
|
||||||
return MPP_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
static MPP_RET dump_data(char *fname_path, void *data, RK_U32 data_bit_size, RK_U32 line_bits, RK_U32 big_end)
|
|
||||||
{
|
|
||||||
RK_U8 *buf_p = (RK_U8 *)data;
|
|
||||||
RK_U8 cur_data;
|
|
||||||
RK_U32 i;
|
|
||||||
RK_U32 loop_cnt;
|
|
||||||
FILE *dump_fp = NULL;
|
|
||||||
char line_tmp[256];
|
|
||||||
RK_U32 str_idx = 0;
|
|
||||||
|
|
||||||
dump_fp = fopen(fname_path, "w+");
|
|
||||||
if (!dump_fp) {
|
|
||||||
mpp_err_f("open file: %s error!\n", fname_path);
|
|
||||||
return MPP_NOK;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ((data_bit_size % 4 != 0) || (line_bits % 8 != 0)) {
|
|
||||||
mpp_err_f("line bits not align to 4!\n");
|
|
||||||
return MPP_NOK;
|
|
||||||
}
|
|
||||||
|
|
||||||
loop_cnt = data_bit_size / 8;
|
|
||||||
for (i = 0; i < loop_cnt; i++) {
|
|
||||||
cur_data = buf_p[i];
|
|
||||||
|
|
||||||
sprintf(&line_tmp[str_idx++], "%0x", cur_data & 0xf);
|
|
||||||
if ((i * 8 + 4) % line_bits == 0) {
|
|
||||||
line_tmp[str_idx++] = '\0';
|
|
||||||
str_idx = 0;
|
|
||||||
if (!big_end)
|
|
||||||
flip_string(line_tmp);
|
|
||||||
fprintf(dump_fp, "%s\n", line_tmp);
|
|
||||||
}
|
|
||||||
sprintf(&line_tmp[str_idx++], "%0x", (cur_data >> 4) & 0xf);
|
|
||||||
if ((i * 8 + 8) % line_bits == 0) {
|
|
||||||
line_tmp[str_idx++] = '\0';
|
|
||||||
str_idx = 0;
|
|
||||||
if (!big_end)
|
|
||||||
flip_string(line_tmp);
|
|
||||||
fprintf(dump_fp, "%s\n", line_tmp);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// last line
|
|
||||||
if (data_bit_size % 4) {
|
|
||||||
cur_data = buf_p[i];
|
|
||||||
sprintf(&line_tmp[str_idx++], "%0x", cur_data & 0xf);
|
|
||||||
if ((i * 8 + 8) % line_bits == 0) {
|
|
||||||
line_tmp[str_idx++] = '\0';
|
|
||||||
str_idx = 0;
|
|
||||||
if (!big_end)
|
|
||||||
flip_string(line_tmp);
|
|
||||||
fprintf(dump_fp, "%s\n", line_tmp);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (data_bit_size % line_bits) {
|
|
||||||
loop_cnt = (line_bits - (data_bit_size % line_bits)) / 4;
|
|
||||||
for (i = 0; i < loop_cnt; i++)
|
|
||||||
sprintf(&line_tmp[str_idx++], "%0x", 0);
|
|
||||||
line_tmp[str_idx++] = '\0';
|
|
||||||
str_idx = 0;
|
|
||||||
if (!big_end)
|
|
||||||
flip_string(line_tmp);
|
|
||||||
fprintf(dump_fp, "%s\n", line_tmp);
|
|
||||||
}
|
|
||||||
|
|
||||||
fclose(dump_fp);
|
|
||||||
|
|
||||||
return MPP_OK;
|
|
||||||
}
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static MPP_RET hal_vp9d_alloc_res(HalVp9dCtx *hal)
|
static MPP_RET hal_vp9d_alloc_res(HalVp9dCtx *hal)
|
||||||
@@ -742,12 +652,12 @@ static MPP_RET prepare_uncompress_header(HalVp9dCtx *p_hal, DXVA_PicParams_VP9 *
|
|||||||
|
|
||||||
mpp_put_align(&bp, 64, 0);//128
|
mpp_put_align(&bp, 64, 0);//128
|
||||||
|
|
||||||
#ifdef DUMP_DATA
|
#ifdef DUMP_VDPU383_DATAS
|
||||||
{
|
{
|
||||||
char *cur_fname = "global_cfg.dat";
|
char *cur_fname = "global_cfg.dat";
|
||||||
memset(dump_cur_fname_path, 0, sizeof(dump_cur_fname_path));
|
memset(dump_cur_fname_path, 0, sizeof(dump_cur_fname_path));
|
||||||
sprintf(dump_cur_fname_path, "%s/%s", dump_cur_dir, cur_fname);
|
sprintf(dump_cur_fname_path, "%s/%s", dump_cur_dir, cur_fname);
|
||||||
dump_data(dump_cur_fname_path, (void *)bp.pbuf, 64 * (bp.index - 1) + bp.bitpos, 64, 0);
|
dump_data_to_file(dump_cur_fname_path, (void *)bp.pbuf, 64 * (bp.index - 1) + bp.bitpos, 64, 0);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -810,15 +720,15 @@ static MPP_RET hal_vp9d_vdpu383_gen_regs(void *hal, HalTaskInfo *task)
|
|||||||
vp9_hw_regs = (Vdpu383Vp9dRegSet*)hw_ctx->hw_regs;
|
vp9_hw_regs = (Vdpu383Vp9dRegSet*)hw_ctx->hw_regs;
|
||||||
memset(vp9_hw_regs, 0, sizeof(Vdpu383Vp9dRegSet));
|
memset(vp9_hw_regs, 0, sizeof(Vdpu383Vp9dRegSet));
|
||||||
|
|
||||||
#ifdef DUMP_DATA
|
#ifdef DUMP_VDPU383_DATAS
|
||||||
{
|
{
|
||||||
dump_cur_frame++;
|
|
||||||
memset(dump_cur_dir, 0, sizeof(dump_cur_dir));
|
memset(dump_cur_dir, 0, sizeof(dump_cur_dir));
|
||||||
sprintf(dump_cur_dir, "vp9/Frame%04d", p_hal->frame_no);
|
sprintf(dump_cur_dir, "vp9/Frame%04d", dump_cur_frame);
|
||||||
if (access(dump_cur_dir, 0)) {
|
if (access(dump_cur_dir, 0)) {
|
||||||
if (mkdir(dump_cur_dir))
|
if (mkdir(dump_cur_dir))
|
||||||
mpp_err_f("error: mkdir %s\n", dump_cur_dir);
|
mpp_err_f("error: mkdir %s\n", dump_cur_dir);
|
||||||
}
|
}
|
||||||
|
dump_cur_frame++;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -871,13 +781,13 @@ static MPP_RET hal_vp9d_vdpu383_gen_regs(void *hal, HalTaskInfo *task)
|
|||||||
if (hw_ctx->prob_ctx_valid[frame_ctx_id]) {
|
if (hw_ctx->prob_ctx_valid[frame_ctx_id]) {
|
||||||
vp9_hw_regs->vp9d_addrs.reg184_lastprob_base =
|
vp9_hw_regs->vp9d_addrs.reg184_lastprob_base =
|
||||||
mpp_buffer_get_fd(hw_ctx->prob_loop_base[frame_ctx_id]);
|
mpp_buffer_get_fd(hw_ctx->prob_loop_base[frame_ctx_id]);
|
||||||
#ifdef DUMP_DATA
|
#ifdef DUMP_VDPU383_DATAS
|
||||||
{ cur_last_prob_base = hw_ctx->prob_loop_base[frame_ctx_id]; }
|
{ cur_last_prob_base = hw_ctx->prob_loop_base[frame_ctx_id]; }
|
||||||
#endif
|
#endif
|
||||||
} else {
|
} else {
|
||||||
vp9_hw_regs->vp9d_addrs.reg184_lastprob_base = mpp_buffer_get_fd(hw_ctx->prob_default_base);
|
vp9_hw_regs->vp9d_addrs.reg184_lastprob_base = mpp_buffer_get_fd(hw_ctx->prob_default_base);
|
||||||
hw_ctx->prob_ctx_valid[frame_ctx_id] |= pic_param->refresh_frame_context;
|
hw_ctx->prob_ctx_valid[frame_ctx_id] |= pic_param->refresh_frame_context;
|
||||||
#ifdef DUMP_DATA
|
#ifdef DUMP_VDPU383_DATAS
|
||||||
{ cur_last_prob_base = hw_ctx->prob_default_base; }
|
{ cur_last_prob_base = hw_ctx->prob_default_base; }
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
@@ -885,20 +795,20 @@ static MPP_RET hal_vp9d_vdpu383_gen_regs(void *hal, HalTaskInfo *task)
|
|||||||
mpp_buffer_get_fd(hw_ctx->prob_loop_base[frame_ctx_id]);
|
mpp_buffer_get_fd(hw_ctx->prob_loop_base[frame_ctx_id]);
|
||||||
}
|
}
|
||||||
vp9_hw_regs->vp9d_addrs.reg183_kfprob_base = mpp_buffer_get_fd(hw_ctx->probe_base);
|
vp9_hw_regs->vp9d_addrs.reg183_kfprob_base = mpp_buffer_get_fd(hw_ctx->probe_base);
|
||||||
#ifdef DUMP_DATA
|
#ifdef DUMP_VDPU383_DATAS
|
||||||
{
|
{
|
||||||
char *cur_fname = "cabac_last_probe.dat";
|
char *cur_fname = "cabac_last_probe.dat";
|
||||||
memset(dump_cur_fname_path, 0, sizeof(dump_cur_fname_path));
|
memset(dump_cur_fname_path, 0, sizeof(dump_cur_fname_path));
|
||||||
sprintf(dump_cur_fname_path, "%s/%s", dump_cur_dir, cur_fname);
|
sprintf(dump_cur_fname_path, "%s/%s", dump_cur_dir, cur_fname);
|
||||||
dump_data(dump_cur_fname_path, (void *)mpp_buffer_get_ptr(cur_last_prob_base),
|
dump_data_to_file(dump_cur_fname_path, (void *)mpp_buffer_get_ptr(cur_last_prob_base),
|
||||||
8 * 152 * 16, 128, 0);
|
8 * 152 * 16, 128, 0);
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
char *cur_fname = "cabac_kf_probe.dat";
|
char *cur_fname = "cabac_kf_probe.dat";
|
||||||
memset(dump_cur_fname_path, 0, sizeof(dump_cur_fname_path));
|
memset(dump_cur_fname_path, 0, sizeof(dump_cur_fname_path));
|
||||||
sprintf(dump_cur_fname_path, "%s/%s", dump_cur_dir, cur_fname);
|
sprintf(dump_cur_fname_path, "%s/%s", dump_cur_dir, cur_fname);
|
||||||
dump_data(dump_cur_fname_path, (void *)mpp_buffer_get_ptr(hw_ctx->probe_base),
|
dump_data_to_file(dump_cur_fname_path, (void *)mpp_buffer_get_ptr(hw_ctx->probe_base),
|
||||||
8 * PROB_KF_SIZE, 128, 0);
|
8 * PROB_KF_SIZE, 128, 0);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
#else
|
#else
|
||||||
@@ -985,15 +895,15 @@ static MPP_RET hal_vp9d_vdpu383_gen_regs(void *hal, HalTaskInfo *task)
|
|||||||
vp9_hw_regs->vp9d_addrs.reg181_segidlast_base = mpp_buffer_get_fd(hw_ctx->segid_cur_base);
|
vp9_hw_regs->vp9d_addrs.reg181_segidlast_base = mpp_buffer_get_fd(hw_ctx->segid_cur_base);
|
||||||
vp9_hw_regs->vp9d_addrs.reg182_segidcur_base = mpp_buffer_get_fd(hw_ctx->segid_last_base);
|
vp9_hw_regs->vp9d_addrs.reg182_segidcur_base = mpp_buffer_get_fd(hw_ctx->segid_last_base);
|
||||||
}
|
}
|
||||||
#ifdef DUMP_DATA
|
#ifdef DUMP_VDPU383_DATAS
|
||||||
cur_last_segid_flag = hw_ctx->last_segid_flag;
|
cur_last_segid_flag = hw_ctx->last_segid_flag;
|
||||||
{
|
{
|
||||||
char *cur_fname = "stream_in.dat";
|
char *cur_fname = "stream_in.dat";
|
||||||
memset(dump_cur_fname_path, 0, sizeof(dump_cur_fname_path));
|
memset(dump_cur_fname_path, 0, sizeof(dump_cur_fname_path));
|
||||||
sprintf(dump_cur_fname_path, "%s/%s", dump_cur_dir, cur_fname);
|
sprintf(dump_cur_fname_path, "%s/%s", dump_cur_dir, cur_fname);
|
||||||
dump_data(dump_cur_fname_path, (void *)mpp_buffer_get_ptr(streambuf)
|
dump_data_to_file(dump_cur_fname_path, (void *)mpp_buffer_get_ptr(streambuf)
|
||||||
+ pic_param->uncompressed_header_size_byte_aligned,
|
+ pic_param->uncompressed_header_size_byte_aligned,
|
||||||
8 * (((stream_len + 15) & (~15)) + 0x80), 128, 0);
|
8 * (((stream_len + 15) & (~15)) + 0x80), 128, 0);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
/* set last segid flag */
|
/* set last segid flag */
|
||||||
@@ -1237,37 +1147,42 @@ static MPP_RET hal_vp9d_vdpu383_wait(void *hal, HalTaskInfo *task)
|
|||||||
ret = mpp_dev_ioctl(p_hal->dev, MPP_DEV_CMD_POLL, NULL);
|
ret = mpp_dev_ioctl(p_hal->dev, MPP_DEV_CMD_POLL, NULL);
|
||||||
if (ret)
|
if (ret)
|
||||||
mpp_err_f("poll cmd failed %d\n", ret);
|
mpp_err_f("poll cmd failed %d\n", ret);
|
||||||
#ifdef DUMP_DATA
|
#ifdef DUMP_VDPU383_DATAS
|
||||||
{
|
{
|
||||||
char *cur_fname = "cabac_update_probe.dat";
|
char *cur_fname = "cabac_update_probe.dat";
|
||||||
DXVA_PicParams_VP9 *pic_param = (DXVA_PicParams_VP9*)task->dec.syntax.data;
|
DXVA_PicParams_VP9 *pic_param = (DXVA_PicParams_VP9*)task->dec.syntax.data;
|
||||||
RK_U32 frame_ctx_id = pic_param->frame_context_idx;
|
RK_U32 frame_ctx_id = pic_param->frame_context_idx;
|
||||||
memset(dump_cur_fname_path, 0, sizeof(dump_cur_fname_path));
|
memset(dump_cur_fname_path, 0, sizeof(dump_cur_fname_path));
|
||||||
sprintf(dump_cur_fname_path, "%s/%s", dump_cur_dir, cur_fname);
|
sprintf(dump_cur_fname_path, "%s/%s", dump_cur_dir, cur_fname);
|
||||||
dump_data(dump_cur_fname_path, (void *)mpp_buffer_get_ptr(hw_ctx->prob_loop_base[frame_ctx_id]),
|
dump_data_to_file(dump_cur_fname_path,
|
||||||
8 * 152 * 16, 128, 0);
|
(void *)mpp_buffer_get_ptr(hw_ctx->prob_loop_base[frame_ctx_id]),
|
||||||
|
8 * 152 * 16, 128, 0);
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
char *cur_fname = "segid_last.dat";
|
char *cur_fname = "segid_last.dat";
|
||||||
memset(dump_cur_fname_path, 0, sizeof(dump_cur_fname_path));
|
memset(dump_cur_fname_path, 0, sizeof(dump_cur_fname_path));
|
||||||
sprintf(dump_cur_fname_path, "%s/%s", dump_cur_dir, cur_fname);
|
sprintf(dump_cur_fname_path, "%s/%s", dump_cur_dir, cur_fname);
|
||||||
if (!cur_last_segid_flag)
|
if (!cur_last_segid_flag)
|
||||||
dump_data(dump_cur_fname_path, (void *)mpp_buffer_get_ptr(hw_ctx->segid_cur_base),
|
dump_data_to_file(dump_cur_fname_path,
|
||||||
8 * 1559 * 8, 64, 0);
|
(void *)mpp_buffer_get_ptr(hw_ctx->segid_cur_base),
|
||||||
|
8 * 1559 * 8, 64, 0);
|
||||||
else
|
else
|
||||||
dump_data(dump_cur_fname_path, (void *)mpp_buffer_get_ptr(hw_ctx->segid_last_base),
|
dump_data_to_file(dump_cur_fname_path,
|
||||||
8 * 1559 * 8, 64, 0);
|
(void *)mpp_buffer_get_ptr(hw_ctx->segid_last_base),
|
||||||
|
8 * 1559 * 8, 64, 0);
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
char *cur_fname = "segid_cur.dat";
|
char *cur_fname = "segid_cur.dat";
|
||||||
memset(dump_cur_fname_path, 0, sizeof(dump_cur_fname_path));
|
memset(dump_cur_fname_path, 0, sizeof(dump_cur_fname_path));
|
||||||
sprintf(dump_cur_fname_path, "%s/%s", dump_cur_dir, cur_fname);
|
sprintf(dump_cur_fname_path, "%s/%s", dump_cur_dir, cur_fname);
|
||||||
if (cur_last_segid_flag)
|
if (cur_last_segid_flag)
|
||||||
dump_data(dump_cur_fname_path, (void *)mpp_buffer_get_ptr(hw_ctx->segid_cur_base),
|
dump_data_to_file(dump_cur_fname_path,
|
||||||
8 * 1559 * 8, 64, 0);
|
(void *)mpp_buffer_get_ptr(hw_ctx->segid_cur_base),
|
||||||
|
8 * 1559 * 8, 64, 0);
|
||||||
else
|
else
|
||||||
dump_data(dump_cur_fname_path, (void *)mpp_buffer_get_ptr(hw_ctx->segid_last_base),
|
dump_data_to_file(dump_cur_fname_path,
|
||||||
8 * 1559 * 8, 64, 0);
|
(void *)mpp_buffer_get_ptr(hw_ctx->segid_last_base),
|
||||||
|
8 * 1559 * 8, 64, 0);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@@ -130,8 +130,6 @@
|
|||||||
#define OFFSET_AV1D_ADDR_REGS (168 * sizeof(RK_U32))
|
#define OFFSET_AV1D_ADDR_REGS (168 * sizeof(RK_U32))
|
||||||
#define OFFSET_INTERRUPT_REGS (15 * sizeof(RK_U32))
|
#define OFFSET_INTERRUPT_REGS (15 * sizeof(RK_U32))
|
||||||
|
|
||||||
#define DUMP_AV1_DATAS 0
|
|
||||||
|
|
||||||
typedef struct av1d_rkv_buf_t {
|
typedef struct av1d_rkv_buf_t {
|
||||||
RK_U32 valid;
|
RK_U32 valid;
|
||||||
Vdpu383Av1dRegSet *regs;
|
Vdpu383Av1dRegSet *regs;
|
||||||
@@ -220,9 +218,9 @@ typedef struct VdpuAv1dRegCtx_t {
|
|||||||
RK_U8 header_data[VDPU383_UNCMPS_HEADER_SIZE];
|
RK_U8 header_data[VDPU383_UNCMPS_HEADER_SIZE];
|
||||||
} Vdpu383Av1dRegCtx;
|
} Vdpu383Av1dRegCtx;
|
||||||
|
|
||||||
// #define DUMP_DATA
|
// #define DUMP_AV1D_VDPU383_DATAS
|
||||||
|
|
||||||
#ifdef DUMP_DATA
|
#ifdef DUMP_AV1D_VDPU383_DATAS
|
||||||
static RK_U32 dump_cur_frame = 0;
|
static RK_U32 dump_cur_frame = 0;
|
||||||
static char dump_cur_dir[128];
|
static char dump_cur_dir[128];
|
||||||
static char dump_cur_fname_path[512];
|
static char dump_cur_fname_path[512];
|
||||||
@@ -241,8 +239,8 @@ static MPP_RET flip_string(char *str)
|
|||||||
return MPP_OK;
|
return MPP_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
static MPP_RET dump_data(char *fname_path, void *data, RK_U32 data_bit_size,
|
static MPP_RET dump_data_to_file(char *fname_path, void *data, RK_U32 data_bit_size,
|
||||||
RK_U32 line_bits, RK_U32 big_end, RK_U32 append)
|
RK_U32 line_bits, RK_U32 big_end, RK_U32 append)
|
||||||
{
|
{
|
||||||
RK_U8 *buf_p = (RK_U8 *)data;
|
RK_U8 *buf_p = (RK_U8 *)data;
|
||||||
RK_U8 cur_data;
|
RK_U8 cur_data;
|
||||||
@@ -1987,7 +1985,7 @@ static void vdpu383_av1d_set_cdf(Av1dHalCtx *p_hal, DXVA_PicParams_AV1 *dxva)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* use para in decoder */
|
/* use para in decoder */
|
||||||
#ifdef DUMP_DATA
|
#ifdef DUMP_AV1D_VDPU383_DATAS
|
||||||
{
|
{
|
||||||
char *cur_fname = "cabac_cdf_in.dat";
|
char *cur_fname = "cabac_cdf_in.dat";
|
||||||
memset(dump_cur_fname_path, 0, sizeof(dump_cur_fname_path));
|
memset(dump_cur_fname_path, 0, sizeof(dump_cur_fname_path));
|
||||||
@@ -2006,13 +2004,13 @@ static void vdpu383_av1d_set_cdf(Av1dHalCtx *p_hal, DXVA_PicParams_AV1 *dxva)
|
|||||||
|
|
||||||
regs->av1d_addrs.reg184_av1_noncoef_rd_base = mpp_buffer_get_fd(reg_ctx->cdf_rd_def_base);
|
regs->av1d_addrs.reg184_av1_noncoef_rd_base = mpp_buffer_get_fd(reg_ctx->cdf_rd_def_base);
|
||||||
regs->av1d_addrs.reg178_av1_coef_rd_base = mpp_buffer_get_fd(reg_ctx->cdf_rd_def_base);
|
regs->av1d_addrs.reg178_av1_coef_rd_base = mpp_buffer_get_fd(reg_ctx->cdf_rd_def_base);
|
||||||
#ifdef DUMP_DATA
|
#ifdef DUMP_AV1D_VDPU383_DATAS
|
||||||
{
|
{
|
||||||
dump_data(dump_cur_fname_path, (void *)mpp_buffer_get_ptr(reg_ctx->cdf_rd_def_base),
|
dump_data_to_file(dump_cur_fname_path, (void *)mpp_buffer_get_ptr(reg_ctx->cdf_rd_def_base),
|
||||||
8 * NON_COEF_CDF_SIZE, 128, 0, 0);
|
8 * NON_COEF_CDF_SIZE, 128, 0, 0);
|
||||||
dump_data(dump_cur_fname_path, (RK_U8 *)mpp_buffer_get_ptr(reg_ctx->cdf_rd_def_base)
|
dump_data_to_file(dump_cur_fname_path, (RK_U8 *)mpp_buffer_get_ptr(reg_ctx->cdf_rd_def_base)
|
||||||
+ NON_COEF_CDF_SIZE + COEF_CDF_SIZE * coeff_cdf_idx,
|
+ NON_COEF_CDF_SIZE + COEF_CDF_SIZE * coeff_cdf_idx,
|
||||||
8 * COEF_CDF_SIZE, 128, 0, 1);
|
8 * COEF_CDF_SIZE, 128, 0, 1);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
} else {
|
} else {
|
||||||
@@ -2022,13 +2020,13 @@ static void vdpu383_av1d_set_cdf(Av1dHalCtx *p_hal, DXVA_PicParams_AV1 *dxva)
|
|||||||
cdf_buf = hal_bufs_get_buf(reg_ctx->cdf_bufs, dxva->frame_refs[mapped_idx].Index);
|
cdf_buf = hal_bufs_get_buf(reg_ctx->cdf_bufs, dxva->frame_refs[mapped_idx].Index);
|
||||||
regs->av1d_addrs.reg184_av1_noncoef_rd_base = mpp_buffer_get_fd(cdf_buf->buf[0]);
|
regs->av1d_addrs.reg184_av1_noncoef_rd_base = mpp_buffer_get_fd(cdf_buf->buf[0]);
|
||||||
regs->av1d_addrs.reg178_av1_coef_rd_base = mpp_buffer_get_fd(cdf_buf->buf[0]);
|
regs->av1d_addrs.reg178_av1_coef_rd_base = mpp_buffer_get_fd(cdf_buf->buf[0]);
|
||||||
#ifdef DUMP_DATA
|
#ifdef DUMP_AV1D_VDPU383_DATAS
|
||||||
{
|
{
|
||||||
dump_data(dump_cur_fname_path, (void *)mpp_buffer_get_ptr(cdf_buf->buf[0]),
|
dump_data_to_file(dump_cur_fname_path, (void *)mpp_buffer_get_ptr(cdf_buf->buf[0]),
|
||||||
8 * NON_COEF_CDF_SIZE, 128, 0, 0);
|
8 * NON_COEF_CDF_SIZE, 128, 0, 0);
|
||||||
dump_data(dump_cur_fname_path, (RK_U8 *)mpp_buffer_get_ptr(cdf_buf->buf[0])
|
dump_data_to_file(dump_cur_fname_path, (RK_U8 *)mpp_buffer_get_ptr(cdf_buf->buf[0])
|
||||||
+ NON_COEF_CDF_SIZE + COEF_CDF_SIZE * coeff_cdf_idx,
|
+ NON_COEF_CDF_SIZE + COEF_CDF_SIZE * coeff_cdf_idx,
|
||||||
8 * COEF_CDF_SIZE, 128, 0, 1);
|
8 * COEF_CDF_SIZE, 128, 0, 1);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
@@ -2070,13 +2068,13 @@ static void vdpu383_av1d_set_cdf(Av1dHalCtx *p_hal, DXVA_PicParams_AV1 *dxva)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef DUMP_DATA
|
#ifdef DUMP_AV1D_VDPU383_DATAS
|
||||||
{
|
{
|
||||||
char *cur_fname = "cdf_rd_def.dat";
|
char *cur_fname = "cdf_rd_def.dat";
|
||||||
memset(dump_cur_fname_path, 0, sizeof(dump_cur_fname_path));
|
memset(dump_cur_fname_path, 0, sizeof(dump_cur_fname_path));
|
||||||
sprintf(dump_cur_fname_path, "%s/%s", dump_cur_dir, cur_fname);
|
sprintf(dump_cur_fname_path, "%s/%s", dump_cur_dir, cur_fname);
|
||||||
dump_data(dump_cur_fname_path, (void *)mpp_buffer_get_ptr(reg_ctx->cdf_rd_def_base),
|
dump_data_to_file(dump_cur_fname_path, (void *)mpp_buffer_get_ptr(reg_ctx->cdf_rd_def_base),
|
||||||
(NON_COEF_CDF_SIZE + COEF_CDF_SIZE * 4) * 8, 128, 0, 0);
|
(NON_COEF_CDF_SIZE + COEF_CDF_SIZE * 4) * 8, 128, 0, 0);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -2117,15 +2115,15 @@ MPP_RET vdpu383_av1d_gen_regs(void *hal, HalTaskInfo *task)
|
|||||||
memset(regs, 0, sizeof(*regs));
|
memset(regs, 0, sizeof(*regs));
|
||||||
p_hal->strm_len = (RK_S32)mpp_packet_get_length(task->dec.input_packet);
|
p_hal->strm_len = (RK_S32)mpp_packet_get_length(task->dec.input_packet);
|
||||||
|
|
||||||
#ifdef DUMP_DATA
|
#ifdef DUMP_AV1D_VDPU383_DATAS
|
||||||
{
|
{
|
||||||
dump_cur_frame++;
|
|
||||||
memset(dump_cur_dir, 0, sizeof(dump_cur_dir));
|
memset(dump_cur_dir, 0, sizeof(dump_cur_dir));
|
||||||
sprintf(dump_cur_dir, "av1/Frame%04d", p_hal->frame_no);
|
sprintf(dump_cur_dir, "av1/Frame%04d", dump_cur_frame);
|
||||||
if (access(dump_cur_dir, 0)) {
|
if (access(dump_cur_dir, 0)) {
|
||||||
if (mkdir(dump_cur_dir))
|
if (mkdir(dump_cur_dir))
|
||||||
mpp_err_f("error: mkdir %s\n", dump_cur_dir);
|
mpp_err_f("error: mkdir %s\n", dump_cur_dir);
|
||||||
}
|
}
|
||||||
|
dump_cur_frame++;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -2182,13 +2180,13 @@ MPP_RET vdpu383_av1d_gen_regs(void *hal, HalTaskInfo *task)
|
|||||||
regs->av1d_paras.reg67_global_len = VDPU383_UNCMPS_HEADER_SIZE / 16; // 128 bit as unit
|
regs->av1d_paras.reg67_global_len = VDPU383_UNCMPS_HEADER_SIZE / 16; // 128 bit as unit
|
||||||
regs->com_pkt_addr.reg131_gbl_base = ctx->bufs_fd;
|
regs->com_pkt_addr.reg131_gbl_base = ctx->bufs_fd;
|
||||||
// mpp_dev_set_reg_offset(p_hal->dev, 131, ctx->offset_uncomps);
|
// mpp_dev_set_reg_offset(p_hal->dev, 131, ctx->offset_uncomps);
|
||||||
#ifdef DUMP_DATA
|
#ifdef DUMP_AV1D_VDPU383_DATAS
|
||||||
{
|
{
|
||||||
char *cur_fname = "global_cfg.dat";
|
char *cur_fname = "global_cfg.dat";
|
||||||
memset(dump_cur_fname_path, 0, sizeof(dump_cur_fname_path));
|
memset(dump_cur_fname_path, 0, sizeof(dump_cur_fname_path));
|
||||||
sprintf(dump_cur_fname_path, "%s/%s", dump_cur_dir, cur_fname);
|
sprintf(dump_cur_fname_path, "%s/%s", dump_cur_dir, cur_fname);
|
||||||
dump_data(dump_cur_fname_path, ctx->bufs_ptr,
|
dump_data_to_file(dump_cur_fname_path, ctx->bufs_ptr,
|
||||||
8 * regs->av1d_paras.reg67_global_len * 16, 64, 0, 0);
|
8 * regs->av1d_paras.reg67_global_len * 16, 64, 0, 0);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
// input strm
|
// input strm
|
||||||
@@ -2200,21 +2198,21 @@ MPP_RET vdpu383_av1d_gen_regs(void *hal, HalTaskInfo *task)
|
|||||||
mpp_dev_set_reg_offset(p_hal->dev, 128, ctx->offset_uncomps & 0xfffffff0);
|
mpp_dev_set_reg_offset(p_hal->dev, 128, ctx->offset_uncomps & 0xfffffff0);
|
||||||
/* error */
|
/* error */
|
||||||
regs->av1d_addrs.reg169_error_ref_base = mpp_buffer_get_fd(mbuffer);
|
regs->av1d_addrs.reg169_error_ref_base = mpp_buffer_get_fd(mbuffer);
|
||||||
#ifdef DUMP_DATA
|
#ifdef DUMP_AV1D_VDPU383_DATAS
|
||||||
{
|
{
|
||||||
char *cur_fname = "stream_in.dat";
|
char *cur_fname = "stream_in.dat";
|
||||||
memset(dump_cur_fname_path, 0, sizeof(dump_cur_fname_path));
|
memset(dump_cur_fname_path, 0, sizeof(dump_cur_fname_path));
|
||||||
sprintf(dump_cur_fname_path, "%s/%s", dump_cur_dir, cur_fname);
|
sprintf(dump_cur_fname_path, "%s/%s", dump_cur_dir, cur_fname);
|
||||||
dump_data(dump_cur_fname_path, (void *)mpp_buffer_get_ptr(mbuffer)
|
dump_data_to_file(dump_cur_fname_path, (void *)mpp_buffer_get_ptr(mbuffer)
|
||||||
+ ctx->offset_uncomps,
|
+ ctx->offset_uncomps,
|
||||||
8 * p_hal->strm_len, 128, 0, 0);
|
8 * p_hal->strm_len, 128, 0, 0);
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
char *cur_fname = "stream_in_no_offset.dat";
|
char *cur_fname = "stream_in_no_offset.dat";
|
||||||
memset(dump_cur_fname_path, 0, sizeof(dump_cur_fname_path));
|
memset(dump_cur_fname_path, 0, sizeof(dump_cur_fname_path));
|
||||||
sprintf(dump_cur_fname_path, "%s/%s", dump_cur_dir, cur_fname);
|
sprintf(dump_cur_fname_path, "%s/%s", dump_cur_dir, cur_fname);
|
||||||
dump_data(dump_cur_fname_path, (void *)mpp_buffer_get_ptr(mbuffer),
|
dump_data_to_file(dump_cur_fname_path, (void *)mpp_buffer_get_ptr(mbuffer),
|
||||||
8 * p_hal->strm_len, 128, 0, 0);
|
8 * p_hal->strm_len, 128, 0, 0);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
@@ -2333,20 +2331,20 @@ MPP_RET vdpu383_av1d_gen_regs(void *hal, HalTaskInfo *task)
|
|||||||
vdpu383_av1d_colmv_setup(p_hal, dxva);
|
vdpu383_av1d_colmv_setup(p_hal, dxva);
|
||||||
mv_buf = hal_bufs_get_buf(ctx->colmv_bufs, dxva->CurrPic.Index7Bits);
|
mv_buf = hal_bufs_get_buf(ctx->colmv_bufs, dxva->CurrPic.Index7Bits);
|
||||||
regs->av1d_addrs.reg216_colmv_cur_base = mpp_buffer_get_fd(mv_buf->buf[0]);
|
regs->av1d_addrs.reg216_colmv_cur_base = mpp_buffer_get_fd(mv_buf->buf[0]);
|
||||||
#ifdef DUMP_DATA
|
#ifdef DUMP_AV1D_VDPU383_DATAS
|
||||||
memset(mpp_buffer_get_ptr(mv_buf->buf[0]), 0, mpp_buffer_get_size(mv_buf->buf[0]));
|
memset(mpp_buffer_get_ptr(mv_buf->buf[0]), 0, mpp_buffer_get_size(mv_buf->buf[0]));
|
||||||
#endif
|
#endif
|
||||||
for (i = 0; i < NUM_REF_FRAMES; i++) {
|
for (i = 0; i < NUM_REF_FRAMES; i++) {
|
||||||
if (dxva->frame_refs[i].Index != (CHAR)0xff && dxva->frame_refs[i].Index != 0x7f) {
|
if (dxva->frame_refs[i].Index != (CHAR)0xff && dxva->frame_refs[i].Index != 0x7f) {
|
||||||
mv_buf = hal_bufs_get_buf(ctx->colmv_bufs, dxva->frame_refs[i].Index);
|
mv_buf = hal_bufs_get_buf(ctx->colmv_bufs, dxva->frame_refs[i].Index);
|
||||||
regs->av1d_addrs.reg217_232_colmv_ref_base[i] = mpp_buffer_get_fd(mv_buf->buf[0]);
|
regs->av1d_addrs.reg217_232_colmv_ref_base[i] = mpp_buffer_get_fd(mv_buf->buf[0]);
|
||||||
#ifdef DUMP_DATA
|
#ifdef DUMP_AV1D_VDPU383_DATAS
|
||||||
{
|
{
|
||||||
char *cur_fname = "colmv_ref_frame";
|
char *cur_fname = "colmv_ref_frame";
|
||||||
memset(dump_cur_fname_path, 0, sizeof(dump_cur_fname_path));
|
memset(dump_cur_fname_path, 0, sizeof(dump_cur_fname_path));
|
||||||
sprintf(dump_cur_fname_path, "%s/%s%d.dat", dump_cur_dir, cur_fname, i);
|
sprintf(dump_cur_fname_path, "%s/%s%d.dat", dump_cur_dir, cur_fname, i);
|
||||||
dump_data(dump_cur_fname_path, (void *)mpp_buffer_get_ptr(mv_buf->buf[0]),
|
dump_data_to_file(dump_cur_fname_path, (void *)mpp_buffer_get_ptr(mv_buf->buf[0]),
|
||||||
8 * 5120 * 8, 64, 0, 0);
|
8 * 5120 * 8, 64, 0, 0);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
@@ -2377,23 +2375,6 @@ MPP_RET vdpu383_av1d_start(void *hal, HalTaskInfo *task)
|
|||||||
reg_ctx->reg_buf[task->dec.reg_index].regs :
|
reg_ctx->reg_buf[task->dec.reg_index].regs :
|
||||||
reg_ctx->regs;
|
reg_ctx->regs;
|
||||||
MppDev dev = p_hal->dev;
|
MppDev dev = p_hal->dev;
|
||||||
#if DUMP_AV1_DATAS
|
|
||||||
{
|
|
||||||
RK_U32 i = 0;
|
|
||||||
RK_U32 *p = (RK_U32*)regs;
|
|
||||||
char fname[128];
|
|
||||||
FILE *fp_in = NULL;
|
|
||||||
static RK_U32 g_frame_no = 0;
|
|
||||||
|
|
||||||
sprintf(fname, "/data/video/reg_%d_in.txt", g_frame_no++);
|
|
||||||
fp_in = fopen(fname, "wb");
|
|
||||||
for (i = 0; i < sizeof(*regs) / 4; i++, p++)
|
|
||||||
fprintf(fp_in, "reg[%3d] = %08x\n", i, *p);
|
|
||||||
|
|
||||||
fflush(fp_in);
|
|
||||||
fclose(fp_in);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
do {
|
do {
|
||||||
MppDevRegWrCfg wr_cfg;
|
MppDevRegWrCfg wr_cfg;
|
||||||
MppDevRegRdCfg rd_cfg;
|
MppDevRegRdCfg rd_cfg;
|
||||||
@@ -2475,7 +2456,7 @@ MPP_RET vdpu383_av1d_wait(void *hal, HalTaskInfo *task)
|
|||||||
reg_ctx->reg_buf[task->dec.reg_index].regs :
|
reg_ctx->reg_buf[task->dec.reg_index].regs :
|
||||||
reg_ctx->regs;
|
reg_ctx->regs;
|
||||||
(void) p_regs;
|
(void) p_regs;
|
||||||
#ifdef DUMP_DATA
|
#ifdef DUMP_AV1D_VDPU383_DATAS
|
||||||
{
|
{
|
||||||
char *cur_fname = "colmv_cur_frame.dat";
|
char *cur_fname = "colmv_cur_frame.dat";
|
||||||
DXVA_PicParams_AV1 *dxva = (DXVA_PicParams_AV1*)task->dec.syntax.data;
|
DXVA_PicParams_AV1 *dxva = (DXVA_PicParams_AV1*)task->dec.syntax.data;
|
||||||
@@ -2483,8 +2464,8 @@ MPP_RET vdpu383_av1d_wait(void *hal, HalTaskInfo *task)
|
|||||||
mv_buf = hal_bufs_get_buf(reg_ctx->colmv_bufs, dxva->CurrPic.Index7Bits);
|
mv_buf = hal_bufs_get_buf(reg_ctx->colmv_bufs, dxva->CurrPic.Index7Bits);
|
||||||
memset(dump_cur_fname_path, 0, sizeof(dump_cur_fname_path));
|
memset(dump_cur_fname_path, 0, sizeof(dump_cur_fname_path));
|
||||||
sprintf(dump_cur_fname_path, "%s/%s", dump_cur_dir, cur_fname);
|
sprintf(dump_cur_fname_path, "%s/%s", dump_cur_dir, cur_fname);
|
||||||
dump_data(dump_cur_fname_path, (void *)mpp_buffer_get_ptr(mv_buf->buf[0]),
|
dump_data_to_file(dump_cur_fname_path, (void *)mpp_buffer_get_ptr(mv_buf->buf[0]),
|
||||||
8 * 5120 * 8, 64, 0, 0);
|
8 * 5120 * 8, 64, 0, 0);
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
char *cur_fname = "decout.dat";
|
char *cur_fname = "decout.dat";
|
||||||
@@ -2492,8 +2473,8 @@ MPP_RET vdpu383_av1d_wait(void *hal, HalTaskInfo *task)
|
|||||||
mpp_buf_slot_get_prop(p_hal->slots, task->dec.output, SLOT_BUFFER, &mbuffer);
|
mpp_buf_slot_get_prop(p_hal->slots, task->dec.output, SLOT_BUFFER, &mbuffer);
|
||||||
memset(dump_cur_fname_path, 0, sizeof(dump_cur_fname_path));
|
memset(dump_cur_fname_path, 0, sizeof(dump_cur_fname_path));
|
||||||
sprintf(dump_cur_fname_path, "%s/%s", dump_cur_dir, cur_fname);
|
sprintf(dump_cur_fname_path, "%s/%s", dump_cur_dir, cur_fname);
|
||||||
dump_data(dump_cur_fname_path, (void *)mpp_buffer_get_ptr(mbuffer),
|
dump_data_to_file(dump_cur_fname_path, (void *)mpp_buffer_get_ptr(mbuffer),
|
||||||
8 * mpp_buffer_get_size(mbuffer), 64, 0, 0);
|
8 * mpp_buffer_get_size(mbuffer), 64, 0, 0);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -2512,7 +2493,7 @@ MPP_RET vdpu383_av1d_wait(void *hal, HalTaskInfo *task)
|
|||||||
ret = mpp_dev_ioctl(p_hal->dev, MPP_DEV_CMD_POLL, NULL);
|
ret = mpp_dev_ioctl(p_hal->dev, MPP_DEV_CMD_POLL, NULL);
|
||||||
if (ret)
|
if (ret)
|
||||||
mpp_err_f("poll cmd failed %d\n", ret);
|
mpp_err_f("poll cmd failed %d\n", ret);
|
||||||
#ifdef DUMP_DATA
|
#ifdef DUMP_AV1D_VDPU383_DATAS
|
||||||
{
|
{
|
||||||
char *cur_fname = "cabac_cdf_out.dat";
|
char *cur_fname = "cabac_cdf_out.dat";
|
||||||
HalBuf *cdf_buf = NULL;
|
HalBuf *cdf_buf = NULL;
|
||||||
@@ -2520,24 +2501,8 @@ MPP_RET vdpu383_av1d_wait(void *hal, HalTaskInfo *task)
|
|||||||
memset(dump_cur_fname_path, 0, sizeof(dump_cur_fname_path));
|
memset(dump_cur_fname_path, 0, sizeof(dump_cur_fname_path));
|
||||||
sprintf(dump_cur_fname_path, "%s/%s", dump_cur_dir, cur_fname);
|
sprintf(dump_cur_fname_path, "%s/%s", dump_cur_dir, cur_fname);
|
||||||
cdf_buf = hal_bufs_get_buf(reg_ctx->cdf_bufs, dxva->CurrPic.Index7Bits);
|
cdf_buf = hal_bufs_get_buf(reg_ctx->cdf_bufs, dxva->CurrPic.Index7Bits);
|
||||||
dump_data(dump_cur_fname_path, (void *)mpp_buffer_get_ptr(cdf_buf->buf[0]),
|
dump_data_to_file(dump_cur_fname_path, (void *)mpp_buffer_get_ptr(cdf_buf->buf[0]),
|
||||||
(NON_COEF_CDF_SIZE + COEF_CDF_SIZE) * 8, 128, 0, 0);
|
(NON_COEF_CDF_SIZE + COEF_CDF_SIZE) * 8, 128, 0, 0);
|
||||||
}
|
|
||||||
#endif
|
|
||||||
#if DUMP_AV1_DATAS
|
|
||||||
{
|
|
||||||
char fname[128];
|
|
||||||
FILE *fp_in = NULL;
|
|
||||||
static RK_U32 g_frame_no = 0;
|
|
||||||
RK_U32 *p = (RK_U32*)p_regs;
|
|
||||||
|
|
||||||
sprintf(fname, "/data/video/reg_%d_out.txt", g_frame_no++);
|
|
||||||
fp_in = fopen(fname, "wb");
|
|
||||||
for (i = 0; i < sizeof(*p_regs) / 4; i++, p++)
|
|
||||||
fprintf(fp_in, "reg[%3d] = %08x\n", i, *p);
|
|
||||||
|
|
||||||
fflush(fp_in);
|
|
||||||
fclose(fp_in);
|
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user