Projects
Essentials
rtmpdump
Sign Up
Log In
Username
Password
We truncated the diff of some files because they were too big. If you want to see the full diff for every file,
click here
.
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
Expand all
Collapse all
Changes of Revision 6
View file
rtmpdump.changes
Changed
@@ -1,4 +1,10 @@ ------------------------------------------------------------------- +Thu Jul 28 13:44:18 UTC 2011 - idoenmez@suse.de + +- Update to latest git as of 28.07.2011 + * Add RTMPE type 9 handshake signature + +------------------------------------------------------------------- Mon May 23 07:45:54 UTC 2011 - idoenmez@suse.de - Update to latest git as of 23.05.2011
View file
rtmpdump.spec
Changed
@@ -1,7 +1,7 @@ # norootforbuild Name: rtmpdump -Version: 2.3.99.git20110523 +Version: 2.3.99.git20110728 %define soname 0 Release: 1 Summary: RTMP Stream Dumper
View file
rtmpdump-fix_librtmp_makefile.patch
Deleted
@@ -1,18 +0,0 @@ ---- librtmp/Makefile.orig 2010-04-03 01:58:11.000000000 +0200 -+++ librtmp/Makefile 2010-04-03 01:58:30.000000000 +0200 -@@ -1,6 +1,7 @@ - VERSION=v2.2b - - prefix=/usr/local -+LIB=lib - - CC=$(CROSS_COMPILE)gcc - LD=$(CROSS_COMPILE)ld -@@ -41,5 +42,5 @@ - - install: librtmp.a librtmp.pc - -mkdir $(INCDIR); cp amf.h http.h log.h rtmp.h $(INCDIR) -- cp librtmp.a $(DESTDIR)$(prefix)/lib -- cp librtmp.pc $(DESTDIR)$(prefix)/lib/pkgconfig -+ cp librtmp.a $(DESTDIR)$(prefix)/$(LIB) -+ cp librtmp.pc $(DESTDIR)$(prefix)/$(LIB)/pkgconfig
View file
rtmpdump-2.3.99.git20110523.tar.bz2/ChangeLog -> rtmpdump-2.3.99.git20110728.tar.bz2/ChangeLog
Changed
@@ -1,9 +1,15 @@ RTMPDump Copyright 2008-2009 Andrej Stepanchuk; Distributed under the GPL v2 -Copyright 2009-2010 Howard Chu +Copyright 2009-2011 Howard Chu Copyright 2009 The Flvstreamer Team http://rtmpdump.mplayerhq.hu/ +20 July 2011 +- add NetStream.Authenticate.UsherToken for Justin.tv + +11 July 2011, v2.4 +- add RTMPE type 9 handshake support + 30 June 2010, v2.3 - fix RC4 cleanup for GnuTLS/gcrypt - declare RTMP_Write buf as const
View file
rtmpdump-2.3.99.git20110523.tar.bz2/Makefile -> rtmpdump-2.3.99.git20110728.tar.bz2/Makefile
Changed
@@ -1,4 +1,4 @@ -VERSION=v2.3 +VERSION=v2.4 prefix=/usr/local @@ -35,7 +35,8 @@ LIBS_posix= LIBS_darwin= LIBS_mingw=-lws2_32 -lwinmm -lgdi32 -LIBS=-Llibrtmp -lrtmp $(CRYPTO_LIB) $(LIBS_$(SYS)) $(XLIBS) +LIB_RTMP=-Llibrtmp -lrtmp +LIBS=$(LIB_RTMP) $(CRYPTO_LIB) $(LIBS_$(SYS)) $(XLIBS) THREADLIB_posix=-lpthread THREADLIB_darwin=-lpthread
View file
rtmpdump-2.3.99.git20110523.tar.bz2/README -> rtmpdump-2.3.99.git20110728.tar.bz2/README
Changed
@@ -1,7 +1,8 @@ -RTMP Dump v2.3 +RTMP Dump v2.4 (C) 2009 Andrej Stepanchuk -(C) 2009-2010 Howard Chu +(C) 2009-2011 Howard Chu (C) 2010 2a665470ced7adb7156fcef47f8199a6371c117b8a79e399a2771e0b36384090 +(C) 2011 33ae1ce77301f4b4494faaa5f609f3c48b9dcf82 License: GPLv2 librtmp license: LGPLv2.1 http://rtmpdump.mplayerhq.hu/
View file
rtmpdump-2.3.99.git20110523.tar.bz2/librtmp/Makefile -> rtmpdump-2.3.99.git20110728.tar.bz2/librtmp/Makefile
Changed
@@ -1,4 +1,4 @@ -VERSION=v2.3 +VERSION=v2.4 prefix=/usr/local @@ -54,9 +54,14 @@ SO_LDFLAGS_posix=-shared -Wl,-soname,$@ SO_LDFLAGS_darwin=-dynamiclib -flat_namespace -undefined suppress -fno-common \ -headerpad_max_install_names -SO_LDFLAGS_mingw= +SO_LDFLAGS_mingw=-shared -Wl,--out-implib,librtmp.dll.a SO_LDFLAGS=$(SO_LDFLAGS_$(SYS)) +INSTALL_IMPLIB_posix= +INSTALL_IMPLIB_darwin= +INSTALL_IMPLIB_mingw=cp librtmp.dll.a $(LIBDIR) +INSTALL_IMPLIB=$(INSTALL_IMPLIB_$(SYS)) + SHARED=yes SODEF_yes=-fPIC SOLIB_yes=librtmp.$(SO_EXT) @@ -76,7 +81,7 @@ all: librtmp.a $(SO_LIB) clean: - rm -f *.o *.a *.$(SOX) *.$(SO_EXT) + rm -f *.o *.a *.$(SOX) *.$(SO_EXT) librtmp.pc librtmp.a: $(OBJS) $(AR) rs $@ $? @@ -100,7 +105,7 @@ install: install_base $(SO_INST) install_base: librtmp.a librtmp.pc - -mkdir -p $(INCDIR) $(LIBDIR)/pkgconfig $(MANDIR)/man3 + -mkdir -p $(INCDIR) $(LIBDIR)/pkgconfig $(MANDIR)/man3 $(SODIR) cp amf.h http.h log.h rtmp.h $(INCDIR) cp librtmp.a $(LIBDIR) cp librtmp.pc $(LIBDIR)/pkgconfig @@ -108,5 +113,6 @@ install_so: librtmp.$(SO_EXT) cp librtmp.$(SO_EXT) $(SODIR) + $(INSTALL_IMPLIB) cd $(SODIR); ln -sf librtmp.$(SO_EXT) librtmp.$(SOX)
View file
rtmpdump-2.3.99.git20110523.tar.bz2/librtmp/dh.h -> rtmpdump-2.3.99.git20110728.tar.bz2/librtmp/dh.h
Changed
@@ -53,7 +53,7 @@ } MDH; #define MDH_new() calloc(1,sizeof(MDH)) -#define MDH_free(vp) {MDH *dh = vp; dhm_free(&dh->ctx); MP_free(dh->p); MP_free(dh->g); MP_free(dh->pub_key); MP_free(dh->priv_key); free(dh);} +#define MDH_free(vp) {MDH *_dh = vp; dhm_free(&_dh->ctx); MP_free(_dh->p); MP_free(_dh->g); MP_free(_dh->pub_key); MP_free(_dh->priv_key); free(_dh);} static int MDH_generate_key(MDH *dh) {
View file
rtmpdump-2.3.99.git20110523.tar.bz2/librtmp/handshake.h -> rtmpdump-2.3.99.git20110728.tar.bz2/librtmp/handshake.h
Changed
@@ -358,6 +358,337 @@ out[7] = v1; } +/* RTMPE type 9 uses Blowfish on the regular signature + * http://en.wikipedia.org/wiki/Blowfish_(cipher) + */ +#define BF_ROUNDS 16 +typedef struct bf_key { + uint32_t s[4][256]; + uint32_t p[BF_ROUNDS+2]; +} bf_key; + +static const uint32_t bf_sinit[][256] = { + + /* S-Box 0 */ + { 0xd1310ba6, 0x98dfb5ac, 0x2ffd72db, 0xd01adfb7, 0xb8e1afed, 0x6a267e96, + 0xba7c9045, 0xf12c7f99, 0x24a19947, 0xb3916cf7, 0x0801f2e2, 0x858efc16, + 0x636920d8, 0x71574e69, 0xa458fea3, 0xf4933d7e, 0x0d95748f, 0x728eb658, + 0x718bcd58, 0x82154aee, 0x7b54a41d, 0xc25a59b5, 0x9c30d539, 0x2af26013, + 0xc5d1b023, 0x286085f0, 0xca417918, 0xb8db38ef, 0x8e79dcb0, 0x603a180e, + 0x6c9e0e8b, 0xb01e8a3e, 0xd71577c1, 0xbd314b27, 0x78af2fda, 0x55605c60, + 0xe65525f3, 0xaa55ab94, 0x57489862, 0x63e81440, 0x55ca396a, 0x2aab10b6, + 0xb4cc5c34, 0x1141e8ce, 0xa15486af, 0x7c72e993, 0xb3ee1411, 0x636fbc2a, + 0x2ba9c55d, 0x741831f6, 0xce5c3e16, 0x9b87931e, 0xafd6ba33, 0x6c24cf5c, + 0x7a325381, 0x28958677, 0x3b8f4898, 0x6b4bb9af, 0xc4bfe81b, 0x66282193, + 0x61d809cc, 0xfb21a991, 0x487cac60, 0x5dec8032, 0xef845d5d, 0xe98575b1, + 0xdc262302, 0xeb651b88, 0x23893e81, 0xd396acc5, 0x0f6d6ff3, 0x83f44239, + 0x2e0b4482, 0xa4842004, 0x69c8f04a, 0x9e1f9b5e, 0x21c66842, 0xf6e96c9a, + 0x670c9c61, 0xabd388f0, 0x6a51a0d2, 0xd8542f68, 0x960fa728, 0xab5133a3, + 0x6eef0b6c, 0x137a3be4, 0xba3bf050, 0x7efb2a98, 0xa1f1651d, 0x39af0176, + 0x66ca593e, 0x82430e88, 0x8cee8619, 0x456f9fb4, 0x7d84a5c3, 0x3b8b5ebe, + 0xe06f75d8, 0x85c12073, 0x401a449f, 0x56c16aa6, 0x4ed3aa62, 0x363f7706, + 0x1bfedf72, 0x429b023d, 0x37d0d724, 0xd00a1248, 0xdb0fead3, 0x49f1c09b, + 0x075372c9, 0x80991b7b, 0x25d479d8, 0xf6e8def7, 0xe3fe501a, 0xb6794c3b, + 0x976ce0bd, 0x04c006ba, 0xc1a94fb6, 0x409f60c4, 0x5e5c9ec2, 0x196a2463, + 0x68fb6faf, 0x3e6c53b5, 0x1339b2eb, 0x3b52ec6f, 0x6dfc511f, 0x9b30952c, + 0xcc814544, 0xaf5ebd09, 0xbee3d004, 0xde334afd, 0x660f2807, 0x192e4bb3, + 0xc0cba857, 0x45c8740f, 0xd20b5f39, 0xb9d3fbdb, 0x5579c0bd, 0x1a60320a, + 0xd6a100c6, 0x402c7279, 0x679f25fe, 0xfb1fa3cc, 0x8ea5e9f8, 0xdb3222f8, + 0x3c7516df, 0xfd616b15, 0x2f501ec8, 0xad0552ab, 0x323db5fa, 0xfd238760, + 0x53317b48, 0x3e00df82, 0x9e5c57bb, 0xca6f8ca0, 0x1a87562e, 0xdf1769db, + 0xd542a8f6, 0x287effc3, 0xac6732c6, 0x8c4f5573, 0x695b27b0, 0xbbca58c8, + 0xe1ffa35d, 0xb8f011a0, 0x10fa3d98, 0xfd2183b8, 0x4afcb56c, 0x2dd1d35b, + 0x9a53e479, 0xb6f84565, 0xd28e49bc, 0x4bfb9790, 0xe1ddf2da, 0xa4cb7e33, + 0x62fb1341, 0xcee4c6e8, 0xef20cada, 0x36774c01, 0xd07e9efe, 0x2bf11fb4, + 0x95dbda4d, 0xae909198, 0xeaad8e71, 0x6b93d5a0, 0xd08ed1d0, 0xafc725e0, + 0x8e3c5b2f, 0x8e7594b7, 0x8ff6e2fb, 0xf2122b64, 0x8888b812, 0x900df01c, + 0x4fad5ea0, 0x688fc31c, 0xd1cff191, 0xb3a8c1ad, 0x2f2f2218, 0xbe0e1777, + 0xea752dfe, 0x8b021fa1, 0xe5a0cc0f, 0xb56f74e8, 0x18acf3d6, 0xce89e299, + 0xb4a84fe0, 0xfd13e0b7, 0x7cc43b81, 0xd2ada8d9, 0x165fa266, 0x80957705, + 0x93cc7314, 0x211a1477, 0xe6ad2065, 0x77b5fa86, 0xc75442f5, 0xfb9d35cf, + 0xebcdaf0c, 0x7b3e89a0, 0xd6411bd3, 0xae1e7e49, 0x00250e2d, 0x2071b35e, + 0x226800bb, 0x57b8e0af, 0x2464369b, 0xf009b91e, 0x5563911d, 0x59dfa6aa, + 0x78c14389, 0xd95a537f, 0x207d5ba2, 0x02e5b9c5, 0x83260376, 0x6295cfa9, + 0x11c81968, 0x4e734a41, 0xb3472dca, 0x7b14a94a, 0x1b510052, 0x9a532915, + 0xd60f573f, 0xbc9bc6e4, 0x2b60a476, 0x81e67400, 0x08ba6fb5, 0x571be91f, + 0xf296ec6b, 0x2a0dd915, 0xb6636521, 0xe7b9f9b6, 0xff34052e, 0xc5855664, + 0x53b02d5d, 0xa99f8fa1, 0x08ba4799, 0x6e85076a, }, + + /* S-Box 1 */ + { 0x4b7a70e9, 0xb5b32944, 0xdb75092e, 0xc4192623, 0xad6ea6b0, 0x49a7df7d, + 0x9cee60b8, 0x8fedb266, 0xecaa8c71, 0x699a17ff, 0x5664526c, 0xc2b19ee1, + 0x193602a5, 0x75094c29, 0xa0591340, 0xe4183a3e, 0x3f54989a, 0x5b429d65, + 0x6b8fe4d6, 0x99f73fd6, 0xa1d29c07, 0xefe830f5, 0x4d2d38e6, 0xf0255dc1, + 0x4cdd2086, 0x8470eb26, 0x6382e9c6, 0x021ecc5e, 0x09686b3f, 0x3ebaefc9, + 0x3c971814, 0x6b6a70a1, 0x687f3584, 0x52a0e286, 0xb79c5305, 0xaa500737, + 0x3e07841c, 0x7fdeae5c, 0x8e7d44ec, 0x5716f2b8, 0xb03ada37, 0xf0500c0d, + 0xf01c1f04, 0x0200b3ff, 0xae0cf51a, 0x3cb574b2, 0x25837a58, 0xdc0921bd, + 0xd19113f9, 0x7ca92ff6, 0x94324773, 0x22f54701, 0x3ae5e581, 0x37c2dadc, + 0xc8b57634, 0x9af3dda7, 0xa9446146, 0x0fd0030e, 0xecc8c73e, 0xa4751e41, + 0xe238cd99, 0x3bea0e2f, 0x3280bba1, 0x183eb331, 0x4e548b38, 0x4f6db908, + 0x6f420d03, 0xf60a04bf, 0x2cb81290, 0x24977c79, 0x5679b072, 0xbcaf89af, + 0xde9a771f, 0xd9930810, 0xb38bae12, 0xdccf3f2e, 0x5512721f, 0x2e6b7124, + 0x501adde6, 0x9f84cd87, 0x7a584718, 0x7408da17, 0xbc9f9abc, 0xe94b7d8c, + 0xec7aec3a, 0xdb851dfa, 0x63094366, 0xc464c3d2, 0xef1c1847, 0x3215d908, + 0xdd433b37, 0x24c2ba16, 0x12a14d43, 0x2a65c451, 0x50940002, 0x133ae4dd, + 0x71dff89e, 0x10314e55, 0x81ac77d6, 0x5f11199b, 0x043556f1, 0xd7a3c76b, + 0x3c11183b, 0x5924a509, 0xf28fe6ed, 0x97f1fbfa, 0x9ebabf2c, 0x1e153c6e, + 0x86e34570, 0xeae96fb1, 0x860e5e0a, 0x5a3e2ab3, 0x771fe71c, 0x4e3d06fa, + 0x2965dcb9, 0x99e71d0f, 0x803e89d6, 0x5266c825, 0x2e4cc978, 0x9c10b36a, + 0xc6150eba, 0x94e2ea78, 0xa5fc3c53, 0x1e0a2df4, 0xf2f74ea7, 0x361d2b3d, + 0x1939260f, 0x19c27960, 0x5223a708, 0xf71312b6, 0xebadfe6e, 0xeac31f66, + 0xe3bc4595, 0xa67bc883, 0xb17f37d1, 0x018cff28, 0xc332ddef, 0xbe6c5aa5, + 0x65582185, 0x68ab9802, 0xeecea50f, 0xdb2f953b, 0x2aef7dad, 0x5b6e2f84, + 0x1521b628, 0x29076170, 0xecdd4775, 0x619f1510, 0x13cca830, 0xeb61bd96, + 0x0334fe1e, 0xaa0363cf, 0xb5735c90, 0x4c70a239, 0xd59e9e0b, 0xcbaade14, + 0xeecc86bc, 0x60622ca7, 0x9cab5cab, 0xb2f3846e, 0x648b1eaf, 0x19bdf0ca, + 0xa02369b9, 0x655abb50, 0x40685a32, 0x3c2ab4b3, 0x319ee9d5, 0xc021b8f7, + 0x9b540b19, 0x875fa099, 0x95f7997e, 0x623d7da8, 0xf837889a, 0x97e32d77, + 0x11ed935f, 0x16681281, 0x0e358829, 0xc7e61fd6, 0x96dedfa1, 0x7858ba99, + 0x57f584a5, 0x1b227263, 0x9b83c3ff, 0x1ac24696, 0xcdb30aeb, 0x532e3054, + 0x8fd948e4, 0x6dbc3128, 0x58ebf2ef, 0x34c6ffea, 0xfe28ed61, 0xee7c3c73, + 0x5d4a14d9, 0xe864b7e3, 0x42105d14, 0x203e13e0, 0x45eee2b6, 0xa3aaabea, + 0xdb6c4f15, 0xfacb4fd0, 0xc742f442, 0xef6abbb5, 0x654f3b1d, 0x41cd2105, + 0xd81e799e, 0x86854dc7, 0xe44b476a, 0x3d816250, 0xcf62a1f2, 0x5b8d2646, + 0xfc8883a0, 0xc1c7b6a3, 0x7f1524c3, 0x69cb7492, 0x47848a0b, 0x5692b285, + 0x095bbf00, 0xad19489d, 0x1462b174, 0x23820e00, 0x58428d2a, 0x0c55f5ea, + 0x1dadf43e, 0x233f7061, 0x3372f092, 0x8d937e41, 0xd65fecf1, 0x6c223bdb, + 0x7cde3759, 0xcbee7460, 0x4085f2a7, 0xce77326e, 0xa6078084, 0x19f8509e, + 0xe8efd855, 0x61d99735, 0xa969a7aa, 0xc50c06c2, 0x5a04abfc, 0x800bcadc, + 0x9e447a2e, 0xc3453484, 0xfdd56705, 0x0e1e9ec9, 0xdb73dbd3, 0x105588cd, + 0x675fda79, 0xe3674340, 0xc5c43465, 0x713e38d8, 0x3d28f89e, 0xf16dff20, + 0x153e21e7, 0x8fb03d4a, 0xe6e39f2b, 0xdb83adf7, }, + + /* S-Box 2 */ + { 0xe93d5a68, 0x948140f7, 0xf64c261c, 0x94692934, 0x411520f7, 0x7602d4f7, + 0xbcf46b2e, 0xd4a20068, 0xd4082471, 0x3320f46a, 0x43b7d4b7, 0x500061af, + 0x1e39f62e, 0x97244546, 0x14214f74, 0xbf8b8840, 0x4d95fc1d, 0x96b591af, + 0x70f4ddd3, 0x66a02f45, 0xbfbc09ec, 0x03bd9785, 0x7fac6dd0, 0x31cb8504, + 0x96eb27b3, 0x55fd3941, 0xda2547e6, 0xabca0a9a, 0x28507825, 0x530429f4, + 0x0a2c86da, 0xe9b66dfb, 0x68dc1462, 0xd7486900, 0x680ec0a4, 0x27a18dee, + 0x4f3ffea2, 0xe887ad8c, 0xb58ce006, 0x7af4d6b6, 0xaace1e7c, 0xd3375fec, + 0xce78a399, 0x406b2a42, 0x20fe9e35, 0xd9f385b9, 0xee39d7ab, 0x3b124e8b, + 0x1dc9faf7, 0x4b6d1856, 0x26a36631, 0xeae397b2, 0x3a6efa74, 0xdd5b4332, + 0x6841e7f7, 0xca7820fb, 0xfb0af54e, 0xd8feb397, 0x454056ac, 0xba489527, + 0x55533a3a, 0x20838d87, 0xfe6ba9b7, 0xd096954b, 0x55a867bc, 0xa1159a58, + 0xcca92963, 0x99e1db33, 0xa62a4a56, 0x3f3125f9, 0x5ef47e1c, 0x9029317c, + 0xfdf8e802, 0x04272f70, 0x80bb155c, 0x05282ce3, 0x95c11548, 0xe4c66d22, + 0x48c1133f, 0xc70f86dc, 0x07f9c9ee, 0x41041f0f, 0x404779a4, 0x5d886e17, + 0x325f51eb, 0xd59bc0d1, 0xf2bcc18f, 0x41113564, 0x257b7834, 0x602a9c60, + 0xdff8e8a3, 0x1f636c1b, 0x0e12b4c2, 0x02e1329e, 0xaf664fd1, 0xcad18115, + 0x6b2395e0, 0x333e92e1, 0x3b240b62, 0xeebeb922, 0x85b2a20e, 0xe6ba0d99, + 0xde720c8c, 0x2da2f728, 0xd0127845, 0x95b794fd, 0x647d0862, 0xe7ccf5f0, + 0x5449a36f, 0x877d48fa, 0xc39dfd27, 0xf33e8d1e, 0x0a476341, 0x992eff74, + 0x3a6f6eab, 0xf4f8fd37, 0xa812dc60, 0xa1ebddf8, 0x991be14c, 0xdb6e6b0d, + 0xc67b5510, 0x6d672c37, 0x2765d43b, 0xdcd0e804, 0xf1290dc7, 0xcc00ffa3, + 0xb5390f92, 0x690fed0b, 0x667b9ffb, 0xcedb7d9c, 0xa091cf0b, 0xd9155ea3, + 0xbb132f88, 0x515bad24, 0x7b9479bf, 0x763bd6eb, 0x37392eb3, 0xcc115979, + 0x8026e297, 0xf42e312d, 0x6842ada7, 0xc66a2b3b, 0x12754ccc, 0x782ef11c, + 0x6a124237, 0xb79251e7, 0x06a1bbe6, 0x4bfb6350, 0x1a6b1018, 0x11caedfa, + 0x3d25bdd8, 0xe2e1c3c9, 0x44421659, 0x0a121386, 0xd90cec6e, 0xd5abea2a, + 0x64af674e, 0xda86a85f, 0xbebfe988, 0x64e4c3fe, 0x9dbc8057, 0xf0f7c086, + 0x60787bf8, 0x6003604d, 0xd1fd8346, 0xf6381fb0, 0x7745ae04, 0xd736fccc, + 0x83426b33, 0xf01eab71, 0xb0804187, 0x3c005e5f, 0x77a057be, 0xbde8ae24, + 0x55464299, 0xbf582e61, 0x4e58f48f, 0xf2ddfda2, 0xf474ef38, 0x8789bdc2, + 0x5366f9c3, 0xc8b38e74, 0xb475f255, 0x46fcd9b9, 0x7aeb2661, 0x8b1ddf84, + 0x846a0e79, 0x915f95e2, 0x466e598e, 0x20b45770, 0x8cd55591, 0xc902de4c, + 0xb90bace1, 0xbb8205d0, 0x11a86248, 0x7574a99e, 0xb77f19b6, 0xe0a9dc09, + 0x662d09a1, 0xc4324633, 0xe85a1f02, 0x09f0be8c, 0x4a99a025, 0x1d6efe10, + 0x1ab93d1d, 0x0ba5a4df, 0xa186f20f, 0x2868f169, 0xdcb7da83, 0x573906fe, + 0xa1e2ce9b, 0x4fcd7f52, 0x50115e01, 0xa70683fa, 0xa002b5c4, 0x0de6d027, + 0x9af88c27, 0x773f8641, 0xc3604c06, 0x61a806b5, 0xf0177a28, 0xc0f586e0, + 0x006058aa, 0x30dc7d62, 0x11e69ed7, 0x2338ea63, 0x53c2dd94, 0xc2c21634, + 0xbbcbee56, 0x90bcb6de, 0xebfc7da1, 0xce591d76, 0x6f05e409, 0x4b7c0188, + 0x39720a3d, 0x7c927c24, 0x86e3725f, 0x724d9db9, 0x1ac15bb4, 0xd39eb8fc, + 0xed545578, 0x08fca5b5, 0xd83d7cd3, 0x4dad0fc4, 0x1e50ef5e, 0xb161e6f8, + 0xa28514d9, 0x6c51133c, 0x6fd5c7e7, 0x56e14ec4, 0x362abfce, 0xddc6c837, + 0xd79a3234, 0x92638212, 0x670efa8e, 0x406000e0, }, + + /* S-Box 3 */ + { 0x3a39ce37, 0xd3faf5cf, 0xabc27737, 0x5ac52d1b, 0x5cb0679e, 0x4fa33742, + 0xd3822740, 0x99bc9bbe, 0xd5118e9d, 0xbf0f7315, 0xd62d1c7e, 0xc700c47b, + 0xb78c1b6b, 0x21a19045, 0xb26eb1be, 0x6a366eb4, 0x5748ab2f, 0xbc946e79, + 0xc6a376d2, 0x6549c2c8, 0x530ff8ee, 0x468dde7d, 0xd5730a1d, 0x4cd04dc6, + 0x2939bbdb, 0xa9ba4650, 0xac9526e8, 0xbe5ee304, 0xa1fad5f0, 0x6a2d519a, + 0x63ef8ce2, 0x9a86ee22, 0xc089c2b8, 0x43242ef6, 0xa51e03aa, 0x9cf2d0a4, + 0x83c061ba, 0x9be96a4d, 0x8fe51550, 0xba645bd6, 0x2826a2f9, 0xa73a3ae1, + 0x4ba99586, 0xef5562e9, 0xc72fefd3, 0xf752f7da, 0x3f046f69, 0x77fa0a59, + 0x80e4a915, 0x87b08601, 0x9b09e6ad, 0x3b3ee593, 0xe990fd5a, 0x9e34d797, + 0x2cf0b7d9, 0x022b8b51, 0x96d5ac3a, 0x017da67d, 0xd1cf3ed6, 0x7c7d2d28, + 0x1f9f25cf, 0xadf2b89b, 0x5ad6b472, 0x5a88f54c, 0xe029ac71, 0xe019a5e6, + 0x47b0acfd, 0xed93fa9b, 0xe8d3c48d, 0x283b57cc, 0xf8d56629, 0x79132e28, + 0x785f0191, 0xed756055, 0xf7960e44, 0xe3d35e8c, 0x15056dd4, 0x88f46dba, + 0x03a16125, 0x0564f0bd, 0xc3eb9e15, 0x3c9057a2, 0x97271aec, 0xa93a072a, + 0x1b3f6d9b, 0x1e6321f5, 0xf59c66fb, 0x26dcf319, 0x7533d928, 0xb155fdf5, + 0x03563482, 0x8aba3cbb, 0x28517711, 0xc20ad9f8, 0xabcc5167, 0xccad925f, + 0x4de81751, 0x3830dc8e, 0x379d5862, 0x9320f991, 0xea7a90c2, 0xfb3e7bce, + 0x5121ce64, 0x774fbe32, 0xa8b6e37e, 0xc3293d46, 0x48de5369, 0x6413e680, + 0xa2ae0810, 0xdd6db224, 0x69852dfd, 0x09072166, 0xb39a460a, 0x6445c0dd, + 0x586cdecf, 0x1c20c8ae, 0x5bbef7dd, 0x1b588d40, 0xccd2017f, 0x6bb4e3bb, + 0xdda26a7e, 0x3a59ff45, 0x3e350a44, 0xbcb4cdd5, 0x72eacea8, 0xfa6484bb, + 0x8d6612ae, 0xbf3c6f47, 0xd29be463, 0x542f5d9e, 0xaec2771b, 0xf64e6370, + 0x740e0d8d, 0xe75b1357, 0xf8721671, 0xaf537d5d, 0x4040cb08, 0x4eb4e2cc, + 0x34d2466a, 0x0115af84, 0xe1b00428, 0x95983a1d, 0x06b89fb4, 0xce6ea048, + 0x6f3f3b82, 0x3520ab82, 0x011a1d4b, 0x277227f8, 0x611560b1, 0xe7933fdc, + 0xbb3a792b, 0x344525bd, 0xa08839e1, 0x51ce794b, 0x2f32c9b7, 0xa01fbac9, + 0xe01cc87e, 0xbcc7d1f6, 0xcf0111c3, 0xa1e8aac7, 0x1a908749, 0xd44fbd9a, + 0xd0dadecb, 0xd50ada38, 0x0339c32a, 0xc6913667, 0x8df9317c, 0xe0b12b4f, + 0xf79e59b7, 0x43f5bb3a, 0xf2d519ff, 0x27d9459c, 0xbf97222c, 0x15e6fc2a, + 0x0f91fc71, 0x9b941525, 0xfae59361, 0xceb69ceb, 0xc2a86459, 0x12baa8d1, + 0xb6c1075e, 0xe3056a0c, 0x10d25065, 0xcb03a442, 0xe0ec6e0e, 0x1698db3b, + 0x4c98a0be, 0x3278e964, 0x9f1f9532, 0xe0d392df, 0xd3a0342b, 0x8971f21e, + 0x1b0a7441, 0x4ba3348c, 0xc5be7120, 0xc37632d8, 0xdf359f8d, 0x9b992f2e, + 0xe60b6f47, 0x0fe3f11d, 0xe54cda54, 0x1edad891, 0xce6279cf, 0xcd3e7e6f, + 0x1618b166, 0xfd2c1d05, 0x848fd2c5, 0xf6fb2299, 0xf523f357, 0xa6327623, + 0x93a83531, 0x56cccd02, 0xacf08162, 0x5a75ebb5, 0x6e163697, 0x88d273cc, + 0xde966292, 0x81b949d0, 0x4c50901b, 0x71c65614, 0xe6c6c7bd, 0x327a140a, + 0x45e1d006, 0xc3f27b9a, 0xc9aa53fd, 0x62a80f00, 0xbb25bfe2, 0x35bdd2f6, + 0x71126905, 0xb2040222, 0xb6cbcf7c, 0xcd769c2b, 0x53113ec0, 0x1640e3d3, + 0x38abbd60, 0x2547adf0, 0xba38209c, 0xf746ce76, 0x77afa1c5, 0x20756060, + 0x85cbfe4e, 0x8ae88dd8, 0x7aaaf9b0, 0x4cf9aa7e, 0x1948c25c, 0x02fb8a8c, + 0x01c36ae4, 0xd6ebe1f9, 0x90d4f869, 0xa65cdea0, 0x3f09252d, 0xc208e69f, + 0xb74e6132, 0xce77e25b, 0x578fdfe3, 0x3ac372e6, }, +}; + +static const uint32_t bf_pinit[] = { + /* P-Box */ + 0x243f6a88, 0x85a308d3, 0x13198a2e, 0x03707344, 0xa4093822, 0x299f31d0, + 0x082efa98, 0xec4e6c89, 0x452821e6, 0x38d01377, 0xbe5466cf, 0x34e90c6c,
View file
rtmpdump-2.3.99.git20110523.tar.bz2/librtmp/librtmp.3 -> rtmpdump-2.3.99.git20110728.tar.bz2/librtmp/librtmp.3
Changed
@@ -1,5 +1,5 @@ -.TH LIBRTMP 3 "2010-07-03" "RTMPDump v2.3" -.\" Copyright 2010 Howard Chu. +.TH LIBRTMP 3 "2011-07-20" "RTMPDump v2.4" +.\" Copyright 2011 Howard Chu. .\" Copying permitted according to the GNU General Public License V2. .SH NAME librtmp \- RTMPDump Real-Time Messaging Protocol API @@ -161,6 +161,9 @@ Key for SecureToken response, used if the server requires SecureToken authentication. .TP +.BI jtv= JSON +JSON token used by legacy Justin.tv servers. Invokes NetStream.Authenticate.UsherToken +.TP .BI swfVfy= 0|1 If the value is 1 or TRUE, the SWF player is retrieved from the specified
View file
rtmpdump-2.3.99.git20110523.tar.bz2/librtmp/librtmp.3.html -> rtmpdump-2.3.99.git20110728.tar.bz2/librtmp/librtmp.3.html
Changed
@@ -6,10 +6,10 @@ <tr><td>LIBRTMP(3)<td align="center"><td align="right">LIBRTMP(3) </thead> <tfoot> -<tr><td>RTMPDump v2.3<td align="center">2010-07-03<td align="right">LIBRTMP(3) +<tr><td>RTMPDump v2.4<td align="center">2011-07-20<td align="right">LIBRTMP(3) </tfoot> <tbody><tr><td colspan="3"><br><br><ul> -<!-- Copyright 2010 Howard Chu. +<!-- Copyright 2011 Howard Chu. Copying permitted according to the GNU General Public License V2.--> </ul> @@ -238,6 +238,12 @@ </dl> <p> <dl compact><dt> +<b>jtv=</b><i>JSON</i> +<dd> +JSON token used by legacy Justin.tv servers. Invokes NetStream.Authenticate.UsherToken +</dl> +<p> +<dl compact><dt> <b>swfVfy=</b><i>0|1</i> <dd> If the value is 1 or TRUE, the SWF player is retrieved from the
View file
rtmpdump-2.3.99.git20110523.tar.bz2/librtmp/rtmp.c -> rtmpdump-2.3.99.git20110728.tar.bz2/librtmp/rtmp.c
Changed
@@ -96,6 +96,7 @@ static int SendFCSubscribe(RTMP *r, AVal *subscribepath); static int SendPlay(RTMP *r); static int SendBytesReceived(RTMP *r); +static int SendUsherToken(RTMP *r, AVal *usherToken); #if 0 /* unused */ static int SendBGHasStream(RTMP *r, double dId, AVal *playpath); @@ -335,6 +336,7 @@ uint32_t swfSize, AVal *flashVer, AVal *subscribepath, + AVal *usherToken, int dStart, int dStop, int bLiveStream, long int timeout) { @@ -355,6 +357,8 @@ RTMP_Log(RTMP_LOGDEBUG, "auth : %s", auth->av_val); if (subscribepath && subscribepath->av_val) RTMP_Log(RTMP_LOGDEBUG, "subscribepath : %s", subscribepath->av_val); + if (usherToken && usherToken->av_val) + RTMP_Log(RTMP_LOGDEBUG, "NetStream.Authenticate.UsherToken : %s", usherToken->av_val); if (flashVer && flashVer->av_val) RTMP_Log(RTMP_LOGDEBUG, "flashVer : %s", flashVer->av_val); if (dStart > 0) @@ -420,6 +424,8 @@ r->Link.flashVer = RTMP_DefaultFlashVer; if (subscribepath && subscribepath->av_len) r->Link.subscribepath = *subscribepath; + if (usherToken && usherToken->av_len) + r->Link.usherToken = *usherToken; r->Link.seekTime = dStart; r->Link.stopTime = dStop; if (bLiveStream) @@ -477,6 +483,8 @@ "Stream is live, no seeking possible" }, { AVC("subscribe"), OFF(Link.subscribepath), OPT_STR, 0, "Stream to subscribe to" }, + { AVC("jtv"), OFF(Link.usherToken), OPT_STR, 0, + "Justin.tv authentication token" }, { AVC("token"), OFF(Link.token), OPT_STR, 0, "Key for SecureToken response" }, { AVC("swfVfy"), OFF(Link.lFlags), OPT_BOOL, RTMP_LF_SWFV, @@ -1330,7 +1338,8 @@ r->m_nBytesIn += nRead; if (r->m_bSendCounter && r->m_nBytesIn > r->m_nBytesInSent + r->m_nClientBW / 2) - SendBytesReceived(r); + if (!SendBytesReceived(r)) + return FALSE; } /*RTMP_Log(RTMP_LOGDEBUG, "%s: %d bytes\n", __FUNCTION__, nBytes); */ #ifdef _DEBUG @@ -1641,6 +1650,39 @@ return RTMP_SendPacket(r, &packet, TRUE); } +/* Justin.tv specific authentication */ +static const AVal av_NetStream_Authenticate_UsherToken = AVC("NetStream.Authenticate.UsherToken"); + +static int +SendUsherToken(RTMP *r, AVal *usherToken) +{ + RTMPPacket packet; + char pbuf[1024], *pend = pbuf + sizeof(pbuf); + char *enc; + packet.m_nChannel = 0x03; /* control channel (invoke) */ + packet.m_headerType = RTMP_PACKET_SIZE_MEDIUM; + packet.m_packetType = RTMP_PACKET_TYPE_INVOKE; + packet.m_nTimeStamp = 0; + packet.m_nInfoField2 = 0; + packet.m_hasAbsTimestamp = 0; + packet.m_body = pbuf + RTMP_MAX_HEADER_SIZE; + + RTMP_Log(RTMP_LOGDEBUG, "UsherToken: %s", usherToken->av_val); + enc = packet.m_body; + enc = AMF_EncodeString(enc, pend, &av_NetStream_Authenticate_UsherToken); + enc = AMF_EncodeNumber(enc, pend, ++r->m_numInvokes); + *enc++ = AMF_NULL; + enc = AMF_EncodeString(enc, pend, usherToken); + + if (!enc) + return FALSE; + + packet.m_nBodySize = enc - packet.m_body; + + return RTMP_SendPacket(r, &packet, FALSE); +} +/******************************************/ + SAVC(releaseStream); static int @@ -2364,6 +2406,9 @@ if (!(r->Link.protocol & RTMP_FEATURE_WRITE)) { + /* Authenticate on Justin.tv legacy servers before sending FCSubscribe */ + if (r->Link.usherToken.av_len) + SendUsherToken(r, &r->Link.usherToken); /* Send the FCSubscribe if live stream or if subscribepath is set */ if (r->Link.subscribepath.av_len) SendFCSubscribe(r, &r->Link.subscribepath); @@ -3581,7 +3626,9 @@ sb->sb_ssl = NULL; } #endif - return closesocket(sb->sb_socket); + if (sb->sb_socket != -1) + return closesocket(sb->sb_socket); + return 0; } #define HEX2BIN(a) (((a)&0x40)?((a)&0xf)+9:((a)&0xf))
View file
rtmpdump-2.3.99.git20110523.tar.bz2/librtmp/rtmp.h -> rtmpdump-2.3.99.git20110728.tar.bz2/librtmp/rtmp.h
Changed
@@ -155,6 +155,7 @@ AVal auth; AVal flashVer; AVal subscribepath; + AVal usherToken; AVal token; AMFObject extras; int edepth; @@ -297,6 +298,7 @@ uint32_t swfSize, AVal *flashVer, AVal *subscribepath, + AVal *usherToken, int dStart, int dStop, int bLiveStream, long int timeout);
View file
rtmpdump-2.3.99.git20110523.tar.bz2/rtmpdump.1 -> rtmpdump-2.3.99.git20110728.tar.bz2/rtmpdump.1
Changed
@@ -1,5 +1,5 @@ -.TH RTMPDUMP 1 "2010-05-02" "RTMPDump v2.2e" -.\" Copyright 2010 Howard Chu. +.TH RTMPDUMP 1 "2011-07-20" "RTMPDump v2.4" +.\" Copyright 2011 Howard Chu. .\" Copying permitted according to the GNU General Public License V2. .SH NAME rtmpdump \- RTMP streaming media client @@ -51,6 +51,8 @@ [\c .BI \-T \ key\fR] [\c +.BI \-j \ JSON\fR] +[\c .BI \-w \ swfHash\fR] [\c .BI \-x \ swfSize\fR] @@ -210,6 +212,9 @@ Key for SecureToken response, used if the server requires SecureToken authentication. .TP +\fB\-\-jtv \-j\fP\ \fIJSON\fP +JSON token used by legacy Justin.tv servers. Invokes NetStream.Authenticate.UsherToken +.TP \fB\-\-swfhash \-w\fP\ \fIhexstring\fP SHA256 hash of the decompressed SWF file. This option may be needed if the server uses SWF Verification, but see the
View file
rtmpdump-2.3.99.git20110523.tar.bz2/rtmpdump.1.html -> rtmpdump-2.3.99.git20110728.tar.bz2/rtmpdump.1.html
Changed
@@ -6,10 +6,10 @@ <tr><td>RTMPDUMP(1)<td align="center"><td align="right">RTMPDUMP(1) </thead> <tfoot> -<tr><td>RTMPDump v2.2e<td align="center">2010-05-02<td align="right">RTMPDUMP(1) +<tr><td>RTMPDump v2.4<td align="center">2011-07-20<td align="right">RTMPDUMP(1) </tfoot> <tbody><tr><td colspan="3"><br><br><ul> -<!-- Copyright 2010 Howard Chu. +<!-- Copyright 2011 Howard Chu. Copying permitted according to the GNU General Public License V2.--> </ul> @@ -42,6 +42,7 @@ [<b>−b</b><i> buffer</i>] [<b>−m</b><i> timeout</i>] [<b>−T</b><i> key</i>] +[<b>−j</b><i> JSON</i>] [<b>−w</b><i> swfHash</i>] [<b>−x</b><i> swfSize</i>] [<b>−W</b><i> swfUrl</i>] @@ -275,6 +276,12 @@ </dl> <p> <dl compact><dt> +<b>−−jtv −j</b> <i>JSON</i> +<dd> +JSON token used by legacy Justin.tv servers. Invokes NetStream.Authenticate.UsherToken +</dl> +<p> +<dl compact><dt> <b>−−swfhash −w</b> <i>hexstring</i> <dd> SHA256 hash of the decompressed SWF file. This option may be needed if
View file
rtmpdump-2.3.99.git20110523.tar.bz2/rtmpdump.c -> rtmpdump-2.3.99.git20110728.tar.bz2/rtmpdump.c
Changed
@@ -444,7 +444,7 @@ { int32_t now, lastUpdate; int bufferSize = 64 * 1024; - char *buffer = (char *) malloc(bufferSize); + char *buffer; int nRead = 0; off_t size = ftello(file); unsigned long lastPercent = 0; @@ -505,6 +505,8 @@ rtmp->m_read.nMetaHeaderSize = nMetaHeaderSize; rtmp->m_read.nInitialFrameSize = nInitialFrameSize; + buffer = (char *) malloc(bufferSize); + now = RTMP_GetTime(); lastUpdate = now - 1000; do @@ -692,6 +694,8 @@ RTMP_LogPrintf ("--token|-T key Key for SecureToken response\n"); RTMP_LogPrintf + ("--jtv|-j JSON Authentication token for Justin.tv legacy servers\n"); + RTMP_LogPrintf ("--hashes|-# Display progress with hashes, not with the byte counter\n"); RTMP_LogPrintf ("--buffer|-b Buffer time in milliseconds (default: %lu)\n", @@ -738,6 +742,7 @@ AVal hostname = { 0, 0 }; AVal playpath = { 0, 0 }; AVal subscribepath = { 0, 0 }; + AVal usherToken = { 0, 0 }; //Justin.tv auth token int port = -1; int protocol = RTMP_PROTOCOL_UNDEFINED; int retries = 0; @@ -839,12 +844,13 @@ {"debug", 0, NULL, 'z'}, {"quiet", 0, NULL, 'q'}, {"verbose", 0, NULL, 'V'}, + {"jtv", 1, NULL, 'j'}, {0, 0, 0, 0} }; while ((opt = getopt_long(argc, argv, - "hVveqzr:s:t:p:a:b:f:o:u:C:n:c:l:y:Ym:k:d:A:B:T:w:x:W:X:S:#", + "hVveqzr:s:t:p:a:b:f:o:u:C:n:c:l:y:Ym:k:d:A:B:T:w:x:W:X:S:#j:", longopts, NULL)) != -1) { switch (opt) @@ -1051,6 +1057,9 @@ case 'S': STR2AVAL(sockshost, optarg); break; + case 'j': + STR2AVAL(usherToken, optarg); + break; default: RTMP_LogPrintf("unknown option: %c\n", opt); usage(argv[0]); @@ -1167,7 +1176,7 @@ RTMP_SetupStream(&rtmp, protocol, &hostname, port, &sockshost, &playpath, &tcUrl, &swfUrl, &pageUrl, &app, &auth, &swfHash, swfSize, - &flashVer, &subscribepath, dSeek, dStopOffset, bLiveStream, timeout); + &flashVer, &subscribepath, &usherToken, dSeek, dStopOffset, bLiveStream, timeout); /* Try to keep the stream moving if it pauses on us */ if (!bLiveStream && !(protocol & RTMP_FEATURE_HTTP))
View file
rtmpdump-2.3.99.git20110523.tar.bz2/rtmpgw.8 -> rtmpdump-2.3.99.git20110728.tar.bz2/rtmpgw.8
Changed
@@ -1,5 +1,5 @@ -.TH RTMPGW 8 "2010-05-02" "RTMPDump v2.2e" -.\" Copyright 2010 Howard Chu. +.TH RTMPGW 8 "2011-07-20" "RTMPDump v2.4" +.\" Copyright 2011 Howard Chu. .\" Copying permitted according to the GNU General Public License V2. .SH NAME rtmpgw \- RTMP streaming media gateway @@ -50,6 +50,8 @@ [\c .BI \-T \ key\fR] [\c +.BI \-j \ JSON\fR] +[\c .BI \-w \ swfHash\fR] [\c .BI \-x \ swfSize\fR] @@ -193,6 +195,9 @@ Key for SecureToken response, used if the server requires SecureToken authentication. .TP +\fB\-\-jtv \-j\fP\ \fIJSON\fP +JSON token used by legacy Justin.tv servers. Invokes NetStream.Authenticate.UsherToken +.TP \fB\-\-swfhash \-w\fP\ \fIhexstring\fP SHA256 hash of the decompressed SWF file. This option may be needed if the server uses SWF Verification, but see the
View file
rtmpdump-2.3.99.git20110523.tar.bz2/rtmpgw.8.html -> rtmpdump-2.3.99.git20110728.tar.bz2/rtmpgw.8.html
Changed
@@ -6,10 +6,10 @@ <tr><td>RTMPGW(8)<td align="center"><td align="right">RTMPGW(8) </thead> <tfoot> -<tr><td>RTMPDump v2.2e<td align="center">2010-05-02<td align="right">RTMPGW(8) +<tr><td>RTMPDump v2.4<td align="center">2011-07-20<td align="right">RTMPGW(8) </tfoot> <tbody><tr><td colspan="3"><br><br><ul> -<!-- Copyright 2010 Howard Chu. +<!-- Copyright 2011 Howard Chu. Copying permitted according to the GNU General Public License V2.--> </ul> @@ -41,6 +41,7 @@ [<b>−b</b><i> buffer</i>] [<b>−m</b><i> timeout</i>] [<b>−T</b><i> key</i>] +[<b>−j</b><i> JSON</i>] [<b>−w</b><i> swfHash</i>] [<b>−x</b><i> swfSize</i>] [<b>−W</b><i> swfUrl</i>] @@ -249,6 +250,12 @@ </dl> <p> <dl compact><dt> +<b>−−jtv −j</b> <i>JSON</i> +<dd> +JSON token used by legacy Justin.tv servers. Invokes NetStream.Authenticate.UsherToken +</dl> +<p> +<dl compact><dt> <b>−−swfhash −w</b> <i>hexstring</i> <dd> SHA256 hash of the decompressed SWF file. This option may be needed if
View file
rtmpdump-2.3.99.git20110523.tar.bz2/rtmpgw.c -> rtmpdump-2.3.99.git20110728.tar.bz2/rtmpgw.c
Changed
@@ -95,6 +95,7 @@ AVal flashVer; AVal token; AVal subscribepath; + AVal usherToken; //Justin.tv auth token AVal sockshost; AMFObject extras; int edepth; @@ -552,7 +553,7 @@ RTMP_Init(&rtmp); RTMP_SetBufferMS(&rtmp, req.bufferTime); RTMP_SetupStream(&rtmp, req.protocol, &req.hostname, req.rtmpport, &req.sockshost, - &req.playpath, &req.tcUrl, &req.swfUrl, &req.pageUrl, &req.app, &req.auth, &req.swfHash, req.swfSize, &req.flashVer, &req.subscribepath, dSeek, req.dStopOffset, + &req.playpath, &req.tcUrl, &req.swfUrl, &req.pageUrl, &req.app, &req.auth, &req.swfHash, req.swfSize, &req.flashVer, &req.subscribepath, &req.usherToken, dSeek, req.dStopOffset, req.bLiveStream, req.timeout); /* backward compatibility, we always sent this as true before */ if (req.auth.av_len) @@ -953,6 +954,9 @@ case 'z': RTMP_debuglevel = RTMP_LOGALL; break; + case 'j': + STR2AVAL(req->usherToken, arg); + break; default: RTMP_LogPrintf("unknown option: %c, arg: %s\n", opt, arg); return FALSE; @@ -1023,6 +1027,7 @@ {"debug", 0, NULL, 'z'}, {"quiet", 0, NULL, 'q'}, {"verbose", 0, NULL, 'V'}, + {"jtv", 1, NULL, 'j'}, {0, 0, 0, 0} }; @@ -1035,7 +1040,7 @@ while ((opt = getopt_long(argc, argv, - "hvqVzr:s:t:p:a:f:u:n:c:l:y:m:d:D:A:B:T:g:w:x:W:X:S:", longopts, + "hvqVzr:s:t:p:a:f:u:n:c:l:y:m:d:D:A:B:T:g:w:x:W:X:S:j:", longopts, NULL)) != -1) { switch (opt) @@ -1096,6 +1101,8 @@ RTMP_LogPrintf ("--token|-T key Key for SecureToken response\n"); RTMP_LogPrintf + ("--jtv|-j JSON Authentication token for Justin.tv legacy servers\n"); + RTMP_LogPrintf ("--buffer|-b Buffer time in milliseconds (default: %lu)\n\n", defaultRTMPRequest.bufferTime);
Locations
Projects
Search
Status Monitor
Help
Open Build Service
OBS Manuals
API Documentation
OBS Portal
Reporting a Bug
Contact
Mailing List
Forums
Chat (IRC)
Twitter
Open Build Service (OBS)
is an
openSUSE project
.