videodecoder: Should not renegotiate at start of finish_frame()
@ndufresne
Submitted by Nicolas Dufresne Link to original bug (#742619)
Description
It has always been this way, there is obvious way to workaround it, but it make very little sense to reconfigure on finish frame. On finish frame, it is too late to negotiate the allocation. In fact, this case only get triggered when we are already configured and may cause more arm then good.
In most cases, the frame holds a buffer allocated from the previously negotiated pool. The old pool cannot be stopped or reconfigured, since it has outstanding buffers.
I think we should drop this check. If there is a video decoder not using one of:
gst_video_decoder_allocate_output_buffer()
gst_video_decoder_allocate_output_frame()
gst_video_decoder_negotiate ()
It should most likely call gst_video_decoder_negotiate() (if it can renegotiate). Any known decoder triggers this case ? If so, do it work well ?