ADM_edAudioTrackFromVideo::getPCMPacket returns true without setting odts

Started by ajschult, November 29, 2012, 03:15:14 AM

Previous topic - Next topic

ajschult

It seems that ADM_edAudioTrackFromVideo::getPCMPacket should either return |false| or set |odts|.  However, if it returns from line 126 |true| will be returned and |odts| will not be set (it is only set at line 180).  The effect of this appears to be that AUDMAudioFilter_Bridge::fillIncomingBuffer will expect that |dts| was assigned a value, when it was not (line 150+).  It then proceeds to do semi-random things.

valgrind says

Conditional jump or move depends on uninitialised value(s)
   at 0x44063B: AUDMAudioFilter_Bridge::fillIncomingBuffer(AUD_Status*) (in /usr/bin/avidemux3_qt4)
   by 0x440826: AUDMAudioFilter_Bridge::fill(unsigned int, float*, AUD_Status*) (in /usr/bin/avidemux3_qt4)
   by 0x329B600D35: AUDMAudioFilter::fillIncomingBuffer(AUD_Status*) (in /usr/lib64/libADM_coreAudioFilterAPI6.so)
   by 0x442300: AUDMAudioFilterMixer::fill(unsigned int, float*, AUD_Status*) (in /usr/bin/avidemux3_qt4)
   by 0x43879F: GUIPlayback::initializeAudio() (in /usr/bin/avidemux3_qt4)
   by 0x4389B9: GUIPlayback::initialize() (in /usr/bin/avidemux3_qt4)