#
6e544b05 |
|
20-Oct-2010 |
Stephan Aßmus <superstippi@gmx.de> |
Enable the MJPEG encoder. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39034 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
eca9668a |
|
15-Oct-2010 |
Stephan Aßmus <superstippi@gmx.de> |
Enable DV format (muxer) and DV encoder. It works, but only for certain video sizes (720x576 for example) and with 48 kHz raw audio. Clockwerk actually uses a mechanism which worked on BeOS to check if an encoder would accept a certain media_format, but this does not yet work on Haiku and thus the format is available even when trying to render later will fail. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38978 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
73e5249c |
|
13-Sep-2010 |
Stephan Aßmus <superstippi@gmx.de> |
* Enabled libvorbis and libtheora encoders in FFmpeg * Enabled ogg muxer in MuxerTable. ogg/vorbis creation successfully tested with MediaConverter. ogg/theora needs more testing, it seems to work, but I need to switch from the other vorbis/theora/ogg plugins to the FFmpeg built-in support, otherwise the current theora stream is not supported by the old plugin. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38641 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
eb01f516 |
|
30-Aug-2010 |
Stephan Aßmus <superstippi@gmx.de> |
The CodecID for raw-audio actually depends on the sample format and can't be hard-coded in the EncoderTable. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38464 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
|
#
6e567425 |
|
03-Aug-2009 |
Stephan Aßmus <superstippi@gmx.de> |
Now supports encoded audio. Added Dolby Digital (AC-3) encoding to test this. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32105 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
3ca4a7b1 |
|
03-Aug-2009 |
Stephan Aßmus <superstippi@gmx.de> |
Implemented audio track encoding. There is something wrong with the PTS generation for the packets and how I set the time_base in the AVStream and AVStream->codec structures. This results in the audio streams of the written files to report a much too long duration. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32064 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
|
#
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
|
#
6e544b050e50ca59bfc1e81cc53be841fcb211c2 |
|
20-Oct-2010 |
Stephan Aßmus <superstippi@gmx.de> |
Enable the MJPEG encoder. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39034 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
eca9668a4a8697d5fe91d07caefa4c6b0310ab0d |
|
15-Oct-2010 |
Stephan Aßmus <superstippi@gmx.de> |
Enable DV format (muxer) and DV encoder. It works, but only for certain video sizes (720x576 for example) and with 48 kHz raw audio. Clockwerk actually uses a mechanism which worked on BeOS to check if an encoder would accept a certain media_format, but this does not yet work on Haiku and thus the format is available even when trying to render later will fail. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38978 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
73e5249c797223236908f855d3710709d7fd85fb |
|
13-Sep-2010 |
Stephan Aßmus <superstippi@gmx.de> |
* Enabled libvorbis and libtheora encoders in FFmpeg * Enabled ogg muxer in MuxerTable. ogg/vorbis creation successfully tested with MediaConverter. ogg/theora needs more testing, it seems to work, but I need to switch from the other vorbis/theora/ogg plugins to the FFmpeg built-in support, otherwise the current theora stream is not supported by the old plugin. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38641 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
eb01f516a3b44adfda231e814b65ddb79fe11d64 |
|
30-Aug-2010 |
Stephan Aßmus <superstippi@gmx.de> |
The CodecID for raw-audio actually depends on the sample format and can't be hard-coded in the EncoderTable. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38464 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
|
#
6e567425c6a93bcaa7dc7f6c8afa8a497007d142 |
|
03-Aug-2009 |
Stephan Aßmus <superstippi@gmx.de> |
Now supports encoded audio. Added Dolby Digital (AC-3) encoding to test this. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32105 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
3ca4a7b1beb866ba584816103f66031d22b7c003 |
|
03-Aug-2009 |
Stephan Aßmus <superstippi@gmx.de> |
Implemented audio track encoding. There is something wrong with the PTS generation for the packets and how I set the time_base in the AVStream and AVStream->codec structures. This results in the audio streams of the written files to report a much too long duration. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32064 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
|
#
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
|