If you think a bug might affect users in the 57 release, please set the correct tracking and status flags for Release Management.

liboggplay hangs on random data

RESOLVED WORKSFORME

Status

()

Core
Audio/Video
RESOLVED WORKSFORME
9 years ago
9 years ago

People

(Reporter: roc, Unassigned)

Tracking

Trunk
Points:
---

Firefox Tracking Flags

(Not tracked)

Details

Attachments

(1 attachment)

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.
Created attachment 359681 [details]
test video

Comment 2

9 years ago
with the latest trunk version of firefox this cannot be reproduced.
I can't reproduce this right now.
Status: NEW → RESOLVED
Last Resolved: 9 years ago
Resolution: --- → WORKSFORME

Comment 4

9 years ago
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.