ad: pause -> ad ops -> resume -> ad fail [1/1]
PD#SWPL-136643
Problem:
ad pid not checked in pause mode
Solution:
fixed the missing of ad pid check
Verify:
PB
Change-Id: I5e8828fef5b329e14afa2f72409f35799a9d6943
Signed-off-by: Zhiqiang Han <zhiqiang.han@amlogic.com>
diff --git a/src/dvr_playback.c b/src/dvr_playback.c
index 4fac6e3..e732fd0 100644
--- a/src/dvr_playback.c
+++ b/src/dvr_playback.c
@@ -2390,6 +2390,31 @@
//stop audio
a_cmd = DVR_PLAYBACK_CMD_A_STOP;
}
+
+ /*process the ad, if main audio exists, but no action*/
+ if (a_cmd == DVR_PLAYBACK_CMD_NONE && VALID_PID(p_pids->audio.pid)) {
+
+ if (VALID_PID(segment->pids.ad.pid)
+ && VALID_PID(p_pids->ad.pid)
+ && segment->pids.ad.pid != p_pids->ad.pid) {
+ //changed
+ a_cmd = DVR_PLAYBACK_CMD_A_RESTART;
+ }
+ if (VALID_PID(segment->pids.ad.pid)
+ && !VALID_PID(p_pids->ad.pid)
+ && segment->pids.ad.pid != p_pids->ad.pid) {
+ //to stop
+ a_cmd = DVR_PLAYBACK_CMD_A_RESTART;
+ }
+ if (!VALID_PID(segment->pids.ad.pid)
+ && VALID_PID(p_pids->ad.pid)
+ && segment->pids.ad.pid != p_pids->ad.pid) {
+ //to start
+ a_cmd = DVR_PLAYBACK_CMD_A_RESTART;
+ }
+
+ }
+
if (a_cmd == DVR_PLAYBACK_CMD_NONE
&& v_cmd == DVR_PLAYBACK_CMD_NONE) {
//do nothing