comparison asf.c @ 2538:0d837f926052 libavformat

Improve track number decoding for some WMA files patch by Patrice Bensoussan %patrice P bensoussan A free P fr% Original thread: Date: Sep 9, 2007 12:33 PM Subject: [FFmpeg-devel] [PATCH] Improve track number decoding for some WMA files
author gpoirier
date Sun, 09 Sep 2007 17:54:26 +0000
parents 1a2f353ac291
children bef7b30c2969
comparison
equal deleted inserted replaced
2537:46fc89be5b52 2538:0d837f926052
388 value_len = get_le16(pb); 388 value_len = get_le16(pb);
389 if ((value_type == 0) || (value_type == 1)) // unicode or byte 389 if ((value_type == 0) || (value_type == 1)) // unicode or byte
390 { 390 {
391 if (!strcmp(name,"WM/AlbumTitle")) get_str16_nolen(pb, value_len, s->album, sizeof(s->album)); 391 if (!strcmp(name,"WM/AlbumTitle")) get_str16_nolen(pb, value_len, s->album, sizeof(s->album));
392 else if(!strcmp(name,"WM/Genre" )) get_str16_nolen(pb, value_len, s->genre, sizeof(s->genre)); 392 else if(!strcmp(name,"WM/Genre" )) get_str16_nolen(pb, value_len, s->genre, sizeof(s->genre));
393 else if(!strcmp(name,"WM/Track")) { 393 else if(!strcmp(name,"WM/Track") && s->track == 0) {
394 char track[8]; 394 char track[8];
395 get_str16_nolen(pb, value_len, track, sizeof(track)); 395 get_str16_nolen(pb, value_len, track, sizeof(track));
396 s->track = strtol(track, NULL, 10) + 1; 396 s->track = strtol(track, NULL, 10) + 1;
397 } 397 }
398 else if(!strcmp(name,"WM/TrackNumber")) { 398 else if(!strcmp(name,"WM/TrackNumber")) {
403 else url_fskip(pb, value_len); 403 else url_fskip(pb, value_len);
404 } 404 }
405 if ((value_type >= 2) && (value_type <= 5)) // boolean or DWORD or QWORD or WORD 405 if ((value_type >= 2) && (value_type <= 5)) // boolean or DWORD or QWORD or WORD
406 { 406 {
407 value_num= get_value(pb, value_type); 407 value_num= get_value(pb, value_type);
408 if (!strcmp(name,"WM/Track" )) s->track = value_num + 1; 408 if (!strcmp(name,"WM/Track" ) && s->track == 0) s->track = value_num + 1;
409 if (!strcmp(name,"WM/TrackNumber")) s->track = value_num; 409 if (!strcmp(name,"WM/TrackNumber")) s->track = value_num;
410 } 410 }
411 } 411 }
412 } else if (!memcmp(&g, &metadata_header, sizeof(GUID))) { 412 } else if (!memcmp(&g, &metadata_header, sizeof(GUID))) {
413 int n, stream_num, name_len, value_len, value_type, value_num; 413 int n, stream_num, name_len, value_len, value_type, value_num;