[FFmpeg-devel] [PATCH] ffmpeg doesn't decode track number on some wma files
Patrice Bensoussan
patrice.bensoussan
Thu Jun 14 22:28:08 CEST 2007
On 14 Jun 2007, at 20:58, Michael Niedermayer wrote:
> Hi
>
> On Thu, Jun 14, 2007 at 07:20:18PM +0100, Patrice Bensoussan wrote:
>>
>> 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
>
> this is used only by the header reading code
>
>
>> I think it is less readable IMHO. I would rather stick with the patch
>> submitted.
>
> well i have no strong oppinion on this, do whatever you like, asf
> is a mess
> anyway
>
The patch is good enough for me... If anyone wants to commit...
Patrice
More information about the ffmpeg-devel
mailing list