[mythtv-commits] Ticket #11882: Attempt to play recording freezes frontend

MythTV noreply at mythtv.org
Sun Oct 27 20:25:56 UTC 2013


#11882: Attempt to play recording freezes frontend
----------------------------------------+----------------------------
 Reporter:  warpme@…                    |          Owner:  stichnot
     Type:  Bug Report - Hang/Deadlock  |         Status:  accepted
 Priority:  minor                       |      Milestone:  0.27.1
Component:  MythTV - Video Decoding     |        Version:  0.27-fixes
 Severity:  medium                      |     Resolution:
 Keywords:                              |  Ticket locked:  0
----------------------------------------+----------------------------

Comment (by blm-ubunet@…):

 @ comment #7
 This is a better match ??
 {{{
 diff --git a/mythtv/libs/libmythtv/avformatdecoder.cpp
 b/mythtv/libs/libmythtv/avformatdecoder.cpp
 index 3a42b40..e9af99b 100644
 --- a/mythtv/libs/libmythtv/avformatdecoder.cpp
 +++ b/mythtv/libs/libmythtv/avformatdecoder.cpp
 @@ -3152,7 +3152,8 @@ int AvFormatDecoder::H264PreProcessPkt(AVStream
 *stream, AVPacket *pkt)
 if (m_h264_parser->onFrameStart())
 ++num_frames;

 - if (!m_h264_parser->onKeyFrameStart())
 + if (!m_h264_parser->onKeyFrameStart() || !m_h264_parser->seen_SPS())
      continue;
 }
 else
 }}}
 SPS indicates keyframe but opposite is not spec requirement.

 Above always allows code path to "continue;" with condition
 seen_SPS()=false.
 h264_parser->seen_SPS() is a semaphore set (true) at the first & any SPS
 in stream.
 As in comment #7 .. the 1st keyframe without any SPS seen (False && True =
 False) would not lead to "continue;" but drop right thru'..

 But I think this & comment #7 is a confusing obfuscation c.f. my original
 patch file.

--
Ticket URL: <http://code.mythtv.org/trac/ticket/11882#comment:11>
MythTV <http://www.mythtv.org>
MythTV Media Center


More information about the mythtv-commits mailing list