#
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
|
#
a57cf128 |
|
01-Dec-2018 |
Barrett17 <b.vitruvio@gmail.com> |
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.
|
#
cd564566 |
|
24-Nov-2018 |
Barrett17 <b.vitruvio@gmail.com> |
ffmpeg: Update class names
|
#
17c276df |
|
23-Sep-2018 |
Augustin Cavalier <waddlesplash@gmail.com> |
add-ons/media/ffmpeg: Remove global initializer system. All of the functions it calls are deprecated and no longer needed, as FFmpeg loads all codecs automatically now, and uses pthreads internally for locking as needed.
|
#
334b8f3f |
|
03-Aug-2018 |
Barrett17 <b.vitruvio@gmail.com> |
ffmpeg: Remove obsolete code
|
#
0b6c89fb |
|
22-Jul-2017 |
Jérôme Duval <jerome.duval@gmail.com> |
ffmpeg: implement deinterlace feature for ffmpeg 3.x. * Use the yadif filter. * Fixes #12731.
|
#
f798491a |
|
03-Dec-2015 |
Dario Casalinuovo <b.vitruvio@gmail.com> |
FFmpegPlugin: Remove forgot variable
|
#
c3b461d8 |
|
03-Dec-2015 |
Dario Casalinuovo <b.vitruvio@gmail.com> |
AVCodecEncoder should not know the format
|
#
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.
|
#
9e5c6946 |
|
30-Aug-2015 |
Adrien Destugues <pulkomandy@gmail.com> |
ffmpeg plugin: remove more deprecated functions. These were all deprecated between releases 0.6 and 0.10 of ffmpeg, except for one change (renaming of CodecID to AVCodecID) which we can work around with a typedef. The deprecated functions were still available in 0.11, but were removed later on after several years of deprecation. This makes it possible to build our plugin with any ffmpeg version between 0.10 and 2.7, so we can now experiment with updating to 2.7 at least for the gcc4 builds.
|
#
c1e73fbf |
|
22-Sep-2010 |
Stephan Aßmus <superstippi@gmx.de> |
Enabled any and all decoders and demuxers which are currently compiled into FFmpeg. It's a bit sad, but this obsoletes pretty much all other decoder and reader plugins. Some of them were built on external libraries as well (AC3 (not part of default image anyway, since it's GPL), APE, MusePack), so it's not really a big difference to using FFmpeg as external library. The format matching is greatly simplified by using B_MISC_FORMAT_FAMILY for everything but raw audio, and the actual FFmpeg CodecID as codec tag. The downside of this is that the AVFormatReader can no longer be used with other decoder plugins, but it would be easy to add special cases for native decoders we wish to support. Obviously the out of the box support for file formats and decoders has greatly increased with this change, so there has to be a pretty good reason now for writing a "native" decoder or reader. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38786 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
885513f0 |
|
29-Sep-2009 |
Stephan Aßmus <superstippi@gmx.de> |
Apparantly, FFmpeg has lock management now, and from the tracing, it is indeed used. Spotted this on the libav*-user mailing list. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33346 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
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
|
#
313fedac |
|
31-Jul-2009 |
Stephan Aßmus <superstippi@gmx.de> |
* Let the Encoders use the media_codec_info.sub_id field for their own purposes. * Implemented some of AVCodecEncoder. Maybe video encoding already works, but we don't know until the AVFormatWriter is more than just stubs... but I doubt it. :-) git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32016 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
|
#
0876f8d0 |
|
30-Jul-2009 |
Stephan Aßmus <superstippi@gmx.de> |
Stubbed out implementation of an Encoder and EncoderPlugin. This will probably need to work differently, such that supported media_formats come into play, I will know soon when I implement some of the stuff from MediaFormats.h. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31994 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
6ac391b3 |
|
29-Jul-2009 |
Stephan Aßmus <superstippi@gmx.de> |
Stubbed out Writer and WriterPlugin implementation. So far, Clockwerk shows "AVI (Audio Video Interleave)" in the available output formats popup... :-) git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31956 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
a244fc3a |
|
02-Jul-2009 |
Stephan Aßmus <superstippi@gmx.de> |
* It actually helps a lot to turn on all the demuxers if you want to use any. * The URLProtocol idea seems not to work out, so I removed that code, but the other idea of setting up a ByteIOContext actually works, once I seek back to the beginning of the stream after reading the initial probe buffer, we may also offset the buffer pointer in the ByteIOContext to where we have already read, but I am not sure of possible side effects of that. We can now probe for the correct demuxer and detect streams. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31379 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
b4ef5741 |
|
02-Jul-2009 |
Stephan Aßmus <superstippi@gmx.de> |
Work in Progress of trying to get libavformat to detect anything... unsuccessful so far. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31369 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
668ed70b |
|
01-Jul-2009 |
Stephan Aßmus <superstippi@gmx.de> |
* Use a static global object to initialize libavformat and libavcodec. * Turn off tracing in the AVCodecDecoder which I accidentally turned on in a previous commit. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31366 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
27f6fb6c |
|
01-Jul-2009 |
Stephan Aßmus <superstippi@gmx.de> |
* Renamed avcodec folder to ffmpeg. * Cleaned up plugins Jamfile. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31359 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
9e5c694668556b60e49a49e6708bfb550fc6ce1b |
|
30-Aug-2015 |
Adrien Destugues <pulkomandy@gmail.com> |
ffmpeg plugin: remove more deprecated functions. These were all deprecated between releases 0.6 and 0.10 of ffmpeg, except for one change (renaming of CodecID to AVCodecID) which we can work around with a typedef. The deprecated functions were still available in 0.11, but were removed later on after several years of deprecation. This makes it possible to build our plugin with any ffmpeg version between 0.10 and 2.7, so we can now experiment with updating to 2.7 at least for the gcc4 builds.
|
#
c1e73fbf52c01d51df5e4e9e2ac0e4839bc2b0b3 |
|
22-Sep-2010 |
Stephan Aßmus <superstippi@gmx.de> |
Enabled any and all decoders and demuxers which are currently compiled into FFmpeg. It's a bit sad, but this obsoletes pretty much all other decoder and reader plugins. Some of them were built on external libraries as well (AC3 (not part of default image anyway, since it's GPL), APE, MusePack), so it's not really a big difference to using FFmpeg as external library. The format matching is greatly simplified by using B_MISC_FORMAT_FAMILY for everything but raw audio, and the actual FFmpeg CodecID as codec tag. The downside of this is that the AVFormatReader can no longer be used with other decoder plugins, but it would be easy to add special cases for native decoders we wish to support. Obviously the out of the box support for file formats and decoders has greatly increased with this change, so there has to be a pretty good reason now for writing a "native" decoder or reader. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38786 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
885513f0a0d2712181b8f03e0590fabc3f0b4247 |
|
29-Sep-2009 |
Stephan Aßmus <superstippi@gmx.de> |
Apparantly, FFmpeg has lock management now, and from the tracing, it is indeed used. Spotted this on the libav*-user mailing list. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33346 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
|
#
313fedacc1eb748844a7434f6c3d900fdba5b919 |
|
31-Jul-2009 |
Stephan Aßmus <superstippi@gmx.de> |
* Let the Encoders use the media_codec_info.sub_id field for their own purposes. * Implemented some of AVCodecEncoder. Maybe video encoding already works, but we don't know until the AVFormatWriter is more than just stubs... but I doubt it. :-) git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32016 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
|
#
0876f8d08e7d0011c4f130bf121ba0de9e94b6e9 |
|
30-Jul-2009 |
Stephan Aßmus <superstippi@gmx.de> |
Stubbed out implementation of an Encoder and EncoderPlugin. This will probably need to work differently, such that supported media_formats come into play, I will know soon when I implement some of the stuff from MediaFormats.h. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31994 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
6ac391b3eaaeb2cd188ad7e47b3b9f74299857cc |
|
29-Jul-2009 |
Stephan Aßmus <superstippi@gmx.de> |
Stubbed out Writer and WriterPlugin implementation. So far, Clockwerk shows "AVI (Audio Video Interleave)" in the available output formats popup... :-) git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31956 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
a244fc3ac7ccad9577d8ab9c364698fc03458eaa |
|
02-Jul-2009 |
Stephan Aßmus <superstippi@gmx.de> |
* It actually helps a lot to turn on all the demuxers if you want to use any. * The URLProtocol idea seems not to work out, so I removed that code, but the other idea of setting up a ByteIOContext actually works, once I seek back to the beginning of the stream after reading the initial probe buffer, we may also offset the buffer pointer in the ByteIOContext to where we have already read, but I am not sure of possible side effects of that. We can now probe for the correct demuxer and detect streams. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31379 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
b4ef57412c8544a8d487a8b0d97b953d1cd45d71 |
|
02-Jul-2009 |
Stephan Aßmus <superstippi@gmx.de> |
Work in Progress of trying to get libavformat to detect anything... unsuccessful so far. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31369 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
668ed70bd09305b90b04bfbaee6db847ca5c3d8f |
|
01-Jul-2009 |
Stephan Aßmus <superstippi@gmx.de> |
* Use a static global object to initialize libavformat and libavcodec. * Turn off tracing in the AVCodecDecoder which I accidentally turned on in a previous commit. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31366 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
27f6fb6ce7c1050d845a500e26018ff97c5d573e |
|
01-Jul-2009 |
Stephan Aßmus <superstippi@gmx.de> |
* Renamed avcodec folder to ffmpeg. * Cleaned up plugins Jamfile. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31359 a95241bf-73f2-0310-859d-f6bbb57e9c96
|