]> git.sesse.net Git - ffmpeg/blobdiff - libavformat/asf.c
Remove Fabrice's copyright from the Makefiles. They have been entirely
[ffmpeg] / libavformat / asf.c
index b365307137a7d8308423ae88d0d04154de535c48..040ac7c6b201f8f11ce98f4dc00ed92d3edd85bf 100644 (file)
  * License along with FFmpeg; if not, write to the Free Software
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
+
+#include "libavutil/common.h"
+#include "libavcodec/mpegaudio.h"
 #include "avformat.h"
 #include "riff.h"
-#include "mpegaudio.h"
 #include "asf.h"
-#include "common.h"
 #include "asfcrypt.h"
 
 extern void ff_mms_set_stream_selection(URLContext *h, AVFormatContext *format);
@@ -108,14 +109,6 @@ static void get_str16(ByteIOContext *pb, char *buf, int buf_size)
 }
 #endif
 
-#ifdef CONFIG_MMSH_PROTOCOL
-static int is_mms(ByteIOContext *pb)
-{
-    return url_fileno(pb) && url_fileno(pb)->prot &&
-         !strcmp(url_fileno(pb)->prot->name, "mmsh");
-}
-#endif
-
 static void get_str16_nolen(ByteIOContext *pb, int len, char *buf, int buf_size)
 {
     char* q = buf;
@@ -194,8 +187,8 @@ static int asf_read_header(AVFormatContext *s, AVFormatParameters *ap)
             asf->hdr.file_size          = get_le64(pb);
             asf->hdr.create_time        = get_le64(pb);
             asf->nb_packets             = get_le64(pb);
-            asf->hdr.send_time          = get_le64(pb);
             asf->hdr.play_time          = get_le64(pb);
+            asf->hdr.send_time          = get_le64(pb);
             asf->hdr.preroll            = get_le32(pb);
             asf->hdr.ignore             = get_le32(pb);
             asf->hdr.flags              = get_le32(pb);
@@ -397,7 +390,7 @@ static int asf_read_header(AVFormatContext *s, AVFormatParameters *ap)
                         get_str16_nolen(pb, name_len, name, sizeof(name));
                         value_type = get_le16(pb);
                         value_len = get_le16(pb);
-                        if ((value_type == 0) || (value_type == 1)) // unicode or byte
+                        if (value_type <= 1) // unicode or byte
                         {
                                 if     (!strcmp(name,"WM/AlbumTitle")) get_str16_nolen(pb, value_len, s->album, sizeof(s->album));
                                 else if(!strcmp(name,"WM/Genre"     )) get_str16_nolen(pb, value_len, s->genre, sizeof(s->genre));
@@ -418,12 +411,13 @@ static int asf_read_header(AVFormatContext *s, AVFormatParameters *ap)
                                 }
                                 else url_fskip(pb, value_len);
                         }
-                        if ((value_type >= 2) && (value_type <= 5)) // boolean or DWORD or QWORD or WORD
+                        else if (value_type <= 5) // boolean or DWORD or QWORD or WORD
                         {
                                 value_num= get_value(pb, value_type);
                                 if (!strcmp(name,"WM/Track"      ) && s->track == 0) s->track = value_num + 1;
                                 if (!strcmp(name,"WM/TrackNumber")) s->track = value_num;
-                        }
+                        }else
+                            url_fskip(pb, value_len);
                 }
         } else if (!memcmp(&g, &metadata_header, sizeof(GUID))) {
             int n, stream_num, name_len, value_len, value_type, value_num;
@@ -548,12 +542,6 @@ static int asf_read_header(AVFormatContext *s, AVFormatParameters *ap)
         }
     }
 
-#ifdef CONFIG_MMSH_PROTOCOL
-    /* Give info about ourselves to the mms protocol */
-    if(is_mms(pb))
-        ff_mms_set_stream_selection(url_fileno(pb), s);
-#endif
-
     return 0;
 
  fail:
@@ -1106,7 +1094,7 @@ static int asf_read_seek(AVFormatContext *s, int stream_index, int64_t pts, int
 
 AVInputFormat asf_demuxer = {
     "asf",
-    "asf format",
+    NULL_IF_CONFIG_SMALL("ASF format"),
     sizeof(ASFContext),
     asf_probe,
     asf_read_header,