diff options
author | Reimar Döffinger <Reimar.Doeffinger@gmx.de> | 2009-03-21 10:25:20 +0000 |
---|---|---|
committer | Reimar Döffinger <Reimar.Doeffinger@gmx.de> | 2009-03-21 10:25:20 +0000 |
commit | 899a8fa1cb1a102cc0dd3089a870c3af83d3bf81 (patch) | |
tree | 4c0f1f08df824e3ab591af38795bd6fa1021534c /libavcodec/imgconvert.c | |
parent | 6f348086914992ca739eb57d2233593ef766218d (diff) | |
download | ffmpeg-899a8fa1cb1a102cc0dd3089a870c3af83d3bf81.tar.gz |
Fix avpicture_get_size for non-paletted formats with a helper palette
to not include the size of that palette.
Also clarify its documentation.
Originally committed as revision 18106 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavcodec/imgconvert.c')
-rw-r--r-- | libavcodec/imgconvert.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/libavcodec/imgconvert.c b/libavcodec/imgconvert.c index f68105e54b..576da86ae5 100644 --- a/libavcodec/imgconvert.c +++ b/libavcodec/imgconvert.c @@ -786,6 +786,17 @@ int avpicture_layout(const AVPicture* src, int pix_fmt, int width, int height, int avpicture_get_size(int pix_fmt, int width, int height) { AVPicture dummy_pict; + if(avcodec_check_dimensions(NULL, width, height)) + return -1; + switch (pix_fmt) { + case PIX_FMT_RGB8: + case PIX_FMT_BGR8: + case PIX_FMT_RGB4_BYTE: + case PIX_FMT_BGR4_BYTE: + case PIX_FMT_GRAY8: + // do not include palette for these pseudo-paletted formats + return width * height; + } return avpicture_fill(&dummy_pict, NULL, pix_fmt, width, height); } @@ -1125,7 +1136,7 @@ int avpicture_alloc(AVPicture *picture, int size; void *ptr; - size = avpicture_get_size(pix_fmt, width, height); + size = avpicture_fill(picture, NULL, pix_fmt, width, height); if(size<0) goto fail; ptr = av_malloc(size); |