hwinfo --cdrom will provide considerably more complete information than /proc/sys/dev/cdrom/info.
Here is an example from a system with an internal DVD-RW drive, an external compact DVD-RW drive, and an external full-size DVD-RW drive. Note an important parsing detail of /proc/sys/dev/cdrom/info: it adds columns, not blocks, for multiple devices. Also note the top line, which indicates that the code it relies on was written quite a while ago:
CD-ROM information, Id: cdrom.c 3.20 2003/12/17
drive name: sr2 sr1 sr0
drive speed: 48 8 40
drive # of slots: 1 1 1
Can close tray: 1 1 1
Can open tray: 1 1 1
Can lock tray: 1 1 1
Can change speed: 1 1 1
Can select disk: 0 0 0
Can read multisession: 1 1 1
Can read MCN: 1 1 1
Reports media changed: 1 1 1
Can play audio: 1 1 1
Can write CD-R: 1 1 1
Can write CD-RW: 1 1 1
Can read DVD: 1 1 1
Can write DVD-R: 1 1 1
Can write DVD-RAM: 1 1 1
Can read MRW: 1 0 1
Can write MRW: 1 0 1
Can write RAM: 1 1 1
Note that the compact drive is slower, and does not support Mount Rainier packet writing (MRW). Also note that these drives are listed as supporting DVD-R (read: "DVD dash R"; there is no such thing as "DVD minus R"), but there is no row to indicate whether or not they support DVD+R ("DVD plus R"). It is likely that at least one of these drives does.
Using "hwinfo --cdrom" to get more info, here are its matching feature lines (much more data is available; it is stripped here for brevity and clarity:
Features: CD-R, CD-RW, DVD, DVD-R, DVD-RW, DVD-R DL, DVD+R, DVD+RW, DVD+R DL, DVD-RAM, MRW, MRW-W
Features: CD-R, CD-RW, DVD, DVD-R, DVD-RW, DVD-R DL, DVD+R, DVD+RW, DVD+R DL, DVD-RAM
Features: CD-R, CD-RW, DVD, DVD-R, DVD-RW, DVD-R DL, DVD+R, DVD+RW, DVD+R DL, DVD-RAM, MRW, MRW-W
We now see a number of important points, to which you are probably saying, "Oh, that." Yes, oh that. Oh, that format war between DVD-R and DVD-RW. Oh, dual-layer discs. Oh, DVD-RAM. Oh, CD-changers with multi-disc magazines ("can select disk").
I'll see if I can pull data from a BD-ROM drive later and update this. But the upshot is that you are probably going to have to interrogate the system several different ways to get complete results.
Media checks complicate the matter even further. In particular, trying to tell the difference between a defective disc, a blank disc, a valid disc that isn't going to work in that particular drive, an open tray, and various other conditions can require getting familiar with sending low-level IOCTL commands to the device. This can be done in pretty much any language, but it tends to feel pretty foreign to people who haven't written some systems software in C.