Mercurial > libavformat.hg
annotate matroska.c @ 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 | d9d8ee457c22 |
children | a9b8842d33ab |
rev | line source |
---|---|
380
9416dc106e06
matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff
changeset
|
1 /* |
2142
3aa1f0f698de
split some common code from the mkv demuxer that will be useful to the muxer
aurel
parents:
2023
diff
changeset
|
2 * Matroska common data |
380
9416dc106e06
matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff
changeset
|
3 * Copyright (c) 2003-2004 The ffmpeg Project |
9416dc106e06
matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff
changeset
|
4 * |
1358
0899bfe4105c
Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents:
1332
diff
changeset
|
5 * This file is part of FFmpeg. |
0899bfe4105c
Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents:
1332
diff
changeset
|
6 * |
0899bfe4105c
Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents:
1332
diff
changeset
|
7 * FFmpeg is free software; you can redistribute it and/or |
380
9416dc106e06
matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff
changeset
|
8 * modify it under the terms of the GNU Lesser General Public |
9416dc106e06
matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
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:
1332
diff
changeset
|
10 * version 2.1 of the License, or (at your option) any later version. |
380
9416dc106e06
matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff
changeset
|
11 * |
1358
0899bfe4105c
Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents:
1332
diff
changeset
|
12 * FFmpeg is distributed in the hope that it will be useful, |
380
9416dc106e06
matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff
changeset
|
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
9416dc106e06
matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff
changeset
|
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
9416dc106e06
matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff
changeset
|
15 * Lesser General Public License for more details. |
9416dc106e06
matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff
changeset
|
16 * |
9416dc106e06
matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
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:
1332
diff
changeset
|
18 * License along with FFmpeg; if not, write to the Free Software |
896
edbe5c3717f9
Update licensing information: The FSF changed postal address.
diego
parents:
887
diff
changeset
|
19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA |
380
9416dc106e06
matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff
changeset
|
20 */ |
9416dc106e06
matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff
changeset
|
21 |
2142
3aa1f0f698de
split some common code from the mkv demuxer that will be useful to the muxer
aurel
parents:
2023
diff
changeset
|
22 #include "matroska.h" |
380
9416dc106e06
matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff
changeset
|
23 |
2793
d5842afe8539
Make ff_mkv_codec_tags array const, it is never written.
reimar
parents:
2533
diff
changeset
|
24 const CodecTags ff_mkv_codec_tags[]={ |
1024 | 25 {"V_UNCOMPRESSED" , CODEC_ID_RAWVIDEO}, |
2533 | 26 {"V_MPEG4/ISO/ASP" , CODEC_ID_MPEG4}, |
1024 | 27 {"V_MPEG4/ISO/SP" , CODEC_ID_MPEG4}, |
28 {"V_MPEG4/ISO/AP" , CODEC_ID_MPEG4}, | |
29 {"V_MPEG4/ISO/AVC" , CODEC_ID_H264}, | |
30 {"V_MPEG4/MS/V3" , CODEC_ID_MSMPEG4V3}, | |
31 {"V_MPEG1" , CODEC_ID_MPEG1VIDEO}, | |
32 {"V_MPEG2" , CODEC_ID_MPEG2VIDEO}, | |
33 {"V_MJPEG" , CODEC_ID_MJPEG}, | |
34 {"V_REAL/RV10" , CODEC_ID_RV10}, | |
35 {"V_REAL/RV20" , CODEC_ID_RV20}, | |
36 {"V_REAL/RV30" , CODEC_ID_RV30}, | |
37 {"V_REAL/RV40" , CODEC_ID_RV40}, | |
1949 | 38 {"V_THEORA" , CODEC_ID_THEORA}, |
2405 | 39 {"V_SNOW" , CODEC_ID_SNOW}, |
1024 | 40 |
2278
5e5e2df75af3
reorder matroska codec tags so that the encoder picks up the appropriate tag
aurel
parents:
2264
diff
changeset
|
41 {"A_MPEG/L3" , CODEC_ID_MP3}, |
2279
3c02e08e7b5a
use the most appropriate codec id for A_MPEG/L1 and L2
aurel
parents:
2278
diff
changeset
|
42 {"A_MPEG/L2" , CODEC_ID_MP2}, |
3c02e08e7b5a
use the most appropriate codec id for A_MPEG/L1 and L2
aurel
parents:
2278
diff
changeset
|
43 {"A_MPEG/L1" , CODEC_ID_MP2}, |
3746 | 44 {"A_PCM/INT/BIG" , CODEC_ID_PCM_S16BE}, |
45 {"A_PCM/INT/BIG" , CODEC_ID_PCM_S24BE}, | |
46 {"A_PCM/INT/BIG" , CODEC_ID_PCM_S32BE}, | |
47 {"A_PCM/INT/LIT" , CODEC_ID_PCM_S16LE}, | |
48 {"A_PCM/INT/LIT" , CODEC_ID_PCM_S24LE}, | |
49 {"A_PCM/INT/LIT" , CODEC_ID_PCM_S32LE}, | |
50 {"A_PCM/INT/LIT" , CODEC_ID_PCM_U8}, | |
51 {"A_PCM/FLOAT/IEEE" , CODEC_ID_PCM_F32LE}, | |
52 {"A_PCM/FLOAT/IEEE" , CODEC_ID_PCM_F64LE}, | |
1024 | 53 {"A_AC3" , CODEC_ID_AC3}, |
3686
03df0b5927ff
matroskadec: remove useless comments in ff_mkv_codec_tags
aurel
parents:
3602
diff
changeset
|
54 // {"A_EAC3" , CODEC_ID_EAC3}, |
1024 | 55 {"A_DTS" , CODEC_ID_DTS}, |
56 {"A_VORBIS" , CODEC_ID_VORBIS}, | |
1475 | 57 {"A_AAC" , CODEC_ID_AAC}, |
1537 | 58 {"A_FLAC" , CODEC_ID_FLAC}, |
1451 | 59 {"A_WAVPACK4" , CODEC_ID_WAVPACK}, |
1534 | 60 {"A_TTA1" , CODEC_ID_TTA}, |
2144 | 61 {"A_REAL/14_4" , CODEC_ID_RA_144}, |
62 {"A_REAL/28_8" , CODEC_ID_RA_288}, | |
63 {"A_REAL/ATRC" , CODEC_ID_ATRAC3}, | |
64 {"A_REAL/COOK" , CODEC_ID_COOK}, | |
65 // {"A_REAL/SIPR" , CODEC_ID_SIPRO}, | |
3602 | 66 {"A_QUICKTIME/QDM2" , CODEC_ID_QDM2}, |
2244 | 67 |
2278
5e5e2df75af3
reorder matroska codec tags so that the encoder picks up the appropriate tag
aurel
parents:
2264
diff
changeset
|
68 {"S_TEXT/UTF8" , CODEC_ID_TEXT}, |
2244 | 69 {"S_TEXT/ASCII" , CODEC_ID_TEXT}, |
2873
3fad6c2f343a
export raw SSA tracks with their own codec ID (patch by Evgeniy Stepanov)
aurel
parents:
2793
diff
changeset
|
70 {"S_TEXT/ASS" , CODEC_ID_SSA}, |
3fad6c2f343a
export raw SSA tracks with their own codec ID (patch by Evgeniy Stepanov)
aurel
parents:
2793
diff
changeset
|
71 {"S_TEXT/SSA" , CODEC_ID_SSA}, |
3fad6c2f343a
export raw SSA tracks with their own codec ID (patch by Evgeniy Stepanov)
aurel
parents:
2793
diff
changeset
|
72 {"S_ASS" , CODEC_ID_SSA}, |
3fad6c2f343a
export raw SSA tracks with their own codec ID (patch by Evgeniy Stepanov)
aurel
parents:
2793
diff
changeset
|
73 {"S_SSA" , CODEC_ID_SSA}, |
2244 | 74 {"S_VOBSUB" , CODEC_ID_DVD_SUBTITLE}, |
75 | |
2905
616fb87724b5
Make ff_mkv_codec_tags lie entirely in .rodata section.
aurel
parents:
2873
diff
changeset
|
76 {"" , CODEC_ID_NONE} |
1024 | 77 }; |
2973 | 78 |
79 const CodecMime ff_mkv_mime_tags[] = { | |
80 {"text/plain" , CODEC_ID_TEXT}, | |
81 {"image/gif" , CODEC_ID_GIF}, | |
82 {"image/jpeg" , CODEC_ID_MJPEG}, | |
83 {"image/png" , CODEC_ID_PNG}, | |
84 {"image/tiff" , CODEC_ID_TIFF}, | |
85 {"application/x-truetype-font", CODEC_ID_TTF}, | |
86 {"application/x-font" , CODEC_ID_TTF}, | |
87 | |
88 {"" , CODEC_ID_NONE} | |
89 }; |