Ticket #4621: bbchd.diff

File bbchd.diff, 3.0 KB (added by anonymous, 14 years ago)
  • mythtv/libs/libavformat/mpegts.c

    # compile with --enable-ffmpeg-pthreads --enable-pthreads
    
    old new  
    16081608                    pkt->pts = pes->pts;
    16091609                    pkt->dts = pes->dts;
    16101610                    pkt->pos = pes->startpos;
    1611                     /* reset pts values */
    1612                     pes->pts = AV_NOPTS_VALUE;
    1613                     pes->dts = AV_NOPTS_VALUE;
     1611                    if (pes->st->codec->codec_id != CODEC_ID_H264) {
     1612                        /* reset pts values */
     1613                        pes->pts = AV_NOPTS_VALUE;
     1614                        pes->dts = AV_NOPTS_VALUE;
     1615                    }
    16141616                    ts->stop_parse = 1;
    16151617                    return;
    16161618                }
  • mythtv/libs/libmythtv/avformatdecoder.cpp

    old new  
    30543054        pts = 0;
    30553055
    30563056        AVStream *curstream = ic->streams[pkt->stream_index];
    3057 
    3058         if (pkt->dts != (int64_t)AV_NOPTS_VALUE)
    3059             pts = (long long)(av_q2d(curstream->time_base) * pkt->dts * 1000);
     3057       
     3058        if (curstream->codec->codec_id == CODEC_ID_H264) {
     3059            if (pkt->pts != (int64_t)AV_NOPTS_VALUE)
     3060                pts = (long long)(av_q2d(curstream->time_base) * pkt->pts * 1000);
     3061        } else {
     3062            if (pkt->dts != (int64_t)AV_NOPTS_VALUE)
     3063                pts = (long long)(av_q2d(curstream->time_base) * pkt->dts * 1000);
     3064        }
    30603065
    30613066        if (ringBuffer->isDVD() &&
    30623067            curstream->codec->codec_type == CODEC_TYPE_VIDEO)
  • mythtv/libs/libmythtv/nuppeldecoder.cpp

     
    671671        return false;
    672672    }
    673673
     674    int thread_count = 2;
     675    if (CODEC_ID_H264 == mpa_vidctx->codec_id && mpa_vidctx->thread_count != thread_count)
     676    {
     677        avcodec_thread_init(mpa_vidctx, thread_count);
     678        mpa_vidctx->thread_count = thread_count;
     679        mpa_vidctx->skip_loop_filter = AVDISCARD_ALL;
     680    }
     681
    674682    return true;
    675683}
    676684
  • mythtv/libs/libmythtv/avformatdecoder.cpp

     
    14351435                    enc->bit_rate = 500000;
    14361436                // HACK -- end
    14371437
     1438                int thread_count = 2;
     1439                if (CODEC_ID_H264 == enc->codec_id && enc->thread_count != thread_count)
     1440                {
     1441                    avcodec_thread_init(enc, thread_count);
     1442                    enc->thread_count = thread_count;
     1443                    enc->skip_loop_filter = AVDISCARD_ALL;
     1444                }
     1445
    14381446                bitrate += enc->bit_rate;
    14391447                if (novideo)
    14401448                    break;