Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- diff --git a/mythtv/libs/libmythtv/avformatdecoder.cpp b/mythtv/libs/libmythtv/avformatdecoder.cpp
- index 23dd0ca..6b9a863 100644
- --- a/mythtv/libs/libmythtv/avformatdecoder.cpp
- +++ b/mythtv/libs/libmythtv/avformatdecoder.cpp
- @@ -695,6 +695,8 @@ void AvFormatDecoder::SeekReset(long long newKey, uint skipFrames,
- DecoderBase::SeekReset(newKey, skipFrames, doflush, discardFrames);
- + QMutexLocker locker(avcodeclock);
- +
- if (doflush)
- {
- lastapts = 0;
- @@ -871,8 +873,8 @@ extern "C" void HandleStreamChange(void *data)
- QString("streams_changed 0x%1 -- stream count %2")
- .arg((uint64_t)data,0,16).arg(cnt));
- - QMutexLocker locker(avcodeclock);
- decoder->SeekReset(0, 0, true, true);
- + QMutexLocker locker(avcodeclock);
- decoder->ScanStreams(false);
- }
- @@ -887,8 +889,8 @@ extern "C" void HandleDVDStreamChange(void *data)
- QString("streams_changed 0x%1 -- stream count %2")
- .arg((uint64_t)data,0,16).arg(cnt));
- - QMutexLocker locker(avcodeclock);
- //decoder->SeekReset(0, 0, true, true);
- + QMutexLocker locker(avcodeclock);
- decoder->ScanStreams(true);
- }
- @@ -4661,6 +4663,7 @@ bool AvFormatDecoder::GetFrame(DecodeType decodetype)
- }
- int retval = 0;
- + avcodeclock->lock();
- if (!ic || ((retval = ReadPacket(ic, pkt, storevideoframes)) < 0))
- {
- if (retval == -EAGAIN)
- @@ -4670,8 +4673,10 @@ bool AvFormatDecoder::GetFrame(DecodeType decodetype)
- delete pkt;
- errno = -retval;
- LOG(VB_GENERAL, LOG_ERR, QString("decoding error") + ENO);
- + avcodeclock->unlock();
- return false;
- }
- + avcodeclock->unlock();
- if (waitingForChange && pkt->pos >= readAdjust)
- FileChanged();
- diff --git a/mythtv/libs/libmythtv/nuppeldecoder.cpp b/mythtv/libs/libmythtv/nuppeldecoder.cpp
- index 2f805a2..dd44c3e 100644
- --- a/mythtv/libs/libmythtv/nuppeldecoder.cpp
- +++ b/mythtv/libs/libmythtv/nuppeldecoder.cpp
- @@ -1385,6 +1385,8 @@ void NuppelDecoder::SeekReset(long long newKey, uint skipFrames,
- .arg((doFlush) ? "do" : "don't")
- .arg((discardFrames) ? "do" : "don't"));
- + QMutexLocker locker(avcodeclock);
- +
- DecoderBase::SeekReset(newKey, skipFrames, doFlush, discardFrames);
- if (mpa_vidcodec && doFlush)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement