Fix ff_mov_write_chan() so it can be used by other muxers.
This commit is contained in:
parent
d2549ba9df
commit
6d721f714e
@ -134,7 +134,11 @@ static int caf_write_header(AVFormatContext *s)
|
||||
avio_wb32(pb, enc->channels); //< mChannelsPerFrame
|
||||
avio_wb32(pb, enc->bits_per_coded_sample); //< mBitsPerChannel
|
||||
|
||||
ff_mov_write_chan(s, enc->channel_layout, "chan");
|
||||
if (enc->channel_layout) {
|
||||
ffio_wfourcc(pb, "chan");
|
||||
avio_wb64(pb, 12);
|
||||
ff_mov_write_chan(pb, enc->channel_layout);
|
||||
}
|
||||
|
||||
ffio_wfourcc(pb, "data"); //< Audio Data chunk
|
||||
caf->data = avio_tell(pb);
|
||||
|
@ -27,7 +27,6 @@
|
||||
#include "internal.h"
|
||||
#include "isom.h"
|
||||
#include "riff.h"
|
||||
#include "avio_internal.h"
|
||||
#include "libavcodec/mpeg4audio.h"
|
||||
#include "libavcodec/mpegaudiodata.h"
|
||||
|
||||
@ -484,24 +483,17 @@ void ff_mov_read_chan(AVFormatContext *s, int64_t size, AVCodecContext *codec)
|
||||
avio_skip(pb, 8);
|
||||
}
|
||||
|
||||
void ff_mov_write_chan(AVFormatContext *s, int64_t channel_layout,
|
||||
const char *chunk_type)
|
||||
void ff_mov_write_chan(AVIOContext *pb, int64_t channel_layout)
|
||||
{
|
||||
AVIOContext *pb = s->pb;
|
||||
const MovChannelLayout *layouts;
|
||||
uint32_t layout_tag = 0;
|
||||
|
||||
if (!channel_layout)
|
||||
return;
|
||||
|
||||
for (layouts = mov_channel_layout; layouts->channel_layout; layouts++)
|
||||
if (channel_layout == layouts->channel_layout) {
|
||||
layout_tag = layouts->layout_tag;
|
||||
break;
|
||||
}
|
||||
|
||||
ffio_wfourcc(pb, chunk_type);
|
||||
avio_wb64(pb, 12); //< mChunkSize
|
||||
if (layout_tag) {
|
||||
avio_wb32(pb, layout_tag); //< mChannelLayoutTag
|
||||
avio_wb32(pb, 0); //< mChannelBitmap
|
||||
|
@ -157,7 +157,6 @@ enum CodecID ff_mov_get_lpcm_codec_id(int bps, int flags);
|
||||
|
||||
int ff_mov_read_stsd_entries(MOVContext *c, AVIOContext *pb, int entries);
|
||||
void ff_mov_read_chan(AVFormatContext *s, int64_t size, AVCodecContext *codec);
|
||||
void ff_mov_write_chan(AVFormatContext *s, int64_t channel_layout,
|
||||
const char *chunk_type);
|
||||
void ff_mov_write_chan(AVIOContext *pb, int64_t channel_layout);
|
||||
|
||||
#endif /* AVFORMAT_ISOM_H */
|
||||
|
Loading…
Reference in New Issue
Block a user