avsync-lib: refine IPTV_MODE support [2/3]
PD#TV-97540
Problem:
refine IPTV_MODE support
Solution:
Support async start
Verify:
TM2 + Windows11 Mircast + Element
Change-Id: I74d06dee04f598e5b6a53aed799c6f9efc81d1fa
Signed-off-by: Song Zhao <song.zhao@amlogic.com>
diff --git a/src/avsync.c b/src/avsync.c
index c614355..6d6bca1 100644
--- a/src/avsync.c
+++ b/src/avsync.c
@@ -365,7 +365,9 @@
if (!attach) {
msync_session_set_mode(avsync->fd, mode);
avsync->mode = mode;
- if (avsync->mode == AV_SYNC_MODE_VMASTER)
+ if ((avsync->mode == AV_SYNC_MODE_VMASTER ||
+ avsync->mode == AV_SYNC_MODE_IPTV) &&
+ avsync->type == AV_SYNC_TYPE_VIDEO)
msync_session_set_wall_adj_thres(avsync->fd, avsync->disc_thres_min);
} else {
avsync->attached = true;
@@ -1361,7 +1363,8 @@
}
if (avsync->mode == AV_SYNC_MODE_FREE_RUN ||
- avsync->mode == AV_SYNC_MODE_AMASTER) {
+ avsync->mode == AV_SYNC_MODE_AMASTER ||
+ avsync->active_mode == AV_SYNC_MODE_AMASTER) {
action = AV_SYNC_AA_RENDER;
goto done;
}
@@ -1549,6 +1552,13 @@
}
} else if (avsync->active_mode == AV_SYNC_MODE_VMASTER) {
log_info("[%d]running in vmaster mode", avsync->session_id);
+ if (a_active && avsync->audio_start) {
+ if (v_active || v_timeout) {
+ log_info("audio start cb");
+ trigger_audio_start_cb(avsync, AV_SYNC_ASCB_OK);
+ }
+ }
+
}
}