History log of /haiku/headers/os/media/MediaDefs.h
Revision Date Author Comments
# 64e742de 07-Sep-2021 Augustin Cavalier <waddlesplash@gmail.com>

media: Declare wildcard fields const.

This is a source compatibility break from BeOS, but should not
be an ABI one (I checked, the symbols are identical.)

Also use "= {}" in the definitions of the fields. We use this
in plenty of places in the kernel, so it should be OK for GCC2.

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


# 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


# 841d719f 02-Dec-2017 Augustin Cavalier <waddlesplash@gmail.com>

MediaDefs: May be included as C not C++, so accommodate for that.


# 2b1481f0 01-Dec-2017 Augustin Cavalier <waddlesplash@gmail.com>

Fix a few more miscellaneous (harmless) Clang warnings.


# 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


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


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

BMediaRoster: Add B_MEDIA_SERVER_STARTED and B_MEDIA_SERVER_QUIT

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


# 22ea661b 01-Aug-2014 Colin Günther <coling@gmx.de>

MediaKit: Extend media_[audio|video]_header structures.

- This allows a BMediaDecoder (e.g. FFMPEG Plugin) to communicate back format
changes to its clients.
For a more thorough explanation and discussion see haiku-development mailing
list: http://www.freelists.org/post/haiku-development/Request-for-protest-Media-Kit-Extend-media-header-struct

- Backwards compatibility is taken into account and preserved by reducing the
relevant _reserved[] fields.

- Code changes that will actually make use of these extensions are due for the
following commits. As these structure extensions affect several Haiku
components (e.g. media_server, MediaPlayer, etc.) and third party apps (e.g.
StampTV, etc.) I refrain from committing them in one batch with this commit.
This should make it easier to track down bugs originating in this code
change.
(cherry picked from commit 806b6888d2dcf84b4934f8f137a48d3381864d1c)


# 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
argument.
* 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


# d4d27fac 27-Aug-2009 Stephan Aßmus <superstippi@gmx.de>

* Rewrote MediaDefs.h and MediaEncoder.h
* Moved MediaKit errors into Errors.h


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


# 3a7f25d0 16-Jul-2008 François Revol <revol@free.fr>

Add identifier for 64 bit float raw audio format, really just to show we can support it without hacking the API :)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26450 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
definitions).
* Minor cleanup here and there.


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


# 08ebf37b 29-Feb-2004 shatty <shatty@nowhere.fake>

add AudioFrameSize convenience function to media_format


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


# 546c34ca 25-Jan-2004 beveloper <beveloper@nowhere.fake>

removed OGG family and meta format description


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


# bacf4b5e 24-Jan-2004 shatty <shatty@nowhere.fake>

meta_data back to void *.. "Be knows best"


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


# 46e6b9b7 19-Jan-2004 shatty <shatty@nowhere.fake>

change private meta_data field to const void * to agree with SetMetaData and MetaData member functions.


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


# 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


# 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


# 8acd164f8c6bd3a4d36e49648b7deb676b18e2e0 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.


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

BMediaRoster: Add B_MEDIA_SERVER_STARTED and B_MEDIA_SERVER_QUIT

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


# 22ea661b82e5e8921d1f65114fb0d8c07296aedc 01-Aug-2014 Colin Günther <coling@gmx.de>

MediaKit: Extend media_[audio|video]_header structures.

- This allows a BMediaDecoder (e.g. FFMPEG Plugin) to communicate back format
changes to its clients.
For a more thorough explanation and discussion see haiku-development mailing
list: http://www.freelists.org/post/haiku-development/Request-for-protest-Media-Kit-Extend-media-header-struct

- Backwards compatibility is taken into account and preserved by reducing the
relevant _reserved[] fields.

- Code changes that will actually make use of these extensions are due for the
following commits. As these structure extensions affect several Haiku
components (e.g. media_server, MediaPlayer, etc.) and third party apps (e.g.
StampTV, etc.) I refrain from committing them in one batch with this commit.
This should make it easier to track down bugs originating in this code
change.
(cherry picked from commit 806b6888d2dcf84b4934f8f137a48d3381864d1c)


# b289aaf66bbf6e173aa90fa194fc256965f1b34d 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
argument.
* 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


# d4d27fac860d30af1525a7f765e8e57554f4d885 27-Aug-2009 Stephan Aßmus <superstippi@gmx.de>

* Rewrote MediaDefs.h and MediaEncoder.h
* Moved MediaKit errors into Errors.h


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


# 3a7f25d03989c8a2c3577a2b06a1117c5e897206 16-Jul-2008 François Revol <revol@free.fr>

Add identifier for 64 bit float raw audio format, really just to show we can support it without hacking the API :)


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


# f6e4cbb95290a74b33d012600438b84742b0e572 15-Oct-2007 Axel Dörfler <axeld@pinc-software.de>

* Rewrote BeBuild.h which had "a few" consequences (got rid of all those class
definitions).
* Minor cleanup here and there.


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


# 0a00d23f2e1beba1dee0b043ee51d8b24375582e 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


# 08ebf37bc6015f9ce4da19133ba39c98194d68cb 29-Feb-2004 shatty <shatty@nowhere.fake>

add AudioFrameSize convenience function to media_format


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


# 546c34ca7b14f6268e7bf9a105cee598e5b1ce88 25-Jan-2004 beveloper <beveloper@nowhere.fake>

removed OGG family and meta format description


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


# bacf4b5e2025b8d04c933771b8353c21161bdebc 24-Jan-2004 shatty <shatty@nowhere.fake>

meta_data back to void *.. "Be knows best"


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


# 46e6b9b766371f41c8cd9c674174ebd2b4edaabb 19-Jan-2004 shatty <shatty@nowhere.fake>

change private meta_data field to const void * to agree with SetMetaData and MetaData member functions.


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


# 046f31f91f5d4f56b2fed3ff5c5759328d222cf2 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


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


# 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