Ticket #1481: firewire_buf_fix.diff

File firewire_buf_fix.diff, 2.3 KB (added by jwestfall@…, 20 years ago)
  • libs/libmythtv/firewirerecorder.cpp

     
    2222#define LOC QString("FireRec: ")
    2323#define LOC_ERR QString("FireRec, Error: ")
    2424
    25 const int FirewireRecorder::kBroadcastChannel    = 63;
    26 const int FirewireRecorder::kTimeoutInSeconds    = 15;
    27 const int FirewireRecorder::kConnectionP2P       = 0;
    28 const int FirewireRecorder::kConnectionBroadcast = 1;
     25const int  FirewireRecorder::kBroadcastChannel    = 63;
     26const int  FirewireRecorder::kTimeoutInSeconds    = 15;
     27const int  FirewireRecorder::kConnectionP2P       = 0;
     28const int  FirewireRecorder::kConnectionBroadcast = 1;
     29const uint FirewireRecorder::kMaxBufferedPackets  = 8000;
    2930
    3031// callback function for libiec61883
    3132int fw_tspacket_handler(unsigned char *tspacket, int /*len*/,
     
    157158         return false;
    158159     }
    159160
    160      // Set buffer size
     161     // Set buffered packets size
    161162     size_t buffer_size = gContext->GetNumSetting("HDRingbufferSize",
    162163                                                  50 * TSPacket::SIZE);
    163      iec61883_mpeg2_set_buffers(fwmpeg, buffer_size / 2);
     164     size_t buffered_packets = min(buffer_size / 4, kMaxBufferedPackets);
     165     iec61883_mpeg2_set_buffers(fwmpeg, buffered_packets);
    164166     VERBOSE(VB_IMPORTANT, LOC +
    165              QString("Buffer size %1 KB").arg(buffer_size));
     167             QString("Buffered packets %1 (%2 KB)").
     168             arg(buffered_packets).arg(buffered_packets * 4));
    166169
    167170     // Set speed if needed.
    168171     // Probably shouldn't even allow user to set,
  • libs/libmythtv/firewirerecorder.h

     
    7878    MPEGStreamData  *_mpeg_stream_data;
    7979    TSStats          _ts_stats; 
    8080
    81     static const int kBroadcastChannel;
    82     static const int kTimeoutInSeconds;
    83     static const int kConnectionP2P;
    84     static const int kConnectionBroadcast;
     81    static const int  kBroadcastChannel;
     82    static const int  kTimeoutInSeconds;
     83    static const int  kConnectionP2P;
     84    static const int  kConnectionBroadcast;
     85    static const uint kMaxBufferedPackets;
    8586};
    8687
    8788#endif