[FFmpeg-devel] [PATCH] Matroska Muxer
Diego Biurrun
diego
Tue Aug 14 11:36:30 CEST 2007
On Mon, Aug 13, 2007 at 08:38:25PM -0400, David Conrad wrote:
>
> Comments and more testing welcome.
Some nits below, the build system changes are OK.
> --- /dev/null
> +++ b/libavformat/matroskaenc.c
> @@ -0,0 +1,811 @@
> +/*
> + * Matroska file muxer
I think just Matroska muxer is enough.
> +// 2 bytes * 3 for EBML IDs, 3 1-byte EBML lengths, 8 bytes for 64 bit offset, 4 bytes for target EBML ID
> +#define MAX_SEEKENTRY_SIZE 21
> +
> +// per-cuepoint-track - 3 1-byte EBML IDs, 3 1-byte EBML sizes, 2 8-byte uint max
> +#define MAX_CUETRACKPOS_SIZE 22
C has multiline comments :) Please keep lines below 80 characters where
it makes sense.
> +/**
> + * Calculate how many bytes are needed to represent a given size in EBML
Add a period at the end.
> + // don't care how many bytes are used, so use the min
> + bytes = needed_bytes;
> + else if (needed_bytes > bytes) {
> + // the bytes needed to write the given size would exceed the bytes
> + // that we need to use, so write unknown size. This shouldn't happen.
> +/**
> + * Writes a void element of a given size. Useful for reserving space in the file to be
> + * written to later.
needlessly long line
> + put_ebml_id(pb, EBML_ID_VOID);
> + // we need to subtract the length needed to store the size from the size we need to reserve
> + // so 2 cases, we use 8 bytes to store the size if possible, 1 byte otherwise
ditto
> +/**
> + * Initialize a mkv_seekhead element to be ready to index level 1 Matroska elements.
> + * If a maximum number of elements is specified, enough space will be reserved at
> + * the current file location to write a seek head of that size.
> + *
> + * @param segment_offset The absolute offset to the position in the file where the segment begins
> + * @param numelements the maximum number of elements that will be indexed by this
> + * seek head, 0 if unlimited.
again
> + // 21 bytes max for a seek entry, 10 bytes max for the SeekHead ID and size,
> + // and 3 bytes to guarantee that an EBML void element will fit afterwards
and again
> +/**
> + * Write the seek head to the file and free it. If a maximum number of elements was
> + * specified to mkv_start_seekhead(), the seek head will be written at the location
> + * reserved for it. Otherwise, it is written at the current location in the file.
and ..
.. some more occurrences can be found below ..
> + av_log(codec, AV_LOG_WARNING, "no aac extradata, unable to determine sample rate\n");
AAC, samplerate, same below
Diego
More information about the ffmpeg-devel
mailing list