]> git.sesse.net Git - ffmpeg/blobdiff - libavformat/vocdec.c
avio: avio_ prefixes for get_* functions
[ffmpeg] / libavformat / vocdec.c
index aa69dd2fdf6eed8ff5b976b82ced328751e1e1fc..01bbdb2c6289ff41fc2306abd0caae0abf015e8f 100644 (file)
@@ -41,12 +41,12 @@ static int voc_probe(AVProbeData *p)
 static int voc_read_header(AVFormatContext *s, AVFormatParameters *ap)
 {
     VocDecContext *voc = s->priv_data;
-    ByteIOContext *pb = s->pb;
+    AVIOContext *pb = s->pb;
     int header_size;
     AVStream *st;
 
     url_fskip(pb, 20);
-    header_size = get_le16(pb) - 22;
+    header_size = avio_rl16(pb) - 22;
     if (header_size != 4) {
         av_log(s, AV_LOG_ERROR, "unknown header size: %d\n", header_size);
         return AVERROR(ENOSYS);
@@ -66,17 +66,17 @@ voc_get_packet(AVFormatContext *s, AVPacket *pkt, AVStream *st, int max_size)
 {
     VocDecContext *voc = s->priv_data;
     AVCodecContext *dec = st->codec;
-    ByteIOContext *pb = s->pb;
+    AVIOContext *pb = s->pb;
     VocType type;
-    int size, tmp_codec;
+    int size, tmp_codec=-1;
     int sample_rate = 0;
     int channels = 1;
 
     while (!voc->remaining_size) {
-        type = get_byte(pb);
+        type = avio_r8(pb);
         if (type == VOC_TYPE_EOF)
             return AVERROR(EIO);
-        voc->remaining_size = get_le24(pb);
+        voc->remaining_size = avio_rl24(pb);
         if (!voc->remaining_size) {
             if (url_is_streamed(s->pb))
                 return AVERROR(EIO);
@@ -86,15 +86,11 @@ voc_get_packet(AVFormatContext *s, AVPacket *pkt, AVStream *st, int max_size)
 
         switch (type) {
         case VOC_TYPE_VOICE_DATA:
-            dec->sample_rate = 1000000 / (256 - get_byte(pb));
+            dec->sample_rate = 1000000 / (256 - avio_r8(pb));
             if (sample_rate)
                 dec->sample_rate = sample_rate;
             dec->channels = channels;
-            tmp_codec = ff_codec_get_id(ff_voc_codec_tags, get_byte(pb));
-            if (dec->codec_id == CODEC_ID_NONE)
-                dec->codec_id = tmp_codec;
-            else if (dec->codec_id != tmp_codec)
-                av_log(s, AV_LOG_WARNING, "Ignoring mid-stream change in audio codec\n");
+            tmp_codec = avio_r8(pb);
             dec->bits_per_coded_sample = av_get_bits_per_sample(dec->codec_id);
             voc->remaining_size -= 2;
             max_size -= 2;
@@ -105,23 +101,19 @@ voc_get_packet(AVFormatContext *s, AVPacket *pkt, AVStream *st, int max_size)
             break;
 
         case VOC_TYPE_EXTENDED:
-            sample_rate = get_le16(pb);
-            get_byte(pb);
-            channels = get_byte(pb) + 1;
+            sample_rate = avio_rl16(pb);
+            avio_r8(pb);
+            channels = avio_r8(pb) + 1;
             sample_rate = 256000000 / (channels * (65536 - sample_rate));
             voc->remaining_size = 0;
             max_size -= 4;
             break;
 
         case VOC_TYPE_NEW_VOICE_DATA:
-            dec->sample_rate = get_le32(pb);
-            dec->bits_per_coded_sample = get_byte(pb);
-            dec->channels = get_byte(pb);
-            tmp_codec = ff_codec_get_id(ff_voc_codec_tags, get_byte(pb));
-            if (dec->codec_id == CODEC_ID_NONE)
-                dec->codec_id = tmp_codec;
-            else if (dec->codec_id != tmp_codec)
-                av_log(s, AV_LOG_WARNING, "Ignoring mid-stream change in audio codec\n");
+            dec->sample_rate = avio_rl32(pb);
+            dec->bits_per_coded_sample = avio_r8(pb);
+            dec->channels = avio_r8(pb);
+            tmp_codec = avio_rl16(pb);
             url_fskip(pb, 4);
             voc->remaining_size -= 12;
             max_size -= 12;
@@ -133,9 +125,20 @@ voc_get_packet(AVFormatContext *s, AVPacket *pkt, AVStream *st, int max_size)
             voc->remaining_size = 0;
             break;
         }
+    }
+
+    if (tmp_codec >= 0) {
+        tmp_codec = ff_codec_get_id(ff_voc_codec_tags, tmp_codec);
+        if (dec->codec_id == CODEC_ID_NONE)
+            dec->codec_id = tmp_codec;
+        else if (dec->codec_id != tmp_codec)
+            av_log(s, AV_LOG_WARNING, "Ignoring mid-stream change in audio codec\n");
         if (dec->codec_id == CODEC_ID_NONE) {
-            av_log(s, AV_LOG_ERROR, "Invalid codec_id\n");
-            if (s->audio_codec_id == CODEC_ID_NONE) return AVERROR(EINVAL);
+            if (s->audio_codec_id == CODEC_ID_NONE) {
+                av_log(s, AV_LOG_ERROR, "unknown codec tag\n");
+                return AVERROR(EINVAL);
+            }
+            av_log(s, AV_LOG_WARNING, "unknown codec tag\n");
         }
     }
 
@@ -153,7 +156,7 @@ static int voc_read_packet(AVFormatContext *s, AVPacket *pkt)
     return voc_get_packet(s, pkt, s->streams[0], 0);
 }
 
-AVInputFormat voc_demuxer = {
+AVInputFormat ff_voc_demuxer = {
     "voc",
     NULL_IF_CONFIG_SMALL("Creative Voice file format"),
     sizeof(VocDecContext),