本文整理汇总了C++中VIDC_IO_OUT函数的典型用法代码示例。如果您正苦于以下问题:C++ VIDC_IO_OUT函数的具体用法?C++ VIDC_IO_OUT怎么用?C++ VIDC_IO_OUT使用的例子?那么, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了VIDC_IO_OUT函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: vidc_720p_encode_set_seq_header_buffer
void vidc_720p_encode_set_seq_header_buffer(u32 n_ext_buffer_start,
u32 n_ext_buffer_end,
u32 n_start_byte_num)
{
VIDC_IO_OUT(REG_275113_ADDR, n_ext_buffer_start);
VIDC_IO_OUT(REG_87912, n_ext_buffer_start);
VIDC_IO_OUT(REG_988007_ADDR, n_ext_buffer_end);
VIDC_IO_OUT(REG_66693, n_start_byte_num);
}
示例2: vidc_720p_encode_set_vop_time
void vidc_720p_encode_set_vop_time(u32 vop_time_resolution,
u32 vop_time_increment)
{
u32 enable_vop, vop_timing_reg;
if (!vop_time_resolution)
VIDC_IO_OUT(REG_64895, 0x0);
else {
enable_vop = 0x1;
vop_timing_reg = (enable_vop << 0x1f) |
(vop_time_resolution << 0x10) | vop_time_increment;
VIDC_IO_OUT(REG_64895, vop_timing_reg);
}
}
示例3: vidc_720p_engine_reset
u32 vidc_720p_engine_reset(u32 ch_id,
enum vidc_720p_endian dma_endian,
enum vidc_720p_interrupt_level_selection interrupt_sel,
u32 interrupt_mask
)
{
u32 op_done = 0;
u32 counter = 0;
VIDC_LOGERR_STRING("ENG-RESET!!");
/* issue the engine reset command */
vidc_720p_submit_command(ch_id, VIDC_720P_CMD_MFC_ENGINE_RESET);
do {
VIDC_BUSY_WAIT(20);
VIDC_IO_IN(REG_982553, &op_done);
counter++;
} while (!op_done && counter < 10);
if (!op_done) {
/* Reset fails */
return false ;
}
/* write invalid channel id */
VIDC_IO_OUT(REG_97293, 4);
/* Set INT_PULSE_SEL */
if (interrupt_sel == VIDC_720P_INTERRUPT_LEVEL_SEL)
VIDC_IO_OUT(REG_491082, 0);
else
VIDC_IO_OUT(REG_491082, 1);
if (!interrupt_mask) {
/* Disable interrupt */
VIDC_IO_OUT(REG_609676, 1);
} else {
/* Enable interrupt */
VIDC_IO_OUT(REG_609676, 0);
}
/* Clear any pending interrupt */
VIDC_IO_OUT(REG_614776, 1);
/* Set INT_ENABLE_REG */
VIDC_IO_OUT(REG_418173, interrupt_mask);
/*Sets the DMA endianness */
VIDC_IO_OUT(REG_736316, dma_endian);
/*Restore ARM endianness */
VIDC_IO_OUT(REG_215724, 0);
/* retun engine reset success */
return true ;
}
示例4: vidc_720p_encode_set_multi_slice_info
void vidc_720p_encode_set_multi_slice_info(enum
vidc_720p_MSlice_selection
m_slice_sel,
u32 multi_slice_size)
{
switch (m_slice_sel) {
case VIDC_720P_MSLICE_BY_MB_COUNT:
{
VIDC_IO_OUT(REG_588301, 0x1);
VIDC_IO_OUT(REG_1517, m_slice_sel);
VIDC_IO_OUT(REG_105335, multi_slice_size);
break;
}
case VIDC_720P_MSLICE_BY_BYTE_COUNT:
{
VIDC_IO_OUT(REG_588301, 0x1);
VIDC_IO_OUT(REG_1517, m_slice_sel);
VIDC_IO_OUT(REG_561679, multi_slice_size);
break;
}
case VIDC_720P_MSLICE_BY_GOB:
{
VIDC_IO_OUT(REG_588301, 0x1);
break;
}
default:
case VIDC_720P_MSLICE_OFF:
{
VIDC_IO_OUT(REG_588301, 0x0);
break;
}
}
}
示例5: vidc_720p_decode_bitstream_header
void vidc_720p_decode_bitstream_header(u32 ch_id,
u32 dec_unit_size,
u32 start_byte_num,
u32 ext_buffer_start,
u32 ext_buffer_end,
enum
vidc_720p_memory_access_method
memory_access_model,
u32 decode_order)
{
VIDC_IO_OUT(REG_965480, decode_order);
VIDC_IO_OUT(REG_639999, 0x8080);
VIDC_IO_OUT(REG_275113_ADDR, ext_buffer_start);
VIDC_IO_OUT(REG_988007_ADDR, ext_buffer_end);
VIDC_IO_OUT(REG_87912, ext_buffer_end);
VIDC_IO_OUT(REG_761892, dec_unit_size);
VIDC_IO_OUT(REG_66693, start_byte_num);
VIDC_IO_OUT(REG_841539, memory_access_model);
vidc_720p_submit_command(ch_id, VIDC_720P_CMD_INITCODEC);
}
示例6: vidc_720p_encode_set_rc_config
void vidc_720p_encode_set_rc_config(u32 enable_frame_level_rc,
u32 enable_mb_level_rc_flag,
u32 i_frame_qp, u32 pframe_qp)
{
u32 rc_config = i_frame_qp;
if (enable_frame_level_rc)
rc_config |= (0x1 << 0x9);
if (enable_mb_level_rc_flag)
rc_config |= (0x1 << 0x8);
VIDC_IO_OUT(REG_58211, rc_config);
VIDC_IO_OUT(REG_548359, pframe_qp);
}
示例7: vidc_720p_encode_init_codec
void vidc_720p_encode_init_codec(u32 i_ch_id,
enum vidc_720p_memory_access_method
memory_access_model)
{
VIDC_IO_OUT(REG_841539, memory_access_model);
vidc_720p_submit_command(i_ch_id, VIDC_720P_CMD_INITCODEC);
}
示例8: vidc_720p_decode_bitstream_header
void vidc_720p_decode_bitstream_header(u32 n_ch_id,
u32 n_dec_unit_size,
u32 n_start_byte_num,
u32 n_ext_buffer_start,
u32 n_ext_buffer_end,
enum
vidc_720p_memory_access_method_type
e_memory_access_model)
{
VIDC_IO_OUT(REG_965480, 0x0);
VIDC_IO_OUT(REG_275113_ADDR, n_ext_buffer_start);
VIDC_IO_OUT(REG_988007_ADDR, n_ext_buffer_end);
VIDC_IO_OUT(REG_87912, n_ext_buffer_end);
VIDC_IO_OUT(REG_761892, n_dec_unit_size);
VIDC_IO_OUT(REG_66693, n_start_byte_num);
VIDC_IO_OUT(REG_841539, e_memory_access_model);
vidc_720p_submit_command(n_ch_id, VIDC_720P_CMD_INITCODEC);
}
示例9: vidc_720p_do_sw_reset
u32 vidc_720p_do_sw_reset(void)
{
u32 fw_start = 0;
VIDC_BUSY_WAIT(5);
VIDC_IO_OUT(REG_224135, 0);
VIDC_BUSY_WAIT(5);
VIDC_IO_OUT(REG_193553, 0);
VIDC_BUSY_WAIT(5);
VIDC_IO_OUT(REG_141269, 1);
VIDC_BUSY_WAIT(15);
VIDC_IO_OUT(REG_141269, 0);
VIDC_BUSY_WAIT(5);
VIDC_IO_IN(REG_193553, &fw_start);
if (!fw_start) {
DBG("\n VIDC-SW-RESET-FAILS!");
return false;
}
return true;
}
示例10: vidc_720p_do_sw_reset
u32 vidc_720p_do_sw_reset(void)
{
u32 n_fw_start = 0;
VIDC_BUSY_WAIT(5);
VIDC_IO_OUT(REG_224135, 0);
VIDC_BUSY_WAIT(5);
VIDC_IO_OUT(REG_193553, 0);
VIDC_BUSY_WAIT(5);
VIDC_IO_OUT(REG_141269, 1);
VIDC_BUSY_WAIT(15);
VIDC_IO_OUT(REG_141269, 0);
VIDC_BUSY_WAIT(5);
VIDC_IO_IN(REG_193553, &n_fw_start);
if (!n_fw_start) {
DBG("\n VIDC-SW-RESET-FAILS!");
return FALSE;
}
return TRUE;
}
示例11: vidc_720p_encode_set_db_filter_control
void vidc_720p_encode_set_db_filter_control(enum vidc_720p_DBConfig
db_config,
u32 i_slice_alpha_offset,
u32 i_slice_beta_offset)
{
u32 deblock_params;
deblock_params = (u32)db_config;
deblock_params |=
((i_slice_beta_offset << 0x2) | (i_slice_alpha_offset << 0x7));
/* Write deblocking control settings */
VIDC_IO_OUT(REG_458130, deblock_params);
}
示例12: vidc_720p_reset_is_success
u32 vidc_720p_reset_is_success()
{
u32 stagecounter = 0;
VIDC_IO_IN(REG_352831, &stagecounter);
stagecounter &= 0xff;
if (stagecounter != 0xe5) {
DBG("\n VIDC-CPU_RESET-FAILS!");
VIDC_IO_OUT(REG_224135, 0);
msleep(10);
return false;
}
return true;
}
示例13: vidc_720p_reset_is_success
u32 vidc_720p_reset_is_success()
{
u32 n_stagecounter = 0;
VIDC_IO_IN(REG_352831, &n_stagecounter);
n_stagecounter &= 0xff;
if (n_stagecounter != 0xe5) {
DBG("\n VIDC-CPU_RESET-FAILS!");
VIDC_IO_OUT(REG_224135, 0);
msleep(10);
return FALSE;
}
return TRUE;
}
示例14: vidc_720p_encode_set_entropy_control
void vidc_720p_encode_set_entropy_control(enum vidc_720p_entropy_sel
entropy_sel,
enum vidc_720p_cabac_model
cabac_model_number)
{
u32 num;
u32 entropy_params = (u32)entropy_sel;
/* Set Model Number */
if (entropy_sel == VIDC_720P_ENTROPY_SEL_CABAC) {
num = (u32)cabac_model_number;
entropy_params |= (num << 0x2);
}
/* Set Entropy parameters */
VIDC_IO_OUT(REG_504878, entropy_params);
}
示例15: vidc_720p_encode_set_mb_level_rc_params
void vidc_720p_encode_set_mb_level_rc_params(u32 dark_region_as_flag,
u32 smooth_region_as_flag,
u32 static_region_as_flag,
u32 activity_region_flag)
{
u32 mb_level_rc = 0x0;
if (activity_region_flag)
mb_level_rc |= 0x1;
if (static_region_as_flag)
mb_level_rc |= (0x1 << 0x1);
if (smooth_region_as_flag)
mb_level_rc |= (0x1 << 0x2);
if (dark_region_as_flag)
mb_level_rc |= (0x1 << 0x3);
/* Write MB level rate control */
VIDC_IO_OUT(REG_995041, mb_level_rc);
}