There may be garbage or some bits before a SOI comes in some problematic mjpeg streams. For example, some network error may cause the EOI marker of the previous frame lost, and when the new frame's SOI comes, we still use the state of the last frame, which will generate errors.
For this kind of frames without EOI, if that frame already has some data (the SOS segment is detected), we still push it as a frame with CORRUPTED flag set. But if not, we just discard all the data before the new SOI.
It goes above !3943 (merged)