Skip to content

Instantly share code, notes, and snippets.

View j0sh's full-sized avatar
🐠

Josh Allmann j0sh

🐠
View GitHub Profile
@j0sh
j0sh / gist:1365686
Created November 15, 2011 00:27
why i hate c++
(gdb) p *this
$2 = {_vptr.BaseClientApplication = 0xffffffff, static _idGenerator = 30, _id = 224273, _name = {static npos = 18446744073709551615,
_M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x7fe18d2eb648 "8?.\215?\177"}},
_aliases = {<std::_Vector_base<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >> = {
_M_impl = {<std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >> = {<__gnu_cxx::new_allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >> = {<No data fields>}, <No data fields>}, _M_start = 0x7fe18d2eb648, _M_finish = 0x4a4a3b0, _M_end_of_storage = 0x4a4a3b0}}, <No data fields>},
_protocolsHandlers = {_M_t = {
_M_impl = {<std::allocator<std::_Rb_tree_node<std::pair<unsigned long const, BaseAppProtocolHandler*> > >> = {<__gnu_cxx::n
@j0sh
j0sh / getprotocolhandler.diff
Created November 16, 2011 03:54
Check for valid input to GetProtocolHandler.
diff --git a/sources/thelib/src/application/baseclientapplication.cpp b/sources/thelib/src/application/baseclientapplication.cpp
index f308186..063b179 100644
--- a/sources/thelib/src/application/baseclientapplication.cpp
+++ b/sources/thelib/src/application/baseclientapplication.cpp
@@ -154,6 +154,7 @@ bool BaseClientApplication::StreamNameAvailable(string streamName,
}
BaseAppProtocolHandler *BaseClientApplication::GetProtocolHandler(BaseProtocol *pProtocol) {
+ if (NULL == pProtocol) return NULL;
return GetProtocolHandler(pProtocol->GetType());
@j0sh
j0sh / 0000-cover-letter.patch
Created January 6, 2012 05:59
Add to protocol factory at runtime.
From 884e6614fbe3dffec655ca6f24ced224bc25cb43 Mon Sep 17 00:00:00 2001
From: Josh Allmann <[email protected]>
Date: Wed, 11 Jan 2012 00:39:48 -0800
Subject: [PATCH 0/2] BaseProtocolFactory simplifications
This patchset removes the need to subclass BaseProtocolFactory.
Protocols can now be added to a factory instance at runtime
before being registered with the factory manager. This greatly
reduces the amount of boilerplate needed to add new protocols.
From 406341615709d2fbd43dcc5b4ba2566cb4801930 Mon Sep 17 00:00:00 2001
From: Josh Allmann <[email protected]>
Date: Wed, 11 Jan 2012 02:15:32 -0800
Subject: [PATCH 2/2] Check protocol direction in RTMP protocol handler.
This is preferable over protocol type to allow subclassing
protocols.
---
.../include/protocols/rtmp/basertmpprotocol.h | 8 ++++++++
.../protocols/rtmp/basertmpappprotocolhandler.cpp | 7 ++++---
diff --git a/sources/thelib/include/protocols/rtmp/basertmpappprotocolhandler.h b/sources/thelib/include/protocols/rtmp/basertmpappprotocolhandler.h
index fa730fd..3a26899 100644
--- a/sources/thelib/include/protocols/rtmp/basertmpappprotocolhandler.h
+++ b/sources/thelib/include/protocols/rtmp/basertmpappprotocolhandler.h
@@ -26,10 +26,12 @@
#include "protocols/rtmp/header.h"
#include "protocols/rtmp/rtmpprotocolserializer.h"
#include "protocols/rtmp/sharedobjects/somanager.h"
-#include "basertmpprotocol.h"
+#include "streaming/baseoutstream.h"
From bffa7d14da4e008735a803c865568bec44c2d6af Mon Sep 17 00:00:00 2001
From: Josh Allmann <[email protected]>
Date: Thu, 12 Jan 2012 20:01:03 -0800
Subject: [PATCH] -- RTMP: Allow application-selectable outfile streams.
---
.../protocols/rtmp/basertmpappprotocolhandler.h | 12 +++++-
.../protocols/rtmp/streaming/innetrtmpstream.h | 4 +-
.../protocols/rtmp/basertmpappprotocolhandler.cpp | 43 +++++++++++++++-----
.../protocols/rtmp/streaming/innetrtmpstream.cpp | 22 +---------
@j0sh
j0sh / 0001-RTMP-Allow-application-selectable-innet-streams.patch
Created January 13, 2012 21:20
RTMP: Allow application-selectable innet streams.
From 16a5d60ae90601063f251a953e307261d991310b Mon Sep 17 00:00:00 2001
From: Josh Allmann <[email protected]>
Date: Fri, 13 Jan 2012 18:25:28 -0800
Subject: [PATCH 1/3] -- RTMP: Allow application-selectable innet streams.
---
.../protocols/rtmp/basertmpappprotocolhandler.h | 11 +++++++++++
.../include/protocols/rtmp/basertmpprotocol.h | 1 +
.../protocols/rtmp/streaming/innetrtmpstream.h | 5 ++---
.../protocols/rtmp/basertmpappprotocolhandler.cpp | 8 ++++++++
@j0sh
j0sh / 0001-Make-stream-creation-and-teardown-more-resilient-to-.patch
Created January 14, 2012 00:21
Make stream creation and teardown more resilient to weirdness.
From b7f142b41db08211f211b91996cd6a439cd18fb5 Mon Sep 17 00:00:00 2001
From: Josh Allmann <[email protected]>
Date: Fri, 13 Jan 2012 16:20:57 -0800
Subject: [PATCH] Make stream creation and teardown more resilient to
weirdness.
---
.../thelib/src/protocols/rtmp/basertmpprotocol.cpp | 10 +++++-----
1 files changed, 5 insertions(+), 5 deletions(-)
@j0sh
j0sh / 0001-Allow-loading-application-less-modules.patch
Created January 23, 2012 08:16
RTMPD: Allow loading application-less modules.
From d6d62a145d125eaec2ed0e513c50be2b72341669 Mon Sep 17 00:00:00 2001
From: Josh Allmann <[email protected]>
Date: Mon, 23 Jan 2012 00:14:19 -0800
Subject: [PATCH] -- Allow loading application-less modules.
This may be useful for eg, libs that register common protocols.
---
sources/thelib/src/configuration/module.cpp | 6 ------
1 files changed, 0 insertions(+), 6 deletions(-)
@j0sh
j0sh / 0001-RTMP-Enable-application-specified-clientids.patch
Created January 23, 2012 10:17
RTMP: Enable application-specified clientids.
From 9c3faeb2136528f72e496f7458b1feefbcc471ae Mon Sep 17 00:00:00 2001
From: Josh Allmann <[email protected]>
Date: Mon, 23 Jan 2012 02:14:40 -0800
Subject: [PATCH] -- RTMP: Enable application-specified clientids.
---
.../protocols/rtmp/basertmpappprotocolhandler.h | 8 ++++++++
.../rtmp/messagefactories/streammessagefactory.h | 16 ++++++++--------
.../rtmp/streaming/baseoutnetrtmpstream.h | 2 +-
.../protocols/rtmp/streaming/innetrtmpstream.h | 2 +-