Avoid infinite loop in Stream.__getattr__ (fixes: #450)
Avoid infinite loop in Stream.__getattr__ (fixes: #450)

For unsupported codecs, querying `stream.type` leads to an infinite loop
as `Stream.__getattr__` will look into `Stream.codec_context` (which
does not exist), in turn calling `Stream.__getattr__` again.

In order to at least be able to retrieve the stream type, we add an
explicit `Stream.type` property which does not rely on there being a
wrapped CodecContext.

NOTE: further work would be to eliminate the __getattr__ magic
completely. It is very hard for users to know what properties exist and
where they are coming from.

mikeboers/PyAV,mikeboers/PyAV,PyAV-Org/PyAV,PyAV-Org/PyAV