annotate riff.h @ 5237:496723640f94 libavformat

Extend DV autodetection to also reliably detect single-frame DVs with a higher score that MAX/4. It checks that there are at least 10 DIF headers and at least one per 24000 bytes, and if so considers the file reliably detected as DV. Passes probetest, too.
author reimar
date Tue, 29 Sep 2009 10:12:18 +0000
parents 33a244b7ca65
children 0d5653941bf9
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 /**
4331
49c1d3b27727 Use full internal pathname in doxygen @file directives.
diego
parents: 4129
diff changeset
23 * @file libavformat/riff.h
1677
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
3852
1b6245500d8c Globally rename the header inclusion guard names.
stefano
parents: 3286
diff changeset
28 #ifndef AVFORMAT_RIFF_H
1b6245500d8c Globally rename the header inclusion guard names.
stefano
parents: 3286
diff changeset
29 #define AVFORMAT_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
5058
33a244b7ca65 Add ff_ prefixes to exported symbols in libavformat/riff.h.
diego
parents: 4331
diff changeset
34 int64_t ff_start_tag(ByteIOContext *pb, const char *tag);
33a244b7ca65 Add ff_ prefixes to exported symbols in libavformat/riff.h.
diego
parents: 4331
diff changeset
35 void ff_end_tag(ByteIOContext *pb, int64_t start);
1172
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
5058
33a244b7ca65 Add ff_ prefixes to exported symbols in libavformat/riff.h.
diego
parents: 4331
diff changeset
42 void ff_put_bmp_header(ByteIOContext *pb, AVCodecContext *enc, const AVCodecTag *tags, int for_asf);
33a244b7ca65 Add ff_ prefixes to exported symbols in libavformat/riff.h.
diego
parents: 4331
diff changeset
43 int ff_put_wav_header(ByteIOContext *pb, AVCodecContext *enc);
33a244b7ca65 Add ff_ prefixes to exported symbols in libavformat/riff.h.
diego
parents: 4331
diff changeset
44 enum CodecID ff_wav_codec_get_id(unsigned int tag, int bps);
33a244b7ca65 Add ff_ prefixes to exported symbols in libavformat/riff.h.
diego
parents: 4331
diff changeset
45 void ff_get_wav_header(ByteIOContext *pb, AVCodecContext *codec, int size);
1172
6a5e58d2114b move common stuff from avienc.c and wav.c to new file riff.c
mru
parents:
diff changeset
46
5058
33a244b7ca65 Add ff_ prefixes to exported symbols in libavformat/riff.h.
diego
parents: 4331
diff changeset
47 extern const AVCodecTag ff_codec_bmp_tags[];
33a244b7ca65 Add ff_ prefixes to exported symbols in libavformat/riff.h.
diego
parents: 4331
diff changeset
48 extern const AVCodecTag ff_codec_wav_tags[];
1172
6a5e58d2114b move common stuff from avienc.c and wav.c to new file riff.c
mru
parents:
diff changeset
49
5058
33a244b7ca65 Add ff_ prefixes to exported symbols in libavformat/riff.h.
diego
parents: 4331
diff changeset
50 unsigned int ff_codec_get_tag(const AVCodecTag *tags, int id);
33a244b7ca65 Add ff_ prefixes to exported symbols in libavformat/riff.h.
diego
parents: 4331
diff changeset
51 enum CodecID ff_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
3852
1b6245500d8c Globally rename the header inclusion guard names.
stefano
parents: 3286
diff changeset
54 #endif /* AVFORMAT_RIFF_H */