Mercurial > libavformat.hg
comparison mxfenc.c @ 4001:fcb9de59245f libavformat
uses FF_ARRAY_ELEMS() where appropriate
author | aurel |
---|---|
date | Tue, 21 Oct 2008 21:40:24 +0000 |
parents | 1d3d17de20ba |
children | de8c9fae9f5c |
comparison
equal
deleted
inserted
replaced
4000:f0580597dc48 | 4001:fcb9de59245f |
---|---|
72 }; | 72 }; |
73 | 73 |
74 typedef struct MXFContext { | 74 typedef struct MXFContext { |
75 int64_t footer_partition_offset; | 75 int64_t footer_partition_offset; |
76 int essence_container_count; | 76 int essence_container_count; |
77 uint8_t essence_containers_indices[sizeof(mxf_essence_container_uls)/ | 77 uint8_t essence_containers_indices[FF_ARRAY_ELEMS(mxf_essence_container_uls)]; |
78 sizeof(*mxf_essence_container_uls)]; | |
79 } MXFContext; | 78 } MXFContext; |
80 | 79 |
81 static const uint8_t uuid_base[] = { 0xAD,0xAB,0x44,0x24,0x2f,0x25,0x4d,0xc7,0x92,0xff,0x29,0xbd }; | 80 static const uint8_t uuid_base[] = { 0xAD,0xAB,0x44,0x24,0x2f,0x25,0x4d,0xc7,0x92,0xff,0x29,0xbd }; |
82 static const uint8_t umid_base[] = { 0x06,0x0A,0x2B,0x34,0x01,0x01,0x01,0x01,0x01,0x01,0x0F,0x00,0x13,0x00,0x00,0x00 }; | 81 static const uint8_t umid_base[] = { 0x06,0x0A,0x2B,0x34,0x01,0x01,0x01,0x01,0x01,0x01,0x0F,0x00,0x13,0x00,0x00,0x00 }; |
83 | 82 |
205 * Get essence container ul index | 204 * Get essence container ul index |
206 */ | 205 */ |
207 static int mxf_get_essence_container_ul_index(enum CodecID id) | 206 static int mxf_get_essence_container_ul_index(enum CodecID id) |
208 { | 207 { |
209 int i; | 208 int i; |
210 for (i = 0; i < sizeof(mxf_essence_container_uls)/ | 209 for (i = 0; i < FF_ARRAY_ELEMS(mxf_essence_container_uls); i++) |
211 sizeof(*mxf_essence_container_uls); i++) | |
212 if (mxf_essence_container_uls[i].id == id) | 210 if (mxf_essence_container_uls[i].id == id) |
213 return i; | 211 return i; |
214 return -1; | 212 return -1; |
215 } | 213 } |
216 | 214 |
217 static void mxf_write_primer_pack(AVFormatContext *s) | 215 static void mxf_write_primer_pack(AVFormatContext *s) |
218 { | 216 { |
219 ByteIOContext *pb = s->pb; | 217 ByteIOContext *pb = s->pb; |
220 int local_tag_number, i = 0; | 218 int local_tag_number, i = 0; |
221 | 219 |
222 local_tag_number = sizeof(mxf_local_tag_batch)/sizeof(*mxf_local_tag_batch); | 220 local_tag_number = FF_ARRAY_ELEMS(mxf_local_tag_batch); |
223 | 221 |
224 put_buffer(pb, primer_pack_key, 16); | 222 put_buffer(pb, primer_pack_key, 16); |
225 klv_encode_ber_length(pb, local_tag_number * 18 + 8); | 223 klv_encode_ber_length(pb, local_tag_number * 18 + 8); |
226 | 224 |
227 put_be32(pb, local_tag_number); // local_tag num | 225 put_be32(pb, local_tag_number); // local_tag num |
752 | 750 |
753 static int mxf_write_header(AVFormatContext *s) | 751 static int mxf_write_header(AVFormatContext *s) |
754 { | 752 { |
755 MXFContext *mxf = s->priv_data; | 753 MXFContext *mxf = s->priv_data; |
756 int i; | 754 int i; |
757 uint8_t present[sizeof(mxf_essence_container_uls)/ | 755 uint8_t present[FF_ARRAY_ELEMS(mxf_essence_container_uls)] = {0}; |
758 sizeof(*mxf_essence_container_uls)] = {0}; | |
759 | 756 |
760 for (i = 0; i < s->nb_streams; i++) { | 757 for (i = 0; i < s->nb_streams; i++) { |
761 AVStream *st = s->streams[i]; | 758 AVStream *st = s->streams[i]; |
762 MXFStreamContext *sc = av_mallocz(sizeof(*sc)); | 759 MXFStreamContext *sc = av_mallocz(sizeof(*sc)); |
763 if (!sc) | 760 if (!sc) |