avcodec/h264, videotoolbox: do not return invalid frames on failure
authorwm4 <nfxjfg@googlemail.com>
Fri, 20 Nov 2015 10:30:18 +0000 (11:30 +0100)
committerwm4 <nfxjfg@googlemail.com>
Fri, 20 Nov 2015 10:30:18 +0000 (11:30 +0100)
commit9747219958060d8c4f697df62e7f172c2a77e6c7
tree8f9a3a48aac29fc0521cf5d46e8dfdfa59aeca68
parent8eadabf941a908101c69706063415d4ab6a630da
avcodec/h264, videotoolbox: do not return invalid frames on failure

If videotoolbox_common_end_frame failed, then the AVFrame was returned
to the API user with the dummy buffer (in AVFrame.buf[0]) still set, and
the decode call indicating success.

These "half-set" AVFrames with dummy buffer are a videotoolbox specific
hack, because the decoder requires an allocated AVFrame for its internal
logic. Videotoolbox on the other hand allocates its frame itself
internally, and outputs it only on end_frame. At this point, the dummy
buffer is replaced with the real frame (unless decoding fails).
libavcodec/h264_refs.c
libavcodec/videotoolbox.c