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

wm4 nfxjfg at googlemail.com
Sat Mar 24 23:46:29 EET 2018


On Sat, 24 Mar 2018 18:11:53 -0300
James Almer <jamrial at gmail.com> wrote:

> 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);
> 
> Or
> 

> int av_packet_resize(AVPacket *pkt, int size);

Seems better.

> 
> The latter would be a combination of both the current shrink and grow
> functions.
> 
>  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)
>          return;
>      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);
>  }
>  

LGTM


More information about the ffmpeg-devel mailing list