I found a bug in libmpeg3-1.3 that causes timestamps bigger than 2982 into the stream to be decoded incorrectly.
Around line 475 in function mpeg3_get_pack_header
clock_ref = ((i & 0x31000000) << 3);
clock_ref = ((i & 0x38000000) << 3);
(The bit mask was overlapping with the one in the following line)