Ticket #13186: 010_jump_segfault.patch

File 010_jump_segfault.patch, 1.1 KB (added by Peter Bennett, 3 years ago)

Patch 010 - Fix segfault when jumping in file with multiple video streams.

  • mythtv/libs/libmythtv/avformatdecoder.cpp

    diff --git a/mythtv/libs/libmythtv/avformatdecoder.cpp b/mythtv/libs/libmythtv/avformatdecoder.cpp
    index e24be3e..0b7a8a7 100644
    a b void AvFormatDecoder::SeekReset(long long newKey, uint skipFrames, 
    808808        for (uint i = 0; i < ic->nb_streams; i++)
    809809        {
    810810            AVCodecContext *enc = gCodecMap->hasCodecContext(ic->streams[i]);
    811             if (enc)
     811            // note that contexts that have not been opened have
     812            // enc->internal = NULL and cause a segfault in
     813            // avcodec_flush_buffers
     814            if (enc && enc->internal)
    812815                avcodec_flush_buffers(enc);
    813816        }
    814817        if (private_dec)
    int AvFormatDecoder::ScanStreams(bool novideo) 
    20932096            case AVMEDIA_TYPE_AUDIO:
    20942097            {
    20952098                enc = gCodecMap->hasCodecContext(ic->streams[i]);
    2096                 if (enc)
     2099                if (enc && enc->internal)
    20972100                {
    20982101                    LOG(VB_GENERAL, LOG_WARNING, LOC +
    20992102                        QString("Warning, audio codec 0x%1 id(%2) "