Emerson did provide some great info... but to expound on it, OpenGL will use your CPU for decoding and VDPAU will use your GPU. For certain systems, that can mean the difference between choppy (OpenGL) and smooth (VDPAU) playback, however, the choppy playback tends happens on lower-end systems or higher bitrate videos. A lot of modern systems will play h265 (HEVC) videos with little to no stuttering without VDPAU, yet your CPU usage would be higher than if you were using VDPAU. Video cards do a great job at decoding video and do it with less resources than the CPU. This can also be handy if you tend to have other things going on in the background that could benefit from more available CPU resources.
Also, as Emerson stated, avi is just a container, much like mp4 and mkv. It supports multiple video and audio codecs. Most commonly, avi containers are associated with DivX or Xvid video codecs. As you can see from their vdpauinfo output, the DIVX4 and DIVX5 profiles are not supported by his video card. None of my systems support it either. I think the lack of support is because these codecs are old and tend to not require a lot of video power. However, it's been a while since I've played avis on my system, so I don't remember if they do anything weird with vdpau enabled. I would be interested in seeing the output of the video player you're using to play these files. I believe when vdpau isn't able to decode a video, it should switch to a different output, so I'd be interested to the output to see if the video player attempts this.
As far as VDPAU only being for Nvidia, I believe they were the ones who developed it, but it became quite popular in the industry and is used by a lot of programs. Nvidia and AMD both have support for VDPAU, however, Intel doesn't (they use VA-API) unless you install
libvdpau-va-gl, which acts as a backend between VDPAU programs and VA-API hardware.