summaryrefslogtreecommitdiffstats
path: root/third_party/ffmpeg
Commit message (Collapse)AuthorAgeFilesLines
...
* Python script for auto-generating stub/def files for a list of signatures.ajwong@chromium.org2009-06-032-0/+1144
| | | | | | | | This python script takes a list of C-style signatures and generates either a windows def file, or a C++ stub file that allows for binding of functions via dlopen/dlsym. This is used to support delay loading in windows and simulate it on posix systems. Review URL: http://codereview.chromium.org/113803 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@17534 0039d316-1c4b-4281-b951-d872f2087c98
* Better seeking for <video> and <audio>hclam@chromium.org2009-05-291-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There two problems surrouding the seek feature for <video> and <audio>: 1. After each seek, the time goes back and forth until stable, so user has to "fight" the time bar for seeking. 2. When playing an audio file, sounds plays a litte bit and then the play position rewinded and plays again. The cause of above problems: 1. There are demuxed packets and decoded buffers inside decoders and renderers. When seek is requested only demuxer flush its buffers, decoders and renderers still plays a little bit of the old buffer, thus updating the time incorrectly. 2. When playing a media file, WebKit does: 1. load() 2. pause() 3. seek(0.0f) 4. play() Since load() does prerolling internally, there were some decoded buffers in the renderers, and when seek(0.0f) is fired the play position reset to time 0 and decode starts from there again, the internal buffer queue in the renderer would then look like: | 0.0s | | 0.1s | | 0.2s | | 0.0s | | 0.1s | ... Thus playback at the beginning goes back and forth. To solve the seek problems, here's what is done in this CL: 1. All decoders and renderers should receive the seek signal. 2. When seek signal is received, discard all buffers and schedule read again. With this CL, we can now scrub an <audio> tag with the timebar. The downside of this fix is that we don't have prerolling (notice that due to how WebKit starts playing back we didn't preroll anyway...), this should be fixed in another CL. Review URL: http://codereview.chromium.org/113891 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@17242 0039d316-1c4b-4281-b951-d872f2087c98
* Make the GUID upper case (so Visual Studio won't try to correctsgk@google.com2009-05-261-1/+1
| | | | | | | | | it by asking to write out a "modified" chrome.sln). BUG=none TEST=none Review URL: http://codereview.chromium.org/113860 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@16951 0039d316-1c4b-4281-b951-d872f2087c98
* Adding ffmpeg_binaries target which copies FFmpeg binaries alongside ↵ajwong@chromium.org2009-05-232-1/+47
| | | | | | | | chrome.dll if present. Review URL: http://codereview.chromium.org/114048 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@16826 0039d316-1c4b-4281-b951-d872f2087c98
* New FFmpeg public API headers to match our source tarball in deps.scherkus@chromium.org2009-05-229-194/+382
| | | | | | Review URL: http://codereview.chromium.org/113748 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@16771 0039d316-1c4b-4281-b951-d872f2087c98
* Temporary fix for MP3 decoding by duplicating packets before handing them to ↵scherkus@chromium.org2009-05-201-0/+1
| | | | | | | | | | the decoder. Turns out packets filled out by av_read_frame() were being modifying on subsequent calls to av_read_frame(). Might be a case of setting the data pointer to internal memory as opposed to allocated memory. Review URL: http://codereview.chromium.org/115561 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@16525 0039d316-1c4b-4281-b951-d872f2087c98
* Use av_rescale_q() for converting FFmpeg timestamps to base::TimeDelta ↵scherkus@chromium.org2009-05-201-0/+1
| | | | | | | | | | | | (second attempt). Previously we were using integer math to convert to microseconds, but depending on the frame rate and packet size we could introduce enough error that could accumulate and introduce audio/video synchronization drift. av_rescale_q() is a simple function but is designed to minimize error as much as possible. Second attempt since I forgot to manually resolve av_rescale_q() for unittests. Review URL: http://codereview.chromium.org/113619 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@16514 0039d316-1c4b-4281-b951-d872f2087c98
* Revert change 16453 because it broke the build.nsylvain@chromium.org2009-05-201-1/+0
| | | | | | Review URL: http://codereview.chromium.org/113615 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@16459 0039d316-1c4b-4281-b951-d872f2087c98
* Use av_rescale_q() for converting FFmpeg timestamps to base::TimeDelta.scherkus@chromium.org2009-05-201-0/+1
| | | | | | | | Previously we were using integer math to convert to microseconds, but depending on the frame rate and packet size we could introduce enough error that could accumulate and introduce audio/video synchronization drift. av_rescale_q() is a simple function but is designed to minimize error as much as possible. Review URL: http://codereview.chromium.org/113598 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@16453 0039d316-1c4b-4281-b951-d872f2087c98
* Add a 'cygwin' target to execute setup_mount.bat explicitly as asgk@google.com2009-05-111-0/+1
| | | | | | | | dependency of targets that need it (that is, any target with 'rules' or 'actions'). Review URL: http://codereview.chromium.org/115154 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@15774 0039d316-1c4b-4281-b951-d872f2087c98
* Retry of enabling video on linux. See related review: ↵ajwong@chromium.org2009-05-081-1/+1
| | | | | | | | | | | | | http://codereview.chromium.org/100195 The effective changes were: 1) Adding av_register_protocol into the def file for ffmpeg in windows. 2) Commenting out the drawing glue code for non-skia platforms. 3) Fixing some mac compilation error caused by code drift. Review URL: http://codereview.chromium.org/99306 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@15611 0039d316-1c4b-4281-b951-d872f2087c98
* Clean up FFmpeg media formats and switch to using ↵scherkus@chromium.org2009-04-291-1/+1
| | | | | | | | | | av_get_bits_per_sample_format(). Before we were relying on codecs setting bits_per_raw_sample, which turns out isn't a valid assumption at all (i.e., vorbis). However, codecs always set the sample format so we can use the FFmpeg utility function av_get_bits_per_sample_format() to convert the SampleFormat enum to an integer number of bits. Review URL: http://codereview.chromium.org/99160 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@14808 0039d316-1c4b-4281-b951-d872f2087c98
* Implemented FFmpegDemuxer::Seek() via av_seek_frame().scherkus@chromium.org2009-04-151-0/+1
| | | | | | | | Includes refactoring FFmpegDemuxer to use a MessageQueue as opposed to a PlatformThread, cleaning up the unit tests and setting IsDiscontinuous() after a seek. Review URL: http://codereview.chromium.org/67128 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@13752 0039d316-1c4b-4281-b951-d872f2087c98
* Restore -Wall to Linux build and set up for -Werror.sgk@google.com2009-04-091-3/+0
| | | | | | | | | | | | | | | * Add -Wall to build/common.gypi (and -Werror, commented out for now). * Have build/external_code.gypi remove -Wall (and -Werror). * Remove chromium_code definition from build/all.gyp. * Remove chromium_code definitions from third_party/ *.gyp files. * Remove scons-specific -Werror removal in webkit.gyp. * Remove unused variables from: base/clipboard_linux.cc chrome/browser/gtk/download_shelf_gtk.cc chrome/browser/gtk/bookmark_bar_gtk.cc Review URL: http://codereview.chromium.org/66001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@13478 0039d316-1c4b-4281-b951-d872f2087c98
* Checking in FFmpeg benchmarking application.scherkus@chromium.org2009-04-091-0/+1
| | | | | | | | We use this to compare different compiler setting, different run-time flags and different branches and revisions of FFmpeg. Review URL: http://codereview.chromium.org/63068 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@13468 0039d316-1c4b-4281-b951-d872f2087c98
* Convert /third_party/ffmpeg to gyp for Windows builds.scherkus@chromium.org2009-04-075-222/+136
| | | | | | | | To smooth out the transition I left in using_ffmpeg.vsprops until the rest of Windows switches over to gyp. I also took the opportunity to ditch the .bat file in favour of python. Review URL: http://codereview.chromium.org/63054 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@13270 0039d316-1c4b-4281-b951-d872f2087c98
* Update public FFmpeg header files from r16647 to r18286.scherkus@chromium.org2009-04-0227-711/+1130
| | | | | | | | This also includes bumping the version of avutil from 49 to 50, which means the generated libs and build files are also updated. Review URL: http://codereview.chromium.org/56129 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@13003 0039d316-1c4b-4281-b951-d872f2087c98
* Uses FFmpeg in chrome/rendererhclam@chromium.org2009-03-191-1/+1
| | | | | | | | | | | - Have chrome/renderer to use FFmpeg - Added using_media.vsprops to all affected projects that depends on chrome/renderer. - Added lib path "$(OutDir)\lib" to essential.vsprops Review URL: http://codereview.chromium.org/48118 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@12071 0039d316-1c4b-4281-b951-d872f2087c98
* Check in C99 compatibility headers for MSVC and FFmpeg.scherkus@chromium.org2009-02-193-1/+37
| | | | | | | | | | MSVC doesn't include <stdint.h> and <inttypes.h>, so in order for MSVC to include FFmpeg headers we need to provide them. The headers aren't complete, but contain the bare minimum for compatibility. Although we could add these types to base/basictypes.h, I'm afraid of people using C99 types by accident (uint8_t instead of uint8). Also, base/basictypes.h includes C++ code which makes including it from an extern "C" section problematic. Review URL: http://codereview.chromium.org/21521 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@10048 0039d316-1c4b-4281-b951-d872f2087c98
* Checking in basic FFmpeg import library generator project and public header ↵scherkus@chromium.org2009-02-1932-0/+6915
files. Similar to V8Bindings_prebuild, ffmpeg.vcproj is a Utility project that calls a .bat file to build stuff. Whenever we need to link to an FFmpeg function, we simply add it to the corresponding .def file and we're set! Review URL: http://codereview.chromium.org/23021 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@10047 0039d316-1c4b-4281-b951-d872f2087c98