| 
				
				
					
				
				
				 | 
			
			 | 
			@@ -80,6 +80,7 @@ typedef struct DrawBoxContext { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    char *w_expr, *h_expr; ///< expression for width and height | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    char *t_expr;          ///< expression for thickness | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    int have_alpha; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    int replace; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			} DrawBoxContext; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			static const int NUM_EXPR_EVALS = 5; | 
		
		
	
	
		
			
				| 
				
					
				
				
					
				
				
				 | 
			
			 | 
			@@ -213,7 +214,7 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *frame) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    int plane, x, y, xb = s->x, yb = s->y; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    unsigned char *row[4]; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    if (s->have_alpha) { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    if (s->have_alpha && s->replace) { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        for (y = FFMAX(yb, 0); y < frame->height && y < (yb + s->h); y++) { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            row[0] = frame->data[0] + y * frame->linesize[0]; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            row[3] = frame->data[3] + y * frame->linesize[3]; | 
		
		
	
	
		
			
				| 
				
					
				
				
					
				
				
				 | 
			
			 | 
			@@ -286,6 +287,7 @@ static const AVOption drawbox_options[] = { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    { "c",         "set color of the box",                         OFFSET(color_str), AV_OPT_TYPE_STRING, { .str = "black" }, CHAR_MIN, CHAR_MAX, FLAGS }, | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    { "thickness", "set the box thickness",                        OFFSET(t_expr),    AV_OPT_TYPE_STRING, { .str="3" },       CHAR_MIN, CHAR_MAX, FLAGS }, | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    { "t",         "set the box thickness",                        OFFSET(t_expr),    AV_OPT_TYPE_STRING, { .str="3" },       CHAR_MIN, CHAR_MAX, FLAGS }, | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    { "replace",   "replace color & alpha",                        OFFSET(replace),   AV_OPT_TYPE_BOOL,   { .i64=0 },         0,        1,        FLAGS }, | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    { NULL } | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			}; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
	
		
			
				| 
				
					
				
				
					
				
				
				 | 
			
			 | 
			@@ -354,7 +356,7 @@ static int drawgrid_filter_frame(AVFilterLink *inlink, AVFrame *frame) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    int plane, x, y; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    uint8_t *row[4]; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    if (drawgrid->have_alpha) { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    if (drawgrid->have_alpha && drawgrid->replace) { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        for (y = 0; y < frame->height; y++) { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            row[0] = frame->data[0] + y * frame->linesize[0]; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            row[3] = frame->data[3] + y * frame->linesize[3]; | 
		
		
	
	
		
			
				| 
				
					
				
				
					
				
				
				 | 
			
			 | 
			@@ -418,6 +420,7 @@ static const AVOption drawgrid_options[] = { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    { "c",         "set color of the grid",   OFFSET(color_str), AV_OPT_TYPE_STRING, { .str = "black" }, CHAR_MIN, CHAR_MAX, FLAGS }, | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    { "thickness", "set grid line thickness", OFFSET(t_expr),    AV_OPT_TYPE_STRING, {.str="1"},         CHAR_MIN, CHAR_MAX, FLAGS }, | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    { "t",         "set grid line thickness", OFFSET(t_expr),    AV_OPT_TYPE_STRING, {.str="1"},         CHAR_MIN, CHAR_MAX, FLAGS }, | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    { "replace",   "replace color & alpha",   OFFSET(replace),   AV_OPT_TYPE_BOOL,   { .i64=0 },         0,        1,        FLAGS }, | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    { NULL } | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			}; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
	
		
			
				| 
				
					
				
				
				
				 | 
			
			 | 
			
  |