From 1148ea734e207ac0153d3e206c8618644a22fb96 Mon Sep 17 00:00:00 2001 From: Adrien Destugues Date: Wed, 10 Dec 2014 10:03:59 +0100 Subject: [PATCH] AVCodecDecoder: remove annoying assert. According to Colin this is not supposed to happen, but it does. Since the affected video otherwise decodes just fine, I think it is safe to disable the assert and not annoy our users. Fixes #11409. --- src/add-ons/media/plugins/ffmpeg/AVCodecDecoder.cpp | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/add-ons/media/plugins/ffmpeg/AVCodecDecoder.cpp b/src/add-ons/media/plugins/ffmpeg/AVCodecDecoder.cpp index a77f21d3b6..ac417f4ded 100644 --- a/src/add-ons/media/plugins/ffmpeg/AVCodecDecoder.cpp +++ b/src/add-ons/media/plugins/ffmpeg/AVCodecDecoder.cpp @@ -1144,8 +1144,8 @@ AVCodecDecoder::_UpdateMediaHeaderForAudioFrame() and the start time it should be presented isn't established at the moment. Though this might change in the future. - More over the fOutputFrameRate variable is updated for every decoded video - frame. + More over the fOutputFrameRate variable is updated for every decoded video + frame. On first call the member variables fSwsContext / fFormatConversionFunc are initialized. @@ -1154,11 +1154,18 @@ AVCodecDecoder::_UpdateMediaHeaderForAudioFrame() \returns B_LAST_BUFFER_ERROR when there are no more video frames available. \returns B_NO_MEMORY when we have no memory left for correct operation. \returns Other Errors - */ +*/ status_t AVCodecDecoder::_DecodeNextVideoFrame() { +#if 0 + // Well, I heard this was not supposed to happen, but it does + // (for example with http://thud.us/videos/misc/xvid-samples/flyby-divx.avi + // see #11409). Since that video otherwise plays fine when removing the + // assert, I'm assuming we are being overcautious here and commenting it + // out. assert(fTempPacket.size >= 0); +#endif while (true) { status_t loadingChunkStatus