summaryrefslogtreecommitdiff
authorGong 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)
commitef334de8bf984314d25af288cf2e3f33294301ec (patch)
tree0ec78bdd7c54c462101a8397157b70106329c2ee
parentf3fe5ae280f092eba11f8221813ed0f883e8d43a (diff)
downloaddvb-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
Diffstat
-rw-r--r--am_adp/am_av/aml/aml.c43
-rwxr-xr-xlib32/libam_ver.so6
-rwxr-xr-xlib64/libam_ver.so5
-rwxr-xr-xlibam_ver.so4
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