[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