Closed Bug 476089 Opened 15 years ago Closed 15 years ago

liboggplay hangs on random data

Categories

(Core :: Audio/Video, defect)

defect
Not set
normal

Tracking

()

RESOLVED WORKSFORME

People

(Reporter: roc, Unassigned)

Details

Attachments

(1 file)

Try loading the attachment below. The decoder thread goes into an infinite loop in oggplay_step_decoding. Basically, 'remaining' is always set to 1, bug oggplay_callback_info_prepare always returns NULL info so we always take the loop back to read_more_data. The reason 'remaining' is set to 1 is that

me->decode_data[i]->current_loc + me->decode_data[i]->granuleperiod
>= me->target + me->decode_data[i]->offset

In this case, me->decode_data[i]->current_loc is -1 and me->decode_data[i]->granuleperiod is 2^32-1, me->target is 0 and me->decode_data[i]->offset is 0.

It looks like current_loc's -1 value is intended as some kind of sentinel so we shouldn't be adding it to granuleperiod this way. Probably we just need to insert a check for -1 here, but I'm not 100% sure since I haven't really figured out the code.
with the latest trunk version of firefox this cannot be reproduced.
I can't reproduce this right now.
Status: NEW → RESOLVED
Closed: 15 years ago
Resolution: --- → WORKSFORME
Might have been the liboggplay update that went through the night before.
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: