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)