History log of /haiku/src/kits/media/
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
10b294d8 12-Jul-2020 Adrien Destugues <pulkomandy@pulkomandy.tk>

Media Kit: use the B_WRITABLE flag in plugins

The ffmpeg plugin reports some formats as read-only. But the media kit
included them in the list of writable formats anyway.

765a734a 03-May-2020 Niels Sascha Reedijk <niels.reedijk@gmail.com>

Add signature to libmedia.so.

Also remove superflous data from libpackage.rdef

This should fix #15958

Change-Id: I76991030541dca12a2dfdd9282f02274a461ed2a
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2561
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>

e6aa2145 29-Apr-2020 Adrien Destugues <adrien.destugues@opensource.viveris.fr>

libbe.so catalogs are not included in image

Media Kit catalog was incorrectly using "libbe.so" as a catalog name
and overwriting the catalogs for libbe.

Fixes #15904

Change-Id: Ib56045bbcf127c23ac5229981ce92d298ffd6fe5
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2536
Reviewed-by: Niels Sascha Reedijk <niels.reedijk@gmail.com>

9c9a810c 14-Feb-2020 Jérôme Duval <jerome.duval@gmail.com>

Media Kit: BBufferCache: if not reclaimed, only mark the buffer for deletion

hrev53379 clears the buffer cache for disconnected clients, and also delete buffers.
This is too early (see #15263, media_addon_server crash), and should only happen
after the buffer is recycled. This can be resolved by abusing the fFlags field of
BBuffer to mark the buffer for deletion, and mark the buffer to be reclaimed.
Some BBuffers don't reside in the SharedBufferList, so we have to mark them as to
be reclaimed. For those in the SharedBufferList, call a new RemoveBuffer(), which
can check whether the buffer is still to be reclaimed. For reclaimed BBuffers,
delete them right away, others can be marked for deletion.
fixes #15606 #15263, possibly #15433

Change-Id: I66e94138e7e10a40d4c48e2ac042f816c79f5aab
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2245
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
Reviewed-by: X512 <danger_mail@list.ru>
Reviewed-by: Ryan Leavengood <leavengood@gmail.com>

27fee672 12-Feb-2020 Jérôme Duval <jerome.duval@gmail.com>

Media Kit: let launch_daemon know that media_server will quit

'Restart media services' in Media Preferences works better.

Change-Id: Ifbffdbd81ee851ae3e7d3dfd14f3d5f41ac155ce
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2240
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>

d9e196c7 26-Dec-2019 Adrien Destugues <pulkomandy@pulkomandy.tk>

DefaultMediaTheme: move controls to a namespace

They have generic names and are likely to conflict with other things. In
particular, there is another BPrivate::TitleView in BColumnListView,
which results in weird behavior (and me wasting days debugging things
and scratching my head) when one links libmedia before libcolumnlistview
and the wrong one ends up being called.

b073975e 21-Dec-2019 Jérôme Duval <jerome.duval@gmail.com>

media: fix 64-bit debug build

Change-Id: Ie8c19fc5f067da9973cc52ec4c787a4ad36e390c
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2044
Reviewed-by: waddlesplash <waddlesplash@gmail.com>

083314c2 05-Oct-2019 Adrien Destugues <pulkomandy@pulkomandy.tk>

Create the port pool in MediaRosterUndertaker

Follow up to #15135, which created a regression, apps would crash if
using the port pool before creating a BMediaRoster instance. Now the
port pool is entirely managed by the MediaRosterUndertaker, which is
less confusing.

Fixes the media_addon_server crash on shutdown for me as well, but I
don't remember why (I had studied the code and came to the conclusion
that this should fix it, but I don't remember the reasoning).

Fixes #15263, and regressions for apps using the port pool before they
instanciate the BMediaRoster.

Change-Id: I887dbc590d8ee9de391b6eae0206944bfe99325f
Reviewed-on: https://review.haiku-os.org/c/haiku/+/1897
Reviewed-by: Axel Dörfler <axeld@pinc-software.de>

472d26a3 16-Aug-2019 Ryan Leavengood <leavengood@gmail.com>

Media Kit: Delete the PortPool in a more deliberate way

Letting it get deleted statically can cause segfaults since it is needed for
some final quit messages.

This mimic changes Axel made for the DormantNodeManager and

I also pulled PortPool into its own file and header.

Fixes #15135.

Change-Id: Ie64753e1876d58b52f7cb95536c6be3df2e6d40c
Reviewed-on: https://review.haiku-os.org/c/haiku/+/1721
Reviewed-by: waddlesplash <waddlesplash@gmail.com>

fe08f0b3 14-Aug-2019 Ryan Leavengood <leavengood@gmail.com>

Media Kit: Clear the BufferCache of buffers for disconnected clients

Without this, the BufferCache keeps a reference to these buffers inside the
media_addon_server until the media_addon_server quits, which is pretty much

Should fix #4954 and #14755, and possibly #13614 and #14047, though I think
they may be something else.

Switched from std::map to our HashMap to get something which works in gcc2 and

Change-Id: I26463899724b9d1520d97fec785e435f536eaf3d
Reviewed-on: https://review.haiku-os.org/c/haiku/+/1717
Reviewed-by: waddlesplash <waddlesplash@gmail.com>

2c4232b8 14-Aug-2019 Augustin Cavalier <waddlesplash@gmail.com>

BMediaRoster: Mark publishing areas as cloneable.

964cab46 10-Aug-2019 Augustin Cavalier <waddlesplash@gmail.com>

media: Set B_CLONEABLE_AREA where applicable.

Cloning cloned buffers seems especially strange, but
apparently it is actually done. The buffer management
code really needs to be cleaned up...

565155af 27-Jul-2019 Augustin Cavalier <waddlesplash@gmail.com>

Remove unnecessary usages of BLocker::Sem().

Most of these should have been BLocker::InitCheck() anyway.
The one that was actually using the sem (MessageLooper)
should just store the name parameter, which simplifies
things anyway.

Done as a result of a branch where I'm experimenting
with making BLocker not even create a semaphore in
"benaphore" mode.

6967695c 24-Jul-2019 Adrien Destugues <pulkomandy@pulkomandy.tk>

PVS V547: always false comparisons

Change-Id: I1c7790ff0aa537b974bdc0fd65d76f277ea5f8cf
Reviewed-on: https://review.haiku-os.org/c/1647
Reviewed-by: waddlesplash <waddlesplash@gmail.com>

fcf7cbe7 16-Jul-2019 Adrien Destugues <pulkomandy@pulkomandy.tk>

PVS V522: null pointer dereferences

Change-Id: Iaa753ef3a93c36031789a85f87e569fc410d3304
Reviewed-on: https://review.haiku-os.org/c/1604
Reviewed-by: Stephan Aßmus <superstippi@gmx.de>

16d463ae 16-Jul-2019 Adrien Destugues <pulkomandy@pulkomandy.tk>

PVS V501: redundant checks

There are some more in telnetd and agg but I'm not sure if they are
intentional, the code is so ugly there.

Change-Id: I9cc2bf8a919c3b1d6c68f2ded8622730497b0f91
Reviewed-on: https://review.haiku-os.org/c/1598
Reviewed-by: Stephan Aßmus <superstippi@gmx.de>

ca68cae7 12-Jul-2019 Adrien Destugues <pulkomandy@pulkomandy.tk>

PluginManager: remove unneeded buffering.

The plugin manager was attempting to buffer the IOs. However, the ffmpeg
plugin already handles this (it reads in 64K chunks, the same size as
the buffer here, so this buffering was effectively useless), and the
media extractor already runs the decoding in a separate thread thanks to
the chunk cache. So, we do not need an extra level of buffering here.

We should leave any extra buffering to the upper layers (BMediaTrack or
Media Extractor), if it's needed, as they would have much more control
on the creation of the data io object.

Change-Id: I65b67919da107c8b910dd08f8cdb8e3745af92c7
Reviewed-on: https://review.haiku-os.org/c/1588
Reviewed-by: Stephan Aßmus <superstippi@gmx.de>

727e49c6 12-Jul-2019 Adrien Destugues <pulkomandy@pulkomandy.tk>

Media Kit: remove MediaExtractor::Source

The idea was that the Media Extractor could wrap the original source
given by BMediaTrack, but all operations on the data go through
MediaExtractor anyway.
We could probably move ownership of the BDataIO completely into
MediaExtractor instead.

Change-Id: I846b34b543fb983e60f6adf86cb17e835303267b
Reviewed-on: https://review.haiku-os.org/c/1587
Reviewed-by: Stephan Aßmus <superstippi@gmx.de>

218a8c03 17-May-2019 Augustin Cavalier <waddlesplash@gmail.com>

Revert the Codec Kit.

All of Barrett's individual reverts have been squashed into this
one commit, save a few actual bugfixes.

Change-Id: Ib0a7d0a841d3ac40b1fca7372c58b7f9229bd1f0

1e60bdea 30-Mar-2019 Augustin Cavalier <waddlesplash@gmail.com>

Remove all invocations of SetSubDirSupportedPlatformsBeOSCompatible.

662583b3 21-Feb-2019 Barrett17 <b.vitruvio@gmail.com>

MediaStreamer: Extend API to support DVD navigation

* This is a general review of the code and includes a rework
of the sniffing API.

a396188f 01-Feb-2019 Augustin Cavalier <waddlesplash@gmail.com>

BSound: Add explicit cast to bigtime_t.

Fixes the GCC2 build.

aad79bda 28-Jan-2019 CodeforEvolution <secundaja@gmail.com>

Implement Duration() in BSound

Change-Id: I45244cd958acd7856a065af01625d2164b9ad033
Reviewed-on: https://review.haiku-os.org/c/963
Reviewed-by: Stephan Aßmus <superstippi@gmx.de>

4bf8cf7a 26-Jan-2019 Augustin Cavalier <waddlesplash@gmail.com>

DefaultMediaTheme: Properly set control targets.

In removing the "GroupView" class and replacing it with a real BGroupView,
I missed that it its AttachedToWindow() implementation iterated over all
child controls and set their targets to themselves. It seems this is how
the Media Kit gets change messages from them, and so the lack of this
broke changing parameter values. Whoops.

But it seems that changing menu option values has been broken for a long time
(perhaps forever?), as in order for a BOptionPopUp to send messages to anything,
its AttachedToWindow() must be called (as this sets the BMenuItem's targets
to itself, so it can forward the messages.) So now that is fixed too.

9e7d077d 22-Jan-2019 Augustin Cavalier <waddlesplash@gmail.com>

Media Kit: Remove DynamicScrollView from DefaultMediaTheme.

As of the last commit, a BScrollView in layouted mode now behaves
this way by default.

Change-Id: I07bd17d6d20e494c0e2f08172c0d54b10fa5d26d
Reviewed-on: https://review.haiku-os.org/c/893
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>

a4f5124f 21-Jan-2019 Augustin Cavalier <waddlesplash@gmail.com>

Media Kit: Rewrite DefaultMediaTheme to use layouts.

The old fixed-rect method was very error-prone in corner-cases,
resulting in half-visible (cut off) parameters, incorrectly
sized controls, etc. on various devices, which often made it
impossible to use.

While there are still a few rough edges (scrollbar behavior could
be further improved, though it's already much better than it was before),
this method is much better than the previous one.

Fixes #11592 and related tickets.

Change-Id: I65175f760bda98e42d1fc68ba8e526470bf17c25
Reviewed-on: https://review.haiku-os.org/c/889
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>

e7933432 28-Dec-2018 Barrett17 <b.vitruvio@gmail.com>

BCodecRoster: Remove MakeFormatFor

* I want to introduce a new way for plugins to
register for a format. Supporting the old FormatManager is
too painful at this point and not worth the effort.

fa911df6 27-Dec-2018 Barrett17 <b.vitruvio@gmail.com>

Move FormatManager back to the media_kit

* We don't aim to replicate this functionality. I don't
think this will be useful at all in future iterations.
Originally I planned to rewrite it on top of the new
BMediaFormat, but now I am of the hopinion this is
greatly unneeded.

f3e31761 27-Dec-2018 Barrett17 <b.vitruvio@gmail.com>

Move GetNextEncoder implementations to BCodecRoster

26c68df8 24-Dec-2018 Murai Takashi <tmurai01@gmail.com>

MediaDefs.cpp: Fix PVS 593

Remove unneed if condition, since 'size_t size' is unsigned.

Change-Id: I283afe6c1c24713b8efa21bd70747293fbc61899
Reviewed-on: https://review.haiku-os.org/796
Reviewed-by: Barrett17 <b.vitruvio@gmail.com>

b6c5bdbd 07-Dec-2018 Barrett17 <b.vitruvio@gmail.com>

MediaFile: Properly use BMediaExtractor::GetMetaData

278d03da 27-Nov-2018 Barrett17 <b.vitruvio@gmail.com>

media_kit: Remove most private dependencies from codec_kit

* Move to BCodecKit namespace and make extensive use
of BCodecRoster.
* This is a first step in the right direction of
decreasing private dependencies. Some APIs are being
translated to the CodecKit. I am doing an investigation
on which APIs are really used among apps, so that the new
kit can be more slim and oriented toward easy development
and can be extended in the right direction instead to
continue maintaning unuseful code.
* BMediaFormats needs still a bit of love.
* General improvements in style and code maintainability.

d33bd9ec 26-Nov-2018 Barrett17 <b.vitruvio@gmail.com>

Codec Kit: Introduce BCodecKit namespace

ee09c291 24-Nov-2018 Barrett17 <b.vitruvio@gmail.com>

Media Kit: Update private code

082e4ae4 25-Nov-2018 Barrett17 <b.vitruvio@gmail.com>

Codec Kit: Rename files

e0a6d5ce 23-Nov-2018 Barrett17 <b.vitruvio@gmail.com>

MediaClient: Fix -Werror=set-but-unused

* The error wasn't checked.

af34e7ab 22-Nov-2018 Barrett17 <b.vitruvio@gmail.com>

Codec Kit: Beauty fixes

b1c8bb2c 21-Nov-2018 Barrett17 <b.vitruvio@gmail.com>

MediaFile/MediaTrack: Use MetaData API internally

9b50ad1d 21-Nov-2018 Barrett17 <b.vitruvio@gmail.com>

MediaFile/MediaTrack: Use metadata to retrieve copyright

de42fb60 24-Oct-2018 Barrett17 <b.vitruvio@gmail.com>

Welcome Codec Kit!

* Fix MediaDebug header.
* Add codec lib name mapping.

50cb5283 23-Oct-2018 Barrett17 <b.vitruvio@gmail.com>

media/codec: Share media_format defs until libmedia2.so

df2639bf 23-Oct-2018 Barrett17 <b.vitruvio@gmail.com>

Move adapter_kit API to libcodec.so

1275248a 24-Oct-2018 Barrett17 <b.vitruvio@gmail.com>

codec_kit: First half

* Move all codec stuff into libcodec.so

bc622f6b 15-Oct-2018 Humdinger <humdingerb@gmail.com>

Fix missing localization

This addresses some of what's reported in ticket #14637.

* Keymap preferences: Localize key labels. Translators have
to be careful not too use too long words here...

* Media preferences: Fix typo "SoundFonts" -> "SoundFont"
The two popup menus, Video input/output, both use "<none>",
which when the catkeys are collected is reduced to one item.
Apparently, Italian likes to have different tranlsations for
them. I hope to fix that by using B_TRANSLATE_COMMENT with
differing comments. Not sure if that'll work...

* Network preferences: Localize "on/off" and "Enable/Disable"
in the Services.

* Repositories preferences:
Add RepoRow.cpp to DoCatalogs.

* Shortcuts preferences: Localize "Left/Right/Both/Either/None"

* Bluetooth replicant: Localize menu items and alerts.

* DeskCalc: Localize button names.

* HaikuDepot:
- Use BStringFormat and variables to replace for the WorkStatusView.
- Put package name in single quotes; nicer if you have package names
with spaces.
- Avoid leading and trailing spaces in translatable strings. Those
can be overlooked b the translator.
- Use B_UTF8_ELLIPSIS instead of "...".

Change-Id: Ia32908f9faad5188aa87c918c31229277decbda9
Reviewed-on: https://review.haiku-os.org/631
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>

b84955d4 23-Oct-2018 Barrett17 <b.vitruvio@gmail.com>

media: Remove debug.h, finalize MediaDebug.h

* Funny rust from 0 AD.

2d93cf97 31-Jul-2018 Barrett17 <b.vitruvio@gmail.com>

AdapterIO: Fix -Wtautological compare.

* B_MEDIA_SEEKABLE was once a flag with one bit set. Due
to the complexity of streaming mediums, I had to split
and never noticed that this broke the flag check.

* Reported by Murai Takashi through gcc8.

12ed45b6 18-May-2018 Murai Takashi <tmurai01@gmail.com>

Media kit: Suppress -Werror=class-memaccess

* Add media_format::Clear(), media_format::Unflatten().
* Replace memset() with media_format::Clear()
* Replace memcpy() with media_format::Unflatten()

Fix #14156

Change-Id: I38ebc2de4915b954a15b6f4f6b40d016506910e5

2cb3cabc 03-Mar-2018 Barrett17 <b.vitruvio@gmail.com>

MediaClient: Revert debugging edits

* The -a argument ended up in my git commit inadvently,
sorry about that.

6072c6f1 03-Mar-2018 Barrett17 <b.vitruvio@gmail.com>

MediaConnection: Cleanup after disconnect

65a94fbb 01-Mar-2018 Barrett17 <b.vitruvio@gmail.com>

MediaConnection: Fix Disconnect bug

852b6295 01-Mar-2018 Barrett17 <b.vitruvio@gmail.com>

MediaClient: Rename IsRunning to IsStarted

a6ac14c7 01-Mar-2018 Barrett17 <b.vitruvio@gmail.com>

MediaClient: Add ClientRegistered callback

1c15261f 01-Mar-2018 Barrett17 <b.vitruvio@gmail.com>

MediaConnection: Add connection name handling

83bcc405 01-Mar-2018 Barrett17 <b.vitruvio@gmail.com>

MediaClientDefs: Cleanup unneded methods

d717df83 01-Mar-2018 Barrett17 <b.vitruvio@gmail.com>

MediaClientNode::GetLatency use base version

9391114b 01-Mar-2018 Barrett17 <b.vitruvio@gmail.com>

MediaClientNode: Remove unuseful Disconnect calls

* While those calls were unharmful, better to remove them.

f015d06b 01-Mar-2018 Barrett17 <b.vitruvio@gmail.com>

MediaClient: Remove Preroll and SyncTo

6dc7d854 01-Mar-2018 Barrett17 <b.vitruvio@gmail.com>

MediaConnection: Review format negotiation mechanism

182ec76b 28-Feb-2018 Barrett17 <b.vitruvio@gmail.com>

MediaConnection: Remove format change protocol

444d8ec0 26-Feb-2018 Barrett17 <b.vitruvio@gmail.com>

MediaConnection: Hide connection callbacks

* At this point we want to avoid the user calling the callbacks
in the form of BMediaConnection. Instead we force to use the
BMediaInput and BMediaOutput versions.

ff56eda5 26-Feb-2018 Barrett17 <b.vitruvio@gmail.com>

MediaConnection: Move buffer management on producer side

9cf18a39 25-Feb-2018 Barrett17 <b.vitruvio@gmail.com>

MediaConnection: BufferSize should be inherited

* While it's trivial for audio to calculate the buffer size,
it isn't the same for video.

befa252f 24-Feb-2018 Barrett17 <b.vitruvio@gmail.com>

MediaConnection: Non simple connections should be inherited

* BSimpleMediaConnections are provided for that.
* Make SetOutputEnabled private.

c61ffa96 24-Feb-2018 Barrett17 <b.vitruvio@gmail.com>

MediaConnection: Remove latency range interface

* In preparation for the introduction of BMediaGraph.

72958d8b 23-Feb-2018 Barrett17 <b.vitruvio@gmail.com>

MediaClient: Remove SetRunMode

8a9e1e0d 31-Dec-2017 Augustin Cavalier <waddlesplash@gmail.com>

Removal of non-Haiku target platform logic from build system (part 1.)

Following recent changes to use libroot_build on Haiku also, it is now
actually impossible to build Haiku components on non-Haiku platforms
(BeOS R5, Dan0, BONE, Zeta), so we can remove any logic related to this.

This is only the first part; still to be removed are:
* SetSubDirSupportedPlatformsBeOSCompatible

dbad909b 24-Jul-2017 Jérôme Duval <jerome.duval@gmail.com>

BMediaFile: fix MediaExtractor crash.

* stop the extractor processing before deleting the source.
* crash happened in MediaPlayer FilePlaylistItem::_CalculateDuration().
* was a regression introduced in hrev50671.
* fixes #13156.

3ceec1db 12-Jul-2017 Murai Takashi <tmurai01@gmail.com>

BufferConsumer.cpp: Fix ordered comparison between pointer and zero.

Signed-off-by: Adrien Destugues <pulkomandy@pulkomandy.tk>

ticket : #13599

c0ef5b2b 04-May-2017 Dario Casalinuovo <b.vitruvio@gmail.com>

MediaFile: Little refactor to use the MediaStreamer class

* This clarify the ownership of the source when using the experimental
* The extractor/writer are simplified and don't have to care about
* MediaStreamer is able to provide a generic BAdapterIO that is
suitable also for different uses than the codecs API itself.

9198105d 04-May-2017 Dario Casalinuovo <b.vitruvio@gmail.com>

MediaWriter/MediaExtractor: Remove BUrl constructors

dfecb37a 04-May-2017 Dario Casalinuovo <b.vitruvio@gmail.com>

Introduce new experimental class MediaStreamer

a33c8f4c 27-Apr-2017 Dario Casalinuovo <b.vitruvio@gmail.com>

MediaClient: Some more consistency in args order

0cc5ecb8 13-Apr-2017 Dario Casalinuovo <b.vitruvio@gmail.com>

MediaClient: IDs should be signed integers

* It's very important to use a negative value to identify
non valid or uninitialized connections. Additionally, it's preferred
to don't interfere with media_kit types as long as the framework use
it in the backend.

98f2303d 09-Mar-2017 Dario Casalinuovo <b.vitruvio@gmail.com>

PluginManager: Fix memory leak.

* Fixes #13126.

5854fc4a 18-Feb-2017 Dario Casalinuovo <b.vitruvio@gmail.com>

MediaClient: Add remaining wiring for input/output functionality

* BufferReceived is renamed HandleBuffer.
* Update doc.
* Implement buffer production private methods.

b6f76ebe 09-Feb-2017 Augustin Cavalier <waddlesplash@gmail.com>

s/OpenBeOS License/MIT License/ universally, as they're the same thing.

Fixes #8681.

614d494a 25-Jan-2017 Jessica Hamilton <jessica.l.hamilton@gmail.com>

DefaultMediaTheme: use DetachedFromWindow() for unwatching media events.

11ed4f9f 25-Jan-2017 Dario Casalinuovo <b.vitruvio@gmail.com>

MediaRoster: Don't call NodeRegistered before FinishCreate

* A TimeSource need an additional hook called FinishCreate to be
able to create it's transfer area. This hook was called after the
node registration making room for potential mismatch of the transfer
buffer. Most media nodes such as an event looper call
begin to work with time related functions just once the registration
happens. It could cause shadowed timesource objects initialization
to fail too.
* Add a debugger call to prevent any node to use an unitialized
TimeSource area, that would help to identify any remaining issue.

0563e540 18-Jan-2017 Dario Casalinuovo <b.vitruvio@gmail.com>

MediaClient: Remove operator overloding from private class

991d9dbf 18-Jan-2017 Dario Casalinuovo <b.vitruvio@gmail.com>

MediaConnection: Implement auto release

0844ddf4 18-Jan-2017 Dario Casalinuovo <b.vitruvio@gmail.com>

MediaClient: Polish destructors

* Make Release() the only public way to destroy a connection.

d64dd7be 16-Jan-2017 Dario Casalinuovo <b.vitruvio@gmail.com>

MediaClient: Fix style for private methods and other cleanup

* Cleaned up some unneeded callbacks.

7561d9ac 16-Jan-2017 Dario Casalinuovo <b.vitruvio@gmail.com>

Populate media/experimental with future media_kit classes

* Node implementations headers are move into src/kits/media.

9c7d2b46 15-Jan-2017 Jessica Hamilton <jessica.l.hamilton@gmail.com>

DefaultMediaTheme: improve watching for parameter value changes.

* Addresses TODO of sub-classing controls, registering with the
media roster for parameter changes.
* Also adds support for discrete parameter controls, which didn't
have this functionality.
* With this change, the controls no longer need to be focused or
modified for the parameter changes to register.

fdfd8a50 15-Jan-2017 Dario Casalinuovo <b.vitruvio@gmail.com>

General MediaClient cleanup

* Avoid setting fRunning in different places.
* Fix SimpleMediaOutput kind mismatch.
* Other minor fixes.

550e05af 15-Jan-2017 Dario Casalinuovo <b.vitruvio@gmail.com>

MediaClient: Start/Stop force argument doesn't make sense

728c730c 15-Jan-2017 Dario Casalinuovo <b.vitruvio@gmail.com>

MediaClientNode: Fix little night's mixup

2c9fa0f2 15-Jan-2017 Dario Casalinuovo <b.vitruvio@gmail.com>

MediaClientNode: Schedule outgoing connections on start

* Add preliminary binding support.

e6004b77 10-Jan-2017 Dario Casalinuovo <b.vitruvio@gmail.com>

MediaClient: Move WIP min/max functions into BMediaConnection

e7aa210b 10-Jan-2017 Dario Casalinuovo <b.vitruvio@gmail.com>

MediaClient: IsRunning() status is set at handle time

3ef4b200 10-Jan-2017 Dario Casalinuovo <b.vitruvio@gmail.com>

Make BMediaRecorder public

* Fills a functionality lack of the classic media_kit.

1942b3b1 30-Dec-2016 Adrien Destugues <pulkomandy@pulkomandy.tk>

Missing include.

Make gcc5 happy.

f621b750 30-Dec-2016 Adrien Destugues <pulkomandy@pulkomandy.tk>

BSoundFile: implement most of it.

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.

2c26ad4b 29-Dec-2016 Adrien Destugues <pulkomandy@gmail.com>

move BUrl to the support kit

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.

51844723 17-Dec-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

MediaConnection: Remove redundant IsInput/IsOutput

75b90c42 17-Dec-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

MediaConnection: Fix buffer size and duration redudancy

* There's no need to supply ways to mismatch the buffer duration
and size. Anything should reflect the media_format, this is at least
fixed on API level.

2fdc256d 17-Dec-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

BMediaOutput: API cleanup

a9a63d1b 17-Dec-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

MediaClient: First valid ID for connections is 1

ab96594f 12-Dec-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

MediaEncoder: Fixes CID 1347183: Control flow issues (NO_EFFECT)

* An unsigned value was checked for negative values.

83cd87d0 11-Dec-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

SimpleMediaClient: Use virtual inheritance to reduce duplication

d1742cc3 11-Dec-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

MediaInput/Output: Inherit base virtually

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 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.

f1f09565 06-Dec-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

MediaClient: Just some interface review

ecb39585 28-Nov-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

Introduce BSimpleMediaClient

* The idea is to move the callback based mechanism into a derived
class. The objects can be composed to create working systems.
* The BMediaClient class supply RegisterInput/RegisterOutput
and BeginInput/BeginOutput is moved to BSimpleMediaClient.
* Various minor fixes.

209b520f 26-Nov-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

MediaClient: Add some padding and reserved functions

05e29ea1 26-Nov-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

MediaConnection: Remove Reset()

9ee6577e 26-Nov-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

MediaClient: Distribute callbacks across derived classes

9e9655ed 25-Nov-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

MediaClient: Use CurrentTime for both offline and performance time

6d025521 25-Nov-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

MediaClient: Introduce BMediaInput and BMediaOutput

eebedf8f 24-Nov-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

MediaClient: Use unique id for both inputs and outputs

902701e6 24-Nov-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

MediaClient: Use higher level structs for the remaining methods

d3523cb2 24-Nov-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

MediaClient: Fix connection and tests

* Remove some bran related to the Faber audio engine heritage,
this fixes connections and all tests.

a546d1f8 23-Nov-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

MediaClient: Rename FindConnection into FindInput/FindOutput

* The first used for destinations and the second for sources.

300e9786 23-Nov-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

MediaClientNode: Fix PrepareToConnect with unknown media_type.

f506f305 23-Nov-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

MediaClient: Improve internals and API

* Capabilities() become Kind()
* Use media_client and media_connection to better model
the different situations of the API. Reduce code duplication
and move media_kit structs/methods into private.
* Various API and beauty improvements.
* Introduce id management for media_connections.
* Fix different issues preventing to correctly begin a connection.

23d5326e 23-Nov-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

MediaClient: Introduce media_client and media_connection

* Those structs are provided as replacement for the classic
media_kit ones. They provide better encapsulation of the data
and the resulting code is heavily simplified. It's planned to
introduce BMediaRoster functions to provide conversion from
media_node and media_input/media_output to media_client
and media_connection.

2082b5d2 18-Nov-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

MediaClient: Use media_client_kind for client capabilities

5ec9bd1e 18-Nov-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

MediaClient: general cleanup

0253ecbd 16-Nov-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

MediaClient: Remove BeginConnection for external connections

* While it looked like a good formalism, there's no need to add
unneeded complex steps to the user of the API.

34619a6f 16-Nov-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

Revert "MediaRoster: Don't allow rosters without a BApplication"

This reverts commit f3c2f6665f2102f7bfac9374712444271e383668.

2740a716 14-Nov-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

Style fixes

f3c2f666 14-Nov-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

MediaRoster: Don't allow rosters without a BApplication

* The BeBook states that any media_kit app should have BApplication
behind. Beware the app don't need to be running, but the object
should be present. This is because we use BApplication as a safe
exit point to free the memory allocated.
* While I was a bit reclutant in doing that, after a developer
discussion we agreed this would be the cleaner way to solve this
problem without eluding it.

ad7255c8 14-Nov-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

MediaRoster: Use messaging instead to call Quit on exit

* As far as the bebook states loopers shouldn't be quit from
other threads, using a B_QUIT_REQUESTED message should be more

521f41dd 11-Nov-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

Fix typo and build

9b410c41 11-Nov-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

Initial merge of the BMediaClient branch

* The BMediaClient is an higher level API to the media_kit. It
corresponds to what the layout API was for the interface_kit.
The main idea is to allow the developer concentrate only on
higher level details and avoiding handle with the tricky parts
of the media_kit. At the same time the general purpose node that
is implemented inside would allow implementing the best techniques
around thus at the same time reducing code duplication and increasing
* BMediaClient is WIP, this is the initial merge of the branch.
The initial development stone was set long time ago and walked
through various design/implementation phases.

156b6cd5 05-Nov-2016 Adrien Destugues <pulkomandy@pulkomandy.tk>

BMediaFile: fix destruction order.

The fSource can point to a source with code inside a media plug-in (in
particular, the HTTP source from the http_streamer plugin). However,
deleting the extractor can cause the plugin to become "unreferenced" and
unloaded. If we try to call code to delete the source later, we find
that the code is already unloaded, and the app crashes.

This happens in Web+ when navigating away from Youtube or otherwise
interrupting a video while it is being played.

Fixes the crashing part of #13058.

8023d6ba 31-Oct-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

PluginManager: Move reference counting in the MediaPlugin

* Ideally we should support this feature by default to allow
future improvements to the plugins management.
* Fixes the major memory corruption that lead to various
crashes on exit in MediaPlayer.

42a3f947 25-Sep-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

PluginManger: Remove BReferenceable and add locking

3588e74a 19-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 useful, the port wait is
behaving more in accordance with the lateness calculus.
* Fixes #12817 and possibly #12594.

0c98ab27 19-Oct-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

BMediaFile: Add BUrl SetTo

* Also fix the server version of BUrl constructor
to use a const reference.

1c5cb31f 19-Oct-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

BAdapterIO: Implement SeekModes

ac8ca416 07-Sep-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

Fix StreamerPlugin reference counting

* BReferenceable deleted itself when the latest
reference was released causing a double free.
* The code now avoid to call the function when
we are about to delete the object.

e3f20799 07-Sep-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

AdapterIO: Remove unuseful Close()

79bd3b48 07-Sep-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

StreamerPlugin: Add reference count

* Keep the Streamer around until everyone released it.

95a5e625 07-Sep-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

MediaFile: Correctly delete the source on exit

* The delete flag of BUrl constructors was reset by _Init,
this lead to a zombie thread on the background under certain

0162e272 10-Jul-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

AdapterIO: Create seek sem only when requested

0474db50 09-Jul-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

AdapterIO: Add IsRunning method

* The backend need to know if we can really get data.
* Adapt WaitForData to be more reliable using this method.

9f2deec2 03-Jul-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

AdapterIO: Seeking and flags access improvements

* Backend seeking is done only if explictly requested in
BAdapterIO Seek.

3ad928de 02-Jul-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

BAdapterIO: Refine size inheritance

* Wait evaluation is done considering both position
and buffer size.
* Set back position to 0 after seeking.
* Simplify EvaluatePosition to take advantage of inheritance.
* Use back position to determine the current size of the buffer.
* Add more debug tracing.
* Other minor fixes.

1acb1f50 30-Jun-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

Style fixes

345dba54 30-Jun-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

AdapterIO: Further development of the interface

* Implement Open/Close mechanism.
* Implement SetBuffer.
* Implement timeout handling.
* Improve Seek mechanism, this is now working by locking the
thread until the backend call SeekCompleted.

4dd09daf 24-Jun-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

Streaming: Use const reference in place of copying

* Thanks to Markus for reporting.

0ba82236 24-Jun-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

Streaming: Remove any pointer BUrl argument

* There's no need to pass BUrl by pointer, this is
potentially dangerous and leaky without any advantage,
copying is definitely safer.

bcab157e 22-Jun-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

AdapterIO: Size could be 0

* Also avoid seeking completely when we are sure
we have to block.

6b697577 22-Jun-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

AdapterIO: Add debug

6903cf9b 22-Jun-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

AdapterIO: Increase consistency

* Moved data locking in the internal buffer class, includes handling
of backend writes.
* Takes advantage of inheritance for getting the size. The choice is
made depending on the flags. This allow the implementer to easily
return a custom size by reimplementing GetSize. At the same time
a plain BAdapterIO can still have it's total size set, but the behavior
will change depending it's mutable or not.
* Some decisions are now made by considering everything in absolute
* Other minor fixes.

ad89985e 21-Jun-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

PluginManager: Assign the BBufferIO pointer

59ff587d 08-Jun-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

Style fixes

3faf39eb 07-Jun-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

BAdapterIO: Add initial seeking support

* This is by default provided using a relative buffer. When the
client request a seek over the range we currently have, we will
ask the backend with a SeekRequested. When the backend operation
ended successfully, the client is required to call SeekCompleted
before to return. This will cause the offset to change and the
buffer is cleaned as result. Next data received will be considered
to be at a position equal to the offset plus the relative position.

be67b102 02-Jun-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

AdapterIO: Fix problem with RWLocker

* Originally this code didn't use an AutoLocker, when I changed it
I didn't realize I created an anonymous temporary inadvertently.
* Thanks to hamishm for catching this.

228b5c17 02-Jun-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

Implement SetSize in AdapterIO

* Give this choice to inherited classes.

53058b8a 30-May-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

Fix x86_64 build

0a2584e4 30-May-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

PluginManager: Refactor to make use of new API

* General refactor, moved BDataIO emulation in a
BAdapterIO derived class, BDataIOAdapter.
* This allowed to simplify the wrapper that is now
considering everything to be seekable or pseudo-seekable.

b660d95f 30-May-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

Introduce BAdapterIO

* This class is provided as a safe multithreaded communication channel
between a BMediaIO-like interface and a Read/Write backend.
* Includes internal buffering and can be used to provide multithreaded
edit of the data.
* Current limitations include missing BOutputAdapter and
correct timeout handling.
* Future plans provide a BRemoteAdapterIO that using ports
and areas allow to easily send big data between processes.

2ceb090f 19-May-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

media_kit: Follow up fix to use only portable codes

* My previous commit fixed x86_64 but broke all other archs.

f4ba347b 19-May-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

media_kit: Fix debug printf werrors

* When debugging was enabled in the media_kit those were
causing the build to fail complaining about werrors.

9d6d0aea 18-May-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

PluginManager: Missing return in printf

51c8ec34 16-May-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

MediaKit and MediaPlayer Style Fixes

* Suggested by korli, thanks!

6646363e 16-May-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

MediaExtractor: The source is always owned by BMediaFile

* While originally I think it was a good idea to make it own the source,
then I decided to uniform the code by making the BMediaFile to be the
only responsible of that.

21cf69c7 16-May-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

AddOnManager::GetStreamers: Consider maxCount and outCount

* Fix a little issue when getting the plugin.

dc941325 16-May-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

BMediaFile: Set for deletion a source obtained from url

* Added some TODOs and comments for future things that
are not priority now.

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.

6d63bc5e 07-May-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

launch_media_server: Use BLaunchRoster::Start

* Remove SyncToServices and the related code from BMediaRoster.

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

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.
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.

20802959 22-Apr-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

shutdown_media_server: Rely on actual instance

* Makes the shutdown process to rely on the instance that was
running at the time the function is called. While it's unlikely
anyone will see any change from that, this way we will not conflict
in any case with the launch_daemon.
* The reply could have been confused in a remote situation, make
every request to use an it's own object.
* In launch_media_server there was a wrong variable redefinition

e4704eb6 22-Apr-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

MediaDefs/MediaRoster: Increase code consistency

* Also fix a possible issue with List::Get, the code returned
after a Get() error. While I doubt if this happens the next
items will be still valid, I prefer to continue until we reach
the end of the items, and in case of a SyncToRoster request we will
at least get the list empty. We might have a blocking call
on the other end, so it's our own duty to at least try to avoid
this in any case. As final result at least we will get the list

76889670 21-Apr-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

shutdown_media_server: Finalize rework of synchronization

* When the user isn't requesting a custom notification, it will
be a BMediaRoster job to do it.
* Reintroduce BMediaRoster::SyncToServices, this time based on local
message passing rather than a global semaphore.
* SyncToServices is used in launch_media_server to make the process
more launch_daemon safe and faster in the average case.
* It was an error to add notifications in the media_server.
* Fixes #12717.

f441a1e2 07-Apr-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

BControllable: Fix real_time and perf_time mismatch

* It caused parameters to change with delay, because the
event has been enqueued in the event queue with real time.
* Please don't rely on system_time.
* Fixes #5106.

2f611cf7 05-Apr-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

BParameterGroup: Fix memory leak

* Fixes #12706.
* The issue has been reported by Cédric Degea with the fix
included. Thanks!

99741be9 05-Apr-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

shutdown_media_server: Rework shutdown process

* Fixes issues with launch_daemon restart.
* Rely on what the actual response from the server is
instead to naively try to kill it.
* Remove snoozing and make the restart process very fast.
* Any app should rely on notifications anyway.
* Due to some reason a few months ago the media_addon_server
locked up very often making the notification service unreliable,
today this issue looks like solved. This made possible the recent

11c7bd86 04-Apr-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

Replace synchronization semaphore with async messages

* Remove SyncToServices, I will probably readd it in future
but this time using a local synchronization service more than
relying on the media_server to release the semaphore.
* Due to some discussions today in mailing list I decided
to step back and retry the initial way to notify media rosters
about media services status. It is woking by using two different
notifications for reconnecting to the media_server and notifying
the local subscribers.
* This speed up the media services restart.
* Sorry for the noise and very thanks for reviewing my code to

a0b3904a 03-Apr-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

launch_media_server: Remove notifications handled elsewhere

53c3fa51 02-Apr-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

Introduce functionality for syncing with the media services

* The global synchro semaphore is provided with the purpose of
being used to avoid threads lock up when the media_server is in
an undefined state. There's still room for improvements.
* BMediaRoster::SyncToServices lock up on a semaphore until
the multi_audio correctly connected to the mixer.

7eaa054b 31-Mar-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

StreamerPlugin: Use BDataIO as base interface

* There's no need to force the streamer plugin to use a
BMediaIO. This class is supplied to accomodate more smart uses,
but in certain cases it makes just things more complex. If a
plugin doesn't need to have an internal caching method, then it
will be simpler to implement a block-consuming BDataIO and let
the internal BMediaIOWrapper to deal with caching.

9ab61bb7 25-Mar-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

PluginManager: Fix build for x86_64

8c767985 25-Mar-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

Move MediaIO in it's own header

2250435e 24-Mar-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

PluginManager: Add debug to wrapper

25527aff 17-Mar-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

MediaIOWrapper: IsEndless was not used the right way

* The idea is to just identify when a BMediaIO is able
to tell the whole size of the data, but caching needs
more complex policies to be successful.

22c93142 14-Mar-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

MediaExtractor/PluginManager: Add plugin deletion when extractor die

3733e4b2 11-Mar-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

PluginManager/AddOnManager: Add streamers support code

b7776028 25-Mar-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

MediaFile: Rework to support BUrl sources

20ae088f 25-Mar-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

MediaWriter: Add new BUrl functionality

a2b3f126 25-Mar-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

MediaExtractor: Adapt to new BUrl functionality

b1ccc058 11-Mar-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

AddOnManager: Initial support for streamer addons

63e1708e 25-Mar-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

Finalize StreamerPlugin

* Add cpp file.
* Make Sniff virtual.

0d88bf3a 10-Mar-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

MediaIO: Review behavior regarding object inheritance

050118ef 07-Mar-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

Remove TODOs

382c78df 07-Mar-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

BMediaIOWrapper: Check if we can really seek the data.

36ffce0a 07-Mar-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

BMediaIOWrapper: Delete data in destructor

ef167f11 07-Mar-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

BMediaIOWrapper: Refer on fallback buffer Position()

* Write the data into the fallback buffer when emulating
pseudo seeked writes.

deb91660 25-Mar-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

PluginManager: Refactor of MediaIOWrapper

* Use BPositionIO version of Read/Write.
* Implementation of fallback buffering.
* Other cleanup.

6efbc4bb 06-Mar-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

BMediaFile: Move BBufferIO usage into the plugin manager

* Add InitCheck for the wrapper status.

b42aac7b 06-Mar-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

PluginManager: Initial switch to BMediaIO

846a5b02 20-Mar-2016 Zoltan Mizsei <miqlas@gmail.com>

printf's converted to TRACE

Signed-off-by: Dario Casalinuovo <b.vitruvio@gmail.com>

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 the difference that we will do that only
for perfomance time events.
* Fixes #12624.

c1ad6121 09-Feb-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

BMediaRecorder: Solve possible problem with node references

* Since the BMediaRecorder have an it's own estabilished policy
relating releasing the producer node we will not interfere with
it except when we are controlled from Cortex.

d23913f2 09-Feb-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

BMediaRecorder: Return the actual accepted format

* Allow SoundRecorder to record without the need of a system mixer
in front, for the nodes I can test.
* Solve other format related problems.

cc0d365e 09-Feb-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

BMediaRecorder: Fix unneeded argument and error check

2a2e352a 09-Feb-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

BMediaRecorder: Rework to allow external connections

* This required to review various parts of the code, and
isn't probably still perfect. The main problem was an attributes
hell where redondance created a lot of problems, all this data
is now controlled mostly by the node.
* Header indentation changes needed too.

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 Quit() request is performed
we will not handle events anymore.
* Other minor style and initialization fixes.

e2cf46ca 03-Feb-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

TimedEventQueue: Fix style as suggested by axel

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 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

bb1f15aa 01-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 audio stability problems I had with slow systems.

ffeb987d 30-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() 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.

f1059fbd 28-Jan-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

BSoundPlayer: Release the node instead to delete

* It's a bad idea to delete directly a node. There are some
mechanisms behind that might break if not used correctly.
* May help with #12606.

ec02769a 06-Jan-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

media_server: Replace ping/pong with notifications

f0650dc9 09-Dec-2015 looncraz <looncraz@looncraz.net>

preferences: Convert to using Set*UIColor.

Signed-off-by: Augustin Cavalier <waddlesplash@gmail.com>
Patches 0023-0037 from looncraz, unmodified.

ec7d3b40 06-Dec-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

Move old launch_media_server to deprecated file

1acc73c4 06-Dec-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

Deprecate media_realtime_init_* functions

aad4b937 05-Dec-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

media_kit: Add Deprecated.cpp file

226be011 05-Dec-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

media_kit: General maintainance

* Move !missing_symbols.cpp in the legacy directory.
* Move useless methods in a Deprecated.cpp file.
* SetRealtimeFlags / GetRealtimeFlags are useless, they
don't make sense nowadays.
* The symbols are anyway preserved.

2b480e44 05-Dec-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

AddOnManager: Fix logic inversion

8cd14ac0 03-Dec-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

BMediaEncoder: Style fixes

2d508790 03-Dec-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

BMediaEncoder: Proper handling of i/o formats

3bc039b9 03-Dec-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

media_kit: Add encoding support facilities

537ea80a 02-Dec-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

BMediaEncoder: Style fixes

9bc60a8b 02-Dec-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

BMediaEncoder: Init/Release code cleanup.

106539c2 04-Sep-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

Implement BMediaEncoder::write_chunk

2b514992 02-Dec-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

Initial implementation of BMediaEncoder

* People interested, please review!
* This is based on the patch from Fredrik Moden which was based on
the Oleg Krysenkov one.
* The original patch has been reworked by myself.
* Adapted the code to work with the new PluginManager API which
differently than before doesn't need to contact the media_server.

6423f87f 19-Nov-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

BMediaRoster: Reference count polishment

* BMediaNode is registering it's presence to the roster.
* Only addons needs their configuration to be saved.

d98b8c7c 19-Nov-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

BufferCache: More strict validity checks

* This add a debugger call if the BBuffer id is
mismatched at object creation.

67060664 28-Nov-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

Allow BMediaRoster to log local nodes

* BMediaRoster is now capable to know which nodes are
instantiated in this team. This is also a first step to make
them survive after media_server crashes.
* A control at BMediaRoster::Quit can notify if all nodes
were correctly released. Ideally at this point the local nodes
list should be empty.

05962bb1 28-Nov-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

Add a way to register loopers for quit

* BApplication can now take the job to quit a BLooper at
the application quit. It's rejecting requests from windows too.
* BMediaRoster is using now this service in conjunction with the
* The BeBook specify that we should have a valid BApplication
before to instantiate the BMediaRoster. While in theory we should
add a debugger call when this situation happens, in pratice this
might lead to more problems. For example libraries might use the
media_kit and create a BApplication object, but they aren't
applications, this is a design problem. So I decided to replace it
with a TRACE call for the moment.

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 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.

8bffda16 21-Sep-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

media_kit: Allow to set a NULL buffer group. Fixes #12305.

38e3fbe3 01-Sep-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

BMediaRoster: Remove possibly confusing debug prints

* Thanks to Axel and Rene for reviewing!

7d337b23 01-Sep-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

BMediaRoster: Reintroduce the undertaker class

* This has been necessary due to the undefined call order of
of static objects. Fixes #12315.
* The bug has been caused by the linker which free unused resources,
making the BMediaRoster to run in a zombie state. In this state
anything such as a message could make the looper to crash.
* The class is reintroduced with some differences though, we are
going to protect it from another thread calling Roster() while the
BMediaRoster is quitting and implement BMediaRosterEx::Quit.
* Unregister registrar notifications before we quit our thread. Avoid
to uninitialize anything from QuitRequested as it may cause problems.

48b2cb37 29-Aug-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

BMediaRoster: Pass unhandled messages to the base class

* While it shouldn't be a big problem, the bebook states
that it's very important to do so.

d15321ff 28-Aug-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

BMediaRoster::Roster Use BAutolock

be7d9d3f 27-Aug-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

BMediaEventLooper: With B_WOULD_BLOCK we may still handle an event

90cdf5e4 27-Aug-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

BMediaNode::WaitForMessage: protect it over negative timeouts

da181514 26-Aug-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

Revert "MediaNode: Wait for 0 time if the absolute timeout is in the past"

This reverts commit ae9cbf9c4e167470b47964059e90c2b0881367eb.

* Thanks to Pawel Dziepak for reporting!

ae9cbf9c 25-Aug-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

MediaNode: Wait for 0 time if the absolute timeout is in the past

dfe056fd 25-Aug-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

BMediaEventLooper: Continue code improvements.

d796a63b 08-Aug-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

MediaKit: Other style fixes

* Thanks to Marcus for reviewing, this is what happen when
you mess out with the TODO list.

6ca16f31 08-Aug-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

MediaKit: Style fixes

b0ed3239 03-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
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.

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 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!

8ecc32df 02-Aug-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

BBufferProducer: Returning B_ERROR hang up things

75b9de16 02-Aug-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

MediaDefs: Fix percentage in when notifying the system

* Use TRACE instead of PRINT.

1ce097db 30-Jul-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

BMediaRoster: Wait with more calm for services to be up.

* Needed to avoid the app restarting things too fast. This
is a problem that should be solved, added a TODO.

8acd164f 29-Jul-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

Add new version of launch_media_server

* Due to the needs to provide a peaceful UX, i moved out the
notifications mechanism from the Media preflet and i have
integrated it with the launch and shutdown functions of MediaDefs.h.
* This implied to introduce a new launch_media_server function
similar to the shutdown_media_server allowing to specify a custom
notification function too.
* Both functions then are reworked to send by default notifications
to the Deskbar, this was needed because in a lot of situations
the mechanism failed without correctly noticing the user.
* The one argument launch_media_server is considered to be deprecated,
the default argument is removed to mantain binary compatibility but
make new apps to automatically use the new one with just the default
arguments. This is needed due to conflicts in overloading.
* Improve notifications by indirectly extending localization
to old BeOS apps.

40de3cd1 27-Jul-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

BMediaRoster: Definitely undertake the MediaRosterUndertaker

* On a more deep analysis i figured out that other than being
a bad pratice quitting the BLooper explicitly was cause of
more problems, such as the regression after my patches which
led to have a zombie media_addon_server after media services
restart. This should hopefully place a final stone on the
BMediaRoster::Quit() issue as with the previous commit
i've removed every attempt to do this in the system. For
any application developer listening, this means that quitting
the BMediaRoster is highly discouraged, don't do it.

2303600a 24-Jul-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

TimedEventQueuePrivate: Remove debugger call

d009f286 24-Jul-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

media_kit: Fix style as suggested in ml

32afe10a 23-Jul-2015 Dario Casalinuovo <b.vitruvio@gmail.com>


* This is done by watching to registrar notifications
and providing a minimal service to contact the
media roster in private API. The roster use this
service to automatically reconnect to the media_server.

e57acc3a 23-Jul-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

BMediaRoster: Fix initialization and destruction

* Improve consistency by adding a BMediaRosterEx destructor
and using it for the specular functionality of ctor instead
to use the father's class destructor.
* Avoid double initialization of MediaInitializer that
becomes MediaRosterUndertaker.
* Remove superfluos call to BMediaRoster::Quit()
in media_addon_server.

41f5b3fc 28-Mar-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

launch_media_server: correctly handle media services start

* Handle when the media_addon_server is not
* Fix #5621.

67483eda 09-Apr-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

Add BMediaRoster::IsRunning

* This function is provided to check
if media services are running.

c079d8d6 12-Jul-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

Implement BMediaRoster::GetNodeAttributesFor

8abf9450 11-Jul-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

BMediaNode API is now feature complete

* Change BMediaNode::GetNodeAttributes macro to CALLED(),
since the base implementation should just return B_ERROR,
unset as unimplemented for consistency.
* This means that since the latest changes the class
is now feature complete and implements the whole R5 API.
* Add documentation comment for it as well.
* Fix some lines going over 80 chars.

44cd1f48 11-Jul-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

MediaKit: Move old R3 API files to legacy subdir

33179216 11-Jun-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

BBuffer: initialize variables and cleanup

* Restore the BSmallBuffer exception in constructor,
it's not actually implemented or used but it should
still be keep safe.
* Initialize some variables in BBuffer and BBufferGroup.

714446cf 14-Apr-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

BufferProducer: check for BBufferGroup creation

280c64a9 14-Apr-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

BBufferGroup: rework init error handling

1cc20d82 14-Apr-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

BBufferGroup: Check for duplicated buffer id

* This exclude some possible cheating cases.
It impose to have only a buffer_id per thread,
so instances will not be duplicated if not needed.

0341eac7 14-Apr-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

BufferConsumer: rework SetOutputBuffersFor

* Use MemoryDeleter.
* Avoid use of dynamic allocation.

f50d7408 14-Apr-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

BBufferGroup::GetBufferList: avoid dynamic allocation

aa50bf9e 13-Apr-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

BufferCache: Don't find anonymous buffers

2e60efda 10-Jul-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

BMediaNode: Improve readability

* Style fixes.
* Remove pervasive comments.
* Cleanup.

b6f0f884 10-Jul-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

Implement BMediaRoster::GetFileFormatsFor

42d17c1a 18-Mar-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

Add more checking for BFileInterface related methods

* Validity of node and correct kind are now checked.

75486484 09-Apr-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

Implement BMediaRoster::SyncToNode

7bcdb362 24-May-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

media_server: Improve BTimeSource slave nodes management

The media_server is now able to remember the timesource associated to
a certain registered_node and always remove it when the owner
application crash, Fixes Ticket #11852

62d30d9e 19-Apr-2015 Michael Lotz <mmlr@mlotz.ch>

libmedia: Put AddOnManager into BPrivate::media namespace.

The AddOnManager was in the global namespace, clashing with application
classes with the same name.

The input_server has an AddOnManager of its own. When the
shortcut_catcher filter was loaded by said AddOnManager, it in turn
loaded libgame.so, which in turn loaded libmedia.so, where an
AddOnManager was created for the global AddOnManager instance in
libmedia.so. Unfortunately the wrong AddOnManager, the one from the
input_server, was created. This lead to two AddOnManagers being active
in the input_server which very well could be responsible for #11049
and #11280.

This was a regression since the move of the AddOnManager from the
media_server to libmedia.so in hrev47086. This also fits with the two

I actually noticed the problem when debugging the shutdown process of
the input_server, where the destruction of the wrong AddOnManager
caused a deadlock with itself.

83571947 13-Apr-2015 Adrien Destugues <pulkomandy@gmail.com>

Set the corret ID when unregistering the buffer.

Follow-up fix to hrev49035.

384ae40a 09-Apr-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

Correctly check when the BBuffer failed the registration with the server.

Signed-off-by: Adrien Destugues <pulkomandy@gmail.com>

8290e8d3 10-Apr-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

BBuffer: Unregister buffer when clone_area fail, fixes #6188.

Signed-off-by: Adrien Destugues <pulkomandy@gmail.com>

d6ab05e7 10-Apr-2015 Michael Lotz <mmlr@mlotz.ch>

Whitespace cleanup only.

a0a1f480 10-Apr-2015 Michael Lotz <mmlr@mlotz.ch>

libmedia: Fix leaks of dirs from find_paths in AddOnManager.

faa2d10c 17-Mar-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

TimeSource: Rework SlaveNodes management using TMap.

Signed-off-by: Jérôme Duval <jerome.duval@gmail.com>

7f01171f 16-Mar-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

BTimeSource: Cleanup code.

Signed-off-by: Jérôme Duval <jerome.duval@gmail.com>

683cf2ff 09-Jan-2015 Hamish Morrison <hamishm53@gmail.com>

BMediaRecorder: fix a few issues, fix style, remove unused SoundUtils

* Use the preferred time source (GetTimeSource) for the node
* Fix node releasing when creating the connection fails
* Add virtual slots and padding
* Refactor _Connect method

739fd34c 04-May-2014 Barrett <b.vitruvio@gmail.com>

Replace SoundCounsumer with modified BMediaRecorder.

Signed-off-by: Hamish Morrison <hamishm53@gmail.com>

14896b93 07-Jan-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

Implement BMediaRoster::RollNode().

Fixes #9083.

Signed-off-by: Adrien Destugues <pulkomandy@gmail.com>

72d47357 22-Oct-2014 Adrien Destugues <pulkomandy@gmail.com>

Register media add-ons on BMediaFormat::GetFormatFor().

* Fixes #11018.
* In this case the FormatManager format list is accessed without going
throught the AddOnManager, so we must tell the AddOnManager to register
the add-ons (as this is what populates the FormatManager format list).
* Remove now unneeded workaround in mp3_decoder_test.

220d0402 31-Jul-2014 Oliver Tappe <zooey@hirschkaefer.de>

Use libstdc++, libsupc++ and libgcc from gcc_syslibs.

* Instead of faking libstdc++.so from libstdc++.a, use libstdc++.so
from the gcc_syslibs build feature for everything except x86_gcc2.
* Use libgcc_s.so from the gcc_syslibs build feature for everything but
x86_gcc2 (which still carries libgcc as part of libroot.so).
* Drop filtering of libgcc objects for libroot, as that is no longer
necessary since we're only using libgcc-as-single-object for libroot
with x86_gcc2, where the filtered object file doesn't exist. Should
the objects that used to be filtered cause any problems as part of
libgcc_s.so, we can always filter them as part of the gcc build.
* Use libsupc++.so from the gcc_syslibs build feature for everything but
* Adjust all Jamfiles accordingly.
* Deactivate building of faked libstdc++.so for non-x86-gcc2. For
x86_gcc2, we still build libstdc++.so from the sources in the Haiku
source tree as part of the Haiku build .
* Put gcc_syslibs package onto the image, when needed.

cb2c4f8d 25-Apr-2014 Adrien Destugues <pulkomandy@pulkomandy.tk>

Convert more printf to TRACE in media kit.

84da57fd 23-Apr-2014 Adrien Destugues <pulkomandy@pulkomandy.tk>

MediaRoster: remove another message to app stdout.

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 webkit tests.

9b1f41b9 12-Apr-2014 Adrien Destugues <pulkomandy@pulkomandy.tk>

AddOnManager: remove more annoying traces.

5ba7abf8 10-Apr-2014 Adrien Destugues <pulkomandy@pulkomandy.tk>

AddOnManager: remove useless traces

These were acceptable in media kit log, but are only annoying now that
the AddOnManager is ran in applications. Moreover, these get to stdout
and make some WebKit tests fail.

62423740 04-Apr-2014 Jessica Hamilton <jessica.l.hamilton@gmail.com>

Media Kit: fix use of pthread_once_init in FormatManager.cpp

Signed-off-by: Adrien Destugues <pulkomandy@pulkomandy.tk>

8bbdad14 03-Apr-2014 Adrien Destugues <pulkomandy@pulkomandy.tk>

FormatManager: actually return the singleton instance.

This should work better.

63851060 02-Apr-2014 Adrien Destugues <pulkomandy@pulkomandy.tk>

Plugin loading: style fixes.

* Fix style issues pointed by stippi. Thanks!
* Rework the FormatManager instanciation to be thread safe.

bf3b475c 02-Apr-2014 Adrien Destugues <pulkomandy@pulkomandy.tk>

Urpdate AddOnManager and FormatManager for Media Kit

* These classes were moved from Media Server, making the use of ports
and messages to communicate with the app irrelevant.
* Split in a separate commit to help git keep track of moved files.

Fixes #4893.

2feaa37f 02-Apr-2014 Adrien Destugues <pulkomandy@pulkomandy.tk>

Move media plug-in support to application side.

The media server tried to use node monitoring to dynamically add and
remove plug-ins, but it isn't that useful:
* When a plug-in is added, applications would have to query the media
server to get an up to date list of available formats. For example
MediaConvert populates its format menus on startup.
* When removing a plugin, if an app already had it loaded, there is not
much that can be done to keep it working.
* The list of plugins was not sorted by directories (user vs system
add-ons), so the directories were re-scanned to make sure user add-ons
were returned first, rendering the node monitoring less interesting.

Now, the format handling is done by each application. The node
monitoring is removed, instead the apps will scan the plugin directory
when first using the media kit classes. Restarting the application is
needed to update the media formats list.

d0f2d828 16-Jan-2014 Pawel Dziepak <pdziepak@quarnos.org>

Merge branch 'scheduler'


9f79c0ca 25-Dec-2013 Jérôme Duval <jerome.duval@gmail.com>

media: Fix ParameterWeb (un)flattening behavior for x86_64.

* should fix #10316.

df612ac9 13-Dec-2013 Rene Gollent <rene@gollent.com>

Fix #10302.

- In the case of an error while unflattening, BMediaRoster::GetParameterWebFor()
would allocate a new parameter web object into the passed in web pointer, and
then delete it again. This would result in the desklink MixerControl object having
a bogus pointer in its fParameterWeb member, leading to a crash. As such, create
the object in a local variable first, and only overwrite the passed in pointer on
success. Furthermore, explicitly reset said pointer to NULL in desklink on failure,
as _Disconnect() tries to delete it unconditionally.

4c125cca 11-Dec-2013 Pawel Dziepak <pdziepak@quarnos.org>

kits/media: CPU clock speed may vary significantly

1fe06744 04-Dec-2013 Jerome Duval <jerome.duval@gmail.com>

libmedia: use size_t consistently in rtm_pool.

* fixed a bad address error on x86_64.

cb00db5b 23-Nov-2013 Jérôme Duval <jerome.duval@gmail.com>

libmedia: fixed minor leak in BDiscreteParameter::AddItem.

* CID 992460

c74afb57 19-Oct-2013 Jérôme Duval <jerome.duval@gmail.com>

try to avoid a media_addon_server crash on quit (bug #5863).

* BMediaRosterEx::ReleaseNodeAll(): if media_server isn't available,
try to contact the node locally.
* BMediaRoster::UnregisterNode(): if media_server isn't available,
try to get the addon_id from the local node.
* BMediaNode::AddOn() as a pure virtual methode isn't available in the
BMediaNode destructor. Workaround that by calling UnregisterNode()
in DeleteHook() instead of the destructor.
* MediaAddonServer::_DestroyInstantiatedFlavors(): give time to each
flavor to clean up.

f73f5d4c 29-Sep-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Initial changes to remove /boot/common

* find_directory() and hard-coded paths use /boot/system instead of
* The build system creates the writable directories in /boot/system
instead of /boot/common.
* The build system no longer installs any packages in /boot/common.

4ea76fdf 01-Oct-2013 Jérôme Duval <jerome.duval@gmail.com>

x86_64: ssize_t is arch specific, reuse read_pointer_from_buffer_swap()

... instead of read_from_buffer_swap32. The function could be renamed.
found with GCC 4.8.

cf70d345 12-Sep-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Merge remote-tracking branch 'haiku/master' into package-management

This reverts 8f7f28a7c3db28711920ad5d15df401fae90bcf1 (OpenGL: Upgrade
Mesa 9.2).


41e940ca 31-Aug-2013 John Scipione <jscipione@gmail.com>

MediaTrack: gaurd printf's behind TRACE_MEDIA_TRACK

72d0921a 31-Aug-2013 John Scipione <jscipione@gmail.com>

MediaTrack: Calling debugger() crashes the program

So, call printf instead, which allows the program to print an error
rather than crashing.

8bcc3722 31-Aug-2013 John Scipione <jscipione@gmail.com>

MediaTrack: Style fixes

225b6382 05-Aug-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Support building most system libraries for secondary arch

Also adjust the HaikuImageGet[Private]SystemLibs rules to support to
return the library targets matching the current architecture.

a71f2ed8 17-Jul-2013 Philippe Saint-Pierre <stpere@gmail.com>

TrackerReader: style fixes, no functional changes intended

ec4d0e42 05-May-2013 Michael Lotz <mmlr@mlotz.ch>

BMediaNode: Handle port read syscall interrupts by retrying.

The syscall might be interrupted, especially in signal heavy
applications. In that case we need to retry the read until the timeout
runs out. since the timeout is already absolute we don't need to adjust

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 :-)

d3668a54 12-Aug-2012 Jessica Hamilton <jessica.l.hamilton@gmail.com>

SoundConsumer.cpp: fix debug macros compiling in release mode

Signed-off-by: Jérôme Duval <jerome.duval@gmail.com>

59b4be8c 03-Aug-2012 Hamish Morrison <hamish@lavabit.com>

Move SoundConsumer to libmedia in the BPrivate namespace

Signed-off-by: Jérôme Duval <jerome.duval@gmail.com>

2d5785ba 20-Jul-2012 Philippe Saint-Pierre <stpere@gmail.com>

CID 611239: Fix resource leak

5c6b9eb0 23-Feb-2012 Jerome Duval <jerome.duval@gmail.com>

Some fixes for GCC 4.6 warning: variable set but not used

2c3ab1be 08-Feb-2012 Alexander von Gluck IV <kallisti5@unixzen.com>

kits: Fix a few missed spelling issues

1b6bc267 08-Feb-2012 Alexander von Gluck IV <kallisti5@unixzen.com>

kits: Some spelling cleanup of common mistyped words

* Little whitespace cleanup
* No functional change

e817f41e 28-Jan-2012 Fredrik Modéen <fredrik@modeen.se>

Fixing debug in Media Kit.

* Only fixing debug i the media kit.
* Help with ASSERT(flavorID == testFlavorID) would be nice, don't know what ASSERT do.

d456de03 27-Jan-2012 Fredrik Modéen <fredrik@modeen.se>

Fixing an "error" in how BMediaDecoder was built.

* If reading BeBook the class should be B_NO_INIT until we have called SetTo
* When I at it, any suggestion on how a test tool for BMediaEncoder should look like?

9e422461 02-Jan-2012 Philippe Saint-Pierre <stpere@gmail.com>

SoundFile.cpp: do a NULL check before deferencing.

CID 296.

ba5e652d 03-Nov-2011 Adrien Destugues <pulkomandy@pulkomandy.ath.cx>

Set of patches by Pete Goodeve to imrpove the handling of audio latency.
Closes #7285.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@43164 a95241bf-73f2-0310-859d-f6bbb57e9c96

53c00124 22-Feb-2011 Jérôme Duval <korli@users.berlios.de>

gcc 4.5 build fix

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40624 a95241bf-73f2-0310-859d-f6bbb57e9c96

a49fe9b8 22-Feb-2011 Jonas Sundström <jonas@kirilla.com>

Unsafe strncpy replaced by strlcpy. CID 2262, 2263, 2262, 2253, 2252, 2251, 2250, 2249. BUFFER_SIZE_WARNING.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40610 a95241bf-73f2-0310-859d-f6bbb57e9c96

cae9b9d8 20-Nov-2010 Jérôme Duval <korli@users.berlios.de>

correctly initialize fStreamInfo[i].hasCookie

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39545 a95241bf-73f2-0310-859d-f6bbb57e9c96

27de01cb 31-Oct-2010 Clemens Zeidler <clemens.zeidler@googlemail.com>

Set the reader pointer to NULL if no reader is found. BMediaFile crashed in the destructor when I tried to open none media files and no reader was found.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39226 a95241bf-73f2-0310-859d-f6bbb57e9c96

69372b55 20-Oct-2010 Stephan Aßmus <superstippi@gmx.de>

* Change the signature of the Writer plugins setup methods such
that they can modify the media_format passed in. For example they
can store information in the user_data section. I don't actually
use this anymore, but it may come in handy again.

* Adjust the AVCodecContext flags not only for video, but also
for audio streams (as the API example does). This mechanism
may not yet work, since the AVCodecEncoder actually uses a
different AVCodecContext instance.
* Use the encodeInfo->flags and specify the key frame flag
for the AVPacket. This finally makes videos encoded on Haiku

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39035 a95241bf-73f2-0310-859d-f6bbb57e9c96

40379e32 21-Sep-2010 Stephan Aßmus <superstippi@gmx.de>

* Always assign fSource in _InitReader(), even if we will
wrap it in a BBufferIO. Makes the code cleaner.
* Check if source is a BFile and propagate InitCheck() of
the BFile. When trying to open a BMediaFile on a non-existant
file, it will correctly say the file does not exist instead
that there is no handler for it. (IIRC there is a ticket
for this.)

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38760 a95241bf-73f2-0310-859d-f6bbb57e9c96

2e54e93f 18-Sep-2010 Stephan Aßmus <superstippi@gmx.de>

Finall changed the Seek() method of Decoder plug-ins to
SeekedTo(), since it's only informative to decoders. They
can't modify the seeked frame/time. This also mirrors what
all existing decoders were doing in Seek(). BMediaTrack
is simplified accordingly (resolved two TODOs).

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38705 a95241bf-73f2-0310-859d-f6bbb57e9c96

7cd3a249 17-Sep-2010 Stephan Aßmus <superstippi@gmx.de>

Implemented an API to get arbitrary meta-data about
BMediaFiles and about BMediaTracks in BMessages. As an
example, one can get chapter meta-data or the language
name of an audio-track.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38685 a95241bf-73f2-0310-859d-f6bbb57e9c96

cefc9ef2 17-Sep-2010 Stephan Aßmus <superstippi@gmx.de>

Corrected debug output.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38684 a95241bf-73f2-0310-859d-f6bbb57e9c96

d21b5588 14-Sep-2010 Stephan Aßmus <superstippi@gmx.de>

For full HD clips, the real-time memory chunk cache
was not big enough. Axel, perhaps another solution is
better? Would you prefer the chunk cache to fall-back
to regular memory and keep track of allocation type?

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38649 a95241bf-73f2-0310-859d-f6bbb57e9c96

b8b74f90 06-Sep-2010 Stephan Aßmus <superstippi@gmx.de>

Resolved TODO. The current time should point to
the beginning of the next buffer. GetNextChunk()
still has the same problem.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38544 a95241bf-73f2-0310-859d-f6bbb57e9c96

575fd7c2 01-Sep-2010 Stephan Aßmus <superstippi@gmx.de>

Of course the same fix needs to be applied
to SeekToTime(). The extractor may have
modified the time, don't let the decoder
overwrite the actually seeked time. I am thinking
the API should be called SeekedTo() or Seeked(),
and would be purely informative for decoders,
without even a return value.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38499 a95241bf-73f2-0310-859d-f6bbb57e9c96

9297e303 01-Sep-2010 Stephan Aßmus <superstippi@gmx.de>

Do not override the seek frame which the extractor may
have adjusted. (The API is somewhat silly, since Decoders
can't really do anything with the seek frame, it can only
be told to them. But current decoders will assign the seeked
frame from the wanted frame, which would override the seeked
frame from the extractor... the API should be fixed.)

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38496 a95241bf-73f2-0310-859d-f6bbb57e9c96

e4f3cf20 24-Aug-2010 Stephan Aßmus <superstippi@gmx.de>

* Renamed _plugin_manager to gPluginManager.
* Improved tracing in PluginManager.cpp when loading an add-on.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38330 a95241bf-73f2-0310-859d-f6bbb57e9c96

a8766bc6 24-Aug-2010 Stephan Aßmus <superstippi@gmx.de>

Turn apparently non-vital error output into simple trace output.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38326 a95241bf-73f2-0310-859d-f6bbb57e9c96

1662a364 19-Aug-2010 Oliver Tappe <zooey@hirschkaefer.de>

* fix the single remaining gcc2-warning in media kit and enable -Werror for it

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38266 a95241bf-73f2-0310-859d-f6bbb57e9c96

a4c54e94 14-Aug-2010 François Revol <revol@free.fr>

Delete types when that's what you mean, not strings from the wrong list. Fixes a double free() that made ThemeManager crash.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38105 a95241bf-73f2-0310-859d-f6bbb57e9c96

db8d0b87 11-Aug-2010 Adrien Destugues <pulkomandy@pulkomandy.ath.cx>

CID 898 : Memory leak.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38049 a95241bf-73f2-0310-859d-f6bbb57e9c96

e749444d 07-Aug-2010 Stefano Ceccherini <stefano.ceccherini@gmail.com>


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37973 a95241bf-73f2-0310-859d-f6bbb57e9c96

6fa16ae6 07-Aug-2010 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Add parenthesis, otherwise the code is broken

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37972 a95241bf-73f2-0310-859d-f6bbb57e9c96

e571dc25 07-Aug-2010 Stefano Ceccherini <stefano.ceccherini@gmail.com>

free buffer in case of error.
CID 1695

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37971 a95241bf-73f2-0310-859d-f6bbb57e9c96

eddec292 21-Jul-2010 Oliver Tappe <zooey@hirschkaefer.de>

* applied patch by kaliber that fixes more than 100 warnings - thanks a lot!
Closes #6349

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37670 a95241bf-73f2-0310-859d-f6bbb57e9c96

f7127458 15-Apr-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

* Private libroot locking primitives:
- Reimplemented mutex to use the _kern_mutex*() syscalls.
- The initializer functions cannot fail anymore -- changed their return type
to void.
- Changed the initializer function semantics to not copy the name by default
anymore (as in the kernel). Also added *_etc() versions of them that take an
additional flags.
- Added static initializer macros.
- Made the mutex (and thus recursive_lock) lock functions non-interruptable.
- Got rid of the "lazy" version. They are no longer needed, since the
initialization of the standard types can be done statically and cannot fail.
* Adjusted libroot, runtime loader, and other code using the private libroot
locking primitives to the new semantics.
* pthreads mutexes and condition variables:
- Reimplemented using the _kern_mutex*() syscalls.
- Consistently use POSIX error codes.
- Fixed some not quite POSIX compliant behavior.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36323 a95241bf-73f2-0310-859d-f6bbb57e9c96

15c81466 13-Apr-2010 Axel Dörfler <axeld@pinc-software.de>

* Reverted part of r34474 that broke binary compatibility.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36212 a95241bf-73f2-0310-859d-f6bbb57e9c96

99e658c3 12-Apr-2010 Axel Dörfler <axeld@pinc-software.de>

* Accidently replaced the copyright incorrectly; I got the permission from
Marcus to change the copyright to MIT, not to reassign it to someone else.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36186 a95241bf-73f2-0310-859d-f6bbb57e9c96

b289aaf6 12-Apr-2010 Axel Dörfler <axeld@pinc-software.de>

* A BBuffer does not know where it came from, so
BBufferConsumer::BufferReceived() cannot know whom to send the "buffer is
late" notification (unless we only have a single input). To solve this, the
media_header now contains extra fields that can be used to create a
media_source object.
* Unfortunately, BBufferProducer::SendBuffer() cannot know the output either in
case there is more than one. Hence, I deprecated the existing SendBuffer()
call and moved it into "private" - IOW old sources using it won't compile
anymore under Haiku.
* I introduced a new SendBuffer() variant that also gets the media_source as
* Updated all sources (that are part of the image) to use the new variant.
* Removed some purposely commented out code in the audio mixer.
* Implemented late buffer notification, as well as late buffer handling in the
audio mixer; this is a bit of work in progress, so the debug output is left
in there.
* Some cleanup.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36184 a95241bf-73f2-0310-859d-f6bbb57e9c96

2882dba2 24-Feb-2010 Alexandre Deckner <alex@zappotek.com>

* remove left-overs of deprecated ClassInfo.h includes (cf. OpenGrok) except in SupportKit.h for backward source compatiblity (although it shouldn't really matter).

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35604 a95241bf-73f2-0310-859d-f6bbb57e9c96

cee04e80 08-Feb-2010 Artur Wyszynski <aljen-mlists@o2.pl>

Fixed various errors/warnings reported by cppcheck:
* memory leaks
* resource leaks
* added const's to getters
* removed a few reundant conditions

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35433 a95241bf-73f2-0310-859d-f6bbb57e9c96

6aee58a4 17-Jan-2010 Jérôme Duval <korli@users.berlios.de>

* Revert the reverse the addons iteration of r35121.
* The media_addon_server before unloading addons need to be sure the nodes are deleted.
For instance, applications could keep references on global nodes, thus preventing deletion.
To release all references, the media_addon server uses a new method BMediaRosterEx::ReleaseNodeAll().
* Quit the MediaRoster looper when quitting media_addon server before unloading addons.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35133 a95241bf-73f2-0310-859d-f6bbb57e9c96

3e6fa229 13-Jan-2010 Stephan Aßmus <superstippi@gmx.de>

Patch by Humdinger:
Switched strings to sentence case in servers and kits. This is the
case-servers+kits.diff applied from #5169. Couldn't spot any possibly
problematic changes.
Thanks a lot!

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35044 a95241bf-73f2-0310-859d-f6bbb57e9c96

547934cb 12-Jan-2010 Stephan Aßmus <superstippi@gmx.de>

Reverted some of my changes with regards to fCurrentTime and added respective
TODOs. For now, it is easier for applications to work around the status quo
until the TODOs are implemented.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35032 a95241bf-73f2-0310-859d-f6bbb57e9c96

9728aac6 12-Jan-2010 Stephan Aßmus <superstippi@gmx.de>

Whitespace cleanup

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35030 a95241bf-73f2-0310-859d-f6bbb57e9c96

33671742 12-Jan-2010 Stephan Aßmus <superstippi@gmx.de>

We definitely don't want a global lock, even when not using the chunk cache.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35029 a95241bf-73f2-0310-859d-f6bbb57e9c96

9ea74f6c 06-Jan-2010 Stephan Aßmus <superstippi@gmx.de>

It's late, forgot to remove debugging output...

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34924 a95241bf-73f2-0310-859d-f6bbb57e9c96

3a57be2a 06-Jan-2010 Stephan Aßmus <superstippi@gmx.de>

* Indentation and naming cleanup in the header
* Small coding style cleanups in the .cpp
* When reading raw chunks, keep fCurrentFrame updated anyway
* When decoding frames and chunks, don't change the meaning of fCurrentTime,
it's supposed to be the start time of the next chunk/frame, same as
CurrentFrame(), not the time of the frame/chunk we just decoded/read.
BMediaTrack::CurrentFrame() is actually documented like this in the BeBook,
but CurrentTime() is not. However, when seeking to a specific time, it is
understood that this is the time of the next frame/chunk. If we decode/read
it and set fCurrentTime to the start_time as specified in the media_header,
it would actually not change for the first frame/chunk after seeking.
To be able to know the duration of chunks, fWriterFormat had to be changed
to just fFormat and is now used for decoding as well.
* Simplified handling of media_header in some methods, saves one assignment.

These changes are not so well tested, yet.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34923 a95241bf-73f2-0310-859d-f6bbb57e9c96

f0a1eb2d 05-Jan-2010 Axel Dörfler <axeld@pinc-software.de>

* The static object construction and destruction is no longer random, but takes
the internal dependencies into account. This should fix bugs #5166, #5120,
and #5150.
* Also, the time source object manager, as well as the dormant node manager
are now recreated on media roster restart (when the media server is

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34906 a95241bf-73f2-0310-859d-f6bbb57e9c96

6768fe0d 28-Dec-2009 David McPaul <dlmcpaul@gmail.com>

Improve IO performance for all media files

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34793 a95241bf-73f2-0310-859d-f6bbb57e9c96

505e5a0b 17-Dec-2009 Axel Dörfler <axeld@pinc-software.de>

* Put the old BeOS R3 media kit symbols back to fix #5135. They are no longer
built for GCC4, though.
* Deleted the completely unused OldSoundFile.{cpp|h} files.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34688 a95241bf-73f2-0310-859d-f6bbb57e9c96

63a27588 13-Dec-2009 Jérôme Duval <korli@users.berlios.de>

gcc4 build fix

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34651 a95241bf-73f2-0310-859d-f6bbb57e9c96

2a9896ce 12-Dec-2009 David McPaul <dlmcpaul@gmail.com>

switch to use STL containers, limit to 10 cache entries, don't clear cache on findkeyframe, removed inflight list as it was not needed, report error conditions better. This makes video work again

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34650 a95241bf-73f2-0310-859d-f6bbb57e9c96

6813f2c7 10-Dec-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Debug mode build fixes.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34619 a95241bf-73f2-0310-859d-f6bbb57e9c96

d4708399 10-Dec-2009 Axel Dörfler <axeld@pinc-software.de>

* The dormant_flavor_info copy constructor was broken, causing bug #5101.
* Cleanup.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34610 a95241bf-73f2-0310-859d-f6bbb57e9c96

e973f15a 09-Dec-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Missing includes.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34599 a95241bf-73f2-0310-859d-f6bbb57e9c96

6cafce94 09-Dec-2009 Axel Dörfler <axeld@pinc-software.de>

* Moved the port pool into the new request_data.cpp file; it's no longer
accessible from the outside.
* Instead, request_data now retrieves/releases a reply port on its own.
* There were some more places that still used write_port()/read_port() instead
of QueryServer().

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34597 a95241bf-73f2-0310-859d-f6bbb57e9c96

e4c87231 09-Dec-2009 Axel Dörfler <axeld@pinc-software.de>

* Renamed the xfer_* structures to fit the rest, and let them inherit from the
usual structures.
* Also, they now use the QueryServer()/SendToServer() functions instead of
duplicating them.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34596 a95241bf-73f2-0310-859d-f6bbb57e9c96

5f207b83 09-Dec-2009 Axel Dörfler <axeld@pinc-software.de>

* Moved all server interface definitions from DataExchange.h to

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34594 a95241bf-73f2-0310-859d-f6bbb57e9c96

1fcbc547 09-Dec-2009 Axel Dörfler <axeld@pinc-software.de>

* More cleanup.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34593 a95241bf-73f2-0310-859d-f6bbb57e9c96

9c3b4706 09-Dec-2009 Axel Dörfler <axeld@pinc-software.de>

* Cleaned up the node manager, got rid of its use of Map, and List.
* Fixed at least two reference counting problems, but nodes from killed teams
still remain alive (will look into this at a later point).
* GetLiveNodes() is now using transfer_area() as well.
* Made all sizes in the SendTo*() and Query*() functions size_t.
* Replaced reinterpret_casts with static_casts when casting void pointers.
* Ordered the request/reply structures by target.
* Tried to consolidate the use of add_on vs. addon.
* More cleanup.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34591 a95241bf-73f2-0310-859d-f6bbb57e9c96

c28dd9fd 08-Dec-2009 Axel Dörfler <axeld@pinc-software.de>

* Implemented getting/setting the audio gain of media files.
* Renamed "remove_ref_for" command structures and constants to

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34565 a95241bf-73f2-0310-859d-f6bbb57e9c96

300b9089 08-Dec-2009 Axel Dörfler <axeld@pinc-software.de>

* Also clear the lists after all items/types were iterated over.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34557 a95241bf-73f2-0310-859d-f6bbb57e9c96

1fb5b54d 08-Dec-2009 Axel Dörfler <axeld@pinc-software.de>

* Should have been part of r34554.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34555 a95241bf-73f2-0310-859d-f6bbb57e9c96

bd563c20 07-Dec-2009 Rene Gollent <anevilyak@gmail.com>

GCC4 build fixes.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34547 a95241bf-73f2-0310-859d-f6bbb57e9c96

f4ec236c 07-Dec-2009 Axel Dörfler <axeld@pinc-software.de>

* Got rid of Map use in TimeSourceObjectManager.
* Renamed global variable _TimeSourceObjectManager to gTimeSourceObjectManager.
* Cleanup.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34544 a95241bf-73f2-0310-859d-f6bbb57e9c96

9834d875 07-Dec-2009 Axel Dörfler <axeld@pinc-software.de>

* Rewrote PortPool, and put it into the BPrivate namespace.
* Renamed global variable _PortPool to gPortPool.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34540 a95241bf-73f2-0310-859d-f6bbb57e9c96

29bb91d6 07-Dec-2009 Axel Dörfler <axeld@pinc-software.de>

* Cleaned up DormantNodeManager.
* Renamed global variable _DormantNodeManager to gDormantNodeManager.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34538 a95241bf-73f2-0310-859d-f6bbb57e9c96

503954dc 05-Dec-2009 Stefano Ceccherini <stefano.ceccherini@gmail.com>

gcc4 build fix

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34513 a95241bf-73f2-0310-859d-f6bbb57e9c96

fcc7a1cb 05-Dec-2009 Axel Dörfler <axeld@pinc-software.de>

* Since the old R3 media API is not implemented anyway, I've now temporarily
removed it from the build.
* If you encounter any (useful) applications that need it, please file a bug
report, otherwise those will be removed permanently.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34505 a95241bf-73f2-0310-859d-f6bbb57e9c96

a1e0f39f 05-Dec-2009 Axel Dörfler <axeld@pinc-software.de>

* Build fix; the Jamfile changes caused those to be broken.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34504 a95241bf-73f2-0310-859d-f6bbb57e9c96

2f9ed888 05-Dec-2009 Axel Dörfler <axeld@pinc-software.de>

* The SharedBufferList is now only cloned once in a team, no longer once for
each buffer, and once for each buffer group.
* Also, SharedBufferList::Get() now gets the area to clone from itself, if
necessary, the caller no longer has to provide it.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34502 a95241bf-73f2-0310-859d-f6bbb57e9c96

9dec2310 05-Dec-2009 Axel Dörfler <axeld@pinc-software.de>

Sorry for this large commit in advance; it's not really possible to divide this
into smaller parts:

* Removed (broken) use of (broken and inefficient) home-brewn Map, and List
classes. This also fixes a crash on shutdown when used with the malloc_debug
implementation. It's using stl::vector, and stl::map now instead.

* Renamed _shared_buffer_list to SharedBufferList, and put it into the BPrivate
namespace. Also, made a class out of it.
* Separated shared buffer list creation from cloning.
* Enlarged maximum number of buffers to something that is not that evil, but
actually uses the space it has (ie. is a useful multiple of
shared_buffer_info that fills a multiple of B_PAGE_SIZE as much as possible).
* No longer drops into the debugger if the
* The list that is currently used is very inefficient for the features it
provides though (no change there).

* Renamed to BufferCache, and put it into the private namespace
* It now deletes its buffers on deletion; since the BBufferConsumer will be
gone, too, at this point, there is little chance that there are still buffers
in use.
* Also, it's now using std::map instead of the (see above) Map class.

* Got rid of the fBufferID member.

* Got rid of the global "team" variable; the media kit is now using the
private app kit's current_team() now.
* Added a lot of missing error checks (mostly memory allocations).
* Renamed fields like "flavorid" to flavor_id, renamed "dfi_*" fields to
something more detailed.
* Moved ServerInterface.h from src/servers/media/ to headers/private/media.
* Notifications.h was not self contained.
* Added missing licenses.
* Lots of cleanups, and coding style fixes.

What this doesn't fix:
* Bug #4954 which started all this (this comes next, though)
* Deinitialization is broken, as the PortPool is uninitialized too early, and
still used afterwards.
* The strange add-on monitoring code in the media_addon_server

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34500 a95241bf-73f2-0310-859d-f6bbb57e9c96

04c71a2f 05-Dec-2009 Axel Dörfler <axeld@pinc-software.de>

* Removed code duplication, SetBufferGroup() will now use AllocateBuffers()
instead of doing the same manually.
* AllocateBuffers() is now returning a status code.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34499 a95241bf-73f2-0310-859d-f6bbb57e9c96

4ed344af 03-Dec-2009 Axel Dörfler <axeld@pinc-software.de>

* Moved _SoundPlayNode into the BPrivate namespace and dismissed the '_' prefix.
* Further cleanup.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34482 a95241bf-73f2-0310-859d-f6bbb57e9c96

812fde99 03-Dec-2009 Axel Dörfler <axeld@pinc-software.de>

* When you even already have the typedefs, why wouldn't you want to use them?
* Some cleanup, no functional change.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34474 a95241bf-73f2-0310-859d-f6bbb57e9c96

a288c5a0 01-Dec-2009 Axel Dörfler <axeld@pinc-software.de>

* Why have a mutex when you don't use it?
* Ensure that at least a single allocation fits into the buffer spanning over
the total requested size of the pool. This makes the mixer work again instead
of crash because of a failed allocation...

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34432 a95241bf-73f2-0310-859d-f6bbb57e9c96

4ae9d7d0 01-Dec-2009 Rene Gollent <anevilyak@gmail.com>

Build fix: missing header needed for memcpy().

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34425 a95241bf-73f2-0310-859d-f6bbb57e9c96

ebe97b7c 01-Dec-2009 Axel Dörfler <axeld@pinc-software.de>

* The ChunkCache is now using the real time memory functions.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34420 a95241bf-73f2-0310-859d-f6bbb57e9c96

ccedee22 01-Dec-2009 Axel Dörfler <axeld@pinc-software.de>

* Replaced rtm_* placeholders with a real implementation based on the boot
loader's heap. Unlike the BeBook documents, we always lock their memory,
* Added Haiku extension rtm_available() that returns how much space is left in
a pool.
* I've disabled the undocumented functions for now - please open a bug report
if you encounter them used in applications.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34419 a95241bf-73f2-0310-859d-f6bbb57e9c96

ea151a7f 27-Nov-2009 Axel Dörfler <axeld@pinc-software.de>

* Initialize your members!

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34302 a95241bf-73f2-0310-859d-f6bbb57e9c96

c48f055b 25-Nov-2009 Rene Gollent <anevilyak@gmail.com>

Fix ChunkCache build.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34245 a95241bf-73f2-0310-859d-f6bbb57e9c96

4d89dfc7 25-Nov-2009 Axel Dörfler <axeld@pinc-software.de>

* Completely rewrote the ChunkCache - the previous version had some issues with
regards to locking and seeking.
* Furthermore, we now not only cache 4 chunks, but chunk up to a certain
memory size (MediaExtractor uses 1 MB for now).
* Since I still have occasional hickups, it looks like this wasn't the main
cause for our audio problems. Still, this will reduce drive access
considerably during play.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34243 a95241bf-73f2-0310-859d-f6bbb57e9c96

608d959d 25-Nov-2009 Axel Dörfler <axeld@pinc-software.de>

* ChunkCache::fLocker is now aggregated.
* Cleanup.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34239 a95241bf-73f2-0310-859d-f6bbb57e9c96

1d984896 21-Oct-2009 Michael Lotz <mmlr@mlotz.ch>

Name the lockers to be able to identify them when debugging/analyzing.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33706 a95241bf-73f2-0310-859d-f6bbb57e9c96

6fb91db7 21-Oct-2009 Michael Lotz <mmlr@mlotz.ch>

We didn't acquire/release a BSound reference when playing using a BSoundPlayer
which lead to #4825.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33705 a95241bf-73f2-0310-859d-f6bbb57e9c96

571d840a 19-Oct-2009 Oliver Tappe <zooey@hirschkaefer.de>

* dropped svn:keywords property from all files that carried it
to avoid recurring problems during migration of subversion checkouts
(restored binary files that were garbled by subversions during checkout)
* added appropriate svn:mime-type property for problematic (binary) files
* removed a single (mistyped) svn:mimetype property
* dropped svn:eol-style property for cleanup (they all contained 'native')

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33670 a95241bf-73f2-0310-859d-f6bbb57e9c96

101da8e4 10-Oct-2009 Michael Lotz <mmlr@mlotz.ch>


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33505 a95241bf-73f2-0310-859d-f6bbb57e9c96

224f4fcd 28-Aug-2009 Stephan Aßmus <superstippi@gmx.de>

Rewrote header, updated source.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32786 a95241bf-73f2-0310-859d-f6bbb57e9c96

17a5db77 28-Aug-2009 Stephan Aßmus <superstippi@gmx.de>

* Rewrote header, adjusted source.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32783 a95241bf-73f2-0310-859d-f6bbb57e9c96

6abeda10 28-Aug-2009 Stephan Aßmus <superstippi@gmx.de>

* Rewrote header
* Some coding style fixes.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32782 a95241bf-73f2-0310-859d-f6bbb57e9c96

e0818886 22-Aug-2009 Jérôme Duval <korli@users.berlios.de>

when using the = operator with media_format, check the area with B_BAD_VALUE.
Previously metadata weren't copied over the new format.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32596 a95241bf-73f2-0310-859d-f6bbb57e9c96

a2128487 05-Aug-2009 Axel Dörfler <axeld@pinc-software.de>

* Rewrote BBufferGroup header.
* Cleaned up the source file, no functional change (intended).

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32139 a95241bf-73f2-0310-859d-f6bbb57e9c96

d4944a7e 05-Aug-2009 Axel Dörfler <axeld@pinc-software.de>

* Cleanup, no functional change.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32136 a95241bf-73f2-0310-859d-f6bbb57e9c96

eb4b63e7 05-Aug-2009 Stephan Aßmus <superstippi@gmx.de>

Fixed last minute change that I apparently didn't compile. Sorry.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32125 a95241bf-73f2-0310-859d-f6bbb57e9c96

6780c24d 05-Aug-2009 Stephan Aßmus <superstippi@gmx.de>

* Fleshed out the Encoder API to support parameter setters/getters and returning
a BView for configuration. (Not yet sure if this is a good idea.)

* Implemented all but one of the unimplemented methods in BMediaTrack. It should
be working as far as that class is concerned, unless I missed some of the
vision. ReplaceFrames() remains a stub, added a comment on why it probably
stays that way.
* Release the Encoder reference in the destructor.

FFmpeg plugin:
* Refactoring to delay opening the AVCodec until encoding the first chunk,
so that we can still adjust parameters.
* Support adjusting parameters via [Set|Get]EncodeParameters(). Currently,
only quality is supported, added TODOs about supporting the bit_rate setup
versus the automatically calculated bit_rate.
* Extended EncoderDescription by a bit_rate scale. The Encoder calculates the
raw bitrate needed by the current media format, and then divides that
number by the specific codec's bit_rate_scale, while taking into account the
desired quality. This seems to work very well already (tested with MPEG4),
although a lot more parameters could be specified for libavcodec, depending
on the desired quality.
* Enabled the ogg muxer in libavformat, although it is currently still disabled
in MuxerTable.cpp, because it rejects unknown codecs. Added TODO to this

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32124 a95241bf-73f2-0310-859d-f6bbb57e9c96

99304ab0 05-Aug-2009 Stephan Aßmus <superstippi@gmx.de>

Do not use fWriter functions, when it has not been instantiated properly.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32122 a95241bf-73f2-0310-859d-f6bbb57e9c96

def0e1ed 04-Aug-2009 Stephan Aßmus <superstippi@gmx.de>

Don't leak the MediaWriter instance.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32108 a95241bf-73f2-0310-859d-f6bbb57e9c96

54897d5c 31-Jul-2009 Stephan Aßmus <superstippi@gmx.de>

* Also pass the media_codec_info to the Writer::AllocateCookie(), since that
info is not part of the media_format otherwise.
* Finished enough in the AVFormatWriter and AVCodecEncoder that we can now
actually create AVIs and MPGs and encode MPEG1, MPEG2 and MPEG4 video.
But no audio as of yet. Also, there is no bit-rate/quality setup, so it seems
libavformat is using the least possible bit-rate/quality.
* Enable some more muxers and encoders in the FFmpeg libs.
* Uses pixel format conversion from libswsscale, need to read the documentation
again, but I think it makes the plugin GPL.
* Fixed includes in libswscale/swscale.h, this is now an unmodified FFmpeg 0.5
header again (AFAICT).

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32043 a95241bf-73f2-0310-859d-f6bbb57e9c96

4384acf6 31-Jul-2009 Stephan Aßmus <superstippi@gmx.de>

* Tweaked the Writer API. Basically, we need an Init() method that takes the
media_file_format as input, so that the Writer knows what kind of file is
* Also, since information about the stream format is going to be needed at the
Writer level as well, the AllocateCookie() method gets the stream
* Fleshed out some aspects of AVFormatWriter, many TODOs are left.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32025 a95241bf-73f2-0310-859d-f6bbb57e9c96

fa770e4c 31-Jul-2009 Stephan Aßmus <superstippi@gmx.de>

* Writer::WriteChunk() takes media_encode_info* instead of flags.
* Improved Encoder API towards what we need for the get_next_encoder() variants
and the BMediaTrack API.
* Implemented the rest of MediaWriter. Still undecided what to make of
AddTrackInfo(). BMediaEncoder has that as well, which hints that this is
something the Encoder needs to support. But it could also be that this is
only possible to support in Writer.
* Wired a lot of previously unimplemented methods in BMediaFile and BMediaTrack
needed for write support. If I have not overlooked anything, only the
parameter stuff is still unimplemented now.

This is all untested, since the FFMpeg Encoder and Writer are still only stubs.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32013 a95241bf-73f2-0310-859d-f6bbb57e9c96

cc1730f4 30-Jul-2009 Stephan Aßmus <superstippi@gmx.de>

Do not reject an encoder based on the media_format_family if either the encoders
or the given media_file_format family's is B_ANY_FORMAT_FAMILY.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32006 a95241bf-73f2-0310-859d-f6bbb57e9c96

6033e52a 30-Jul-2009 Stephan Aßmus <superstippi@gmx.de>

Implemented support for get_next_encoder() variations from MediaFormats.h.
The AddOnManager in the media_server registers one encoder entry per
successful EncoderPlugin::RegisterNextEncoder(). This gives us a first idea
what media_format_family and input/output media_type is supported. The
mechanism may have to be extended, or the Encoder needs an API to specialize
a format further. In that case, the get_next_encoder() version that takes
optional _acceptedInput/OutputFormat needs to instantiate the plugin and
needs to ask the Encoder. But AFAIK, no app uses it like that anyway.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32005 a95241bf-73f2-0310-859d-f6bbb57e9c96

d8181502 30-Jul-2009 Stephan Aßmus <superstippi@gmx.de>

Style cleanup, switched "* " style.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31997 a95241bf-73f2-0310-859d-f6bbb57e9c96

7cd2513b 30-Jul-2009 Stephan Aßmus <superstippi@gmx.de>

Changed the way Encoders are published by EncoderPlugins. Encoder retrieval
in PluginManager is reenabled. We use the media_codec_info.id to reference
a specific plugin, while the sub_id will be used to reference individual
Encoders that the plugin supports. No idea if that's how it was intented, but
some comments hint in this direction. I failed to mention this before, but
comments are of course very welcome on any of these commits, as always.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31993 a95241bf-73f2-0310-859d-f6bbb57e9c96

a072a79b 30-Jul-2009 Stephan Aßmus <superstippi@gmx.de>

Removed left-over.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31989 a95241bf-73f2-0310-859d-f6bbb57e9c96

a07b059b 30-Jul-2009 Stephan Aßmus <superstippi@gmx.de>

Implemented first version of MediaWriter, which is the bridge between
BMediaFile/BMediaTrack and Writer plugins.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31988 a95241bf-73f2-0310-859d-f6bbb57e9c96

c98ea335 30-Jul-2009 Stephan Aßmus <superstippi@gmx.de>

Let's call it WriteChunk() instead of WriteNextChunk() and make the signature
consistent everywhere (according to BMediaTracker::WriteChunk()).

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31987 a95241bf-73f2-0310-859d-f6bbb57e9c96

efd1469d 30-Jul-2009 Stephan Aßmus <superstippi@gmx.de>

Encoders will most likely be found by media_codec_info, not by media_format,
changed method signature accordingly and disabled the code for now, since
the media_server communication has not been adapted yet.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31985 a95241bf-73f2-0310-859d-f6bbb57e9c96

37b6b027 30-Jul-2009 Stephan Aßmus <superstippi@gmx.de>

Small cleanup.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31984 a95241bf-73f2-0310-859d-f6bbb57e9c96

b8316d9f 30-Jul-2009 Stephan Aßmus <superstippi@gmx.de>

Cleanup and preparations for BPrivate::media::MediaWriter, which will soon

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31983 a95241bf-73f2-0310-859d-f6bbb57e9c96

60c85abe 29-Jul-2009 Stephan Aßmus <superstippi@gmx.de>

Resolved TODO, make it clear who maintains the allocation of the
media_file_format array (it remains with the plugin itself, as with

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31955 a95241bf-73f2-0310-859d-f6bbb57e9c96

7c06546a 29-Jul-2009 Stephan Aßmus <superstippi@gmx.de>

Implement the backend of get_next_file_format(). The AddOnManager maintains
a list for known media_file_formats. The internal IDs map to plugins.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31950 a95241bf-73f2-0310-859d-f6bbb57e9c96

891446f5 29-Jul-2009 Stephan Aßmus <superstippi@gmx.de>

More cleanup.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31949 a95241bf-73f2-0310-859d-f6bbb57e9c96

81b2cc3f 29-Jul-2009 Stephan Aßmus <superstippi@gmx.de>

* Style cleanup, no functional change.
* Added copyrights according to svn log.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31948 a95241bf-73f2-0310-859d-f6bbb57e9c96

57bb0b9f 29-Jul-2009 Stephan Aßmus <superstippi@gmx.de>

* Added DataExchange message constants and server communication structs for
retrieving WriterPlugins and EncoderPlugins from the media_addon_server.
* Enabled respective code in PluginManager (and fixed the copy&paste bugs),
the server side is still missing, though...

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31924 a95241bf-73f2-0310-859d-f6bbb57e9c96

f3d79634 29-Jul-2009 Stephan Aßmus <superstippi@gmx.de>

Beginnings of Encoder[Plugin] and Writer[Plugin] base classes and add-on

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31922 a95241bf-73f2-0310-859d-f6bbb57e9c96

b1e23593 29-Jul-2009 Stephan Aßmus <superstippi@gmx.de>

* Style cleanup.
* Added copyright.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31916 a95241bf-73f2-0310-859d-f6bbb57e9c96

16d5c24e 07-Jul-2009 Oliver Tappe <zooey@hirschkaefer.de>

* merged 32bit-wchar_t branches of buildtools and haiku back into
the respective trunk

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31443 a95241bf-73f2-0310-859d-f6bbb57e9c96

791a4a77 27-Jun-2009 Stephan Aßmus <superstippi@gmx.de>

Fixed building with tracing on...

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31275 a95241bf-73f2-0310-859d-f6bbb57e9c96

f74eb15c 27-Jun-2009 Stephan Aßmus <superstippi@gmx.de>

Fixed building with tracing on.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31274 a95241bf-73f2-0310-859d-f6bbb57e9c96

d8b88d03 27-Jun-2009 Stephan Aßmus <superstippi@gmx.de>

Whitespace cleanup and 80 chars/line fix.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31273 a95241bf-73f2-0310-859d-f6bbb57e9c96

cf8af722 07-Jun-2009 Stephan Aßmus <superstippi@gmx.de>

_InitReader(): source can only be NULL if we tried to allocate it ourself, so
we can set fErr to B_NO_MEMORY in that case.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30989 a95241bf-73f2-0310-859d-f6bbb57e9c96

60a2c42f 07-Jun-2009 Stephan Aßmus <superstippi@gmx.de>

Check the params in SetTo().

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30988 a95241bf-73f2-0310-859d-f6bbb57e9c96

b7cf537e 07-Jun-2009 Stephan Aßmus <superstippi@gmx.de>

Added BMediaFile::_UnInit() and implemented the two SetTo() methods.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30987 a95241bf-73f2-0310-859d-f6bbb57e9c96

b5ec3e56 07-Jun-2009 Stephan Aßmus <superstippi@gmx.de>

* Coding style clean-up.
* Use std::nothrow and check allocations.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30986 a95241bf-73f2-0310-859d-f6bbb57e9c96

bb56a763 07-Jun-2009 Stephan Aßmus <superstippi@gmx.de>

Resolved TODOs in PluginManager about leaking plugins when they are no longer
needed. I've added MediaPlugin* fields to Reader and Decoder plugin classes
which are set when the PluginManager hands out new instances. This way the
manager knows what plugin created the Decoder or Reader instance in the
Destroy*() methods and can decrease the reference count accordingly. Also added
some FBC stuffing to Decoder and Reader. All media plugins need to be recompiled,
in case anyone has some outside the Haiku tree.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30984 a95241bf-73f2-0310-859d-f6bbb57e9c96

6f7f87a2 12-May-2009 David McPaul <dlmcpaul@gmail.com>


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30733 a95241bf-73f2-0310-859d-f6bbb57e9c96

05f452c3 12-May-2009 David McPaul <dlmcpaul@gmail.com>

Implement SniffRef

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30715 a95241bf-73f2-0310-859d-f6bbb57e9c96

1ecccf18 24-Apr-2009 François Revol <revol@free.fr>

Fix debug build.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30369 a95241bf-73f2-0310-859d-f6bbb57e9c96

126d77c5 09-Apr-2009 Axel Dörfler <axeld@pinc-software.de>

* Changed ContinuousMessageFilter to register for parameter value changes,
and change its slider value when such a message arrives.
* Currently, this will only work if such a view already received a message;
added a TODO about how it should be done, but since those would require
some more changes, I don't want to do that as long as Sean Healy is working
on that file.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30083 a95241bf-73f2-0310-859d-f6bbb57e9c96

2ff47e17 09-Apr-2009 Axel Dörfler <axeld@pinc-software.de>

* Fixed bug I introduced when deleting parameters (no more crashing).
* Removed the BParameterWeb::{Start|Stop}Watching() methods again, as the same
thing can be achieved using the BMediaRoster already (even though it doesn't
seem to work yet).

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30058 a95241bf-73f2-0310-859d-f6bbb57e9c96

34c72144 08-Apr-2009 Axel Dörfler <axeld@pinc-software.de>

* BParameterWeb::StartWatching() now just calls BMediaRoster::StartWatching()
as on Dano - since the functionality is already there, those two functions
aren't really needed, though, so we could remove them again.
* Cleaned up DataExchange.h, and added basic reply/request structs for anything
that needs an area.
* BControllable now uses a helper class ReceiveTransfer to deal with requests
with areas.
* Major style cleanup of MediaRoster.cpp, though one could still bury some
hours there...

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30045 a95241bf-73f2-0310-859d-f6bbb57e9c96

db15cbbe 08-Apr-2009 Axel Dörfler <axeld@pinc-software.de>

* Added Dano-compatible BParameterWeb::StartWatching()/StopWatching() method
* However, without a working Dano at hand, I can't really implement something
compatible, so I'll postpone this to some later point.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30030 a95241bf-73f2-0310-859d-f6bbb57e9c96

eced4ba5 08-Apr-2009 Axel Dörfler <axeld@pinc-software.de>

* Rewrote ParameterWeb.h.
* Adapted and cleaned up ParameterWeb.cpp.
* Fixed some copy&paste bugs in the BTextParameter.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30029 a95241bf-73f2-0310-859d-f6bbb57e9c96

b60892ce 31-Mar-2009 Philippe Houdoin <philippe.houdoin@gmail.com>

* As suggested by Axel, BMediaTrack::GetCodecInfo() don't anymore say
"Haiku Media Kit: ", as it's given for any caller of a Media Kit API ;-)
* This remove an systematic line feed in the codec pretty name returned;
* Updated MediaPlayer info window text layout to take this change into account.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29836 a95241bf-73f2-0310-859d-f6bbb57e9c96

54ec2658 02-Mar-2009 Jérôme Duval <korli@users.berlios.de>

* fixed gcc4 build

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29380 a95241bf-73f2-0310-859d-f6bbb57e9c96

9b9aa75a 01-Mar-2009 Michael Lotz <mmlr@mlotz.ch>

* Implement basic support for the BSound parts of BSoundPlayer. Only one sound
at a time is supported and volume as well as start time are not taken into
account. For reasons I don't feel like investigating right now all the
BMediaTrack calls in the BTrackReader end up as pure virtual function calls
though, so it's unusable for now.
* Fix leaking the temporary buffer in BSound.
* Whitespace cleanup.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29374 a95241bf-73f2-0310-859d-f6bbb57e9c96

0b2267c9 01-Mar-2009 Michael Lotz <mmlr@mlotz.ch>

When searching for audio tracks, we are interested in a raw decoded format, not
a raw encoded format.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29373 a95241bf-73f2-0310-859d-f6bbb57e9c96

1b921108 01-Mar-2009 Michael Lotz <mmlr@mlotz.ch>

Rewrote Sound.h and implemented most of BSound. Completely untested yet as the
BSoundPlayer functionality is yet missing.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29372 a95241bf-73f2-0310-859d-f6bbb57e9c96

9490cc05 01-Feb-2009 Michael Lotz <mmlr@mlotz.ch>

Fix wrong check.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29120 a95241bf-73f2-0310-859d-f6bbb57e9c96

95096991 25-Jan-2009 Jérôme Duval <korli@users.berlios.de>

BSoundPlayer changes:
* calls the notifier in Start() and Stop()
* calls SetHasData() with true in Start() like BeOS does
* starts the timesource if not running in Start()

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29012 a95241bf-73f2-0310-859d-f6bbb57e9c96

82fcd433 19-Jan-2009 Axel Dörfler <axeld@pinc-software.de>

* Shortened all strndup() buffers by one to have the same outcome as with
the previous local strndup() implementation.
* Automatic whitespace cleanup.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28950 a95241bf-73f2-0310-859d-f6bbb57e9c96

f3fd1519 18-Jan-2009 Rene Gollent <anevilyak@gmail.com>

Build fix: ParameterWeb had its own (static) version of strndup which broke the build on gcc4. Removed it so as to just use the library version added recently instead.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28946 a95241bf-73f2-0310-859d-f6bbb57e9c96

7670d409 01-Nov-2008 David McPaul <dlmcpaul@gmail.com>

put TODO in front of my todo comment

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28448 a95241bf-73f2-0310-859d-f6bbb57e9c96

4dc9c4a5 31-Oct-2008 David McPaul <dlmcpaul@gmail.com>

added a possible todo

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28415 a95241bf-73f2-0310-859d-f6bbb57e9c96

04910d5d 31-Oct-2008 Stephan Aßmus <superstippi@gmx.de>

Fixed various problems that caused the scrollbars and the group view to be
layouted incorrectly:
* Only remove the insets if there are any when no tabview is needed.
* Use Bounds() when creating the scrollbars, not Frame() (this probably
worked correctly only when the DynamicScrollView was the only child in a
* Simplify layouting the scrollbars and target view, always do so, since it
isn't clear if the host window uses the old style view follow modes, the
target view had no follow mode anyways, so we need to layout it for sure.
* Correct the "edged in" effect of the TitleView drawing.

This fixes the bad drawing artifacts in the Media preflet when scrollbars
are needed to embed a larger parameter web view.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28394 a95241bf-73f2-0310-859d-f6bbb57e9c96

b0acb3fe 23-Sep-2008 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Don't leak the BMediaFile. CID 5

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27700 a95241bf-73f2-0310-859d-f6bbb57e9c96

ac847fc8 15-Aug-2008 David McPaul <dlmcpaul@gmail.com>

Don't call Reader methods with invalid cookies

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26986 a95241bf-73f2-0310-859d-f6bbb57e9c96

086dbe90 10-Aug-2008 David McPaul <dlmcpaul@gmail.com>

limit no of retries to prevent infinite loop

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26914 a95241bf-73f2-0310-859d-f6bbb57e9c96

b66837d4 19-Jul-2008 Stephan Aßmus <superstippi@gmx.de>

Better debug output, print the error string when failing to get a Reader or Decoder.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26504 a95241bf-73f2-0310-859d-f6bbb57e9c96

abe0b5c8 10-Jun-2008 Alexandre Deckner <alex@zappotek.com>

- MakeViewFor didn't return a view with a good default size when no hintRect was provided (as
in Cortex). This happened only when needing a tabbed view. It will now return a view with the
most fitting size. This fixes #597

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25923 a95241bf-73f2-0310-859d-f6bbb57e9c96

642695c2 06-Jun-2008 Rene Gollent <anevilyak@gmail.com>

Build fix.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25827 a95241bf-73f2-0310-859d-f6bbb57e9c96

ae4ebbcc 06-Jun-2008 Stephan Aßmus <superstippi@gmx.de>

* Use NULL instead of 0 for some pointer initializations.
* Slightly more debug output for failed atempts to create a decoder.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25825 a95241bf-73f2-0310-859d-f6bbb57e9c96

bddb4413 03-Jun-2008 Stephan Aßmus <superstippi@gmx.de>

Do not remove the plugin from the list if the ref count has not reached
zero, otherwise we leak these plugins, since the ref counting is based
on the plugin still being in the list.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25792 a95241bf-73f2-0310-859d-f6bbb57e9c96

cc4ed3f7 03-Jun-2008 Stephan Aßmus <superstippi@gmx.de>

Honor the 80 char per line limit.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25791 a95241bf-73f2-0310-859d-f6bbb57e9c96

e26120ae 25-May-2008 François Revol <revol@free.fr>

Add char * version of ReadFrames, for compatibility with some R5 games.
Patch by genki0. I didn't see any reason not to commit it, so...
This should fix #897.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25656 a95241bf-73f2-0310-859d-f6bbb57e9c96

8b1e3b1a 07-May-2008 Maurice Kalinowski <mauricek@nowhere.fake>

- Implemented MediaExtractor::Copyright, which just calls the instantiated reader
- Implemented BMediaFile::Copyright, which just calls Copyright() of the extractor. So this is just a simple pass through.
- Style cleanup (mostly whitespaces)

Problem is that our readers currently return the copyright of the source code, not the copyright of the MediaFile itself, like the BeBook documents. Thus, we might need to change all readers to return appropiate data or behave differently for Haiku readers.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25356 a95241bf-73f2-0310-859d-f6bbb57e9c96

fc1ca2da 25-Apr-2008 Jérôme Duval <korli@users.berlios.de>

style cleanup

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25177 a95241bf-73f2-0310-859d-f6bbb57e9c96

a74d9260 26-Apr-2008 Jérôme Duval <korli@users.berlios.de>

style cleanup

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25173 a95241bf-73f2-0310-859d-f6bbb57e9c96

a7fb4c16 09-Apr-2008 Maurice Kalinowski <mauricek@nowhere.fake>

fix some gcc4 related warnings...

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24879 a95241bf-73f2-0310-859d-f6bbb57e9c96

3c08ed4a 09-Apr-2008 Maurice Kalinowski <mauricek@nowhere.fake>

Don't reset the duration value after passing it to SetRef as pointed out by Marcus.

Sorry for taking so long to commit this...

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24878 a95241bf-73f2-0310-859d-f6bbb57e9c96

b5c24e59 03-Apr-2008 Jérôme Duval <korli@users.berlios.de>

fix typo

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24778 a95241bf-73f2-0310-859d-f6bbb57e9c96

6938364b 29-Mar-2008 Maurice Kalinowski <mauricek@nowhere.fake>

* Implemented BMediaRoster hooks GetRefFor, SetRefFor, SniffRefFor to access BFileInterface related file functions.
* Implemented BFileInterface class which was nearly empty so far. Added handling of messages passed to BFileInterface class.
* Added needed structs and message values to DataExchange.
* This is needed to get for instance the reader.media_addon to work. Usually one calls above functions to set a file to be decoded by the node. If the target is a consumer, they are used for setting the target for encoding data.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24671 a95241bf-73f2-0310-859d-f6bbb57e9c96

999cd0ac 29-Mar-2008 Maurice Kalinowski <mauricek@nowhere.fake>

* implemented BMediaRoster::StartControlPanel(). It queries a BControllable node with CONTROLLABE_START_CONTROL_PANEL message and returns the result to the caller (thx for help/suggestions from Marcus here). Needed to add appropiate structs and message value to DataExchange.h
* implemented BControllable::StartControlPanel(). The behaviour is supposed to be the one documented in the BeBook, meaning that it first checks if the BControllable node has been instantiated over an BMediaAddOn. If so, we investigate where the addon is located and try to launch it. Thus media_addons which have a control panel need to be compiled as an Application, not as an Addon. See r24664 as an example.
* inside BControllable::HandleMessage() call StartControlPanel for the message.
* MediaNodes having such a ControlPanel are rarely used as parameterwebs should provide you everything. But for instance the vst MediaAddOn uses it and some others do as well.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24665 a95241bf-73f2-0310-859d-f6bbb57e9c96

9def3bf7 24-Mar-2008 Stephan Aßmus <superstippi@gmx.de>

* Rewrote MediaRoster.h
* Removed appearantly unused satic variables. Hope this does not break
binary compatibility, going to test.
* There are three more private methods, which could probably be removed
as well.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24558 a95241bf-73f2-0310-859d-f6bbb57e9c96

a715f908 24-Mar-2008 Stephan Aßmus <superstippi@gmx.de>

* Use new (std::nothrow), check for out of memory conditions and report them.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24557 a95241bf-73f2-0310-859d-f6bbb57e9c96

8b940bb4 24-Mar-2008 Stephan Aßmus <superstippi@gmx.de>

* Set the global BMediaRoster instance pointer to NULL in the destructor,
the DefaultDeleter is not the only situation in which the instance might
be deleted, a client app can also call Quit() on the BMediaRoster instance.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24556 a95241bf-73f2-0310-859d-f6bbb57e9c96

e339f816 21-Mar-2008 Stephan Aßmus <superstippi@gmx.de>

Also don't print error on B_BAD_PORT_ID in BMediaNode::WaitForMessage(),
it just means the port has been deleted while the node was waiting, like
when a program quits.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24502 a95241bf-73f2-0310-859d-f6bbb57e9c96

6b8545a4 20-Mar-2008 Stephan Aßmus <superstippi@gmx.de>

* Improve line breaks in BMediaNode::WaitForMessage() for 80 char width
according to coding style guide.
* Print the error string for read_port_etc() instead of the error code.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24501 a95241bf-73f2-0310-859d-f6bbb57e9c96

8056f0db 20-Mar-2008 Stephan Aßmus <superstippi@gmx.de>

* Failing to find an add-on for a BMediaNode could simply mean that the
node was instantiated by an application, therefor it is not an error.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24500 a95241bf-73f2-0310-859d-f6bbb57e9c96

d830aa92 20-Mar-2008 Stephan Aßmus <superstippi@gmx.de>

* Added FindKeyFrame() method to MediaExtractor, it is similar to Seek(),
but operates "read-only".
* Added FindKeyFrame() method to ReaderPlugin, see above.
* Reformated ReaderPlugin header. Added const qualifier to Source() method.
* Small cleanups in BMediaTrack::SeekToTime() and SeekToFrame(). Added TODOs
with regards to "seeking" in decoders, wich should IMHO be revised. (Codecs
cannot seek in the stream, they only get fed chunk data. The only thing they
can do is reset themselves in preparation for a discontinuity of the chunk
* Implemented BMediaTrack::FindKeyframeByXX() methods via the new
MediaExtractor::FindKeyFrame() method.
* Implemented Seek() and FindKeyFrame() methods in the Reader base class,
returning B_NOT_SUPPORTED. I think this makes sense and also I don't have
to adapt all existing Reader plugins for the new FindKeyFrame() call. :-)
* Implemeneted FindKeyFrame() in the avi_reader. The OpenDMLFile class
gets Seek() extended for a "read-only" mode. Currently the implementation
is broken (as before) with regards to keyframes. These were ignored before
and I have not changed them to actually support the seek flags with regards
to keyframes. That's the interesting TODO...
* Some reformatting here and there in avi_reader code, sorry for the mixup.
The only actual change is the support for the read-only flag to Seek().

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24495 a95241bf-73f2-0310-859d-f6bbb57e9c96

3bac9fe1 19-Mar-2008 Stephan Aßmus <superstippi@gmx.de>

Failing to find a suitable decoder for a stream is reported in three different
modules, I left the one from MediaExtractor::CreateDecoder, since it also
mentions the stream index.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24491 a95241bf-73f2-0310-859d-f6bbb57e9c96

4a46d818 19-Mar-2008 Stephan Aßmus <superstippi@gmx.de>

* Implemented ERROR as fprintf(stderr, ...) with tracing turned off as well.
* Fixed all but one compiler warnings in libmedia.so.
* Truncated lines to 80 char width where I looked at code.
* Turned printf()s into TRACE/ERROR calls in MediaExtractor.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24478 a95241bf-73f2-0310-859d-f6bbb57e9c96

a08f6a39 19-Mar-2008 Stephan Aßmus <superstippi@gmx.de>

Return B_ERROR for the FindKeyFrameFor*() methods, unless the time/frame
is 0, in which case it is almost save to assume it is a keyframe. Added
TODO though.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24474 a95241bf-73f2-0310-859d-f6bbb57e9c96

c844c208 19-Mar-2008 Stephan Aßmus <superstippi@gmx.de>

* Use tracing facilities in BMediaTrack.
* Turn off tracing in the Media Kit.
* Notify of unimplemented functions regardless of tracing.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24473 a95241bf-73f2-0310-859d-f6bbb57e9c96

c2848f10 19-Mar-2008 Stephan Aßmus <superstippi@gmx.de>

* Improved debug output.
* fTrackList was deleted with delete, but needed delete[].

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24472 a95241bf-73f2-0310-859d-f6bbb57e9c96

4ca14fe1 12-Mar-2008 Marcus Overhagen <marcusoverhagen@gmail.com>

Fixed harmless copy & paste bug.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24382 a95241bf-73f2-0310-859d-f6bbb57e9c96

eb5b2f6f 11-Mar-2008 Marcus Overhagen <marcusoverhagen@gmail.com>

Removed a lot of unsave memory handling.
Check for memory allocation errors.
Added limit to maximum flavor format count (300).
No longer crashes when out_format_count is invalid for B_BUFFER_CONSUMER,
or in_format_count is invalid for B_BUFFER_PRODUCER.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24366 a95241bf-73f2-0310-859d-f6bbb57e9c96

05b79ead 06-Feb-2008 Marcus Overhagen <marcusoverhagen@gmail.com>

Removed the no longer needed debug code.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23900 a95241bf-73f2-0310-859d-f6bbb57e9c96

00f37812 05-Feb-2008 Stephan Aßmus <superstippi@gmx.de>

First part of a patch sent by Clemens zeidler:
* The BMediaTheme now uses B_WIDTH_FROM_LABEL for tabs in tabviews,
this makes tabs as wide as they need to be.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23868 a95241bf-73f2-0310-859d-f6bbb57e9c96

034e2b7f 05-Feb-2008 Stephan Aßmus <superstippi@gmx.de>

applied patch by Maurice Kalinowski:
* BTimeSource now checks if it is about to add itself as a slave node
and refuses to.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23867 a95241bf-73f2-0310-859d-f6bbb57e9c96

67abb56f 10-Jan-2008 Stephan Aßmus <superstippi@gmx.de>

patch by aldeck:
* fixes the content inside the tabview in the Media preflet spanning over
the wrong area (wrong insets)

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23338 a95241bf-73f2-0310-859d-f6bbb57e9c96

b5714936 10-Dec-2007 Marcus Overhagen <marcusoverhagen@gmail.com>

drop into debugger when things go wrong

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23107 a95241bf-73f2-0310-859d-f6bbb57e9c96

b085f27f 20-Nov-2007 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Return an error in BSound methods, since they aren't implemented. Should
fix bug #1573, although I can't really test.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22962 a95241bf-73f2-0310-859d-f6bbb57e9c96

6e927a5f 30-Oct-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

malloc.h ain't no standard header. Use stdlib.h instead.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22776 a95241bf-73f2-0310-859d-f6bbb57e9c96

287cc765 16-Oct-2007 Jérôme Duval <korli@users.berlios.de>

fix gcc4 build

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22590 a95241bf-73f2-0310-859d-f6bbb57e9c96

f6e4cbb9 15-Oct-2007 Axel Dörfler <axeld@pinc-software.de>

* Rewrote BeBuild.h which had "a few" consequences (got rid of all those class
* Minor cleanup here and there.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22577 a95241bf-73f2-0310-859d-f6bbb57e9c96

332d5f43 15-Oct-2007 Axel Dörfler <axeld@pinc-software.de>

Some cleanup.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22568 a95241bf-73f2-0310-859d-f6bbb57e9c96

31cf24c1 21-Aug-2007 Marcus Overhagen <marcusoverhagen@gmail.com>

debugging instrumentation for Cortex lockup bug (some weeks old already)

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22029 a95241bf-73f2-0310-859d-f6bbb57e9c96

9e448b62 02-Jun-2007 Marcus Overhagen <marcusoverhagen@gmail.com>


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21299 a95241bf-73f2-0310-859d-f6bbb57e9c96

1d182929 02-Jun-2007 Marcus Overhagen <marcusoverhagen@gmail.com>

Moved creating and destroying of Reader and Decoder plugins into the PluginManager class.
Removed deferred initialization from BMediaDecoder.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21296 a95241bf-73f2-0310-859d-f6bbb57e9c96

80856c97 23-May-2007 Jérôme Duval <korli@users.berlios.de>

fixed typo

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21220 a95241bf-73f2-0310-859d-f6bbb57e9c96

88ec4b1d 15-Apr-2007 Jérôme Duval <korli@users.berlios.de>

fixed some warnings
code style of MMediaFilesManager.*

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20703 a95241bf-73f2-0310-859d-f6bbb57e9c96

0ba2462a 16-Feb-2007 François Revol <revol@free.fr>

Added a stub BTextParameter as in Dano, I'd need that for ESDSink at least.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20146 a95241bf-73f2-0310-859d-f6bbb57e9c96

9d00b1d5 01-Nov-2006 Axel Dörfler <axeld@pinc-software.de>

* The "no theme available" string is now resized as needed.
* Rewrote header, cleanup.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19170 a95241bf-73f2-0310-859d-f6bbb57e9c96

c332e7f7 20-Sep-2006 Jérôme Duval <korli@users.berlios.de>

fixed build for R5 : now uses inttypes.h because it's present on R5 also
HaikuBuildCompatibily.h exposes INT64_MAX based on limits.h

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18900 a95241bf-73f2-0310-859d-f6bbb57e9c96

6636d6b7 16-Sep-2006 Marcus Overhagen <marcusoverhagen@gmail.com>

fixed two warnings

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18871 a95241bf-73f2-0310-859d-f6bbb57e9c96

49811b3a 27-Aug-2006 Marcus Overhagen <marcusoverhagen@gmail.com>

removed usage of memcpy where not needed

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18654 a95241bf-73f2-0310-859d-f6bbb57e9c96

286a3c91 05-Jun-2006 Jérôme Duval <korli@users.berlios.de>

implemented ResolveSpecifier and GetSupportedSuites

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17735 a95241bf-73f2-0310-859d-f6bbb57e9c96

ab9afde3 22-May-2006 Marcus Overhagen <marcusoverhagen@gmail.com>

removed debug output

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17556 a95241bf-73f2-0310-859d-f6bbb57e9c96

0a00d23f 14-May-2006 Marcus Overhagen <marcusoverhagen@gmail.com>

Reworked media_format meta data handling.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17458 a95241bf-73f2-0310-859d-f6bbb57e9c96

e77acd69 08-May-2006 Marcus Overhagen <marcusoverhagen@gmail.com>

disabled some debug output

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17379 a95241bf-73f2-0310-859d-f6bbb57e9c96

db4bb289 11-Apr-2006 Jérôme Duval <korli@users.berlios.de>

clean up

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17088 a95241bf-73f2-0310-859d-f6bbb57e9c96

a7dc1efb 09-Mar-2006 Marcus Overhagen <marcusoverhagen@gmail.com>

removed port unblock workaround, as port API should work now similar to BeOS R5

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16671 a95241bf-73f2-0310-859d-f6bbb57e9c96

9b9d1e82 07-Mar-2006 Marcus Overhagen <marcusoverhagen@gmail.com>

modified to allow handling of messages without data

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16630 a95241bf-73f2-0310-859d-f6bbb57e9c96

3bb81a42 07-Mar-2006 Marcus Overhagen <marcusoverhagen@gmail.com>

Fixed deadlock that occured when quitting media applications.
I don't know why this never happened on R5. Haiku close_port()
works as documented in BeBook, but might possibly different in R5.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16629 a95241bf-73f2-0310-859d-f6bbb57e9c96

75daf556 06-Mar-2006 Marcus Overhagen <marcusoverhagen@gmail.com>

fixed reversed source and destination node ids, by using the new BMedisRoster::Disconnect function.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16626 a95241bf-73f2-0310-859d-f6bbb57e9c96

65b73ae4 06-Mar-2006 Marcus Overhagen <marcusoverhagen@gmail.com>

Added a Disconnect() method with simpler parameter list.
Added more error checking to Connect() and Input/Output publishing.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16625 a95241bf-73f2-0310-859d-f6bbb57e9c96

08a32bf9 19-Feb-2006 Jérôme Duval <korli@users.berlios.de>

replaced printf with PRINT (our Terminal doesn't handle so much data)

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16466 a95241bf-73f2-0310-859d-f6bbb57e9c96

23817014 12-Feb-2006 Marcus Overhagen <marcusoverhagen@gmail.com>


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16372 a95241bf-73f2-0310-859d-f6bbb57e9c96

3d6c7116 12-Feb-2006 Marcus Overhagen <marcusoverhagen@gmail.com>

added shutdown_media_server and start_media_server into libmedia.so, based on an older implementation from svn history, but modified and bugfixed

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16367 a95241bf-73f2-0310-859d-f6bbb57e9c96

843a7d9d 15-Jan-2006 Jérôme Duval <korli@users.berlios.de>

make libmedia.so beos compatible (including several public headers)

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15956 a95241bf-73f2-0310-859d-f6bbb57e9c96

bedeb04e 11-Dec-2005 Ingo Weinhold <ingo_weinhold@gmx.de>

Forgot to check this in. GCC 4 fix.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15493 a95241bf-73f2-0310-859d-f6bbb57e9c96

758b1d0e 12-Nov-2005 Ingo Weinhold <ingo_weinhold@gmx.de>

Fixes that make Haiku build with gcc 4. Mainly out of the following
* Missing includes (like <stdlib.h> and <string.h>).
* Linking against $(TARGET_LIBSTDC++) instead of libstdc++.r4.so.
* Local variables shadowing parameters.
* Default parameters in function definitions (as opposed to function
* All C++ stuff (nothrow, map, set, vector, min, max,...) must be imported
explicitly from the std:: namespace now.
* "new (sometype)[...]" must read "new sometype[...]", even if sometype is
something like "const char *".
* __FUNCTION__ is no longer a string literal (but a string expression), i.e.
'printf(__FUNCTION__ ": ...\n")' is invalid code.
* A type cast results in a non-lvalue. E.g. "(char *)buffer += bytes"
is an invalid expression.
* "friend class SomeClass" only works when SomeClass is known before.
Otherwise the an inner class with that name is considered as friend.
gcc 4 is much pickier about scopes.
* gcc 4 is generally stricter with respect to type conversions in C.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14878 a95241bf-73f2-0310-859d-f6bbb57e9c96

338b8dc3 29-Oct-2005 Ingo Weinhold <ingo_weinhold@gmx.de>

Merged changes from branch build_system_redesign at revision 14573.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14574 a95241bf-73f2-0310-859d-f6bbb57e9c96

21b29fb2 11-Oct-2005 Jérôme Duval <korli@users.berlios.de>

changed B_ANY_KERNEL_ADDRESS to B_ANY_ADDRESS, as our kernel doesn't allow user applications to create kernel areas
added some error logs

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14355 a95241bf-73f2-0310-859d-f6bbb57e9c96

f101f76f 10-Oct-2005 Jérôme Duval <korli@users.berlios.de>

added a check of BBufferGroup

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14340 a95241bf-73f2-0310-859d-f6bbb57e9c96

edde83c4 20-Aug-2005 Marcus Overhagen <marcusoverhagen@gmail.com>

cleanup of DEBUG and NDEBUG usage in media kit

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14012 a95241bf-73f2-0310-859d-f6bbb57e9c96

ca087074 20-Aug-2005 Marcus Overhagen <marcusoverhagen@gmail.com>

applied style guide a little bit

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14008 a95241bf-73f2-0310-859d-f6bbb57e9c96

3bd6b367 20-Aug-2005 Marcus Overhagen <marcusoverhagen@gmail.com>

removed unused NDEBUG

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14007 a95241bf-73f2-0310-859d-f6bbb57e9c96

65799d5b 05-Jul-2005 Marcus Overhagen <marcusoverhagen@gmail.com>

tiny debug code cleanup

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13466 a95241bf-73f2-0310-859d-f6bbb57e9c96

23f34657 05-Jul-2005 Marcus Overhagen <marcusoverhagen@gmail.com>

This fix should prevent TimeSource control thread from using random semaphores,
by no longer using an uninitialized Blocker object.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13465 a95241bf-73f2-0310-859d-f6bbb57e9c96

0d1adad3 29-Jun-2005 Marcus Overhagen <marcusoverhagen@gmail.com>

Media Codec API just got a visit from the coding style police.
We now use "const" for the chunk buffer pointer returned by GetNextChunk,
because the buffer is not supposed to be modified by the codec.
size_t is used for the size where applicable. This matches BMediaDecoder.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13361 a95241bf-73f2-0310-859d-f6bbb57e9c96

5f8e8854 19-Jun-2005 David McPaul <dlmcpaul@gmail.com>

Turned chunk cache back on

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13208 a95241bf-73f2-0310-859d-f6bbb57e9c96

215c91df 10-Jun-2005 David McPaul <dlmcpaul@gmail.com>

Added mov_reader to media kit - Very Alpha

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13046 a95241bf-73f2-0310-859d-f6bbb57e9c96

8496c38a 26-Feb-2005 beveloper <beveloper@nowhere.fake>

MediaRoster::Roster() now sets out_error to B_OK if everything is OK

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11499 a95241bf-73f2-0310-859d-f6bbb57e9c96

fa96039f 20-Nov-2004 shatty <shatty@nowhere.fake>

address compiler warnings

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10076 a95241bf-73f2-0310-859d-f6bbb57e9c96

1a1da948 20-Nov-2004 beveloper <beveloper@nowhere.fake>

removed ChunkCache.h from shared private include files

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10072 a95241bf-73f2-0310-859d-f6bbb57e9c96

f944d8fb 07-Nov-2004 beveloper <beveloper@nowhere.fake>

avoid reading tracks which are not supported by the reader

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9829 a95241bf-73f2-0310-859d-f6bbb57e9c96

dc1680bc 06-Nov-2004 beveloper <beveloper@nowhere.fake>

Added missing license to the recently implemented chunk cache.
Using the unmodified BSD license without advertising clause.

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9817 a95241bf-73f2-0310-859d-f6bbb57e9c96

aa09be21 06-Nov-2004 beveloper <beveloper@nowhere.fake>

removed unused files, the mixer has it's own resampling code

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9815 a95241bf-73f2-0310-859d-f6bbb57e9c96

1a3a7e8c 24-Oct-2004 beveloper <beveloper@nowhere.fake>

Fixed very bad seeking bug.

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9491 a95241bf-73f2-0310-859d-f6bbb57e9c96

ef4fd98f 24-Oct-2004 beveloper <beveloper@nowhere.fake>

removed that debug output again

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9488 a95241bf-73f2-0310-859d-f6bbb57e9c96

bf0aa2f9 24-Oct-2004 beveloper <beveloper@nowhere.fake>

added support to disable the chunk cache for debugging

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9487 a95241bf-73f2-0310-859d-f6bbb57e9c96

f14dfaa7 24-Oct-2004 beveloper <beveloper@nowhere.fake>

Completed implementation of chunk caching. Playback from harddisk is now much better, crackling should be gone.

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9485 a95241bf-73f2-0310-859d-f6bbb57e9c96

26dc029a 24-Oct-2004 beveloper <beveloper@nowhere.fake>

Added an extra thread for chunk extraction. Using the ChunkCache, the ReadFrames call no longer needs to wait for the extractor, but can read it from a cache.

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9481 a95241bf-73f2-0310-859d-f6bbb57e9c96

5c91a281 24-Oct-2004 beveloper <beveloper@nowhere.fake>

started implementing a caching layer inbetween extractor and decoder

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9480 a95241bf-73f2-0310-859d-f6bbb57e9c96

40c2c00a 24-Oct-2004 beveloper <beveloper@nowhere.fake>

Clean up of debug output. Fixed volume control bug introduced yesterday.

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9475 a95241bf-73f2-0310-859d-f6bbb57e9c96

df42a7b5 23-Oct-2004 beveloper <beveloper@nowhere.fake>

Massive BSoundPlayer rewrite. Format negotiation and node registering/unregistering fixed.

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9470 a95241bf-73f2-0310-859d-f6bbb57e9c96

0a7ddfb5 23-Oct-2004 beveloper <beveloper@nowhere.fake>

Style changes. I obviously didn't save the caching changes done at Begeistert 13 :-(

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9466 a95241bf-73f2-0310-859d-f6bbb57e9c96

d5463e6f 23-Oct-2004 beveloper <beveloper@nowhere.fake>

better debug output

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9465 a95241bf-73f2-0310-859d-f6bbb57e9c96

d6105ced 23-Oct-2004 beveloper <beveloper@nowhere.fake>

Some BSoundPlayer style changes and bugfixes

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9461 a95241bf-73f2-0310-859d-f6bbb57e9c96

e4d07a3e 15-Aug-2004 beveloper <beveloper@nowhere.fake>

Added some new functions which seem to be required for Xentronics SampleStudio Pro.
Added missing license to implementation files.

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8590 a95241bf-73f2-0310-859d-f6bbb57e9c96

146e9286 15-Aug-2004 beveloper <beveloper@nowhere.fake>

This is now the Haiku Media Kit

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8588 a95241bf-73f2-0310-859d-f6bbb57e9c96

98eb4f65 15-Aug-2004 beveloper <beveloper@nowhere.fake>

shutdown and restarting of media_server is handled by libbe.so, not by libmedia.so

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8583 a95241bf-73f2-0310-859d-f6bbb57e9c96

a861a01e 14-Aug-2004 beveloper <beveloper@nowhere.fake>

switch to Be Inc media server signature, to allow libbe.so sending messages to the server

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8573 a95241bf-73f2-0310-859d-f6bbb57e9c96

51599367 14-Aug-2004 beveloper <beveloper@nowhere.fake>

made error messages a little more informative

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8572 a95241bf-73f2-0310-859d-f6bbb57e9c96

7562d550 15-Aug-2004 beveloper <beveloper@nowhere.fake>

Two additional functions to support gain selection for media files (sound events).
Allows better compatibility with Zeta's preference application.

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8571 a95241bf-73f2-0310-859d-f6bbb57e9c96

f465a5ec 07-Jun-2004 Jérôme Duval <korli@users.berlios.de>

Adding libmedia.so to develop/lib/%arch%

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@7816 a95241bf-73f2-0310-859d-f6bbb57e9c96

dcfb6bfc 19-May-2004 Jérôme Duval <korli@users.berlios.de>

Constructor for BMediaRosterEx

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@7614 a95241bf-73f2-0310-859d-f6bbb57e9c96

ece05aef 19-May-2004 Jérôme Duval <korli@users.berlios.de>

Implemented launch_media_server and shutdown_media_server. This code is only used when Media is linked first against libmedia.so

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@7613 a95241bf-73f2-0310-859d-f6bbb57e9c96

7a270278 29-Feb-2004 beveloper <beveloper@nowhere.fake>

fixed assigned BBuffer size, the size of a buffer is now the requested size, not the allocated size

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6824 a95241bf-73f2-0310-859d-f6bbb57e9c96

c0df25da 29-Feb-2004 beveloper <beveloper@nowhere.fake>

removed debug output

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6823 a95241bf-73f2-0310-859d-f6bbb57e9c96

bac2b3f1 29-Feb-2004 beveloper <beveloper@nowhere.fake>

When the decoder doesn't support the requested format, the raw decoder is utilized
to provide a format conversion to the requested raw format.
Added a few workarounds for applications that don't requst the required format
but instead assume to get a specific one.

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6815 a95241bf-73f2-0310-859d-f6bbb57e9c96

94722b26 29-Feb-2004 beveloper <beveloper@nowhere.fake>

removed debug output

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6814 a95241bf-73f2-0310-859d-f6bbb57e9c96

c8f5115b 29-Feb-2004 beveloper <beveloper@nowhere.fake>

call FreeCookie() on 0 cookies, too

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6813 a95241bf-73f2-0310-859d-f6bbb57e9c96

2d7030fe 23-Feb-2004 Axel Dörfler <axeld@pinc-software.de>

The group views must not B_FOLLOW_ALL unless they are the top-level group
views - that makes all sliders accessible again.
Thanks to Marcus for reporting that bug.

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6703 a95241bf-73f2-0310-859d-f6bbb57e9c96

faca9355 21-Feb-2004 shatty <shatty@nowhere.fake>

fixed GetNextChunk not connected bug

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6671 a95241bf-73f2-0310-859d-f6bbb57e9c96

dc204ab2 20-Feb-2004 Axel Dörfler <axeld@pinc-software.de>

Fixed the test for the knob position with B_DOCUMENT_WINDOW_LOOK.

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6670 a95241bf-73f2-0310-859d-f6bbb57e9c96

f53ccd0b 18-Feb-2004 Axel Dörfler <axeld@pinc-software.de>

The target view of the scroll view must be moved to the origin (doesn't
matter in this context, though).

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6629 a95241bf-73f2-0310-859d-f6bbb57e9c96

69cb3c10 17-Feb-2004 Axel Dörfler <axeld@pinc-software.de>

Moved the TimeSourceOp() call to the beginning of the TIMESOURCE_OP event
(as described by Marcus).

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6615 a95241bf-73f2-0310-859d-f6bbb57e9c96

b70fa513 16-Feb-2004 Axel Dörfler <axeld@pinc-software.de>

We now dynamically add scroll bars to the parameter web view!

Some BeOS classes really are very stupid or just inferior:
- added DynamicScrollView class that adds and removes scroll bars as needed
and automatically takes care of the correct scroller range and proportions.
- added TabView class that is smart enough to resize its container view
and the tab views as well.

Both classes could be used in other environments, too. DynamicScrollView
would be a nice addition to BScrollView R2 - might be put into a shared
source directory for now (or into libbe's BPrivate namespace?).
The TabView additions could almost be moved to BTabView without breaking
compatibility, just the resizing mode of the tab views have to be respected.

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6612 a95241bf-73f2-0310-859d-f6bbb57e9c96

ec276f43 16-Feb-2004 beveloper <beveloper@nowhere.fake>


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6609 a95241bf-73f2-0310-859d-f6bbb57e9c96

f2ca77a1 08-Feb-2004 beveloper <beveloper@nowhere.fake>

provide zero media_header, and let reader or decoder set up missing values

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6538 a95241bf-73f2-0310-859d-f6bbb57e9c96

ffaa0026 08-Feb-2004 beveloper <beveloper@nowhere.fake>

use the correct value (reported by mmu_man)

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6537 a95241bf-73f2-0310-859d-f6bbb57e9c96

fa8dbc01 01-Feb-2004 shatty <shatty@nowhere.fake>

new MediaFormats. node monitoring codec plugin loading. codec mods to support new codec api to retrieve supported formats.

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6465 a95241bf-73f2-0310-859d-f6bbb57e9c96

0f2976ab 30-Jan-2004 beveloper <beveloper@nowhere.fake>

small api changes

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6439 a95241bf-73f2-0310-859d-f6bbb57e9c96

a6423eea 29-Jan-2004 beveloper <beveloper@nowhere.fake>

improved media_header usage

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6420 a95241bf-73f2-0310-859d-f6bbb57e9c96

7f823d47 28-Jan-2004 beveloper <beveloper@nowhere.fake>

if GetFormatFor failes, it now returns a useable wildcard format

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6395 a95241bf-73f2-0310-859d-f6bbb57e9c96

df6c2e83 28-Jan-2004 beveloper <beveloper@nowhere.fake>

better buffer size suggestion

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6390 a95241bf-73f2-0310-859d-f6bbb57e9c96

21aea2f3 28-Jan-2004 beveloper <beveloper@nowhere.fake>

make failures more visible

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6389 a95241bf-73f2-0310-859d-f6bbb57e9c96

e1431e96 27-Jan-2004 shatty <shatty@nowhere.fake>

remove references to B_OGG_FORMAT_FAMILY

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6352 a95241bf-73f2-0310-859d-f6bbb57e9c96

0f182085 25-Jan-2004 Axel Dörfler <axeld@pinc-software.de>

BMediaFormats::InitCheck() now checks if the global lock could be initialized
to give its existance a bit more sense.
update_media_formats() no longer ASSERTS if the lock is held, but fails
if it's not locked.

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6300 a95241bf-73f2-0310-859d-f6bbb57e9c96

2aa106d6 24-Jan-2004 shatty <shatty@nowhere.fake>

fixed a bug which caused one perhaps the most helpful error message ever from gcc: 101: invalid reference to a member function name, did you forget the ()?

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6261 a95241bf-73f2-0310-859d-f6bbb57e9c96

a4f26c7d 24-Jan-2004 shatty <shatty@nowhere.fake>

fix SetMetaData to create an area, do not bother with checking the return value from find_thread(NULL)

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6259 a95241bf-73f2-0310-859d-f6bbb57e9c96

00110357 23-Jan-2004 Axel Dörfler <axeld@pinc-software.de>

Accidently used its own PluginManager object instead of the global one.
Implemented BMediaDecoder::GetDecoderInfo().
Changed the documentation style to something doxygen can read.
Added some ToDo comments.
Some minor style changes.

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6249 a95241bf-73f2-0310-859d-f6bbb57e9c96

6e53563d 23-Jan-2004 Axel Dörfler <axeld@pinc-software.de>

Updated to new API, some minor changes. Added "ToDo" items in the
DestroyReader/Decoder() functions - they erroneously don't put the
plugin back.
Added license.

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6240 a95241bf-73f2-0310-859d-f6bbb57e9c96

29f1f448 23-Jan-2004 Axel Dörfler <axeld@pinc-software.de>

Removed now unused methods, added license.

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6239 a95241bf-73f2-0310-859d-f6bbb57e9c96

68b80bbd 23-Jan-2004 Axel Dörfler <axeld@pinc-software.de>

Slightly improved error reporting for CreateDecoder (now with error code).

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6238 a95241bf-73f2-0310-859d-f6bbb57e9c96

0f34281e 23-Jan-2004 Axel Dörfler <axeld@pinc-software.de>

The BMediaFormats class is now completely implemented. Removed wrong old
implementation and the now unused old meta_description stuff.
Also fixed the == and < operator for media_format_description.

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6237 a95241bf-73f2-0310-859d-f6bbb57e9c96

b6b1e538 23-Jan-2004 Axel Dörfler <axeld@pinc-software.de>

Removed all now unused functionality.

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6236 a95241bf-73f2-0310-859d-f6bbb57e9c96

0a580bde 22-Jan-2004 Axel Dörfler <axeld@pinc-software.de>

Added a QueryServer() function for BMessage transfer.

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6232 a95241bf-73f2-0310-859d-f6bbb57e9c96

b84e6d90 21-Jan-2004 shatty <shatty@nowhere.fake>

instead of checking for invalidity, check for validity for meta_data_area

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6217 a95241bf-73f2-0310-859d-f6bbb57e9c96

a2d20d9d 21-Jan-2004 shatty <shatty@nowhere.fake>

correct initialization of media_format. (btw I just realized I never need to manually zero a format after construction) perform a complete copy of media_format. do some things related to handling meta_data_areas. still some left to do, so do an UNIMPLEMENTED if we are in that state

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6210 a95241bf-73f2-0310-859d-f6bbb57e9c96

03df40f1 20-Jan-2004 Axel Dörfler <axeld@pinc-software.de>

(Temporarily?) removed the private API exports that the new SoundPlay 4.8.1
uses - it does crash anyway, when we export them (and return NULL).
Asked Marco about it, we'll see what comes back :-)

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6205 a95241bf-73f2-0310-859d-f6bbb57e9c96

b1cf2fd4 19-Jan-2004 beveloper <beveloper@nowhere.fake>

cache info from constructor and do init later

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6151 a95241bf-73f2-0310-859d-f6bbb57e9c96

a498eb5f 19-Jan-2004 shatty <shatty@nowhere.fake>

preliminary partial MediaDecoder implementation

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6147 a95241bf-73f2-0310-859d-f6bbb57e9c96

ceb9cf7a 19-Jan-2004 shatty <shatty@nowhere.fake>

implement SetMetaData, MetaData, MetaDataSize functions on media_format

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6146 a95241bf-73f2-0310-859d-f6bbb57e9c96

bc3a0b6c 18-Jan-2004 shatty <shatty@nowhere.fake>

implement MediaDecoder, MediaExtractor using added ChunkProvider

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6137 a95241bf-73f2-0310-859d-f6bbb57e9c96

7e0c41c1 29-Dec-2003 shatty <shatty@nowhere.fake>

partial SoundFile implementation

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5797 a95241bf-73f2-0310-859d-f6bbb57e9c96

8bd14295 27-Dec-2003 shatty <shatty@nowhere.fake>

the unimplemented printout was driving me crazy, so here they are: media_encode_info and media_decode_info struct initializers

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5784 a95241bf-73f2-0310-859d-f6bbb57e9c96

35678406 27-Dec-2003 beveloper <beveloper@nowhere.fake>

to aid decoder debugging

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5775 a95241bf-73f2-0310-859d-f6bbb57e9c96

bb1d6ef2 27-Dec-2003 beveloper <beveloper@nowhere.fake>

raw decoder supports many samples types now, and support for them
has been added to the file readers, you can now play 24 bit integer
or 64 bit floating point files

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5770 a95241bf-73f2-0310-859d-f6bbb57e9c96

3a9ada71 25-Dec-2003 beveloper <beveloper@nowhere.fake>

seek back to start position

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5756 a95241bf-73f2-0310-859d-f6bbb57e9c96

b1a94814 22-Dec-2003 beveloper <beveloper@nowhere.fake>

fixed a couple of issues with id3attr

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5737 a95241bf-73f2-0310-859d-f6bbb57e9c96

046f31f9 14-Dec-2003 beveloper <beveloper@nowhere.fake>

update to the codec api, docoder assignment is now handled in the server
multiple reader add-ons are probed to recognize a media file
FormatManager does the translation from media_format to media_description

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5667 a95241bf-73f2-0310-859d-f6bbb57e9c96

933a8830 08-Dec-2003 beveloper <beveloper@nowhere.fake>

Should provide better compatiblity with SoundPlay 4.8 (but SoundPlay does crash)

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5632 a95241bf-73f2-0310-859d-f6bbb57e9c96

8d52474b 08-Dec-2003 beveloper <beveloper@nowhere.fake>

a couple of fixes to the error handling code

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5631 a95241bf-73f2-0310-859d-f6bbb57e9c96

fc8b28b6 08-Dec-2003 Jérôme Duval <korli@users.berlios.de>

Implemented GetStartLatency

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5626 a95241bf-73f2-0310-859d-f6bbb57e9c96

2d923d67 07-Dec-2003 beveloper <beveloper@nowhere.fake>

fixed playback of small files by properly returning errors

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5617 a95241bf-73f2-0310-859d-f6bbb57e9c96

2c24a8d0 07-Dec-2003 beveloper <beveloper@nowhere.fake>


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5616 a95241bf-73f2-0310-859d-f6bbb57e9c96

4ba72fcd 07-Dec-2003 beveloper <beveloper@nowhere.fake>

fixed some bugs in raw wav reading

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5609 a95241bf-73f2-0310-859d-f6bbb57e9c96

25305239 06-Dec-2003 beveloper <beveloper@nowhere.fake>

codec output format negotiation has been moved into NegotiateOutputFormat,
Setup is now only called once

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5596 a95241bf-73f2-0310-859d-f6bbb57e9c96

abf9e66a 06-Dec-2003 beveloper <beveloper@nowhere.fake>

fixed timing information returned in media_header
added GetFileFormatInfo to reader api

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5595 a95241bf-73f2-0310-859d-f6bbb57e9c96

1b1b7ddf 06-Dec-2003 beveloper <beveloper@nowhere.fake>

remove warnings

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5594 a95241bf-73f2-0310-859d-f6bbb57e9c96

d23c804c 06-Dec-2003 beveloper <beveloper@nowhere.fake>


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5592 a95241bf-73f2-0310-859d-f6bbb57e9c96

4cbbc5a9 05-Dec-2003 beveloper <beveloper@nowhere.fake>

small cleanup, format type and encoding depends on the description
and is set by the media kit, not by the reader

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5584 a95241bf-73f2-0310-859d-f6bbb57e9c96

ac800e9c 05-Dec-2003 beveloper <beveloper@nowhere.fake>

fixed BMediaTrack::EncodedFormat(), BeOS MediaPlayer now recognizes the tracks!

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5583 a95241bf-73f2-0310-859d-f6bbb57e9c96

c90d2752 05-Dec-2003 beveloper <beveloper@nowhere.fake>

fixed crash in BMediaFile destructor

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5582 a95241bf-73f2-0310-859d-f6bbb57e9c96

d0b86c0f 05-Dec-2003 beveloper <beveloper@nowhere.fake>

mp3 decoding and seeking works now

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5581 a95241bf-73f2-0310-859d-f6bbb57e9c96

b65a0ac5 05-Dec-2003 Jérôme Duval <korli@users.berlios.de>

fixes GetFreeOutputs/Inputs and GetConnectedOutputs/Inputs (cortex now reports correctly the connections with the mixer)
implements GetInitialLatency (untested)

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5580 a95241bf-73f2-0310-859d-f6bbb57e9c96

1210ab70 04-Dec-2003 beveloper <beveloper@nowhere.fake>

Huge hack to load the mp3 reader and decoder.
Soundplay loads it and can play a crackling mp3, but MediaPlayer doesn't

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5572 a95241bf-73f2-0310-859d-f6bbb57e9c96

0f741a83 01-Dec-2003 beveloper <beveloper@nowhere.fake>

more codec api enhancements

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5523 a95241bf-73f2-0310-859d-f6bbb57e9c96

572e60a4 01-Dec-2003 beveloper <beveloper@nowhere.fake>

some more changes, no longer using BMediaFormats

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5522 a95241bf-73f2-0310-859d-f6bbb57e9c96

f2f3482e 29-Nov-2003 beveloper <beveloper@nowhere.fake>

implemented media_format_description

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5497 a95241bf-73f2-0310-859d-f6bbb57e9c96

da87cefe 28-Nov-2003 beveloper <beveloper@nowhere.fake>

added the new media_meta_description and changed codec API to use it

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5494 a95241bf-73f2-0310-859d-f6bbb57e9c96

0a8e9c76 25-Nov-2003 Jérôme Duval <korli@users.berlios.de>

To clear the current entry_ref

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5477 a95241bf-73f2-0310-859d-f6bbb57e9c96

7a115dc7 23-Nov-2003 beveloper <beveloper@nowhere.fake>

integrating codec API, added some MediaExtractor functionality

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5470 a95241bf-73f2-0310-859d-f6bbb57e9c96

d8591482 23-Nov-2003 beveloper <beveloper@nowhere.fake>

integration of codec API into BMediaFile and BMediaTrack

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5468 a95241bf-73f2-0310-859d-f6bbb57e9c96

bce1ab5e 23-Nov-2003 beveloper <beveloper@nowhere.fake>

another round of codec API changes

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5458 a95241bf-73f2-0310-859d-f6bbb57e9c96

8b9700ad 17-Nov-2003 Jérôme Duval <korli@users.berlios.de>

GetInstancesFor must accept a NULL iocount and consider it as 1

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5395 a95241bf-73f2-0310-859d-f6bbb57e9c96

4691dc7f 12-Nov-2003 Jérôme Duval <korli@users.berlios.de>

MediaFiles support added

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5324 a95241bf-73f2-0310-859d-f6bbb57e9c96

9a459253 03-Nov-2003 beveloper <beveloper@nowhere.fake>

latest api changes...

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5252 a95241bf-73f2-0310-859d-f6bbb57e9c96

ca16f5cb 17-Oct-2003 beveloper <beveloper@nowhere.fake>

start of media kit codec plugin API

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5078 a95241bf-73f2-0310-859d-f6bbb57e9c96

51e7b01f 01-Oct-2003 beveloper <beveloper@nowhere.fake>

changed timeout calculation

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4918 a95241bf-73f2-0310-859d-f6bbb57e9c96

2feec67c 01-Oct-2003 beveloper <beveloper@nowhere.fake>

changed debug output

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4917 a95241bf-73f2-0310-859d-f6bbb57e9c96

a6d316d8 01-Oct-2003 beveloper <beveloper@nowhere.fake>

added unused debug output

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4916 a95241bf-73f2-0310-859d-f6bbb57e9c96

92e575c1 09-Sep-2003 beveloper <beveloper@nowhere.fake>

Moved system time source code into media_addon_server.
It is now a real node.
Shadow timesources finally have the correct control port id.

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4604 a95241bf-73f2-0310-859d-f6bbb57e9c96

d33e7c44 08-Sep-2003 beveloper <beveloper@nowhere.fake>

added debug output

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4566 a95241bf-73f2-0310-859d-f6bbb57e9c96

23d4209d 08-Sep-2003 beveloper <beveloper@nowhere.fake>

fixed periodic plop noise that happend about every second

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4565 a95241bf-73f2-0310-859d-f6bbb57e9c96

f2f96e6f 08-Sep-2003 beveloper <beveloper@nowhere.fake>

small tweak to allow control of continuous parameter range 0.0 to 1.0

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4564 a95241bf-73f2-0310-859d-f6bbb57e9c96

a0032ff0 07-Sep-2003 beveloper <beveloper@nowhere.fake>

latency now depends on buffer duration

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4547 a95241bf-73f2-0310-859d-f6bbb57e9c96

951c57f3 07-Sep-2003 beveloper <beveloper@nowhere.fake>

used real buffer id (the buffer handling needs to be redone)

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4546 a95241bf-73f2-0310-859d-f6bbb57e9c96

d6fab5bc 07-Sep-2003 beveloper <beveloper@nowhere.fake>

removed debug output

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4545 a95241bf-73f2-0310-859d-f6bbb57e9c96

4d2d96e0 07-Sep-2003 beveloper <beveloper@nowhere.fake>

new functions that work with pointer to the node, instead of sending messages
this should avoud deadlocks during execution of RegisterNode()

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4544 a95241bf-73f2-0310-859d-f6bbb57e9c96

71c77b48 07-Sep-2003 beveloper <beveloper@nowhere.fake>

latency calculation is now done in realtime

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4543 a95241bf-73f2-0310-859d-f6bbb57e9c96

1df08d39 07-Sep-2003 beveloper <beveloper@nowhere.fake>

added missing buffer header field, added comment

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4542 a95241bf-73f2-0310-859d-f6bbb57e9c96

8d481eee 07-Sep-2003 beveloper <beveloper@nowhere.fake>

cached BBuffer object are not allowed to be deleted until they are Recycled,
temporary changed to never delete them...

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4541 a95241bf-73f2-0310-859d-f6bbb57e9c96

344122f0 07-Sep-2003 beveloper <beveloper@nowhere.fake>

added comment

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4540 a95241bf-73f2-0310-859d-f6bbb57e9c96

d48f9c63 02-Sep-2003 beveloper <beveloper@nowhere.fake>

reduce debug output at level 2

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4458 a95241bf-73f2-0310-859d-f6bbb57e9c96

d91580cd 30-Aug-2003 beveloper <beveloper@nowhere.fake>

removed/fixed warnings

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4418 a95241bf-73f2-0310-859d-f6bbb57e9c96

cb6670b4 06-Jul-2003 Axel Dörfler <axeld@pinc-software.de>

The groups are now put into special GroupViews which not only set the target
of its members correctly, but will also add scroll bars as needed.
Implemented basic message filters for discrete/continuous parameter views.
The views are now set to the correct parameter value and vice versa.
BContinuousParameter::{Get|Set}Response() is not yet supported, though.

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3874 a95241bf-73f2-0310-859d-f6bbb57e9c96

7b96988a 06-Jul-2003 Axel Dörfler <axeld@pinc-software.de>

BParameter::GetValue() now only copies as much data as specified by the reply.
BParameterGroup::Unflatten() did not set the mWeb member of BParameter.

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3873 a95241bf-73f2-0310-859d-f6bbb57e9c96

2386ff94 04-Jul-2003 Ingo Weinhold <ingo_weinhold@gmx.de>

Added missing include.

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3854 a95241bf-73f2-0310-859d-f6bbb57e9c96

78aa9c80 01-Jul-2003 Axel Dörfler <axeld@pinc-software.de>

The creation of the parameter views now happens before the sub-groups are
added to the group. That way, a title view can be identified and always
placed at the top of the view.
Fixed minor related bugs.

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3804 a95241bf-73f2-0310-859d-f6bbb57e9c96

4b582fd1 01-Jul-2003 Axel Dörfler <axeld@pinc-software.de>

Now sets the height of the parameter web correctly (wasn't visible with the
Media preferences application alone).
Replaced the BBox with a simple BView for the container of a BParameterGroup.

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3801 a95241bf-73f2-0310-859d-f6bbb57e9c96

c81f1c97 01-Jul-2003 Axel Dörfler <axeld@pinc-software.de>

Added support for the B_HIDDEN_PARAMETER flag.
Added heuristica to only show those BNullParameters which the original media
kit shows.
Removed flickering in the SeparatorView drawing code.

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3800 a95241bf-73f2-0310-859d-f6bbb57e9c96

652243da 01-Jul-2003 Axel Dörfler <axeld@pinc-software.de>

Added workaround for a misbehaving BOptionPopUp class (doesn't resize itself
properly - it obviously needs the correct size at creation time...).

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3799 a95241bf-73f2-0310-859d-f6bbb57e9c96

b8da958e 01-Jul-2003 Axel Dörfler <axeld@pinc-software.de>

Big visual update: it's now almost the same as the original MediaTheme.
Some special parameter types are still missing, actually changing anything
is missing, some needed work-arounds for broken Be code, etc.

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3798 a95241bf-73f2-0310-859d-f6bbb57e9c96

95051109 01-Jul-2003 Axel Dörfler <axeld@pinc-software.de>

BParameterGroup::Unflatten() didn't set the mGroup field of its parameters.

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3797 a95241bf-73f2-0310-859d-f6bbb57e9c96

2f4575bf 01-Jul-2003 Axel Dörfler <axeld@pinc-software.de>

Fixed a crashing bug in BParameter::Unflatten(): it accidently called
AddInput()/AddOutput() instead of just adding the unflattened (unfixed)
pointer to the appropriate lists.
Added a comment that it's valid to add the pointers at this time since
they will be fixed later on.
BParameterGroup::MakeControl() unnecessarily initialized the newly created
parameters with some default values.

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3785 a95241bf-73f2-0310-859d-f6bbb57e9c96

42b6476d 01-Jul-2003 Axel Dörfler <axeld@pinc-software.de>

Activated the default media theme to be used.

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3784 a95241bf-73f2-0310-859d-f6bbb57e9c96

d662f7f4 01-Jul-2003 Axel Dörfler <axeld@pinc-software.de>

Implemented a very simple default media theme. You can't do anything yet,
but you should already see most of the options.

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3783 a95241bf-73f2-0310-859d-f6bbb57e9c96

6ab18748 23-Jun-2003 Ingo Weinhold <ingo_weinhold@gmx.de>

Removed invocations of UsePublicHeaders, which was a no-op anyway.

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3628 a95241bf-73f2-0310-859d-f6bbb57e9c96

5ac4fbd7 19-Jun-2003 beveloper <beveloper@nowhere.fake>

clean up of debugging functions
FATAL is now replaced by ERROR and active at DEBUG=1 or above
TRACE is active at 2 or above
PRINT(level, ...) can be used for DEBUG= level or abode
INFO is removed

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3578 a95241bf-73f2-0310-859d-f6bbb57e9c96

e5c72c15 15-Jun-2003 Axel Dörfler <axeld@pinc-software.de>

Added the memory checking support in the Jamfile; use "CHECK_MALLOC=1 jam"
to activate it.

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3528 a95241bf-73f2-0310-859d-f6bbb57e9c96

89023839 13-Jun-2003 beveloper <beveloper@nowhere.fake>

implemented media_format Matches() and SpecializeTo()

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3496 a95241bf-73f2-0310-859d-f6bbb57e9c96

9a232d4e 13-Jun-2003 beveloper <beveloper@nowhere.fake>

added DefaultMediaTheme.cpp

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3495 a95241bf-73f2-0310-859d-f6bbb57e9c96

01fa698a 12-Jun-2003 beveloper <beveloper@nowhere.fake>

implemented BParameter::SetValue() and BControllable::SetParameterValue()

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3494 a95241bf-73f2-0310-859d-f6bbb57e9c96

76af595a 12-Jun-2003 beveloper <beveloper@nowhere.fake>

initialize mNode variable

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3493 a95241bf-73f2-0310-859d-f6bbb57e9c96

6836c3cb 12-Jun-2003 Axel Dörfler <axeld@pinc-software.de>

Add a first non-functional version of the default media theme.
Implemented all needed functionality in BMediaTheme to use this default
theme - it's currently disabled, though (or should be).

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3491 a95241bf-73f2-0310-859d-f6bbb57e9c96

17488f48 12-Jun-2003 beveloper <beveloper@nowhere.fake>

Implemented BParameter::GetValue() and BControllable::GetParameterValue()

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3488 a95241bf-73f2-0310-859d-f6bbb57e9c96

241ca618 11-Jun-2003 Axel Dörfler <axeld@pinc-software.de>

Fixed a stupid typo that got in in the last minute.

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3482 a95241bf-73f2-0310-859d-f6bbb57e9c96

9bf6c6c6 10-Jun-2003 Axel Dörfler <axeld@pinc-software.de>

Work in progress of the BParameterWeb rework; almost every line has been
changed, sorry.
Fixed many bugs in the old implementation, this one is now also endian-aware,
is faster on many things, works with stampTV, ...
Cleaned up a lot, most of it now complies with our style guide. Added a bunch
of helper functions that makes the code much better (to read), and easier to
It's not yet completed though - will do that soon.
Also still missing is any documentation about those classes - I will also
work on this.
The changes have to downsides, though:
- I broke compatibility with the R5 flattened format. It shouldn't be a big
issue, since it was never thought to be put on disk - I will look into
that, though.
- the previous implementation had a strange policy when the Unflatten()
methods had reason to fail - it tried to read as much as possible instead
of just failing and leaving an invalid object behind. The new implementation
will just fail - the object you called Unflatten() from might not contain
useful information after this, though.

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3470 a95241bf-73f2-0310-859d-f6bbb57e9c96

2eb7012d 06-Jun-2003 beveloper <beveloper@nowhere.fake>

added missing header file

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3445 a95241bf-73f2-0310-859d-f6bbb57e9c96

adc3b786 06-Jun-2003 Jérôme Duval <korli@users.berlios.de>

ok the right file this time ...
*Volume* methods implemented; tested with SoundPlayerTest.cpp; only valid when connected with R5 AudioMixer

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3440 a95241bf-73f2-0310-859d-f6bbb57e9c96

37ed595f 06-Jun-2003 Jérôme Duval <korli@users.berlios.de>

*Volume* methods implemented; tested with SoundPlayerTest.cpp; only valid when connected with R5 AudioMixer

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3439 a95241bf-73f2-0310-859d-f6bbb57e9c96

908eaf85 05-Jun-2003 beveloper <beveloper@nowhere.fake>

removed ASSERT

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3437 a95241bf-73f2-0310-859d-f6bbb57e9c96

715be7e1 05-Jun-2003 beveloper <beveloper@nowhere.fake>

added symbols required by BeOS R5 emu10k.media_addon

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3434 a95241bf-73f2-0310-859d-f6bbb57e9c96

af995aed 03-Jun-2003 beveloper <beveloper@nowhere.fake>

added symbol Connected__15BBufferConsumerRC12media_sourceRC17media_destinationRC12media_formatP11media_input

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3417 a95241bf-73f2-0310-859d-f6bbb57e9c96

a0703a47 03-Jun-2003 beveloper <beveloper@nowhere.fake>

fixed BSoundPlayer::Stop() bugs exposed by CL-Amp

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3413 a95241bf-73f2-0310-859d-f6bbb57e9c96

cc2b5950 03-Jun-2003 beveloper <beveloper@nowhere.fake>

fixed format negotiation

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3411 a95241bf-73f2-0310-859d-f6bbb57e9c96

a8c2408c 03-Jun-2003 beveloper <beveloper@nowhere.fake>

fixed format setup, CL-Amp works now

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3410 a95241bf-73f2-0310-859d-f6bbb57e9c96

69983609 03-Jun-2003 beveloper <beveloper@nowhere.fake>

fixed format negotiation and added some more debug output

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3409 a95241bf-73f2-0310-859d-f6bbb57e9c96

11b92ae7 02-Jun-2003 beveloper <beveloper@nowhere.fake>

next event calculation properly based on frames played in performace time now

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3401 a95241bf-73f2-0310-859d-f6bbb57e9c96

f180ef79 02-Jun-2003 beveloper <beveloper@nowhere.fake>

Fixed crash in Cortex caused by BMediaRoster::MakeTimeSourceFor()
returning NULL when asked for the system time source.

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3400 a95241bf-73f2-0310-859d-f6bbb57e9c96

2de73166 02-Jun-2003 beveloper <beveloper@nowhere.fake>

fixed crash inside string_for_format()

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3399 a95241bf-73f2-0310-859d-f6bbb57e9c96

4295907b 01-Jun-2003 beveloper <beveloper@nowhere.fake>

fixed (hopefully) all latency bugs
fixed BMediaRoster::MakeTimeSourceFor()

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3397 a95241bf-73f2-0310-859d-f6bbb57e9c96

5917dd5b 01-Jun-2003 beveloper <beveloper@nowhere.fake>

various timing related bugfixes

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3395 a95241bf-73f2-0310-859d-f6bbb57e9c96

2bff4d99 30-May-2003 beveloper <beveloper@nowhere.fake>

start node at correct performance time

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3391 a95241bf-73f2-0310-859d-f6bbb57e9c96

1ab3e018 30-May-2003 beveloper <beveloper@nowhere.fake>

bugfixes and debug information

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3390 a95241bf-73f2-0310-859d-f6bbb57e9c96

d9d219a1 29-May-2003 François Revol <revol@free.fr>

forgot some strings in string_for_format()

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3388 a95241bf-73f2-0310-859d-f6bbb57e9c96

9126f16d 29-May-2003 François Revol <revol@free.fr>

string_for_format implemented.

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3387 a95241bf-73f2-0310-859d-f6bbb57e9c96

9bedd42c 29-May-2003 beveloper <beveloper@nowhere.fake>

many fixes to improve timing

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3386 a95241bf-73f2-0310-859d-f6bbb57e9c96

83943286 26-May-2003 beveloper <beveloper@nowhere.fake>

lots of boring comparisons

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3341 a95241bf-73f2-0310-859d-f6bbb57e9c96

21871f38 25-May-2003 beveloper <beveloper@nowhere.fake>

various bugfixes

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3339 a95241bf-73f2-0310-859d-f6bbb57e9c96

a4289a95 25-May-2003 beveloper <beveloper@nowhere.fake>

fixed initialization, added debug macros

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3338 a95241bf-73f2-0310-859d-f6bbb57e9c96

5b4256ce 25-May-2003 beveloper <beveloper@nowhere.fake>

removed debugging code

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3337 a95241bf-73f2-0310-859d-f6bbb57e9c96

4f09fa2f 25-May-2003 beveloper <beveloper@nowhere.fake>

various small bugfixes

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3321 a95241bf-73f2-0310-859d-f6bbb57e9c96

359ac306 25-May-2003 beveloper <beveloper@nowhere.fake>

Added automatic loading of physical input and output nodes.

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3320 a95241bf-73f2-0310-859d-f6bbb57e9c96

d8d1ef21 23-May-2003 beveloper <beveloper@nowhere.fake>

Fixed crash, a pointer was deleted twice. Small cleanup, too.

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3302 a95241bf-73f2-0310-859d-f6bbb57e9c96

97bd1021 23-May-2003 beveloper <beveloper@nowhere.fake>

removed some of the debug messages

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3299 a95241bf-73f2-0310-859d-f6bbb57e9c96

18eed373 23-May-2003 beveloper <beveloper@nowhere.fake>

removed some of the debug messages

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3298 a95241bf-73f2-0310-859d-f6bbb57e9c96

f6ae8210 23-May-2003 beveloper <beveloper@nowhere.fake>

Fixed deadlock, the cookie is incremented by the node, not by the media kit.

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3296 a95241bf-73f2-0310-859d-f6bbb57e9c96

95531d1e 11-May-2003 Jérôme Duval <korli@users.berlios.de>

Working SoundPlayer and SoundPlayerNode, it lacks volume methods

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3210 a95241bf-73f2-0310-859d-f6bbb57e9c96

1ed6c908 06-May-2003 beveloper <beveloper@nowhere.fake>

quick & dirty workaround

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3181 a95241bf-73f2-0310-859d-f6bbb57e9c96

255a01c7 14-Apr-2003 beveloper <beveloper@nowhere.fake>

Added a new license to this file, as I'm the author.

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3068 a95241bf-73f2-0310-859d-f6bbb57e9c96

3d362ac4 23-Mar-2003 beveloper <beveloper@nowhere.fake>

added debugging information

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3033 a95241bf-73f2-0310-859d-f6bbb57e9c96

84f89351 23-Mar-2003 beveloper <beveloper@nowhere.fake>

fixed one bug

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3032 a95241bf-73f2-0310-859d-f6bbb57e9c96

28ad138a 23-Mar-2003 beveloper <beveloper@nowhere.fake>

Implemented BMediaRoster::GetParameterWebFor().
Unfortunately, BParameterWeb flattening seems to be broken.

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3013 a95241bf-73f2-0310-859d-f6bbb57e9c96

60f15390 22-Mar-2003 beveloper <beveloper@nowhere.fake>

a couple of fixes regarding latency calculation

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2996 a95241bf-73f2-0310-859d-f6bbb57e9c96

5c080a95 22-Mar-2003 beveloper <beveloper@nowhere.fake>

system time source is always running.

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2995 a95241bf-73f2-0310-859d-f6bbb57e9c96

373a2a57 22-Mar-2003 beveloper <beveloper@nowhere.fake>

Fix crashing bug on BBufferGroup deletion.

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2994 a95241bf-73f2-0310-859d-f6bbb57e9c96

8239aad9 22-Mar-2003 beveloper <beveloper@nowhere.fake>

Avoid crashing by returning a valid BView pointer

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2993 a95241bf-73f2-0310-859d-f6bbb57e9c96

626824ea 21-Mar-2003 beveloper <beveloper@nowhere.fake>

Added reference counting of media add-on instances.
You can't create more node instances than "possible_count".

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2990 a95241bf-73f2-0310-859d-f6bbb57e9c96

73794717 17-Mar-2003 beveloper <beveloper@nowhere.fake>

OBEY possible_count

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2940 a95241bf-73f2-0310-859d-f6bbb57e9c96

54187cc6 15-Mar-2003 beveloper <beveloper@nowhere.fake>

Global nodes can mow be released by the teams which created them.

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2923 a95241bf-73f2-0310-859d-f6bbb57e9c96

86bce45b 14-Mar-2003 beveloper <beveloper@nowhere.fake>

Removed time sourced from reference counting.
Releasing nodes works now, except if they have been instanciated globally.

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2920 a95241bf-73f2-0310-859d-f6bbb57e9c96

cf4e2277 14-Mar-2003 beveloper <beveloper@nowhere.fake>

fixing BMediaRoster::ReleaseNode()

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2915 a95241bf-73f2-0310-859d-f6bbb57e9c96

d2ecd5a9 14-Mar-2003 beveloper <beveloper@nowhere.fake>

code style cleanup

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2914 a95241bf-73f2-0310-859d-f6bbb57e9c96

8b04ffc1 14-Mar-2003 beveloper <beveloper@nowhere.fake>

Reorganized BMediaRoster support functions.
Improved dormant node support.

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2910 a95241bf-73f2-0310-859d-f6bbb57e9c96

742580b4 14-Mar-2003 beveloper <beveloper@nowhere.fake>

Improved error handling and timeouts.

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2909 a95241bf-73f2-0310-859d-f6bbb57e9c96

40f36b03 11-Mar-2003 beveloper <beveloper@nowhere.fake>

some cleanup

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2895 a95241bf-73f2-0310-859d-f6bbb57e9c96

7fd43270 19-Jan-2003 beveloper <beveloper@nowhere.fake>

Updated time source code to allow automatic starting and stopping of time sources.
Sending run mode changes and broadcasting of time changes is also implemented.
For one reason or another, all this doesn't work right now.

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2520 a95241bf-73f2-0310-859d-f6bbb57e9c96

d6379053 09-Jan-2003 beveloper <beveloper@nowhere.fake>

Made time sources mode BeOS R5 conforming.

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2395 a95241bf-73f2-0310-859d-f6bbb57e9c96

0e21b167 06-Jan-2003 beveloper <beveloper@nowhere.fake>

time sources now publish and retrieve timing information

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2372 a95241bf-73f2-0310-859d-f6bbb57e9c96

aac800c2 06-Jan-2003 beveloper <beveloper@nowhere.fake>

added SetTimeSourceFor

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2371 a95241bf-73f2-0310-859d-f6bbb57e9c96

835140c8 05-Jan-2003 beveloper <beveloper@nowhere.fake>

better time source support

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2356 a95241bf-73f2-0310-859d-f6bbb57e9c96

a30d6966 02-Jan-2003 beveloper <beveloper@nowhere.fake>

use another number

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2354 a95241bf-73f2-0310-859d-f6bbb57e9c96

287f7492 02-Jan-2003 beveloper <beveloper@nowhere.fake>

more time source function...

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2353 a95241bf-73f2-0310-859d-f6bbb57e9c96

5aab162d 10-Dec-2002 beveloper <beveloper@nowhere.fake>

removed compiler warnings

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2223 a95241bf-73f2-0310-859d-f6bbb57e9c96

618b1338 10-Dec-2002 beveloper <beveloper@nowhere.fake>


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2220 a95241bf-73f2-0310-859d-f6bbb57e9c96

76669a29 08-Dec-2002 beveloper <beveloper@nowhere.fake>

changed use of port communication, debugging functions, map, list and stack

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2196 a95241bf-73f2-0310-859d-f6bbb57e9c96

353b9f6b 02-Dec-2002 beveloper <beveloper@nowhere.fake>

changed map and list templates to be more useable, however, they will
be rewritten soon. Changed debugging macros and use of them, too.
Also replaced the linked lists in the BufferManager (which were complicated,
but working ok) with template based ones.

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2133 a95241bf-73f2-0310-859d-f6bbb57e9c96

41ba915d 23-Nov-2002 beveloper <beveloper@nowhere.fake>

various small changes

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2071 a95241bf-73f2-0310-859d-f6bbb57e9c96

6396865d 19-Nov-2002 beveloper <beveloper@nowhere.fake>

added automatic media_addon_server launching and termination.
added detection of and cleanup after application crashes.
if the media_addon_server crashes, it will be restarted.
removed preleminary volume control functions.
removed unneeded media_server functions.
changed application registration to use port based messaging.

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2027 a95241bf-73f2-0310-859d-f6bbb57e9c96

dfb2ad61 03-Nov-2002 beveloper <beveloper@nowhere.fake>

code cleanup

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1833 a95241bf-73f2-0310-859d-f6bbb57e9c96

50051aab 30-Oct-2002 beveloper <beveloper@nowhere.fake>

might work better

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1791 a95241bf-73f2-0310-859d-f6bbb57e9c96

9fc71646 23-Oct-2002 beveloper <beveloper@nowhere.fake>

allow building everything without local(tree external) header files beeing
used for kernel or kit components

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1630 a95241bf-73f2-0310-859d-f6bbb57e9c96

570f7d04 10-Oct-2002 beveloper <beveloper@nowhere.fake>

updated to include the same features/bugs as the screenshot in today's news.

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1479 a95241bf-73f2-0310-859d-f6bbb57e9c96

1299bfb2 08-Oct-2002 beveloper <beveloper@nowhere.fake>

added real media_server node management, removed bugs, added debug output

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1467 a95241bf-73f2-0310-859d-f6bbb57e9c96

d54e84e0 07-Oct-2002 beveloper <beveloper@nowhere.fake>

I don't know anymore what I did with these files, but they seem to have changed

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1448 a95241bf-73f2-0310-859d-f6bbb57e9c96

85dfab2b 05-Oct-2002 beveloper <beveloper@nowhere.fake>

even more BMediaRoster functions

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1396 a95241bf-73f2-0310-859d-f6bbb57e9c96

9e9417d2 05-Oct-2002 beveloper <beveloper@nowhere.fake>

more BMediaRoster functionality

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1381 a95241bf-73f2-0310-859d-f6bbb57e9c96

a7b41a96 03-Oct-2002 beveloper <beveloper@nowhere.fake>

fixed memory leak

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1364 a95241bf-73f2-0310-859d-f6bbb57e9c96

0caff283 03-Oct-2002 beveloper <beveloper@nowhere.fake>

fixed some bugs, test program works again

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1363 a95241bf-73f2-0310-859d-f6bbb57e9c96

3620737c 03-Oct-2002 beveloper <beveloper@nowhere.fake>

added more BMediaRoster functionality

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1359 a95241bf-73f2-0310-859d-f6bbb57e9c96

5edd2016 02-Oct-2002 beveloper <beveloper@nowhere.fake>

removed some warnings

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1355 a95241bf-73f2-0310-859d-f6bbb57e9c96

63ffaa3e 02-Oct-2002 beveloper <beveloper@nowhere.fake>

some last minute changes...

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1348 a95241bf-73f2-0310-859d-f6bbb57e9c96

8c6a6096 02-Oct-2002 beveloper <beveloper@nowhere.fake>

rewrote BMediaRoster::Connect() and a few related functions

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1347 a95241bf-73f2-0310-859d-f6bbb57e9c96

e66fda40 02-Oct-2002 beveloper <beveloper@nowhere.fake>

finished notification support

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1345 a95241bf-73f2-0310-859d-f6bbb57e9c96

f4925104 01-Oct-2002 beveloper <beveloper@nowhere.fake>

changed media kit internal messaging and notification support

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1338 a95241bf-73f2-0310-859d-f6bbb57e9c96

378dd356 29-Sep-2002 beveloper <beveloper@nowhere.fake>

reverted to 1.1 version.
unfortunately, I thought I had tested 1.2 when I got it about 3 weeks ago,
and included it today without further testing. But it turned out that it
doesn't even compile and needs to be redone.

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1297 a95241bf-73f2-0310-859d-f6bbb57e9c96

c3336238 29-Sep-2002 beveloper <beveloper@nowhere.fake>

initial work done by John Hedditch

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1296 a95241bf-73f2-0310-859d-f6bbb57e9c96

9b232192 28-Sep-2002 shatty <shatty@nowhere.fake>

fixed newline at end of file.

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1251 a95241bf-73f2-0310-859d-f6bbb57e9c96

111ba71e 27-Sep-2002 shatty <shatty@nowhere.fake>

fixed numerous casting errors

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1233 a95241bf-73f2-0310-859d-f6bbb57e9c96

042847af 29-Aug-2002 beveloper <beveloper@nowhere.fake>

some more changes to the notification support. still not finished.

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@938 a95241bf-73f2-0310-859d-f6bbb57e9c96

eae26d3d 22-Aug-2002 beveloper <beveloper@nowhere.fake>

Start adding notification support

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@854 a95241bf-73f2-0310-859d-f6bbb57e9c96

d0aedf22 22-Aug-2002 beveloper <beveloper@nowhere.fake>

This update adds a BeOS R5 compatible B_TIMECODE_DEFAULT.
Submitted by David McPaul.

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@853 a95241bf-73f2-0310-859d-f6bbb57e9c96

6c062d1f 17-Aug-2002 beveloper <beveloper@nowhere.fake>

David McPaul added support for drop frame formats.

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@806 a95241bf-73f2-0310-859d-f6bbb57e9c96

16b7eea4 13-Aug-2002 beveloper <beveloper@nowhere.fake>

Add some experimental media add-on instantiating support, more debugging and bugfixes

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@744 a95241bf-73f2-0310-859d-f6bbb57e9c96

d6b71edf 12-Aug-2002 beveloper <beveloper@nowhere.fake>

Updated to make media_addon_server work with the DormantNodeManager class

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@730 a95241bf-73f2-0310-859d-f6bbb57e9c96

3ba329f7 12-Aug-2002 beveloper <beveloper@nowhere.fake>

Start using a class for management and (perhaps later) caching of dormant media nodes

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@719 a95241bf-73f2-0310-859d-f6bbb57e9c96

867a12bf 12-Aug-2002 beveloper <beveloper@nowhere.fake>

removed this file

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@718 a95241bf-73f2-0310-859d-f6bbb57e9c96

44213a4d 12-Aug-2002 beveloper <beveloper@nowhere.fake>

Changed to use the DormantNodeManager class.

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@717 a95241bf-73f2-0310-859d-f6bbb57e9c96

3055ce2f 09-Aug-2002 beveloper <beveloper@nowhere.fake>

David McPaul started working on this class and made this changes.

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@678 a95241bf-73f2-0310-859d-f6bbb57e9c96

7d3a9826 14-Jul-2002 beveloper <beveloper@nowhere.fake>

I felt I had to do *something*

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@230 a95241bf-73f2-0310-859d-f6bbb57e9c96

b6de9d11 12-Jul-2002 beveloper <beveloper@nowhere.fake>

removed compiler warnings

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@138 a95241bf-73f2-0310-859d-f6bbb57e9c96

48ff964f 12-Jul-2002 beveloper <beveloper@nowhere.fake>

removed warnigs

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@131 a95241bf-73f2-0310-859d-f6bbb57e9c96

e0207628 11-Jul-2002 beveloper <beveloper@nowhere.fake>

finally get libmedia.so building :-)

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@107 a95241bf-73f2-0310-859d-f6bbb57e9c96

0a483e72 11-Jul-2002 Ingo Weinhold <ingo_weinhold@gmx.de>

Fixed includes.

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@86 a95241bf-73f2-0310-859d-f6bbb57e9c96

19f0c92e 11-Jul-2002 Ingo Weinhold <ingo_weinhold@gmx.de>

Added the media kit to the build.

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@85 a95241bf-73f2-0310-859d-f6bbb57e9c96

24509b3b 10-Jul-2002 beveloper <beveloper@nowhere.fake>

Stop these files breaking the build, needs to be fixed later

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@72 a95241bf-73f2-0310-859d-f6bbb57e9c96

52a38012 08-Jul-2002 ejakowatz <ejakowatz@nowhere.fake>

It is accomplished ...

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10 a95241bf-73f2-0310-859d-f6bbb57e9c96