// File: /workspace/github_cpp_makefile_star2_O3/p-ranav[P]video_device_discovery/src/main.cpp
// Function: main
int main() {
  for (auto& vd: find_video_devices()) {
    std::cout << vd.file.string() << "\n";
    std::cout << " Driver: " << vd.driver << "\n";
    std::cout << " Card: " << vd.card << "\n";
    std::cout << " Bus info: " << vd.bus_info << "\n";

    std::cout << " Pixel Format:\n";
    for (auto& fmt: vd.pixel_formats) {
      std::cout << " - " << fmt << "\n";
    }
    std::cout << " Resolutions:\n";
    for (auto& r: vd.resolutions) {
      std::cout << " - " << r.first << "x" << r.second << "\n";
    }
    std::cout << "\n\n";
  }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x58, %rsp
xorps %xmm0, %xmm0
leaq -0x50(%rbp), %rsi
movaps %xmm0, (%rsi)
movq $0x0, 0x10(%rsi)
leaq -0x78(%rbp), %rdi
callq 0x6a88
leaq -0x50(%rbp), %rdi
callq 0x6814
movq -0x78(%rbp), %r13
movq -0x70(%rbp), %rax
movq %rax, -0x58(%rbp)
cmpq %rax, %r13
je 0x67b8
leaq -0x40(%rbp), %r12
movq 0x21a07(%rip), %r14     # 0x27fb8
leaq 0x19a8e(%rip), %r15     # 0x20046
movq 0x8(%r13), %rsi
movq 0x10(%r13), %rdx
addq %rsi, %rdx
movq %r12, -0x50(%rbp)
leaq -0x50(%rbp), %rdi
callq 0x68ce
movq -0x50(%rbp), %rsi
movq -0x48(%rbp), %rdx
movq %r14, %rdi
callq 0x43b0
movl $0x1, %edx
movq %rax, %rdi
movq %r15, %rsi
callq 0x43b0
movq -0x50(%rbp), %rdi
cmpq %r12, %rdi
je 0x6605
movq -0x40(%rbp), %rsi
incq %rsi
callq 0x4360
movl $0x9, %edx
movq %r14, %rdi
leaq 0x199f0(%rip), %rsi     # 0x20004
callq 0x43b0
movq 0x78(%r13), %rsi
movq 0x80(%r13), %rdx
movq %r14, %rdi
callq 0x43b0
movl $0x1, %edx
movq %rax, %rdi
movq %r15, %rsi
callq 0x43b0
movl $0x7, %edx
movq %r14, %rdi
leaq 0x199c3(%rip), %rsi     # 0x2000e
callq 0x43b0
movq 0x98(%r13), %rsi
movq 0xa0(%r13), %rdx
movq %r14, %rdi
callq 0x43b0
movl $0x1, %edx
movq %rax, %rdi
movq %r15, %rsi
callq 0x43b0
movl $0xb, %edx
movq %r14, %rdi
leaq 0x19991(%rip), %rsi     # 0x20016
callq 0x43b0
movq 0xb8(%r13), %rsi
movq 0xc0(%r13), %rdx
movq %r14, %rdi
callq 0x43b0
movl $0x1, %edx
movq %rax, %rdi
movq %r15, %rsi
callq 0x43b0
movl $0xf, %edx
movq %r14, %rdi
leaq 0x19963(%rip), %rsi     # 0x20022
callq 0x43b0
movq 0x48(%r13), %rbx
movq 0x50(%r13), %r12
cmpq %r12, %rbx
je 0x670a
movl $0x3, %edx
movq %r14, %rdi
leaq 0x19952(%rip), %rsi     # 0x20032
callq 0x43b0
movq (%rbx), %rsi
movq 0x8(%rbx), %rdx
movq %r14, %rdi
callq 0x43b0
movl $0x1, %edx
movq %rax, %rdi
movq %r15, %rsi
callq 0x43b0
addq $0x20, %rbx
jmp 0x66cc
movl $0xe, %edx
movq %r14, %rdi
leaq 0x1991d(%rip), %rsi     # 0x20036
callq 0x43b0
movq %r13, %rax
movq 0x60(%r13), %r13
movq %rax, -0x60(%rbp)
movq 0x68(%rax), %r12
cmpq %r12, %r13
je 0x678b
movl $0x3, %edx
movq %r14, %rdi
leaq 0x198f1(%rip), %rsi     # 0x20032
callq 0x43b0
movq (%r13), %rsi
movq %r14, %rdi
callq 0x4250
movq %rax, %rbx
movl $0x1, %edx
movq %rax, %rdi
leaq 0x1a5f1(%rip), %rsi     # 0x20d55
callq 0x43b0
movq 0x8(%r13), %rsi
movq %rbx, %rdi
callq 0x4250
movl $0x1, %edx
movq %rax, %rdi
movq %r15, %rsi
callq 0x43b0
addq $0x10, %r13
jmp 0x672d
movl $0x2, %edx
movq %r14, %rdi
leaq 0x198ab(%rip), %rsi     # 0x20045
callq 0x43b0
movq -0x60(%rbp), %r13
addq $0xd8, %r13
cmpq -0x58(%rbp), %r13
leaq -0x40(%rbp), %r12
jne 0x65b8
leaq -0x78(%rbp), %rdi
callq 0x6882
xorl %eax, %eax
addq $0x58, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
leaq -0x50(%rbp), %rdi
callq 0x6814
jmp 0x680c
jmp 0x6800
movq %rax, %rbx
movq -0x50(%rbp), %rdi
cmpq %r12, %rdi
je 0x6803
movq -0x40(%rbp), %rsi
incq %rsi
callq 0x4360
jmp 0x6803
jmp 0x6800
jmp 0x6800
movq %rax, %rbx
leaq -0x78(%rbp), %rdi
callq 0x6882
movq %rbx, %rdi
callq 0x45b0