summaryrefslogtreecommitdiffstats
path: root/media
Commit message (Collapse)AuthorAgeFilesLines
* Fixes bug where NullAudioRenderer would join a previously joined thread.scherkus@chromium.org2009-04-291-1/+3
| | | | | | | | TBR=hclam Review URL: http://codereview.chromium.org/100135 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@14809 0039d316-1c4b-4281-b951-d872f2087c98
* Clean up FFmpeg media formats and switch to using ↵scherkus@chromium.org2009-04-296-47/+12
| | | | | | | | | | 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
* media player list management.fbarchard@chromium.org2009-04-281-0/+127
| | | | | | Review URL: http://codereview.chromium.org/100078 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@14800 0039d316-1c4b-4281-b951-d872f2087c98
* Adds a second vector of streams to FFmpegDemuxer to handle re-mapped ↵scherkus@chromium.org2009-04-283-22/+51
| | | | | | | | | | | | | | | | | | | | | audio/video streams. For media containing non-audio/video streams we were properly exposing the correct streams via Demuxer::GetStream() (i.e., no data streams were exposed) however we weren't properly re-routing the packets to the correct streams during demuxing. Before: Media contains [DATA, AUDIO, VIDEO] We create supported vector [AUDIO, VIDEO] When demuxing a packet who says they are from stream 1 (AUDIO), we would incorrectly assign it to VIDEO After: Media contains [DATA, AUDIO, VIDEO] We create supported vector [AUDIO, VIDEO] We create extra packet vector [NULL, AUDIO, VIDEO] When demuxing, we now correctly assign it to the proper stream and automatically free unused packets Review URL: http://codereview.chromium.org/100085 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@14742 0039d316-1c4b-4281-b951-d872f2087c98
* media player resource header file. Mechanically generated.fbarchard@chromium.org2009-04-282-20/+81
| | | | | | Review URL: http://codereview.chromium.org/99107 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@14702 0039d316-1c4b-4281-b951-d872f2087c98
* media player view window for painting frames to the display with YUV ↵fbarchard@chromium.org2009-04-281-0/+392
| | | | | | | | conversion and scaling. Review URL: http://codereview.chromium.org/100075 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@14701 0039d316-1c4b-4281-b951-d872f2087c98
* stdafx for precompiled stdafx generation in media player.fbarchard@chromium.org2009-04-282-0/+42
| | | | | | Review URL: http://codereview.chromium.org/100074 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@14694 0039d316-1c4b-4281-b951-d872f2087c98
* Fix a crash with <video>hclam@chromium.org2009-04-271-1/+1
| | | | | | | | | | | | Having typo in the file, causing a different dll loaded for <video>. When initializing ffmpeg since avformat-52.dll is not loaded, it tries to do LoadLibrary within sandbox and kaboom! TBR=scherkus Review URL: http://codereview.chromium.org/99024 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@14614 0039d316-1c4b-4281-b951-d872f2087c98
* Prototype audio time shift.fbarchard@chromium.org2009-04-237-56/+82
| | | | | | Review URL: http://codereview.chromium.org/92007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@14366 0039d316-1c4b-4281-b951-d872f2087c98
* Resource file for media player.fbarchard@chromium.org2009-04-232-12/+510
| | | | | | Review URL: http://codereview.chromium.org/93082 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@14365 0039d316-1c4b-4281-b951-d872f2087c98
* Disabling FFmpegDemuxerTest.* due to flakiness.scherkus@chromium.org2009-04-231-3/+7
| | | | | | | | BUG=10863 Review URL: http://codereview.chromium.org/92049 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@14324 0039d316-1c4b-4281-b951-d872f2087c98
* Binary data for media playerfbarchard@chromium.org2009-04-222-0/+0
| | | | | | Review URL: http://codereview.chromium.org/93010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@14226 0039d316-1c4b-4281-b951-d872f2087c98
* Reduce ffmpeg alignment requirement from 4x2 to 2x1.fbarchard@chromium.org2009-04-221-3/+2
| | | | | | | | | | The multiple of 4 restriction on width is unnecessary and prevents some valid movies from playing. Height being any size does not cause any problems for YV12, which is half height on chroma, as long as you round up in any calcs, and in YV16 there should be no height constraint. Use uluh.mov in debug mode to test. Review URL: http://codereview.chromium.org/93008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@14215 0039d316-1c4b-4281-b951-d872f2087c98
* Move FFmpegDemuxer initialization onto the demuxer thread.scherkus@chromium.org2009-04-224-33/+80
| | | | | | | | We now have all FFmpeg function calls executing on the demuxer thread, meaning DataSource will now always receive IO operations on the demuxer thread. Review URL: http://codereview.chromium.org/87060 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@14205 0039d316-1c4b-4281-b951-d872f2087c98
* Build on Linux with shared libraries (significant chunks courtesy craigsch):sgk@google.com2009-04-221-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * Set $RPATH to $LIB_DIR in the SCons configuration. * Add missing dependencies: * net/net.gyp:net => testing/gtest.gyp:gtest * third_party/libxml/libxml.gyp:xmlcatalog => third_party/icu38/icu38.gyp:icuuc * chrome/chrome.gyp:perf_tests => renderer => views => webkit/webkit.gyp:glue * Add files: * third_party/WebKit/WebCore/loader/icon/IconRecord.cpp * third_party/WebKit/WebCore/page/Coordinates.cpp * skia/sgl/SkUnPreMultiply.cpp * Exclude on Linux: * chrome/views/controls/scroll_view.cc * chrome/views/focus/external_focus_tracker.cc * media/filter/ffmpeg_demuxer.{cc,h} * Remove files: * third_party/WebKit/WebCore/Configurations/Version.xcconfig * Sort the chrome.gyp:views linux exclusion list. * DEPS roll for $SHLINKFLAGS settings in gyp. Review URL: http://codereview.chromium.org/88058 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@14166 0039d316-1c4b-4281-b951-d872f2087c98
* Hacked up delay load code for ffmpeg in posix systems. This isajwong@chromium.org2009-04-214-34/+248
| | | | | | | | | a temporary solution. We need to find a more sustainable way to do this. Review URL: http://codereview.chromium.org/87018 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@14150 0039d316-1c4b-4281-b951-d872f2087c98
* Fixes FFmpegDemuxerTest.ReadAndSeek test flakiness by using a WaitableEvent.scherkus@chromium.org2009-04-212-23/+35
| | | | | | | | | | Turns out it was the test code that was flaky and not a threading bug in our actual code. Under heavy load it was possible for a thread holding onto a reference to get time sliced long enough that the unit test continued executing until it asserted that the object was deleted when in fact it was not. BUG=10653 Review URL: http://codereview.chromium.org/88010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@14113 0039d316-1c4b-4281-b951-d872f2087c98
* DCHECK now allows SetPlaybackRate(0.0f) if the pipeline is stopped.ralphl@chromium.org2009-04-211-1/+2
| | | | git-svn-id: svn://svn.chromium.org/chrome/trunk/src@14111 0039d316-1c4b-4281-b951-d872f2087c98
* YUV to RGB with arbitrary scaling.fbarchard@chromium.org2009-04-215-30/+453
| | | | | | | | | | | Semi-optimized C code achieving 33 ms for 1080 double sized or 9 ms with openmp enabled. Special case half size which is much faster. Future versions will support mirror and perhaps rotate. (mirror is free) Future versions will be MMX assembly for speed. Review URL: http://codereview.chromium.org/67278 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@14092 0039d316-1c4b-4281-b951-d872f2087c98
* 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