Ticket #2552: 2552-v1.patch

File 2552-v1.patch, 4.9 KB (added by danielk, 19 years ago)

Better fix..

  • libs/libmythtv/nuppeldecoder.cpp

     
    547547    if (usingextradata && extradata.video_fourcc == MKTAG('D', 'I', 'V', 'X'))
    548548        setreadahead = true;
    549549
    550     ringBuffer->UpdateRawBitrate(0);
     550    bitrate = 0;
     551    ringBuffer->UpdateRawBitrate(GetRawBitrate());
    551552
    552553    videosizetotal = 0;
    553554    videoframesread = 0;
     
    10991100                {
    11001101                    videosizetotal /= videoframesread;
    11011102
    1102                     float bps = videosizetotal * 8.0 / 1024 * video_frame_rate;
    1103                     bps = bps * 3 / 2;
     1103                    float bps = (videosizetotal * 8.0f / 1024.0f *
     1104                                 video_frame_rate);
     1105                    bitrate = (uint) (bps * 1.5f);
    11041106
    1105                     ringBuffer->UpdateRawBitrate((uint) bps);
     1107                    ringBuffer->UpdateRawBitrate(GetRawBitrate());
    11061108                    setreadahead = true;
    11071109                }
    11081110            }
  • libs/libmythtv/NuppelVideoPlayer.cpp

     
    28512851        return;
    28522852    }
    28532853
     2854    // the bitrate is reset by ringBuffer->OpenFile()...
     2855    ringBuffer->UpdateRawBitrate(GetDecoder()->GetRawBitrate());
     2856
    28542857    ringBuffer->Unpause();
    28552858
    28562859    if (discontinuity || newtype)
     
    29562959        return;
    29572960    }
    29582961
     2962    // the bitrate is reset by ringBuffer->OpenFile()...
     2963    ringBuffer->UpdateRawBitrate(GetDecoder()->GetRawBitrate());
     2964
    29592965    ringBuffer->Unpause();
    29602966    ringBuffer->IgnoreLiveEOF(false);
    29612967
  • libs/libmythtv/avformatdecoder.cpp

     
    270270      ic(NULL),
    271271      frame_decoded(0),             decoded_video_frame(NULL),
    272272      directrendering(false),       drawband(false),
    273       bitrate(0),
    274273      gopset(false),                seen_gop(false),
    275274      seq_count(0),                 firstgoppos(0),
    276275      prevgoppos(0),                gotvideo(false),
  • libs/libmythtv/decoderbase.h

     
    8989
    9090    virtual QString GetEncodingType(void) const = 0;
    9191    virtual double  GetFPS(void) const { return fps; }
     92    /// Returns the estimated bitrate if the video were played at normal speed.
     93    uint GetRawBitrate(void) const { return bitrate; }
    9294
    9395    virtual void UpdateFramesPlayed(void);
    9496    long long GetFramesRead(void) const { return framesRead; };
     
    173175    int current_height;
    174176    float current_aspect;
    175177    double fps;
     178    uint bitrate;
    176179
    177180    long long framesPlayed;
    178181    long long framesRead;
  • libs/libmythtv/RingBuffer.cpp

     
    492492{
    493493    QMutexLocker locker(&bitratelock);
    494494    rawbitrate = raw_bitrate;
     495    VERBOSE(VB_IMPORTANT, "TMP DEBUG -- UpdateRawBitrate("<<raw_bitrate<<")");
    495496    CalcReadAheadThresh();
    496497}
    497498
  • libs/libmythtv/decoderbase.cpp

     
    2323
    2424      current_width(640), current_height(480),
    2525      current_aspect(1.33333), fps(29.97),
     26      bitrate(4000),
    2627
    2728      framesPlayed(0), framesRead(0), lastKey(0), keyframedist(-1),
    2829      indexOffset(0),
  • libs/libmythtv/avformatdecoder.h

     
    205205    bool directrendering;
    206206    bool drawband;
    207207
    208     int bitrate;
    209 
    210208    bool gopset;
    211209    /// A flag to indicate that we've seen a GOP frame.  Used in junction with seq_count.
    212210    bool seen_gop;
  • libs/libmythtv/ivtvdecoder.cpp

     
    4949{
    5050    lastResetTime.start();
    5151    fps = 29.97f;
     52    bitrate = 8000;
    5253    lastKey = 0;
    5354}
    5455
     
    277278
    278279    fps = (ntsc) ? 29.97f : 25.0f; // save for later length calculations
    279280
    280     ringBuffer->UpdateRawBitrate(8000);
     281    ringBuffer->UpdateRawBitrate(GetRawBitrate());
    281282
    282283    if (m_playbackinfo || livetv || watchingrecording)
    283284    {