Unified · Split
| @@ -22,6 +22,15 @@ usage(void) · 21 unmodified lines | ||
| 22 | 22 | threadexitsall("usage"); |
| 23 | 23 | } |
| 24 | 24 | |
| 25 | +static uvlong | |
| 26 | +ns2ms(uvlong z, uvlong ns) | |
| 27 | +{ | |
| 28 | + if(z != 0 && z != Zns₀) | |
| 29 | + ns = z - ns₀ + ns; | |
| 30 | + | |
| 31 | + return ns / 1000000ULL; | |
| 32 | +} | |
| 33 | + | |
| 25 | 34 | static void |
| 26 | 35 | audio(void *aux) |
| 27 | 36 | { |
| @@ -37,7 +46,7 @@ audio(void *aux) · 9 unmodified lines | ||
| 37 | 46 | goto err; |
| 38 | 47 | if(af.sz == 0) /* eof */ |
| 39 | 48 | break; |
| 40 | − ms = ((af.ns₀ != Zns₀ ? af.ns₀-ns₀ : 0) + af.ns)/1000000ULL; | |
| 49 | + ms = ns2ms(af.ns₀, af.ns); | |
| 41 | 50 | |
| 42 | 51 | if(rtmpdata(r, sid, ms, Taudio, af.buf, af.sz) != 0){ |
| 43 | 52 | err: |
| @@ -103,7 +112,7 @@ threadmain(int argc, char **argv) · 59 unmodified lines | ||
| 103 | 112 | sysfatal("%r"); |
| 104 | 113 | if(vf.sz == 0) |
| 105 | 114 | break; |
| 106 | − ms = ((ivf.ns₀ != Zns₀ ? ivf.ns₀-ns₀ : 0) + vf.ns)/1000000ULL; | |
| 115 | + ms = ns2ms(ivf.ns₀, vf.ns); | |
| 107 | 116 | if(rtmpdata(r, sid, ms, Tvideo, vf.buf, vf.sz) != 0){ |
| 108 | 117 | fprint(2, "%r\n"); |
| 109 | 118 | break; |