Patch by S.N. Hemanth Meenakshisundaram |smeenaks|ucsd|edu|.
Originally committed as revision 24728 to svn://svn.ffmpeg.org/ffmpeg/trunk
... | ... |
@@ -1585,8 +1585,8 @@ static int input_get_buffer(AVCodecContext *codec, AVFrame *pic) |
1585 | 1585 |
ref->w = codec->width; |
1586 | 1586 |
ref->h = codec->height; |
1587 | 1587 |
for(i = 0; i < 4; i ++) { |
1588 |
- unsigned hshift = (i == 1 || i == 2) ? av_pix_fmt_descriptors[ref->pic->format].log2_chroma_w : 0; |
|
1589 |
- unsigned vshift = (i == 1 || i == 2) ? av_pix_fmt_descriptors[ref->pic->format].log2_chroma_h : 0; |
|
1588 |
+ unsigned hshift = (i == 1 || i == 2) ? av_pix_fmt_descriptors[ref->format].log2_chroma_w : 0; |
|
1589 |
+ unsigned vshift = (i == 1 || i == 2) ? av_pix_fmt_descriptors[ref->format].log2_chroma_h : 0; |
|
1590 | 1590 |
|
1591 | 1591 |
if (ref->data[i]) { |
1592 | 1592 |
ref->data[i] += (edge >> hshift) + ((edge * ref->linesize[i]) >> vshift); |
... | ... |
@@ -1617,7 +1617,7 @@ static int input_reget_buffer(AVCodecContext *codec, AVFrame *pic) |
1617 | 1617 |
} |
1618 | 1618 |
|
1619 | 1619 |
if ((codec->width != ref->w) || (codec->height != ref->h) || |
1620 |
- (codec->pix_fmt != ref->pic->format)) { |
|
1620 |
+ (codec->pix_fmt != ref->format)) { |
|
1621 | 1621 |
av_log(codec, AV_LOG_ERROR, "Picture properties changed.\n"); |
1622 | 1622 |
return -1; |
1623 | 1623 |
} |
... | ... |
@@ -1671,7 +1671,7 @@ static int input_request_frame(AVFilterLink *link) |
1671 | 1671 |
} else { |
1672 | 1672 |
picref = avfilter_get_video_buffer(link, AV_PERM_WRITE, link->w, link->h); |
1673 | 1673 |
av_picture_copy((AVPicture *)&picref->data, (AVPicture *)priv->frame, |
1674 |
- picref->pic->format, link->w, link->h); |
|
1674 |
+ picref->format, link->w, link->h); |
|
1675 | 1675 |
} |
1676 | 1676 |
av_free_packet(&pkt); |
1677 | 1677 |
|
... | ... |
@@ -25,8 +25,8 @@ |
25 | 25 |
#include "libavutil/avutil.h" |
26 | 26 |
|
27 | 27 |
#define LIBAVFILTER_VERSION_MAJOR 1 |
28 |
-#define LIBAVFILTER_VERSION_MINOR 27 |
|
29 |
-#define LIBAVFILTER_VERSION_MICRO 1 |
|
28 |
+#define LIBAVFILTER_VERSION_MINOR 28 |
|
29 |
+#define LIBAVFILTER_VERSION_MICRO 0 |
|
30 | 30 |
|
31 | 31 |
#define LIBAVFILTER_VERSION_INT AV_VERSION_INT(LIBAVFILTER_VERSION_MAJOR, \ |
32 | 32 |
LIBAVFILTER_VERSION_MINOR, \ |
... | ... |
@@ -68,7 +68,6 @@ typedef struct AVFilterBuffer |
68 | 68 |
{ |
69 | 69 |
uint8_t *data[8]; ///< buffer data for each plane/channel |
70 | 70 |
int linesize[8]; ///< number of bytes per line |
71 |
- int format; ///< media format |
|
72 | 71 |
|
73 | 72 |
unsigned refcount; ///< number of references to this buffer |
74 | 73 |
|
... | ... |
@@ -104,6 +103,7 @@ typedef struct AVFilterPicRef |
104 | 104 |
int linesize[4]; ///< number of bytes per line |
105 | 105 |
int w; ///< image width |
106 | 106 |
int h; ///< image height |
107 |
+ int format; ///< media format |
|
107 | 108 |
|
108 | 109 |
int64_t pts; ///< presentation timestamp in units of 1/AV_TIME_BASE |
109 | 110 |
int64_t pos; ///< byte position in stream, -1 if unknown |
... | ... |
@@ -47,17 +47,17 @@ AVFilterPicRef *avfilter_default_get_video_buffer(AVFilterLink *link, int perms, |
47 | 47 |
ref->perms = perms | AV_PERM_READ; |
48 | 48 |
|
49 | 49 |
pic->refcount = 1; |
50 |
- pic->format = link->format; |
|
50 |
+ ref->format = link->format; |
|
51 | 51 |
pic->free = avfilter_default_free_buffer; |
52 |
- av_fill_image_linesizes(pic->linesize, pic->format, ref->w); |
|
52 |
+ av_fill_image_linesizes(pic->linesize, ref->format, ref->w); |
|
53 | 53 |
|
54 | 54 |
for (i=0; i<4;i++) |
55 | 55 |
pic->linesize[i] = FFALIGN(pic->linesize[i], 16); |
56 | 56 |
|
57 |
- tempsize = av_fill_image_pointers(pic->data, pic->format, ref->h, NULL, pic->linesize); |
|
57 |
+ tempsize = av_fill_image_pointers(pic->data, ref->format, ref->h, NULL, pic->linesize); |
|
58 | 58 |
buf = av_malloc(tempsize + 16); // +2 is needed for swscaler, +16 to be |
59 | 59 |
// SIMD-friendly |
60 |
- av_fill_image_pointers(pic->data, pic->format, ref->h, buf, pic->linesize); |
|
60 |
+ av_fill_image_pointers(pic->data, ref->format, ref->h, buf, pic->linesize); |
|
61 | 61 |
|
62 | 62 |
memcpy(ref->data, pic->data, 4*sizeof(pic->data[0])); |
63 | 63 |
memcpy(ref->linesize, pic->linesize, 4*sizeof(pic->linesize[0])); |
... | ... |
@@ -120,7 +120,7 @@ static int request_frame(AVFilterLink *link) |
120 | 120 |
link->w, link->h); |
121 | 121 |
|
122 | 122 |
av_picture_copy((AVPicture *)&picref->data, (AVPicture *)&c->frame, |
123 |
- picref->pic->format, link->w, link->h); |
|
123 |
+ picref->format, link->w, link->h); |
|
124 | 124 |
|
125 | 125 |
picref->pts = c->pts; |
126 | 126 |
picref->pixel_aspect = c->pixel_aspect; |