vlc | branch: master | Ilkka Ollakka <[email protected]> | Thu May  2 21:35:05 
2013 +0300| [2f4528c07fd8c0e9d79b6a922c317e932e8c6a5a] | committer: Ilkka 
Ollakka

livehttp: place correct segment entries on playlist

This fixes the logical flaw that places segment info on playlist that
was next to remove and didn't place the newest segment info into
playlist.

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

 modules/access_output/livehttp.c |    8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/modules/access_output/livehttp.c b/modules/access_output/livehttp.c
index 2300a74..c89d849 100644
--- a/modules/access_output/livehttp.c
+++ b/modules/access_output/livehttp.c
@@ -495,11 +495,15 @@ static int updateIndexAndDel( sout_access_out_t 
*p_access, sout_access_out_sys_t
 {
 
     uint32_t i_firstseg;
+    unsigned i_index_offset = 0;
 
     if ( p_sys->i_numsegs == 0 || p_sys->i_segment < p_sys->i_numsegs )
         i_firstseg = 1;
     else
+    {
         i_firstseg = ( p_sys->i_segment - p_sys->i_numsegs ) + 1;
+        i_index_offset = vlc_array_count( p_sys->segments_t ) - 
p_sys->i_numsegs;
+    }
 
     // First update index
     if ( p_sys->psz_indexPath )
@@ -533,8 +537,8 @@ static int updateIndexAndDel( sout_access_out_t *p_access, 
sout_access_out_sys_t
 
         for ( uint32_t i = i_firstseg; i <= p_sys->i_segment; i++ )
         {
-            //scale to 0..numsegs-1
-            uint32_t index = i-i_firstseg;
+            //scale to i_index_offset..numsegs + i_index_offset
+            uint32_t index = i - i_firstseg + i_index_offset;
 
             output_segment_t *segment = (output_segment_t 
*)vlc_array_item_at_index( p_sys->segments_t, index );
             if( p_sys->key_uri &&

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

Reply via email to