[vlc-commits] Revert "access: rtp: handle drops for discontinuity propagation"

Francois Cartegnie git at videolan.org
Wed Sep 6 23:24:50 CEST 2017


vlc | branch: master | Francois Cartegnie <fcvlcdev at free.fr> | Wed Sep  6 23:24:28 2017 +0200| [5a8a8baa91ac8aa0336bda6fa296f5598d23947b] | committer: Francois Cartegnie

Revert "access: rtp: handle drops for discontinuity propagation"

This reverts commit 079eaa8cb024fabbc38168b9ad7bb5abb4e0de7b.

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

 modules/access/rtp/rtp.c     | 20 +++++++++-----------
 modules/access/rtp/rtp.h     |  6 +++---
 modules/access/rtp/session.c | 15 +++------------
 modules/access/rtp/xiph.c    | 12 ++++--------
 4 files changed, 19 insertions(+), 34 deletions(-)

diff --git a/modules/access/rtp/rtp.c b/modules/access/rtp/rtp.c
index c45df8e51a..8918ee92b8 100644
--- a/modules/access/rtp/rtp.c
+++ b/modules/access/rtp/rtp.c
@@ -438,7 +438,7 @@ void codec_destroy (demux_t *demux, void *data)
 }
 
 /* Send a packet to decoder */
-bool codec_decode (demux_t *demux, void *data, block_t *block)
+void codec_decode (demux_t *demux, void *data, block_t *block)
 {
     if (data)
     {
@@ -448,7 +448,6 @@ bool codec_decode (demux_t *demux, void *data, block_t *block)
     }
     else
         block_Release (block);
-    return !!data;
 }
 
 static void *stream_init (demux_t *demux, const char *name)
@@ -484,14 +483,13 @@ static void stream_header (demux_t *demux, void *data, block_t *block)
 }
 
 /* Send a packet to a chained demuxer */
-static bool stream_decode (demux_t *demux, void *data, block_t *block)
+static void stream_decode (demux_t *demux, void *data, block_t *block)
 {
-    VLC_UNUSED(demux);
     if (data)
         vlc_demux_chained_Send(data, block);
     else
         block_Release (block);
-    return !!data;
+    (void)demux;
 }
 
 static void *demux_init (demux_t *demux)
@@ -591,18 +589,18 @@ static void *mpa_init (demux_t *demux)
     return codec_init (demux, &fmt);
 }
 
-static bool mpa_decode (demux_t *demux, void *data, block_t *block)
+static void mpa_decode (demux_t *demux, void *data, block_t *block)
 {
     if (block->i_buffer < 4)
     {
         block_Release (block);
-        return false;
+        return;
     }
 
     block->i_buffer -= 4; /* 32-bits RTP/MPA header */
     block->p_buffer += 4;
 
-    return codec_decode (demux, data, block);
+    codec_decode (demux, data, block);
 }
 
 
@@ -618,12 +616,12 @@ static void *mpv_init (demux_t *demux)
     return codec_init (demux, &fmt);
 }
 
-static bool mpv_decode (demux_t *demux, void *data, block_t *block)
+static void mpv_decode (demux_t *demux, void *data, block_t *block)
 {
     if (block->i_buffer < 4)
     {
         block_Release (block);
-        return false;
+        return;
     }
 
     block->i_buffer -= 4; /* 32-bits RTP/MPV header */
@@ -635,7 +633,7 @@ static bool mpv_decode (demux_t *demux, void *data, block_t *block)
         /* TODO: shouldn't we skip this too ? */
     }
 #endif
-    return codec_decode (demux, data, block);
+    codec_decode (demux, data, block);
 }
 
 
diff --git a/modules/access/rtp/rtp.h b/modules/access/rtp/rtp.h
index ee57d7d322..ccb176617d 100644
--- a/modules/access/rtp/rtp.h
+++ b/modules/access/rtp/rtp.h
@@ -31,7 +31,7 @@ struct rtp_pt_t
     void   *(*init) (demux_t *);
     void    (*destroy) (demux_t *, void *);
     void    (*header) (demux_t *, void *, block_t *);
-    bool    (*decode) (demux_t *, void *, block_t *);
+    void    (*decode) (demux_t *, void *, block_t *);
     uint32_t  frequency; /* RTP clock rate (Hz) */
     uint8_t   number;
 };
@@ -44,11 +44,11 @@ static inline uint8_t rtp_ptype (const block_t *block)
 
 void *codec_init (demux_t *demux, es_format_t *fmt);
 void codec_destroy (demux_t *demux, void *data);
-bool codec_decode (demux_t *demux, void *data, block_t *block);
+void codec_decode (demux_t *demux, void *data, block_t *block);
 
 void *theora_init (demux_t *demux);
 void xiph_destroy (demux_t *demux, void *data);
-bool xiph_decode (demux_t *demux, void *data, block_t *block);
+void xiph_decode (demux_t *demux, void *data, block_t *block);
 
 /** @section RTP session */
 rtp_session_t *rtp_session_create (demux_t *);
diff --git a/modules/access/rtp/session.c b/modules/access/rtp/session.c
index 948cbaf0ed..4647204968 100644
--- a/modules/access/rtp/session.c
+++ b/modules/access/rtp/session.c
@@ -96,11 +96,10 @@ static void no_destroy (demux_t *demux, void *opaque)
     (void)demux; (void)opaque;
 }
 
-static bool no_decode (demux_t *demux, void *opaque, block_t *block)
+static void no_decode (demux_t *demux, void *opaque, block_t *block)
 {
     (void)demux; (void)opaque;
     block_Release (block);
-    return true;
 }
 
 /**
@@ -151,8 +150,6 @@ struct rtp_source_t
 
     uint16_t last_seq; /* sequence of the next dequeued packet */
     block_t *blocks; /* re-ordered blocks queue */
-    bool     discontinuity;
-
     void    *opaque[]; /* Per-source private payload data */
 };
 
@@ -177,7 +174,6 @@ rtp_source_create (demux_t *demux, const rtp_session_t *session,
     source->max_seq = source->bad_seq = init_seq;
     source->last_seq = init_seq - 1;
     source->blocks = NULL;
-    source->discontinuity = false;
 
     /* Initializes all payload */
     for (unsigned i = 0; i < session->ptc; i++)
@@ -498,7 +494,6 @@ rtp_decode (demux_t *demux, const rtp_session_t *session, rtp_source_t *src)
     uint16_t delta_seq = rtp_seq (block) - (src->last_seq + 1);
     if (delta_seq != 0)
     {
-        src->discontinuity = true;
         if (delta_seq >= 0x8000)
         {   /* Trash too late packets (and PIM Assert duplicates) */
             msg_Dbg (demux, "ignoring late packet (sequence: %"PRIu16")",
@@ -506,6 +501,7 @@ rtp_decode (demux_t *demux, const rtp_session_t *session, rtp_source_t *src)
             goto drop;
         }
         msg_Warn (demux, "%"PRIu16" packet(s) lost", delta_seq);
+        block->i_flags |= BLOCK_FLAG_DISCONTINUITY;
     }
     src->last_seq = rtp_seq (block);
 
@@ -552,12 +548,7 @@ rtp_decode (demux_t *demux, const rtp_session_t *session, rtp_source_t *src)
     block->p_buffer += skip;
     block->i_buffer -= skip;
 
-    if(src->discontinuity)
-        block->i_flags |= BLOCK_FLAG_DISCONTINUITY;
-
-    if (pt->decode (demux, pt_data, block))
-        src->discontinuity = false;
-
+    pt->decode (demux, pt_data, block);
     return;
 
 drop:
diff --git a/modules/access/rtp/xiph.c b/modules/access/rtp/xiph.c
index 84ec6f1314..8cdfcd4a57 100644
--- a/modules/access/rtp/xiph.c
+++ b/modules/access/rtp/xiph.c
@@ -143,10 +143,9 @@ static ssize_t xiph_header (void **pextra, const uint8_t *buf, size_t len)
 }
 
 
-bool xiph_decode (demux_t *demux, void *data, block_t *block)
+void xiph_decode (demux_t *demux, void *data, block_t *block)
 {
     rtp_xiph_t *self = data;
-    bool ret = false;
 
     if (!data || block->i_buffer < 4)
         goto drop;
@@ -206,14 +205,14 @@ bool xiph_decode (demux_t *demux, void *data, block_t *block)
             if (!self->block)
             {
                 block_Release (block);
-                return ret;
+                return;
             }
             memcpy (self->block->p_buffer + len, block->p_buffer + 2,
                     fraglen);
             block_Release (block);
         }
         if (fragtype < 3)
-            return ret; /* Non-last fragment */
+            return; /* Non-last fragment */
 
         /* Last fragment reached, process it */
         block = self->block;
@@ -248,8 +247,7 @@ bool xiph_decode (demux_t *demux, void *data, block_t *block)
                 block_t *raw = block_Alloc (len);
                 memcpy (raw->p_buffer, block->p_buffer, len);
                 raw->i_pts = block->i_pts; /* FIXME: what about pkts > 1 */
-                raw->i_flags |= (block->i_flags & BLOCK_FLAG_DISCONTINUITY);
-                ret |= codec_decode (demux, self->id, raw);
+                codec_decode (demux, self->id, raw);
                 break;
             }
 
@@ -276,7 +274,6 @@ bool xiph_decode (demux_t *demux, void *data, block_t *block)
                          ident);
                 self->ident = ident;
                 self->id = codec_init (demux, &fmt);
-                ret = true;
                 break;
             }
         }
@@ -288,5 +285,4 @@ bool xiph_decode (demux_t *demux, void *data, block_t *block)
 
 drop:
     block_Release (block);
-    return ret;
 }



More information about the vlc-commits mailing list