diff options
Diffstat (limited to 'main.c')
| -rw-r--r-- | main.c | 19 | 
1 files changed, 12 insertions, 7 deletions
@@ -321,6 +321,9 @@ static int set_crop(struct media_entity_pad *pad, struct v4l2_rect *crop)  {  	int ret; +	if (crop->left == -1 || crop->top == -1) +		return 0; +  	printf("Setting up crop rectangle %u,%u/%ux%u on pad %s/%u\n",  		crop->left, crop->top, crop->width, crop->height,  		pad->entity->info.name, pad->index); @@ -374,18 +377,20 @@ static int setup_format(struct media_device *media, const char *p, char **endp)  		return -EINVAL;  	} +	if (pad->type == MEDIA_PAD_TYPE_OUTPUT) { +		ret = set_crop(pad, &crop); +		if (ret < 0) +			return ret; +	} +  	ret = set_format(pad, &format); -	if (ret < 0) { -		printf("Unable to set format\n"); +	if (ret < 0)  		return ret; -	} -	if (crop.left != -1 && crop.top != -1) { +	if (pad->type == MEDIA_PAD_TYPE_INPUT) {  		ret = set_crop(pad, &crop); -		if (ret < 0) { -			printf("Unable to set crop rectangle\n"); +		if (ret < 0)  			return ret; -		}  	}  	if (interval.numerator != 0) {  | 
