Commit 494945cb authored by Michael Niedermayer's avatar Michael Niedermayer

Merge commit 'd1d9efaa'

* commit 'd1d9efaa':
  avcodec: split avpicture from imgconvert
  pixdesc: add PIX_FMT_ALPHA flag

Conflicts:
	libavcodec/imgconvert.c
Merged-by: 's avatarMichael Niedermayer <michaelni@gmx.at>
parents 4bf3bc6f d1d9efaa
...@@ -16,6 +16,7 @@ HEADERS = avcodec.h \ ...@@ -16,6 +16,7 @@ HEADERS = avcodec.h \
OBJS = allcodecs.o \ OBJS = allcodecs.o \
audioconvert.o \ audioconvert.o \
avpacket.o \ avpacket.o \
avpicture.o \
bitstream.o \ bitstream.o \
bitstream_filter.o \ bitstream_filter.o \
codec_desc.o \ codec_desc.o \
......
/*
* AVPicture management routines
* Copyright (c) 2001, 2002, 2003 Fabrice Bellard
*
* This file is part of FFmpeg.
*
* FFmpeg is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* FFmpeg is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with FFmpeg; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
/**
* @file
* AVPicture management routines
*/
#include "avcodec.h"
#include "internal.h"
#include "libavutil/common.h"
#include "libavutil/pixdesc.h"
#include "libavutil/imgutils.h"
#include "libavutil/colorspace.h"
int avpicture_fill(AVPicture *picture, const uint8_t *ptr,
enum AVPixelFormat pix_fmt, int width, int height)
{
return av_image_fill_arrays(picture->data, picture->linesize,
ptr, pix_fmt, width, height, 1);
}
int avpicture_layout(const AVPicture* src, enum AVPixelFormat pix_fmt, int width, int height,
unsigned char *dest, int dest_size)
{
return av_image_copy_to_buffer(dest, dest_size,
(const uint8_t * const*)src->data, src->linesize,
pix_fmt, width, height, 1);
}
int avpicture_get_size(enum AVPixelFormat pix_fmt, int width, int height)
{
return av_image_get_buffer_size(pix_fmt, width, height, 1);
}
int avpicture_alloc(AVPicture *picture,
enum AVPixelFormat pix_fmt, int width, int height)
{
int ret = av_image_alloc(picture->data, picture->linesize,
width, height, pix_fmt, 1);
if (ret < 0) {
memset(picture, 0, sizeof(AVPicture));
return ret;
}
return 0;
}
void avpicture_free(AVPicture *picture)
{
av_free(picture->data[0]);
}
void av_picture_copy(AVPicture *dst, const AVPicture *src,
enum AVPixelFormat pix_fmt, int width, int height)
{
av_image_copy(dst->data, dst->linesize, (const uint8_t **)src->data,
src->linesize, pix_fmt, width, height);
}
...@@ -433,26 +433,6 @@ void avcodec_get_chroma_sub_sample(enum AVPixelFormat pix_fmt, int *h_shift, int ...@@ -433,26 +433,6 @@ void avcodec_get_chroma_sub_sample(enum AVPixelFormat pix_fmt, int *h_shift, int
*v_shift = desc->log2_chroma_h; *v_shift = desc->log2_chroma_h;
} }
int avpicture_fill(AVPicture *picture, const uint8_t *ptr,
enum AVPixelFormat pix_fmt, int width, int height)
{
return av_image_fill_arrays(picture->data, picture->linesize,
ptr, pix_fmt, width, height, 1);
}
int avpicture_layout(const AVPicture* src, enum AVPixelFormat pix_fmt, int width, int height,
unsigned char *dest, int dest_size)
{
return av_image_copy_to_buffer(dest, dest_size,
(const uint8_t * const*)src->data, src->linesize,
pix_fmt, width, height, 1);
}
int avpicture_get_size(enum AVPixelFormat pix_fmt, int width, int height)
{
return av_image_get_buffer_size(pix_fmt, width, height, 1);
}
static int get_pix_fmt_depth(int *min, int *max, enum AVPixelFormat pix_fmt) static int get_pix_fmt_depth(int *min, int *max, enum AVPixelFormat pix_fmt)
{ {
const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(pix_fmt); const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(pix_fmt);
...@@ -635,13 +615,6 @@ enum AVPixelFormat avcodec_find_best_pix_fmt_of_list(enum AVPixelFormat *pix_fmt ...@@ -635,13 +615,6 @@ enum AVPixelFormat avcodec_find_best_pix_fmt_of_list(enum AVPixelFormat *pix_fmt
return best; return best;
} }
void av_picture_copy(AVPicture *dst, const AVPicture *src,
enum AVPixelFormat pix_fmt, int width, int height)
{
av_image_copy(dst->data, dst->linesize, (const uint8_t **)src->data,
src->linesize, pix_fmt, width, height);
}
/* 2x2 -> 1x1 */ /* 2x2 -> 1x1 */
void ff_shrink22(uint8_t *dst, int dst_wrap, void ff_shrink22(uint8_t *dst, int dst_wrap,
const uint8_t *src, int src_wrap, const uint8_t *src, int src_wrap,
...@@ -728,25 +701,6 @@ void ff_shrink88(uint8_t *dst, int dst_wrap, ...@@ -728,25 +701,6 @@ void ff_shrink88(uint8_t *dst, int dst_wrap,
} }
} }
int avpicture_alloc(AVPicture *picture,
enum AVPixelFormat pix_fmt, int width, int height)
{
int ret;
if ((ret = av_image_alloc(picture->data, picture->linesize, width, height, pix_fmt, 1)) < 0) {
memset(picture, 0, sizeof(AVPicture));
return ret;
}
return 0;
}
void avpicture_free(AVPicture *picture)
{
av_free(picture->data[0]);
}
/* return true if yuv planar */ /* return true if yuv planar */
static inline int is_yuv_planar(enum AVPixelFormat fmt) static inline int is_yuv_planar(enum AVPixelFormat fmt)
{ {
......
...@@ -141,7 +141,7 @@ int ff_draw_init(FFDrawContext *draw, enum AVPixelFormat format, unsigned flags) ...@@ -141,7 +141,7 @@ int ff_draw_init(FFDrawContext *draw, enum AVPixelFormat format, unsigned flags)
if (!desc->name) if (!desc->name)
return AVERROR(EINVAL); return AVERROR(EINVAL);
if (desc->flags & ~(PIX_FMT_PLANAR | PIX_FMT_RGB | PIX_FMT_PSEUDOPAL)) if (desc->flags & ~(PIX_FMT_PLANAR | PIX_FMT_RGB | PIX_FMT_PSEUDOPAL | PIX_FMT_ALPHA))
return AVERROR(ENOSYS); return AVERROR(ENOSYS);
for (i = 0; i < desc->nb_components; i++) { for (i = 0; i < desc->nb_components; i++) {
c = &desc->comp[i]; c = &desc->comp[i];
......
...@@ -436,7 +436,7 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = { ...@@ -436,7 +436,7 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
{ 0, 3, 4, 0, 7 }, /* B */ { 0, 3, 4, 0, 7 }, /* B */
{ 0, 3, 1, 0, 7 }, /* A */ { 0, 3, 1, 0, 7 }, /* A */
}, },
.flags = PIX_FMT_RGB, .flags = PIX_FMT_RGB | PIX_FMT_ALPHA,
}, },
[AV_PIX_FMT_RGBA] = { [AV_PIX_FMT_RGBA] = {
.name = "rgba", .name = "rgba",
...@@ -449,7 +449,7 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = { ...@@ -449,7 +449,7 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
{ 0, 3, 3, 0, 7 }, /* B */ { 0, 3, 3, 0, 7 }, /* B */
{ 0, 3, 4, 0, 7 }, /* A */ { 0, 3, 4, 0, 7 }, /* A */
}, },
.flags = PIX_FMT_RGB, .flags = PIX_FMT_RGB | PIX_FMT_ALPHA,
}, },
[AV_PIX_FMT_ABGR] = { [AV_PIX_FMT_ABGR] = {
.name = "abgr", .name = "abgr",
...@@ -462,7 +462,7 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = { ...@@ -462,7 +462,7 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
{ 0, 3, 2, 0, 7 }, /* B */ { 0, 3, 2, 0, 7 }, /* B */
{ 0, 3, 1, 0, 7 }, /* A */ { 0, 3, 1, 0, 7 }, /* A */
}, },
.flags = PIX_FMT_RGB, .flags = PIX_FMT_RGB | PIX_FMT_ALPHA,
}, },
[AV_PIX_FMT_BGRA] = { [AV_PIX_FMT_BGRA] = {
.name = "bgra", .name = "bgra",
...@@ -525,7 +525,7 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = { ...@@ -525,7 +525,7 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
{ 0, 3, 1, 0, 7 }, /* B */ { 0, 3, 1, 0, 7 }, /* B */
{ 0, 3, 4, 0, 7 }, /* A */ { 0, 3, 4, 0, 7 }, /* A */
}, },
.flags = PIX_FMT_RGB, .flags = PIX_FMT_RGB | PIX_FMT_ALPHA,
}, },
[AV_PIX_FMT_GRAY16BE] = { [AV_PIX_FMT_GRAY16BE] = {
.name = "gray16be", .name = "gray16be",
...@@ -581,7 +581,7 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = { ...@@ -581,7 +581,7 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
{ 2, 0, 1, 0, 7 }, /* V */ { 2, 0, 1, 0, 7 }, /* V */
{ 3, 0, 1, 0, 7 }, /* A */ { 3, 0, 1, 0, 7 }, /* A */
}, },
.flags = PIX_FMT_PLANAR, .flags = PIX_FMT_PLANAR | PIX_FMT_ALPHA,
}, },
[AV_PIX_FMT_YUVA422P] = { [AV_PIX_FMT_YUVA422P] = {
.name = "yuva422p", .name = "yuva422p",
...@@ -594,7 +594,7 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = { ...@@ -594,7 +594,7 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
{ 2, 0, 1, 0, 7 }, /* V */ { 2, 0, 1, 0, 7 }, /* V */
{ 3, 0, 1, 0, 7 }, /* A */ { 3, 0, 1, 0, 7 }, /* A */
}, },
.flags = PIX_FMT_PLANAR, .flags = PIX_FMT_PLANAR | PIX_FMT_ALPHA,
}, },
[AV_PIX_FMT_YUVA444P] = { [AV_PIX_FMT_YUVA444P] = {
.name = "yuva444p", .name = "yuva444p",
...@@ -607,7 +607,7 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = { ...@@ -607,7 +607,7 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
{ 2, 0, 1, 0, 7 }, /* V */ { 2, 0, 1, 0, 7 }, /* V */
{ 3, 0, 1, 0, 7 }, /* A */ { 3, 0, 1, 0, 7 }, /* A */
}, },
.flags = PIX_FMT_PLANAR, .flags = PIX_FMT_PLANAR | PIX_FMT_ALPHA,
}, },
[AV_PIX_FMT_YUVA420P9BE] = { [AV_PIX_FMT_YUVA420P9BE] = {
.name = "yuva420p9be", .name = "yuva420p9be",
...@@ -633,7 +633,7 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = { ...@@ -633,7 +633,7 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
{ 2, 1, 1, 0, 8 }, /* V */ { 2, 1, 1, 0, 8 }, /* V */
{ 3, 1, 1, 0, 8 }, /* A */ { 3, 1, 1, 0, 8 }, /* A */
}, },
.flags = PIX_FMT_PLANAR, .flags = PIX_FMT_PLANAR | PIX_FMT_ALPHA,
}, },
[AV_PIX_FMT_YUVA422P9BE] = { [AV_PIX_FMT_YUVA422P9BE] = {
.name = "yuva422p9be", .name = "yuva422p9be",
...@@ -646,7 +646,7 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = { ...@@ -646,7 +646,7 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
{ 2, 1, 1, 0, 8 }, /* V */ { 2, 1, 1, 0, 8 }, /* V */
{ 3, 1, 1, 0, 8 }, /* A */ { 3, 1, 1, 0, 8 }, /* A */
}, },
.flags = PIX_FMT_BE | PIX_FMT_PLANAR, .flags = PIX_FMT_BE | PIX_FMT_PLANAR | PIX_FMT_ALPHA,
}, },
[AV_PIX_FMT_YUVA422P9LE] = { [AV_PIX_FMT_YUVA422P9LE] = {
.name = "yuva422p9le", .name = "yuva422p9le",
...@@ -659,7 +659,7 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = { ...@@ -659,7 +659,7 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
{ 2, 1, 1, 0, 8 }, /* V */ { 2, 1, 1, 0, 8 }, /* V */
{ 3, 1, 1, 0, 8 }, /* A */ { 3, 1, 1, 0, 8 }, /* A */
}, },
.flags = PIX_FMT_PLANAR, .flags = PIX_FMT_PLANAR | PIX_FMT_ALPHA,
}, },
[AV_PIX_FMT_YUVA444P9BE] = { [AV_PIX_FMT_YUVA444P9BE] = {
.name = "yuva444p9be", .name = "yuva444p9be",
...@@ -672,7 +672,7 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = { ...@@ -672,7 +672,7 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
{ 2, 1, 1, 0, 8 }, /* V */ { 2, 1, 1, 0, 8 }, /* V */
{ 3, 1, 1, 0, 8 }, /* A */ { 3, 1, 1, 0, 8 }, /* A */
}, },
.flags = PIX_FMT_BE | PIX_FMT_PLANAR, .flags = PIX_FMT_BE | PIX_FMT_PLANAR | PIX_FMT_ALPHA,
}, },
[AV_PIX_FMT_YUVA444P9LE] = { [AV_PIX_FMT_YUVA444P9LE] = {
.name = "yuva444p9le", .name = "yuva444p9le",
...@@ -685,7 +685,7 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = { ...@@ -685,7 +685,7 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
{ 2, 1, 1, 0, 8 }, /* V */ { 2, 1, 1, 0, 8 }, /* V */
{ 3, 1, 1, 0, 8 }, /* A */ { 3, 1, 1, 0, 8 }, /* A */
}, },
.flags = PIX_FMT_PLANAR, .flags = PIX_FMT_PLANAR | PIX_FMT_ALPHA,
}, },
[AV_PIX_FMT_YUVA420P10BE] = { [AV_PIX_FMT_YUVA420P10BE] = {
.name = "yuva420p10be", .name = "yuva420p10be",
...@@ -698,7 +698,7 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = { ...@@ -698,7 +698,7 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
{ 2, 1, 1, 0, 9 }, /* V */ { 2, 1, 1, 0, 9 }, /* V */
{ 3, 1, 1, 0, 9 }, /* A */ { 3, 1, 1, 0, 9 }, /* A */
}, },
.flags = PIX_FMT_BE | PIX_FMT_PLANAR, .flags = PIX_FMT_BE | PIX_FMT_PLANAR | PIX_FMT_ALPHA,
}, },
[AV_PIX_FMT_YUVA420P10LE] = { [AV_PIX_FMT_YUVA420P10LE] = {
.name = "yuva420p10le", .name = "yuva420p10le",
...@@ -711,7 +711,7 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = { ...@@ -711,7 +711,7 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
{ 2, 1, 1, 0, 15 }, /* V */ { 2, 1, 1, 0, 15 }, /* V */
{ 3, 1, 1, 0, 15 }, /* A */ { 3, 1, 1, 0, 15 }, /* A */
}, },
.flags = PIX_FMT_PLANAR, .flags = PIX_FMT_PLANAR | PIX_FMT_ALPHA,
}, },
[AV_PIX_FMT_YUVA422P10BE] = { [AV_PIX_FMT_YUVA422P10BE] = {
.name = "yuva422p10be", .name = "yuva422p10be",
...@@ -724,7 +724,7 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = { ...@@ -724,7 +724,7 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
{ 2, 1, 1, 0, 15 }, /* V */ { 2, 1, 1, 0, 15 }, /* V */
{ 3, 1, 1, 0, 15 }, /* A */ { 3, 1, 1, 0, 15 }, /* A */
}, },
.flags = PIX_FMT_BE | PIX_FMT_PLANAR, .flags = PIX_FMT_BE | PIX_FMT_PLANAR | PIX_FMT_ALPHA,
}, },
[AV_PIX_FMT_YUVA422P10LE] = { [AV_PIX_FMT_YUVA422P10LE] = {
.name = "yuva422p10le", .name = "yuva422p10le",
...@@ -737,7 +737,7 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = { ...@@ -737,7 +737,7 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
{ 2, 1, 1, 0, 15 }, /* V */ { 2, 1, 1, 0, 15 }, /* V */
{ 3, 1, 1, 0, 15 }, /* A */ { 3, 1, 1, 0, 15 }, /* A */
}, },
.flags = PIX_FMT_PLANAR, .flags = PIX_FMT_PLANAR | PIX_FMT_ALPHA,
}, },
[AV_PIX_FMT_YUVA444P10BE] = { [AV_PIX_FMT_YUVA444P10BE] = {
.name = "yuva444p10be", .name = "yuva444p10be",
...@@ -750,7 +750,7 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = { ...@@ -750,7 +750,7 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
{ 2, 1, 1, 0, 15 }, /* V */ { 2, 1, 1, 0, 15 }, /* V */
{ 3, 1, 1, 0, 15 }, /* A */ { 3, 1, 1, 0, 15 }, /* A */
}, },
.flags = PIX_FMT_BE | PIX_FMT_PLANAR, .flags = PIX_FMT_BE | PIX_FMT_PLANAR | PIX_FMT_ALPHA,
}, },
[AV_PIX_FMT_YUVA444P10LE] = { [AV_PIX_FMT_YUVA444P10LE] = {
.name = "yuva444p10le", .name = "yuva444p10le",
...@@ -763,7 +763,7 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = { ...@@ -763,7 +763,7 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
{ 2, 1, 1, 0, 15 }, /* V */ { 2, 1, 1, 0, 15 }, /* V */
{ 3, 1, 1, 0, 15 }, /* A */ { 3, 1, 1, 0, 15 }, /* A */
}, },
.flags = PIX_FMT_PLANAR, .flags = PIX_FMT_PLANAR | PIX_FMT_ALPHA,
}, },
[AV_PIX_FMT_YUVA420P16BE] = { [AV_PIX_FMT_YUVA420P16BE] = {
.name = "yuva420p16be", .name = "yuva420p16be",
...@@ -776,7 +776,7 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = { ...@@ -776,7 +776,7 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
{ 2, 1, 1, 0, 15 }, /* V */ { 2, 1, 1, 0, 15 }, /* V */
{ 3, 1, 1, 0, 15 }, /* A */ { 3, 1, 1, 0, 15 }, /* A */
}, },
.flags = PIX_FMT_BE | PIX_FMT_PLANAR, .flags = PIX_FMT_BE | PIX_FMT_PLANAR | PIX_FMT_ALPHA,
}, },
[AV_PIX_FMT_YUVA420P16LE] = { [AV_PIX_FMT_YUVA420P16LE] = {
.name = "yuva420p16le", .name = "yuva420p16le",
...@@ -789,7 +789,7 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = { ...@@ -789,7 +789,7 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
{ 2, 1, 1, 0, 15 }, /* V */ { 2, 1, 1, 0, 15 }, /* V */
{ 3, 1, 1, 0, 15 }, /* A */ { 3, 1, 1, 0, 15 }, /* A */
}, },
.flags = PIX_FMT_PLANAR, .flags = PIX_FMT_PLANAR | PIX_FMT_ALPHA,
}, },
[AV_PIX_FMT_YUVA422P16BE] = { [AV_PIX_FMT_YUVA422P16BE] = {
.name = "yuva422p16be", .name = "yuva422p16be",
...@@ -802,7 +802,7 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = { ...@@ -802,7 +802,7 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
{ 2, 1, 1, 0, 15 }, /* V */ { 2, 1, 1, 0, 15 }, /* V */
{ 3, 1, 1, 0, 15 }, /* A */ { 3, 1, 1, 0, 15 }, /* A */
}, },
.flags = PIX_FMT_BE | PIX_FMT_PLANAR, .flags = PIX_FMT_BE | PIX_FMT_PLANAR | PIX_FMT_ALPHA,
}, },
[AV_PIX_FMT_YUVA422P16LE] = { [AV_PIX_FMT_YUVA422P16LE] = {
.name = "yuva422p16le", .name = "yuva422p16le",
...@@ -815,7 +815,7 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = { ...@@ -815,7 +815,7 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
{ 2, 1, 1, 0, 15 }, /* V */ { 2, 1, 1, 0, 15 }, /* V */
{ 3, 1, 1, 0, 15 }, /* A */ { 3, 1, 1, 0, 15 }, /* A */
}, },
.flags = PIX_FMT_PLANAR, .flags = PIX_FMT_PLANAR | PIX_FMT_ALPHA,
}, },
[AV_PIX_FMT_YUVA444P16BE] = { [AV_PIX_FMT_YUVA444P16BE] = {
.name = "yuva444p16be", .name = "yuva444p16be",
...@@ -828,7 +828,7 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = { ...@@ -828,7 +828,7 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
{ 2, 1, 1, 0, 15 }, /* V */ { 2, 1, 1, 0, 15 }, /* V */
{ 3, 1, 1, 0, 15 }, /* A */ { 3, 1, 1, 0, 15 }, /* A */
}, },
.flags = PIX_FMT_BE | PIX_FMT_PLANAR, .flags = PIX_FMT_BE | PIX_FMT_PLANAR | PIX_FMT_ALPHA,
}, },
[AV_PIX_FMT_YUVA444P16LE] = { [AV_PIX_FMT_YUVA444P16LE] = {
.name = "yuva444p16le", .name = "yuva444p16le",
...@@ -841,7 +841,7 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = { ...@@ -841,7 +841,7 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
{ 2, 1, 1, 0, 15 }, /* V */ { 2, 1, 1, 0, 15 }, /* V */
{ 3, 1, 1, 0, 15 }, /* A */ { 3, 1, 1, 0, 15 }, /* A */
}, },
.flags = PIX_FMT_PLANAR, .flags = PIX_FMT_PLANAR | PIX_FMT_ALPHA,
}, },
[AV_PIX_FMT_VDPAU_H264] = { [AV_PIX_FMT_VDPAU_H264] = {
.name = "vdpau_h264", .name = "vdpau_h264",
...@@ -1520,6 +1520,7 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = { ...@@ -1520,6 +1520,7 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
{ 0, 1, 1, 0, 7 }, /* Y */ { 0, 1, 1, 0, 7 }, /* Y */
{ 0, 1, 2, 0, 7 }, /* A */ { 0, 1, 2, 0, 7 }, /* A */
}, },
.flags = PIX_FMT_ALPHA,
}, },
[AV_PIX_FMT_GBRP] = { [AV_PIX_FMT_GBRP] = {
.name = "gbrp", .name = "gbrp",
......
...@@ -99,6 +99,9 @@ typedef struct AVPixFmtDescriptor{ ...@@ -99,6 +99,9 @@ typedef struct AVPixFmtDescriptor{
*/ */
#define PIX_FMT_PSEUDOPAL 64 #define PIX_FMT_PSEUDOPAL 64
#define PIX_FMT_ALPHA 128 ///< The pixel format has an alpha channel
#if FF_API_PIX_FMT_DESC #if FF_API_PIX_FMT_DESC
/** /**
* The array of all the pixel format descriptors. * The array of all the pixel format descriptors.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment