Ticket #5761: mm_buffer.1.patch

File mm_buffer.1.patch, 4.3 KB (added by Mark Spieth, 16 years ago)
  • mythmusic/mythmusic/aacdecoder.cpp

     
    136136            ulong sz = output_bytes < bks ? output_bytes : bks;
    137137
    138138            int samples = (sz * 8) / (channels * 16);
    139             if (output()->AddSamples(output_buf, samples, -1))
     139            bool ok = (output()->GetAudioBufferedTime() <= 500);
     140            if (ok) ok = output()->AddSamples(output_buf, samples, -1);
     141            if (ok)
    140142              {
    141143                output_bytes -= sz;
    142144                memmove(output_buf, output_buf + sz, output_bytes);
  • mythmusic/mythmusic/vorbisdecoder.cpp

     
    115115            ulong sz = output_bytes < bks ? output_bytes : bks;
    116116
    117117            int samples = (sz*8)/(chan*16);
    118             if (output()->AddSamples(output_buf, samples, -1))
     118            bool ok = (output()->GetAudioBufferedTime() <= 500);
     119            if (ok) ok = output()->AddSamples(output_buf, samples, -1);
     120            if (ok)
    119121            {
    120122                output_bytes -= sz;
    121123                memmove(output_buf, output_buf + sz, output_bytes);
  • mythmusic/mythmusic/avfdecoder.cpp

     
    9292            ulong sz = output_bytes < bks ? output_bytes : bks;
    9393
    9494            int samples = (sz*8)/(chan*16);
    95             if (output()->AddSamples(output_buf, samples, -1))
     95            bool ok = (output()->GetAudioBufferedTime() <= 500);
     96            if (ok) ok = output()->AddSamples(output_buf, samples, -1);
     97            if (ok)
    9698            {
    9799                output_bytes -= sz;
    98100                memmove(output_buf, output_buf + sz, output_bytes);
  • mythmusic/mythmusic/flacdecoder.cpp

     
    219219            ulong sz = output_bytes < bks ? output_bytes : bks;
    220220
    221221            int samples = (sz*8)/(chan*bitspersample);
    222             if (output()->AddSamples(output_buf, samples, -1))
     222            bool ok = (output()->GetAudioBufferedTime() <= 500);
     223            if (ok) ok = output()->AddSamples(output_buf, samples, -1);
     224            if (ok)
    223225           {
    224226                output_bytes -= sz;
    225227                memmove(output_buf, output_buf + sz, output_bytes);
  • mythmusic/mythmusic/cddecoder.cpp

     
    7070            ulong sz = output_bytes < bks ? output_bytes : bks;
    7171
    7272            int samples = (sz*8)/(chan*16);
    73             if (output()->AddSamples(output_buf, samples, -1))
     73            bool ok = (output()->GetAudioBufferedTime() <= 500);
     74            if (ok) ok = output()->AddSamples(output_buf, samples, -1);
     75            if (ok)
    7476            {
    7577                output_bytes -= sz;
    7678                memmove(output_buf, output_buf + sz, output_bytes);
  • mythmusic/mythmusic/maddecoder.cpp

     
    301301            ulong sz = output_bytes < bks ? output_bytes : bks;
    302302
    303303            int samples = (sz*8)/(channels*16);
    304             if (output()->AddSamples(output_buf, samples, -1))
     304            bool ok = (output()->GetAudioBufferedTime() <= 500);
     305            if (ok) ok = output()->AddSamples(output_buf, samples, -1);
     306            if (ok)
    305307            {
    306308                output_bytes -= sz;
    307309                memmove(output_buf, output_buf + sz, output_bytes);
    308310                output_at = output_bytes;
    309311            } else {
    310312                unlock();
    311                 usleep(500);
     313                usleep(5000);
    312314                lock();
    313315                done = user_stop;
    314316            }