$ git clone http://tcclient.ion.nu/tc_client.git
commit e4762ddcf8f275dbd4c51ced5c89d6463abc8ae4
Author: Alicia <...>
Date:   Tue Jun 23 14:50:16 2015 +0200

    Flush stdout after printing unknown RTMP types, and return upon <1 reads in b_read.

diff --git a/ChangeLog b/ChangeLog
index fd7145a..60a8bc5 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,7 @@
 0.34:
 Fixed memory alignment in rtmp/amf code (for CPU architectures that are picky about it)
 Print version info when called with -v/--version (contributed by Jade)
+Flush stdout after printing unknown RTMP types, and return upon <1 reads in b_read.
 tc_client-gtk: fixed windows compatibility (w32_runcmd and strndup)
 tc_client-gtk and camviewer: added some compatibility macros for older libav versions.
 0.33:
diff --git a/client.c b/client.c
index f89ab8a..03176a2 100644
--- a/client.c
+++ b/client.c
@@ -49,6 +49,7 @@ void b_read(int sock, void* buf, size_t len)
   while(len>0)
   {
     size_t r=read(sock, buf, len);
+    if(r<1){return;}
     len-=r;
     buf+=r;
   }
@@ -667,7 +668,7 @@ int main(int argc, char** argv)
     if(!rtmpres){printf("Server disconnected\n"); break;}
     if(rtmpres==2){continue;} // Not disconnected, but we didn't get a complete chunk yet either
     if(rtmp.type==RTMP_VIDEO || rtmp.type==RTMP_AUDIO){stream_handledata(&rtmp); continue;}
-    if(rtmp.type!=RTMP_AMF0){printf("Got RTMP type 0x%x\n", rtmp.type); continue;}
+    if(rtmp.type!=RTMP_AMF0){printf("Got RTMP type 0x%x\n", rtmp.type); fflush(stdout); continue;}
     struct amf* amfin=amf_parse(rtmp.buf, rtmp.length);
     if(amfin->itemcount>0 && amfin->items[0].type==AMF_STRING)
     {