On 14/05/15 19:47, wm4 wrote:
On Thu, 14 May 2015 19:30:57 +0200
Luca Barbato <[email protected]> wrote:
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
This makes the documentation worse. "Empty" is a rather fuzzy term,
while the old comment explicitly says that data and size must be set to
0.
av_init_packet() does not even set the data and size fields, which is a
huge load of bullshit, but hardcoded into the API/ABI.
I take you like better the patch 2.
lu
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel