]> git.sesse.net Git - vlc/commitdiff
RTP: implement demux EOF
authorRémi Denis-Courmont <rdenis@simphalempin.com>
Thu, 27 Nov 2008 16:45:17 +0000 (18:45 +0200)
committerRémi Denis-Courmont <rdenis@simphalempin.com>
Thu, 27 Nov 2008 17:12:57 +0000 (19:12 +0200)
modules/access/rtp/input.c
modules/access/rtp/rtp.c
modules/access/rtp/rtp.h

index 0cfa4065ddcad868579a20767bd788b800826caf..73b37b83f84cc4649fab369d1d79c2531887809f 100644 (file)
@@ -190,7 +190,11 @@ void *rtp_thread (void *data)
 }
 
 
-void rtp_process (demux_t *demux)
+/**
+ * Process one RTP packet from the de-jitter queue.
+ * @return 0 on success, -1 on EOF
+ */
+int rtp_process (demux_t *demux)
 {
     demux_sys_t *p_sys = demux->p_sys;
     mtime_t deadline = INT64_MAX;
@@ -202,4 +206,6 @@ void rtp_process (demux_t *demux)
     else
         vlc_cond_wait (&p_sys->wait, &p_sys->lock);
     vlc_mutex_unlock (&p_sys->lock);
+
+    return p_sys->dead ? -1 : 0;
 }
index c3b4bd07a1885eb6e884aa8dc800cf1b80b5d1d8..056d9408c8e8c3eda744f90757270617ba99d333 100644 (file)
@@ -632,6 +632,5 @@ int rtp_autodetect (demux_t *demux, rtp_session_t *session,
  */
 static int Demux (demux_t *demux)
 {
-    rtp_process (demux);
-    return 1;
+    return rtp_process (demux) ? 0 : 1;
 }
index 98616641c133c9028ff81b925d19c09b5c62ea25..0d7659ded1e0f557f6d985e699fd087af2d81f5a 100644 (file)
@@ -46,7 +46,7 @@ void rtp_queue (demux_t *, rtp_session_t *, block_t *);
 bool rtp_dequeue (demux_t *, const rtp_session_t *, mtime_t *);
 int rtp_add_type (demux_t *demux, rtp_session_t *ses, const rtp_pt_t *pt);
 
-void rtp_process (demux_t *demux);
+int rtp_process (demux_t *demux);
 void *rtp_thread (void *data);
 
 /* Global data */