[FFmpeg-devel] [PATCH] avcodec/avpacket: ensure the packet is writable in av_shrink_packet()

James Almer jamrial at gmail.com
Sat Mar 24 23:11:53 EET 2018

Signed-off-by: James Almer <jamrial at gmail.com>
This is a good time to deprecate this function and introduce a
replacement using the correct av_packet namespace and this time
returning an int.
What would be better

int av_packet_shrink(AVPacket *pkt, int size);


int av_packet_resize(AVPacket *pkt, int size);

The latter would be a combination of both the current shrink and grow

 libavcodec/avpacket.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/libavcodec/avpacket.c b/libavcodec/avpacket.c
index 0693ca6f62..7faa082395 100644
--- a/libavcodec/avpacket.c
+++ b/libavcodec/avpacket.c
@@ -100,9 +100,12 @@ int av_new_packet(AVPacket *pkt, int size)
 void av_shrink_packet(AVPacket *pkt, int size)
+    int packet_is_writable;
     if (pkt->size <= size)
     pkt->size = size;
+    packet_is_writable = !av_packet_make_writable(pkt);
+    av_assert0(packet_is_writable);
     memset(pkt->data + size, 0, AV_INPUT_BUFFER_PADDING_SIZE);

More information about the ffmpeg-devel mailing list