[Opalvoip-svn] SF.net SVN: opalvoip:[31626] opal/branches/v3_14
Brought to you by:
csoutheren,
rjongbloed
From: <rjo...@us...> - 2014-03-27 02:32:51
|
Revision: 31626 http://sourceforge.net/p/opalvoip/code/31626 Author: rjongbloed Date: 2014-03-27 02:32:47 +0000 (Thu, 27 Mar 2014) Log Message: ----------- Merged revision(s) 31623, 31625 from /opal/branches/EpsilonEridani: Fixed race condition when changing transcoder in media patch. Modified Paths: -------------- opal/branches/v3_14/include/opal/patch.h opal/branches/v3_14/src/opal/patch.cxx Modified: opal/branches/v3_14/include/opal/patch.h =================================================================== --- opal/branches/v3_14/include/opal/patch.h 2014-03-27 00:33:49 UTC (rev 31625) +++ opal/branches/v3_14/include/opal/patch.h 2014-03-27 02:32:47 UTC (rev 31626) @@ -299,6 +299,8 @@ PThread * patchThread; PMutex patchThreadMutex; + bool m_transcoderChanged; + private: P_REMOVE_VIRTUAL(bool, OnPatchStart(), false); }; Modified: opal/branches/v3_14/src/opal/patch.cxx =================================================================== --- opal/branches/v3_14/src/opal/patch.cxx 2014-03-27 00:33:49 UTC (rev 31625) +++ opal/branches/v3_14/src/opal/patch.cxx 2014-03-27 02:32:47 UTC (rev 31626) @@ -57,6 +57,7 @@ , m_bypassToPatch(NULL) , m_bypassFromPatch(NULL) , patchThread(NULL) + , m_transcoderChanged(false) { PTRACE_CONTEXT_ID_FROM(src); @@ -221,6 +222,7 @@ return false; } + m_transcoderChanged = true; return true; } @@ -829,6 +831,13 @@ if (!LockReadOnly()) return false; + if (m_transcoderChanged) { + m_transcoderChanged = false; + UnlockReadOnly(); + PTRACE(3, "Patch\tIgnoring source data with transcoder change on " << *this); + return true; + } + if (m_bypassFromPatch != NULL) { PTRACE(3, "Patch\tMedia patch bypass started by " << *m_bypassFromPatch << " on " << *this); UnlockReadOnly(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |