On Thu, 1 Feb 2018, wm4 wrote:

On Thu,  1 Feb 2018 15:02:37 +0200
Martin Storsjö <[email protected]> wrote:

This makes sure that consumers of the side data actually can
rely on the padding as intended, without having the callers of
av_packet_new_side_data to explicitly zero initialize it.
---
 libavcodec/avpacket.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/libavcodec/avpacket.c b/libavcodec/avpacket.c
index 93e9eb6ae7..c705df3d59 100644
--- a/libavcodec/avpacket.c
+++ b/libavcodec/avpacket.c
@@ -271,6 +271,7 @@ uint8_t *av_packet_new_side_data(AVPacket *pkt, enum 
AVPacketSideDataType type,
     data = av_malloc(size + AV_INPUT_BUFFER_PADDING_SIZE);
     if (!data)
         return NULL;
+    memset(data + size, 0, AV_INPUT_BUFFER_PADDING_SIZE);

     ret = av_packet_add_side_data(pkt, type, data, size);
     if (ret < 0) {

+1, though I also have trouble believing that just clearing the entire
thing (including side data contents) would cause any kind of performance
trouble. (I.e. using av_mallocz.)

Yes, that'd probably also be just as nice. The upside with this approach is that tools more easily can point out if you as a caller forgot to initialize the data you actually asked to have allocated for you, but I don't have a very strong opinion either way.

// Martin
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to