Commit Graph
100 Commits
Author SHA1 Message Date
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
Barrett17 42cc463169 ffmpeg: Fix typo and copyright notice 2018-08-05 14:29:16 +02:00
Barrett17 201707aee8 AVCodecEncoder: Skip frames
* Fix garbage put into videos while encoding.
* Testing welcome.
* Various fixes are still waiting to be merged into Haiku.
* Fixes sponsored by the V\OS project.
2018-08-05 13:26:33 +02:00
Barrett17 5e2290b083 AVFormatWriter: Set packet stream index to current 2018-08-05 13:23:45 +02:00
Barrett17 bbe2746941 AVFormatWriter: Fix debug build 2018-08-05 11:53:43 +02:00
Barrett17 e93fce62f2 AVFormatWriter: Correctly set DTS
* Fixes timestamp warning from ffmpeg.
* Fixes #13407 AFAICT. But please test.
2018-08-05 11:50:03 +02:00
Barrett17 a72bbd5bd2 AVFormatWriter: Cleanup GET_CONTEXT_DEFAULTS macro
* av_get_context_default(1,2,3) are deprecated. The functions are supposed
to "reset" a codec context to a clean state so that it can be opened again.
It was used to allow using AVStream.codec as a decoding context
That behaviour is now deprecated, so that's why the function is too.
* hint: The code is probably still doing something bad in that regard.
* Unfortunately the macro removal did end up in the codecparam diff,
but was originally intended to be a commit alone I can't rewrite history
unfortunately, at least an explanation is given here. In any case the
code wasn't used so no functional change, this is mostly educated cleanup.
2018-08-05 11:31:40 +02:00
Barrett17 b5d0ce85f4 AVCodecEncoder/AVFormatReader: Remove kNoPTSValue hack 2018-08-05 11:04:59 +02:00
Barrett17 9467826d31 AVFormatWriter: Remove OPEN_CODEC_CONTEXT hack 2018-08-05 11:04:59 +02:00
Barrett17 03437cd7b8 AVCodecEncoder: Rename fContext to fCodecContext 2018-08-04 12:11:09 +02:00
Barrett17 e302fe32cf AVCodecDecoder: Rename fContext to fCodecContext 2018-08-04 12:11:09 +02:00
Barrett17 ee9d0e0238 AVFormatWriter: Rename fContext to fFormatContext
* Seriously, this naming is bad.
2018-08-04 12:11:09 +02:00
Barrett17 428d87c581 AVFormatWriter: Move codec to codecpar
* Little cleanup included.
2018-08-04 12:11:09 +02:00
Barrett17 6283eeb2ff AVFormatReader: Move codec to codecpar 2018-08-04 12:11:08 +02:00
Barrett17 334b8f3f9c ffmpeg: Remove obsolete code 2018-08-04 12:11:08 +02:00
Barrett17 2d93cf97c7 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
this flag into B_MEDIA_SEEK_BACKWARD and B_MEDIA_SEEK_FORWARD
and never noticed that this broke the flag check.

* Reported by Murai Takashi through gcc8.
2018-07-31 23:41:12 +02:00
Barrett17 80e9e5f3e7 Add new tests to MediaTest 2018-04-06 02:33:26 +02:00
Barrett17 5ba361f8bf ffmpeg: Fix warning about setting stream timebase
Spotted by jackburton, doesn't fix #13407.
2018-04-06 02:33:26 +02:00
Barrett17 2cb3cabcb0 MediaClient: Revert debugging edits
* The -a argument ended up in my git commit inadvently,
sorry about that.
2018-03-03 16:20:34 +01:00
Barrett17 6072c6f1cb MediaConnection: Cleanup after disconnect 2018-03-03 16:15:24 +01:00
Barrett17 65a94fbbaf MediaConnection: Fix Disconnect bug 2018-03-02 04:02:16 +01:00
Barrett17 852b62956b MediaClient: Rename IsRunning to IsStarted 2018-03-02 03:58:54 +01:00
Barrett17 a6ac14c71c MediaClient: Add ClientRegistered callback 2018-03-02 03:34:25 +01:00
Barrett17 1c15261f5a MediaConnection: Add connection name handling 2018-03-02 03:18:26 +01:00
Barrett17 83bcc405f3 MediaClientDefs: Cleanup unneded methods 2018-03-02 00:52:33 +01:00
Barrett17 d717df83d3 MediaClientNode::GetLatency use base version 2018-03-01 22:56:04 +01:00
Barrett17 9391114b8e MediaClientNode: Remove unuseful Disconnect calls
* While those calls were unharmful, better to remove them.
2018-03-01 22:55:03 +01:00
Barrett17 f015d06b84 MediaClient: Remove Preroll and SyncTo 2018-03-01 17:09:24 +01:00
Barrett17 6dc7d85423 MediaConnection: Review format negotiation mechanism 2018-03-01 17:09:24 +01:00
Barrett17 182ec76b44 MediaConnection: Remove format change protocol 2018-03-01 17:09:24 +01:00
Barrett17 7de0fd45cd MediaClient: Add plans for ReadyToRun callback 2018-03-01 17:09:23 +01:00
Barrett17 9ab4c38420 MediaConnection: Add more plans about buffer management 2018-02-27 02:49:50 +01:00
Barrett17 444d8ec0e2 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.
2018-02-27 02:43:38 +01:00
Barrett17 ff56eda570 MediaConnection: Move buffer management on producer side 2018-02-27 01:50:09 +01:00
Barrett17 e74e02ac05 MediaClient: Update docs and add TODOs 2018-02-25 23:44:39 +01:00
Barrett17 9cf18a39cd MediaConnection: BufferSize should be inherited
* While it's trivial for audio to calculate the buffer size,
it isn't the same for video.
2018-02-25 23:44:33 +01:00
Barrett17 78fea9cd2d MediaClient: General cleanup
* We are finally not dependent on media kit definitions.
* Offline mode is not important at this moment.
2018-02-25 23:44:16 +01:00
Barrett17 befa252fbf MediaConnection: Non simple connections should be inherited
* BSimpleMediaConnections are provided for that.
* Make SetOutputEnabled private.
2018-02-24 16:13:34 +01:00
Barrett17 c61ffa962e MediaConnection: Remove latency range interface
* In preparation for the introduction of BMediaGraph.
2018-02-24 15:42:16 +01:00
Barrett17 dc4c49c305 MediaConnection: Introduce Endpoint() method.
* Used to get the other side of a connection when
available.
2018-02-24 15:42:12 +01:00
Barrett17 3b36cb5942 MediaClient: FileInterface is a bad idea, remove TODO 2018-02-24 02:34:38 +01:00
Barrett17 72958d8ba8 MediaClient: Remove SetRunMode 2018-02-24 02:30:40 +01:00
Barrett17 e8bf0f3e72 MediaClient: Reappropriate copyright 2018-02-24 02:23:41 +01:00
Dario Casalinuovo ea5cc6995e ffmpeg: Set frame's format, width and height from current context.
Fixes 12953.
2017-05-29 19:26:33 +02:00
Dario Casalinuovo c0ef5b2b7c MediaFile: Little refactor to use the MediaStreamer class
* This clarify the ownership of the source when using the experimental
API.
* The extractor/writer are simplified and don't have to care about
adapters.
* MediaStreamer is able to provide a generic BAdapterIO that is
suitable also for different uses than the codecs API itself.
2017-05-04 14:08:07 +02:00
Dario Casalinuovo 9198105dbb MediaWriter/MediaExtractor: Remove BUrl constructors 2017-05-04 14:08:07 +02:00
Dario Casalinuovo dfecb37aee Introduce new experimental class MediaStreamer 2017-05-04 14:08:07 +02:00
Dario Casalinuovo 4263f2570d media_client: Fix Jamfiles to build correctly 2017-04-28 02:13:51 +02:00
Dario Casalinuovo dda3a9c309 Move media_client to bin 2017-04-28 02:13:51 +02:00
Dario Casalinuovo 0d25cdf031 Remove play* commands from bin 2017-04-28 02:13:51 +02:00
Dario Casalinuovo a34acb8cb6 Remove play* commands from build
* Add media_client as replacement
2017-04-28 02:13:51 +02:00
Dario Casalinuovo ada4f9788f MediaClient: Add play and test options 2017-04-28 02:13:51 +02:00
Dario Casalinuovo a33c8f4c2a MediaClient: Some more consistency in args order 2017-04-28 02:13:51 +02:00
Dario Casalinuovo 0cc5ecb8ca 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.
2017-04-14 17:28:35 +02:00
Dario Casalinuovo 98f2303da5 PluginManager: Fix memory leak.
* Fixes #13126.
2017-03-10 02:00:36 +01:00
Dario Casalinuovo 5854fc4a7a MediaClient: Add remaining wiring for input/output functionality
* BufferReceived is renamed HandleBuffer.
* Update doc.
* Implement buffer production private methods.
2017-03-10 01:02:15 +01:00
Dario Casalinuovo 3190c83b33 media_addon_server: Don't set the gain at each start
* Fixes the forgotten gain setting issue for startup
sounds.
2017-01-29 00:38:34 +01:00
Dario Casalinuovo 11ed4f9fa1 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.
2017-01-25 19:23:59 +01:00
Dario Casalinuovo a8e8f7ba43 Revert "MultiAudioNode: Fix and polish output locking issues"
This reverts commit 19da5e15c3.
2017-01-20 22:23:55 +01:00
Dario Casalinuovo 19da5e15c3 MultiAudioNode: Fix and polish output locking issues
* For people involved please review, too much confusion seems
to have been done in past.
* The fBufferFreeSem is removed as it didn't make sense. It was
used to detected when the output thread should be stopped, a
boolean flag is used instead.
* Avoid to allocate a BAutolocker at begin of the _OutputThread,
plain Lock/Unlock is used instead.
* The fBufferLock is now locked when a buffer is handled.
2017-01-20 20:52:35 +01:00