Mercurial > libavformat.hg
annotate mxf.h @ 6435:67433b0c29d5 libavformat
move h264 demuxer to its own file
author | aurel |
---|---|
date | Sun, 29 Aug 2010 21:28:51 +0000 |
parents | 8551432b011a |
children |
rev | line source |
---|---|
1186 | 1 /* |
3734 | 2 * MXF |
4251
77e0c7511d41
cosmetics: Remove pointless period after copyright statement non-sentences.
diego
parents:
4176
diff
changeset
|
3 * Copyright (c) 2006 SmartJog S.A., Baptiste Coudurier <baptiste dot coudurier at smartjog dot com> |
1186 | 4 * |
1358
0899bfe4105c
Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents:
1354
diff
changeset
|
5 * This file is part of FFmpeg. |
0899bfe4105c
Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents:
1354
diff
changeset
|
6 * |
0899bfe4105c
Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents:
1354
diff
changeset
|
7 * FFmpeg is free software; you can redistribute it and/or |
1186 | 8 * modify it under the terms of the GNU Lesser General Public |
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:
1354
diff
changeset
|
10 * version 2.1 of the License, or (at your option) any later version. |
1186 | 11 * |
1358
0899bfe4105c
Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents:
1354
diff
changeset
|
12 * FFmpeg is distributed in the hope that it will be useful, |
1186 | 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 | |
1358
0899bfe4105c
Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents:
1354
diff
changeset
|
18 * License along with FFmpeg; if not, write to the Free Software |
1186 | 19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA |
20 */ | |
3852 | 21 #ifndef AVFORMAT_MXF_H |
22 #define AVFORMAT_MXF_H | |
1186 | 23 |
4403 | 24 #include "libavcodec/avcodec.h" |
25 #include <stdint.h> | |
1186 | 26 |
1197 | 27 typedef uint8_t UID[16]; |
1189 | 28 |
1223
5f1bf54448e7
resolve strong refs in parse_structural_metadata since objects may not be ordered, use object oriented approach
bcoudurier
parents:
1218
diff
changeset
|
29 enum MXFMetadataSetType { |
1634
eeb3521e4d09
AnyType is needed, descriptor_ref can reference Descriptor or MultipleDescriptor
bcoudurier
parents:
1633
diff
changeset
|
30 AnyType, |
1190
03c0b0e61e5b
demuxer reworked, more accurate parsing, prepare handling of other operational patterns, streaming demuxing, simplified codec detection
bcoudurier
parents:
1189
diff
changeset
|
31 MaterialPackage, |
03c0b0e61e5b
demuxer reworked, more accurate parsing, prepare handling of other operational patterns, streaming demuxing, simplified codec detection
bcoudurier
parents:
1189
diff
changeset
|
32 SourcePackage, |
03c0b0e61e5b
demuxer reworked, more accurate parsing, prepare handling of other operational patterns, streaming demuxing, simplified codec detection
bcoudurier
parents:
1189
diff
changeset
|
33 SourceClip, |
1223
5f1bf54448e7
resolve strong refs in parse_structural_metadata since objects may not be ordered, use object oriented approach
bcoudurier
parents:
1218
diff
changeset
|
34 TimecodeComponent, |
5f1bf54448e7
resolve strong refs in parse_structural_metadata since objects may not be ordered, use object oriented approach
bcoudurier
parents:
1218
diff
changeset
|
35 Sequence, |
5f1bf54448e7
resolve strong refs in parse_structural_metadata since objects may not be ordered, use object oriented approach
bcoudurier
parents:
1218
diff
changeset
|
36 MultipleDescriptor, |
5f1bf54448e7
resolve strong refs in parse_structural_metadata since objects may not be ordered, use object oriented approach
bcoudurier
parents:
1218
diff
changeset
|
37 Descriptor, |
5f1bf54448e7
resolve strong refs in parse_structural_metadata since objects may not be ordered, use object oriented approach
bcoudurier
parents:
1218
diff
changeset
|
38 Track, |
1779
de2cf54eb68f
mxf aes decryption support, patch by Reimar, simplified to only look for first crypto context, will be extended once we get files with multiple cryptocontext, and hope that they won't have broken container ul
bcoudurier
parents:
1655
diff
changeset
|
39 CryptoContext, |
3734 | 40 Preface, |
41 Identification, | |
42 ContentStorage, | |
43 SubDescriptor, | |
4176 | 44 IndexTableSegment, |
4279 | 45 EssenceContainerData, |
3760
fde28855a81e
Import more ok'ed chunks of the mxf muxer from the soc tree
vitor
parents:
3749
diff
changeset
|
46 TypeBottom,// add metadata type before this |
1190
03c0b0e61e5b
demuxer reworked, more accurate parsing, prepare handling of other operational patterns, streaming demuxing, simplified codec detection
bcoudurier
parents:
1189
diff
changeset
|
47 }; |
03c0b0e61e5b
demuxer reworked, more accurate parsing, prepare handling of other operational patterns, streaming demuxing, simplified codec detection
bcoudurier
parents:
1189
diff
changeset
|
48 |
2125 | 49 typedef struct { |
1189 | 50 UID key; |
3973
549a09cf23fe
Remove offset_t typedef and use int64_t directly instead.
diego
parents:
3852
diff
changeset
|
51 int64_t offset; |
1186 | 52 uint64_t length; |
53 } KLVPacket; | |
54 | |
2125 | 55 typedef struct { |
1190
03c0b0e61e5b
demuxer reworked, more accurate parsing, prepare handling of other operational patterns, streaming demuxing, simplified codec detection
bcoudurier
parents:
1189
diff
changeset
|
56 UID uid; |
2942 | 57 unsigned matching_len; |
4404 | 58 int id; |
1190
03c0b0e61e5b
demuxer reworked, more accurate parsing, prepare handling of other operational patterns, streaming demuxing, simplified codec detection
bcoudurier
parents:
1189
diff
changeset
|
59 } MXFCodecUL; |
03c0b0e61e5b
demuxer reworked, more accurate parsing, prepare handling of other operational patterns, streaming demuxing, simplified codec detection
bcoudurier
parents:
1189
diff
changeset
|
60 |
4404 | 61 extern const MXFCodecUL ff_mxf_data_definition_uls[]; |
3734 | 62 extern const MXFCodecUL ff_mxf_codec_uls[]; |
1186 | 63 |
6198 | 64 typedef struct { |
65 enum PixelFormat pix_fmt; | |
66 const char data[16]; | |
67 } MXFPixelLayout; | |
68 | |
69 extern const MXFPixelLayout ff_mxf_pixel_layouts[]; | |
70 | |
71 int ff_mxf_decode_pixel_layout(const char pixel_layout[16], enum PixelFormat *pix_fmt); | |
72 | |
3749 | 73 #ifdef DEBUG |
1907 | 74 #define PRINT_KEY(pc, s, x) dprintf(pc, "%s %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X\n", s, \ |
1208 | 75 (x)[0], (x)[1], (x)[2], (x)[3], (x)[4], (x)[5], (x)[6], (x)[7], (x)[8], (x)[9], (x)[10], (x)[11], (x)[12], (x)[13], (x)[14], (x)[15]) |
3749 | 76 #else |
77 #define PRINT_KEY(pc, s, x) | |
78 #endif | |
1186 | 79 |
3852 | 80 #endif /* AVFORMAT_MXF_H */ |