|  | @@ -26,6 +26,7 @@ | 
														
													
														
															
																|  |  | #include "isom.h" |  |  | #include "isom.h" | 
														
													
														
															
																|  |  | #include "libavcodec/mpeg4audio.h" |  |  | #include "libavcodec/mpeg4audio.h" | 
														
													
														
															
																|  |  | #include "libavcodec/mpegaudiodata.h" |  |  | #include "libavcodec/mpegaudiodata.h" | 
														
													
														
															
																|  |  |  |  |  | #include "libavutil/avstring.h" | 
														
													
														
															
																|  |  | #include "libavutil/intreadwrite.h" |  |  | #include "libavutil/intreadwrite.h" | 
														
													
														
															
																|  |  | 
 |  |  | 
 | 
														
													
														
															
																|  |  | /* http://www.mp4ra.org */ |  |  | /* http://www.mp4ra.org */ | 
														
													
												
													
														
															
																|  | @@ -438,28 +439,25 @@ static uint32_t yuv_to_rgba(uint32_t ycbcr) | 
														
													
														
															
																|  |  | 
 |  |  | 
 | 
														
													
														
															
																|  |  | static int mov_rewrite_dvd_sub_extradata(AVStream *st) |  |  | static int mov_rewrite_dvd_sub_extradata(AVStream *st) | 
														
													
														
															
																|  |  | { |  |  | { | 
														
													
														
															
																|  |  | char pal_s[256]; |  |  |  | 
														
													
														
															
																|  |  | char buf[256]; |  |  |  | 
														
													
														
															
																|  |  | int pal_s_pos = 0; |  |  |  | 
														
													
														
															
																|  |  |  |  |  | char buf[256] = {0}; | 
														
													
														
															
																|  |  | uint8_t *src = st->codec->extradata; |  |  | uint8_t *src = st->codec->extradata; | 
														
													
														
															
																|  |  | int i; |  |  | int i; | 
														
													
														
															
																|  |  | 
 |  |  | 
 | 
														
													
														
															
																|  |  | if (st->codec->extradata_size != 64) |  |  | if (st->codec->extradata_size != 64) | 
														
													
														
															
																|  |  | return 0; |  |  | return 0; | 
														
													
														
															
																|  |  | 
 |  |  | 
 | 
														
													
														
															
																|  |  |  |  |  | snprintf(buf, sizeof(buf), "size: %dx%d\npalette: ", | 
														
													
														
															
																|  |  |  |  |  | st->codec->width, st->codec->height); | 
														
													
														
															
																|  |  |  |  |  | 
 | 
														
													
														
															
																|  |  | for (i = 0; i < 16; i++) { |  |  | for (i = 0; i < 16; i++) { | 
														
													
														
															
																|  |  | uint32_t yuv = AV_RB32(src + i * 4); |  |  | uint32_t yuv = AV_RB32(src + i * 4); | 
														
													
														
															
																|  |  | uint32_t rgba = yuv_to_rgba(yuv); |  |  | uint32_t rgba = yuv_to_rgba(yuv); | 
														
													
														
															
																|  |  | 
 |  |  | 
 | 
														
													
														
															
																|  |  | snprintf(pal_s + pal_s_pos, sizeof(pal_s) - pal_s_pos, "%06x%s", rgba, |  |  |  | 
														
													
														
															
																|  |  | i != 15 ? ", " : ""); |  |  |  | 
														
													
														
															
																|  |  | pal_s_pos = strlen(pal_s); |  |  |  | 
														
													
														
															
																|  |  | if (pal_s_pos >= sizeof(pal_s)) |  |  |  | 
														
													
														
															
																|  |  | return 0; |  |  |  | 
														
													
														
															
																|  |  |  |  |  | av_strlcatf(buf, sizeof(buf), "%06x%s", rgba, i != 15 ? ", " : ""); | 
														
													
														
															
																|  |  | } |  |  | } | 
														
													
														
															
																|  |  | 
 |  |  | 
 | 
														
													
														
															
																|  |  | snprintf(buf, sizeof(buf), "size: %dx%d\npalette: %s\n", |  |  |  | 
														
													
														
															
																|  |  | st->codec->width, st->codec->height, pal_s); |  |  |  | 
														
													
														
															
																|  |  |  |  |  | if (av_strlcat(buf, "\n", sizeof(buf)) >= sizeof(buf)) | 
														
													
														
															
																|  |  |  |  |  | return 0; | 
														
													
														
															
																|  |  | 
 |  |  | 
 | 
														
													
														
															
																|  |  | av_freep(&st->codec->extradata); |  |  | av_freep(&st->codec->extradata); | 
														
													
														
															
																|  |  | st->codec->extradata_size = 0; |  |  | st->codec->extradata_size = 0; | 
														
													
												
													
														
															
																|  | 
 |