You've already forked FFmpeg
							
							
				mirror of
				https://github.com/FFmpeg/FFmpeg.git
				synced 2025-10-30 23:18:11 +02:00 
			
		
		
		
	avfilter/vf_paletteuse: do not sort transparency color
Make last palette entry always transparent color. Fixes wrong filtered output with new=1 option set.
This commit is contained in:
		| @@ -731,18 +731,13 @@ static void load_colormap(PaletteUseContext *s) | ||||
|     uint32_t last_color = 0; | ||||
|     struct color_rect box; | ||||
|  | ||||
|     /* disable transparent colors and dups */ | ||||
|     qsort(s->palette, AVPALETTE_COUNT, sizeof(*s->palette), cmp_pal_entry); | ||||
|     // update transparency index: | ||||
|     if (s->transparency_index >= 0) { | ||||
|         for (i = 0; i < AVPALETTE_COUNT; i++) { | ||||
|             if ((s->palette[i]>>24 & 0xff) == 0) { | ||||
|                 s->transparency_index = i; // we are assuming at most one transparent color in palette | ||||
|                 break; | ||||
|             } | ||||
|         } | ||||
|         FFSWAP(uint32_t, s->palette[s->transparency_index], s->palette[255]); | ||||
|     } | ||||
|  | ||||
|     /* disable transparent colors and dups */ | ||||
|     qsort(s->palette, AVPALETTE_COUNT-(s->transparency_index >= 0), sizeof(*s->palette), cmp_pal_entry); | ||||
|  | ||||
|     for (i = 0; i < AVPALETTE_COUNT; i++) { | ||||
|         const uint32_t c = s->palette[i]; | ||||
|         if (i != 0 && c == last_color) { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user