[Live-devel] Streamreplicator

2025-01-21 Thread Lutz Fiebach
Hi, since we only have one audio stream but two video streams available on the wifi cameras, as we wrote some time ago, we have now integrated a stream replicator as recommended and create a separate replicate for both video streams. However, the stream replicator is now permanently consuming th

Re: [Live-devel] StreamReplicator: frame delivery stop

2016-11-16 Thread Ross Finlayson
Bruno, Thanks for the report. This will be fixed in the next release of the software. Ross Finlayson Live Networks, Inc. http://www.live555.com/ ___ live-devel mailing list live-devel@lists.live555.com http://lists.live555.com/mailman/listinfo/live-

[Live-devel] StreamReplicator: frame delivery stop

2016-11-15 Thread Bruno Abreu
Hello Ross, we've been facing occasional frame delivery stops when using StreamReplicator with 3 replicas. We know this happens when one of the replicas is being removed, another is being held as the master replica and the third one as already received the current frame. Internal state of the rep

Re: [Live-devel] StreamReplicator with FileSink problem

2013-01-24 Thread Bruno Abreu
On 01/22/2013 09:51 PM, Ross Finlayson wrote: Yes, I agree. In the next version of the software, this piece of code - in "FileSink::afterGettingFrame()" - will become: if (fOutFid == NULL || fflush(fOutFid) == EOF) { // The output file has closed. Handle this the same way as if the inp

Re: [Live-devel] StreamReplicator with FileSink problem

2013-01-23 Thread Bruno Abreu
On 01/23/2013 01:27 AM, Ross Finlayson wrote: We applied a fix to the StreamReplicator to decrease the fNumDeliveriesMadeSoFar variable if the replica being deactivated was also receiving a frame. Ugh. I'm not thrilled by this hack, but right now I don't see a better solution, so I've gone ahe

Re: [Live-devel] StreamReplicator with FileSink problem

2013-01-23 Thread Bruno Abreu
On 01/22/2013 09:51 PM, Ross Finlayson wrote: Yes, I agree. In the next version of the software, this piece of code - in "FileSink::afterGettingFrame()" - will become: if (fOutFid == NULL || fflush(fOutFid) == EOF) { // The output file has closed. Handle this the same way as if the inp

Re: [Live-devel] StreamReplicator with FileSink problem

2013-01-22 Thread Ross Finlayson
> By examining the behavior of the replicas we were able to determine that our > FileSink replica was being deactivated while executing > StreamReplicator::deliverReceivedFrame(), because, when > FramedSource::afterGetting(replica), on line 259, was called, the write error > would occur again. Upon

Re: [Live-devel] StreamReplicator with FileSink problem

2013-01-22 Thread Ross Finlayson
>> The right place to be scheduling a new 'playing' task is in your >> 'after playing' function - i.e., the function that you passed as a >> parameter when you called "startPlaying()" on your "FileSink" >> subclass. That 'after playing' function will get called, >> automatically, when writes to

Re: [Live-devel] StreamReplicator with FileSink problem

2013-01-22 Thread Bruno Abreu
On Tue, 22 Jan 2013 10:08:49 -0800, Ross Finlayson wrote > OK, so I'll make that change (changing the order of the calls to > "onSourceClosure(this);" and "stopPlaying();" in > "FileSink::afterGettingFrame()") in the next release of the software. > > > The main difference - regarding this issue

Re: [Live-devel] StreamReplicator with FileSink problem

2013-01-22 Thread Ross Finlayson
> On Thu, 10 Jan 2013 11:00:43 -0800, Ross Finlayson wrote >> Instead, try making the following change to >> "FileSink::afterGettingFrame()" (lines 130-132 of >> "liveMedia/FileSink.cpp"): Change the order of the calls to >> onSourceClosure(this); andstopPlaying(); so that "stopPlaying()"

Re: [Live-devel] StreamReplicator with FileSink problem

2013-01-22 Thread Bruno Abreu
Hi Ross, thank you for your quick reply. And sorry for taking so long to get back to you. We've been dealing with some other issues that arose regarding this problem (see below). On Thu, 10 Jan 2013 11:00:43 -0800, Ross Finlayson wrote > Instead, try making the following change to > "FileSink::a

Re: [Live-devel] StreamReplicator with FileSink problem

2013-01-10 Thread Ross Finlayson
> - sink->fSource = NULL; // indicates that we can be played again > + // sink->fSource = NULL; // indicates that we can be played again [...] > We're just not sure that this is a correct solution No, it's not. Instead, try making the following change to "FileSink::afterGettingFrame()" (lines 13

[Live-devel] StreamReplicator with FileSink problem

2013-01-10 Thread Bruno Abreu
Hello Ross, We have been running for some time a RTSPServer that acquires video from a live source (with our own DeviceSource) from which we create 2 or 3 replicas: one for multicast streaming and another to feed a FileSink for file storage. The third replica is created on demand for unicast strea

Re: [Live-devel] StreamReplicator bug deactivating a replica?

2012-05-10 Thread Ross Finlayson
> After some days of testing I'm afraid I'm now pretty sure this solution > (released on 2012.05.03) is still buggy. Yes, you're right. (Stupidity on my part...) I've now released a new version of the code that includes your proposed solution. Thanks again for your help. Ross Finlayson Live

Re: [Live-devel] StreamReplicator bug deactivating a replica?

2012-05-10 Thread Bruno Abreu
On 05/01/2012 02:32 AM, Ross Finlayson wrote: Try replacing those two "for" loops with the following: for (StreamReplica* r1 = fReplicasAwaitingCurrentFrame; r1 != NULL;) { if (r1 == replicaBeingDeactivated) { if (r1 == fReplicasAwaitingCurrentFrame) fReplicasAwaitingCurrentFrame = r

Re: [Live-devel] StreamReplicator bug deactivating a replica?

2012-05-03 Thread Bruno Abreu
Hello Ross, sorry for the late reply. I'm afraid replacing the 2 "for" loops with the code you provided generates a segmentation fault in our app. Of course, it may be something in our application so I'll run more tests today and will provide you with more information as soon as I can. Than

Re: [Live-devel] StreamReplicator bug deactivating a replica?

2012-04-30 Thread Ross Finlayson
Thanks for the report. Yes, there is a bug in that code, although it wasn't quite what you thought. Try replacing those two "for" loops with the following: for (StreamReplica* r1 = fReplicasAwaitingCurrentFrame; r1 != NULL;) { if (r1 == replicaBeingDeactivated) { if (r1 == fRe

[Live-devel] StreamReplicator bug deactivating a replica?

2012-04-30 Thread Bruno Abreu
Hello Ross and everyone I never got to thank you for fixing the race condition in H264VideoFileServerMediaSubsession and MPEG4VideoFileServerMediaSubsession (release 2011.06.14) so, thank you very much for that one. I believe I came across another bug. We are running an application in which w

Re: [Live-devel] StreamReplicator . Best way to remove and recreate a replica

2012-03-15 Thread Ross Finlayson
> I create the replicator with the false option to avoid it deletes the input > Source when removing all replicas. > StreamReplicator::createNew(*env, Source, false) > > then create the source to feed it into the sink > FramedSource* source = replicator->createStreamReplica(); > > What would

[Live-devel] StreamReplicator . Best way to remove and recreate a replica

2012-03-15 Thread Ricardo Acosta
Hi Ross I create the replicator with the false option to avoid it deletes the input Source when removing all replicas. StreamReplicator::createNew(*env, Source, false) then create the source to feed it into the sink FramedSource* source = replicator->createStreamReplica(); What would be the best

Re: [Live-devel] StreamReplicator active replicas count

2012-01-12 Thread Ross Finlayson
Mike, Thanks for noticing this bug. Your suggested fix looks good, and will be included in the next release of the software. Ross Finlayson Live Networks, Inc. http://www.live555.com/ ___ live-devel mailing list live-devel@lists.live555.com http://l

[Live-devel] StreamReplicator active replicas count

2012-01-12 Thread Mike Stewart
Hello All, I have been looking at the new StreamReplicator class and find I am hitting the 'Internal Error 2' logging in StreamReplicator::deliverReceivedFrame() when a StreamReplica is removed whilst another remains active. This could be due to a double-decrement of fNumActiveReplicas as S