[FFmpeg-devel] [PATCH 1/2] avisynth: More av_new_packet changes

Stephen Hutchinson qyot27 at gmail.com
Wed Jan 8 06:37:56 CET 2014


From: Anton Khirnov <anton at khirnov.net>

These are the remaining av_packet-related bits from 9eac7c4
that didn't get merged at that time.

Changes authored by Anton Khirnov <anton at khirnov.net>, split out
from 9eac7c4 by Stephen Hutchinson <qyot27 at gmail.com>
---
 libavformat/avisynth.c | 15 ++++++---------
 1 file changed, 6 insertions(+), 9 deletions(-)

diff --git a/libavformat/avisynth.c b/libavformat/avisynth.c
index 2f438d9..66f85ec 100644
--- a/libavformat/avisynth.c
+++ b/libavformat/avisynth.c
@@ -459,17 +459,16 @@ static int avisynth_read_packet_video(AVFormatContext *s, AVPacket *pkt,
                   (int64_t)avs->vi->height) * bits) / 8;
     if (!pkt->size)
         return AVERROR_UNKNOWN;
-    if (av_new_packet(pkt, (int)pkt->size) < 0) {
-        av_free(pkt);
+
+    if (av_new_packet(pkt, pkt->size) < 0)
         return AVERROR(ENOMEM);
-    }
 
     frame = avs_library.avs_get_frame(avs->clip, n);
     error = avs_library.avs_clip_get_error(avs->clip);
     if (error) {
         av_log(s, AV_LOG_ERROR, "%s\n", error);
         avs->error = 1;
-        av_freep(&pkt->data);
+        av_packet_unref(pkt);
         return AVERROR_UNKNOWN;
     }
 
@@ -558,8 +557,8 @@ static int avisynth_read_packet_audio(AVFormatContext *s, AVPacket *pkt,
                 samples * avs->vi->nchannels;
     if (!pkt->size)
         return AVERROR_UNKNOWN;
-    pkt->data = av_malloc(pkt->size);
-    if (!pkt->data)
+
+    if (av_new_packet(pkt, pkt->size) < 0)
         return AVERROR(ENOMEM);
 
     avs_library.avs_get_audio(avs->clip, pkt->data, n, samples);
@@ -567,7 +566,7 @@ static int avisynth_read_packet_audio(AVFormatContext *s, AVPacket *pkt,
     if (error) {
         av_log(s, AV_LOG_ERROR, "%s\n", error);
         avs->error = 1;
-        av_freep(&pkt->data);
+        av_packet_unref(pkt);
         return AVERROR_UNKNOWN;
     }
     return 0;
@@ -600,8 +599,6 @@ static int avisynth_read_packet(AVFormatContext *s, AVPacket *pkt)
     if (avs->error)
         return AVERROR_UNKNOWN;
 
-    av_free_packet(pkt);
-
     /* If either stream reaches EOF, try to read the other one before
      * giving up. */
     avisynth_next_stream(s, &st, pkt, &discard);
-- 
1.8.3.2



More information about the ffmpeg-devel mailing list