History log of /haiku/src/kits/media/MediaWriter.cpp
Revision Date Author Comments
# 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


# b84955d4 23-Oct-2018 Barrett17 <b.vitruvio@gmail.com>

media: Remove debug.h, finalize MediaDebug.h

* Funny rust from 0 AD.


# 9198105d 04-May-2017 Dario Casalinuovo <b.vitruvio@gmail.com>

MediaWriter/MediaExtractor: Remove BUrl constructors


# 0ba82236 24-Jun-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

Streaming: Remove any pointer BUrl argument

* There's no need to pass BUrl by pointer, this is
potentially dangerous and leaky without any advantage,
copying is definitely safer.


# 20ae088f 25-Mar-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

MediaWriter: Add new BUrl functionality


# 332cc6bc 30-Nov-2012 Axel Dörfler <axeld@pinc-software.de>

64 bit fixes for libmedia.so, ActivityMonitor, and Sudoku.

* Alex, I feel your pain :-)


# 69372b55 20-Oct-2010 Stephan Aßmus <superstippi@gmx.de>

* Change the signature of the Writer plugins setup methods such
that they can modify the media_format passed in. For example they
can store information in the user_data section. I don't actually
use this anymore, but it may come in handy again.

AVFormatWriter:
* Adjust the AVCodecContext flags not only for video, but also
for audio streams (as the API example does). This mechanism
may not yet work, since the AVCodecEncoder actually uses a
different AVCodecContext instance.
* Use the encodeInfo->flags and specify the key frame flag
for the AVPacket. This finally makes videos encoded on Haiku
seekable.


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


# e4f3cf20 24-Aug-2010 Stephan Aßmus <superstippi@gmx.de>

* Renamed _plugin_manager to gPluginManager.
* Improved tracing in PluginManager.cpp when loading an add-on.


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


# 99304ab0 05-Aug-2009 Stephan Aßmus <superstippi@gmx.de>

Do not use fWriter functions, when it has not been instantiated properly.


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


# 54897d5c 31-Jul-2009 Stephan Aßmus <superstippi@gmx.de>

* Also pass the media_codec_info to the Writer::AllocateCookie(), since that
info is not part of the media_format otherwise.
* Finished enough in the AVFormatWriter and AVCodecEncoder that we can now
actually create AVIs and MPGs and encode MPEG1, MPEG2 and MPEG4 video.
But no audio as of yet. Also, there is no bit-rate/quality setup, so it seems
libavformat is using the least possible bit-rate/quality.
* Enable some more muxers and encoders in the FFmpeg libs.
* Uses pixel format conversion from libswsscale, need to read the documentation
again, but I think it makes the plugin GPL.
* Fixed includes in libswscale/swscale.h, this is now an unmodified FFmpeg 0.5
header again (AFAICT).


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


# 4384acf6 31-Jul-2009 Stephan Aßmus <superstippi@gmx.de>

* Tweaked the Writer API. Basically, we need an Init() method that takes the
media_file_format as input, so that the Writer knows what kind of file is
needed.
* Also, since information about the stream format is going to be needed at the
Writer level as well, the AllocateCookie() method gets the stream
media_format.
* Fleshed out some aspects of AVFormatWriter, many TODOs are left.


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


# a072a79b 30-Jul-2009 Stephan Aßmus <superstippi@gmx.de>

Removed left-over.


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


# a07b059b 30-Jul-2009 Stephan Aßmus <superstippi@gmx.de>

Implemented first version of MediaWriter, which is the bridge between
BMediaFile/BMediaTrack and Writer plugins.


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


# 332cc6bc3b696473169bb9e43340b69a0a3fc4f1 30-Nov-2012 Axel Dörfler <axeld@pinc-software.de>

64 bit fixes for libmedia.so, ActivityMonitor, and Sudoku.

* Alex, I feel your pain :-)


# 69372b55450310f3f82caebdd5b9f87a4f4edad9 20-Oct-2010 Stephan Aßmus <superstippi@gmx.de>

* Change the signature of the Writer plugins setup methods such
that they can modify the media_format passed in. For example they
can store information in the user_data section. I don't actually
use this anymore, but it may come in handy again.

AVFormatWriter:
* Adjust the AVCodecContext flags not only for video, but also
for audio streams (as the API example does). This mechanism
may not yet work, since the AVCodecEncoder actually uses a
different AVCodecContext instance.
* Use the encodeInfo->flags and specify the key frame flag
for the AVPacket. This finally makes videos encoded on Haiku
seekable.


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


# e4f3cf203ce3aa7bd0422cac0931052261a398b5 24-Aug-2010 Stephan Aßmus <superstippi@gmx.de>

* Renamed _plugin_manager to gPluginManager.
* Improved tracing in PluginManager.cpp when loading an add-on.


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


# 99304ab063d3f8c80d693c9d39e5e5197ab45576 05-Aug-2009 Stephan Aßmus <superstippi@gmx.de>

Do not use fWriter functions, when it has not been instantiated properly.


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


# 54897d5c06df0e0384e0b59b23a1d926762cc078 31-Jul-2009 Stephan Aßmus <superstippi@gmx.de>

* Also pass the media_codec_info to the Writer::AllocateCookie(), since that
info is not part of the media_format otherwise.
* Finished enough in the AVFormatWriter and AVCodecEncoder that we can now
actually create AVIs and MPGs and encode MPEG1, MPEG2 and MPEG4 video.
But no audio as of yet. Also, there is no bit-rate/quality setup, so it seems
libavformat is using the least possible bit-rate/quality.
* Enable some more muxers and encoders in the FFmpeg libs.
* Uses pixel format conversion from libswsscale, need to read the documentation
again, but I think it makes the plugin GPL.
* Fixed includes in libswscale/swscale.h, this is now an unmodified FFmpeg 0.5
header again (AFAICT).


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


# 4384acf6c1a8ab4d4a944354d95ecfcc23e30fc2 31-Jul-2009 Stephan Aßmus <superstippi@gmx.de>

* Tweaked the Writer API. Basically, we need an Init() method that takes the
media_file_format as input, so that the Writer knows what kind of file is
needed.
* Also, since information about the stream format is going to be needed at the
Writer level as well, the AllocateCookie() method gets the stream
media_format.
* Fleshed out some aspects of AVFormatWriter, many TODOs are left.


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


# a072a79b651fc386f4374bd7f0d29a26f80fefcb 30-Jul-2009 Stephan Aßmus <superstippi@gmx.de>

Removed left-over.


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


# a07b059b160f816d70212f36fa174b071f1762a9 30-Jul-2009 Stephan Aßmus <superstippi@gmx.de>

Implemented first version of MediaWriter, which is the bridge between
BMediaFile/BMediaTrack and Writer plugins.


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