| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
FFmpeg expects data to be padded and aligned in a certain way. It's
currently possible to do this incorrectly and introduce dangerous issues.
I enforce padding and alignment by introducing a new Buffer called
DecoderBuffer and forcing DemuxerStream::Read to only accept it for
transfer into decoders.
DecoderBuffer allocates all memory through av_malloc (which takes care of
alignment) with the appropriate padding size (except for Android, which
doesn't care about this).
Along the way it was necessary to clean up a large smattering of code to
replace usage of DataBuffer with DecoderBuffer.
I've rolled in several cleanup actions as well:
- Moved DecryptConfig from Buffer to DecoderBuffer.
- Replaced AVPacketBuffer and av_dup_packet with a DecoderBuffer::CopyFrom.
- Fixed a resultant issue with FFmpegBitStreamConverter after removing the
av_dup_packet functionality. Removed some unsupported bitstream filters.
- Reduce TestDataUtil::ReadTestDataFile() to a single method returning a
DecoderBuffer so unit tests will always have safe buffers.
- Replace new DataBuffer(0)/new DecoderBuffer(0) w/
DecoderBuffer::CreateEOSBuffer.
- Remove extraneous IsEndOfStream check from FFmpegAudioDecoder.
BUG=129843
TEST=media_unittests + valgrind, layout tests.
Review URL: https://chromiumcodereview.appspot.com/10447035
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@139857 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously, the interaction was:
BufferedDataSource: hey Pipeline, I just read byte X
Pipeline: cool story bro! I'll just pretend you've read every single byte from 0 to X.
Now the interaction is:
BufferedDataSource: hey Pipeline, I just read bytes X-Y
Pipeline: neato! I'll just add that range to my list of buffered ranges.
The most noticeable outcome of this change is that seeking in a media format that requires reading a seek index from the end of the file (e.g. WebM w/ CUES at the end) no longer results in an almost-instant claim of having buffered the entire video just because a seek was completed (esp. dramatic when viewing a very large file, such as a multi-hour video).
BUG=103513,127355
TEST=besides unittests, this allows a cleaned-up version of http/tests/media/video-buffered.html to be un-SKIPped!
Review URL: https://chromiumcodereview.appspot.com/10451049
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@139452 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
IsLocalSource & IsSeekable from Demuxer/Pipeline.
MockDataSource was completely unused, and Is{LocalSource,Seekable} being in the
Demuxer is leftover craxy from the DataSourceFactory / DemuxerFactory /
DownloadRateMonitor days, may they forever RIP.
BUG=120426
TBR=scherkus
Review URL: https://chromiumcodereview.appspot.com/10392069
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@136770 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
from Demuxer/Pipeline.
It broke LayoutTests/http/tests/media/media-source/webm/video-media-source-seek.html
and video-media-source-state-changes.html.
http://test-results.appspot.com/dashboards/flakiness_dashboard.html#showExpectations=true&showLargeExpectations=true&tests=http%2Ftests%2Fmedia%2Fmedia-source%2Fwebm%2Fvideo-media-source-seek.html%2Chttp%2Ftests%2Fmedia%2Fmedia-source%2Fwebm%2Fvideo-media-source-state-changes.html
Review URL: https://chromiumcodereview.appspot.com/10378100
TBR=fischman@chromium.org
Review URL: https://chromiumcodereview.appspot.com/10378119
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@136753 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
MockDataSource was completely unused, and Is{LocalSource,Seekable} being in the
Demuxer is leftover craxy from the DataSourceFactory / DemuxerFactory /
DownloadRateMonitor days, may they forever RIP.
BUG=120426
Review URL: https://chromiumcodereview.appspot.com/10378100
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@136679 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
| |
BUG=103513 (this is just clearing the cruft out before implementing the enhancement)
TEST=none: just removing dead code
Review URL: https://chromiumcodereview.appspot.com/10384056
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@136071 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
| |
BUG=111585
Review URL: https://chromiumcodereview.appspot.com/9968117
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@130842 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
| |
Since Demuxers still require asynchronous initialization DemuxerFactory::Build() has been replaced with Demuxer::Initialize(). Since FFmpegDemuxer is the only Demuxer requiring a DataSource it is now passed in via FFmpegDemuxer's constructor.
Now that Demuxer::set_host() is guaranteed to be called prior to initialization we're able to tighten up some code inside ChunkDemuxer. We should still nuke set_host() (see bug 111585) but I'll leave that for a future CL.
BUG=110804, 110809
Review URL: https://chromiumcodereview.appspot.com/9860027
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@130165 0039d316-1c4b-4281-b951-d872f2087c98
|
|
I got tired of hacking logging into chrome every time I want to answer this
question.
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/9355001
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@120870 0039d316-1c4b-4281-b951-d872f2087c98
|