[FFmpeg-devel] [PATCH] Respect payload offset in av_packet_ref
Hendrik Leppkes
h.leppkes at gmail.com
Thu May 12 15:58:05 CEST 2016
On Thu, May 12, 2016 at 3:44 PM, Andriy Lysnevych
<andriy.lysnevych at gmail.com> wrote:
> Details are in the ticket https://trac.ffmpeg.org/ticket/5543
>
> ---
> libavcodec/avpacket.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/libavcodec/avpacket.c b/libavcodec/avpacket.c
> index dd8b71e..842d8ba 100644
> --- a/libavcodec/avpacket.c
> +++ b/libavcodec/avpacket.c
> @@ -568,16 +568,18 @@ int av_packet_ref(AVPacket *dst, const AVPacket *src)
> if (ret < 0)
> goto fail;
> memcpy(dst->buf->data, src->data, src->size);
> + dst->data = dst->buf->data;
> } else {
> dst->buf = av_buffer_ref(src->buf);
> if (!dst->buf) {
> ret = AVERROR(ENOMEM);
> goto fail;
> }
> + dst->data = dst->buf->data + (src->data - src->buf->data);
av_buffer_ref always returns a clean copy of the source buffer, with
the exact same data buffer.
So, using "dst->data = src->data" is shorter, simpler, and safer.
> }
>
> dst->size = src->size;
> - dst->data = dst->buf->data;
> +
> return 0;
> fail:
> av_packet_free_side_data(dst);
> --
- Hendrik
More information about the ffmpeg-devel
mailing list