History

protect against audio overruns

Sigrid Solveig Haflínudóttir committed 5 years ago

Commit daf4e541 parent f68aad91 file · +10 −2Browse files

Unified · Split

main.c+10−2
@@ -13,6 +13,7 @@ int debug = 0; · 12 unmodified lines
1313 static RTMP *r;
1414 static ulong sid;
1515 static uvlong ns₀;
16+static uvlong vms;
1617
1718 static void
1819 usage(void)
@@ -32,14 +33,20 @@ audio(void *aux) · 13 unmodified lines
3233 memset(&af, 0, sizeof(af));
3334 for(;;){
3435 if(adtsread(a, &af) != 0)
35− sysfatal("%r");
36− if(af.sz == 0)
36+ goto err;
37+ if(af.sz == 0) /* eof */
3738 break;
3839 ms = (af.ns₀ - ns₀ + af.ns)/1000000ULL;
40+
3941 if(rtmpdata(r, sid, ms, Taudio, af.buf, af.sz) != 0){
42+err:
4043 fprint(2, "%r\n");
4144 break;
4245 }
46+
47+ /* protect against overruns */
48+ if(vms+200 < ms)
49+ sleep(100);
4350 }
4451
4552 /* FIXME properly close RTMP connection */
@@ -100,6 +107,7 @@ threadmain(int argc, char **argv) · 54 unmodified lines
100107 fprint(2, "%r\n");
101108 break;
102109 }
110+ vms = ms;
103111 }
104112
105113 /* FIXME properly close RTMP connection */

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t