Page 1 of 1

Architecture question: zmdc.pl, zmc, and devices

Posted: Sat Jun 06, 2009 10:20 pm
by Syrinx
I'm trying to troubleshoot a problem and I'd like to make sure I understand how things should work.

What's the relationship between zmdc.pl, zmc, and configured devices (image sources)?

From looking at the code, it seems like for each device configured in ZoneMinder, zmdc.pl spawns a zmc process. Is that correct?

Let me describe my setup and my problem...

For my setup, I have two BTTV (Pico2000) 4-channel video capture cards. After starting ZoneMinder, if I look in zmdc.log, I see this:

Code: Select all

06/06/2009 15:09:47.296215 zmdc[6574].INF [Server starting at 09/06/06 15:09:47]
06/06/2009 15:09:50.821671 zmdc[6574].INF ['zmc -d /dev/video1' starting at 09/06/06 15:09:50, pid = 6600]
06/06/2009 15:09:50.989300 zmdc[6574].INF ['zma -m 2' starting at 09/06/06 15:09:50, pid = 6602]
06/06/2009 15:09:51.092131 zmdc[6574].INF ['zmc -d /dev/video1' already running at 09/06/06 15:09:50, pid = 6600]
06/06/2009 15:09:51.188713 zmdc[6574].INF ['zma -m 3' starting at 09/06/06 15:09:51, pid = 6605]
06/06/2009 15:09:51.432833 zmdc[6574].INF ['zmc -d /dev/video1' already running at 09/06/06 15:09:50, pid = 6600]
06/06/2009 15:09:51.691303 zmdc[6574].INF ['zma -m 4' starting at 09/06/06 15:09:51, pid = 6608]
06/06/2009 15:09:51.864375 zmdc[6574].INF ['zmc -d /dev/video1' already running at 09/06/06 15:09:50, pid = 6600]
06/06/2009 15:09:52.092111 zmdc[6574].INF ['zma -m 5' starting at 09/06/06 15:09:52, pid = 6611]
06/06/2009 15:09:52.265376 zmdc[6574].INF ['zmc -d /dev/video2' starting at 09/06/06 15:09:52, pid = 6613]
06/06/2009 15:09:52.511588 zmdc[6574].INF ['zma -m 6' starting at 09/06/06 15:09:52, pid = 6616]
06/06/2009 15:09:52.733442 zmdc[6574].INF ['zmc -d /dev/video2' already running at 09/06/06 15:09:52, pid = 6613]
06/06/2009 15:09:52.967714 zmdc[6574].INF ['zma -m 7' starting at 09/06/06 15:09:52, pid = 6620]
06/06/2009 15:09:53.174587 zmdc[6574].INF ['zmc -d /dev/video2' already running at 09/06/06 15:09:52, pid = 6613]
06/06/2009 15:09:53.432606 zmdc[6574].INF ['zma -m 8' starting at 09/06/06 15:09:53, pid = 6624]
06/06/2009 15:09:53.686386 zmdc[6574].INF ['zmc -d /dev/video2' already running at 09/06/06 15:09:52, pid = 6613]
06/06/2009 15:09:53.863986 zmdc[6574].INF ['zma -m 9' starting at 09/06/06 15:09:53, pid = 6628]
Notice that two zmc processes start successfully, and six are aborted because zmdc.pl believes they're already running.

Now if I attach a camera to my video capture cards, only a single channel captures. On both cards only channel one captures, and the other channels (0, 2, 3) do not capture.

I looked in the code for zmdc.pl, and commented out the return when zmdc.pl believes the process is already running. But then the new zmc processes crash shortly after being spawned.

Posted: Tue Jun 09, 2009 2:08 pm
by zoneminder
These are not errors, if they were they would be tagged ERR and not INF. If you have multiple monitors on one device then ZM starts only one zmc process for all of them so this is the desired behaviour.