Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(194)

Side by Side Diff: README.chromium

Issue 789004: ffmpeg roll of source to mar 9 version... (Closed) Base URL: svn://chrome-svn/chrome/trunk/deps/third_party/ffmpeg/
Patch Set: '' Created 10 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | libswscale.tar.gz » ('j') | patched-ffmpeg-mt/libavcodec/mpeg4video_es_bsf.c » ('J')
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 Commit: 42b521db9177ed2d4e62845659fdcd44c59757f9 6 Commit: 42b521db9177ed2d4e62845659fdcd44c59757f9
7 7
8 This corresponds to r18769 in the mainline ffmpeg repository. 8 This corresponds to r18769 in the mainline ffmpeg repository.
9 9
10 The Theora patches are also from the ffmpeg-mt branch above. The git commit 10 The Theora patches are also from the ffmpeg-mt branch above. The git commit
11 numbers and the corresponding svn revisions for them from ffmpeg mainline can 11 numbers and the corresponding svn revisions for them from ffmpeg mainline can
12 be found at the top of each patch. 12 be found at the top of each patch.
13 13
14 The libswscale source is from the public libswscale repository: 14 The libswscale source is from the public libswscale repository:
15 git://git.ffmpeg.org/libswscale 15 git://git.ffmpeg.org/libswscale
16 Commit: 69fc1002e2c92aac84dccc5047141feefc94b309 16 Commit: 69fc1002e2c92aac84dccc5047141feefc94b309
17 17
18 The static_pthread_O2.patch does two things. First, it uses -O2 instead of 18 The static_pthread_O2.patch does two things. First, it uses -O2 instead of
19 -O3 to build ffmpeg. This yields a significant savings in binary size, and 19 -O3 to build ffmpeg. This yields a significant savings in binary size, and
20 also seems to improve performance (lower CPU usage). Second, the patch adds 20 also seems to improve performance (lower CPU usage). Second, the patch adds
21 a modification that statically links pthreadGC2 into avcodec-52.dll on an 21 a modification that statically links pthreadGC2 into avcodec-52.dll on an
22 MSYS/MinGW build in Windows. This reduces the number of DLLs required for 22 MSYS/MinGW build in Windows. This reduces the number of DLLs required for
23 distribution, and lowers the total size of the binaries. 23 distribution, and lowers the total size of the binaries.
24 24
25 Steps for extracting: 25 Steps for extracting:
26 1) Extract ffmpeg-mt, which creates the directory ffmpeg-mt: 26 1) Extract ffmpeg-mt, which creates the directory ffmpeg-mt:
27 tar xzvf ffmpeg-mt.tar.gz 27 tar xf ffmpeg-mt.tar.gz
28 2) Descend into the newly created ffmpeg-mt directory: 28 3) Extract libswscale in place:
29 cd ffmpeg-mt 29 cd ffmpeg-mt
30 3) Extract libswscale in place: 30 tar xf ../libswscale.tar.gz
31 tar xzvf ../libswscale.tar.gz
32 4) Apply the static_pthread_O2.patch: 31 4) Apply the static_pthread_O2.patch:
33 patch -p1 < ../patches/to_upstream/01_static_pthread_O2.patch 32 patch -p1 < ../patches/to_upstream/01_static_pthread_O2.patch
34 5) Apply additional security patches: 33 5) Apply additional security patches:
35 patch -p1 < ../patches/to_upstream/02_mov_dref_looping.patch 34 patch -p1 < ../patches/to_upstream/02_mov_dref_looping.patch
36 patch -p1 < ../patches/to_upstream/03_aac_zero_bands.patch
37 patch -p1 < ../patches/to_upstream/04_mpeg4_video_to_elementary_stream.pa tch 35 patch -p1 < ../patches/to_upstream/04_mpeg4_video_to_elementary_stream.pa tch
38 patch -p1 < ../patches/to_upstream/05_vc1_bsfs.patch 36 patch -p1 < ../patches/to_upstream/05_vc1_bsfs.patch
39 patch -p1 < ../patches/to_upstream/06_respect_flac_dirac_configure.patch 37 patch -p1 < ../patches/to_upstream/06_respect_flac_dirac_configure.patch
40 patch -p1 < ../patches/to_upstream/08_ogg_seek_missing_first_frame.patch 38 patch -p1 < ../patches/to_upstream/08_ogg_seek_missing_first_frame.patch
41 patch -p1 < ../patches/to_upstream/09_remove_decode_on_config_no_svq3.pat ch 39 patch -p1 < ../patches/to_upstream/09_remove_decode_on_config_no_svq3.pat ch
42 patch -p1 < ../patches/to_upstream/10_resolve_text_relocations.patch
43 patch -p1 < ../patches/ugly/13_get_bits_overrun.patch 40 patch -p1 < ../patches/ugly/13_get_bits_overrun.patch
44 patch -p1 < ../patches/ugly/14_enforce_theora_oob.patch 41 patch -p1 < ../patches/ugly/14_enforce_theora_oob.patch
45 patch -p1 < ../patches/ugly/15_enforce_vorbis_oob.patch 42 patch -p1 < ../patches/ugly/15_enforce_vorbis_oob_divzero.patch
46 patch -p1 < ../patches/ugly/16_avoid_floor_divzero.patch 43 patch -p1 < ../patches/ugly/16_aac_oob_read.patch
47 patch -p1 < ../patches/ugly/17_aac_oob_read.patch
48 44
49 There is also a script "make_src_tree.sh" that automates most of the steps 45 There is also a script "make_src_tree.sh" that automates most of the steps
50 above for you. It is currently only tested on linux. 46 above for you. It is currently only tested on linux.
51 47
52 NOTE: Under Windows it is recommended to use Chromium's MinGW/MSYS environment 48 NOTE: Under Windows it is recommended to use Chromium's MinGW/MSYS environment
53 or 7-Zip to extract the archives. We've experienced issues when using WinRAR. 49 or 7-Zip to extract the archives. We've experienced issues when using WinRAR.
54 50
55 Since FFmpeg is sandboxed inside the render process, we're only interested in 51 Since FFmpeg is sandboxed inside the render process, we're only interested in
56 building the absolute minimum. 52 building the absolute minimum.
57 53
58 Example configure flags suitable for Chromium (Ogg+Theora+Vorbis), which will 54 Example configure flags suitable for Chromium (Ogg+Theora+Vorbis), which will
59 build and install to the directory ./chromium-ffmpeg: 55 build and install to the directory ./chromium-ffmpeg:
60 56
61 ./configure --disable-ffmpeg --disable-ffplay --disable-ffserver \ 57 ./configure --disable-ffmpeg --disable-ffplay --disable-ffserver \
62 --enable-shared --disable-static --disable-debug \ 58 --enable-shared --disable-static --disable-debug \
63 » --disable-network --disable-encoders --disable-decoders \ 59 » --disable-network --disable-encoders --disable-decoders \
64 » --disable-hwaccels --disable-muxers --disable-demuxers \ 60 » --disable-hwaccels --disable-muxers --disable-demuxers \
65 » --disable-parsers --disable-bsfs --disable-protocols \ 61 » --disable-parsers --disable-bsfs --disable-protocols \
66 » --disable-devices --disable-filters --disable-gpl \ 62 » --disable-devices --disable-filters --disable-gpl \
67 » --enable-decoder=theora --enable-decoder=vorbis \ 63 » --enable-decoder=theora --enable-decoder=vorbis \
68 » --enable-demuxer=ogg --enable-pthreads --enable-yasm \ 64 » --enable-demuxer=ogg --enable-pthreads --enable-yasm \
69 » --prefix=./chromium-ffmpeg 65 » --prefix=./chromium-ffmpeg
70 66
71 The following flags are used for Google Chrome, which also include non-free 67 The following flags are used for Google Chrome, which also include non-free
72 decoders (H.264, AAC and MP3): 68 decoders (H.264, AAC and MP3):
73 ./configure --disable-ffmpeg --disable-ffplay --disable-ffserver \ 69 ./configure --disable-ffmpeg --disable-ffplay --disable-ffserver \
74 --enable-shared --disable-static --disable-debug \ 70 --enable-shared --disable-static --disable-debug \
75 » --disable-network --disable-encoders --disable-decoders \ 71 » --disable-network --disable-encoders --disable-decoders \
76 » --disable-hwaccels --disable-muxers --disable-demuxers \ 72 » --disable-hwaccels --disable-muxers --disable-demuxers \
77 » --disable-parsers --disable-bsfs --disable-protocols \ 73 » --disable-parsers --disable-bsfs --disable-protocols \
78 » --disable-devices --disable-filters --disable-gpl \ 74 » --disable-devices --disable-filters --disable-gpl \
79 --enable-decoder=theora --enable-decoder=vorbis \ 75 --enable-decoder=theora --enable-decoder=vorbis \
80 » --enable-demuxer=ogg --enable-decoder=aac --enable-decoder=h264 \ 76 » --enable-demuxer=ogg --enable-decoder=aac --enable-decoder=h264 \
81 » --enable-decoder=mp3 --enable-demuxer=mp3 --enable-demuxer=mov \ 77 » --enable-decoder=mp3 --enable-demuxer=mp3 --enable-demuxer=mov \
82 » --enable-parser=mpegaudio --enable-pthreads --enable-yasm \ 78 » --enable-parser=mpegaudio --enable-pthreads --enable-yasm \
83 » --prefix=./chrome-ffmpeg 79 » --prefix=./chrome-ffmpeg
84 80
85 If building on Windows with Chromium's MinGW/MSYS environment, add the following : 81 If building on Windows with Chromium's MinGW/MSYS environment, add the following :
86 --target-os=mingw32 --enable-memalign-hack --cc=gcc-sjlj 82 --target-os=mingw32 --enable-memalign-hack --cc=gcc-sjlj
87 83
88 To build: 84 To build:
89 make 85 make
90 86
91 To install: 87 To install:
92 make install 88 make install
93 89
94 On Windows, run editbin.exe on the resulting DLLs to enable additional security 90 On Windows, run editbin.exe on the resulting DLLs to enable additional security
95 features: 91 features:
96 1) Start a Visual Studio command prompt: 92 1) Start a Visual Studio command prompt:
97 Start Menu 93 Start Menu
98 > Microsoft Visual Studio 2005 94 > Microsoft Visual Studio 2005
99 > Visual Studio Tools 95 > Visual Studio Tools
100 > Visual Studio 2005 Command Prompt 96 > Visual Studio 2005 Command Prompt
101 2) Change directories to where the DLLs were built 97 2) Change directories to where the DLLs were built
102 3) editbin.exe /NXCOMPAT /DYNAMICBASE *.dll 98 3) editbin.exe /NXCOMPAT /DYNAMICBASE *.dll
103 Now copy the resulting avcodec-52.dll, avformat-52.dll, and 99 Now copy the resulting avcodec-52.dll, avformat-52.dll, and
104 avutil-50.dll alongside chrome.exe for windows. 100 avutil-50.dll alongside chrome.exe for windows.
105 101
106 On Mac, copy the resulting libavcodec.52.dylib, libavformat.52.dylib, and 102 On Mac, copy the resulting libavcodec.52.dylib, libavformat.52.dylib, and
107 libavutil.50.dylib into the Chromium.app/Contents/MacOS folder alongside the 103 libavutil.50.dylib into the Chromium.app/Contents/MacOS folder alongside the
108 Chromium binary. 104 Chromium binary.
109 105
110 On Linux, copy the resulting libavcodec.so.52, libavformat.so.52, and 106 On Linux, copy the resulting libavcodec.so.52, libavformat.so.52, and
111 libavutil.so.50 alongside the chrome executable. 107 libavutil.so.50 alongside the chrome executable.
OLDNEW
« no previous file with comments | « no previous file | libswscale.tar.gz » ('j') | patched-ffmpeg-mt/libavcodec/mpeg4video_es_bsf.c » ('J')

Powered by Google App Engine
This is Rietveld 408576698