mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Gecko engine for Wine
4ec5ce6398
If we don't support this in any way, then we get into trouble when there is plenty of compressed data buffered but for some reason video decoding falls behind (maybe there was a short period where the video data wasn't available). Audio playback continues normally, but MediaOmxReader keeps making one call to ReadAudio and one to ReadVideo, and if each call to ReadAudio decodes at least as much as the calls to ReadVideo, video decoding can never catch up to the current audio playback position. So video never plays. And when the video decoding point gets far enough away from the audio decoding point, horrible things start to happen, such as video and audio reading completely different parts of the media cache and interfering with the caching mechanism (which assumes audio and video reads are close together). This patch approximates keyframe skipping, and is basically just a way for MediaOmxReader::DecodeVideoFrame to decode more than one frame at a time if we need video decoding to catch up. To prevent pathological situations, we cap both the maximum number of frames decoded per DecodeVideoFrame and the amount of time we spend in the method (excluding the time for the last frame). --HG-- extra : rebase_source : cba95c537fe97df5b696581be8233b6e9cffb70b |
||
---|---|---|
accessible | ||
addon-sdk | ||
b2g | ||
browser | ||
build | ||
caps | ||
chrome | ||
config | ||
content | ||
db/sqlite3 | ||
docshell | ||
dom | ||
editor | ||
embedding | ||
extensions | ||
gfx | ||
hal | ||
image | ||
intl | ||
ipc | ||
js | ||
layout | ||
media | ||
memory | ||
mfbt | ||
mobile | ||
modules | ||
mozglue | ||
netwerk | ||
nsprpub | ||
other-licenses | ||
parser | ||
probes | ||
profile | ||
python | ||
rdf | ||
security | ||
services | ||
startupcache | ||
storage | ||
testing | ||
toolkit | ||
tools | ||
uriloader | ||
view | ||
webapprt | ||
widget | ||
xpcom | ||
xpfe | ||
xulrunner | ||
.gdbinit | ||
.gitignore | ||
.hgignore | ||
.hgtags | ||
aclocal.m4 | ||
Android.mk | ||
AUTHORS | ||
client.mk | ||
client.py | ||
CLOBBER | ||
configure.in | ||
LEGAL | ||
LICENSE | ||
mach | ||
Makefile.in | ||
moz.build | ||
mozilla-config.h.in | ||
README.txt |
An explanation of the Mozilla Source Code Directory Structure and links to project pages with documentation can be found at: https://developer.mozilla.org/en/Mozilla_Source_Code_Directory_Structure For information on how to build Mozilla from the source code, see: http://developer.mozilla.org/en/docs/Build_Documentation To have your bug fix / feature added to Mozilla, you should create a patch and submit it to Bugzilla (https://bugzilla.mozilla.org). Instructions are at: http://developer.mozilla.org/en/docs/Creating_a_patch http://developer.mozilla.org/en/docs/Getting_your_patch_in_the_tree If you have a question about developing Mozilla, and can't find the solution on http://developer.mozilla.org, you can try asking your question in a mozilla.* Usenet group, or on IRC at irc.mozilla.org. [The Mozilla news groups are accessible on Google Groups, or news.mozilla.org with a NNTP reader.] You can download nightly development builds from the Mozilla FTP server. Keep in mind that nightly builds, which are used by Mozilla developers for testing, may be buggy. Firefox nightlies, for example, can be found at: ftp://ftp.mozilla.org/pub/firefox/nightly/latest-trunk/ - or - http://nightly.mozilla.org/