I wanted to ask how does Bar code recognition apps works (like Goggles)? Where do they get the bar code information?
There are a variety of standard formats for barcodes. Typically, a barcode app will (somehow) apply some image processing to determine which kind of barcode it's looking at, and then interpret the image accordingly. Figuring out which kind of barcode boils down to making an educated guess based on some set of heuristics.
Once you know which kind of barcode you're working with, it's much easier to process it.
See also: QR Code#Standards.