History

rework closing

Sigrid Solveig Haflínudóttir committed 5 years ago

Commit 03ea1091 parent 489f4a72 files · +29 −24Browse files

Unified · Split

2 files
  1. main.c +11 −5
  2. rtmp.c +18 −19
main.c+11−5
@@ -19,7 +19,7 @@ usage(void) · 18 unmodified lines
1919 void
2020 threadmain(int argc, char **argv)
2121 {
22− Biobuf *a, *v;
22+ Biobuf *a, v;
2323 u64int ns;
2424 ulong sid;
2525 IVFrame f;
@@ -41,7 +41,7 @@ threadmain(int argc, char **argv) · 15 unmodified lines
4141
4242 if(argc != 1)
4343 usage();
44− if((v = Bfdopen(0, OREAD)) == nil || ivfopen(v, &ivf) != 0)
44+ if(Binit(&v, 0, OREAD) != 0 || ivfopen(&v, &ivf) != 0)
4545 sysfatal("%r");
4646 if(strcmp(ivf.type, "AVC1") != 0)
4747 sysfatal("not H.264");
@@ -58,14 +58,20 @@ threadmain(int argc, char **argv) · 10 unmodified lines
5858
5959 memset(&f, 0, sizeof(f));
6060 for(;;){
61− if(ivfread(v, &f) != 0)
61+ if(ivfread(&v, &f) != 0)
6262 sysfatal("%r");
6363 if(f.sz == 0)
6464 break;
6565 ns = ivfns(&ivf, f.ts)/1000000ULL;
66− if(rtmpdata(r, sid, ns, Tvideo, f.buf, f.sz) != 0)
67− sysfatal("%r");
66+ if(rtmpdata(r, sid, ns, Tvideo, f.buf, f.sz) != 0){
67+ fprint(2, "%r\n");
68+ break;
69+ }
6870 }
6971
72+ if(a != nil)
73+ Bterm(a);
74+ rtmpclose(r);
75+
7076 threadexitsall(nil);
7177 }
rtmp.c+18−19
@@ -404,23 +404,6 @@ err: · 403 unmodified lines
404404 return -1;
405405 }
406406
407−static void
408−rtmpfree(RTMP *r)
409−{
410− free(r->i.b);
411− free(r->o.b);
412− free(r->tcurl);
413− free(r->app);
414− free(r->inst);
415− free(r->path);
416− if(r->c != nil){
417− sendp(r->c, "done");
418− chanfree(r->c);
419− }
420− Bterm(r);
421− free(r);
422−}
423−
424407 static int
425408 pong(RTMP *r, s32int n)
426409 {
@@ -621,7 +604,7 @@ err: · 194 unmodified lines
621604 qunlock(r);
622605 }
623606
624− rtmpfree(r);
607+ chanclose(r->c);
625608
626609 threadexitsall(res == 0 ? nil : "error");
627610 }
@@ -994,6 +977,21 @@ msgfmt(Fmt *f) · 366 unmodified lines
994977 return 0;
995978 }
996979
980+static void
981+rtmpfree(RTMP *r)
982+{
983+ free(r->i.b);
984+ free(r->o.b);
985+ free(r->tcurl);
986+ free(r->app);
987+ free(r->inst);
988+ free(r->path);
989+ if(r->c != nil)
990+ chanfree(r->c);
991+ Bterm(r);
992+ free(r);
993+}
994+
997995 RTMP *
998996 rtmpdial(char *url)
999997 {
@@ -1098,5 +1096,6 @@ rtmpclose(RTMP *r) · 98 unmodified lines
10981096 if(r->fd >= 0)
10991097 close(r->fd);
11001098 if(r->c != nil)
1101− chanclose(r->c);
1099+ recvp(r->c);
1100+ rtmpfree(r);
11021101 }

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