Commit 5efccce2 authored by Stefano Sabatini's avatar Stefano Sabatini

Implement av_get_bits_per_pixel().

Originally committed as revision 18709 to svn://svn.ffmpeg.org/ffmpeg/trunk
parent 85947156
......@@ -581,3 +581,16 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[PIX_FMT_NB] = {
.flags = PIX_FMT_BE,
},
};
int av_get_bits_per_pixel(const AVPixFmtDescriptor *pixdesc)
{
int c, bits = 0;
int log2_pixels = pixdesc->log2_chroma_w + pixdesc->log2_chroma_h;
for (c = 0; c < pixdesc->nb_channels; c++) {
int s = c==1 || c==2 ? 0 : log2_pixels;
bits += (pixdesc->comp[c].depth_minus1+1) << s;
}
return bits >> log2_pixels;
}
......@@ -193,4 +193,14 @@ static inline void write_line(const uint16_t *src, uint8_t *data[4], const int l
}
}
/**
* Returns the number of bits per pixel used by the pixel format
* described by pixdesc.
*
* The returned number of bits refers to the number of bits actually
* used for storing the pixel information, that is padding bits are
* not counted.
*/
int av_get_bits_per_pixel(const AVPixFmtDescriptor *pixdesc);
#endif /* AVCODEC_PIXDESC_H */
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