b93f738f |
/* |
7fbde343 |
* D-Cinema audio demuxer |
941125ef |
* Copyright (c) 2005 Reimar Döffinger |
b93f738f |
* |
b78e7197 |
* This file is part of FFmpeg.
*
* FFmpeg is free software; you can redistribute it and/or |
b93f738f |
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either |
b78e7197 |
* version 2.1 of the License, or (at your option) any later version. |
b93f738f |
* |
b78e7197 |
* FFmpeg is distributed in the hope that it will be useful, |
b93f738f |
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public |
b78e7197 |
* License along with FFmpeg; if not, write to the Free Software |
5509bffa |
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA |
b93f738f |
*/ |
a05a6378 |
#include "libavutil/channel_layout.h" |
b93f738f |
#include "avformat.h"
|
6e9651d1 |
static int daud_header(AVFormatContext *s) { |
3b3bbdd3 |
AVStream *st = avformat_new_stream(s, NULL); |
e8bd16a5 |
if (!st)
return AVERROR(ENOMEM); |
72415b2a |
st->codec->codec_type = AVMEDIA_TYPE_AUDIO; |
36ef5369 |
st->codec->codec_id = AV_CODEC_ID_PCM_S24DAUD; |
b93f738f |
st->codec->codec_tag = MKTAG('d', 'a', 'u', 'd');
st->codec->channels = 6; |
a05a6378 |
st->codec->channel_layout = AV_CH_LAYOUT_5POINT1; |
b93f738f |
st->codec->sample_rate = 96000;
st->codec->bit_rate = 3 * 6 * 96000 * 8;
st->codec->block_align = 3 * 6; |
dd1c8f3e |
st->codec->bits_per_coded_sample = 24; |
b93f738f |
return 0;
}
static int daud_packet(AVFormatContext *s, AVPacket *pkt) { |
471fe57e |
AVIOContext *pb = s->pb; |
b93f738f |
int ret, size; |
d34ec64a |
if (avio_feof(pb)) |
6f3e0b21 |
return AVERROR(EIO); |
e63a3628 |
size = avio_rb16(pb);
avio_rb16(pb); // unknown |
b93f738f |
ret = av_get_packet(pb, pkt, size);
pkt->stream_index = 0;
return ret;
}
|
66355be3 |
AVInputFormat ff_daud_demuxer = { |
dfc2c4d9 |
.name = "daud", |
6774247a |
.long_name = NULL_IF_CONFIG_SMALL("D-Cinema audio"), |
dfc2c4d9 |
.read_header = daud_header,
.read_packet = daud_packet, |
3194ab78 |
.extensions = "302,daud", |
b93f738f |
}; |