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)