On Thu, May 12, 2016 at 3:44 PM, Andriy Lysnevych <andriy.lysnev...@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 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel