summaryrefslogtreecommitdiffstats
path: root/media
Commit message (Collapse)AuthorAgeFilesLines
* Move the ffmpeg loading function into media library.ajwong@chromium.org2009-04-184-0/+124
| | | | | | | | This will allow us to hide the platform specific library loading code from the main chrome code. Review URL: http://codereview.chromium.org/69027 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@13991 0039d316-1c4b-4281-b951-d872f2087c98
* Disabling the FFmpegDemuxerTest.ReadAndSeek test.scherkus@chromium.org2009-04-171-1/+3
| | | | | | | | | | There's a subtle threading bug that keeps popping up on the build bots. Will work on a fix. BUG=10653 Review URL: http://codereview.chromium.org/67252 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@13948 0039d316-1c4b-4281-b951-d872f2087c98
* Switched over to scoped_ptr_malloc and heap-allocated FFmpeg structures.scherkus@chromium.org2009-04-178-43/+58
| | | | | | | | | | Using heap-allocated FFmmpeg structures (notably AVFrame) improves our binary compatability with differing versions of FFmpeg. Some minor code cleanup as well. Review URL: http://codereview.chromium.org/67200 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@13907 0039d316-1c4b-4281-b951-d872f2087c98
* Windows low level audio small changescpu@google.com2009-04-162-17/+99
| | | | | | | | | | | - A fix to reported deadlock: don't start the real-time thread until the inital buffers are filled - A new unitest that uses a slow source, the idea is to try to repro the deadlock - Implements GetVolume and SetVolume Review URL: http://codereview.chromium.org/67154 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@13856 0039d316-1c4b-4281-b951-d872f2087c98
* improvements to media_bench (ffmpeg benchmarking application)fbarchard@chromium.org2009-04-151-8/+47
| | | | | | | | | -format output into columns -add -fast2 and -skip flags Review URL: http://codereview.chromium.org/69004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@13771 0039d316-1c4b-4281-b951-d872f2087c98
* Implemented FFmpegDemuxer::Seek() via av_seek_frame().scherkus@chromium.org2009-04-153-91/+313
| | | | | | | | 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
* Second part of the low level audio for Maccpu@chromium.org2009-04-146-68/+147
| | | | | | | | | | | -Fixed leaks (audiomanager singleton, audiostream) -Moved simple_sources to be common for all platforms -Added trivial check for sinesource -Added some logic on the audio callback, not used yet Review URL: http://codereview.chromium.org/67058 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@13713 0039d316-1c4b-4281-b951-d872f2087c98
* Fast flag for h264 improves performance of loop filter.fbarchard@chromium.org2009-04-141-0/+1
| | | | | | | | Increases performance by about 10% with minimal quality loss. Review URL: http://codereview.chromium.org/63107 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@13650 0039d316-1c4b-4281-b951-d872f2087c98
* Forgot to register AtExitManager due to TimeTicks::HighResNow() singleton.scherkus@chromium.org2009-04-101-0/+3
| | | | | | | | TBR=cpu Review URL: http://codereview.chromium.org/66053 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@13540 0039d316-1c4b-4281-b951-d872f2087c98
* Checking in FFmpeg benchmarking application.scherkus@chromium.org2009-04-092-0/+211
| | | | | | | | 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
* Basic underpinnings of the gyp equivalent of the Linux SHARED=1 build:sgk@google.com2009-04-081-1/+1
| | | | | | | | | parameterize the 'type' setting of the various library targets, with a default of 'static_library'. (Hat tip to Craig Schlenter.) Review URL: http://codereview.chromium.org/62127 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@13345 0039d316-1c4b-4281-b951-d872f2087c98
* Fix some threading issues and some refactoring in AudioRendererHosthclam@chromium.org2009-04-076-8/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1. AudioRendererHost should not wait on IO thread. Calling AudioOutputStream::Start requests some audio packets by calling IPCAudioSource::OnMoreData, resulting in a deadlock. I implemented a prefetching logic to solve this problem, source has to know how many internal buffers the implementation of AudioOutputStream is using and prepare the same amount of packets before calling AudioOutputStream::Start. 2. When IPCAudioSource::OnMoreData is waiting for packet to arrive, calling AudioOutputStream::Stop will result in a deadlock since it expects OnMoreData to return. Should wake up all waiting threads before calling AudioOutputStream::Stop. 3. Did some refactoring and move the message handlers completely into AudioRendererHost, it was clumsy to call to AudioRendererHost from ResourceMessageFilter. Also moved all logics of using shared memory for packet passing, prefetching to IPCAudioSource. AudioRendererHost is now merely a container that manages and delegates calls to IPCAudioSource. This refactoring is helpful because the next step is to implement standalone IPC channel for audio. Review URL: http://codereview.chromium.org/57023 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@13288 0039d316-1c4b-4281-b951-d872f2087c98
* Forgot to include ffmpeg.gyp as a dependency for media_unittests.scherkus@chromium.org2009-04-071-0/+1
| | | | | | Review URL: http://codereview.chromium.org/62114 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@13277 0039d316-1c4b-4281-b951-d872f2087c98
* Convert /third_party/ffmpeg to gyp for Windows builds.scherkus@chromium.org2009-04-071-14/+2
| | | | | | | | 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
* Removing old data for unittests.fbarchard@chromium.org2009-04-074-29999/+0
| | | | | | Review URL: http://codereview.chromium.org/62085 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@13211 0039d316-1c4b-4281-b951-d872f2087c98
* YV16 unittest which is mostly the same as YV12. Requires YV16 data filesfbarchard@chromium.org2009-04-061-6/+59
| | | | | | Review URL: http://codereview.chromium.org/62060 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@13208 0039d316-1c4b-4281-b951-d872f2087c98
* Add jpeg varients of YV12 and YV16. In practice, these come up for motion jpeg.fbarchard@chromium.org2009-04-061-0/+6
| | | | | | | | | | | For memory calculation purposes, these are identical to their regular counterparts, but the YUV calculation should be done differently. A jpeg uses full range 0 to 255, whereas mpeg uses 16 to 240. Ignoring this distinction, means that jpeg will be slightly darker and brighter than it should be. Since jpeg is not a focus for us, and other decoders do this the same way, I suggest we treat them as the same for now. Review URL: http://codereview.chromium.org/62062 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@13194 0039d316-1c4b-4281-b951-d872f2087c98
* Data for yv16 unittest.fbarchard@chromium.org2009-04-062-0/+1099
| | | | | | Review URL: http://codereview.chromium.org/62056 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@13191 0039d316-1c4b-4281-b951-d872f2087c98
* Renaming to yv12 for consistency with yv16 data.fbarchard@chromium.org2009-04-062-0/+1108
| | | | | | | | Old files will be removed once new unittests are committed. Review URL: http://codereview.chromium.org/63023 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@13190 0039d316-1c4b-4281-b951-d872f2087c98
* Reapply linux build fix patch to ffmepg glue code from r12791 that was lost ↵hclam@chromium.org2009-04-061-12/+7
| | | | | | | | | | in r12802. Original CL: http://codereview.chromium.org/62054 Review URL: http://codereview.chromium.org/62063 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@13163 0039d316-1c4b-4281-b951-d872f2087c98
* Add YV16 convertfbarchard@chromium.org2009-04-062-13/+65
| | | | | | Review URL: http://codereview.chromium.org/62015 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@13155 0039d316-1c4b-4281-b951-d872f2087c98
* Fixing misuse of FFmpeg in decodershclam@chromium.org2009-04-032-7/+17
| | | | | | | | | AVCodec was not opened properly, leading to crash. Fixed in this patch. Review URL: http://codereview.chromium.org/56203 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@13108 0039d316-1c4b-4281-b951-d872f2087c98
* FFmpeg video decoder glue codehclam@chromium.org2009-04-023-12/+178
| | | | | | | | | | Implementation of FFmpeg to perform video decoding. Also added hooks to insert this FFmpeg video decoder filter. Review URL: http://codereview.chromium.org/60069 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@13056 0039d316-1c4b-4281-b951-d872f2087c98
* Remove the checked-in scons configuration files.sgk@google.com2009-04-016-359/+0
| | | | | | Review URL: http://codereview.chromium.org/53121 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@12982 0039d316-1c4b-4281-b951-d872f2087c98
* Removed player.cc from media project in media.gyp.scherkus@chromium.org2009-03-311-1/+0
| | | | | | | | | | Reason being the media_player project uses player.cc and links in media.lib. TBR=bradnelson Review URL: http://codereview.chromium.org/56132 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@12919 0039d316-1c4b-4281-b951-d872f2087c98
* FFmpegDemuxer now uses a thread to handle demuxing.scherkus@chromium.org2009-03-314-43/+84
| | | | | | | | | | Since FFmpegDemuxer no longer uses the pipeline thread to demuxer, I had to add a WaitableEvent to TestReader to make sure the read completed (or not!). Downside is that the test for when a read is never completed now waits 500ms before timing out. Oh well :( Review URL: http://codereview.chromium.org/55047 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@12831 0039d316-1c4b-4281-b951-d872f2087c98
* Enable streaming in ffmpeg based on data sourcemedia::DataSource interface ↵hclam@chromium.org2009-03-305-9/+26
| | | | | | | | has IsSeekable() method to decideon runtime whether the data source is seekable or not. Thisinformation is provided to FFmpeg to decide whether to dostreaming or not. In the case of streaming, FFmpeg does notsupport seeking. Review URL: http://codereview.chromium.org/57015 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@12802 0039d316-1c4b-4281-b951-d872f2087c98
* FFmpeg Audio decoder glue codehclam@chromium.org2009-03-303-7/+90
| | | | | | | | | | Implementation of FFmpegAudioDecoder which is the glue code providing access to ffmpeg decoder functions for the media pipeline. Review URL: http://codereview.chromium.org/56035 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@12800 0039d316-1c4b-4281-b951-d872f2087c98
* Exclude ffmpeg_* files that don't build on Linux, too.sgk@google.com2009-03-301-0/+11
| | | | | | Review URL: http://codereview.chromium.org/57020 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@12797 0039d316-1c4b-4281-b951-d872f2087c98
* Decoders now use standard callback mechanism for Reads. Removed ↵ralphl@chromium.org2009-03-308-132/+76
| | | | | | | | | Assignable<> template. Also includes an update that should provide more accurate timing from the audio renderer. Review URL: http://codereview.chromium.org/55031 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@12796 0039d316-1c4b-4281-b951-d872f2087c98
* Linux build fixesagl@chromium.org2009-03-303-15/+10
| | | | | | | Review URL: http://codereview.chromium.org/56068 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@12791 0039d316-1c4b-4281-b951-d872f2087c98
* Switching media to gyp under windows.bradnelson@google.com2009-03-305-823/+63
| | | | | | Review URL: http://codereview.chromium.org/57002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@12761 0039d316-1c4b-4281-b951-d872f2087c98
* Fixed a lot threading issues during tear down of <video>hclam@chromium.org2009-03-272-5/+4
| | | | | | | | | | | | | | | | | Fixed a lot of dead locks during tead down of <video> due to DataSourceImpl. Most of the issues come from that during a tab close RenderThread is destroyed and new tasks posted on it will not executed, but DataSourceImpl is waiting for those tasks to finish to complete stopping. Another dead lock comes from that when RenderThread is destroyed the owner loop of it (a IO Message Loop) is being destroyed too and DataSourceImpl shouldn't post tasks to that message loop when stopping. Review URL: http://codereview.chromium.org/42675 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@12720 0039d316-1c4b-4281-b951-d872f2087c98
* Demuxer stream now uses a callback instead of Assignable template. Cleaning ↵ralphl@chromium.org2009-03-276-57/+74
| | | | | | | | up Pipeine interfaces to conform with Chrome Base design. Review URL: http://codereview.chromium.org/53126 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@12652 0039d316-1c4b-4281-b951-d872f2087c98
* Lots of files touched for a very simple change. Everywhere we used a const ↵scherkus@chromium.org2009-03-2626-99/+104
| | | | | | | | | | MediaFormat* we now use a const MediaFormat&. This makes for simpler code and for better pointer reference safety. Review URL: http://codereview.chromium.org/42635 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@12623 0039d316-1c4b-4281-b951-d872f2087c98
* Fixed missing projects and linker errors in media.sln.scherkus@chromium.org2009-03-261-11/+17
| | | | | | Review URL: http://codereview.chromium.org/42671 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@12622 0039d316-1c4b-4281-b951-d872f2087c98
* Fixed bug in AudioRendererBase and made AudioRendererImpl check for audio ↵scherkus@chromium.org2009-03-262-2/+3
| | | | | | | | | | devices. TBR=hclam Review URL: http://codereview.chromium.org/42660 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@12602 0039d316-1c4b-4281-b951-d872f2087c98
* Ability for demuxer clients to get to FFmpeg's AVStream object exposed as an ↵ralphl@chromium.org2009-03-269-67/+136
| | | | | | | | | extended interface through DemuxerStream object. DemuxerStream now derives from base::RefCountedThreadSafe. Review URL: http://codereview.chromium.org/42521 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@12537 0039d316-1c4b-4281-b951-d872f2087c98
* First part of the Mac Audio low level supportcpu@chromium.org2009-03-255-4/+291
| | | | | | | | | | | - Basic factory support for 16 PCM audio - Adds PCM audio using Queue Services - Many functions not implemented, trying to keep CLs to a decent size - Added two unit tests Review URL: http://codereview.chromium.org/42494 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@12431 0039d316-1c4b-4281-b951-d872f2087c98
* TBR=hclamfbarchard@chromium.org2009-03-241-8/+8
| | | | | | | | | Try to fix buildbot for linux Review URL: http://codereview.chromium.org/52036 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@12334 0039d316-1c4b-4281-b951-d872f2087c98
* This reordering of instructions and use of movzx improved performance on ↵fbarchard@chromium.org2009-03-241-37/+21
| | | | | | | | | pentium4 without impacting performance on core2 architecture. Performance goes from 2.050 ms to 1.742 ms per frame. git-svn-id: svn://svn.chromium.org/chrome/trunk/src@12333 0039d316-1c4b-4281-b951-d872f2087c98
* MMX optimized YUV conversion in GCC and Visual C.fbarchard@chromium.org2009-03-232-64/+528
| | | | | | | | Unittest updated with 640x360 image converted offline with same code. Review URL: http://codereview.chromium.org/43003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@12292 0039d316-1c4b-4281-b951-d872f2087c98
* Update the gyp Linux build:sgk@google.com2009-03-201-0/+11
| | | | | | | | | | | | | | | | | | | | | | | | * Add Linux settings to target_defaults in common.gypi so gyp-generated SConscript files no longer depend on build/SConscript.main or the Hammer infrastructure. * Copy the FilterOut() function from Hammer to the chromium_builders.py Tool module. * Add a ChromiumLoadableModule() builder to chromium_builders.py. * Add dependencies on the 'views' library to the chrome link (target 'app'). * Add missing views/*/*_unittest.cc modules to the 'unit_tests' target. Exclude all but the one that builds on Linux from the non-Windows builds. * Crib a list of chrome/views files to exclude from the Linux build from the old SCons configuration. * Add a new build/linux/system.gyp file with new 'settings' targets to encapsulate the pkg-config checks for gtk+-2.0, nss and pangoft2. * Add depenedencies in the other targets on the new gtk, nss and pangoft2 'settings' targets from build/linux/system.gyp. * Add a pkg_config_wrapper.py script that keeps gyp happy by simply exiting 0 if the package isn't found. * DEPS roll for latest gyp changes to support the above. Review URL: http://codereview.chromium.org/42340 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@12228 0039d316-1c4b-4281-b951-d872f2087c98
* Use AutoUnlock class and Lock::AssertAcquired() methods to verify expected ↵ralphl@chromium.org2009-03-192-27/+25
| | | | | | | | behavior wrt locks in base classes. Review URL: http://codereview.chromium.org/48168 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@12062 0039d316-1c4b-4281-b951-d872f2087c98
* Base class for audio and video decoders, plus a test audio and video decoder ↵ralphl@chromium.org2009-03-1812-0/+599
| | | | | | | | | | implementation. Note that the FFmpeg decoder classes are declared, but are completely non-functional at this time. This is the first step towards getting actual, functional media decoders checked into the Chrome project. Review URL: http://codereview.chromium.org/43060 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@11970 0039d316-1c4b-4281-b951-d872f2087c98
* Revert tree bustage cause by r11904.hclam@chromium.org2009-03-1737-672/+1863
| | | | | | TBR=agl git-svn-id: svn://svn.chromium.org/chrome/trunk/src@11906 0039d316-1c4b-4281-b951-d872f2087c98
* andrew's patchhclam@chromium.org2009-03-1737-1863/+672
| | | | git-svn-id: svn://svn.chromium.org/chrome/trunk/src@11904 0039d316-1c4b-4281-b951-d872f2087c98
* updated data for yuv unittest.fbarchard@chromium.org2009-03-162-0/+1108
| | | | | | | | | | | | note that this needs to be committed before code can be tested on try server. flags were applied to make this binary svn ps svn:mime-type application/octet-stream bali.640_360.yuv svn ps svn:mime-type application/octet-stream bali.640_360.rgb The resolution is half on both axis to avoid a size limitation. Review URL: http://codereview.chromium.org/42257 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@11796 0039d316-1c4b-4281-b951-d872f2087c98
* Removed unneeded includes of base/time.h.thestig@chromium.org2009-03-162-2/+4
| | | | | | Review URL: http://codereview.chromium.org/48019 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@11766 0039d316-1c4b-4281-b951-d872f2087c98
* Buffer interface is now uint8*. Slight change to way data buffers are ↵ralphl@chromium.org2009-03-166-55/+58
| | | | | | | | | created. Caller passes no parameters to the constructor of a data buffer now. GetWritableData() method is responsible for allocating memory. Review URL: http://codereview.chromium.org/46015 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@11760 0039d316-1c4b-4281-b951-d872f2087c98