[FFmpeg-devel] [PATCH v2 4/5] avformat/chromaprint: Fix writing raw fingerprint
Gyan
ffmpeg at gyani.pro
Tue Oct 15 22:51:18 EEST 2019
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.
Gyan
More information about the ffmpeg-devel
mailing list