#
b84955d4 |
| 23-Oct-2018 |
Barrett17 <b.vitruvio@gmail.com> |
media: Remove debug.h, finalize MediaDebug.h
* Funny rust from 0 AD.
|
#
b8d4709e |
| 08-Dec-2016 |
Dario Casalinuovo <b.vitruvio@gmail.com> |
MediaEventLooper: Remove soft real time lateness bounding
* The media_kit isn't an hard real time beast. Bounding lateness looked like the perfect way to enable reasonable soft real time performance
MediaEventLooper: Remove soft real time lateness bounding
* The media_kit isn't an hard real time beast. Bounding lateness looked like the perfect way to enable reasonable soft real time performance and thus limiting port writes and reads between producers and consumers. It seems to don't work very well so I just remove it. * The result of the recent code simplification makes it equal to my first version, before any discussion on it happened. * Thanks to AlienSoldier for testing such issues. * Fixes #13069.
show more ...
|
#
3588e74a |
| 20-Oct-2016 |
Dario Casalinuovo <b.vitruvio@gmail.com> |
BMediaEventLooper: Return to simple lateness computation
* Remove enqueue_time again. * Lateness seems generally useless. No way to get something useful experimentally. The commit noise however was
BMediaEventLooper: Return to simple lateness computation
* Remove enqueue_time again. * Lateness seems generally useless. No way to get something useful experimentally. The commit noise however was useful, the port wait is behaving more in accordance with the lateness calculus. * Fixes #12817 and possibly #12594.
show more ...
|
#
51c8ec34 |
| 17-May-2016 |
Dario Casalinuovo <b.vitruvio@gmail.com> |
MediaKit and MediaPlayer Style Fixes
* Suggested by korli, thanks!
|
#
b18c4449 |
| 07-May-2016 |
Dario Casalinuovo <b.vitruvio@gmail.com> |
BMediaEventLooper::SetBufferDuration: Clamp if negative
* For the sake of making the code more backward compatible, and safer eventually.
|
#
f2bb946b |
| 07-May-2016 |
Dario Casalinuovo <b.vitruvio@gmail.com> |
BMediaEventLooper: Handle events in past differently
* When the loop didn't handle an event in performance time, we will attempt at reading the port only if there are messages using a null timeout.
|
#
e042d9eb |
| 07-May-2016 |
Dario Casalinuovo <b.vitruvio@gmail.com> |
MediaEventLooper: Calculate lateness from the nearest value
* When the event is late there are two major situations, the first is when the enqueue time is in past compared to the performance time. T
MediaEventLooper: Calculate lateness from the nearest value
* When the event is late there are two major situations, the first is when the enqueue time is in past compared to the performance time. The second happen when the performance time is in past compared to the enqueue time. The purpose of this change is to calculate the lateness considering always the nearest of the two values. This way the exceding latency is trimmed out from the calculus depending on what the actual source of delay is. * There is a lot more that could be done by looking at the previous lateness value.
show more ...
|
#
bab64f65 |
| 19-Feb-2016 |
Alexander von Gluck IV <Alex.vonGluck@r1soft.com> |
Merge remote-tracking branch 'upstream/master' into intel-extreme
|
#
4666afbf |
| 11-Feb-2016 |
Dario Casalinuovo <b.vitruvio@gmail.com> |
BMediaEventLooper: Revert recent timeout rework
* While on my system it looked like to run well, it introduced a regression on some hardware. I'm reverting it as I don't have a better solution, with
BMediaEventLooper: Revert recent timeout rework
* While on my system it looked like to run well, it introduced a regression on some hardware. I'm reverting it as I don't have a better solution, with the difference that we will do that only for perfomance time events. * Fixes #12624.
show more ...
|
#
801b3e3b |
| 07-Feb-2016 |
Dario Casalinuovo <b.vitruvio@gmail.com> |
MediaEventLooper: Add more safeness on exit
* The WaitForMessage is moved at the end of the loop, and the check for quitting the loop is moved as it's condition, this makes us to be sure that once a
MediaEventLooper: Add more safeness on exit
* The WaitForMessage is moved at the end of the loop, and the check for quitting the loop is moved as it's condition, this makes us to be sure that once a Quit() request is performed we will not handle events anymore. * Other minor style and initialization fixes.
show more ...
|
#
138a8026 |
| 02-Feb-2016 |
Dario Casalinuovo <b.vitruvio@gmail.com> |
BMediaEventLooper: Use enqueue_time in a different shape
* This is the only solution that allowed to use the best of both ways to do this calculus. I've also tested it with a modified sound player t
BMediaEventLooper: Use enqueue_time in a different shape
* This is the only solution that allowed to use the best of both ways to do this calculus. I've also tested it with a modified sound player that snoozed every time the buffer should be handled, and found that neither of the lateness calculus I tested (including enqueue_time) really solve all problems. That's why I've tried to find an average solution. There's still room for improvements eventually.
show more ...
|
#
bb1f15aa |
| 02-Feb-2016 |
Dario Casalinuovo <b.vitruvio@gmail.com> |
BMediaEventLooper: Better solution for negative timestamp
* This problem happens only at the startup, so that it's preferred that we deal with it in the BMediaEventLooper side. * This solve some aud
BMediaEventLooper: Better solution for negative timestamp
* This problem happens only at the startup, so that it's preferred that we deal with it in the BMediaEventLooper side. * This solve some audio stability problems I had with slow systems.
show more ...
|
#
ffeb987d |
| 31-Jan-2016 |
Dario Casalinuovo <b.vitruvio@gmail.com> |
BMediaEventLooper: Make lateness calculus in real time
* After having this patch applied locally for some time, I'm going to be sure that we have to deal only with real_time values. * Since RealTime
BMediaEventLooper: Make lateness calculus in real time
* After having this patch applied locally for some time, I'm going to be sure that we have to deal only with real_time values. * Since RealTime() is just a system_time() wrapper, the code will be slightly improved in performances too. * Additionally it performs very well when the thread is externally stopped (such as debugging it), so that the audio recover almost immediately.
show more ...
|
#
5e726ed4 |
| 21-Sep-2015 |
Dario Casalinuovo <b.vitruvio@gmail.com> |
BMediaEventLooper: Finally fix some lateness problems
* For the moment i still remain with the classic lateness calculus. My code wasn't perfect, but this commit fix the remaining problems from my p
BMediaEventLooper: Finally fix some lateness problems
* For the moment i still remain with the classic lateness calculus. My code wasn't perfect, but this commit fix the remaining problems from my perspective. * The first reason is that if we have a patologic latency such as adding for experimental reasons a snooze() before a SendBuffer or in the BufferReceived callback, we still can't do anything about it. If we use enqueue_time and don't send a LateProducer notice, this latency will never be detected by the API client. We can't do anything about it, and it's even better that systems with such problems are recognized as soon as possible IMO. * The second reason is that the lateness calculus described in the BeBook is done this way because the media_kit want us to adjust our timing in both early and late situations. * Realtime expect that things are always delivered under a certain time limit, if the software at the bottom doesn't meet with this requirement, it's just not realtime and things can't work in realtime. * enqueue_time has nothing to do with the performance_time. But we can still add this to the media_timed_event struct so that applications can make use of it. * Lateness was probably not used a lot in BeOS programs as it looks like a relatively new feature but i have the concern to complete our API implementation to be close to what i see was reasonably the designers aim.
show more ...
|
#
be7d9d3f |
| 27-Aug-2015 |
Dario Casalinuovo <b.vitruvio@gmail.com> |
BMediaEventLooper: With B_WOULD_BLOCK we may still handle an event
|
#
dfe056fd |
| 25-Aug-2015 |
Dario Casalinuovo <b.vitruvio@gmail.com> |
BMediaEventLooper: Continue code improvements.
|
#
b0ed3239 |
| 04-Aug-2015 |
Dario Casalinuovo <b.vitruvio@gmail.com> |
BMediaEventLooper::ControlLoop: Review style/logic, no functional change
* The code is just reversed to be better organized. * Since the first event will be handled after a port write, at thread s
BMediaEventLooper::ControlLoop: Review style/logic, no functional change
* The code is just reversed to be better organized. * Since the first event will be handled after a port write, at thread spawn we just wait with infinite timeout for new messages. * Remove goto which then become a continue. * This permitted to remove the double waitUntil assignment which was in different braces. * lateness var become tempLateness, so it become more obvious than before that it's a cached value and we are doing this to avoid double calculus.
show more ...
|
#
7771139c |
| 02-Aug-2015 |
Dario Casalinuovo <b.vitruvio@gmail.com> |
BMediaEventLooper: Rewrite ControlLoop()
* The first problem was the O(n^2) complexity of the algorithm, it's now linear and try to act in a circular way by dispatching events and reading the po
BMediaEventLooper: Rewrite ControlLoop()
* The first problem was the O(n^2) complexity of the algorithm, it's now linear and try to act in a circular way by dispatching events and reading the port in a balanced way. This exclude a certain degree of possible deadlocks. * Add detection and escape when the system try to kill the thread. This solve some blocking issues on exit et similia that i had with libjackcompat. * The algorithm choose soon which event to focus on. * Lateness is calculated just before the event is dispatched as it is the more appropriate place, otherwise we would be calculating something imprecise/guessed. * Remove timed_event_queue::queued_time. It's more precise to just use the RealTime() before to Dispatch the event. * It should solve the BSoundPlayer lateness problems. * With those improvements the media_kit is not going to lock completely under stress conditions, instead it try to work in a best effort shape. * There's still room for improvements, for example i'm considering some strategies in lateness situations such as update scheduling latency, try to decrease waiting time and detect when we are too early on the other hand to recover when the load go down. * Thanks to Julian Harnath for sharing his WIP patch which helped with some controls such as avoiding negative lateness. * Comments are welcome!
show more ...
|
#
75486484 |
| 09-Apr-2015 |
Dario Casalinuovo <b.vitruvio@gmail.com> |
Implement BMediaRoster::SyncToNode
|
#
179c6ec2 |
| 23-Apr-2014 |
Adrien Destugues <pulkomandy@pulkomandy.tk> |
Remove some traces sent to application stdout.
* This may be fine in media server where it lands in logs, but certainly not when the code is run in applications. * Helps with all media-related webki
Remove some traces sent to application stdout.
* This may be fine in media server where it lands in logs, but certainly not when the code is run in applications. * Helps with all media-related webkit tests.
show more ...
|
#
25a7b01d |
| 05-May-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Merge branch 'master' into package-management
Additional changes: * Add src/system/kernel/lib/zlib, which builds a kernel version of zlib, needed by packagefs. * BuildFeatures: Add a build feature
Merge branch 'master' into package-management
Additional changes: * Add src/system/kernel/lib/zlib, which builds a kernel version of zlib, needed by packagefs. * BuildFeatures: Add a build feature "gcc2" to allow for easier checks. * Referenceable.cpp: Include <OS.h> instead of <debugger.h>. The latter is not needed and prevents building for the build platform. * zlib/zutil.h: Fix gcc 2 build. We really should use the external package instead.
Conflicts: .gitignore build/jam/BuildSetup build/jam/FileRules build/jam/FloppyBootImage build/jam/HaikuImage build/jam/ImageRules build/jam/KernelRules build/jam/NetBootArchive build/jam/OptionalBuildFeatures build/jam/OptionalLibPackages build/jam/OptionalPackageDependencies build/jam/OptionalPackages build/scripts/build_haiku_image configure data/bin/installoptionalpackage data/system/boot/Bootscript headers/os/app/Message.h headers/os/package/PackageInfo.h headers/os/package/PackageInfoAttributes.h headers/os/package/PackageInfoSet.h headers/os/package/PackageRoster.h headers/os/package/PackageVersion.h headers/os/package/hpkg/PackageInfoAttributeValue.h headers/os/storage/FindDirectory.h headers/os/storage/Node.h headers/os/support/StringList.h headers/private/system/directories.h src/add-ons/kernel/drivers/audio/ac97/es1370/Jamfile src/add-ons/kernel/file_systems/packagefs/AttributeIndex.cpp src/add-ons/kernel/file_systems/packagefs/Jamfile src/add-ons/kernel/file_systems/packagefs/Package.cpp src/add-ons/kernel/file_systems/packagefs/Package.h src/add-ons/kernel/file_systems/packagefs/PackageDomain.cpp src/add-ons/kernel/file_systems/packagefs/PackageDomain.h src/add-ons/kernel/file_systems/packagefs/PackageFSRoot.cpp src/add-ons/kernel/file_systems/packagefs/PackageLinkDirectory.cpp src/add-ons/kernel/file_systems/packagefs/PackageLinkDirectory.h src/add-ons/kernel/file_systems/packagefs/PackageLinkSymlink.cpp src/add-ons/kernel/file_systems/packagefs/PackageLinkSymlink.h src/add-ons/kernel/file_systems/packagefs/PackageLinksDirectory.cpp src/add-ons/kernel/file_systems/packagefs/PackageNode.h src/add-ons/kernel/file_systems/packagefs/ResolvableFamily.cpp src/add-ons/kernel/file_systems/packagefs/Version.cpp src/add-ons/kernel/file_systems/packagefs/Version.h src/add-ons/kernel/file_systems/packagefs/Volume.cpp src/add-ons/kernel/file_systems/packagefs/Volume.h src/add-ons/kernel/file_systems/packagefs/kernel_interface.cpp src/add-ons/kernel/file_systems/userlandfs/shared/driver_settings.c src/apps/deskbar/BarApp.cpp src/apps/deskbar/BarMenuBar.cpp src/apps/deskbar/BarMenuBar.h src/apps/deskbar/BarView.cpp src/apps/deskbar/BarView.h src/apps/deskbar/BarWindow.cpp src/apps/deskbar/BarWindow.h src/apps/deskbar/DeskbarMenu.cpp src/apps/deskbar/DeskbarMenu.h src/apps/deskbar/DeskbarUtils.cpp src/apps/deskbar/DeskbarUtils.h src/apps/deskbar/ExpandoMenuBar.cpp src/apps/deskbar/ExpandoMenuBar.h src/apps/deskbar/TeamMenu.cpp src/apps/processcontroller/ProcessController.cpp src/apps/remotedesktop/RemoteDesktop.cpp src/bin/bash/config-top.h src/bin/finddir.c src/bin/package/Jamfile src/bin/package/command_add.cpp src/bin/package/command_create.cpp src/bin/package/command_list.cpp src/bin/package_repo/command_list.cpp src/bin/pkgman/command_refresh.cpp src/build/libbe/support/Jamfile src/build/libpackage/Jamfile src/build/libroot/Jamfile src/build/libroot/fs.cpp src/build/libroot/remapped_functions.h src/kits/locale/MutableLocaleRoster.cpp src/kits/opengl/GLRendererRoster.cpp src/kits/package/PackageInfo.cpp src/kits/package/PackageInfoSet.cpp src/kits/package/PackageRoster.cpp src/kits/package/PackageVersion.cpp src/kits/package/RepositoryCache.cpp src/kits/package/hpkg/PackageWriterImpl.cpp src/kits/package/hpkg/ReaderImplBase.cpp src/kits/package/hpkg/WriterImplBase.cpp src/kits/print/PrintTransport.cpp src/kits/print/Printer.cpp src/kits/screensaver/ScreenSaverRunner.cpp src/kits/support/StringList.cpp src/kits/tracker/ContainerWindow.cpp src/kits/tracker/DeskWindow.cpp src/kits/tracker/PoseView.cpp src/libs/print/libprint/Transport.cpp src/preferences/printers/AddPrinterDialog.cpp src/preferences/screensaver/ScreenSaverWindow.cpp src/servers/debug/DebugServer.cpp src/servers/input/AddOnManager.cpp src/servers/media_addon/MediaAddonServer.cpp src/system/boot/Jamfile src/system/boot/loader/Jamfile src/system/boot/loader/loader.cpp src/system/boot/loader/vfs.cpp src/system/kernel/fs/vfs.cpp src/system/kernel/fs/vfs_boot.cpp src/system/libroot/os/find_directory.cpp src/system/runtime_loader/runtime_loader.cpp src/tools/package/Jamfile
show more ...
|
#
97b9539c |
| 05-Dec-2012 |
François Revol <revol@free.fr> |
Merge branch 'master' into sam460ex
|
#
332cc6bc |
| 30-Nov-2012 |
Axel Dörfler <axeld@pinc-software.de> |
64 bit fixes for libmedia.so, ActivityMonitor, and Sudoku.
* Alex, I feel your pain :-)
|
#
a84e14ca |
| 16-Dec-2011 |
Alex Wilson <yourpalal2@gmail.com> |
Merge branch 'master' of git://github.com/haiku/haiku
|
#
19ae20e6 |
| 05-Nov-2011 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Merge branch 'master' into pm-flat
Conflicts: build/jam/HaikuImage build/jam/OptionalBuildFeatures build/jam/OptionalPackages build/jam/UserBuildConfig.sample data/bin/installoptionalpackage s
Merge branch 'master' into pm-flat
Conflicts: build/jam/HaikuImage build/jam/OptionalBuildFeatures build/jam/OptionalPackages build/jam/UserBuildConfig.sample data/bin/installoptionalpackage src/apps/deskbar/DeskbarMenu.cpp src/servers/debug/DebugServer.cpp src/system/kernel/fs/vfs.cpp
show more ...
|