author | zhilei.wu <zhilei.wu@amlogic.com> | 2018-02-09 04:27:44 (GMT) |
---|---|---|
committer | Zhilei Wu <zhilei.wu@amlogic.com> | 2018-02-11 13:48:32 (GMT) |
commit | ba98e049ed99c6f0f34f576d18cb715a003cee7e (patch) | |
tree | bb980d8f554d7047308a0899c139943e3f6dcf94 | |
parent | acc00bcd7183f51973de7fef6604eb45b72afd4c (diff) | |
download | media_modules-ba98e049ed99c6f0f34f576d18cb715a003cee7e.zip media_modules-ba98e049ed99c6f0f34f576d18cb715a003cee7e.tar.gz media_modules-ba98e049ed99c6f0f34f576d18cb715a003cee7e.tar.bz2 |
media_modules: revised dolby vision macro control for g12a
PD#157605: media_modules: revised dolby vision macro control for g12a
Change-Id: I4a6bb3e904782d87916ea303c74da9e47404e366
Signed-off-by: zhilei.wu <zhilei.wu@amlogic.com>
-rw-r--r-- | Media.mk | 1 | ||||
-rw-r--r-- | drivers/frame_provider/decoder/h264_multi/vmh264.c | 44 | ||||
-rw-r--r-- | drivers/frame_provider/decoder/h265/vh265.c | 78 | ||||
-rw-r--r-- | drivers/stream_input/amports/amstream.c | 2 |
4 files changed, 63 insertions, 62 deletions
@@ -16,6 +16,7 @@ CONFIGS := CONFIG_AMLOGIC_MEDIA_VDEC_MPEG12=m \ CONFIG_AMLOGIC_MEDIA_VDEC_AVS=m \ CONFIG_AMLOGIC_MEDIA_VENC_H264=m \ CONFIG_AMLOGIC_MEDIA_VECN_H265=m \ + CONFIG_AMLOGIC_MEDIA_ENHANCEMENT_DOLBYVISION=y CONFIG_AMLOGIC_MEDIA_GE2D=y define copy-media-modules diff --git a/drivers/frame_provider/decoder/h264_multi/vmh264.c b/drivers/frame_provider/decoder/h264_multi/vmh264.c index 3cac836..d8b6b86 100644 --- a/drivers/frame_provider/decoder/h264_multi/vmh264.c +++ b/drivers/frame_provider/decoder/h264_multi/vmh264.c @@ -124,7 +124,7 @@ static unsigned int fixed_frame_rate_mode; static unsigned int error_recovery_mode_in; static int start_decode_buf_level = 0x8000; -#ifdef CONFIG_AM_VDEC_DV +#ifdef CONFIG_AMLOGIC_MEDIA_ENHANCEMENT_DOLBYVISION /*to make reorder size difference of bl and el not too big*/ static unsigned int reorder_dpb_size_margin_dv = 16; #endif @@ -186,7 +186,7 @@ static unsigned int step[H264_DEV_NUM]; static u32 prefix_aux_buf_size = (16 * 1024); static u32 suffix_aux_buf_size; -#ifdef CONFIG_AM_VDEC_DV +#ifdef CONFIG_AMLOGIC_MEDIA_ENHANCEMENT_DOLBYVISION static u32 dv_toggle_prov_name; static u32 dolby_meta_with_el; @@ -374,7 +374,7 @@ struct buffer_spec_s { #endif char *aux_data_buf; int aux_data_size; -#ifdef CONFIG_AM_VDEC_DV +#ifdef CONFIG_AMLOGIC_MEDIA_ENHANCEMENT_DOLBYVISION unsigned char dv_enhance_exist; #endif int canvas_pos; @@ -662,7 +662,7 @@ struct vdec_h264_hw_s { unsigned int total_read_size_pre; unsigned int total_read_size; unsigned int frame_count_pre; -#ifdef CONFIG_AM_VDEC_DV +#ifdef CONFIG_AMLOGIC_MEDIA_ENHANCEMENT_DOLBYVISION u8 switch_dvlayer_flag; u8 got_valid_nal; #endif @@ -2001,13 +2001,13 @@ static void dump_aux_buf(struct vdec_h264_hw_s *hw) static void config_decode_mode(struct vdec_h264_hw_s *hw) { -#ifdef CONFIG_AM_VDEC_DV +#ifdef CONFIG_AMLOGIC_MEDIA_ENHANCEMENT_DOLBYVISION struct vdec_s *vdec = hw_to_vdec(hw); #endif if (input_frame_based(hw_to_vdec(hw))) WRITE_VREG(H264_DECODE_MODE, DECODE_MODE_MULTI_FRAMEBASE); -#ifdef CONFIG_AM_VDEC_DV +#ifdef CONFIG_AMLOGIC_MEDIA_ENHANCEMENT_DOLBYVISION else if (vdec->slave) WRITE_VREG(H264_DECODE_MODE, (hw->got_valid_nal << 8) | @@ -2688,7 +2688,7 @@ static int vh264_event_cb(int type, void *data, void *op_arg) hw->buffer_spec[buf_spec_num].aux_data_buf; req->aux_size = hw->buffer_spec[buf_spec_num].aux_data_size; -#ifdef CONFIG_AM_VDEC_DV +#ifdef CONFIG_AMLOGIC_MEDIA_ENHANCEMENT_DOLBYVISION req->dv_enhance_exist = hw->buffer_spec[buf_spec_num].dv_enhance_exist; #else @@ -2836,7 +2836,7 @@ static int vh264_set_params(struct vdec_h264_hw_s *hw, unsigned int crop_infor, crop_bottom, crop_right; unsigned int used_reorder_dpb_size_margin = reorder_dpb_size_margin; -#ifdef CONFIG_AM_VDEC_DV +#ifdef CONFIG_AMLOGIC_MEDIA_ENHANCEMENT_DOLBYVISION if (vdec->master || vdec->slave) used_reorder_dpb_size_margin = reorder_dpb_size_margin_dv; @@ -3623,7 +3623,7 @@ static irqreturn_t vh264_isr_thread_fn(struct vdec_s *vdec) pic_done_proc: reset_process_time(hw); if (p_H264_Dpb->mVideo.dec_picture) { -#ifdef CONFIG_AM_VDEC_DV +#ifdef CONFIG_AMLOGIC_MEDIA_ENHANCEMENT_DOLBYVISION DEL_EXIST(hw, p_H264_Dpb->mVideo.dec_picture) = 0; if (vdec->master) { @@ -3641,7 +3641,7 @@ pic_done_proc: hw->chunk->pts; p_H264_Dpb->mVideo.dec_picture->pts64 = hw->chunk->pts64; -#ifdef CONFIG_AM_VDEC_DV +#ifdef CONFIG_AMLOGIC_MEDIA_ENHANCEMENT_DOLBYVISION } else if (vdec->master) { /*dv enhance layer, do not checkout pts*/ @@ -3739,7 +3739,7 @@ pic_done_proc: hw->decode_pic_count); /* WRITE_VREG(DPB_STATUS_REG, H264_ACTION_SEARCH_HEAD); */ hw->dec_result = DEC_RESULT_DONE; -#ifdef CONFIG_AM_VDEC_DV +#ifdef CONFIG_AMLOGIC_MEDIA_ENHANCEMENT_DOLBYVISION if (vdec->slave && dec_dpb_status == H264_FIND_NEXT_DVEL_NAL) { struct vdec_h264_hw_s *hw_el = @@ -3758,7 +3758,7 @@ pic_done_proc: } #endif vdec_schedule_work(&hw->work); -#ifdef CONFIG_AM_VDEC_DV +#ifdef CONFIG_AMLOGIC_MEDIA_ENHANCEMENT_DOLBYVISION } else if ( (dec_dpb_status == H264_FIND_NEXT_PIC_NAL) || (dec_dpb_status == H264_FIND_NEXT_DVEL_NAL)) { @@ -3775,7 +3775,7 @@ pic_done_proc: if (dpb_is_debug(DECODE_ID(hw), PRINT_FLAG_DPB_DETAIL)) dump_aux_buf(hw); -#ifdef CONFIG_AM_VDEC_DV +#ifdef CONFIG_AMLOGIC_MEDIA_ENHANCEMENT_DOLBYVISION if (vdec->dolby_meta_with_el || vdec->slave) { if (hw->last_dec_picture) set_aux_data(hw, hw->last_dec_picture, @@ -3801,7 +3801,7 @@ pic_done_proc: hw->last_dec_picture, 0, 0, NULL); #endif } -#ifdef CONFIG_AM_VDEC_DV +#ifdef CONFIG_AMLOGIC_MEDIA_ENHANCEMENT_DOLBYVISION hw->switch_dvlayer_flag = 0; hw->got_valid_nal = 1; #endif @@ -4113,7 +4113,7 @@ static void vmh264_dump_state(struct vdec_s *vdec) hw->buffer_spec[i].canvas_pos, hw->buffer_spec[i].vf_ref ); -#ifdef CONFIG_AM_VDEC_DV +#ifdef CONFIG_AMLOGIC_MEDIA_ENHANCEMENT_DOLBYVISION dpb_print_cont(DECODE_ID(hw), 0, "dv_el_exist %d", hw->buffer_spec[i].dv_enhance_exist @@ -5036,7 +5036,7 @@ result_done: /* mark itself has all HW resource released and input released */ vdec_set_status(hw_to_vdec(hw), VDEC_STATUS_CONNECTED); -#ifdef CONFIG_AM_VDEC_DV +#ifdef CONFIG_AMLOGIC_MEDIA_ENHANCEMENT_DOLBYVISION if (hw->switch_dvlayer_flag) { if (vdec->slave) vdec_set_next_sched(vdec, vdec->slave); @@ -5056,7 +5056,7 @@ static bool run_ready(struct vdec_s *vdec) struct vdec_h264_hw_s *hw = (struct vdec_h264_hw_s *)vdec->private; -#ifndef CONFIG_AM_VDEC_DV +#ifndef CONFIG_AMLOGIC_MEDIA_ENHANCEMENT_DOLBYVISION if (vdec->master) return false; #endif @@ -5126,7 +5126,7 @@ static void run(struct vdec_s *vdec, } } /* hw->chunk = vdec_prepare_input(vdec); */ -#ifdef CONFIG_AM_VDEC_DV +#ifdef CONFIG_AMLOGIC_MEDIA_ENHANCEMENT_DOLBYVISION if (vdec->slave || vdec->master) vdec_set_flag(vdec, VDEC_FLAG_SELF_INPUT_CONTEXT); #endif @@ -5508,7 +5508,7 @@ static int ammvdec_h264_probe(struct platform_device *pdev) if (pdata->use_vfm_path) snprintf(pdata->vf_provider_name, VDEC_PROVIDER_NAME_SIZE, VFM_DEC_PROVIDER_NAME); -#ifdef CONFIG_AM_VDEC_DV +#ifdef CONFIG_AMLOGIC_MEDIA_ENHANCEMENT_DOLBYVISION else if (vdec_dual(pdata)) { if (dv_toggle_prov_name) /*debug purpose*/ snprintf(pdata->vf_provider_name, @@ -5676,7 +5676,7 @@ static struct mconfig hm264_configs[] = { MC_PI32("force_disp_bufspec_num", &force_disp_bufspec_num), MC_PU32("prefix_aux_buf_size", &prefix_aux_buf_size), MC_PU32("suffix_aux_buf_size", &suffix_aux_buf_size), -#ifdef CONFIG_AM_VDEC_DV +#ifdef CONFIG_AMLOGIC_MEDIA_ENHANCEMENT_DOLBYVISION MC_PU32("reorder_dpb_size_margin_dv", &reorder_dpb_size_margin_dv), MC_PU32("dv_toggle_prov_name", &dv_toggle_prov_name), MC_PU32("dolby_meta_with_el", &dolby_meta_with_el), @@ -5734,7 +5734,7 @@ MODULE_PARM_DESC(frame_max_data_packet, "\n amvdec_h264 frame_max_data_packet\n" module_param(reorder_dpb_size_margin, uint, 0664); MODULE_PARM_DESC(reorder_dpb_size_margin, "\n ammvdec_h264 reorder_dpb_size_margin\n"); -#ifdef CONFIG_AM_VDEC_DV +#ifdef CONFIG_AMLOGIC_MEDIA_ENHANCEMENT_DOLBYVISION module_param(reorder_dpb_size_margin_dv, uint, 0664); MODULE_PARM_DESC(reorder_dpb_size_margin_dv, "\n ammvdec_h264 reorder_dpb_size_margin_dv\n"); @@ -5776,7 +5776,7 @@ MODULE_PARM_DESC(prefix_aux_buf_size, "\n prefix_aux_buf_size\n"); module_param(suffix_aux_buf_size, uint, 0664); MODULE_PARM_DESC(suffix_aux_buf_size, "\n suffix_aux_buf_size\n"); -#ifdef CONFIG_AM_VDEC_DV +#ifdef CONFIG_AMLOGIC_MEDIA_ENHANCEMENT_DOLBYVISION module_param(dv_toggle_prov_name, uint, 0664); MODULE_PARM_DESC(dv_toggle_prov_name, "\n dv_toggle_prov_name\n"); diff --git a/drivers/frame_provider/decoder/h265/vh265.c b/drivers/frame_provider/decoder/h265/vh265.c index 1ec8b1d..e0c2365 100644 --- a/drivers/frame_provider/decoder/h265/vh265.c +++ b/drivers/frame_provider/decoder/h265/vh265.c @@ -403,7 +403,7 @@ static u32 fr_hint_status; * bit 8, debug flag */ static u32 parser_sei_enable; -#ifdef CONFIG_AM_VDEC_DV +#ifdef CONFIG_AMLOGIC_MEDIA_ENHANCEMENT_DOLBYVISION static u32 parser_dolby_vision_enable = 1; static u32 dolby_meta_with_el; #endif @@ -430,7 +430,7 @@ static unsigned int not_run_ready[MAX_DECODE_INSTANCE_NUM]; static unsigned char get_idx(struct hevc_state_s *hevc); #endif -#ifdef CONFIG_AM_VDEC_DV +#ifdef CONFIG_AMLOGIC_MEDIA_ENHANCEMENT_DOLBYVISION static u32 dv_toggle_prov_name; static u32 dv_debug; @@ -1220,7 +1220,7 @@ struct PIC_s { int m_aiRefPOCList1[MAX_SLICE_NUM][16]; /*buffer */ unsigned int header_adr; -#ifdef CONFIG_AM_VDEC_DV +#ifdef CONFIG_AMLOGIC_MEDIA_ENHANCEMENT_DOLBYVISION unsigned char dv_enhance_exist; #endif char *aux_data_buf; @@ -1319,7 +1319,7 @@ struct hevc_state_s { unsigned int last_lcu_idx; unsigned int decode_timeout_count; unsigned int timeout_num; -#ifdef CONFIG_AM_VDEC_DV +#ifdef CONFIG_AMLOGIC_MEDIA_ENHANCEMENT_DOLBYVISION unsigned char switch_dvlayer_flag; #endif unsigned char start_parser_type; @@ -4995,7 +4995,7 @@ static int hevc_slice_segment_header_process(struct hevc_state_s *hevc, union param_u *rpm_param, int decode_pic_begin) { -#ifdef CONFIG_AM_VDEC_DV +#ifdef CONFIG_AMLOGIC_MEDIA_ENHANCEMENT_DOLBYVISION struct vdec_s *vdec = hw_to_vdec(hevc); #endif int i; @@ -5263,7 +5263,7 @@ static int hevc_slice_segment_header_process(struct hevc_state_s *hevc, if (hevc->mmu_enable) recycle_mmu_bufs(hevc); -#ifdef CONFIG_AM_VDEC_DV +#ifdef CONFIG_AMLOGIC_MEDIA_ENHANCEMENT_DOLBYVISION if (vdec->master) { struct hevc_state_s *hevc_ba = (struct hevc_state_s *) @@ -5288,7 +5288,7 @@ static int hevc_slice_segment_header_process(struct hevc_state_s *hevc, #ifdef MULTI_INSTANCE_SUPPORT hevc->decoding_pic = hevc->cur_pic; #endif -#ifdef CONFIG_AM_VDEC_DV +#ifdef CONFIG_AMLOGIC_MEDIA_ENHANCEMENT_DOLBYVISION hevc->cur_pic->dv_enhance_exist = 0; if (vdec->master == NULL && vdec->slave == NULL) @@ -5305,7 +5305,7 @@ static int hevc_slice_segment_header_process(struct hevc_state_s *hevc, return -1; } } else { -#ifdef CONFIG_AM_VDEC_DV +#ifdef CONFIG_AMLOGIC_MEDIA_ENHANCEMENT_DOLBYVISION if (vdec->master == NULL && vdec->slave == NULL) { set_aux_data(hevc, hevc->cur_pic, 1, 0); @@ -5330,7 +5330,7 @@ static int hevc_slice_segment_header_process(struct hevc_state_s *hevc, if (hevc->cur_pic == NULL) return -1; -#ifdef CONFIG_AM_VDEC_DV +#ifdef CONFIG_AMLOGIC_MEDIA_ENHANCEMENT_DOLBYVISION hevc->cur_pic->dv_enhance_exist = 0; if (vdec->master == NULL && vdec->slave == NULL) @@ -6416,7 +6416,7 @@ static int vh265_event_cb(int type, void *data, void *op_arg) && hevc->m_PIC[index]) { req->aux_buf = hevc->m_PIC[index]->aux_data_buf; req->aux_size = hevc->m_PIC[index]->aux_data_size; -#ifdef CONFIG_AM_VDEC_DV +#ifdef CONFIG_AMLOGIC_MEDIA_ENHANCEMENT_DOLBYVISION req->dv_enhance_exist = hevc->m_PIC[index]->dv_enhance_exist; #else @@ -6557,7 +6557,7 @@ static void update_vf_memhandle(struct hevc_state_s *hevc, } static int prepare_display_buf(struct hevc_state_s *hevc, struct PIC_s *pic) { -#ifdef CONFIG_AM_VDEC_DV +#ifdef CONFIG_AMLOGIC_MEDIA_ENHANCEMENT_DOLBYVISION struct vdec_s *vdec = hw_to_vdec(hevc); #endif struct vframe_s *vf = NULL; @@ -6586,7 +6586,7 @@ static int prepare_display_buf(struct hevc_state_s *hevc, struct PIC_s *pic) } /* if (pts_lookup_offset(PTS_TYPE_VIDEO, stream_offset, &vf->pts, 0) != 0) { */ -#ifdef CONFIG_AM_VDEC_DV +#ifdef CONFIG_AMLOGIC_MEDIA_ENHANCEMENT_DOLBYVISION else if (vdec->master == NULL) { #else else { @@ -6609,7 +6609,7 @@ static int prepare_display_buf(struct hevc_state_s *hevc, struct PIC_s *pic) hevc->pts_hit++; #endif #ifdef MULTI_INSTANCE_SUPPORT -#ifdef CONFIG_AM_VDEC_DV +#ifdef CONFIG_AMLOGIC_MEDIA_ENHANCEMENT_DOLBYVISION } else { vf->pts = 0; vf->pts_us64 = 0; @@ -7250,7 +7250,7 @@ static int hevc_recover(struct hevc_state_s *hevc) WRITE_VREG(NAL_SEARCH_CTL, READ_VREG(NAL_SEARCH_CTL) | ((parser_sei_enable & 0x7) << 17)); -#ifdef CONFIG_AM_VDEC_DV +#ifdef CONFIG_AMLOGIC_MEDIA_ENHANCEMENT_DOLBYVISION WRITE_VREG(NAL_SEARCH_CTL, READ_VREG(NAL_SEARCH_CTL) | ((parser_dolby_vision_enable & 0x1) << 20)); @@ -7348,7 +7348,7 @@ static void dump_aux_buf(struct hevc_state_s *hevc) } } -#ifdef CONFIG_AM_VDEC_DV +#ifdef CONFIG_AMLOGIC_MEDIA_ENHANCEMENT_DOLBYVISION static void dolby_get_meta(struct hevc_state_s *hevc) { struct vdec_s *vdec = hw_to_vdec(hevc); @@ -7391,7 +7391,7 @@ static irqreturn_t vh265_isr_thread_fn(int irq, void *data) struct hevc_state_s *hevc = (struct hevc_state_s *) data; unsigned int dec_status = hevc->dec_status; int i, ret; -#ifdef CONFIG_AM_VDEC_DV +#ifdef CONFIG_AMLOGIC_MEDIA_ENHANCEMENT_DOLBYVISION struct vdec_s *vdec = hw_to_vdec(hevc); #endif if (hevc->eos) @@ -7424,7 +7424,7 @@ static irqreturn_t vh265_isr_thread_fn(int irq, void *data) WRITE_VREG(NAL_SEARCH_CTL, 0x1);/* manual parser NAL */ } if ((get_dbg_flag(hevc) & H265_DEBUG_NO_EOS_SEARCH_DONE) -#ifdef CONFIG_AM_VDEC_DV +#ifdef CONFIG_AMLOGIC_MEDIA_ENHANCEMENT_DOLBYVISION || vdec->master || vdec->slave #endif @@ -7435,7 +7435,7 @@ static irqreturn_t vh265_isr_thread_fn(int irq, void *data) WRITE_VREG(NAL_SEARCH_CTL, READ_VREG(NAL_SEARCH_CTL) | ((parser_sei_enable & 0x7) << 17)); -#ifdef CONFIG_AM_VDEC_DV +#ifdef CONFIG_AMLOGIC_MEDIA_ENHANCEMENT_DOLBYVISION WRITE_VREG(NAL_SEARCH_CTL, READ_VREG(NAL_SEARCH_CTL) | ((parser_dolby_vision_enable & 0x1) << 20)); @@ -7517,7 +7517,7 @@ static irqreturn_t vh265_isr_thread_fn(int irq, void *data) goto pic_done; } else { if ( -#ifdef CONFIG_AM_VDEC_DV +#ifdef CONFIG_AMLOGIC_MEDIA_ENHANCEMENT_DOLBYVISION vdec->master || vdec->slave || #endif @@ -7566,7 +7566,7 @@ pic_done: } return IRQ_HANDLED; -#ifdef CONFIG_AM_VDEC_DV +#ifdef CONFIG_AMLOGIC_MEDIA_ENHANCEMENT_DOLBYVISION } else if (dec_status == HEVC_FIND_NEXT_PIC_NAL || dec_status == HEVC_FIND_NEXT_DVEL_NAL) { if (hevc->m_ins_flag) { @@ -7646,7 +7646,7 @@ pic_done: struct PIC_s *pic; hevc_print(hevc, 0, "get NAL_UNIT_EOS, flush output\n"); -#ifdef CONFIG_AM_VDEC_DV +#ifdef CONFIG_AMLOGIC_MEDIA_ENHANCEMENT_DOLBYVISION if ((vdec->master || vdec->slave) && READ_VREG(HEVC_AUX_DATA_SIZE) != 0) { if (hevc->decoding_pic) @@ -7771,7 +7771,7 @@ pic_done: if ((get_dbg_flag(hevc) & H265_DEBUG_NO_EOS_SEARCH_DONE) -#ifdef CONFIG_AM_VDEC_DV +#ifdef CONFIG_AMLOGIC_MEDIA_ENHANCEMENT_DOLBYVISION || vdec->master || vdec->slave #endif @@ -7783,7 +7783,7 @@ pic_done: WRITE_VREG(NAL_SEARCH_CTL, READ_VREG(NAL_SEARCH_CTL) | ((parser_sei_enable & 0x7) << 17)); -#ifdef CONFIG_AM_VDEC_DV +#ifdef CONFIG_AMLOGIC_MEDIA_ENHANCEMENT_DOLBYVISION WRITE_VREG(NAL_SEARCH_CTL, READ_VREG(NAL_SEARCH_CTL) | ((parser_dolby_vision_enable & 0x1) << 20)); @@ -7876,7 +7876,7 @@ pic_done: hevc->param.p.vui_time_scale_lo); } if ( -#ifdef CONFIG_AM_VDEC_DV +#ifdef CONFIG_AMLOGIC_MEDIA_ENHANCEMENT_DOLBYVISION vdec->master == NULL && vdec->slave == NULL && #endif @@ -8560,7 +8560,7 @@ static void H265_DECODE_INIT(void) static void config_decode_mode(struct hevc_state_s *hevc) { -#ifdef CONFIG_AM_VDEC_DV +#ifdef CONFIG_AMLOGIC_MEDIA_ENHANCEMENT_DOLBYVISION struct vdec_s *vdec = hw_to_vdec(hevc); #endif unsigned decode_mode; @@ -8569,7 +8569,7 @@ static void config_decode_mode(struct hevc_state_s *hevc) else if (vdec_frame_based(hw_to_vdec(hevc))) decode_mode = DECODE_MODE_MULTI_FRAMEBASE; -#ifdef CONFIG_AM_VDEC_DV +#ifdef CONFIG_AMLOGIC_MEDIA_ENHANCEMENT_DOLBYVISION else if (vdec->slave) decode_mode = (hevc->start_parser_type << 8) @@ -8593,7 +8593,7 @@ static void config_decode_mode(struct hevc_state_s *hevc) static void vh265_prot_init(struct hevc_state_s *hevc) { -#ifdef CONFIG_AM_VDEC_DV +#ifdef CONFIG_AMLOGIC_MEDIA_ENHANCEMENT_DOLBYVISION struct vdec_s *vdec = hw_to_vdec(hevc); #endif /* H265_DECODE_INIT(); */ @@ -8633,7 +8633,7 @@ static void vh265_prot_init(struct hevc_state_s *hevc) WRITE_VREG(NAL_SEARCH_CTL, ctl_val); } if ((get_dbg_flag(hevc) & H265_DEBUG_NO_EOS_SEARCH_DONE) -#ifdef CONFIG_AM_VDEC_DV +#ifdef CONFIG_AMLOGIC_MEDIA_ENHANCEMENT_DOLBYVISION || vdec->master || vdec->slave #endif @@ -8643,7 +8643,7 @@ static void vh265_prot_init(struct hevc_state_s *hevc) WRITE_VREG(NAL_SEARCH_CTL, READ_VREG(NAL_SEARCH_CTL) | ((parser_sei_enable & 0x7) << 17)); -#ifdef CONFIG_AM_VDEC_DV +#ifdef CONFIG_AMLOGIC_MEDIA_ENHANCEMENT_DOLBYVISION WRITE_VREG(NAL_SEARCH_CTL, READ_VREG(NAL_SEARCH_CTL) | ((parser_dolby_vision_enable & 0x1) << 20)); @@ -9364,7 +9364,7 @@ static void vh265_work(struct work_struct *work) check_pic_decoded_error(hevc, hevc->pic_decoded_lcu_idx); -#ifdef CONFIG_AM_VDEC_DV +#ifdef CONFIG_AMLOGIC_MEDIA_ENHANCEMENT_DOLBYVISION #if 1 if (vdec->slave) { if (dv_debug & 0x1) @@ -9390,7 +9390,7 @@ static void vh265_work(struct work_struct *work) } #endif #endif -#ifdef CONFIG_AM_VDEC_DV +#ifdef CONFIG_AMLOGIC_MEDIA_ENHANCEMENT_DOLBYVISION hevc->shift_byte_count_lo = READ_VREG(HEVC_SHIFT_BYTE_COUNT); if (vdec->slave) { @@ -9426,7 +9426,7 @@ static void vh265_work(struct work_struct *work) } else if (hevc->dec_result == DEC_RESULT_EOS) { struct PIC_s *pic; hevc->eos = 1; -#ifdef CONFIG_AM_VDEC_DV +#ifdef CONFIG_AMLOGIC_MEDIA_ENHANCEMENT_DOLBYVISION if ((vdec->master || vdec->slave) && READ_VREG(HEVC_AUX_DATA_SIZE) != 0) dolby_get_meta(hevc); @@ -9438,7 +9438,7 @@ static void vh265_work(struct work_struct *work) "%s: end of stream, last dec poc %d => 0x%pf\n", __func__, hevc->curr_POC, pic); flush_output(hevc, pic); -#ifdef CONFIG_AM_VDEC_DV +#ifdef CONFIG_AMLOGIC_MEDIA_ENHANCEMENT_DOLBYVISION hevc->shift_byte_count_lo = READ_VREG(HEVC_SHIFT_BYTE_COUNT); if (vdec->slave) { @@ -9490,7 +9490,7 @@ static void vh265_work(struct work_struct *work) /* mark itself has all HW resource released and input released */ vdec_set_status(hw_to_vdec(hevc), VDEC_STATUS_CONNECTED); -#ifdef CONFIG_AM_VDEC_DV +#ifdef CONFIG_AMLOGIC_MEDIA_ENHANCEMENT_DOLBYVISION if (hevc->switch_dvlayer_flag) { if (vdec->slave) vdec_set_next_sched(vdec, vdec->slave); @@ -9651,7 +9651,7 @@ static void run(struct vdec_s *vdec, r = hevc->chunk->size + (hevc->chunk->offset & (VDEC_FIFO_ALIGN - 1)); } -#ifdef CONFIG_AM_VDEC_DV +#ifdef CONFIG_AMLOGIC_MEDIA_ENHANCEMENT_DOLBYVISION else { if (vdec->master || vdec->slave) WRITE_VREG(HEVC_SHIFT_BYTE_COUNT, @@ -10036,7 +10036,7 @@ static int ammvdec_h265_probe(struct platform_device *pdev) snprintf(pdata->vf_provider_name, VDEC_PROVIDER_NAME_SIZE, VFM_DEC_PROVIDER_NAME); -#ifdef CONFIG_AM_VDEC_DV +#ifdef CONFIG_AMLOGIC_MEDIA_ENHANCEMENT_DOLBYVISION else if (vdec_dual(pdata)) { struct hevc_state_s *hevc_pair = NULL; @@ -10283,7 +10283,7 @@ static struct mconfig h265_configs[] = { MC_PU32("parser_sei_enable", &parser_sei_enable), MC_PU32("start_decode_buf_level", &start_decode_buf_level), MC_PU32("decode_timeout_val", &decode_timeout_val), -#ifdef CONFIG_AM_VDEC_DV +#ifdef CONFIG_AMLOGIC_MEDIA_ENHANCEMENT_DOLBYVISION MC_PU32("parser_dolby_vision_enable", &parser_dolby_vision_enable), MC_PU32("dv_toggle_prov_name", &dv_toggle_prov_name), MC_PU32("dv_debug", &dv_debug), @@ -10509,7 +10509,7 @@ MODULE_PARM_DESC(pts_unstable, "\n amvdec_h265 pts_unstable\n"); module_param(parser_sei_enable, uint, 0664); MODULE_PARM_DESC(parser_sei_enable, "\n parser_sei_enable\n"); -#ifdef CONFIG_AM_VDEC_DV +#ifdef CONFIG_AMLOGIC_MEDIA_ENHANCEMENT_DOLBYVISION module_param(parser_dolby_vision_enable, uint, 0664); MODULE_PARM_DESC(parser_dolby_vision_enable, "\n parser_dolby_vision_enable\n"); @@ -10558,7 +10558,7 @@ module_param_array(input_empty, uint, module_param_array(not_run_ready, uint, &max_decode_instance_num, 0664); #endif -#ifdef CONFIG_AM_VDEC_DV +#ifdef CONFIG_AMLOGIC_MEDIA_ENHANCEMENT_DOLBYVISION module_param(dv_toggle_prov_name, uint, 0664); MODULE_PARM_DESC(dv_toggle_prov_name, "\n dv_toggle_prov_name\n"); diff --git a/drivers/stream_input/amports/amstream.c b/drivers/stream_input/amports/amstream.c index 1d1a5f6..da385ab 100644 --- a/drivers/stream_input/amports/amstream.c +++ b/drivers/stream_input/amports/amstream.c @@ -409,7 +409,7 @@ static struct stream_port_s ports[] = { .fops = &vbuf_fops, .vformat = VFORMAT_HEVC, }, -#ifdef CONFIG_AM_VDEC_DV +#ifdef CONFIG_AMLOGIC_MEDIA_ENHANCEMENT_DOLBYVISION { .name = "amstream_dves_avc", .type = PORT_TYPE_ES | PORT_TYPE_VIDEO | |