annotate riff.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 6f61c3b36632
children 1b6245500d8c
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1306
8bf9be9bb107 Add official LGPL license headers to the files that were missing them.
diego
parents: 1172
diff changeset
1 /*
8bf9be9bb107 Add official LGPL license headers to the files that were missing them.
diego
parents: 1172
diff changeset
2 * RIFF codec tags
8bf9be9bb107 Add official LGPL license headers to the files that were missing them.
diego
parents: 1172
diff changeset
3 * copyright (c) 2000 Fabrice Bellard
8bf9be9bb107 Add official LGPL license headers to the files that were missing them.
diego
parents: 1172
diff changeset
4 *
1358
0899bfe4105c Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 1306
diff changeset
5 * This file is part of FFmpeg.
0899bfe4105c Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 1306
diff changeset
6 *
0899bfe4105c Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 1306
diff changeset
7 * FFmpeg is free software; you can redistribute it and/or
1306
8bf9be9bb107 Add official LGPL license headers to the files that were missing them.
diego
parents: 1172
diff changeset
8 * modify it under the terms of the GNU Lesser General Public
8bf9be9bb107 Add official LGPL license headers to the files that were missing them.
diego
parents: 1172
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: 1306
diff changeset
10 * version 2.1 of the License, or (at your option) any later version.
1306
8bf9be9bb107 Add official LGPL license headers to the files that were missing them.
diego
parents: 1172
diff changeset
11 *
1358
0899bfe4105c Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 1306
diff changeset
12 * FFmpeg is distributed in the hope that it will be useful,
1306
8bf9be9bb107 Add official LGPL license headers to the files that were missing them.
diego
parents: 1172
diff changeset
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
8bf9be9bb107 Add official LGPL license headers to the files that were missing them.
diego
parents: 1172
diff changeset
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
8bf9be9bb107 Add official LGPL license headers to the files that were missing them.
diego
parents: 1172
diff changeset
15 * Lesser General Public License for more details.
8bf9be9bb107 Add official LGPL license headers to the files that were missing them.
diego
parents: 1172
diff changeset
16 *
8bf9be9bb107 Add official LGPL license headers to the files that were missing them.
diego
parents: 1172
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: 1306
diff changeset
18 * License along with FFmpeg; if not, write to the Free Software
1306
8bf9be9bb107 Add official LGPL license headers to the files that were missing them.
diego
parents: 1172
diff changeset
19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
8bf9be9bb107 Add official LGPL license headers to the files that were missing them.
diego
parents: 1172
diff changeset
20 */
8bf9be9bb107 Add official LGPL license headers to the files that were missing them.
diego
parents: 1172
diff changeset
21
1677
2a85c82b8538 add codec_id <-> codec_tag tables to AVIn/OutputFormat
michael
parents: 1358
diff changeset
22 /**
2a85c82b8538 add codec_id <-> codec_tag tables to AVIn/OutputFormat
michael
parents: 1358
diff changeset
23 * @file riff.h
2a85c82b8538 add codec_id <-> codec_tag tables to AVIn/OutputFormat
michael
parents: 1358
diff changeset
24 * internal header for RIFF based (de)muxers
2a85c82b8538 add codec_id <-> codec_tag tables to AVIn/OutputFormat
michael
parents: 1358
diff changeset
25 * do NOT include this in end user applications
2a85c82b8538 add codec_id <-> codec_tag tables to AVIn/OutputFormat
michael
parents: 1358
diff changeset
26 */
2a85c82b8538 add codec_id <-> codec_tag tables to AVIn/OutputFormat
michael
parents: 1358
diff changeset
27
2620
792383dd085e Add FFMPEG_ prefix to all multiple inclusion guards.
diego
parents: 2230
diff changeset
28 #ifndef FFMPEG_RIFF_H
792383dd085e Add FFMPEG_ prefix to all multiple inclusion guards.
diego
parents: 2230
diff changeset
29 #define FFMPEG_RIFF_H
1172
6a5e58d2114b move common stuff from avienc.c and wav.c to new file riff.c
mru
parents:
diff changeset
30
3286
6f61c3b36632 Use full path for #includes from another directory.
diego
parents: 2620
diff changeset
31 #include "libavcodec/avcodec.h"
2171
a6d6b2b19341 include all prerequisites in header files
mru
parents: 2065
diff changeset
32 #include "avio.h"
a6d6b2b19341 include all prerequisites in header files
mru
parents: 2065
diff changeset
33
1172
6a5e58d2114b move common stuff from avienc.c and wav.c to new file riff.c
mru
parents:
diff changeset
34 offset_t start_tag(ByteIOContext *pb, const char *tag);
6a5e58d2114b move common stuff from avienc.c and wav.c to new file riff.c
mru
parents:
diff changeset
35 void end_tag(ByteIOContext *pb, offset_t start);
6a5e58d2114b move common stuff from avienc.c and wav.c to new file riff.c
mru
parents:
diff changeset
36
1677
2a85c82b8538 add codec_id <-> codec_tag tables to AVIn/OutputFormat
michael
parents: 1358
diff changeset
37 typedef struct AVCodecTag {
1172
6a5e58d2114b move common stuff from avienc.c and wav.c to new file riff.c
mru
parents:
diff changeset
38 int id;
6a5e58d2114b move common stuff from avienc.c and wav.c to new file riff.c
mru
parents:
diff changeset
39 unsigned int tag;
1677
2a85c82b8538 add codec_id <-> codec_tag tables to AVIn/OutputFormat
michael
parents: 1358
diff changeset
40 } AVCodecTag;
1172
6a5e58d2114b move common stuff from avienc.c and wav.c to new file riff.c
mru
parents:
diff changeset
41
1677
2a85c82b8538 add codec_id <-> codec_tag tables to AVIn/OutputFormat
michael
parents: 1358
diff changeset
42 void put_bmp_header(ByteIOContext *pb, AVCodecContext *enc, const AVCodecTag *tags, int for_asf);
1172
6a5e58d2114b move common stuff from avienc.c and wav.c to new file riff.c
mru
parents:
diff changeset
43 int put_wav_header(ByteIOContext *pb, AVCodecContext *enc);
6a5e58d2114b move common stuff from avienc.c and wav.c to new file riff.c
mru
parents:
diff changeset
44 int wav_codec_get_id(unsigned int tag, int bps);
6a5e58d2114b move common stuff from avienc.c and wav.c to new file riff.c
mru
parents:
diff changeset
45 void get_wav_header(ByteIOContext *pb, AVCodecContext *codec, int size);
6a5e58d2114b move common stuff from avienc.c and wav.c to new file riff.c
mru
parents:
diff changeset
46
1677
2a85c82b8538 add codec_id <-> codec_tag tables to AVIn/OutputFormat
michael
parents: 1358
diff changeset
47 extern const AVCodecTag codec_bmp_tags[];
2a85c82b8538 add codec_id <-> codec_tag tables to AVIn/OutputFormat
michael
parents: 1358
diff changeset
48 extern const AVCodecTag codec_wav_tags[];
1172
6a5e58d2114b move common stuff from avienc.c and wav.c to new file riff.c
mru
parents:
diff changeset
49
1677
2a85c82b8538 add codec_id <-> codec_tag tables to AVIn/OutputFormat
michael
parents: 1358
diff changeset
50 unsigned int codec_get_tag(const AVCodecTag *tags, int id);
2a85c82b8538 add codec_id <-> codec_tag tables to AVIn/OutputFormat
michael
parents: 1358
diff changeset
51 enum CodecID codec_get_id(const AVCodecTag *tags, unsigned int tag);
1172
6a5e58d2114b move common stuff from avienc.c and wav.c to new file riff.c
mru
parents:
diff changeset
52 void ff_parse_specific_params(AVCodecContext *stream, int *au_rate, int *au_ssize, int *au_scale);
6a5e58d2114b move common stuff from avienc.c and wav.c to new file riff.c
mru
parents:
diff changeset
53
2620
792383dd085e Add FFMPEG_ prefix to all multiple inclusion guards.
diego
parents: 2230
diff changeset
54 #endif /* FFMPEG_RIFF_H */