avcodec_close() is deprecated and it's not supported anymore to re-open a codec, so we only ever allocate the codec in set_format() now and always free it after usage. As part of this, also fix various memory leaks in related code paths. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6505>