FFmpeg debug assert in analyzerqueue

Bug #1698678 reported by Daniel Schürmann on 2017-06-18
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Mixxx
Critical
Uwe Klotz

Bug Description

A Debug debug assert fails with recent master build an FFmpeg, analyzing a m4a track:

Debug [AnalyzerQueue 1]: SoundSourceFFmpeg - readFramesToCache: Packet too big or File end
Critical [AnalyzerQueue 1]: DEBUG ASSERT: "framesRead <= framesToRead" in function bool AnalyzerQueue::doAnalysis(TrackPointer, mixxx::AudioSourcePointer) at src/analyzer/analyzerqueue.cpp:203

framesRead = 4096 and framesToRead = 1024

this cause additional follow up failing debug asserts, because we use the invalid framesRead.

Changed in mixxx:
importance: Undecided → Critical
Uwe Klotz (uklotzde) wrote :

AnalyzerQueue should only request framesToRead instead of kAnalysisFramesPerBlock frames. On the other hand SoundSourceFFmpeg should limit the requested number of frames appropriately and only return what is actually available.

A typical example of lazy implementation meets careless caller. Both could do better to prevent these kind of errors.

Uwe Klotz (uklotzde) wrote :
Uwe Klotz (uklotzde) wrote :

Fix for AnalyzerQueue has been committed. This bug is no longer critical, although SoundSourceFFmpeg should also be fixed.

Changed in mixxx:
status: New → Confirmed
Uwe Klotz (uklotzde) wrote :

...and a new API compliance test: https://github.com/mixxxdj/mixxx/pull/1291

Uwe Klotz (uklotzde) wrote :

The PR now fixes SoundSourceFFmpeg.

Changed in mixxx:
assignee: nobody → Uwe Klotz (uklotzde)
Uwe Klotz (uklotzde) on 2017-06-30
Changed in mixxx:
status: Confirmed → In Progress
Changed in mixxx:
status: In Progress → Fix Committed
Uwe Klotz (uklotzde) 6 hours ago
Changed in mixxx:
milestone: none → 2.1.0
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers