1 Star 0 Fork 0

pedoc/FFmpeg

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
compat
doc
ffbuild
fftools
libavcodec
libavdevice
libavfilter
aarch64
cuda
dnn
metal
opencl
tests
x86
.gitignore
Makefile
aeval.c
af_acontrast.c
af_acopy.c
af_acrossover.c
af_acrusher.c
af_adeclick.c
af_adecorrelate.c
af_adelay.c
af_adenorm.c
af_aderivative.c
af_adynamicequalizer.c
af_adynamicsmooth.c
af_aecho.c
af_aemphasis.c
af_aexciter.c
af_afade.c
af_afftdn.c
af_afftfilt.c
af_afir.c
af_afir.h
af_afirdsp.h
af_aformat.c
af_afreqshift.c
af_afwtdn.c
af_agate.c
af_aiir.c
af_alimiter.c
af_amerge.c
af_amix.c
af_amultiply.c
af_anequalizer.c
af_anlmdn.c
af_anlmdndsp.h
af_anlms.c
af_anull.c
af_apad.c
af_aphaser.c
af_apsyclip.c
af_apulsator.c
af_aresample.c
af_arnndn.c
af_asdr.c
af_asetnsamples.c
af_asetrate.c
af_ashowinfo.c
af_asoftclip.c
af_aspectralstats.c
af_asr.c
af_astats.c
af_asubboost.c
af_asupercut.c
af_atempo.c
af_atilt.c
af_axcorrelate.c
af_biquads.c
af_bs2b.c
af_channelmap.c
af_channelsplit.c
af_chorus.c
af_compand.c
af_compensationdelay.c
af_crossfeed.c
af_crystalizer.c
af_dcshift.c
af_deesser.c
af_dialoguenhance.c
af_drmeter.c
af_dynaudnorm.c
af_earwax.c
af_extrastereo.c
af_firequalizer.c
af_flanger.c
af_haas.c
af_hdcd.c
af_headphone.c
af_join.c
af_ladspa.c
af_loudnorm.c
af_lv2.c
af_mcompand.c
af_pan.c
af_replaygain.c
af_rubberband.c
af_sidechaincompress.c
af_silencedetect.c
af_silenceremove.c
af_sofalizer.c
af_speechnorm.c
af_stereotools.c
af_stereowiden.c
af_superequalizer.c
af_surround.c
af_tremolo.c
af_vibrato.c
af_virtualbass.c
af_volume.c
af_volume.h
af_volumedetect.c
afir_template.c
allfilters.c
asink_anullsink.c
asrc_afirsrc.c
asrc_anoisesrc.c
asrc_anullsrc.c
asrc_flite.c
asrc_hilbert.c
asrc_sinc.c
asrc_sine.c
atadenoise.h
audio.c
audio.h
avf_abitscope.c
avf_ahistogram.c
avf_aphasemeter.c
avf_avectorscope.c
avf_concat.c
avf_showcqt.c
avf_showcqt.h
avf_showfreqs.c
avf_showspatial.c
avf_showspectrum.c
avf_showvolume.c
avf_showwaves.c
avfilter.c
avfilter.h
avfiltergraph.c
avfilterres.rc
bbox.c
bbox.h
blend.h
blend_modes.c
boxblur.c
boxblur.h
bufferqueue.h
buffersink.c
buffersink.h
buffersrc.c
buffersrc.h
bwdif.h
colorchannelmixer_template.c
colorspace.c
colorspace.h
colorspacedsp.c
colorspacedsp.h
colorspacedsp_template.c
colorspacedsp_yuv2yuv_template.c
convolution.h
deshake.h
dnn_filter_common.c
dnn_filter_common.h
dnn_interface.h
drawutils.c
drawutils.h
ebur128.c
ebur128.h
edge_common.c
edge_common.h
f_bench.c
f_cue.c
f_drawgraph.c
f_ebur128.c
f_graphmonitor.c
f_interleave.c
f_latency.c
f_loop.c
f_metadata.c
f_perms.c
f_realtime.c
f_reverse.c
f_segment.c
f_select.c
f_sendcmd.c
f_sidedata.c
f_streamselect.c
f_zmq.c
fflcms2.c
fflcms2.h
fifo.c
file_open.c
filters.h
formats.c
formats.h
framepool.c
framepool.h
framequeue.c
framequeue.h
framerate.h
framesync.c
framesync.h
gblur.h
generate_wave_table.c
generate_wave_table.h
gradfun.h
graphdump.c
graphparser.c
hermite.h
hflip.h
internal.h
lavfutils.c
lavfutils.h
libavfilter.v
limiter.h
log2_tab.c
lswsutils.c
lswsutils.h
lut3d.h
maskedclamp.h
maskedmerge.h
median.h
median_template.c
motion_estimation.c
motion_estimation.h
opencl.c
opencl.h
opencl_source.h
phase_template.c
preserve_color.h
psnr.h
pthread.c
qp_table.c
qp_table.h
qsvvpp.c
qsvvpp.h
removegrain.h
scale_eval.c
scale_eval.h
scene_sad.c
scene_sad.h
setpts.c
settb.c
signature.h
signature_lookup.c
split.c
src_avsynctest.c
src_movie.c
ssim.h
stereo3d.h
thread.h
threshold.h
tinterlace.h
transform.c
transform.h
transpose.h
trim.c
unsharp.h
v360.h
vaapi_vpp.c
vaapi_vpp.h
vaf_spectrumsynth.c
version.c
version.h
version_major.h
vf_addroi.c
vf_alphamerge.c
vf_amplify.c
vf_aspect.c
vf_atadenoise.c
vf_avgblur.c
vf_avgblur_opencl.c
vf_avgblur_vulkan.c
vf_bbox.c
vf_bilateral.c
vf_bitplanenoise.c
vf_blackdetect.c
vf_blackframe.c
vf_blend.c
vf_blend_init.h
vf_blend_vulkan.c
vf_blockdetect.c
vf_blurdetect.c
vf_bm3d.c
vf_boxblur.c
vf_bwdif.c
vf_cas.c
vf_chromaber_vulkan.c
vf_chromakey.c
vf_chromakey_cuda.c
vf_chromakey_cuda.cu
vf_chromanr.c
vf_chromashift.c
vf_ciescope.c
vf_codecview.c
vf_colorbalance.c
vf_colorchannelmixer.c
vf_colorconstancy.c
vf_colorcontrast.c
vf_colorcorrect.c
vf_colorize.c
vf_colorkey.c
vf_colorkey_opencl.c
vf_colorlevels.c
vf_colormap.c
vf_colormatrix.c
vf_colorspace.c
vf_colortemperature.c
vf_convolution.c
vf_convolution_opencl.c
vf_convolve.c
vf_copy.c
vf_coreimage.m
vf_cover_rect.c
vf_crop.c
vf_cropdetect.c
vf_curves.c
vf_datascope.c
vf_dblur.c
vf_dctdnoiz.c
vf_deband.c
vf_deblock.c
vf_decimate.c
vf_dedot.c
vf_deflicker.c
vf_deinterlace_qsv.c
vf_deinterlace_vaapi.c
vf_dejudder.c
vf_delogo.c
vf_derain.c
vf_deshake.c
vf_deshake_opencl.c
vf_despill.c
vf_detelecine.c
vf_displace.c
vf_dnn_classify.c
vf_dnn_detect.c
vf_dnn_processing.c
vf_drawbox.c
vf_drawtext.c
vf_edgedetect.c
vf_elbg.c
vf_entropy.c
vf_epx.c
vf_eq.c
vf_eq.h
vf_estdif.c
vf_exposure.c
vf_extractplanes.c
vf_fade.c
vf_feedback.c
vf_fftdnoiz.c
vf_fftfilt.c
vf_field.c
vf_fieldhint.c
vf_fieldmatch.c
vf_fieldorder.c
vf_fillborders.c
vf_find_rect.c
vf_flip_vulkan.c
vf_floodfill.c
vf_format.c
vf_fps.c
vf_framepack.c
vf_framerate.c
vf_framestep.c
vf_freezedetect.c
vf_freezeframes.c
vf_frei0r.c
vf_fspp.c
vf_fspp.h
vf_gblur.c
vf_gblur_init.h
vf_gblur_vulkan.c
vf_geq.c
vf_gradfun.c
vf_grayworld.c
vf_guided.c
vf_hflip.c
vf_hflip_init.h
vf_histeq.c
vf_histogram.c
vf_hqdn3d.c
vf_hqdn3d.h
vf_hqx.c
vf_hsvkey.c
vf_hue.c
vf_huesaturation.c
vf_hwdownload.c
vf_hwmap.c
vf_hwupload.c
vf_hwupload_cuda.c
vf_hysteresis.c
vf_iccdetect.c
vf_iccgen.c
vf_identity.c
vf_idet.c
vf_idet.h
vf_il.c
vf_kerndeint.c
vf_lagfun.c
vf_lenscorrection.c
vf_lensfun.c
vf_libopencv.c
vf_libplacebo.c
vf_libvmaf.c
vf_limitdiff.c
vf_limiter.c
vf_lumakey.c
vf_lut.c
vf_lut2.c
vf_lut3d.c
vf_maskedclamp.c
vf_maskedmerge.c
vf_maskedminmax.c
vf_maskedthreshold.c
vf_maskfun.c
vf_mcdeint.c
vf_median.c
vf_mergeplanes.c
vf_mestimate.c
vf_midequalizer.c
vf_minterpolate.c
vf_misc_vaapi.c
vf_mix.c
vf_monochrome.c
vf_morpho.c
vf_mpdecimate.c
vf_multiply.c
vf_negate.c
vf_neighbor.c
vf_neighbor_opencl.c
vf_nlmeans.c
vf_nlmeans.h
vf_nlmeans_init.h
vf_nlmeans_opencl.c
vf_nnedi.c
vf_noise.c
vf_noise.h
vf_normalize.c
vf_null.c
vf_ocr.c
vf_overlay.c
vf_overlay.h
vf_overlay_cuda.c
vf_overlay_cuda.cu
vf_overlay_opencl.c
vf_overlay_qsv.c
vf_overlay_vaapi.c
vf_overlay_vulkan.c
vf_owdenoise.c
vf_pad.c
vf_pad_opencl.c
vf_palettegen.c
vf_paletteuse.c
vf_perspective.c
vf_phase.c
vf_photosensitivity.c
vf_pixdesctest.c
vf_pixelize.c
vf_pp.c
vf_pp7.c
vf_pp7.h
vf_premultiply.c
vf_procamp_vaapi.c
vf_program_opencl.c
vf_pseudocolor.c
vf_psnr.c
vf_pullup.c
vf_pullup.h
vf_qp.c
vf_random.c
vf_readeia608.c
vf_readvitc.c
vf_remap.c
vf_remap_opencl.c
vf_removegrain.c
vf_removelogo.c
vf_repeatfields.c
vf_rotate.c
vf_sab.c
vf_scale.c
vf_scale_cuda.c
vf_scale_cuda.cu
vf_scale_cuda.h
vf_scale_npp.c
vf_scale_qsv.c
vf_scale_vaapi.c
vf_scale_vulkan.c
vf_scdet.c
vf_scroll.c
vf_selectivecolor.c
vf_separatefields.c
vf_setparams.c
vf_sharpen_npp.c
vf_shear.c
vf_showinfo.c
vf_showpalette.c
vf_shuffleframes.c
vf_shufflepixels.c
vf_shuffleplanes.c
vf_signalstats.c
vf_signature.c
vf_siti.c
vf_smartblur.c
vf_spp.c
vf_spp.h
vf_sr.c
vf_ssim.c
vf_stack.c
vf_stereo3d.c
vf_subtitles.c
vf_super2xsai.c
vf_swaprect.c
vf_swapuv.c
vf_telecine.c
vf_threshold.c
vf_threshold_init.h
vf_thumbnail.c
vf_thumbnail_cuda.c
vf_thumbnail_cuda.cu
vf_tile.c
vf_tinterlace.c
vf_tmidequalizer.c
vf_tonemap.c
vf_tonemap_opencl.c
vf_tonemap_vaapi.c
vf_tpad.c
vf_transpose.c
vf_transpose_npp.c
vf_transpose_opencl.c
vf_transpose_vaapi.c
vf_transpose_vulkan.c
vf_unsharp.c
vf_unsharp_opencl.c
vf_untile.c
vf_uspp.c
vf_v360.c
vf_vaguedenoiser.c
vf_varblur.c
vf_vectorscope.c
vf_vflip.c
vf_vfrdet.c
vf_vibrance.c
vf_vidstabdetect.c
vf_vidstabtransform.c
vf_vif.c
vf_vignette.c
vf_vmafmotion.c
vf_vpp_qsv.c
vf_w3fdif.c
vf_waveform.c
vf_weave.c
vf_xbr.c
vf_xfade.c
vf_xfade_opencl.c
vf_xmedian.c
vf_yadif.c
vf_yadif_cuda.c
vf_yadif_cuda.cu
vf_yadif_videotoolbox.m
vf_yaepblur.c
vf_zoompan.c
vf_zscale.c
video.c
video.h
vidstabutils.c
vidstabutils.h
vmaf_motion.h
vsink_nullsink.c
vsrc_cellauto.c
vsrc_gradients.c
vsrc_life.c
vsrc_mandelbrot.c
vsrc_mptestsrc.c
vsrc_sierpinski.c
vsrc_testsrc.c
vulkan.c
vulkan.h
vulkan_filter.c
vulkan_filter.h
w3fdif.h
window_func.h
yadif.h
yadif_common.c
libavformat
libavutil
libpostproc
libswresample
libswscale
presets
tests
tools
.gitattributes
.gitignore
.mailmap
.travis.yml
CONTRIBUTING.md
COPYING.GPLv2
COPYING.GPLv3
COPYING.LGPLv2.1
COPYING.LGPLv3
CREDITS
Changelog
INSTALL.md
LICENSE.md
MAINTAINERS
Makefile
README.md
RELEASE
RELEASE_NOTES
configure
克隆/下载
drawutils.h 5.60 KB
一键复制 编辑 原始数据 按行查看 历史
/*
* 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
*/
#ifndef AVFILTER_DRAWUTILS_H
#define AVFILTER_DRAWUTILS_H
/**
* @file
* misc drawing utilities
*/
#include <stdint.h>
#include "avfilter.h"
#include "libavutil/pixfmt.h"
int ff_fill_rgba_map(uint8_t *rgba_map, enum AVPixelFormat pix_fmt);
#define MAX_PLANES 4
typedef struct FFDrawContext {
const struct AVPixFmtDescriptor *desc;
enum AVPixelFormat format;
unsigned nb_planes;
int pixelstep[MAX_PLANES]; /*< offset between pixels */
uint8_t hsub[MAX_PLANES]; /*< horizontal subsampling */
uint8_t vsub[MAX_PLANES]; /*< vertical subsampling */
uint8_t hsub_max;
uint8_t vsub_max;
enum AVColorRange range;
unsigned flags;
enum AVColorSpace csp;
double rgb2yuv[3][3];
} FFDrawContext;
typedef struct FFDrawColor {
uint8_t rgba[4];
union {
uint32_t u32[4];
uint16_t u16[8];
uint8_t u8[16];
} comp[MAX_PLANES];
} FFDrawColor;
/**
* Process alpha pixel component.
*/
#define FF_DRAW_PROCESS_ALPHA 1
/**
* Init a draw context.
*
* Only a limited number of pixel formats are supported, if format is not
* supported the function will return an error.
* @param format pixel format of the frames that will be drawn onto
* @param csp color space of the frames that will be drawn onto,
* defaulting to BT601 or RGB depending on the specified format
* when AVCOL_SPC_UNSPECIFIED is passed.
* @param range sample value range of the frames that will be drawn onto,
* defaulting to TV-range unless using a legacy J format
* when AVCOL_RANGE_UNSPECIFIED is passed.
* @param flags combination of FF_DRAW_* flags.
* @return 0 for success, < 0 for error
*/
int ff_draw_init2(FFDrawContext *draw, enum AVPixelFormat format, enum AVColorSpace csp,
enum AVColorRange range, unsigned flags);
/*
* Legacy wrapper for ff_draw_init2.
*/
int ff_draw_init(FFDrawContext *draw, enum AVPixelFormat format, unsigned flags);
/**
* Prepare a color. The rgba value passed is always 8-bit full-range in the RGB space
* corresponding to the space set at initialization.
*/
void ff_draw_color(FFDrawContext *draw, FFDrawColor *color, const uint8_t rgba[4]);
/**
* Copy a rectangle from an image to another.
*
* The coordinates must be as even as the subsampling requires.
*/
void ff_copy_rectangle2(FFDrawContext *draw,
uint8_t *dst[], int dst_linesize[],
uint8_t *src[], int src_linesize[],
int dst_x, int dst_y, int src_x, int src_y,
int w, int h);
/**
* Fill a rectangle with an uniform color.
*
* The coordinates must be as even as the subsampling requires.
* The color needs to be inited with ff_draw_color.
*/
void ff_fill_rectangle(FFDrawContext *draw, FFDrawColor *color,
uint8_t *dst[], int dst_linesize[],
int dst_x, int dst_y, int w, int h);
/**
* Blend a rectangle with an uniform color.
*/
void ff_blend_rectangle(FFDrawContext *draw, FFDrawColor *color,
uint8_t *dst[], int dst_linesize[],
int dst_w, int dst_h,
int x0, int y0, int w, int h);
/**
* Blend an alpha mask with an uniform color.
*
* @param draw draw context
* @param color color for the overlay;
* @param dst destination image
* @param dst_linesize line stride of the destination
* @param dst_w width of the destination image
* @param dst_h height of the destination image
* @param mask mask
* @param mask_linesize line stride of the mask
* @param mask_w width of the mask
* @param mask_h height of the mask
* @param l2depth log2 of depth of the mask (0 for 1bpp, 3 for 8bpp)
* @param endianness bit order of the mask (0: MSB to the left)
* @param x0 horizontal position of the overlay
* @param y0 vertical position of the overlay
*/
void ff_blend_mask(FFDrawContext *draw, FFDrawColor *color,
uint8_t *dst[], int dst_linesize[], int dst_w, int dst_h,
const uint8_t *mask, int mask_linesize, int mask_w, int mask_h,
int l2depth, unsigned endianness, int x0, int y0);
/**
* Round a dimension according to subsampling.
*
* @param draw draw context
* @param sub_dir 0 for horizontal, 1 for vertical
* @param round_dir 0 nearest, -1 round down, +1 round up
* @param value value to round
* @return the rounded value
*/
int ff_draw_round_to_sub(FFDrawContext *draw, int sub_dir, int round_dir,
int value);
/**
* Return the list of pixel formats supported by the draw functions.
*
* The flags are the same as ff_draw_init, i.e., none currently.
*/
AVFilterFormats *ff_draw_supported_pixel_formats(unsigned flags);
#endif /* AVFILTER_DRAWUTILS_H */
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/pedoc/ffmpeg.git
git@gitee.com:pedoc/ffmpeg.git
pedoc
ffmpeg
FFmpeg
n5.1.2

搜索帮助