summaryrefslogtreecommitdiffstats
path: root/media/tools/seek_tester
Commit message (Collapse)AuthorAgeFilesLines
* Introducing DecoderBuffer and general Buffer cleanup.dalecurtis@google.com2012-05-311-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Track buffered byte ranges correctly in media::Pipeline.fischman@chromium.org2012-05-301-2/+1
| | | | | | | | | | | | | | | | | | | | 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
* Reland r136679, reverted in r136753: Delete MockDataSource, remove ↵fischman@chromium.org2012-05-121-1/+1
| | | | | | | | | | | | | | | 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
* Revert 136679 - Delete MockDataSource, remove IsLocalSource & IsSeekable ↵tkent@chromium.org2012-05-121-1/+1
| | | | | | | | | | | | | | 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
* Delete MockDataSource, remove IsLocalSource & IsSeekable from Demuxer/Pipeline.fischman@chromium.org2012-05-111-1/+1
| | | | | | | | | | | | | 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
* Kill Pipeline::SetBufferedTime(), since nobody needs/uses it.fischman@chromium.org2012-05-091-1/+0
| | | | | | | | | | 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
* Move Demuxer::set_host() to Initialize().scherkus@chromium.org2012-04-051-1/+16
| | | | | | | | 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
* Remove DemuxerFactory and URL parameter from Pipeline.scherkus@chromium.org2012-04-021-2/+2
| | | | | | | | | | | | 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
* seek_tester is born: a standalone binary for exploring seek behavior.fischman@chromium.org2012-02-081-0/+85
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