You've already forked FFmpeg
							
							
				mirror of
				https://github.com/FFmpeg/FFmpeg.git
				synced 2025-10-30 23:18:11 +02:00 
			
		
		
		
	avfilter/avfiltergraph: remove unnecessary channel layout copy
It's not modified, so we can simply use a const pointer to it. Also check the return value of the other copy in the function while at it. Reviewed-by: Nicolas George <george@nsup.org> Signed-off-by: James Almer <jamrial@gmail.com>
This commit is contained in:
		| @@ -729,12 +729,12 @@ static int reduce_formats_on_filter(AVFilterContext *filter) | ||||
|     /* reduce channel layouts */ | ||||
|     for (i = 0; i < filter->nb_inputs; i++) { | ||||
|         AVFilterLink *inlink = filter->inputs[i]; | ||||
|         AVChannelLayout fmt = { 0 }; | ||||
|         const AVChannelLayout *fmt; | ||||
|  | ||||
|         if (!inlink->outcfg.channel_layouts || | ||||
|             inlink->outcfg.channel_layouts->nb_channel_layouts != 1) | ||||
|             continue; | ||||
|         av_channel_layout_copy(&fmt, &inlink->outcfg.channel_layouts->channel_layouts[0]); | ||||
|         fmt = &inlink->outcfg.channel_layouts->channel_layouts[0]; | ||||
|  | ||||
|         for (j = 0; j < filter->nb_outputs; j++) { | ||||
|             AVFilterLink *outlink = filter->outputs[j]; | ||||
| @@ -745,24 +745,25 @@ static int reduce_formats_on_filter(AVFilterContext *filter) | ||||
|                 continue; | ||||
|  | ||||
|             if (fmts->all_layouts && | ||||
|                 (KNOWN(&fmt) || fmts->all_counts)) { | ||||
|                 (KNOWN(fmt) || fmts->all_counts)) { | ||||
|                 /* Turn the infinite list into a singleton */ | ||||
|                 fmts->all_layouts = fmts->all_counts  = 0; | ||||
|                 if (ff_add_channel_layout(&outlink->incfg.channel_layouts, &fmt) < 0) | ||||
|                 if (ff_add_channel_layout(&outlink->incfg.channel_layouts, fmt) < 0) | ||||
|                     ret = 1; | ||||
|                 break; | ||||
|             } | ||||
|  | ||||
|             for (k = 0; k < outlink->incfg.channel_layouts->nb_channel_layouts; k++) { | ||||
|                 if (!av_channel_layout_compare(&fmts->channel_layouts[k], &fmt)) { | ||||
|                     av_channel_layout_copy(&fmts->channel_layouts[0], &fmt); | ||||
|                 if (!av_channel_layout_compare(&fmts->channel_layouts[k], fmt)) { | ||||
|                     ret = av_channel_layout_copy(&fmts->channel_layouts[0], fmt); | ||||
|                     if (ret < 0) | ||||
|                         return ret; | ||||
|                     fmts->nb_channel_layouts = 1; | ||||
|                     ret = 1; | ||||
|                     break; | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|         av_channel_layout_uninit(&fmt); | ||||
|     } | ||||
|  | ||||
|     return ret; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user