| OLD | NEW |
| (Empty) | |
| 1 Name: ffmpeg |
| 2 Version: 0.9.7 |
| 3 |
| 4 Description: |
| 5 Contains the sources used to compile FFmpeg binaries used by Google Chrome and |
| 6 Chromium. |
| 7 |
| 8 The FFmpeg source is from ToT of the main ffmpeg branch: |
| 9 http://git.videolan.org/?p=ffmpeg.git;a=commit;h=bb258fb995a42112d1fe14f53ec59
9b2cd19b707 |
| 10 Date: Tue, 12 Jul 2011 22:42:11 |
| 11 Commit: bb258fb995a42112d1fe14f53ec599b2cd19b707 |
| 12 |
| 13 libvpx source |
| 14 http://webm.googlecode.com/files/libvpx-v0.9.7-p1.zip |
| 15 git://review.webmproject.org/libvpx.git |
| 16 Date: Tuesday August 16 2011 |
| 17 Version: v0.9.7p1 (cayuga) |
| 18 Commit: 20307c70ae96c45b9b00338989b952fb334e4fc9 |
| 19 |
| 20 The following process is intended to run from msys |
| 21 |
| 22 Steps for extracting: |
| 23 |
| 24 AUTOMATIC: |
| 25 |
| 26 1) On linux, mac and windows/mingw run |
| 27 |
| 28 rm -rf sources/patched-ffmpeg |
| 29 ./make_src_tree.sh ffmpeg.tar.gz source/patched-ffmpeg patches |
| 30 |
| 31 MANUAL: This can be useful when having to adjust patches. |
| 32 |
| 33 1) Extract ffmpeg, which creates the directory ffmpeg: |
| 34 cd /c/src/chrome/deps/third_party/ffmpeg |
| 35 rm -rf ffmpeg |
| 36 tar xf ffmpeg.tar.gz |
| 37 |
| 38 2) Apply patches (from within the source/ directory): |
| 39 patch -p1 --no-backup-if-mismatch < ../patches/to_upstream/01_static_pthr
ead_O2.patch |
| 40 patch -p1 --no-backup-if-mismatch < ../patches/to_upstream/05_respect_fla
c_dirac_configure.patch |
| 41 patch -p1 --no-backup-if-mismatch < ../patches/ugly/07_get_bits_overrun.p
atch |
| 42 patch -p1 --no-backup-if-mismatch < ../patches/ugly/08_enforce_theora_oob
.patch |
| 43 patch -p1 --no-backup-if-mismatch < ../patches/ugly/09_enforce_vorbis_oob
_divzero.patch |
| 44 patch -p1 --no-backup-if-mismatch < ../patches/ugly/10_aac_oob_read.patch |
| 45 patch -p1 --no-backup-if-mismatch < ../patches/to_upstream/11_mkv_buffer_
overflow.patch |
| 46 patch -p1 --no-backup-if-mismatch < ../patches/to_upstream/12_ogg_seek_to
_zero.patch |
| 47 patch -p1 --no-backup-if-mismatch < ../patches/ugly/13_remove_avcore.patc
h |
| 48 patch -p1 --no-backup-if-mismatch < ../patches/to_upstream/14_vp8_encode_
options.patch |
| 49 patch -p1 --no-backup-if-mismatch < ../patches/to_upstream/15_webp_ffmpeg
.patch |
| 50 patch -p1 --no-backup-if-mismatch < ../patches/to_upstream/25_ogg_index.p
atch |
| 51 patch -p1 --no-backup-if-mismatch < ../patches/ugly/30_enforce_mp3_oob.pa
tch |
| 52 patch -p1 --no-backup-if-mismatch < ../patches/ugly/31_remove_attribute_d
eprecated.patch |
| 53 patch -p1 --no-backup-if-mismatch < ../patches/ugly/32_add_rawdec_for_mac
_win.patch |
| 54 patch -p1 --no-backup-if-mismatch < ../patches/to_upstream/34_ogg_memcpy.
patch |
| 55 patch -p1 --no-backup-if-mismatch < ../patches/to_upstream/35_oggdec_dura
tion.patch |
| 56 patch -p1 --no-backup-if-mismatch < ../patches/from_upstream/36_theora_fl
ush.patch |
| 57 patch -p1 --no-backup-if-mismatch < ../patches/to_upstream/37_VP8_armv6_o
ptimizations.patch |
| 58 patch -p1 --no-backup-if-mismatch < ../patches/from_upstream/38_webm_cues
_before_first_cluster.patch |
| 59 patch -p1 --no-backup-if-mismatch < ../patches/to_upstream/39_VP8_fix_oob
_read_writes.patch |
| 60 patch -p1 --no-backup-if-mismatch < ../patches/to_upstream/40_MKV_fix_oob
_write.patch |
| 61 patch -p1 --no-backup-if-mismatch < ../patches/ugly/41_matroska_cluster_i
ncremental.patch |
| 62 patch -p1 --no-backup-if-mismatch < ../patches/to_upstream/42_vp8_fix_seg
mentation_maps.patch |
| 63 patch -p1 --no-backup-if-mismatch < ../patches/to_upstream/43_mkv_seekahe
ad_revalidate.patch |
| 64 patch -p1 --no-backup-if-mismatch < ../patches/to_upstream/44_vorbis_oob_
read.patch |
| 65 patch -p1 --no-backup-if-mismatch < ../patches/to_upstream/45_mkv_fix_seg
map_cache_overflow.patch |
| 66 patch -p1 --no-backup-if-mismatch < ../patches/to_upstream/46_vp3_fix_dou
ble_free_invalid_read.patch |
| 67 patch -p1 --no-backup-if-mismatch < ../patches/to_upstream/47_vp3_fix_inf
loop_and_memleak.patch |
| 68 patch -p1 --no-backup-if-mismatch < ../patches/to_upstream/48_vorbis_resi
due_buffer.patch |
| 69 patch -p1 --no-backup-if-mismatch < ../patches/to_upstream/49_vorbis_buff
er_defense.patch |
| 70 patch -p1 --no-backup-if-mismatch < ../patches/to_upstream/50_vp8_fix_fra
me_size_changes.patch |
| 71 patch -p1 --no-backup-if-mismatch < ../patches/to_upstream/52_vorbis_fix_
floor1_vector_int_overflow.patch |
| 72 cd .. |
| 73 |
| 74 |
| 75 NOTE: Under Windows it is recommended to use Chromium's MinGW/MSYS environment |
| 76 or 7-Zip to extract the archives. We've experienced issues when using WinRAR. |
| 77 |
| 78 Since FFmpeg is sandboxed inside the render process, we're only interested in |
| 79 building the absolute minimum. |
| 80 |
| 81 Refer to build_ffmpeg.sh for configuration flags for Chromium and Google Chrome. |
| 82 |
| 83 To clean up patches so there is no fuzzing |
| 84 1) Extract ffmpeg, which creates the directory ffmpeg: |
| 85 cd /c/src/chrome/deps/third_party/ffmpeg |
| 86 rm -rf ffmpeg |
| 87 tar xf ffmpeg.tar.gz |
| 88 |
| 89 2) Apply patches: |
| 90 rm -rf orig |
| 91 cp -R ffmpeg orig |
| 92 cd ffmpeg |
| 93 patch -p1 --no-backup-if-mismatch < ../patches/to_upstream/01_static_pthr
ead_O2.patch |
| 94 cd .. |
| 95 diff -wurp -N orig ffmpeg |
| 96 diff -wurp -N orig ffmpeg >patches/to_upstream/01_static_pthread_O2.patch |
| 97 |
| 98 rm -rf orig |
| 99 cp -R ffmpeg orig |
| 100 cd ffmpeg |
| 101 patch -p1 --no-backup-if-mismatch < ../patches/to_upstream/05_respect_fla
c_dirac_configure.patch |
| 102 cd .. |
| 103 diff -wurp -N orig ffmpeg |
| 104 diff -wurp -N orig ffmpeg >patches/to_upstream/05_respect_flac_dirac_conf
igure.patch |
| 105 |
| 106 rm -rf orig |
| 107 cp -R ffmpeg orig |
| 108 cd ffmpeg |
| 109 patch -p1 --no-backup-if-mismatch < ../patches/ugly/07_get_bits_overrun.p
atch |
| 110 cd .. |
| 111 diff -wurp -N orig ffmpeg |
| 112 diff -wurp -N orig ffmpeg >patches/ugly/07_get_bits_overrun.patch |
| 113 |
| 114 rm -rf orig |
| 115 cp -R ffmpeg orig |
| 116 cd ffmpeg |
| 117 patch -p1 --no-backup-if-mismatch < ../patches/ugly/08_enforce_theora_oob
.patch |
| 118 cd .. |
| 119 diff -wurp -N orig ffmpeg |
| 120 diff -wurp -N orig ffmpeg >patches/ugly/08_enforce_theora_oob.patch |
| 121 |
| 122 rm -rf orig |
| 123 cp -R ffmpeg orig |
| 124 cd ffmpeg |
| 125 patch -p1 --no-backup-if-mismatch < ../patches/ugly/09_enforce_vorbis_oob
_divzero.patch |
| 126 cd .. |
| 127 diff -wurp -N orig ffmpeg |
| 128 diff -wurp -N orig ffmpeg >patches/ugly/09_enforce_vorbis_oob_divzero.pat
ch |
| 129 |
| 130 rm -rf orig |
| 131 cp -R ffmpeg orig |
| 132 cd ffmpeg |
| 133 patch -p1 --no-backup-if-mismatch < ../patches/ugly/10_aac_oob_read.patch |
| 134 cd .. |
| 135 diff -wurp -N orig ffmpeg |
| 136 diff -wurp -N orig ffmpeg >patches/ugly/10_aac_oob_read.patch |
| 137 |
| 138 rm -rf orig |
| 139 cp -R ffmpeg orig |
| 140 cd ffmpeg |
| 141 patch -p1 --no-backup-if-mismatch < ../patches/to_upstream/11_mkv_buffer_
overflow.patch |
| 142 cd .. |
| 143 diff -wurp -N orig ffmpeg |
| 144 diff -wurp -N orig ffmpeg >patches/to_upstream/11_mkv_buffer_overflow.pat
ch |
| 145 |
| 146 rm -rf orig |
| 147 cp -R ffmpeg orig |
| 148 cd ffmpeg |
| 149 patch -p1 --no-backup-if-mismatch < ../patches/to_upstream/12_ogg_seek_to
_zero.patch |
| 150 cd .. |
| 151 diff -wurp -N orig ffmpeg |
| 152 diff -wurp -N orig ffmpeg >patches/to_upstream/12_ogg_seek_to_zero.patch |
| 153 |
| 154 rm -rf orig |
| 155 cp -R ffmpeg orig |
| 156 cd ffmpeg |
| 157 patch -p1 --no-backup-if-mismatch < ../patches/ugly/13_remove_avcore.patc
h |
| 158 cd .. |
| 159 diff -wurp -N orig ffmpeg |
| 160 diff -wurp -N orig ffmpeg >patches/ugly/13_remove_avcore.patch |
| 161 |
| 162 rm -rf orig |
| 163 cp -R ffmpeg orig |
| 164 cd ffmpeg |
| 165 patch -p1 --no-backup-if-mismatch < ../patches/to_upstream/14_vp8_encode_
options.patch |
| 166 cd .. |
| 167 diff -wurp -N orig ffmpeg |
| 168 diff -wurp -N orig ffmpeg >patches/to_upstream/14_vp8_encode_options.patc
h |
| 169 |
| 170 rm -rf orig |
| 171 cp -R ffmpeg orig |
| 172 cd ffmpeg |
| 173 patch -p1 --no-backup-if-mismatch < ../patches/to_upstream/15_webp_ffmpeg
.patch |
| 174 cd .. |
| 175 diff -wurp -N orig ffmpeg |
| 176 diff -wurp -N orig ffmpeg >patches/to_upstream/15_webp_ffmpeg.patch |
| 177 |
| 178 rm -rf orig |
| 179 cp -R ffmpeg orig |
| 180 cd ffmpeg |
| 181 patch -p1 --no-backup-if-mismatch < ../patches/to_upstream/25_ogg_index.p
atch |
| 182 cd .. |
| 183 diff -wurp -N orig ffmpeg |
| 184 diff -wurp -N orig ffmpeg >patches/to_upstream/25_ogg_index.patch |
| 185 |
| 186 rm -rf orig |
| 187 cp -R ffmpeg orig |
| 188 cd ffmpeg |
| 189 patch -p1 --no-backup-if-mismatch < ../patches/ugly/30_enforce_mp3_oob.pa
tch |
| 190 cd .. |
| 191 diff -wurp -N orig ffmpeg |
| 192 diff -wurp -N orig ffmpeg >patches/ugly/30_enforce_mp3_oob.patch |
| 193 |
| 194 rm -rf orig |
| 195 cp -R ffmpeg orig |
| 196 cd ffmpeg |
| 197 patch -p1 --no-backup-if-mismatch < ../patches/ugly/31_remove_attribute_d
eprecated.patch |
| 198 cd .. |
| 199 diff -wurp -N orig ffmpeg |
| 200 diff -wurp -N orig ffmpeg >patches/ugly/31_remove_attribute_deprecated.pa
tch |
| 201 |
| 202 rm -rf orig |
| 203 cp -R ffmpeg orig |
| 204 cd ffmpeg |
| 205 patch -p1 --no-backup-if-mismatch < ../patches/ugly/32_add_rawdec_to_Make
file.patch |
| 206 cd .. |
| 207 diff -wurp -N orig ffmpeg |
| 208 diff -wurp -N orig ffmpeg >patches/ugly/32_add_rawdec_to_Makefile.patch |
| 209 |
| 210 rm -rf orig |
| 211 cp -R ffmpeg orig |
| 212 cd ffmpeg |
| 213 patch -p1 --no-backup-if-mismatch < ../patches/to_upstream/34_ogg_memcpy.
patch |
| 214 cd .. |
| 215 diff -wurp -N orig ffmpeg |
| 216 diff -wurp -N orig ffmpeg >patches/to_upstream/34_ogg_memcpy.patch |
| 217 |
| 218 rm -rf orig |
| 219 cp -R ffmpeg orig |
| 220 cd ffmpeg |
| 221 patch -p1 --no-backup-if-mismatch < ../patches/to_upstream/35_oggdec_dura
tion.patch |
| 222 cd .. |
| 223 diff -wurp -N orig ffmpeg |
| 224 diff -wurp -N orig ffmpeg >patches/to_upstream/35_oggdec_duration.patch |
| 225 |
| 226 rm -rf orig |
| 227 cp -R ffmpeg orig |
| 228 cd ffmpeg |
| 229 patch -p1 --no-backup-if-mismatch < ../patches/from_upstream/36_theora_fl
ush.patch |
| 230 cd .. |
| 231 diff -wurp -N orig ffmpeg |
| 232 diff -wurp -N orig ffmpeg >patches/from_upstream/36_theora_flush.patch |
| 233 |
| 234 rm -rf orig |
| 235 cp -R ffmpeg orig |
| 236 cd ffmpeg |
| 237 patch -p1 --no-backup-if-mismatch < ../patches/to_upstream/37_VP8_armv6_o
ptimizations.patch |
| 238 cd .. |
| 239 diff -wurp -N orig ffmpeg |
| 240 diff -wurp -N orig ffmpeg >patches/to_upstream/37_VP8_armv6_optimizations
.patch |
| 241 |
| 242 rm -rf orig |
| 243 cp -R ffmpeg orig |
| 244 cd ffmpeg |
| 245 patch -p1 --no-backup-if-mismatch < ../patches/from_upstream/38_webm_cues
_before_first_cluster.patch |
| 246 cd .. |
| 247 diff -wurp -N orig ffmpeg |
| 248 diff -wurp -N orig ffmpeg >patches/from_upstream/38_webm_cues_before_firs
t_cluster.patch |
| 249 |
| 250 rm -rf orig |
| 251 cp -R ffmpeg orig |
| 252 cd ffmpeg |
| 253 patch -p1 --no-backup-if-mismatch < ../patches/to_upstream/39_VP8_fix_oob
_read_writes.patch |
| 254 cd .. |
| 255 diff -wurp -N orig ffmpeg |
| 256 diff -wurp -N orig ffmpeg >patches/to_upstream/39_VP8_fix_oob_read_writes
.patch |
| 257 |
| 258 rm -rf orig |
| 259 cp -R ffmpeg orig |
| 260 cd ffmpeg |
| 261 patch -p1 --no-backup-if-mismatch < ../patches/to_upstream/40_MKV_fix_oob
_write.patch |
| 262 cd .. |
| 263 diff -wurp -N orig ffmpeg |
| 264 diff -wurp -N orig ffmpeg >patches/to_upstream/40_MKV_fix_oob_write.patch |
| 265 |
| 266 rm -rf orig |
| 267 cp -R ffmpeg orig |
| 268 cd ffmpeg |
| 269 patch -p1 --no-backup-if-mismatch < ../patches/ugly/41_matroska_cluster_i
ncremental.patch |
| 270 cd .. |
| 271 diff -wurp -N orig ffmpeg |
| 272 diff -wurp -N orig ffmpeg >patches/to_upstream/41_matroska_cluster_increm
ental.patch |
| 273 |
| 274 rm -rf orig |
| 275 cp -R ffmpeg orig |
| 276 cd ffmpeg |
| 277 patch -p1 --no-backup-if-mismatch < ../patches/to_upstream/42_vp8_fix_seg
mentation_maps.patch |
| 278 cd .. |
| 279 diff -wurp -N orig ffmpeg |
| 280 diff -wurp -N orig ffmpeg >patches/to_upstream/42_vp8_fix_segmentation_ma
ps.patch |
| 281 |
| 282 rm -rf orig |
| 283 cp -R ffmpeg orig |
| 284 cd ffmpeg |
| 285 patch -p1 --no-backup-if-mismatch < ../patches/to_upstream/43_mkv_seekahe
ad_revalidate.patch |
| 286 cd .. |
| 287 diff -wurp -N orig ffmpeg |
| 288 diff -wurp -N orig ffmpeg >patches/to_upstream/43_mkv_seekahead_revalidat
e.patch |
| 289 |
| 290 rm -rf orig |
| 291 cp -R ffmpeg orig |
| 292 cd ffmpeg |
| 293 patch -p1 --no-backup-if-mismatch < ../patches/to_upstream/44_vorbis_oob_
read.patch |
| 294 cd .. |
| 295 diff -wurp -N orig ffmpeg |
| 296 diff -wurp -N orig ffmpeg >patches/to_upstream/44_vorbis_oob_read.patch |
| 297 |
| 298 rm -rf orig |
| 299 cp -R ffmpeg orig |
| 300 cd ffmpeg |
| 301 patch -p1 --no-backup-if-mismatch < ../patches/to_upstream/45_mkv_fix_seg
map_cache_overflow.patch |
| 302 cd .. |
| 303 diff -wurp -N orig ffmpeg |
| 304 diff -wurp -N orig ffmpeg >patches/to_upstream/45_mkv_fix_segmap_cache_ov
erflow.patch |
| 305 |
| 306 rm -rf orig |
| 307 cp -R ffmpeg orig |
| 308 cd ffmpeg |
| 309 patch -p1 --no-backup-if-mismatch < ../patches/to_upstream/46_vp3_fix_dou
ble_free_invalid_read.patch |
| 310 cd .. |
| 311 diff -wurp -N orig ffmpeg |
| 312 diff -wurp -N orig ffmpeg >patches/to_upstream/46_vp3_fix_double_free_inv
alid_read.patch |
| 313 |
| 314 rm -rf orig |
| 315 cp -R ffmpeg orig |
| 316 cd ffmpeg |
| 317 patch -p1 --no-backup-if-mismatch < ../patches/to_upstream/47_vp3_fix_inf
loop_and_memleak.patch |
| 318 cd .. |
| 319 diff -wurp -N orig ffmpeg |
| 320 diff -wurp -N orig ffmpeg >patches/to_upstream/47_vp3_fix_infloop_and_mem
leak.patch |
| 321 |
| 322 rm -rf orig |
| 323 cp -R ffmpeg orig |
| 324 cd ffmpeg |
| 325 patch -p1 --no-backup-if-mismatch < ../patches/to_upstream/48_vorbis_resi
due_buffer.patch |
| 326 cd .. |
| 327 diff -wurp -N orig ffmpeg |
| 328 diff -wurp -N orig ffmpeg >patches/to_upstream/48_vorbis_residue_buffer.p
atch |
| 329 |
| 330 rm -rf orig |
| 331 cp -R ffmpeg orig |
| 332 cd ffmpeg |
| 333 patch -p1 --no-backup-if-mismatch < ../patches/to_upstream/49_vorbis_buff
er_defense.patch |
| 334 cd .. |
| 335 diff -wurp -N orig ffmpeg |
| 336 diff -wurp -N orig ffmpeg >patches/to_upstream/49_vorbis_buffer_defense.p
atch |
| 337 |
| 338 rm -rf orig |
| 339 cp -R ffmpeg orig |
| 340 cd ffmpeg |
| 341 patch -p1 --no-backup-if-mismatch < ../patches/to_upstream/50_vp8_fix_fra
me_size_changes.patch |
| 342 cd .. |
| 343 diff -wurp -N orig ffmpeg |
| 344 diff -wurp -N orig ffmpeg >patches/to_upstream/50_vp8_fix_frame_size_chan
ges.patch |
| 345 |
| 346 rm -rf orig |
| 347 cp -R ffmpeg orig |
| 348 cd ffmpeg |
| 349 patch -p1 --no-backup-if-mismatch < ../patches/to_upstream/52_vorbis_fix_
floor1_vector_int_overflow.patch |
| 350 cd .. |
| 351 diff -wurp -N orig ffmpeg |
| 352 diff -wurp -N orig ffmpeg >patches/to_upstream/52_vorbis_fix_floor1_vecto
r_int_overflow.patch |
| 353 |
| 354 Testing |
| 355 Updates should be tested against |
| 356 a) http://wiki.xiph.org/TheoraTestsuite |
| 357 b) WebKit Layout Tests |
| 358 http://www.chromium.org/developers/testing/webkit-layout-tests |
| 359 make -r test_shell BUILDTYPE=Debug -j16 |
| 360 make -r ImageDiff BUILDTYPE=Debug -j16 |
| 361 make -r DumpRenderTree BUILDTYPE=Debug -j16 |
| 362 ./webkit/tools/layout_tests/run_webkit_tests.sh --debug media/\* |
| OLD | NEW |