#
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
|
#
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.
|
#
6780c24d |
|
05-Aug-2009 |
Stephan Aßmus <superstippi@gmx.de> |
Encoder: * 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.) BMediaTrack: * 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 effect. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32124 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
|
#
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
|
#
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
|
#
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
|
#
f3d79634 |
|
29-Jul-2009 |
Stephan Aßmus <superstippi@gmx.de> |
Beginnings of Encoder[Plugin] and Writer[Plugin] base classes and add-on management. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31922 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
6780c24d36ada936c1d3a1095d2ed9730ef1e0c7 |
|
05-Aug-2009 |
Stephan Aßmus <superstippi@gmx.de> |
Encoder: * 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.) BMediaTrack: * 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 effect. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32124 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
fa770e4c84d6b6e9721a6072041aba4468e79b98 |
|
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
|
#
6033e52a8318c9f9b1a6945709fe89b0d070471b |
|
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
|
#
7cd2513b824db570e3db1ac0aad919859989e4ed |
|
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
|
#
c98ea335966fbd0b3c886ead859de6c8bd35cfdd |
|
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
|
#
f3d79634e640648deeaeca07bb62d780cd75d91e |
|
29-Jul-2009 |
Stephan Aßmus <superstippi@gmx.de> |
Beginnings of Encoder[Plugin] and Writer[Plugin] base classes and add-on management. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31922 a95241bf-73f2-0310-859d-f6bbb57e9c96
|