]> git.sesse.net Git - vlc/blobdiff - src/input/stream.c
Use var_Inherit* instead of var_CreateGet*.
[vlc] / src / input / stream.c
index 45b39052869dc32514b0635e894d59a93b5e43e2..f0a90dc1286c09e5587e386aa1222fa53b0db062 100644 (file)
@@ -30,8 +30,6 @@
 
 #include <vlc_common.h>
 #include <vlc_strings.h>
-#include <vlc_osd.h>
-#include <vlc_charset.h>
 #include <vlc_memory.h>
 
 #include <libvlc.h>
@@ -296,7 +294,7 @@ stream_t *stream_AccessNew( access_t *p_access, char **ppsz_list )
         return NULL;
 
     s->p_input = p_access->p_input;
-    s->psz_path = strdup( p_access->psz_path );
+    s->psz_path = strdup( p_access->psz_location );
     s->p_sys = p_sys = malloc( sizeof( *p_sys ) );
     if( !s->psz_path || !s->p_sys )
     {
@@ -341,7 +339,7 @@ stream_t *stream_AccessNew( access_t *p_access, char **ppsz_list )
             goto error;
 
         p_entry->i_size = p_access->info.i_size;
-        p_entry->psz_path = strdup( p_access->psz_path );
+        p_entry->psz_path = strdup( p_access->psz_location );
         if( !p_entry->psz_path )
         {
             free( p_entry );
@@ -686,7 +684,7 @@ static void AStreamPrebufferBlock( stream_t *s )
                          (p_sys->stat.i_read_time + 1);
 
             msg_Dbg( s, "prebuffering done %"PRId64" bytes in %"PRId64"s - "
-                     "%"PRId64" kbytes/s",
+                     "%"PRId64" KiB/s",
                      p_sys->stat.i_bytes,
                      p_sys->stat.i_read_time / INT64_C(1000000),
                      i_byterate / 1024 );
@@ -1441,7 +1439,7 @@ static void AStreamPrebufferStream( stream_t *s )
                          (p_sys->stat.i_read_time+1);
 
             msg_Dbg( s, "pre-buffering done %"PRId64" bytes in %"PRId64"s - "
-                     "%"PRId64" kbytes/s",
+                     "%"PRId64" KiB/s",
                      p_sys->stat.i_bytes,
                      p_sys->stat.i_read_time / INT64_C(1000000),
                      i_byterate / 1024 );
@@ -1568,35 +1566,38 @@ char *stream_ReadLine( stream_t *s )
         {
             /* UTF-8: 0A <LF> */
             psz_eol = memchr( p_data, '\n', i_data );
+            if( psz_eol == NULL )
+                /* UTF-8: 0D <CR> */
+                psz_eol = memchr( p_data, '\r', i_data );
         }
         else
         {
-            const uint8_t *p = p_data;
-            const uint8_t *p_last = p + i_data - s->p_text->i_char_width;
+            const uint8_t *p_last = p_data + i_data - s->p_text->i_char_width;
+            uint16_t eol = s->p_text->b_little_endian ? 0x0A00 : 0x00A0;
 
-            if( s->p_text->i_char_width == 2 )
+            assert( s->p_text->i_char_width == 2 );
+            psz_eol = NULL;
+            /* UTF-16: 000A <LF> */
+            for( const uint8_t *p = p_data; p <= p_last; p += 2 )
             {
-                if( s->p_text->b_little_endian == true)
+                if( U16_AT( p ) == eol )
                 {
-                    /* UTF-16LE: 0A 00 <LF> */
-                    while( p <= p_last && ( p[0] != 0x0A || p[1] != 0x00 ) )
-                        p += 2;
-                }
-                else
-                {
-                    /* UTF-16BE: 00 0A <LF> */
-                    while( p <= p_last && ( p[1] != 0x0A || p[0] != 0x00 ) )
-                        p += 2;
+                     psz_eol = (char *)p + 1;
+                     break;
                 }
             }
 
-            if( p > p_last )
-            {
-                psz_eol = NULL;
-            }
-            else
-            {
-                psz_eol = (char *)p + ( s->p_text->i_char_width - 1 );
+            if( psz_eol == NULL )
+            {   /* UTF-16: 000D <CR> */
+                eol = s->p_text->b_little_endian ? 0x0D00 : 0x00D0;
+                for( const uint8_t *p = p_data; p <= p_last; p += 2 )
+                {
+                    if( U16_AT( p ) == eol )
+                    {
+                        psz_eol = (char *)p + 1;
+                        break;
+                    }
+                }
             }
         }