Mercurial > libavformat.hg
comparison gxfenc.c @ 4479:4e18c9ac9b10 libavformat
cosmetics, rename nb_frames to nb_fields
author | bcoudurier |
---|---|
date | Fri, 13 Feb 2009 21:32:18 +0000 |
parents | 6ed62b8257dd |
children | b88326454853 |
comparison
equal
deleted
inserted
replaced
4478:548d31443ddc | 4479:4e18c9ac9b10 |
---|---|
48 int64_t current_dts; | 48 int64_t current_dts; |
49 int dts_delay; | 49 int dts_delay; |
50 } GXFStreamContext; | 50 } GXFStreamContext; |
51 | 51 |
52 typedef struct GXFContext { | 52 typedef struct GXFContext { |
53 uint32_t nb_frames; | 53 uint32_t nb_fields; |
54 uint32_t material_flags; | 54 uint32_t material_flags; |
55 uint16_t audio_tracks; | 55 uint16_t audio_tracks; |
56 uint16_t mpeg_tracks; | 56 uint16_t mpeg_tracks; |
57 int64_t creation_time; | 57 int64_t creation_time; |
58 uint32_t umf_start_offset; | 58 uint32_t umf_start_offset; |
294 put_be32(pb, 0); | 294 put_be32(pb, 0); |
295 | 295 |
296 /* last field */ | 296 /* last field */ |
297 put_byte(pb, MAT_LAST_FIELD); | 297 put_byte(pb, MAT_LAST_FIELD); |
298 put_byte(pb, 4); | 298 put_byte(pb, 4); |
299 put_be32(pb, ctx->nb_frames); | 299 put_be32(pb, ctx->nb_fields); |
300 | 300 |
301 /* reserved */ | 301 /* reserved */ |
302 put_byte(pb, MAT_MARK_IN); | 302 put_byte(pb, MAT_MARK_IN); |
303 put_byte(pb, 4); | 303 put_byte(pb, 4); |
304 put_be32(pb, 0); | 304 put_be32(pb, 0); |
305 | 305 |
306 put_byte(pb, MAT_MARK_OUT); | 306 put_byte(pb, MAT_MARK_OUT); |
307 put_byte(pb, 4); | 307 put_byte(pb, 4); |
308 put_be32(pb, ctx->nb_frames); | 308 put_be32(pb, ctx->nb_fields); |
309 | 309 |
310 /* estimated size */ | 310 /* estimated size */ |
311 put_byte(pb, MAT_SIZE); | 311 put_byte(pb, MAT_SIZE); |
312 put_byte(pb, 4); | 312 put_byte(pb, 4); |
313 put_be32(pb, url_fsize(pb) / 1024); | 313 put_be32(pb, url_fsize(pb) / 1024); |
363 | 363 |
364 static int gxf_write_umf_material_description(ByteIOContext *pb, GXFContext *ctx) | 364 static int gxf_write_umf_material_description(ByteIOContext *pb, GXFContext *ctx) |
365 { | 365 { |
366 // XXX drop frame | 366 // XXX drop frame |
367 uint32_t timecode = | 367 uint32_t timecode = |
368 ctx->nb_frames / (ctx->sample_rate * 3600) % 24 << 24 | // hours | 368 ctx->nb_fields / (ctx->sample_rate * 3600) % 24 << 24 | // hours |
369 ctx->nb_frames / (ctx->sample_rate * 60) % 60 << 16 | // minutes | 369 ctx->nb_fields / (ctx->sample_rate * 60) % 60 << 16 | // minutes |
370 ctx->nb_frames / ctx->sample_rate % 60 << 8 | // seconds | 370 ctx->nb_fields / ctx->sample_rate % 60 << 8 | // seconds |
371 ctx->nb_frames % ctx->sample_rate; // fields | 371 ctx->nb_fields % ctx->sample_rate; // fields |
372 | 372 |
373 put_le32(pb, ctx->flags); | 373 put_le32(pb, ctx->flags); |
374 put_le32(pb, ctx->nb_frames); /* length of the longest track */ | 374 put_le32(pb, ctx->nb_fields); /* length of the longest track */ |
375 put_le32(pb, ctx->nb_frames); /* length of the shortest track */ | 375 put_le32(pb, ctx->nb_fields); /* length of the shortest track */ |
376 put_le32(pb, 0); /* mark in */ | 376 put_le32(pb, 0); /* mark in */ |
377 put_le32(pb, ctx->nb_frames); /* mark out */ | 377 put_le32(pb, ctx->nb_fields); /* mark out */ |
378 put_le32(pb, 0); /* timecode mark in */ | 378 put_le32(pb, 0); /* timecode mark in */ |
379 put_le32(pb, timecode); /* timecode mark out */ | 379 put_le32(pb, timecode); /* timecode mark out */ |
380 put_le64(pb, ctx->fc->timestamp); /* modification time */ | 380 put_le64(pb, ctx->fc->timestamp); /* modification time */ |
381 put_le64(pb, ctx->fc->timestamp); /* creation time */ | 381 put_le64(pb, ctx->fc->timestamp); /* creation time */ |
382 put_le16(pb, 0); /* reserved */ | 382 put_le16(pb, 0); /* reserved */ |
518 startpos = url_ftell(pb); | 518 startpos = url_ftell(pb); |
519 put_le16(pb, 0); /* length */ | 519 put_le16(pb, 0); /* length */ |
520 put_le16(pb, sc->media_info); | 520 put_le16(pb, sc->media_info); |
521 put_le16(pb, 0); /* reserved */ | 521 put_le16(pb, 0); /* reserved */ |
522 put_le16(pb, 0); /* reserved */ | 522 put_le16(pb, 0); /* reserved */ |
523 put_le32(pb, ctx->nb_frames); | 523 put_le32(pb, ctx->nb_fields); |
524 put_le32(pb, 0); /* attributes rw, ro */ | 524 put_le32(pb, 0); /* attributes rw, ro */ |
525 put_le32(pb, 0); /* mark in */ | 525 put_le32(pb, 0); /* mark in */ |
526 put_le32(pb, ctx->nb_frames); /* mark out */ | 526 put_le32(pb, ctx->nb_fields); /* mark out */ |
527 strncpy(buffer, ES_NAME_PATTERN, path_size); | 527 strncpy(buffer, ES_NAME_PATTERN, path_size); |
528 put_buffer(pb, (uint8_t *)buffer, path_size); | 528 put_buffer(pb, (uint8_t *)buffer, path_size); |
529 put_be16(pb, sc->media_info); | 529 put_be16(pb, sc->media_info); |
530 put_buffer(pb, (uint8_t *)buffer + path_size + 2, 88 - path_size - 2); | 530 put_buffer(pb, (uint8_t *)buffer + path_size + 2, 88 - path_size - 2); |
531 put_le32(pb, sc->track_type); | 531 put_le32(pb, sc->track_type); |
774 gxf_write_media_preamble(pb, ctx, pkt, pkt->size + padding); | 774 gxf_write_media_preamble(pb, ctx, pkt, pkt->size + padding); |
775 put_buffer(pb, pkt->data, pkt->size); | 775 put_buffer(pb, pkt->data, pkt->size); |
776 gxf_write_padding(pb, padding); | 776 gxf_write_padding(pb, padding); |
777 | 777 |
778 if (sc->codec->codec_type == CODEC_TYPE_VIDEO) | 778 if (sc->codec->codec_type == CODEC_TYPE_VIDEO) |
779 ctx->nb_frames += 2; // count fields | 779 ctx->nb_fields += 2; // count fields |
780 | 780 |
781 return updatePacketSize(pb, pos); | 781 return updatePacketSize(pb, pos); |
782 } | 782 } |
783 | 783 |
784 static int gxf_write_packet(AVFormatContext *s, AVPacket *pkt) | 784 static int gxf_write_packet(AVFormatContext *s, AVPacket *pkt) |