Just setting data to NULL and size to 0 is not safe because of side data. Reported-By: Bernd Pfrommer --- libavcodec/avcodec.h | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h index 3440126..f7320fa 100644 --- a/libavcodec/avcodec.h +++ b/libavcodec/avcodec.h @@ -3618,10 +3618,12 @@ void avcodec_align_dimensions2(AVCodecContext *s, int *width, int *height, * Some decoders (those marked with CODEC_CAP_DELAY) have a delay between input * and output. This means that for some packets they will not immediately * produce decoded output and need to be flushed at the end of decoding to get - * all the decoded data. Flushing is done by calling this function with packets - * with avpkt->data set to NULL and avpkt->size set to 0 until it stops - * returning samples. It is safe to flush even those decoders that are not - * marked with CODEC_CAP_DELAY, then no samples will be returned. + * all the decoded data. Flushing is done by calling this function with empty + * packets (e.g. initialized with av_init_packet) until it stops returning + * samples. + * + * It is safe to flush even those decoders that are not marked with + * CODEC_CAP_DELAY, then no samples will be returned. * * @warning The input buffer, avpkt->data must be FF_INPUT_BUFFER_PADDING_SIZE * larger than the actual read bytes because some optimized bitstream -- 2.3.2 _______________________________________________ libav-devel mailing list [email protected] https://lists.libav.org/mailman/listinfo/libav-devel
