annotate voc.h @ 3754:8d267b43eaba libavformat

Move malloc() down until after all initializations, so that the resource is only allocated if initialization worked. This means that on failure, we don't have to deallocate it.
author rbultje
date Sat, 23 Aug 2008 18:46:30 +0000
parents 792383dd085e
children 9cff515fd4c6
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
937
a887adfe9dc5 add a Creative VOC (de)muxer
aurel
parents:
diff changeset
1 /*
a887adfe9dc5 add a Creative VOC (de)muxer
aurel
parents:
diff changeset
2 * Creative Voice File demuxer.
a887adfe9dc5 add a Creative VOC (de)muxer
aurel
parents:
diff changeset
3 * Copyright (c) 2006 Aurelien Jacobs <aurel@gnuage.org>
a887adfe9dc5 add a Creative VOC (de)muxer
aurel
parents:
diff changeset
4 *
1358
0899bfe4105c Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 937
diff changeset
5 * This file is part of FFmpeg.
0899bfe4105c Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 937
diff changeset
6 *
0899bfe4105c Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 937
diff changeset
7 * FFmpeg is free software; you can redistribute it and/or
937
a887adfe9dc5 add a Creative VOC (de)muxer
aurel
parents:
diff changeset
8 * modify it under the terms of the GNU Lesser General Public
a887adfe9dc5 add a Creative VOC (de)muxer
aurel
parents:
diff changeset
9 * License as published by the Free Software Foundation; either
1358
0899bfe4105c Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 937
diff changeset
10 * version 2.1 of the License, or (at your option) any later version.
937
a887adfe9dc5 add a Creative VOC (de)muxer
aurel
parents:
diff changeset
11 *
1358
0899bfe4105c Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 937
diff changeset
12 * FFmpeg is distributed in the hope that it will be useful,
937
a887adfe9dc5 add a Creative VOC (de)muxer
aurel
parents:
diff changeset
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
a887adfe9dc5 add a Creative VOC (de)muxer
aurel
parents:
diff changeset
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
a887adfe9dc5 add a Creative VOC (de)muxer
aurel
parents:
diff changeset
15 * Lesser General Public License for more details.
a887adfe9dc5 add a Creative VOC (de)muxer
aurel
parents:
diff changeset
16 *
a887adfe9dc5 add a Creative VOC (de)muxer
aurel
parents:
diff changeset
17 * You should have received a copy of the GNU Lesser General Public
1358
0899bfe4105c Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 937
diff changeset
18 * License along with FFmpeg; if not, write to the Free Software
2217
06083249909c license header consistency cosmetics
diego
parents: 1677
diff changeset
19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
937
a887adfe9dc5 add a Creative VOC (de)muxer
aurel
parents:
diff changeset
20 */
a887adfe9dc5 add a Creative VOC (de)muxer
aurel
parents:
diff changeset
21
2620
792383dd085e Add FFMPEG_ prefix to all multiple inclusion guards.
diego
parents: 2217
diff changeset
22 #ifndef FFMPEG_VOC_H
792383dd085e Add FFMPEG_ prefix to all multiple inclusion guards.
diego
parents: 2217
diff changeset
23 #define FFMPEG_VOC_H
937
a887adfe9dc5 add a Creative VOC (de)muxer
aurel
parents:
diff changeset
24
a887adfe9dc5 add a Creative VOC (de)muxer
aurel
parents:
diff changeset
25 #include "avformat.h"
1536
6dc55143f99f move common voc muxer and demuxer data to voc.c
aurel
parents: 1535
diff changeset
26 #include "riff.h" /* for CodecTag */
937
a887adfe9dc5 add a Creative VOC (de)muxer
aurel
parents:
diff changeset
27
a887adfe9dc5 add a Creative VOC (de)muxer
aurel
parents:
diff changeset
28 typedef struct voc_dec_context {
a887adfe9dc5 add a Creative VOC (de)muxer
aurel
parents:
diff changeset
29 int remaining_size;
a887adfe9dc5 add a Creative VOC (de)muxer
aurel
parents:
diff changeset
30 } voc_dec_context_t;
a887adfe9dc5 add a Creative VOC (de)muxer
aurel
parents:
diff changeset
31
1535
a3fbb2b1fccf split voc.c into vocdec.c and vocenc.c
aurel
parents: 1358
diff changeset
32 typedef enum voc_type {
a3fbb2b1fccf split voc.c into vocdec.c and vocenc.c
aurel
parents: 1358
diff changeset
33 VOC_TYPE_EOF = 0x00,
a3fbb2b1fccf split voc.c into vocdec.c and vocenc.c
aurel
parents: 1358
diff changeset
34 VOC_TYPE_VOICE_DATA = 0x01,
a3fbb2b1fccf split voc.c into vocdec.c and vocenc.c
aurel
parents: 1358
diff changeset
35 VOC_TYPE_VOICE_DATA_CONT = 0x02,
a3fbb2b1fccf split voc.c into vocdec.c and vocenc.c
aurel
parents: 1358
diff changeset
36 VOC_TYPE_SILENCE = 0x03,
a3fbb2b1fccf split voc.c into vocdec.c and vocenc.c
aurel
parents: 1358
diff changeset
37 VOC_TYPE_MARKER = 0x04,
a3fbb2b1fccf split voc.c into vocdec.c and vocenc.c
aurel
parents: 1358
diff changeset
38 VOC_TYPE_ASCII = 0x05,
a3fbb2b1fccf split voc.c into vocdec.c and vocenc.c
aurel
parents: 1358
diff changeset
39 VOC_TYPE_REPETITION_START = 0x06,
a3fbb2b1fccf split voc.c into vocdec.c and vocenc.c
aurel
parents: 1358
diff changeset
40 VOC_TYPE_REPETITION_END = 0x07,
a3fbb2b1fccf split voc.c into vocdec.c and vocenc.c
aurel
parents: 1358
diff changeset
41 VOC_TYPE_EXTENDED = 0x08,
a3fbb2b1fccf split voc.c into vocdec.c and vocenc.c
aurel
parents: 1358
diff changeset
42 VOC_TYPE_NEW_VOICE_DATA = 0x09,
a3fbb2b1fccf split voc.c into vocdec.c and vocenc.c
aurel
parents: 1358
diff changeset
43 } voc_type_t;
a3fbb2b1fccf split voc.c into vocdec.c and vocenc.c
aurel
parents: 1358
diff changeset
44
1536
6dc55143f99f move common voc muxer and demuxer data to voc.c
aurel
parents: 1535
diff changeset
45 extern const unsigned char voc_magic[21];
1677
2a85c82b8538 add codec_id <-> codec_tag tables to AVIn/OutputFormat
michael
parents: 1536
diff changeset
46 extern const AVCodecTag voc_codec_tags[];
1535
a3fbb2b1fccf split voc.c into vocdec.c and vocenc.c
aurel
parents: 1358
diff changeset
47
937
a887adfe9dc5 add a Creative VOC (de)muxer
aurel
parents:
diff changeset
48 int voc_get_packet(AVFormatContext *s, AVPacket *pkt,
a887adfe9dc5 add a Creative VOC (de)muxer
aurel
parents:
diff changeset
49 AVStream *st, int max_size);
a887adfe9dc5 add a Creative VOC (de)muxer
aurel
parents:
diff changeset
50
2620
792383dd085e Add FFMPEG_ prefix to all multiple inclusion guards.
diego
parents: 2217
diff changeset
51 #endif /* FFMPEG_VOC_H */