vlc | branch: master | Francois Cartegnie <[email protected]> | Sun Jan 24 
00:23:01 2016 +0100| [470e9c6bfdee779aa3b34c9a7a5051ecd855590d] | committer: 
Francois Cartegnie

demux: ts: avoid adding duplicated section handlers on pmt update

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

 modules/demux/mpeg/sections.c |   12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/modules/demux/mpeg/sections.c b/modules/demux/mpeg/sections.c
index adce5be..3a5573c 100644
--- a/modules/demux/mpeg/sections.c
+++ b/modules/demux/mpeg/sections.c
@@ -143,7 +143,17 @@ void ts_sections_processor_Add( ts_sections_processor_t 
**pp_chain,
                                 uint8_t i_table_id, uint8_t i_stream_type, 
bool b_raw,
                                 ts_section_callback_t pf_callback )
 {
-    ts_sections_processor_t *p_proc = malloc( sizeof(ts_sections_processor_t) 
);
+    ts_sections_processor_t *p_proc = *pp_chain;
+    for( ; p_proc; p_proc = p_proc->p_next )
+    {
+        /* Avoid duplicates */
+        if ( p_proc->i_stream_type == i_stream_type &&
+             p_proc->i_table_id == i_table_id &&
+             p_proc->pf_callback == pf_callback )
+            return;
+    }
+
+    p_proc = malloc( sizeof(ts_sections_processor_t) );
     if( p_proc )
     {
         ts_sections_assembler_Init( &p_proc->assembler );

_______________________________________________
vlc-commits mailing list
[email protected]
https://mailman.videolan.org/listinfo/vlc-commits

Reply via email to