author | Gong Ke <ke.gong@amlogic.com> | 2017-12-20 07:51:02 (GMT) |
---|---|---|
committer | Gong Ke <ke.gong@amlogic.com> | 2017-12-20 07:51:02 (GMT) |
commit | ef334de8bf984314d25af288cf2e3f33294301ec (patch) | |
tree | 0ec78bdd7c54c462101a8397157b70106329c2ee | |
parent | f3fe5ae280f092eba11f8221813ed0f883e8d43a (diff) | |
download | dvb-ef334de8bf984314d25af288cf2e3f33294301ec.zip dvb-ef334de8bf984314d25af288cf2e3f33294301ec.tar.gz dvb-ef334de8bf984314d25af288cf2e3f33294301ec.tar.bz2 |
am_adp: fixed black screen [1/1]
PD# 157241
1.fixed black screen error
Change-Id: Id22a836dd48952c1a1e7d5e55c0af915a6fefbe2
-rw-r--r-- | am_adp/am_av/aml/aml.c | 43 | ||||
-rwxr-xr-x | lib32/libam_ver.so | 6 | ||||
-rwxr-xr-x | lib64/libam_ver.so | 5 | ||||
-rwxr-xr-x | libam_ver.so | 4 |
4 files changed, 39 insertions, 19 deletions
diff --git a/am_adp/am_av/aml/aml.c b/am_adp/am_av/aml/aml.c index c9d3a06..91149b0 100644 --- a/am_adp/am_av/aml/aml.c +++ b/am_adp/am_av/aml/aml.c @@ -3420,7 +3420,7 @@ static void* aml_av_monitor_thread(void *arg) AM_Bool_t is_hd_video = AM_FALSE; AM_Bool_t audio_scrambled = AM_FALSE; AM_Bool_t video_scrambled = AM_FALSE; - AM_Bool_t no_audio_data = AM_TRUE, no_video_data = AM_TRUE; + AM_Bool_t no_audio_data = AM_TRUE, no_video_data = AM_TRUE, no_data_evt = AM_FALSE; AM_Bool_t no_video = AM_TRUE; AM_Bool_t has_amaster = AM_FALSE; AM_Bool_t need_replay; @@ -3955,18 +3955,26 @@ static void* aml_av_monitor_thread(void *arg) AM_DMX_GetScrambleStatus(0, sf); if (sf[1]) { audio_scrambled = AM_TRUE; - AM_EVT_Signal(dev->dev_no, AM_AV_EVT_AUDIO_SCAMBLED, NULL); - AM_DEBUG(1, "[avmon] audio scrambled > stoped"); + if (!no_data_evt) { + AM_EVT_Signal(dev->dev_no, AM_AV_EVT_AUDIO_SCAMBLED, NULL); + AM_DEBUG(1, "[avmon] audio scrambled > stoped"); + no_data_evt = AM_TRUE; + } } else { - AM_EVT_Signal(dev->dev_no, AM_AV_EVT_AV_NO_DATA, NULL); + if (!no_data_evt) { + AM_EVT_Signal(dev->dev_no, AM_AV_EVT_AV_NO_DATA, NULL); + no_data_evt = AM_TRUE; + } } } else { - AM_EVT_Signal(dev->dev_no, AM_AV_EVT_AV_NO_DATA, NULL); + if (!no_data_evt) { + AM_EVT_Signal(dev->dev_no, AM_AV_EVT_AV_NO_DATA, NULL); + no_data_evt = AM_TRUE; + } } } - if (has_video && !no_video_data - && (dmx_vpts_stop_dur > NO_DATA_CHECK_TIME) && (vpts_stop_dur > NO_DATA_CHECK_TIME)) { + if (has_video && (dmx_vpts_stop_dur > NO_DATA_CHECK_TIME) && (vpts_stop_dur > NO_DATA_CHECK_TIME)) { AM_Bool_t sf[2]; no_video_data = AM_TRUE; no_video = AM_TRUE; @@ -3975,13 +3983,22 @@ static void* aml_av_monitor_thread(void *arg) AM_DMX_GetScrambleStatus(0, sf); if (sf[0]) { video_scrambled = AM_TRUE; - AM_EVT_Signal(dev->dev_no, AM_AV_EVT_VIDEO_SCAMBLED, NULL); - AM_DEBUG(1, "[avmon] video scrambled"); + if (!no_data_evt) { + AM_EVT_Signal(dev->dev_no, AM_AV_EVT_VIDEO_SCAMBLED, NULL); + AM_DEBUG(1, "[avmon] video scrambled"); + no_data_evt = AM_TRUE; + } } else { - AM_EVT_Signal(dev->dev_no, AM_AV_EVT_AV_NO_DATA, NULL); + if (!no_data_evt) { + AM_EVT_Signal(dev->dev_no, AM_AV_EVT_AV_NO_DATA, NULL); + no_data_evt = AM_TRUE; + } } } else { - AM_EVT_Signal(dev->dev_no, AM_AV_EVT_AV_NO_DATA, NULL); + if (!no_data_evt) { + AM_EVT_Signal(dev->dev_no, AM_AV_EVT_AV_NO_DATA, NULL); + no_data_evt = AM_TRUE; + } } } else if (is_avs_plus &&(tp->vfmt == VFORMAT_AVS)) { AM_EVT_Signal(dev->dev_no, AM_AV_EVT_VIDEO_NOT_SUPPORT, NULL);//not unsupport , just FORMAT is AVS @@ -3992,6 +4009,7 @@ static void* aml_av_monitor_thread(void *arg) if (no_audio_data && dmx_apts_stop_dur == 0) { no_audio_data = AM_FALSE; audio_scrambled = AM_FALSE; + no_data_evt = AM_FALSE; AM_EVT_Signal(dev->dev_no, AM_AV_EVT_AV_DATA_RESUME, NULL); AM_DEBUG(1, "[avmon] audio data resumed"); } @@ -3999,6 +4017,7 @@ static void* aml_av_monitor_thread(void *arg) if (no_video_data && dmx_vpts_stop_dur == 0) { no_video_data = AM_FALSE; video_scrambled = AM_FALSE; + no_data_evt = AM_FALSE; AM_EVT_Signal(dev->dev_no, AM_AV_EVT_AV_DATA_RESUME, NULL); AM_DEBUG(1, "[avmon] video data resumed"); } @@ -4006,7 +4025,7 @@ static void* aml_av_monitor_thread(void *arg) /*AM_DEBUG(3, "apts_dmx_stop: %d arp_stop: %d vpts_dmx_stop: %d vrp_stop: %d", dmx_apts_stop_dur, arp_stop_dur, dmx_vpts_stop_dur, vrp_stop_dur);*/ need_replay = AM_FALSE; - if (!no_video_data && !av_paused && (dmx_vpts_stop_dur == 0) && (vrp_stop_dur > NO_DATA_CHECK_TIME)) + if (!no_video_data && /*!av_paused &&*/ (dmx_vpts_stop_dur == 0) && (vrp_stop_dur > NO_DATA_CHECK_TIME)) { need_replay = AM_TRUE; AM_DEBUG(1, "[avmon] apts_dmx_stop: %d arp_stop: %d vpts_dmx_stop: %d vrp_stop: %d", diff --git a/lib32/libam_ver.so b/lib32/libam_ver.so index a5a007b..85d94a2 100755 --- a/lib32/libam_ver.so +++ b/lib32/libam_ver.so @@ -1,4 +1,4 @@ -ELF +ELF 0å3ÿ/áÐKâ @@ -97,8 +97,8 @@ B¿&¼ñ óÿ°°¬€:óÿ°°°€8óÿ°°¨€Nóÿ°„€Xóÿ°°°€xóÿ°„€üóÿ°°ª€€ôÿ°°°€˜ôÿ°„€4õÿ°« -€˜ùÿ°°¬€Ôùÿ°°°€þÿ +€˜ùÿ°°¬€Ôùÿ°°°€þÿ A -"&Dlibam_ver.so +"&Dlibam_ver.so diff --git a/lib64/libam_ver.so b/lib64/libam_ver.so index d2a079b..0c07b7f 100755 --- a/lib64/libam_ver.so +++ b/lib64/libam_ver.so @@ -1,2 +1,3 @@ -ELF - +ELF +ÙUlÒñËŸ}fr;± + diff --git a/libam_ver.so b/libam_ver.so index 47745cd..527005b 100755 --- a/libam_ver.so +++ b/libam_ver.so @@ -1,6 +1,6 @@ ELF -0å3ÿ/áÐKâ +0å3ÿ/áÐKâ A -"Dlibam_ver.so +"Dlibam_ver.so |