]> git.sesse.net Git - vlc/blobdiff - modules/demux/ogg.c
Latin-1 -> UTF-8
[vlc] / modules / demux / ogg.c
index 5e50b7a55297a0b22759b5335d9d941525a1c237..c41c962756b8ef227e1e6b95c88dba79536595c9 100644 (file)
@@ -806,7 +806,13 @@ static void Ogg_DecodePacket( demux_t *p_demux,
         p_block->i_length = 0;
     }
     else if( p_stream->fmt.i_codec == VLC_CODEC_THEORA )
+    {
         p_block->i_dts = p_block->i_pts = i_pts;
+        if( (p_oggpacket->granulepos & ((1<<p_stream->i_granule_shift)-1)) == 0 )
+        {
+            p_block->i_flags |= BLOCK_FLAG_TYPE_I;
+        }
+    }
     else if( p_stream->fmt.i_codec == VLC_CODEC_DIRAC )
     {
         ogg_int64_t dts = p_oggpacket->granulepos >> 31;
@@ -1103,7 +1109,7 @@ static int Ogg_FindLogicalStreams( demux_t *p_demux )
                     /* Check for audio header (old format) */
                     else if( GetDWLE((oggpacket.packet+96)) == 0x05589F81 )
                     {
-                        unsigned int i_extra_size;
+                        int i_extra_size;
                         unsigned int i_format_tag;
 
                         p_stream->fmt.i_cat = AUDIO_ES;
@@ -1214,7 +1220,7 @@ static int Ogg_FindLogicalStreams( demux_t *p_demux )
                     else if( !strncmp( st->streamtype, "audio", 5 ) )
                     {
                         char p_buffer[5];
-                        unsigned int i_extra_size;
+                        int i_extra_size;
                         int i_format_tag;
 
                         st->sh.audio.channels = GetWLE( &oggpacket.packet[1+44] );
@@ -1549,7 +1555,7 @@ static void Ogg_ExtractMeta( demux_t *p_demux, vlc_fourcc_t i_codec, const uint8
 
     switch( i_codec )
     {
-    /* 3 headers with the 2° one being the comments */
+    /* 3 headers with the 2° one being the comments */
     case VLC_CODEC_VORBIS:
         Ogg_ExtractXiphMeta( p_demux, p_headers, i_headers, 1+6, false );
         break;
@@ -1560,7 +1566,7 @@ static void Ogg_ExtractMeta( demux_t *p_demux, vlc_fourcc_t i_codec, const uint8
         Ogg_ExtractXiphMeta( p_demux, p_headers, i_headers, 0, false );
         break;
 
-    /* N headers with the 2° one being the comments */
+    /* N headers with the 2° one being the comments */
     case VLC_CODEC_KATE:
         /* 1 byte for header type, 7 bit for magic, 1 reserved zero byte */
         Ogg_ExtractXiphMeta( p_demux, p_headers, i_headers, 1+7+1, true );
@@ -1826,7 +1832,7 @@ static void Ogg_ReadAnnodexHeader( vlc_object_t *p_this,
             uint8_t *p = memchr( &p_oggpacket->packet[42], '\r',
                                  p_oggpacket->bytes - 1 );
             if( p && p[0] == '\r' && p[1] == '\n' )
-                sscanf( (char*)(&p_oggpacket->packet[42]), "%1024s\r\n",
+                sscanf( (char*)(&p_oggpacket->packet[42]), "%1023s\r\n",
                         content_type_string );
         }