Ticket #11435: keyframe-buffer-0.26.patch

File keyframe-buffer-0.26.patch, 1.3 KB (added by jpoet, 11 years ago)

Flush payload buffer at start each new payload - 0.26 version

  • mythtv/libs/libmythtv/dtvrecorder.cpp

    diff --git a/mythtv/libs/libmythtv/dtvrecorder.cpp b/mythtv/libs/libmythtv/dtvrecorder.cpp
    index 39146e9..ae99f79 100644
    a b bool DTVRecorder::ProcessVideoTSPacket(const TSPacket &tspacket) 
    12971297
    12981298    if (tspacket.HasPayload() && tspacket.PayloadStart())
    12991299    {
     1300        if (_buffer_packets && _first_keyframe >= 0 && !_payload_buffer.empty())
     1301        {
     1302            // Flush the buffer
     1303            if (ringBuffer)
     1304                ringBuffer->Write(&_payload_buffer[0], _payload_buffer.size());
     1305            _payload_buffer.clear();
     1306        }
     1307
    13001308        // buffer packets until we know if this is a keyframe
    13011309        _buffer_packets = true;
    13021310    }
    bool DTVRecorder::ProcessAudioTSPacket(const TSPacket &tspacket) 
    13201328
    13211329    if (tspacket.HasPayload() && tspacket.PayloadStart())
    13221330    {
     1331        if (_buffer_packets && _first_keyframe >= 0 && !_payload_buffer.empty())
     1332        {
     1333            // Flush the buffer
     1334            if (ringBuffer)
     1335                ringBuffer->Write(&_payload_buffer[0], _payload_buffer.size());
     1336            _payload_buffer.clear();
     1337        }
     1338
    13231339        // buffer packets until we know if this is a keyframe
    13241340        _buffer_packets = true;
    13251341    }