You've already forked FFmpeg
							
							
				mirror of
				https://github.com/FFmpeg/FFmpeg.git
				synced 2025-10-30 23:18:11 +02:00 
			
		
		
		
	Implement the avfilter_default_draw_slice() handler and use it in
avfilter_draw_slice() when the draw_slice callback is not defined in the input pad. Originally committed as revision 16554 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
		| @@ -250,6 +250,7 @@ void avfilter_draw_slice(AVFilterLink *link, int y, int h) | ||||
| { | ||||
|     uint8_t *src[4], *dst[4]; | ||||
|     int i, j, hsub, vsub; | ||||
|     void (*draw_slice)(AVFilterLink *, int, int); | ||||
|  | ||||
|     /* copy the slice if needed for permission reasons */ | ||||
|     if(link->srcpic) { | ||||
| @@ -279,8 +280,9 @@ void avfilter_draw_slice(AVFilterLink *link, int y, int h) | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     if(link_dpad(link).draw_slice) | ||||
|         link_dpad(link).draw_slice(link, y, h); | ||||
|     if(!(draw_slice = link_dpad(link).draw_slice)) | ||||
|         draw_slice = avfilter_default_draw_slice; | ||||
|     draw_slice(link, y, h); | ||||
| } | ||||
|  | ||||
| AVFilter *avfilter_get_by_name(const char *name) | ||||
|   | ||||
| @@ -23,7 +23,7 @@ | ||||
| #define AVFILTER_AVFILTER_H | ||||
|  | ||||
| #define LIBAVFILTER_VERSION_MAJOR  0 | ||||
| #define LIBAVFILTER_VERSION_MINOR  1 | ||||
| #define LIBAVFILTER_VERSION_MINOR  2 | ||||
| #define LIBAVFILTER_VERSION_MICRO  0 | ||||
|  | ||||
| #define LIBAVFILTER_VERSION_INT AV_VERSION_INT(LIBAVFILTER_VERSION_MAJOR, \ | ||||
| @@ -349,6 +349,8 @@ struct AVFilterPad | ||||
|  | ||||
| /** default handler for start_frame() for video inputs */ | ||||
| void avfilter_default_start_frame(AVFilterLink *link, AVFilterPicRef *picref); | ||||
| /** default handler for draw_slice() for video inputs */ | ||||
| void avfilter_default_draw_slice(AVFilterLink *link, int y, int h); | ||||
| /** default handler for end_frame() for video inputs */ | ||||
| void avfilter_default_end_frame(AVFilterLink *link); | ||||
| /** default handler for config_props() for video outputs */ | ||||
|   | ||||
| @@ -82,6 +82,17 @@ void avfilter_default_start_frame(AVFilterLink *link, AVFilterPicRef *picref) | ||||
|     } | ||||
| } | ||||
|  | ||||
| void avfilter_default_draw_slice(AVFilterLink *link, int y, int h) | ||||
| { | ||||
|     AVFilterLink *out = NULL; | ||||
|  | ||||
|     if(link->dst->output_count) | ||||
|         out = link->dst->outputs[0]; | ||||
|  | ||||
|     if(out) | ||||
|         avfilter_draw_slice(out, y, h); | ||||
| } | ||||
|  | ||||
| void avfilter_default_end_frame(AVFilterLink *link) | ||||
| { | ||||
|     AVFilterLink *out = NULL; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user