From: Rich M. <jp...@gm...> - 2010-10-08 12:32:43
|
Is there any reason they both need to be alwayson? If your receiver is always on, your producer should be started when the receiver tries to subscribe anyway. It could be that Player is trying to turn off the producer before the receiver since the producer is the first in the list. Have you tried running without having both always on? Rich > -----Original Message----- > From: Peter Müller [mailto:gra...@ya...] > Sent: Thursday, October 07, 2010 6:16 AM > To: pla...@li... > Subject: [Playerstage-users] alwayson unsubscription failed > > Hi, > > I get this error for my driver setup and I don't understand where it is > coming from. > > First of all the setup> > Driver_Producer sends data. Driver_Receiver receives the data. Both are > always on > Here is a snippet of the config: > driver ( > name "PlayerProducer" > plugin "libproducer" > provides ["opaque:0"] > alwayson 1 > > client_count 0 > ) > > driver > ( > name "PlayerReceiver1" > plugin "libreceiver1" > requires ["opaque:0"] > provides ["laser:1001"] > alwayson 1 > > producer_count 1 > modul_name "Receiver2" > ) > > This setup works. If I add another driver, which is the same as the > first receiver (just different device name etc) I get the error: > "error : alwayson unsubscription failed for device opaque:0 > error : failed to stop alwayson drivers" > > The code for subscribtion and unsubscription looks like this: > > // Find out which opaque provider to subscribe to > for (unsigned int i = 0; i < producer_count; ++i) { > PLAYER_MSG1(1, "Trying to subscribe to opaque:%i", i); > if (cf->ReadDeviceAddr(&(this->opaque_adresses[i]), > section, > "requires", PLAYER_OPAQUE_CODE, i, > NULL) != 0) { > PLAYER_ERROR1("Problem while subscribing to opaque > producer %i.\n", > i); > this->SetError(-1); > return; > } else { > PLAYER_MSG1(1, "Success for driver %s!", > RECEIVER_NAME); > } > } > > > int PlayerReceiver::MainSetup() > { > for (unsigned int i = 0; i < producer_count; ++i) { > if (!(this->subscribed_devices[i] = deviceTable- > >GetDevice(this->opaque_adresses[i]))) { > PLAYER_ERROR1("Unable to locate suitable opaque > device %i", i); > return -1; > } else { > PLAYER_MSG1(1, "Located opaque device %i", i); > } > if (this->subscribed_devices[i]->Subscribe(this->InQueue) > != 0) { > PLAYER_ERROR1("Unable to subscribe to opaque device > %i", i); > return -1; > } else { > PLAYER_MSG1(1, "Subscribed to opaque device %i", i); > } > } > return 0; > } > > > void PlayerReceiver::MainQuit() > { > > for(int i = 0;i < producer_count;++i) { > if(this->subscribed_devices[i]->Unsubscribe(this->InQueue)) { > PLAYER_ERROR1("Unable to unsubscribe to opaque:%i device", i); > } > } > > } > > > The output for the 3 drivers looks like this and looks as everything is > working correctly: > invoking player_driver_init()... > PlayerProducer initializing > PlayerProducer_Register done > success > invoking player_driver_init()... > PlayerReceiver initializing > PlayerReceiver_Register done > success > Trying to subscribe to opaque:0 > Success for driver PlayerReceiver1! > invoking player_driver_init()... > PlayerReceiver initializing > PlayerReceiver_Register done > success > Trying to subscribe to opaque:0 > Success for driver PlayerReceiver0! > Located opaque device 0 > Subscribed to opaque device 0 > Located opaque device 0 > Subscribed to opaque device 0 > listening on 6665 > Listening on ports: 6665 > > > > > > Anyone knows what I have to look for? > > Thanks in advance > > > > > ----------------------------------------------------------------------- > ------- > Beautiful is writing same markup. Internet Explorer 9 supports > standards for HTML5, CSS3, SVG 1.1, ECMAScript5, and DOM L2 & L3. > Spend less time writing and rewriting code and more time creating > great > experiences on the web. Be a part of the beta today. > http://p.sf.net/sfu/beautyoftheweb > _______________________________________________ > Playerstage-users mailing list > Pla...@li... > https://lists.sourceforge.net/lists/listinfo/playerstage-users |