video_capture.py 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. #!/usr/bin/python3
  2. import os
  3. def scan_capture(name="MiraBox",serial=""):
  4. ls = os.listdir("/dev/")
  5. name = name.upper()
  6. serial = serial.upper()
  7. out = []
  8. for l in ls:
  9. if l.startswith("video"):
  10. #print(l)
  11. cmd="udevadm info --query=all /dev/{}".format(l)
  12. print("# cmd:",cmd)
  13. r = os.popen(cmd)
  14. ok_name = 0
  15. ok_capture = 0
  16. ok_serial = 0
  17. for line in r.readlines():
  18. line = line.strip()
  19. line = line.upper()
  20. #print(l,line)
  21. #ID_V4L_CAPABILITIES=:capture:
  22. if "ID_V4L_CAPABILITIES=:capture:".upper() in line:
  23. ok_capture = 1
  24. if name != "" and "_MODEL" in line and name in line:
  25. ok_name = 1
  26. if serial != "" and "ID_SERIAL_SHORT" in line and serial in line:
  27. ok_serial = 1
  28. if (name == "" or ok_name) and (serial == "" or ok_serial) and ok_capture:
  29. print(l,"# name:",ok_name,"capture:",ok_capture,"serial:",ok_serial,"# OK !",[name,serial])
  30. out.append([l,name,serial])
  31. else:
  32. print("#",l,"# name:",ok_name,"capture:",ok_capture,"serial:",ok_serial,"# FAIL !",[name,serial])
  33. print()
  34. return out