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
};
AV_CODEC_ID_PCM_S24DAUD
Definition:
avcodec.h:338
s
const char * s
Definition:
avisynth_c.h:631
AV_CODEC_ID_NONE
Definition:
avcodec.h:102
ff_daud_muxer
AVOutputFormat ff_daud_muxer
Definition:
daudenc.c:45
AVPacket::size
int size
Definition:
avcodec.h:1468
pkt
static AVPacket pkt
Definition:
demuxing_decoding.c:54
AVFormatContext
Format I/O context.
Definition:
avformat.h:1314
AVFormatContext::streams
AVStream ** streams
A list of all streams in the file.
Definition:
avformat.h:1382
AVPacket::data
uint8_t * data
Definition:
avcodec.h:1467
avio_write
void avio_write(AVIOContext *s, const unsigned char *buf, int size)
Definition:
aviobuf.c:182
av_log
#define av_log(a,...)
Definition:
tableprint_vlc.h:28
AV_LOG_ERROR
#define AV_LOG_ERROR
Something went wrong and cannot losslessly be recovered.
Definition:
log.h:176
NULL_IF_CONFIG_SMALL
#define NULL_IF_CONFIG_SMALL(x)
Return NULL if CONFIG_SMALL is true, otherwise the argument without modification. ...
Definition:
internal.h:176
daud_write_packet
static int daud_write_packet(struct AVFormatContext *s, AVPacket *pkt)
Definition:
daudenc.c:32
AVStream::codec
AVCodecContext * codec
Codec context associated with this stream.
Definition:
avformat.h:896
AVOutputFormat::name
const char * name
Definition:
avformat.h:523
AVFMT_NOTIMESTAMPS
#define AVFMT_NOTIMESTAMPS
Format does not need / have any timestamps.
Definition:
avformat.h:485
AVCodecContext::sample_rate
int sample_rate
samples per second
Definition:
avcodec.h:2287
AVFormatContext::pb
AVIOContext * pb
I/O context.
Definition:
avformat.h:1356
AVCodecContext
main external API structure.
Definition:
avcodec.h:1532
avio_wb16
void avio_wb16(AVIOContext *s, unsigned int val)
Definition:
aviobuf.c:430
daud_write_header
static int daud_write_header(struct AVFormatContext *s)
Definition:
daudenc.c:24
avformat.h
Main libavformat public API header.
AVOutputFormat
Definition:
avformat.h:522
AVCodecContext::channels
int channels
number of audio channels
Definition:
avcodec.h:2288
AVPacket
This structure stores compressed data.
Definition:
avcodec.h:1444
Generated on Mon Feb 15 2016 15:20:45 for FFmpeg by
1.8.6