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.
Might have been the liboggplay update that went through the night before.