[asterisk-scf-commits] asterisk-scf/integration/bridging.git branch "mediamixer" updated.

Commits to the Asterisk SCF project code repositories asterisk-scf-commits at lists.digium.com
Wed Aug 31 18:46:30 CDT 2011


branch "mediamixer" has been updated
       via  ccaf8cf5763364c72126ef941cc8d44607255782 (commit)
       via  87a65e7ea9d7d59cca8b9e3dffdcda64b3227b8c (commit)
      from  c503f171554fa572219ebdcecba7729a963b8128 (commit)

Summary of changes:
 src/MediaMixer.cpp   |    8 ++++++--
 src/MediaSplicer.cpp |    3 +--
 2 files changed, 7 insertions(+), 4 deletions(-)


- Log -----------------------------------------------------------------
commit ccaf8cf5763364c72126ef941cc8d44607255782
Author: Joshua Colp <jcolp at digium.com>
Date:   Wed Aug 31 20:51:12 2011 -0300

    Fix lifecycle for mixer/mixer sink/mixer source.

diff --git a/src/MediaMixer.cpp b/src/MediaMixer.cpp
index f0f703d..d4c1d8f 100755
--- a/src/MediaMixer.cpp
+++ b/src/MediaMixer.cpp
@@ -141,12 +141,12 @@ public:
     MediaMixerSink(const MediaMixerPtr& mixer, const MediaMixerSourcePtr& source) :
         mMixer(mixer), mLocalSource(source) { }
 
+    ~MediaMixerSink() { std::cout << "Media mixer sink going away" << std::endl; }
+
     void write(const FrameSeq& frames, const Ice::Current&)
     {
         boost::unique_lock<boost::shared_mutex> lock(mLock);
 
-	std::cout << "Frame goes in" << std::endl;
-
         mFrames.insert(mFrames.begin(), frames.begin(), frames.end());
     }
     
@@ -461,12 +461,16 @@ void MediaMixer::stop()
         mImpl->mAdapter->remove((*sink)->getProxy()->ice_getIdentity());
     }
 
+    mImpl->mSinks.clear();
+
     for (std::vector<MediaMixerSourcePtr>::const_iterator source = mImpl->mSources.begin();
          source != mImpl->mSources.end();
          ++source)
     {
         mImpl->mAdapter->remove((*source)->getProxy()->ice_getIdentity());
     }
+
+    mImpl->mSources.clear();
 }
 
 }

commit 87a65e7ea9d7d59cca8b9e3dffdcda64b3227b8c
Author: Joshua Colp <jcolp at digium.com>
Date:   Wed Aug 31 19:35:37 2011 -0300

    Remove duplicate pairings and fix issue with transitioning to non-mixing.

diff --git a/src/MediaSplicer.cpp b/src/MediaSplicer.cpp
index 42b19df..cfebdb3 100755
--- a/src/MediaSplicer.cpp
+++ b/src/MediaSplicer.cpp
@@ -510,6 +510,7 @@ public:
         MediaMixerPtr mixer;
         while (!mMediaMixers.empty())
         {
+            mixer = mMediaMixers.back();
             mixer->stop();
             mMediaMixers.pop_back();
         }
@@ -589,9 +590,7 @@ public:
 
                 // Now that we have done so we can create pairings
                 outgoing.push_back(OutgoingPairing(sinks.back(), mixerSource));
-                outgoing.push_back(OutgoingPairing(mixerSink, sources.back()));
                 incoming.push_back(IncomingPairing(sources.back(), mixerSink));
-                incoming.push_back(IncomingPairing(mixerSource, sinks.back()));
 
                 // These sink and source are completely done, don't touch them again
                 sinks.pop_back();

-----------------------------------------------------------------------


-- 
asterisk-scf/integration/bridging.git



More information about the asterisk-scf-commits mailing list