libavformat

On a DVD, because you're not opening a file, you would tell the demuxer what you're going to send it in the stream – video size, pixel format, and maybe more. See av_dict_set() for setting attributes in an AVDictionary struct.

avformat_open_input() will scan the input until it finds out what it is. I think setting dict options would only apply though if you were passing rawvideo, and not something that was muxed already and had data about the stream.

In the case of a DVD, you already would know what the codecs have, stream order, etc., so probing would not be necessary. Demuxing is what would happen. You should be loading the codecs yourself as well instead of loading all of them.

Side note - do DVDs really have a reserved part just for SDDS? See http://www.ingerop.fr/sites/all/libraries/ffmpeg/libavformat/mpeg.c