[SCM] libav/experimental: Resize data and linesize in AVFilterBufferRef to 8.

siretart at users.alioth.debian.org siretart at users.alioth.debian.org
Sun Jun 30 17:13:59 UTC 2013


The following commit has been merged in the experimental branch:
commit c1db7bff66182d9e3fe48b122345ef92f011ae39
Author: S.N. Hemanth Meenakshisundaram <smeenaks at ucsd.edu>
Date:   Wed Aug 11 15:25:42 2010 +0000

    Resize data and linesize in AVFilterBufferRef to 8.
    
    This is required to make AVFilterBufferRef able to contain also audio
    data, required by audio filtering integration.
    
    Patch by S.N. Hemanth Meenakshisundaram smeen?ks at ucsd.ed?.
    
    Originally committed as revision 24773 to svn://svn.ffmpeg.org/ffmpeg/trunk

diff --git a/ffplay.c b/ffplay.c
index 0c75c41..b6f2156 100644
--- a/ffplay.c
+++ b/ffplay.c
@@ -1670,8 +1670,9 @@ static int input_request_frame(AVFilterLink *link)
         picref = avfilter_ref_buffer(priv->frame->opaque, ~0);
     } else {
         picref = avfilter_get_video_buffer(link, AV_PERM_WRITE, link->w, link->h);
-        av_picture_copy((AVPicture *)&picref->data, (AVPicture *)priv->frame,
-                        picref->format, link->w, link->h);
+        av_picture_data_copy(picref->data, picref->linesize,
+                             priv->frame->data, priv->frame->linesize,
+                             picref->format, link->w, link->h);
     }
     av_free_packet(&pkt);
 
diff --git a/libavfilter/avfilter.h b/libavfilter/avfilter.h
index 0045215..ec02e36 100644
--- a/libavfilter/avfilter.h
+++ b/libavfilter/avfilter.h
@@ -25,7 +25,7 @@
 #include "libavutil/avutil.h"
 
 #define LIBAVFILTER_VERSION_MAJOR  1
-#define LIBAVFILTER_VERSION_MINOR 33
+#define LIBAVFILTER_VERSION_MINOR 34
 #define LIBAVFILTER_VERSION_MICRO  0
 
 #define LIBAVFILTER_VERSION_INT AV_VERSION_INT(LIBAVFILTER_VERSION_MAJOR, \
@@ -113,8 +113,8 @@ typedef struct AVFilterBufferRefVideoProps
 typedef struct AVFilterBufferRef
 {
     AVFilterBuffer *buf;        ///< the buffer that this is a reference to
-    uint8_t *data[4];           ///< picture data for each plane
-    int linesize[4];            ///< number of bytes per line
+    uint8_t *data[8];           ///< picture data for each plane
+    int linesize[8];            ///< number of bytes per line
     int format;                 ///< media format
 
     int64_t pts;                ///< presentation timestamp in units of 1/AV_TIME_BASE
diff --git a/libavfilter/defaults.c b/libavfilter/defaults.c
index 2140436..e275982 100644
--- a/libavfilter/defaults.c
+++ b/libavfilter/defaults.c
@@ -60,8 +60,8 @@ AVFilterBufferRef *avfilter_default_get_video_buffer(AVFilterLink *link, int per
                                     // SIMD-friendly
     av_fill_image_pointers(pic->data, ref->format, ref->video->h, buf, pic->linesize);
 
-    memcpy(ref->data,     pic->data,     4*sizeof(pic->data[0]));
-    memcpy(ref->linesize, pic->linesize, 4*sizeof(pic->linesize[0]));
+    memcpy(ref->data,     pic->data,     sizeof(ref->data));
+    memcpy(ref->linesize, pic->linesize, sizeof(ref->linesize));
 
     return ref;
 }
diff --git a/libavfilter/vsrc_buffer.c b/libavfilter/vsrc_buffer.c
index f4761f9..03cf5ec 100644
--- a/libavfilter/vsrc_buffer.c
+++ b/libavfilter/vsrc_buffer.c
@@ -119,8 +119,9 @@ static int request_frame(AVFilterLink *link)
                                        AV_PERM_REUSE2,
                                        link->w, link->h);
 
-    av_picture_copy((AVPicture *)&picref->data, (AVPicture *)&c->frame,
-                    picref->format, link->w, link->h);
+    av_picture_data_copy(picref->data, picref->linesize,
+                         c->frame.data, c->frame.linesize,
+                         picref->format, link->w, link->h);
 
     picref->pts                    = c->pts;
     picref->video->pixel_aspect    = c->pixel_aspect;

-- 
Libav/FFmpeg packaging



More information about the pkg-multimedia-commits mailing list