[FFmpeg-devel] [PATCH v2 4/5] avformat/chromaprint: Fix writing raw fingerprint

Gyan ffmpeg at gyani.pro
Wed Oct 16 08:09:23 EEST 2019



On 16-10-2019 01:21 AM, Gyan wrote:
>
>
> On 16-10-2019 01:11 AM, Andriy Gelman wrote:
>> On Sun, 06. Oct 01:49, Andriy Gelman wrote:
>>> From: Andriy Gelman <andriy.gelman at gmail.com>
>>>
>>> The pointer fp after the call to chromaprint_get_raw_fingerpoint() 
>>> points to an array of uint32_t whereas the current code assumed just 
>>> a char stream. Thus when writing the raw fingerprint, the output 
>>> would be truncated by a factor of 4. This is fixed in the commit.
>>>
>>> For reference the declaration of the function from chromaprint.h is:
>>> int chromaprint_get_raw_fingerprint(ChromaprintContext *ctx, 
>>> uint32_t **fingerprint, int *size);
>>> ---
>>>   libavformat/chromaprint.c | 2 +-
>>>   1 file changed, 1 insertion(+), 1 deletion(-)
>>>
>>> diff --git a/libavformat/chromaprint.c b/libavformat/chromaprint.c
>>> index a4c0b97d99..faa92ca0db 100644
>>> --- a/libavformat/chromaprint.c
>>> +++ b/libavformat/chromaprint.c
>>> @@ -136,7 +136,7 @@ static int write_trailer(AVFormatContext *s)
>>>         switch (cpr->fp_format) {
>>>       case FINGERPRINT_RAW:
>>> -        avio_write(pb, fp, size);
>>> +        avio_write(pb, fp, size * 4); //fp points to array of uint32_t
>>>           break;
>>>       case FINGERPRINT_COMPRESSED:
>>>       case FINGERPRINT_BASE64:
>>> -- 
>>> 2.23.0
>> ping
> Will check and apply.

Pushed as  e14f5fd0a6983838b5fe3c6ad1c2ec2f2d8e49df

Thanks,
Gyan


More information about the ffmpeg-devel mailing list