| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This eliminates all final traces of the old global-functions-and-variables style of mocking, which was a massive headache to maintain and verify correctness.
No new tests have been added, however gmock creates much stronger assertions for the tests themselves.
I also made FFmpegDemuxerTest a friend of FFmpegDemuxer to let tests verify that all tasks on the internal demuxing thread have completed.
BUG=13933
TEST=FFmpegDemuxerTest should more awesome and less flaky
Review URL: http://codereview.chromium.org/126306
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@18833 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
| |
MockReader.
Previously only used by FFmpegDemuxerTest, it's not templated so we can use it with FFmpegVideoDecoderTest and FFmpegAudioDecoderTest and any other sort of demuxer or decoder for that matter.
Review URL: http://codereview.chromium.org/126027
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@18547 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
| |
Review URL: http://codereview.chromium.org/125163
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@18459 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
| |
symbols.
Also move some of the old mocks into their own namespace. They were causing linker confusion due to inlining or something which generated bad test executables that segfaulted.
Review URL: http://codereview.chromium.org/126170
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@18457 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
| |
Step one of having a completely mocked FFmpeg library.
Review URL: http://codereview.chromium.org/126160
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@18455 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
| |
Pure refactor, functionality remains the same.
Review URL: http://codereview.chromium.org/122018
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@18213 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
| |
build)."
This reverts commit r18168 and reapplies r18122. I.e., this
reapplies the ffmpeg changes.
Review URL: http://codereview.chromium.org/125003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@18200 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is a work in progress draft.
Summary of changes:
1. Moved code shared by chrome and test_shell to webkie/glue:
WebMediaPlayerImpl
SimpleDataSource
VideoRendererImpl
2. Since WebMediaPlayerImpl is shared, chrome specific renderers
are enabled by passing the FilterFactoryCollection into
WebMediaPlayerImpl, this is done in RenderView. And
WebMediaPlayerImpl provides some default renderer filters,
which are used by the test shell and also chrome.
Review URL: http://codereview.chromium.org/119229
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@18182 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
| |
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@18168 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
| |
http://codereview.chromium.org/118046.
Review URL: http://codereview.chromium.org/118444
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@18122 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
| |
Reverting r17992 and r17987.
Review URL: http://codereview.chromium.org/119399
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@17995 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
| |
http://codereview.chromium.org/118046.
Review URL: http://codereview.chromium.org/118444
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@17987 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
| |
Review URL: http://codereview.chromium.org/119276
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@17821 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
| |
Also reimplement media_posix.cc to call into the generated stub functions instead of having its own hacked together version.
Review URL: http://codereview.chromium.org/118046
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@17819 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
| |
When FFmpegDemuxer failed to decode a raw packet, the signal of
end of stream should bubble up to the renderers. It is done in
this CL by creating fake buffers.
This change also fixes a bug with video of only 1 frame.
Review URL: http://codereview.chromium.org/113611
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@17656 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
| |
Also adds more explicit #includes for needed things.
Review URL: http://codereview.chromium.org/118162
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@17479 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
| |
TEST=SeekableBufferTest.*
Updating media::SeekableBuffer and unit tests to meet
code style standards.
Review URL: http://codereview.chromium.org/114042
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@17084 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
| |
Review URL: http://codereview.chromium.org/113748
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@16771 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
| |
(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
|
|
|
|
|
|
| |
Review URL: http://codereview.chromium.org/113615
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@16459 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
| |
Defined the base interface SeekableBuffer and a thread safe implemntation of
ThreadSafeSeekableBuffer. This class is to be used for media resource loading
that does the meat of buffer queueing and handles short seeking for short distance
out-of-order read patterns.
Review URL: http://codereview.chromium.org/113213
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@16348 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
| |
All functions do 2 pixels at a time.
90 and 270 rotations implemented.
YV16 refactored. YV12 code accepts a YuvType that allows the same code to support YV16 as well.
Special case for half size removed.
Special case for doubling added. 3.62 ms versus 8.62 for general purpose code.
Review URL: http://codereview.chromium.org/113407
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@16334 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
| |
row and high levels that step thru the image.
Low level is implemented in MMX assembly.
Mac and Linux use reference code for this version.
Review URL: http://codereview.chromium.org/113247
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@16011 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
| |
Did some minor clean up as well.
Review URL: http://codereview.chromium.org/113298
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@15903 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
| |
Now that I'm wiser writing tests, I'm trying to get rid of InitializationHelper and rely on simplier test fixtures classes. I also introduced MockFilterFactory which is capable of creating all the mock filters and is able to return instantiated instances of filters to permit testing for expectations (refer to PipelineImplTest.Seek for an example).
Review URL: http://codereview.chromium.org/115094
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@15829 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
| |
(No code change.)
git ls-tree -r HEAD | grep '^100755' | cut -f2 |
egrep '\.(png|txt|mm|cc|h|checksum|asm|js|html|c|css|xml|grd|json)$' |
xargs chmod a-x
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@15809 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
| |
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@15800 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
| |
Review URL: http://codereview.chromium.org/113135
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@15616 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
| |
Review URL: http://codereview.chromium.org/106002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@15615 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Comments from Ryan:
Some small changes to get chromium building on ARM. I tested these using the
standard Linux tool chain and crosstools-ng.
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/99365
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@15241 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
| |
windows."
This reverts commit 9c23aa9006918e7091742e1826181db081a16a65.
TBR=evan
Review URL: http://codereview.chromium.org/101020
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@15121 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
| |
The code still crashes when trying to play a video, but this will allow debugging.
Review URL: http://codereview.chromium.org/100195
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@15117 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
Review URL: http://codereview.chromium.org/92007
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@14366 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@14111 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
Review URL: http://codereview.chromium.org/62060
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@13208 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
| |
Review URL: http://codereview.chromium.org/62015
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@13155 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
| |
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
|