[MPlayer-dev-eng] [PATCH] Support asf aspect ratio
Reimar Döffinger
Reimar.Doeffinger at stud.uni-karlsruhe.de
Tue Dec 12 21:50:56 CET 2006
Hello,
On Tue, Dec 12, 2006 at 08:30:40PM +0800, Zuxy Meng wrote:
> ////////////////////////
> +// ASF Metadata Record
> +////////////////////////
> +typedef struct {
> + // must be 0 for metadata record, might be non-zero for metadata lib record
> + uint16_t lang_list_index;
> + uint16_t stream_num;
> + uint16_t name_length;
> + uint16_t data_type;
> + uint32_t data_length;
> + uint16_t* name;
> + void* data;
> +} ASF_meta_record_t;
> +
Well, could be moved to asfheader.c since it is only used there...
> +// Data types are usually represented by a uint16_t of following values
> +typedef enum {
> + ASF_UCS16LEs_e, // Unicode string encoded as UCS16LE
> + ASF_Bytes_e, // Array of bytes
> + ASF_Bool_e, // BOOL represented by a uint32_t
> + ASF_DWORD_e,
> + ASF_QWORD_e,
> + ASF_WORD_e,
> + ASF_GUID_e
> +} ASF_DataType_e;
Not used at all, can be removed.
> +static int get_meta(char *buf, int buf_len, int this_stream_num,
> + float* asp_ratio)
> +{
> + int pos = 0;
> + uint16_t records_count, i;
> + uint32_t x = 0, y = 0;
> +
> + if ((pos = find_asf_guid(buf, asf_metadata_header, pos, buf_len)) < 0)
> + return 0;
> +
> + CHECKDEC(buf_len, pos);
> + buf += pos;
> + CHECKDEC(buf_len, 2);
> + records_count = LE_16(buf);
> + buf += 2;
> +
> + for (i = 0; i < records_count; i++) {
> + ASF_meta_record_t record_entry;
> + uint32_t data;
> + uint16_t name_len;
> + char* name;
> +
> + if (!(buf = read_meta_record(&record_entry, buf, &buf_len)))
> + return 0;
> + /* reserved, must be zero */
> + if (record_entry.lang_list_index)
> + continue;
> + /* match stream number: 0 to match all */
> + if (record_entry.stream_num && record_entry.stream_num != this_stream_num)
> + continue;
> + if (!(name = get_ucs2str(record_entry.name, name_len))) {
This should be record_entry.name_length, and the name_len variable
should go.
Data is unused, too.
Greetings,
Reimar Döffinger
More information about the MPlayer-dev-eng
mailing list