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
