]> git.sesse.net Git - ffmpeg/blobdiff - libavformat/mov_chan.c
mov: Write prof section of tapt tag
[ffmpeg] / libavformat / mov_chan.c
index c0b57119d123fc6fc96bccd036a6f426059fb5a2..aa7ba1079f9c7e227533ef60c06839ddbe834751 100644 (file)
@@ -25,7 +25,7 @@
 
 #include <stdint.h>
 
-#include "libavutil/audioconvert.h"
+#include "libavutil/channel_layout.h"
 #include "libavcodec/avcodec.h"
 #include "mov_chan.h"
 
@@ -429,25 +429,25 @@ static const enum MovChannelLayoutTag mov_ch_layouts_wav[] = {
 };
 
 static const struct {
-    enum CodecID codec_id;
+    enum AVCodecID codec_id;
     const enum MovChannelLayoutTag *layouts;
 } mov_codec_ch_layouts[] = {
-    { CODEC_ID_AAC,     mov_ch_layouts_aac      },
-    { CODEC_ID_AC3,     mov_ch_layouts_ac3      },
-    { CODEC_ID_ALAC,    mov_ch_layouts_alac     },
-    { CODEC_ID_PCM_U8,    mov_ch_layouts_wav    },
-    { CODEC_ID_PCM_S8,    mov_ch_layouts_wav    },
-    { CODEC_ID_PCM_S16LE, mov_ch_layouts_wav    },
-    { CODEC_ID_PCM_S16BE, mov_ch_layouts_wav    },
-    { CODEC_ID_PCM_S24LE, mov_ch_layouts_wav    },
-    { CODEC_ID_PCM_S24BE, mov_ch_layouts_wav    },
-    { CODEC_ID_PCM_S32LE, mov_ch_layouts_wav    },
-    { CODEC_ID_PCM_S32BE, mov_ch_layouts_wav    },
-    { CODEC_ID_PCM_F32LE, mov_ch_layouts_wav    },
-    { CODEC_ID_PCM_F32BE, mov_ch_layouts_wav    },
-    { CODEC_ID_PCM_F64LE, mov_ch_layouts_wav    },
-    { CODEC_ID_PCM_F64BE, mov_ch_layouts_wav    },
-    { CODEC_ID_NONE,    NULL                    },
+    { AV_CODEC_ID_AAC,     mov_ch_layouts_aac      },
+    { AV_CODEC_ID_AC3,     mov_ch_layouts_ac3      },
+    { AV_CODEC_ID_ALAC,    mov_ch_layouts_alac     },
+    { AV_CODEC_ID_PCM_U8,    mov_ch_layouts_wav    },
+    { AV_CODEC_ID_PCM_S8,    mov_ch_layouts_wav    },
+    { AV_CODEC_ID_PCM_S16LE, mov_ch_layouts_wav    },
+    { AV_CODEC_ID_PCM_S16BE, mov_ch_layouts_wav    },
+    { AV_CODEC_ID_PCM_S24LE, mov_ch_layouts_wav    },
+    { AV_CODEC_ID_PCM_S24BE, mov_ch_layouts_wav    },
+    { AV_CODEC_ID_PCM_S32LE, mov_ch_layouts_wav    },
+    { AV_CODEC_ID_PCM_S32BE, mov_ch_layouts_wav    },
+    { AV_CODEC_ID_PCM_F32LE, mov_ch_layouts_wav    },
+    { AV_CODEC_ID_PCM_F32BE, mov_ch_layouts_wav    },
+    { AV_CODEC_ID_PCM_F64LE, mov_ch_layouts_wav    },
+    { AV_CODEC_ID_PCM_F64BE, mov_ch_layouts_wav    },
+    { AV_CODEC_ID_NONE,    NULL                    },
 };
 
 uint64_t ff_mov_get_channel_layout(uint32_t tag, uint32_t bitmap)
@@ -490,7 +490,7 @@ static uint32_t mov_get_channel_label(uint32_t label)
     return 0;
 }
 
-uint32_t ff_mov_get_channel_layout_tag(enum CodecID codec_id,
+uint32_t ff_mov_get_channel_layout_tag(enum AVCodecID codec_id,
                                        uint64_t channel_layout,
                                        uint32_t *bitmap)
 {
@@ -499,11 +499,11 @@ uint32_t ff_mov_get_channel_layout_tag(enum CodecID codec_id,
     const enum MovChannelLayoutTag *layouts = NULL;
 
     /* find the layout list for the specified codec */
-    for (i = 0; mov_codec_ch_layouts[i].codec_id != CODEC_ID_NONE; i++) {
+    for (i = 0; mov_codec_ch_layouts[i].codec_id != AV_CODEC_ID_NONE; i++) {
         if (mov_codec_ch_layouts[i].codec_id == codec_id)
             break;
     }
-    if (mov_codec_ch_layouts[i].codec_id != CODEC_ID_NONE)
+    if (mov_codec_ch_layouts[i].codec_id != AV_CODEC_ID_NONE)
         layouts = mov_codec_ch_layouts[i].layouts;
 
     if (layouts) {
@@ -543,9 +543,9 @@ uint32_t ff_mov_get_channel_layout_tag(enum CodecID codec_id,
     return tag;
 }
 
-int ff_mov_read_chan(AVFormatContext *s, AVStream *st, int64_t size)
+int ff_mov_read_chan(AVFormatContext *s, AVIOContext *pb, AVStream *st,
+                     int64_t size)
 {
-    AVIOContext *pb = s->pb;
     uint32_t layout_tag, bitmap, num_descr, label_mask;
     int i;
 
@@ -579,9 +579,10 @@ int ff_mov_read_chan(AVFormatContext *s, AVStream *st, int64_t size)
             label_mask |= mask_incr;
         }
     }
-    if (layout_tag == 0)
+    if (layout_tag == 0) {
+        if (label_mask)
             st->codec->channel_layout = label_mask;
-    else
+    else
         st->codec->channel_layout = ff_mov_get_channel_layout(layout_tag, bitmap);
 
     return 0;