Add D-Cinema audio muxer

Originally committed as revision 14531 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
Peter Ross
2008-08-04 07:35:07 +00:00
parent bb89b0bc9d
commit 51c3861e16
4 changed files with 38 additions and 1 deletions

View File

@@ -47,6 +47,24 @@ static int daud_packet(AVFormatContext *s, AVPacket *pkt) {
return ret;
}
static int daud_write_header(struct AVFormatContext *s)
{
AVCodecContext *codec = s->streams[0]->codec;
if (codec->channels!=6 || codec->sample_rate!=96000)
return -1;
return 0;
}
static int daud_write_packet(struct AVFormatContext *s, AVPacket *pkt)
{
put_be16(s->pb, pkt->size);
put_be16(s->pb, 0x8010); // unknown
put_buffer(s->pb, pkt->data, pkt->size);
put_flush_packet(s->pb);
return 0;
}
#if CONFIG_DAUD_DEMUXER
AVInputFormat daud_demuxer = {
"daud",
NULL_IF_CONFIG_SMALL("D-Cinema audio format"),
@@ -58,3 +76,20 @@ AVInputFormat daud_demuxer = {
NULL,
.extensions = "302",
};
#endif
#ifdef CONFIG_DAUD_MUXER
AVOutputFormat daud_muxer =
{
"daud",
NULL_IF_CONFIG_SMALL("D-Cinema audio format"),
NULL,
"302",
0,
CODEC_ID_PCM_S24DAUD,
CODEC_ID_NONE,
daud_write_header,
daud_write_packet,
.flags= AVFMT_NOTIMESTAMPS,
};
#endif