diff options
author | Torsten Jager <t.jager@gmx.de> | 2011-08-22 11:49:01 +0200 |
---|---|---|
committer | Torsten Jager <t.jager@gmx.de> | 2011-08-22 11:49:01 +0200 |
commit | 078eade9b4a427497250ca567ebe1865ecd47a8f (patch) | |
tree | 00bb4c78c99c0aedbccc744fb8847af61a5ce34f /po | |
parent | e96bac07aae3a9677661fd581b7c7e4e98964831 (diff) | |
download | xine-lib-078eade9b4a427497250ca567ebe1865ecd47a8f.tar.gz xine-lib-078eade9b4a427497250ca567ebe1865ecd47a8f.tar.bz2 |
Audio crash fix
Audio decoder loop creates a sorted map of available audio channels on the
fly. If neither user nor dvdnav intervene, it will pass the first (= lowest
index) audio channel to decoders.
Now imagine a TV recording with 2 audio channels:
audio.0: eac3 5.1 (fra)
audio.1: eac3 stereo (qaa)
By chance, first audio frame to be demuxed is for channel #1.
Track map will be
[0]: eac3, channel 1
Audio loop opens ffmpeg audio decoder / stereo out. Fine.
Then, first frame for channel #0 comes in.
[0]: eac3, channel 0
[1]: eac3, channel 1
Both are same codec, so audio loop just switches to channel 0 without
further notice. Audio decoder then runs into a mem leak, or worse, crashes
audio out who still thinks we're only stereo.
Whenever we insert something at track map index 0, and its going to be
auto-selected later, reset current codec type. This forces a clean
decoder/output switch.
Diffstat (limited to 'po')
0 files changed, 0 insertions, 0 deletions