Advertisement
jyavenard

#11705

Jul 25th, 2013
167
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.45 KB | None | 0 0
  1. diff --git a/mythtv/libs/libmythtv/avformatdecoder.cpp b/mythtv/libs/libmythtv/avformatdecoder.cpp
  2. index 23dd0ca..6b9a863 100644
  3. --- a/mythtv/libs/libmythtv/avformatdecoder.cpp
  4. +++ b/mythtv/libs/libmythtv/avformatdecoder.cpp
  5. @@ -695,6 +695,8 @@ void AvFormatDecoder::SeekReset(long long newKey, uint skipFrames,
  6.  
  7. DecoderBase::SeekReset(newKey, skipFrames, doflush, discardFrames);
  8.  
  9. + QMutexLocker locker(avcodeclock);
  10. +
  11. if (doflush)
  12. {
  13. lastapts = 0;
  14. @@ -871,8 +873,8 @@ extern "C" void HandleStreamChange(void *data)
  15. QString("streams_changed 0x%1 -- stream count %2")
  16. .arg((uint64_t)data,0,16).arg(cnt));
  17.  
  18. - QMutexLocker locker(avcodeclock);
  19. decoder->SeekReset(0, 0, true, true);
  20. + QMutexLocker locker(avcodeclock);
  21. decoder->ScanStreams(false);
  22. }
  23.  
  24. @@ -887,8 +889,8 @@ extern "C" void HandleDVDStreamChange(void *data)
  25. QString("streams_changed 0x%1 -- stream count %2")
  26. .arg((uint64_t)data,0,16).arg(cnt));
  27.  
  28. - QMutexLocker locker(avcodeclock);
  29. //decoder->SeekReset(0, 0, true, true);
  30. + QMutexLocker locker(avcodeclock);
  31. decoder->ScanStreams(true);
  32. }
  33.  
  34. @@ -4661,6 +4663,7 @@ bool AvFormatDecoder::GetFrame(DecodeType decodetype)
  35. }
  36.  
  37. int retval = 0;
  38. + avcodeclock->lock();
  39. if (!ic || ((retval = ReadPacket(ic, pkt, storevideoframes)) < 0))
  40. {
  41. if (retval == -EAGAIN)
  42. @@ -4670,8 +4673,10 @@ bool AvFormatDecoder::GetFrame(DecodeType decodetype)
  43. delete pkt;
  44. errno = -retval;
  45. LOG(VB_GENERAL, LOG_ERR, QString("decoding error") + ENO);
  46. + avcodeclock->unlock();
  47. return false;
  48. }
  49. + avcodeclock->unlock();
  50.  
  51. if (waitingForChange && pkt->pos >= readAdjust)
  52. FileChanged();
  53. diff --git a/mythtv/libs/libmythtv/nuppeldecoder.cpp b/mythtv/libs/libmythtv/nuppeldecoder.cpp
  54. index 2f805a2..dd44c3e 100644
  55. --- a/mythtv/libs/libmythtv/nuppeldecoder.cpp
  56. +++ b/mythtv/libs/libmythtv/nuppeldecoder.cpp
  57. @@ -1385,6 +1385,8 @@ void NuppelDecoder::SeekReset(long long newKey, uint skipFrames,
  58. .arg((doFlush) ? "do" : "don't")
  59. .arg((discardFrames) ? "do" : "don't"));
  60.  
  61. + QMutexLocker locker(avcodeclock);
  62. +
  63. DecoderBase::SeekReset(newKey, skipFrames, doFlush, discardFrames);
  64.  
  65. if (mpa_vidcodec && doFlush)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement