mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2025-02-17 04:17:05 +00:00
pixdesc: add av_get_padded_bits_per_pixel()
This will be needed to allow removing the PixFmtInfo table Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
parent
ad9333d5ef
commit
649d8bd8a5
@ -1712,6 +1712,26 @@ int av_get_bits_per_pixel(const AVPixFmtDescriptor *pixdesc)
|
|||||||
return bits >> log2_pixels;
|
return bits >> log2_pixels;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int av_get_padded_bits_per_pixel(const AVPixFmtDescriptor *pixdesc)
|
||||||
|
{
|
||||||
|
int c, bits = 0;
|
||||||
|
int log2_pixels = pixdesc->log2_chroma_w + pixdesc->log2_chroma_h;
|
||||||
|
int steps[4] = {0};
|
||||||
|
|
||||||
|
for (c = 0; c < pixdesc->nb_components; c++) {
|
||||||
|
AVComponentDescriptor *comp = &pixdesc->comp[c];
|
||||||
|
int s = c == 1 || c == 2 ? 0 : log2_pixels;
|
||||||
|
steps[comp->plane] = (comp->step_minus1 + 1) << s;
|
||||||
|
}
|
||||||
|
for (c = 0; c < 4; c++)
|
||||||
|
bits += steps[c];
|
||||||
|
|
||||||
|
if(!(pixdesc->flags & PIX_FMT_BITSTREAM))
|
||||||
|
bits *= 8;
|
||||||
|
|
||||||
|
return bits >> log2_pixels;
|
||||||
|
}
|
||||||
|
|
||||||
char *av_get_pix_fmt_string (char *buf, int buf_size, enum AVPixelFormat pix_fmt)
|
char *av_get_pix_fmt_string (char *buf, int buf_size, enum AVPixelFormat pix_fmt)
|
||||||
{
|
{
|
||||||
/* print header */
|
/* print header */
|
||||||
|
@ -188,6 +188,12 @@ char *av_get_pix_fmt_string (char *buf, int buf_size, enum AVPixelFormat pix_fmt
|
|||||||
*/
|
*/
|
||||||
int av_get_bits_per_pixel(const AVPixFmtDescriptor *pixdesc);
|
int av_get_bits_per_pixel(const AVPixFmtDescriptor *pixdesc);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return the number of bits per pixel for the pixel format
|
||||||
|
* described by pixdesc, including any padding or unused bits.
|
||||||
|
*/
|
||||||
|
int av_get_padded_bits_per_pixel(const AVPixFmtDescriptor *pixdesc);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return a pixel format descriptor for provided pixel format or NULL if
|
* @return a pixel format descriptor for provided pixel format or NULL if
|
||||||
* this pixel format is unknown.
|
* this pixel format is unknown.
|
||||||
|
Loading…
Reference in New Issue
Block a user