You've already forked FFmpeg
							
							
				mirror of
				https://github.com/FFmpeg/FFmpeg.git
				synced 2025-10-30 23:18:11 +02:00 
			
		
		
		
	avutil/imgutils: add new function av_image_fill_color()
Signed-off-by: Marton Balint <cus@passwd.hu>
This commit is contained in:
		| @@ -2,6 +2,9 @@ The last version increases of all libraries were on 2023-02-09 | ||||
|  | ||||
| API changes, most recent first: | ||||
|  | ||||
| 2023-12-xx - xxxxxxxxxxx - lavu 58.33.100 - imgutils.h | ||||
|   Add av_image_fill_color(). | ||||
|  | ||||
| 2023-11-08 - b82957a66a7 - lavu 58.32.100 - channel_layout.h | ||||
|   Add AV_CH_LAYOUT_7POINT2POINT3 and AV_CHANNEL_LAYOUT_7POINT2POINT3. | ||||
|   Add AV_CH_LAYOUT_9POINT1POINT4_BACK and AV_CHANNEL_LAYOUT_9POINT1POINT4_BACK. | ||||
|   | ||||
| @@ -579,9 +579,9 @@ static void memset_bytes(uint8_t *dst, size_t dst_size, uint8_t *clear, | ||||
| // if it's a subsampled packed format). | ||||
| #define MAX_BLOCK_SIZE 32 | ||||
|  | ||||
| static int image_fill_color(uint8_t * const dst_data[4], const ptrdiff_t dst_linesize[4], | ||||
| int av_image_fill_color(uint8_t * const dst_data[4], const ptrdiff_t dst_linesize[4], | ||||
|                         enum AVPixelFormat pix_fmt, const uint32_t color[4], | ||||
|                         int width, int height) | ||||
|                         int width, int height, int flags) | ||||
| { | ||||
|     const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(pix_fmt); | ||||
|     int nb_planes = av_pix_fmt_count_planes(pix_fmt); | ||||
| @@ -713,5 +713,5 @@ int av_image_fill_black(uint8_t * const dst_data[4], const ptrdiff_t dst_linesiz | ||||
|         colors[c] = color; | ||||
|     } | ||||
|  | ||||
|     return image_fill_color(dst_data, dst_linesize, pix_fmt, colors, width, height); | ||||
|     return av_image_fill_color(dst_data, dst_linesize, pix_fmt, colors, width, height, 0); | ||||
| } | ||||
|   | ||||
| @@ -339,6 +339,36 @@ int av_image_fill_black(uint8_t * const dst_data[4], const ptrdiff_t dst_linesiz | ||||
|                         enum AVPixelFormat pix_fmt, enum AVColorRange range, | ||||
|                         int width, int height); | ||||
|  | ||||
| /** | ||||
|  * Overwrite the image data with a color. This is suitable for filling a | ||||
|  * sub-rectangle of an image, meaning the padding between the right most pixel | ||||
|  * and the left most pixel on the next line will not be overwritten. For some | ||||
|  * formats, the image size might be rounded up due to inherent alignment. | ||||
|  * | ||||
|  * If the pixel format has alpha, it is also replaced. Color component values | ||||
|  * are interpreted as native integers (or intfloats) regardless of actual pixel | ||||
|  * format endianness. | ||||
|  * | ||||
|  * This can return an error if the pixel format is not supported. Normally, all | ||||
|  * non-hwaccel pixel formats should be supported. | ||||
|  * | ||||
|  * Passing NULL for dst_data is allowed. Then the function returns whether the | ||||
|  * operation would have succeeded. (It can return an error if the pix_fmt is | ||||
|  * not supported.) | ||||
|  * | ||||
|  * @param dst_data      data pointers to destination image | ||||
|  * @param dst_linesize  linesizes for the destination image | ||||
|  * @param pix_fmt       the pixel format of the image | ||||
|  * @param color         the color components to be used for the fill | ||||
|  * @param width         the width of the image in pixels | ||||
|  * @param height        the height of the image in pixels | ||||
|  * @param flags         currently unused | ||||
|  * @return 0 if the image data was filled, a negative AVERROR code otherwise | ||||
|  */ | ||||
| int av_image_fill_color(uint8_t * const dst_data[4], const ptrdiff_t dst_linesize[4], | ||||
|                         enum AVPixelFormat pix_fmt, const uint32_t color[4], | ||||
|                         int width, int height, int flags); | ||||
|  | ||||
| /** | ||||
|  * @} | ||||
|  */ | ||||
|   | ||||
| @@ -79,7 +79,7 @@ | ||||
|  */ | ||||
|  | ||||
| #define LIBAVUTIL_VERSION_MAJOR  58 | ||||
| #define LIBAVUTIL_VERSION_MINOR  32 | ||||
| #define LIBAVUTIL_VERSION_MINOR  33 | ||||
| #define LIBAVUTIL_VERSION_MICRO 100 | ||||
|  | ||||
| #define LIBAVUTIL_VERSION_INT   AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \ | ||||
|   | ||||
		Reference in New Issue
	
	Block a user