[vlc-commits] stream_access: remove peek callbacks

Rémi Denis-Courmont git at videolan.org
Thu Jul 23 20:09:30 CEST 2015


vlc | branch: master | Rémi Denis-Courmont <remi at remlab.net> | Thu Jul 23 21:01:17 2015 +0300| [9efc85f7f99f8f11ca37aa386d693b6665e9a0ed] | committer: Rémi Denis-Courmont

stream_access: remove peek callbacks

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

 src/input/stream_access.c |  151 ---------------------------------------------
 1 file changed, 151 deletions(-)

diff --git a/src/input/stream_access.c b/src/input/stream_access.c
index dc937de..b41ac96 100644
--- a/src/input/stream_access.c
+++ b/src/input/stream_access.c
@@ -30,7 +30,6 @@
 #include <string.h>
 
 #include <vlc_common.h>
-#include <vlc_memory.h>
 
 #include <libvlc.h>
 #include "stream.h"
@@ -147,10 +146,6 @@ struct stream_sys_t
 
     } stream;
 
-    /* Peek temporary buffer */
-    unsigned int i_peek;
-    uint8_t *p_peek;
-
     /* Stat for both method */
     struct
     {
@@ -163,14 +158,12 @@ struct stream_sys_t
 
 /* Method 1: */
 static int  AStreamReadBlock( stream_t *s, void *p_read, unsigned int i_read );
-static int  AStreamPeekBlock( stream_t *s, const uint8_t **p_peek, unsigned int i_read );
 static int  AStreamSeekBlock( stream_t *s, uint64_t i_pos );
 static void AStreamPrebufferBlock( stream_t *s );
 static block_t *AReadBlock( stream_t *s, bool *pb_eof );
 
 /* Method 2 */
 static int  AStreamReadStream( stream_t *s, void *p_read, unsigned int i_read );
-static int  AStreamPeekStream( stream_t *s, const uint8_t **pp_peek, unsigned int i_read );
 static int  AStreamSeekStream( stream_t *s, uint64_t i_pos );
 static void AStreamPrebufferStream( stream_t *s );
 static int  AReadStream( stream_t *s, void *p_read, unsigned int i_read );
@@ -184,11 +177,6 @@ static int  AStreamReadError( stream_t *s, void *p_read, unsigned int i_read )
     (void) s; (void) p_read; (void) i_read;
     return VLC_EGENERIC;
 }
-static int  AStreamPeekError( stream_t *s, const uint8_t **pp_peek, unsigned int i_read )
-{
-    (void) s; (void) pp_peek; (void) i_read;
-    return VLC_EGENERIC;
-}
 static input_item_t * AStreamReadDirError( stream_t *s )
 {
     (void) s;
@@ -216,7 +204,6 @@ stream_t *stream_AccessNew( access_t *p_access )
     }
 
     s->pf_read    = AStreamReadError;    /* Replaced later */
-    s->pf_peek    = AStreamPeekError;    /* Replaced later */
     s->pf_readdir = AStreamReadDirError; /* Replaced later */
     s->pf_control = AStreamControl;
     s->pf_destroy = AStreamDestroy;
@@ -238,15 +225,10 @@ stream_t *stream_AccessNew( access_t *p_access )
     p_sys->stat.i_read_time = 0;
     p_sys->stat.i_read_count = 0;
 
-    /* Peek */
-    p_sys->i_peek = 0;
-    p_sys->p_peek = NULL;
-
     if( p_sys->method == STREAM_METHOD_BLOCK )
     {
         msg_Dbg( s, "Using block method for AStream*" );
         s->pf_read = AStreamReadBlock;
-        s->pf_peek = AStreamPeekBlock;
 
         /* Init all fields of p_sys->block */
         p_sys->block.i_start = p_sys->i_pos;
@@ -272,7 +254,6 @@ stream_t *stream_AccessNew( access_t *p_access )
         msg_Dbg( s, "Using stream method for AStream*" );
 
         s->pf_read = AStreamReadStream;
-        s->pf_peek = AStreamPeekStream;
 
         /* Allocate/Setup our tracks */
         p_sys->stream.i_offset = 0;
@@ -341,8 +322,6 @@ static void AStreamDestroy( stream_t *s )
     else if( p_sys->method == STREAM_METHOD_STREAM )
         free( p_sys->stream.p_buffer );
 
-    free( p_sys->p_peek );
-
     stream_CommonDelete( s );
     vlc_access_Delete( p_sys->p_access );
     free( p_sys );
@@ -637,73 +616,6 @@ static int AStreamReadBlock( stream_t *s, void *p_read, unsigned int i_read )
     return i_data;
 }
 
-static int AStreamPeekBlock( stream_t *s, const uint8_t **pp_peek, unsigned int i_read )
-{
-    stream_sys_t *p_sys = s->p_sys;
-    uint8_t *p_data;
-    unsigned int i_data = 0;
-    block_t *b;
-    unsigned int i_offset;
-
-    if( p_sys->block.p_current == NULL ) return 0; /* EOF */
-
-    /* We can directly give a pointer over our buffer */
-    if( i_read <= p_sys->block.p_current->i_buffer - p_sys->block.i_offset )
-    {
-        *pp_peek = &p_sys->block.p_current->p_buffer[p_sys->block.i_offset];
-        return i_read;
-    }
-
-    /* We need to create a local copy */
-    if( p_sys->i_peek < i_read )
-    {
-        p_sys->p_peek = realloc_or_free( p_sys->p_peek, i_read );
-        if( !p_sys->p_peek )
-        {
-            p_sys->i_peek = 0;
-            return 0;
-        }
-        p_sys->i_peek = i_read;
-    }
-
-    /* Fill enough data */
-    while( p_sys->block.i_size - (p_sys->i_pos - p_sys->block.i_start)
-           < i_read )
-    {
-        block_t **pp_last = p_sys->block.pp_last;
-
-        if( AStreamRefillBlock( s ) ) break;
-
-        /* Our buffer are probably filled enough, don't try anymore */
-        if( pp_last == p_sys->block.pp_last ) break;
-    }
-
-    /* Copy what we have */
-    b = p_sys->block.p_current;
-    i_offset = p_sys->block.i_offset;
-    p_data = p_sys->p_peek;
-
-    while( b && i_data < i_read )
-    {
-        unsigned int i_current = __MAX(b->i_buffer - i_offset,0);
-        int i_copy = __MIN( i_current, i_read - i_data );
-
-        memcpy( p_data, &b->p_buffer[i_offset], i_copy );
-        i_data += i_copy;
-        p_data += i_copy;
-        i_offset += i_copy;
-
-        if( i_offset >= b->i_buffer )
-        {
-            i_offset = 0;
-            b = b->p_next;
-        }
-    }
-
-    *pp_peek = p_sys->p_peek;
-    return i_data;
-}
-
 static int AStreamSeekBlock( stream_t *s, uint64_t i_pos )
 {
     stream_sys_t *p_sys = s->p_sys;
@@ -917,69 +829,6 @@ static int AStreamReadStream( stream_t *s, void *p_read, unsigned int i_read )
     return AStreamReadNoSeekStream( s, p_read, i_read );
 }
 
-static int AStreamPeekStream( stream_t *s, const uint8_t **pp_peek, unsigned int i_read )
-{
-    stream_sys_t *p_sys = s->p_sys;
-    stream_track_t *tk = &p_sys->stream.tk[p_sys->stream.i_tk];
-    uint64_t i_off;
-
-    if( tk->i_start >= tk->i_end ) return 0; /* EOF */
-
-#ifdef STREAM_DEBUG
-    msg_Dbg( s, "AStreamPeekStream: %d pos=%"PRId64" tk=%d "
-             "start=%"PRId64" offset=%d end=%"PRId64,
-             i_read, p_sys->i_pos, p_sys->stream.i_tk,
-             tk->i_start, p_sys->stream.i_offset, tk->i_end );
-#endif
-
-    /* Avoid problem, but that should *never* happen */
-    if( i_read > STREAM_CACHE_TRACK_SIZE / 2 )
-        i_read = STREAM_CACHE_TRACK_SIZE / 2;
-
-    while( tk->i_end < tk->i_start + p_sys->stream.i_offset + i_read )
-    {
-        if( p_sys->stream.i_used <= 1 )
-        {
-            /* Be sure we will read something */
-            p_sys->stream.i_used += tk->i_start + p_sys->stream.i_offset + i_read - tk->i_end;
-        }
-        if( AStreamRefillStream( s ) )
-        {
-            if( tk->i_end < tk->i_start + p_sys->stream.i_offset )
-                return 0; /* EOF */
-            i_read = tk->i_end - tk->i_start - p_sys->stream.i_offset;
-            break;
-        }
-    }
-
-    /* Now, direct pointer or a copy ? */
-    i_off = (tk->i_start + p_sys->stream.i_offset) % STREAM_CACHE_TRACK_SIZE;
-    if( i_off + i_read <= STREAM_CACHE_TRACK_SIZE )
-    {
-        *pp_peek = &tk->p_buffer[i_off];
-        return i_read;
-    }
-
-    if( p_sys->i_peek < i_read )
-    {
-        p_sys->p_peek = realloc_or_free( p_sys->p_peek, i_read );
-        if( !p_sys->p_peek )
-        {
-            p_sys->i_peek = 0;
-            return 0;
-        }
-        p_sys->i_peek = i_read;
-    }
-
-    memcpy( p_sys->p_peek, &tk->p_buffer[i_off],
-            STREAM_CACHE_TRACK_SIZE - i_off );
-    memcpy( &p_sys->p_peek[STREAM_CACHE_TRACK_SIZE - i_off],
-            &tk->p_buffer[0], i_read - (STREAM_CACHE_TRACK_SIZE - i_off) );
-
-    *pp_peek = p_sys->p_peek;
-    return i_read;
-}
-
 static int AStreamSeekStream( stream_t *s, uint64_t i_pos )
 {
     stream_sys_t *p_sys = s->p_sys;



More information about the vlc-commits mailing list