summaryrefslogtreecommitdiff
authorGong Ke <ke.gong@amlogic.com>2017-12-28 02:04:09 (GMT)
committer Gong Ke <ke.gong@amlogic.com>2017-12-28 02:04:09 (GMT)
commitdc78959c144c36ec7f52021745c683b7eea7bd03 (patch)
treec2800791741a624452e8407751d5b94654d07f9d
parentec9a390331d3e422a4ea20864ba43e8252cf5b05 (diff)
downloaddvb-dc78959c144c36ec7f52021745c683b7eea7bd03.zip
dvb-dc78959c144c36ec7f52021745c683b7eea7bd03.tar.gz
dvb-dc78959c144c36ec7f52021745c683b7eea7bd03.tar.bz2
am_av: fixed replay and send no video data signal error [1/1]
PD# 157056 1.fixed replay and no video data signal error. Change-Id: I08fdeabe78adb434b286e4fe4aa2ddd91a47270a
Diffstat
-rw-r--r--am_adp/am_av/aml/aml.c43
-rwxr-xr-xlib32/libam_ver.so6
-rwxr-xr-xlib64/libam_ver.so4
-rwxr-xr-xlibam_ver.so4
4 files changed, 29 insertions, 28 deletions
diff --git a/am_adp/am_av/aml/aml.c b/am_adp/am_av/aml/aml.c
index 60e14aa..2309078 100644
--- a/am_adp/am_av/aml/aml.c
+++ b/am_adp/am_av/aml/aml.c
@@ -3440,6 +3440,7 @@ static void* aml_av_monitor_thread(void *arg)
int tsync_mode, vmaster_time = 0, vmaster_dur = 0;
int abuf_level_empty_time = 0, abuf_level_empty_dur = 0, vbuf_level_empty_time = 0, vbuf_level_empty_dur = 0;
int down_audio_cache_time = 0, down_video_cache_time = 0;
+ int vdec_stop_time = 0, vdec_stop_dur = 0;
struct am_io_param astatus;
struct am_io_param vstatus;
int vdec_status, frame_width, frame_height;
@@ -3949,7 +3950,7 @@ static void* aml_av_monitor_thread(void *arg)
}
//first no_data
- if (has_audio && adec_start && !no_audio_data && (dmx_apts_stop_dur > NO_DATA_CHECK_TIME) && (apts_stop_dur > NO_DATA_CHECK_TIME)) {
+ if (has_audio && adec_start && !no_audio_data && (dmx_apts_stop_dur > NO_DATA_CHECK_TIME) && (arp_stop_dur > NO_DATA_CHECK_TIME)) {
AM_Bool_t sf[2];
AM_DEBUG(1, "[avmon] audio stoped");
no_audio_data = AM_TRUE;
@@ -3963,16 +3964,6 @@ static void* aml_av_monitor_thread(void *arg)
AM_DEBUG(1, "[avmon] audio scrambled > stoped");
no_data_evt = AM_TRUE;
}
- } else {
- if (!no_data_evt) {
- AM_EVT_Signal(dev->dev_no, AM_AV_EVT_AV_NO_DATA, NULL);
- no_data_evt = AM_TRUE;
- }
- }
- } else {
- if (!no_data_evt) {
- AM_EVT_Signal(dev->dev_no, AM_AV_EVT_AV_NO_DATA, NULL);
- no_data_evt = AM_TRUE;
}
}
}
@@ -3991,22 +3982,18 @@ static void* aml_av_monitor_thread(void *arg)
AM_DEBUG(1, "[avmon] video scrambled");
no_data_evt = AM_TRUE;
}
- } else {
- if (!no_data_evt) {
- AM_EVT_Signal(dev->dev_no, AM_AV_EVT_AV_NO_DATA, NULL);
- no_data_evt = AM_TRUE;
- }
- }
- } else {
- 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
}
+ if (no_audio_data && no_video_data && !no_data_evt) {
+ no_data_evt = AM_TRUE;
+ AM_DEBUG(1, "[avmon] send no video data signal");
+ AM_EVT_Signal(dev->dev_no, AM_AV_EVT_AV_NO_DATA, NULL);
+ }
+
//AM_DEBUG(3,"no_audio = %d, dmx_a_stop = %d, a_stop= %d, no_video=%d, dmx_v_stop=%d, v_stop=%d, abuf_empty=%d, vbuf_empty=%d\n",no_audio_data,dmx_apts_stop_dur,apts_stop_dur, no_video_data, dmx_vpts_stop_dur, vpts_stop_dur, abuf_level_empty_dur,vbuf_level_empty_dur);
if (no_audio_data && dmx_apts_stop_dur == 0) {
@@ -4030,6 +4017,18 @@ static void* aml_av_monitor_thread(void *arg)
need_replay = AM_FALSE;
if (!no_video_data && /*!av_paused &&*/ (dmx_vpts_stop_dur == 0) && (vrp_stop_dur > NO_DATA_CHECK_TIME))
{
+ if (vdec_stop_time == 0) {
+ vdec_stop_time = now;
+ vdec_stop_dur = 0;
+ } else {
+ vdec_stop_dur = now - vdec_stop_time;
+ }
+ } else {
+ vdec_stop_time = 0;
+ vdec_stop_dur = 0;
+ }
+
+ if (vdec_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",
dmx_apts_stop_dur, arp_stop_dur, dmx_vpts_stop_dur, vrp_stop_dur);
@@ -4097,6 +4096,8 @@ static void* aml_av_monitor_thread(void *arg)
vmaster_time = 0;
down_audio_cache_time = 0;
down_video_cache_time = 0;
+ vdec_stop_time = 0;
+ vdec_stop_dur = 0;
has_amaster = AM_FALSE;
}
}
diff --git a/lib32/libam_ver.so b/lib32/libam_ver.so
index c6d72ce..1840c71 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 3c55889..9ac3cce 100755
--- a/lib64/libam_ver.so
+++ b/lib64/libam_ver.so
@@ -1,2 +1,2 @@
-ELF
-
+ELF
+
diff --git a/libam_ver.so b/libam_ver.so
index 19a1a92..2b8a9ed 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