Add w,h,format back into AVFilterBuffer, these are required for direct rendering.

These fields are needed to be able to know which area of memory is allocated and
which is off limits.
This reverts 24291 and parts of r24424.

Originally committed as revision 26314 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
Michael Niedermayer 2011-01-11 23:53:17 +00:00
parent 4618637aca
commit 36dc00de52
2 changed files with 7 additions and 4 deletions

View File

@ -283,15 +283,15 @@ avfilter_get_video_buffer_ref_from_arrays(uint8_t *data[4], int linesize[4], int
if (!(picref->video = av_mallocz(sizeof(AVFilterBufferRefVideoProps))))
goto fail;
picref->video->w = w;
picref->video->h = h;
pic->w = picref->video->w = w;
pic->h = picref->video->h = h;
/* make sure the buffer gets read permission or it's useless for output */
picref->perms = perms | AV_PERM_READ;
pic->refcount = 1;
picref->type = AVMEDIA_TYPE_VIDEO;
picref->format = format;
pic->format = picref->format = format;
memcpy(pic->data, data, sizeof(pic->data));
memcpy(pic->linesize, linesize, sizeof(pic->linesize));

View File

@ -27,7 +27,7 @@
#include "libavcore/samplefmt.h"
#define LIBAVFILTER_VERSION_MAJOR 1
#define LIBAVFILTER_VERSION_MINOR 72
#define LIBAVFILTER_VERSION_MINOR 73
#define LIBAVFILTER_VERSION_MICRO 0
#define LIBAVFILTER_VERSION_INT AV_VERSION_INT(LIBAVFILTER_VERSION_MAJOR, \
@ -80,6 +80,9 @@ typedef struct AVFilterBuffer {
* reallocating it from scratch.
*/
void (*free)(struct AVFilterBuffer *buf);
int format; ///< media format
int w, h; ///< width and height of the allocated buffer
} AVFilterBuffer;
#define AV_PERM_READ 0x01 ///< can read from the buffer