Commit Graph
100 Commits
Author SHA1 Message Date
Barrett17 83a69e16c5 MediaExtractor and MediaWriter fix constness
* Fixes an ugly hack, where the codec was initialized in the
InitCheck and prevented the method to be const too.
2019-02-21 17:43:11 +01:00
Barrett17 2caa4ec708 codec_kit: Fix build 2019-02-21 17:36:55 +01:00
Barrett17 cb19342b80 dvd_streamer: API Update 2019-02-21 16:39:59 +01:00
Barrett17 486872713c http_streamer: API update 2019-02-21 16:39:58 +01:00
Barrett17 662583b300 MediaStreamer: Extend API to support DVD navigation
* This is a general review of the code and includes a rework
 of the sniffing API.
2019-02-21 16:39:58 +01:00
Barrett17 1efb85decc Add initial DVD support implementation
* This is an initial implementation of the DVD streamer.
It needs various development to actually work, so can be
considered as a begin.
* Navigation is not implemented, this needs some work to
add hooks in the BMediaStreamer to allow mouse tracking.
2019-02-18 23:40:09 +01:00
Barrett17 a92a085d1d BuildFeatures: Add libdvdnav and libdvdcss deps 2019-02-18 23:40:08 +01:00
Barrett17 2e53ae46b4 media_server: Use portable printf codes 2019-02-18 23:40:08 +01:00
Barrett17 8670326a9a http_streamer: Remove shared headers dependency 2019-02-17 14:26:43 +01:00
Barrett17 4b35c87cd7 rtsp_streamer: Remove shared headers dependency 2019-02-17 14:26:19 +01:00
Barrett17 784c192df2 AdapterIO: Don't inclue RWLocker header in public file 2019-02-17 14:22:30 +01:00
Barrett17 0b2683b543 rtsp_streamer: Fix Jamfile 2019-02-17 14:15:59 +01:00
Barrett17 303f574120 MediaPlugin: Use three decimals for plugin version
* That allow to manage minor and major versions.
2019-02-17 14:15:08 +01:00
Barrett17 a06d611775 rtsp_streamer: Update to last codec kit API
* Fix build
2019-02-17 14:10:28 +01:00
Barrett17 7928a43a84 media_server: Use portable printf formatting code 2019-02-17 11:54:10 +01:00
Barrett17 9ef48264f0 rtsp_streamer: Fix copyright 2019-02-17 11:54:10 +01:00
Barrett17 eb6626e962 MetaData: Implement copy constructor 2019-02-17 11:54:10 +01:00
Barrett17 d0064da6a5 MetaData: Introduce missing keys 2019-02-17 11:54:09 +01:00
Barrett17 9ad840d86f MetaData: Correct doxygen brief 2019-02-17 11:54:09 +01:00
Barrett17 e7933432e9 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.
2018-12-28 23:01:02 +01:00
Barrett17 fa911df6e6 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.
2018-12-28 22:55:25 +01:00
Barrett17 49a4b18141 media_server: Clean unused gFormatManager object 2018-12-28 22:24:07 +01:00
Barrett17 f3e317617f Move GetNextEncoder implementations to BCodecRoster 2018-12-28 22:24:07 +01:00
Barrett17 708de94fde MetaData: Add doxygen brief 2018-12-28 22:24:07 +01:00
Barrett17 e0a0f13051 ffmpeg: Use unsigned integers for chapter data 2018-12-27 12:26:45 +01:00
Barrett17 e98351d3bc MetaData: Revert types to uint32 and define framerate as float
* Adds some missing methods signatures.
* integer vs float framerate is a longstanging debate. In theory,
in digital a/v there should not be need for floating point framerates.
This is because unless the software is run on exoteric hardware, there
is not need for it. Unfortunately, some legacy from the past like the
29.7 hz debate (NTSC) still may need to work under floating point framerates.
Even if in pratice it'd be run at 30 hz anyway.
* In theory, to handle all those correctly we should use a rational framerate,
however most code should be rewritten to support that correctly, and
it'd add some excessive complexities.
* All integer types are reverted back to unsigned ones. There's really
no reason to use signed integers there, and more importantly the danger
for integer underflows and the attached security concerns is very big.
2018-12-27 12:26:45 +01:00
Barrett17 ec75b9fc8e MetaData: Add missing keys 2018-12-27 12:26:44 +01:00
Barrett17 30d69e3f5e BMetaData: Add missing stuff to describe a media format
* We will need those for BMediaFormatBuilder.
2018-12-26 12:34:44 +01:00
Barrett17 df580f53de ArchitectureRules: Cleanup deprecated plugins defs 2018-12-25 11:36:01 +01:00
Barrett17 3d26587adf Media plugins are not BeOSCompatible anymore 2018-12-25 11:29:50 +01:00
Barrett17 ba5c9689e1 Remove old deprecated plugins from addons/media/plugins 2018-12-25 11:29:01 +01:00
Barrett17 b6c5bdbd39 MediaFile: Properly use BMediaExtractor::GetMetaData 2018-12-07 18:53:48 +01:00
Barrett17 bc6fcc8aae ape_reader: Remove pedantic instantiate_plugin declaration 2018-12-01 12:43:30 +01:00
Barrett17 b6802a9530 MetaData: Remove support for uint32 keys
* We try to conform to what ffmpeg does, it is
unuseful to support metadata keys formats which
aren't really used anywhere.
* Add TODO with some infos for future improvements.
2018-12-01 12:30:54 +01:00
Barrett17 a57cf128a6 Codec Kit: Introduce declarative macro with version and name
* Namespaces protect symbols, I didn't consider that when adding
the BCodecKit namespace, so, the AddOnManager complained that
instantiate_plugin() was missing. A macro is introduced that allow
plugins to specify it's className, version and name, this ease
the declaration of the plugin symbols, otherwise the function
should have been declared inside the BCodecKit namespace which
we would like to avoid.
* The code is also more future proof, since in future the AddOn manager
can begin to check for plugin versions.
2018-12-01 11:19:12 +01:00
Barrett17 36f94d9e39 Move RawFormats.h to Codec Kit
* This should be probably uniformed with the future
media kit format defs. Not sure why those formats are
separated and used only by the codec kit. Eventually,
if needed can be changed to some name that differentiate
them better than media defs.
2018-11-29 08:06:34 +01:00
Barrett17 b9ca2a8d0b ape_reader: Use BCodecKit namespace 2018-11-28 09:33:24 +01:00
Barrett17 278d03da22 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.
2018-11-27 11:38:05 +01:00
Barrett17 5232a91136 media_plugins: Rework to use the BCodecKit namespace 2018-11-27 11:38:05 +01:00
Barrett17 fe9542fdb5 BCodecRoster: Add useful functionality from MediaFormats 2018-11-27 11:38:05 +01:00
Barrett17 d33bd9ec7b Codec Kit: Introduce BCodecKit namespace 2018-11-27 11:38:04 +01:00
Barrett17 f20ff4faec CodecRoster: Add GetDecoderInfo 2018-11-26 07:41:27 +01:00
Barrett17 9a49da9d4e Fix raw_decoder build 2018-11-25 18:57:15 +01:00
Barrett17 ec45f6adce Codec Kit: Move plugins to new class names 2018-11-25 17:31:11 +01:00
Barrett17 1b96c34179 ChunkProvider/ChunkWriter: Move method to protected
* Remove inline destructor.
2018-11-25 14:07:46 +01:00
Barrett17 915d566198 ape_reader: Update class names 2018-11-25 13:02:03 +01:00
Barrett17 cd56456672 ffmpeg: Update class names 2018-11-25 13:02:03 +01:00
Barrett17 ee09c29148 Media Kit: Update private code 2018-11-25 13:02:02 +01:00
Barrett17 be805d02d7 Codec Kit: Rename classes to BFoo pattern 2018-11-25 13:02:02 +01:00
Barrett17 082e4ae4a7 Codec Kit: Rename files 2018-11-25 13:02:02 +01:00
Barrett17 e0a6d5ceeb MediaClient: Fix -Werror=set-but-unused
* The error wasn't checked.
2018-11-23 23:46:31 +01:00
Barrett17 44fc903a8f Codec Kit: Introduce BCodecRoster
* This class include almost everything you need to
manage codecs and iterate over them.
2018-11-22 17:41:26 +01:00
Barrett17 f5a452910a Codec Kit: Add some TODO for the future
* Little beauty fixes included.
2018-11-22 09:48:04 +01:00
Barrett17 06b088bd62 Streamer: Make constructor private 2018-11-22 09:47:12 +01:00
Barrett17 f40547016d Encoder: Make constructor private 2018-11-22 09:47:12 +01:00
Barrett17 c09a589891 Decoder: Make constructor protected 2018-11-22 09:47:12 +01:00
Barrett17 a741fb49a6 Writer: Make constructor and Init protected 2018-11-22 09:47:12 +01:00
Barrett17 75b5f33c19 Reader: Make constructor protected 2018-11-22 09:47:11 +01:00
Barrett17 af34e7abcc Codec Kit: Beauty fixes 2018-11-22 09:47:11 +01:00
Barrett17 32bcb26dfc Remove inadvently added merge-conflict file
* Sorry about that, I've been splitting the
commits and it did end up here.
2018-11-21 17:35:04 +01:00
Barrett17 b1c8bb2c46 MediaFile/MediaTrack: Use MetaData API internally 2018-11-21 17:24:33 +01:00
Barrett17 854c698a52 ffmpeg: Move AVCodecWriter to BMetaData 2018-11-21 17:23:58 +01:00
Barrett17 608c9d9ae1 Codek Kit: Introduce BMetaData in Writer/MediaWriter
* Remove SetCopyright as well.
2018-11-21 17:22:58 +01:00
Barrett17 9b50ad1db8 MediaFile/MediaTrack: Use metadata to retrieve copyright 2018-11-21 16:57:05 +01:00
Barrett17 c6a23a5827 ffmpeg: Use new BMetaData API 2018-11-21 16:56:41 +01:00
Barrett17 3e8f721b3b Codec Kit: Introduce BMetaData in Reader/Extractor
* Remove superfluous Copyright method.
2018-11-21 16:55:02 +01:00
Barrett17 9bbd53a288 BMetaData: Add missing functionality
* Add more metadata keys needed to support ffmpeg.
* Implement methods allowing to embed BMetaData into
BMetaData.
* Add methods to handle more types.
2018-11-21 16:51:19 +01:00
Barrett17 f722040584 BMetaData: Finalize implementation
* Use string keys. I am still convinced we need BValue.
* Use boolean instead of status_t in return, this is
much more handy in pratical use given that there's no
really a status to check.
2018-11-21 12:46:54 +01:00
Barrett17 1f2ddf2fd0 Codec Kit: Initial BMetaData implementation 2018-11-18 16:57:12 +01:00
Barrett17 b4d8bbd540 Codec Kit: Move Managers to private headers
* Those classes are not ready for public consumption. Ideally,
I'd add a well designed BCodecRoster wrapping them. This is part
of the general cleanup I am doing to get the code in a good state
before going to finalize the design.
* I don't plan to reintroduce BMediaFile in the media2 API, and
I'd like to remove any (explicit) usage of entry_refs and things
like that.
* I plan to introduce BMetaData and BMediaFormat which is going
to be different than what we do now.
* We need to explicitly use the mime type when it's available and
it is another design consideration when CodecRoster will be introduced.
2018-11-18 13:15:35 +01:00
Barrett17 3fe994ba28 MediaExtractor: Move stream_info to private 2018-11-18 12:53:14 +01:00
Barrett17 121db87f5f Revert "codec_kit: Remove Perform"
This reverts commit a9ccd74af7.
2018-11-18 12:06:14 +01:00
Barrett17 a9ccd74af7 codec_kit: Remove Perform
* Undocumented and apparently unuseful pattern.
2018-11-17 18:42:50 +01:00
Barrett17 9d90a8381d StreamerPlugin: Add ctor 2018-11-17 18:39:39 +01:00
Barrett17 7257735529 codec_kit: Some more style and cosmetic fixes 2018-10-29 10:15:26 +01:00
Barrett17 5e4fd31ed7 codec_kit: Style fixes
* Remove superfluous newlines at EOF.
* Add newlines in file's head.
2018-10-28 16:26:27 +01:00
Barrett17 8ccd9c0741 codec_kit: Add some padding 2018-10-28 16:14:25 +01:00
Barrett17 4269364345 codec_kit: Cosmetic changes
* Move padding at the bottom.
* Add some missing newline.
* Remove superfluous private statements.
2018-10-28 15:48:48 +01:00
Barrett17 59125d3ced MediaWriter: Private stuff should stay private 2018-10-28 15:31:11 +01:00
Barrett17 e5e2a570ba ReaderPlugin: Private stuff should stay private
* Polishment since we are making this ABI public,
I'd rather remove any previous hack.
2018-10-28 15:25:12 +01:00
Barrett17 de42fb602e Welcome Codec Kit!
* Fix MediaDebug header.
* Add codec lib name mapping.
2018-10-24 16:12:10 +02:00
Barrett17 8f99629d87 http_streamer: Use MediaDebug.h 2018-10-24 16:12:05 +02:00
Barrett17 7a28e2cbb5 ape_reader: Link to the codec_kit 2018-10-24 16:12:05 +02:00
Barrett17 f9fc949439 MediaTest: Use MediaDebug.h 2018-10-24 16:12:05 +02:00
Barrett17 4419ea5bc6 echo: Use private audio headers 2018-10-24 16:12:04 +02:00
Barrett17 ac52fcf75e ffmpeg: Use the codec_kit 2018-10-24 16:12:04 +02:00
Barrett17 50cb5283a0 media/codec: Share media_format defs until libmedia2.so 2018-10-24 16:12:04 +02:00
Barrett17 df2639bf60 Move adapter_kit API to libcodec.so 2018-10-24 16:12:04 +02:00
Barrett17 1275248a77 codec_kit: First half
* Move all codec stuff into libcodec.so
2018-10-24 16:12:03 +02:00
Barrett17 81508f30d0 hmulti_audio.media_addon: Use private audio headers 2018-10-24 10:44:20 +02:00
Barrett17 8f3a684551 media_server: Fix debug header 2018-10-23 17:00:13 +02:00
Barrett17 62081a2cca audio: Move hmulti_audio driver API to private audio headers
* Fix all drivers to don't access private media headers.
2018-10-23 16:33:19 +02:00
Barrett17 c13b6a683d audio: Move private opensound API to audio private headers 2018-10-23 16:27:29 +02:00
Barrett17 488f2717d9 Remove module_audio_driver from buildsystem 2018-10-23 16:25:10 +02:00
Barrett17 c6be458e6d media: Remove audio_module_driver
* I have not idea what this is for. Seems stuff from a long time ago
when for some reason someone wanted an audio driver implemented in
a kernel module. It is not used anywhere. If someone feels this should
be reverted please let me know and add an explanation.
2018-10-23 16:13:51 +02:00
Barrett17 66741d3615 media: Remove BeOSR3MediaDefs.h
* Fix for cmedia driver included.
2018-10-23 16:08:06 +02:00
Barrett17 804f91e634 media: Remove legacy multi_audio.h 2018-10-23 15:50:27 +02:00
Barrett17 b84955d416 media: Remove debug.h, finalize MediaDebug.h
* Funny rust from 0 AD.
2018-10-23 15:19:14 +02:00
Barrett17 a668e42088 media: Remove OldSoundDriver.h 2018-10-23 13:57:52 +02:00
Barrett17 b359301f32 media_add-ons: Remove legacy media_add-on
* This media_add-on was provided to support the old
BeOS audio API (R3?), it is not working and will probably
not work on anything enough modern to run Haiku.
2018-10-23 13:57:52 +02:00