[FFmpeg-devel] [PATCH] ffmpeg doesn't decode track number on some wma files
Patrice Bensoussan
patrice.bensoussan
Thu Jun 14 20:20:18 CEST 2007
On 14 Jun 2007, at 09:52, Michael Niedermayer wrote:
> Hi
>
> On Thu, Jun 14, 2007 at 09:13:52AM +0100, Patrice Bensoussan wrote:
>>
>> On 14 Jun 2007, at 09:00, Benoit Fouet wrote:
>>
>>> Patrice Bensoussan wrote:
>>>> Hello,
>>>>
>>>> On 14 Jun 2007, at 08:40, Benoit Fouet wrote:
>>>>
>>>>
>>>>> Hi,
>>>>>
>>>>> Patrice Bensoussan wrote:
>>>>>
>>>>>> Index: libavformat/asf.c
>>>>>> =================================================================
>>>>>> ==
>>>>>> --- libavformat/asf.c (revision 9304)
>>>>>> +++ libavformat/asf.c (working copy)
>>>>>> @@ -389,6 +389,16 @@
>>>>>> {
>>>>>> if (!strcmp(name,"WM/
>>>>>> AlbumTitle")) get_str16_nolen(pb, value_len, s->album, sizeof(s-
>>>>>>
>>>>>>> album));
>>>>>>>
>>>>>> else if(!strcmp(name,"WM/
>>>>>> Genre" )) get_str16_nolen(pb, value_len, s->genre, sizeof(s-
>>>>>>
>>>>>>> genre));
>>>>>>>
>>>>>> + else if (!strcmp(name,"WM/
>>>>>> Track")) {
>>>>>> + char track[8];
>>>>>> + get_str16_nolen(pb,
>>>>>> value_len, track, sizeof(track));
>>>>>> + s->track = strtol(track,
>>>>>> NULL, 10) + 1;
>>>>>> + }
>>>>>> + else if (!strcmp(name,"WM/
>>>>>> TrackNumber")) {
>>>>>> + char track[8];
>>>>>> + get_str16_nolen(pb,
>>>>>> value_len, track, sizeof(track));
>>>>>> + s->track = strtol(track,
>>>>>> NULL, 10);
>>>>>> + }
>>>>>>
>>>>>>
>>>>> you should try to keep the nice alignment
>>>>> also, if i read correctly, it is the very same code for the two
>>>>> else if
>>>>> you added. Why not add them into a single one ?
>>>>>
>>>>
>>>> The alignment seems to be correct for me (I checked with an hex
>>>> editor and can only see spaces unless I am missing something).
>>>
>>> i was more thinking of if and strcmp's parenthesis alignment
>>>
>>
>> OK, I missed that one. Here is a new patch with the if parenthesis
>> aligned.
> [...]
>> Index: libavformat/asf.c
>> ===================================================================
>> --- libavformat/asf.c (revision 9304)
>> +++ libavformat/asf.c (working copy)
>> @@ -389,6 +389,16 @@
>> {
>> if (!strcmp(name,"WM/
>> AlbumTitle")) get_str16_nolen(pb, value_len, s->album, sizeof(s-
>> >album));
>> else if(!strcmp(name,"WM/
>> Genre" )) get_str16_nolen(pb, value_len, s->genre, sizeof(s-
>> >genre));
>> + else if(!strcmp(name,"WM/Track")) {
>> + char track[8];
>> + get_str16_nolen(pb,
>> value_len, track, sizeof(track));
>> + s->track = strtol(track,
>> NULL, 10) + 1;
>> + }
>> + else if(!strcmp(name,"WM/
>> TrackNumber")) {
>> + char track[8];
>> + get_str16_nolen(pb,
>> value_len, track, sizeof(track));
>> + s->track = strtol(track,
>> NULL, 10);
>> + }
>
> what about
> char buf[123];
> get_str16_nolen(pb, value_len, track, sizeof(buf));
> if( !strcmp(name,"WM/AlbumTitle")) copy
> else if(!strcmp(name,"WM/Genre" )) copy
> else if(!strcmp(name,"WM/Track" )) s->track = strtol(track,
> NULL, 10) + 1;
> ...
>
> ?
This code would be slower (you are going to do some extra copying and
I think it is less readable IMHO. I would rather stick with the patch
submitted.
Patrice
More information about the ffmpeg-devel
mailing list