[vlc-devel] commit: Fix video delay when using alsa or oss as slaves ( Antoine Cellerier )

git version control git at videolan.org
Fri Jul 17 14:59:59 CEST 2009


vlc | branch: master | Antoine Cellerier <dionoea at videolan.org> | Fri Jul 17 14:57:00 2009 +0200| [3d9fc4219740a4f826c77d37db4ed2688c5ef73d] | committer: Antoine Cellerier 

Fix video delay when using alsa or oss as slaves

Decrease poll delay from 0.5 to 0.01 seconds in alsa in oss, else the
audio input would block the video input when used as an input slave.
Other accesses likely to be used as input slaves might need to be
changed. An easier solution (module-wise, harder core wise) would be to
run each slave in its own thread.

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=3d9fc4219740a4f826c77d37db4ed2688c5ef73d
---

 modules/access/alsa.c |    2 +-
 modules/access/oss.c  |    2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/modules/access/alsa.c b/modules/access/alsa.c
index 69b7e7f..67b5afa 100644
--- a/modules/access/alsa.c
+++ b/modules/access/alsa.c
@@ -312,7 +312,7 @@ static int Demux( demux_t *p_demux )
         }
 
         /* Wait for data */
-        int i_wait = snd_pcm_wait( p_sys->p_alsa_pcm, 500 );
+        int i_wait = snd_pcm_wait( p_sys->p_alsa_pcm, 10 ); /* See poll() comment in oss.c */
         switch( i_wait )
         {
             case 1:
diff --git a/modules/access/oss.c b/modules/access/oss.c
index 4d8c746..7ef664d 100644
--- a/modules/access/oss.c
+++ b/modules/access/oss.c
@@ -272,7 +272,7 @@ static int Demux( demux_t *p_demux )
         }
 
         /* Wait for data */
-        if( poll( &fd, 1, 500 ) ) /* Timeout after 0.5 seconds since I don't know if pf_demux can be blocking. */
+        if( poll( &fd, 1, 10 ) ) /* Timeout after 0.01 seconds. Bigger delays are an issue when used with/as an input-slave since all the inputs run in the same thread. */
         {
             if( fd.revents & (POLLIN|POLLPRI) )
             {




More information about the vlc-devel mailing list