History log of /haiku/src/servers/media/BufferManager.h
Revision Date Author Comments
# d17cbc47 28-Mar-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

BufferManager: Remove custom hash key


# 4da0916c 02-May-2010 Jérôme Duval <korli@users.berlios.de>

* style cleanup
* DefaultManager: added a lock around rescan thread start and exit:
this should fix the possible race condition spotted by Ingo.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36588 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:

media_addon_server:
* 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.

_shared_buffer_list:
* 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).

_buffer_id_cache:
* 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.

BBuffer:
* Got rid of the fBufferID member.

Misc.:
* 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


# 201c2842 06-Aug-2009 Axel Dörfler <axeld@pinc-software.de>

* The media server now clones each buffer area only once - before, you could
only add a very limited amount of buffers part of the frame buffer, for
example, as that one is usually a very large area.
* This could prevent all sorts of media buffers to be cloned on certain
conditions (and could also cause a MediaPlayer fallback to bitmap mode for
no apparent reason).


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


# 8399a7c0 06-Aug-2009 Axel Dörfler <axeld@pinc-software.de>

* When a buffer_info is removed, its area is now actually deleted as well. This
already fixes bug #4189, although there is another bug that could cause a
similar effect (working on that next).
* Switched from media_server local TMap to HashMap, although this is probably
equally archaic.
* Also replaced TList with std::set for the team list.


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


# 696b8f43 06-Aug-2009 Axel Dörfler <axeld@pinc-software.de>

* Cleanup, BufferManager now aggregates the buffer map as well as its locker
instead of allocating them separately, no functional change.


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


# ced4130f 10-Dec-2002 beveloper <beveloper@nowhere.fake>

added more debug information


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2218 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


# 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


# 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


# 4da0916c585028906cf298c369cea9ec254c0f11 02-May-2010 Jérôme Duval <korli@users.berlios.de>

* style cleanup
* DefaultManager: added a lock around rescan thread start and exit:
this should fix the possible race condition spotted by Ingo.


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


# 9dec23104287e2fd592cc14148b43fb28a6e1d8e 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:

media_addon_server:
* 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.

_shared_buffer_list:
* 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).

_buffer_id_cache:
* 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.

BBuffer:
* Got rid of the fBufferID member.

Misc.:
* 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


# 201c2842bd4a85d24cd37e4119ba8c3b22b1a1ab 06-Aug-2009 Axel Dörfler <axeld@pinc-software.de>

* The media server now clones each buffer area only once - before, you could
only add a very limited amount of buffers part of the frame buffer, for
example, as that one is usually a very large area.
* This could prevent all sorts of media buffers to be cloned on certain
conditions (and could also cause a MediaPlayer fallback to bitmap mode for
no apparent reason).


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


# 8399a7c04d67d4cece2afdd9807aaa7771d667a4 06-Aug-2009 Axel Dörfler <axeld@pinc-software.de>

* When a buffer_info is removed, its area is now actually deleted as well. This
already fixes bug #4189, although there is another bug that could cause a
similar effect (working on that next).
* Switched from media_server local TMap to HashMap, although this is probably
equally archaic.
* Also replaced TList with std::set for the team list.


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


# 696b8f43fbf3a2d2b70b9b7921a7ff7406fd041f 06-Aug-2009 Axel Dörfler <axeld@pinc-software.de>

* Cleanup, BufferManager now aggregates the buffer map as well as its locker
instead of allocating them separately, no functional change.


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


# ced4130fee46bc0bfb30185c43a8e19c4e9f1d07 10-Dec-2002 beveloper <beveloper@nowhere.fake>

added more debug information


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


# 353b9f6bcedb3fa9950f3f65c960e1deb700f84a 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


# 41ba915d4209230c44208bc7480ea76532b984c9 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


# 1299bfb29f6155daaa6117fec04f9054e0dc24b6 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


# 52a380120846174213ccce9c4aab0dda17c72083 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