|  |  | @@ -496,15 +496,22 @@ int av_opt_set(void *obj, const char *name, const char *val, int search_flags) | 
		
	
		
			
			|  |  |  | case AV_OPT_TYPE_SAMPLE_FMT: | 
		
	
		
			
			|  |  |  | return set_string_sample_fmt(obj, o, val, dst); | 
		
	
		
			
			|  |  |  | case AV_OPT_TYPE_DURATION: | 
		
	
		
			
			|  |  |  | if (!val) { | 
		
	
		
			
			|  |  |  | *(int64_t *)dst = 0; | 
		
	
		
			
			|  |  |  | { | 
		
	
		
			
			|  |  |  | int64_t usecs = 0; | 
		
	
		
			
			|  |  |  | if (val) { | 
		
	
		
			
			|  |  |  | if ((ret = av_parse_time(&usecs, val, 1)) < 0) { | 
		
	
		
			
			|  |  |  | av_log(obj, AV_LOG_ERROR, "Unable to parse option value \"%s\" as duration\n", val); | 
		
	
		
			
			|  |  |  | return ret; | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | if (usecs < o->min || usecs > o->max) { | 
		
	
		
			
			|  |  |  | av_log(obj, AV_LOG_ERROR, "Value %f for parameter '%s' out of range [%g - %g]\n", | 
		
	
		
			
			|  |  |  | usecs / 1000000.0, o->name, o->min / 1000000.0, o->max / 1000000.0); | 
		
	
		
			
			|  |  |  | return AVERROR(ERANGE); | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | *(int64_t *)dst = usecs; | 
		
	
		
			
			|  |  |  | return 0; | 
		
	
		
			
			|  |  |  | } else { | 
		
	
		
			
			|  |  |  | if ((ret = av_parse_time(dst, val, 1)) < 0) | 
		
	
		
			
			|  |  |  | av_log(obj, AV_LOG_ERROR, "Unable to parse option value \"%s\" as duration\n", val); | 
		
	
		
			
			|  |  |  | return ret; | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | break; | 
		
	
		
			
			|  |  |  | case AV_OPT_TYPE_COLOR: | 
		
	
		
			
			|  |  |  | return set_string_color(obj, o, val, dst); | 
		
	
		
			
			|  |  |  | case AV_OPT_TYPE_CHANNEL_LAYOUT: | 
		
	
	
		
			
				|  |  | 
 |