 Chromium Code Reviews
 Chromium Code Reviews Issue 4533003:
  patched ffmpeg nov 2  (Closed) 
  Base URL: svn://chrome-svn/chrome/trunk/deps/third_party/ffmpeg/
    
  
    Issue 4533003:
  patched ffmpeg nov 2  (Closed) 
  Base URL: svn://chrome-svn/chrome/trunk/deps/third_party/ffmpeg/| OLD | NEW | 
|---|---|
| 1 Contains the sources used to compile FFmpeg binaries used by Google Chrome and | 1 Contains the sources used to compile FFmpeg binaries used by Google Chrome and | 
| 2 Chromium. | 2 Chromium. | 
| 3 | 3 | 
| 4 The FFmpeg source is from Alexander Strange's ffmpeg-mt branch: | 4 The FFmpeg source is from Alexander Strange's ffmpeg-mt branch: | 
| 5 git://gitorious.org/~astrange/ffmpeg/ffmpeg-mt.git | 5 git://gitorious.org/~astrange/ffmpeg/ffmpeg-mt.git | 
| 6 Date: Oct 10 2010 | 6 Date: Nov 02 2010 | 
| 7 Commit: 3f7521893b9072181763ea176ef8da0c0ad1922a | 7 Commit: | 
| 8 This corresponds to r25432 in the mainline ffmpeg repository. | 8 This corresponds to r2???? in the mainline ffmpeg repository. | 
| 
Tom Finegan
2010/11/05 14:21:33
Should correct this...
 | |
| 9 | 9 | 
| 10 libvpx source | 10 libvpx source | 
| 11 git://review.webmproject.org/libvpx.git | 11 git://review.webmproject.org/libvpx.git | 
| 12 Date: Oct 22 2010 | 12 Date: Nov 02 2010 | 
| 13 Commit: 09bcc1f710ea65dc158639479288fb1908ff0c53 | 13 Commit: | 
| 14 Version is v0.9.2-125-g3b9e72b | 14 Version is v0.9.5 | 
| 15 | 15 | 
| 16 swscale source is optional. | 16 swscale source is optional. | 
| 17 git://git.ffmpeg.org/libswscale/ | 17 git://git.ffmpeg.org/libswscale/ | 
| 18 Date: Oct 11 2010 | 18 Date: Nov 02 2010 | 
| 19 Commit: fae6720e516a0c1448a22b4a5cbc67e6819c965e | 19 Commit: | 
| 20 | 20 | 
| 21 The static_pthread_O2.patch does two things. First, it uses -O2 instead of | 21 The static_pthread_O2.patch does two things. First, it uses -O2 instead of | 
| 22 -O3 to build ffmpeg, improving size and performance for Pentium4. | 22 -O3 to build ffmpeg, improving size and performance for Pentium4. | 
| 23 Second, the patch statically links pthreadGC2 into avcodec-52.dll on Windows. | 23 Second, the patch statically links pthreadGC2 into avcodec-52.dll on Windows. | 
| 24 This reduces the number of DLLs required for distribution, and improving | 24 This reduces the number of DLLs required for distribution, and improving | 
| 25 download and startup time. | 25 download and startup time. | 
| 26 | 26 | 
| 27 The following process is intended to run from msys | 27 The following process is intended to run from msys | 
| 28 | 28 | 
| 29 Steps for extracting: | 29 Steps for extracting: | 
| (...skipping 14 matching lines...) Expand all Loading... | |
| 44 patch -p1 --no-backup-if-mismatch < ../patches/ugly/07_get_bits_overrun.p atch | 44 patch -p1 --no-backup-if-mismatch < ../patches/ugly/07_get_bits_overrun.p atch | 
| 45 patch -p1 --no-backup-if-mismatch < ../patches/ugly/08_enforce_theora_oob .patch | 45 patch -p1 --no-backup-if-mismatch < ../patches/ugly/08_enforce_theora_oob .patch | 
| 46 patch -p1 --no-backup-if-mismatch < ../patches/ugly/09_enforce_vorbis_oob _divzero.patch | 46 patch -p1 --no-backup-if-mismatch < ../patches/ugly/09_enforce_vorbis_oob _divzero.patch | 
| 47 patch -p1 --no-backup-if-mismatch < ../patches/ugly/10_aac_oob_read.patch | 47 patch -p1 --no-backup-if-mismatch < ../patches/ugly/10_aac_oob_read.patch | 
| 48 patch -p1 --no-backup-if-mismatch < ../patches/to_upstream/11_mkv_buffer_ overflow.patch | 48 patch -p1 --no-backup-if-mismatch < ../patches/to_upstream/11_mkv_buffer_ overflow.patch | 
| 49 patch -p1 --no-backup-if-mismatch < ../patches/to_upstream/12_ogg_seek_to _zero.patch | 49 patch -p1 --no-backup-if-mismatch < ../patches/to_upstream/12_ogg_seek_to _zero.patch | 
| 50 patch -p1 --no-backup-if-mismatch < ../patches/ugly/13_remove_avcore.patc h | 50 patch -p1 --no-backup-if-mismatch < ../patches/ugly/13_remove_avcore.patc h | 
| 51 patch -p1 --no-backup-if-mismatch < ../patches/to_upstream/14_vp8_encode_ options.patch | 51 patch -p1 --no-backup-if-mismatch < ../patches/to_upstream/14_vp8_encode_ options.patch | 
| 52 patch -p1 --no-backup-if-mismatch < ../patches/to_upstream/15_webp_ffmpeg .patch | 52 patch -p1 --no-backup-if-mismatch < ../patches/to_upstream/15_webp_ffmpeg .patch | 
| 53 patch -p1 --no-backup-if-mismatch < ../patches/to_upstream/16_neon_offset s.patch | 53 patch -p1 --no-backup-if-mismatch < ../patches/to_upstream/16_neon_offset s.patch | 
| 54 patch -p1 --no-backup-if-mismatch < ../patches/to_upstream/17_mpegthread. patch | |
| 55 patch -p1 --no-backup-if-mismatch < ../patches/to_upstream/18_respect_sws cale.patch | |
| 54 cd .. | 56 cd .. | 
| 55 | 57 | 
| 56 There is also a script "make_src_tree.sh" that automates most of the steps | 58 There is also a script "make_src_tree.sh" that automates most of the steps | 
| 57 above for you. It is currently only tested on linux. | 59 above for you. It is currently only tested on linux. | 
| 58 | 60 | 
| 59 NOTE: Under Windows it is recommended to use Chromium's MinGW/MSYS environment | 61 NOTE: Under Windows it is recommended to use Chromium's MinGW/MSYS environment | 
| 60 or 7-Zip to extract the archives. We've experienced issues when using WinRAR. | 62 or 7-Zip to extract the archives. We've experienced issues when using WinRAR. | 
| 61 | 63 | 
| 62 Since FFmpeg is sandboxed inside the render process, we're only interested in | 64 Since FFmpeg is sandboxed inside the render process, we're only interested in | 
| 63 building the absolute minimum. | 65 building the absolute minimum. | 
| (...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 140 # cd ffmpeg-mt | 142 # cd ffmpeg-mt | 
| 141 # tar xf ../libswscale.tar.gz | 143 # tar xf ../libswscale.tar.gz | 
| 142 # cd .. | 144 # cd .. | 
| 143 | 145 | 
| 144 # 3) Apply patches: | 146 # 3) Apply patches: | 
| 145 rm -rf orig | 147 rm -rf orig | 
| 146 cp -R ffmpeg-mt orig | 148 cp -R ffmpeg-mt orig | 
| 147 cd ffmpeg-mt | 149 cd ffmpeg-mt | 
| 148 patch -p1 --no-backup-if-mismatch < ../patches/to_upstream/01_static_pthr ead_O2.patch | 150 patch -p1 --no-backup-if-mismatch < ../patches/to_upstream/01_static_pthr ead_O2.patch | 
| 149 cd .. | 151 cd .. | 
| 150 diff -rpu -N orig ffmpeg-mt | 152 diff -wurp -N orig ffmpeg-mt | 
| 151 diff -rpu -N orig ffmpeg-mt >patches/to_upstream/01_static_pthread_O2.pat ch | 153 diff -wurp -N orig ffmpeg-mt >patches/to_upstream/01_static_pthread_O2.pa tch | 
| 152 | 154 | 
| 153 rm -rf orig | 155 rm -rf orig | 
| 154 cp -R ffmpeg-mt orig | 156 cp -R ffmpeg-mt orig | 
| 155 cd ffmpeg-mt | 157 cd ffmpeg-mt | 
| 156 patch -p1 --no-backup-if-mismatch < ../patches/to_upstream/02_mov_dref_lo oping.patch | 158 patch -p1 --no-backup-if-mismatch < ../patches/to_upstream/02_mov_dref_lo oping.patch | 
| 157 cd .. | 159 cd .. | 
| 158 diff -rpu -N orig ffmpeg-mt | 160 diff -wurp -N orig ffmpeg-mt | 
| 159 diff -rpu -N orig ffmpeg-mt >patches/to_upstream/02_mov_dref_looping.patc h | 161 diff -wurp -N orig ffmpeg-mt >patches/to_upstream/02_mov_dref_looping.pat ch | 
| 160 | 162 | 
| 161 rm -rf orig | 163 rm -rf orig | 
| 162 cp -R ffmpeg-mt orig | 164 cp -R ffmpeg-mt orig | 
| 163 cd ffmpeg-mt | 165 cd ffmpeg-mt | 
| 164 patch -p1 --no-backup-if-mismatch < ../patches/to_upstream/03_mpeg4_video _to_elementary_stream.patch | 166 patch -p1 --no-backup-if-mismatch < ../patches/to_upstream/03_mpeg4_video _to_elementary_stream.patch | 
| 165 cd .. | 167 cd .. | 
| 166 diff -rpu -N orig ffmpeg-mt | 168 diff -wurp -N orig ffmpeg-mt | 
| 167 diff -rpu -N orig ffmpeg-mt >patches/to_upstream/03_mpeg4_video_to_elemen tary_stream.patch | 169 diff -wurp -N orig ffmpeg-mt >patches/to_upstream/03_mpeg4_video_to_eleme ntary_stream.patch | 
| 168 | 170 | 
| 169 rm -rf orig | 171 rm -rf orig | 
| 170 cp -R ffmpeg-mt orig | 172 cp -R ffmpeg-mt orig | 
| 171 cd ffmpeg-mt | 173 cd ffmpeg-mt | 
| 172 patch -p1 --no-backup-if-mismatch < ../patches/to_upstream/04_vc1_bsfs.pa tch | 174 patch -p1 --no-backup-if-mismatch < ../patches/to_upstream/04_vc1_bsfs.pa tch | 
| 173 cd .. | 175 cd .. | 
| 174 diff -rpu -N orig ffmpeg-mt | 176 diff -wurp -N orig ffmpeg-mt | 
| 175 diff -rpu -N orig ffmpeg-mt >patches/to_upstream/04_vc1_bsfs.patch | 177 diff -wurp -N orig ffmpeg-mt >patches/to_upstream/04_vc1_bsfs.patch | 
| 176 | 178 | 
| 177 rm -rf orig | 179 rm -rf orig | 
| 178 cp -R ffmpeg-mt orig | 180 cp -R ffmpeg-mt orig | 
| 179 cd ffmpeg-mt | 181 cd ffmpeg-mt | 
| 180 patch -p1 --no-backup-if-mismatch < ../patches/to_upstream/05_respect_fla c_dirac_configure.patch | 182 patch -p1 --no-backup-if-mismatch < ../patches/to_upstream/05_respect_fla c_dirac_configure.patch | 
| 181 cd .. | 183 cd .. | 
| 182 diff -rpu -N orig ffmpeg-mt | 184 diff -wurp -N orig ffmpeg-mt | 
| 183 diff -rpu -N orig ffmpeg-mt >patches/to_upstream/05_respect_flac_dirac_co nfigure.patch | 185 diff -wurp -N orig ffmpeg-mt >patches/to_upstream/05_respect_flac_dirac_c onfigure.patch | 
| 184 | 186 | 
| 185 rm -rf orig | 187 rm -rf orig | 
| 186 cp -R ffmpeg-mt orig | 188 cp -R ffmpeg-mt orig | 
| 187 cd ffmpeg-mt | 189 cd ffmpeg-mt | 
| 188 patch -p1 --no-backup-if-mismatch < ../patches/to_upstream/06_remove_deco de_on_config_no_svq3.patch | 190 patch -p1 --no-backup-if-mismatch < ../patches/to_upstream/06_remove_deco de_on_config_no_svq3.patch | 
| 189 cd .. | 191 cd .. | 
| 190 diff -rpu -N orig ffmpeg-mt | 192 diff -wurp -N orig ffmpeg-mt | 
| 191 diff -rpu -N orig ffmpeg-mt >patches/to_upstream/06_remove_decode_on_conf ig_no_svq3.patch | 193 diff -wurp -N orig ffmpeg-mt >patches/to_upstream/06_remove_decode_on_con fig_no_svq3.patch | 
| 192 | 194 | 
| 193 rm -rf orig | 195 rm -rf orig | 
| 194 cp -R ffmpeg-mt orig | 196 cp -R ffmpeg-mt orig | 
| 195 cd ffmpeg-mt | 197 cd ffmpeg-mt | 
| 196 patch -p1 --no-backup-if-mismatch < ../patches/ugly/07_get_bits_overrun.p atch | 198 patch -p1 --no-backup-if-mismatch < ../patches/ugly/07_get_bits_overrun.p atch | 
| 197 cd .. | 199 cd .. | 
| 198 diff -rpu -N orig ffmpeg-mt | 200 diff -wurp -N orig ffmpeg-mt | 
| 199 diff -rpu -N orig ffmpeg-mt >patches/ugly/07_get_bits_overrun.patch | 201 diff -wurp -N orig ffmpeg-mt >patches/ugly/07_get_bits_overrun.patch | 
| 200 | 202 | 
| 201 rm -rf orig | 203 rm -rf orig | 
| 202 cp -R ffmpeg-mt orig | 204 cp -R ffmpeg-mt orig | 
| 203 cd ffmpeg-mt | 205 cd ffmpeg-mt | 
| 204 patch -p1 --no-backup-if-mismatch < ../patches/ugly/08_enforce_theora_oob .patch | 206 patch -p1 --no-backup-if-mismatch < ../patches/ugly/08_enforce_theora_oob .patch | 
| 205 cd .. | 207 cd .. | 
| 206 diff -rpu -N orig ffmpeg-mt | 208 diff -wurp -N orig ffmpeg-mt | 
| 207 diff -rpu -N orig ffmpeg-mt >patches/ugly/08_enforce_theora_oob.patch | 209 diff -wurp -N orig ffmpeg-mt >patches/ugly/08_enforce_theora_oob.patch | 
| 208 | 210 | 
| 209 rm -rf orig | 211 rm -rf orig | 
| 210 cp -R ffmpeg-mt orig | 212 cp -R ffmpeg-mt orig | 
| 211 cd ffmpeg-mt | 213 cd ffmpeg-mt | 
| 212 patch -p1 --no-backup-if-mismatch < ../patches/ugly/09_enforce_vorbis_oob _divzero.patch | 214 patch -p1 --no-backup-if-mismatch < ../patches/ugly/09_enforce_vorbis_oob _divzero.patch | 
| 213 cd .. | 215 cd .. | 
| 214 diff -rpu -N orig ffmpeg-mt | 216 diff -wurp -N orig ffmpeg-mt | 
| 215 diff -rpu -N orig ffmpeg-mt >patches/ugly/09_enforce_vorbis_oob_divzero.p atch | 217 diff -wurp -N orig ffmpeg-mt >patches/ugly/09_enforce_vorbis_oob_divzero. patch | 
| 216 | 218 | 
| 217 rm -rf orig | 219 rm -rf orig | 
| 218 cp -R ffmpeg-mt orig | 220 cp -R ffmpeg-mt orig | 
| 219 cd ffmpeg-mt | 221 cd ffmpeg-mt | 
| 220 patch -p1 --no-backup-if-mismatch < ../patches/ugly/10_aac_oob_read.patch | 222 patch -p1 --no-backup-if-mismatch < ../patches/ugly/10_aac_oob_read.patch | 
| 221 cd .. | 223 cd .. | 
| 222 diff -rpu -N orig ffmpeg-mt | 224 diff -wurp -N orig ffmpeg-mt | 
| 223 diff -rpu -N orig ffmpeg-mt >patches/ugly/10_aac_oob_read.patch | 225 diff -wurp -N orig ffmpeg-mt >patches/ugly/10_aac_oob_read.patch | 
| 224 | 226 | 
| 225 rm -rf orig | 227 rm -rf orig | 
| 226 cp -R ffmpeg-mt orig | 228 cp -R ffmpeg-mt orig | 
| 227 cd ffmpeg-mt | 229 cd ffmpeg-mt | 
| 228 patch -p1 --no-backup-if-mismatch < ../patches/to_upstream/11_mkv_buffer_ overflow.patch | 230 patch -p1 --no-backup-if-mismatch < ../patches/to_upstream/11_mkv_buffer_ overflow.patch | 
| 229 cd .. | 231 cd .. | 
| 230 diff -rpu -N orig ffmpeg-mt | 232 diff -wurp -N orig ffmpeg-mt | 
| 231 diff -rpu -N orig ffmpeg-mt >patches/to_upstream/11_mkv_buffer_overflow.p atch | 233 diff -wurp -N orig ffmpeg-mt >patches/to_upstream/11_mkv_buffer_overflow. patch | 
| 232 | 234 | 
| 233 rm -rf orig | 235 rm -rf orig | 
| 234 cp -R ffmpeg-mt orig | 236 cp -R ffmpeg-mt orig | 
| 235 cd ffmpeg-mt | 237 cd ffmpeg-mt | 
| 236 patch -p1 --no-backup-if-mismatch < ../patches/to_upstream/12_ogg_seek_to _zero.patch | 238 patch -p1 --no-backup-if-mismatch < ../patches/to_upstream/12_ogg_seek_to _zero.patch | 
| 237 cd .. | 239 cd .. | 
| 238 diff -rpu -N orig ffmpeg-mt | 240 diff -wurp -N orig ffmpeg-mt | 
| 239 diff -rpu -N orig ffmpeg-mt >patches/to_upstream/12_ogg_seek_to_zero.patc h | 241 diff -wurp -N orig ffmpeg-mt >patches/to_upstream/12_ogg_seek_to_zero.pat ch | 
| 240 | 242 | 
| 241 rm -rf orig | 243 rm -rf orig | 
| 242 cp -R ffmpeg-mt orig | 244 cp -R ffmpeg-mt orig | 
| 243 cd ffmpeg-mt | 245 cd ffmpeg-mt | 
| 244 patch -p1 --no-backup-if-mismatch < ../patches/ugly/13_remove_avcore.patc h | 246 patch -p1 --no-backup-if-mismatch < ../patches/ugly/13_remove_avcore.patc h | 
| 245 cd .. | 247 cd .. | 
| 246 diff -rpu -N orig ffmpeg-mt | 248 diff -wurp -N orig ffmpeg-mt | 
| 247 diff -rpu -N orig ffmpeg-mt >patches/ugly/13_remove_avcore.patch | 249 diff -wurp -N orig ffmpeg-mt >patches/ugly/13_remove_avcore.patch | 
| 248 | 250 | 
| 249 rm -rf orig | 251 rm -rf orig | 
| 250 cp -R ffmpeg-mt orig | 252 cp -R ffmpeg-mt orig | 
| 251 cd ffmpeg-mt | 253 cd ffmpeg-mt | 
| 252 patch -p1 --no-backup-if-mismatch < ../patches/to_upstream/14_vp8_encode_ options.patch | 254 patch -p1 --no-backup-if-mismatch < ../patches/to_upstream/14_vp8_encode_ options.patch | 
| 253 cd .. | 255 cd .. | 
| 254 diff -rpu -N orig ffmpeg-mt | 256 diff -wurp -N orig ffmpeg-mt | 
| 255 diff -rpu -N orig ffmpeg-mt >patches/to_upstream/14_vp8_encode_options.pa tch | 257 diff -wurp -N orig ffmpeg-mt >patches/to_upstream/14_vp8_encode_options.p atch | 
| 256 | 258 | 
| 257 rm -rf orig | 259 rm -rf orig | 
| 258 cp -R ffmpeg-mt orig | 260 cp -R ffmpeg-mt orig | 
| 259 cd ffmpeg-mt | 261 cd ffmpeg-mt | 
| 260 patch -p1 --no-backup-if-mismatch < ../patches/to_upstream/15_webp_ffmpeg .patch | 262 patch -p1 --no-backup-if-mismatch < ../patches/to_upstream/15_webp_ffmpeg .patch | 
| 261 cd .. | 263 cd .. | 
| 262 diff -rpu -N orig ffmpeg-mt | 264 diff -wurp -N orig ffmpeg-mt | 
| 263 diff -rpu -N orig ffmpeg-mt >patches/to_upstream/15_webp_ffmpeg.patch | 265 diff -wurp -N orig ffmpeg-mt >patches/to_upstream/15_webp_ffmpeg.patch | 
| 264 | 266 | 
| 265 rm -rf orig | 267 rm -rf orig | 
| 266 cp -R ffmpeg-mt orig | 268 cp -R ffmpeg-mt orig | 
| 267 cd ffmpeg-mt | 269 cd ffmpeg-mt | 
| 268 patch -p1 --no-backup-if-mismatch < ../patches/to_upstream/16_neon_offset s.patch | 270 patch -p1 --no-backup-if-mismatch < ../patches/to_upstream/16_neon_offset s.patch | 
| 269 cd .. | 271 cd .. | 
| 270 diff -rpu -N orig ffmpeg-mt | 272 diff -wurp -N orig ffmpeg-mt | 
| 271 diff -rpu -N orig ffmpeg-mt >patches/to_upstream/16_neon_offsets.patch | 273 diff -wurp -N orig ffmpeg-mt >patches/to_upstream/16_neon_offsets.patch | 
| 274 | |
| 275 rm -rf orig | |
| 276 cp -R ffmpeg-mt orig | |
| 277 cd ffmpeg-mt | |
| 278 patch -p1 --no-backup-if-mismatch < ../patches/to_upstream/17_mpegthread. patch | |
| 279 cd .. | |
| 280 diff -wurp -N orig ffmpeg-mt | |
| 281 diff -wurp -N orig ffmpeg-mt >patches/to_upstream/17_mpegthread.patch | |
| 282 | |
| 283 rm -rf orig | |
| 284 cp -R ffmpeg-mt orig | |
| 285 cd ffmpeg-mt | |
| 286 patch -p1 --no-backup-if-mismatch < ../patches/to_upstream/18_respect_sws cale.patch | |
| 287 cd .. | |
| 288 diff -wurp -N orig ffmpeg-mt | |
| 289 diff -wurp -N orig ffmpeg-mt >patches/to_upstream/18_respect_swscale.patc h | |
| 272 | 290 | 
| 273 Testing | 291 Testing | 
| 274 Updates should be tested against | 292 Updates should be tested against | 
| 275 http://wiki.xiph.org/TheoraTestsuite | 293 http://wiki.xiph.org/TheoraTestsuite | 
| 276 WebKit Layout Tests | 294 WebKit Layout Tests | 
| 277 http://www.chromium.org/developers/testing/webkit-layout-tests | 295 http://www.chromium.org/developers/testing/webkit-layout-tests | 
| 278 make -j16 -r test_shell BUILDTYPE=Debug | 296 make -r test_shell BUILDTYPE=Debug | 
| 279 ./src/webkit/tools/layout_tests/run_webkit_tests.sh --debug media/\* | 297 ./src/webkit/tools/layout_tests/run_webkit_tests.sh --debug media/\* | 
| 280 | 298 | 
| OLD | NEW |