Ticket #4764: mythtv_mm_restrict.1.patch

File mythtv_mm_restrict.1.patch, 4.4 KB (added by markspieth, 4 years ago)
  • mythmusic/mythmusic/aacdecoder.cpp

     
    1313#ifdef __STDC_LIMIT_MACROS 
    1414#define FAAD_MODIFIED 
    1515#endif 
     16#define FAAD_MODIFIED 
    1617 
    1718#include <iostream> 
    1819#include <string> 
     
    123124            ulong sz = output_bytes < bks ? output_bytes : bks; 
    124125 
    125126            int samples = (sz * 8) / (channels * 16); 
    126             if (output()->AddSamples(output_buf, samples, -1)) 
     127            bool ok = (output()->GetAudioBufferedTime() <= 500); 
     128            if (ok) ok = output()->AddSamples(output_buf, samples, -1); 
     129            if (ok) 
    127130              { 
    128131                output_bytes -= sz; 
    129132                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

     
    218218            ulong sz = output_bytes < bks ? output_bytes : bks; 
    219219 
    220220            int samples = (sz*8)/(chan*bitspersample); 
    221             if (output()->AddSamples(output_buf, samples, -1)) 
     221            bool ok = (output()->GetAudioBufferedTime() <= 500); 
     222            if (ok) ok = output()->AddSamples(output_buf, samples, -1); 
     223            if (ok) 
    222224           { 
    223225                output_bytes -= sz; 
    224226                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

     
    299299            ulong sz = output_bytes < bks ? output_bytes : bks; 
    300300 
    301301            int samples = (sz*8)/(channels*16); 
    302             if (output()->AddSamples(output_buf, samples, -1)) 
     302            bool ok = (output()->GetAudioBufferedTime() <= 500); 
     303            if (ok) ok = output()->AddSamples(output_buf, samples, -1); 
     304            if (ok) 
    303305            { 
    304306                output_bytes -= sz; 
    305307                memmove(output_buf, output_buf + sz, output_bytes); 
    306308                output_at = output_bytes; 
    307309            } else { 
    308310                unlock(); 
    309                 usleep(500); 
     311                usleep(5000); 
    310312                lock(); 
    311313                done = user_stop; 
    312314            }