FFmpeg
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
Examples
File List
Globals
•
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
libavformat
daudenc.c
Go to the documentation of this file.
1
/*
2
* D-Cinema audio muxer
3
* Copyright (c) 2005 Reimar Döffinger
4
*
5
* This file is part of FFmpeg.
6
*
7
* FFmpeg is free software; you can redistribute it and/or
8
* modify it under the terms of the GNU Lesser General Public
9
* License as published by the Free Software Foundation; either
10
* version 2.1 of the License, or (at your option) any later version.
11
*
12
* FFmpeg is distributed in the hope that it will be useful,
13
* but WITHOUT ANY WARRANTY; without even the implied warranty of
14
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15
* Lesser General Public License for more details.
16
*
17
* You should have received a copy of the GNU Lesser General Public
18
* License along with FFmpeg; if not, write to the Free Software
19
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20
*/
21
22
#include "
avformat.h
"
23
24
static
int
daud_write_header
(
struct
AVFormatContext
*
s
)
25
{
26
AVCodecContext
*codec = s->
streams
[0]->
codec
;
27
if
(codec->
channels
!=6 || codec->
sample_rate
!=96000)
28
return
-1;
29
return
0;
30
}
31
32
static
int
daud_write_packet
(
struct
AVFormatContext
*
s
,
AVPacket
*
pkt
)
33
{
34
if
(pkt->
size
> 65535) {
35
av_log
(s,
AV_LOG_ERROR
,
36
"Packet size too large for s302m. (%d > 65535)\n"
, pkt->
size
);
37
return
-1;
38
}
39
avio_wb16
(s->
pb
, pkt->
size
);
40
avio_wb16
(s->
pb
, 0x8010);
// unknown
41
avio_write
(s->
pb
, pkt->
data
, pkt->
size
);
42
return
0;
43
}
44
45
AVOutputFormat
ff_daud_muxer
= {
46
.
name
=
"daud"
,
47
.long_name =
NULL_IF_CONFIG_SMALL
(
"D-Cinema audio"
),
48
.extensions =
"302"
,
49
.audio_codec =
AV_CODEC_ID_PCM_S24DAUD
,
50
.video_codec =
AV_CODEC_ID_NONE
,
51
.write_header =
daud_write_header
,
52
.write_packet =
daud_write_packet
,
53
.flags =
AVFMT_NOTIMESTAMPS
,
54
};
Generated on Sun Sep 14 2014 18:56:12 for FFmpeg by
1.8.2