Based on the amazing work of puckipedia, this gets BePac Deluxe to play
fine on Haiku (complete with sound effects and music).
This is based on his original patch, but the irrelevent parts (working
around bugs in ffmpeg that were fixed since then) are removed.
Fixes#9939.
Not sure why that was commented out. Computing the frame count back from
the frame duration and stream duration can be inaccurate (especially for
long frame durations and/or short streams). It is important that the
stream ends exactly when expected. If it ends earlier than the announced
frame count, an app may be stuck forever waiting for the end, or would
interpret it as a read error. If it is too long, a buffer overflow may
occur.
There used to be endianness problems, but they have been fixed long ago.
It is important for some legacy apps, that these are properly recognized
as B_AIFF_FORMAT_TYPE.
- This is the latest from the 0.10 branch.
- It includes several improvements and update to codecs, while keeping
the old API.
- The patch to keep things working with gcc2 is getting quite huge.
Tested working with various files, no regressions spotted so far. Please
help complete the test set if you have files that stop working with this
version.
This is an implementation of pthread barriers pursuant to the relevant specification.
Barriers are essentially a special case of conditional variables,
such that all threads waiting on one are woken up when the number of
waiters reaches a number provided at the initialization of the barrier.
In view of that, this implementation mimics the implementation of pthread_cond,
except it is more specialized and self-contained.
Signed-off-by: Jérôme Duval <jerome.duval@gmail.com>
It is used by the media kit, which created a dependency from libmedia to
libbnetapi to openssl.
It is not entirely specific to the network kit, there are some use cases
that don't involve network at all.
* It's turned off by default for the app, so I see no reason why the
replicant should have it. It's annoying to use, as my touchpad
obviously scrolls when moving the mouse while having a button pressed.
* A cleaner solution would be to read the settings once if there is no
WorkspacesWindow, and use the setting from there instead.
* Fixes problems with setting the partition name after uninitializing
a partition in DriveSetup. Previously, UninitializeJob() was
followed by SetStringJob(), but the kernel was updating the
change counter for the parent partition when uninitializing a
partition, leading to SetStringJob() having an incorrect change
counter for the parent partition. Now the parent change counter
will be correct when SetStringJob() runs.
- According to the Be Book, one of BListItem::Update()'s responsibilities
is updating the item's internal height/width. However, while we were
providing such updates in the case of the item initially being added
to the view, or when the list view's font was changed, we were not doing
so on frame resize. This would lead to items having a stale width field
in such a circumstance, leading to possibly incorrect behavior in apps
relying on that field to be correct.
There are some delays in making the actual package repo generated by the
buildbot go live. Until then, I'm going to manually update the existing
repositories with the built packages, so people can start to experiment
with them and report any new issues.
There are more updates coming, but I'm doing them gradually so we can see
which set of packages triggers a regression, should one happen.
* Ingo rightly noticed that the defer_signals counter is reinitialized on
thread's user area creation. Setting the flag THREAD_CREATION_FLAG_DEFER_SIGNALS
indeed gives the expected behavior, deferring signals until undefer_signals() is
called in the child thread. Thanks for the review and fix suggestion.
* Added a simple test showing the values of the defer_signals counter after fork().
* This fixes booting Haiku when creating a brand new GPT
partition layout with the BIOS/MBR.
* This also fixes boot issues with UEFI based on OVMF, which
rejects GPT partitions that don't have the protective MBR.