#
334b8f3f |
|
03-Aug-2018 |
Barrett17 <b.vitruvio@gmail.com> |
ffmpeg: Remove obsolete code
|
#
f97f2394 |
|
19-Feb-2016 |
Jérôme Duval <jerome.duval@gmail.com> |
ffmpeg: update build with version 3.0. * untested.
|
#
c0c891c5 |
|
23-Dec-2014 |
Adrien Destugues <pulkomandy@gmail.com> |
Move the "raw audio" format to the WAV format family. It doesn't work well in AVI and MPEG.
|
#
5e0e1689 |
|
23-Dec-2014 |
Adrien Destugues <pulkomandy@gmail.com> |
ffmpeg plugin: improve encoding format negociation The ffmpeg encoders are restricted on which raw formats they accept (each with different constraints). When asked to encode something, the ffmpeg encoder now checks the codec capabilities and if the suggested input format does not match, modifies it to something the codec can actually handle. Enable "experimental" codecs, as this is needed for AAC support in ffmpeg 0.10. This allows format negociation to work properly, and as a result we can enable several new audio formats: AAC (for MPEG family only), AC3, and raw audio. Declare MKV as B_ANY_FORMAT_FAMILY since it is designed to be a generic container (so it is possible to put AAC in MKV). Also remove duplicate entries for AC3.
|
#
920be207 |
|
29-Oct-2014 |
Adrien Destugues <pulkomandy@gmail.com> |
Re-enable raw audio ffmpeg output.
|
#
37daf936 |
|
18-Oct-2014 |
Adrien Destugues <pulkomandy@gmail.com> |
Update ffmpeg supported encoders list * Add FLAC, which works * Remove raw audio, ogg and AC3, as they are crashing the current ffmpeg version. Now it's possible to use MediaConvert to convert to FLAC, at least. For other formats we will need to either fix ffmpeg, or write encoders using the respective libraries (musepack, libvorbis, ...) for each format we want to support. Note that there are also some problems at the reading side, so using MediaConvert, the output will be truncated and about 2 seconds of audio will be missing at the end of the file in several cases. When this happens, the input file is not removed from the list. Watch out for this and don't delete the source files until you're very sure the output is correct!
|
#
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
|
#
c0c891c5b774ee75354d1de75e7b12c1ef48d742 |
|
23-Dec-2014 |
Adrien Destugues <pulkomandy@gmail.com> |
Move the "raw audio" format to the WAV format family. It doesn't work well in AVI and MPEG.
|
#
5e0e16894d67e220b4684809b154b85db4229381 |
|
23-Dec-2014 |
Adrien Destugues <pulkomandy@gmail.com> |
ffmpeg plugin: improve encoding format negociation The ffmpeg encoders are restricted on which raw formats they accept (each with different constraints). When asked to encode something, the ffmpeg encoder now checks the codec capabilities and if the suggested input format does not match, modifies it to something the codec can actually handle. Enable "experimental" codecs, as this is needed for AAC support in ffmpeg 0.10. This allows format negociation to work properly, and as a result we can enable several new audio formats: AAC (for MPEG family only), AC3, and raw audio. Declare MKV as B_ANY_FORMAT_FAMILY since it is designed to be a generic container (so it is possible to put AAC in MKV). Also remove duplicate entries for AC3.
|
#
920be2076f84c943fcbcf8bd63960d22b1964c4a |
|
29-Oct-2014 |
Adrien Destugues <pulkomandy@gmail.com> |
Re-enable raw audio ffmpeg output.
|
#
37daf9367a246f1e6086ee9c90cbbceaee869f68 |
|
18-Oct-2014 |
Adrien Destugues <pulkomandy@gmail.com> |
Update ffmpeg supported encoders list * Add FLAC, which works * Remove raw audio, ogg and AC3, as they are crashing the current ffmpeg version. Now it's possible to use MediaConvert to convert to FLAC, at least. For other formats we will need to either fix ffmpeg, or write encoders using the respective libraries (musepack, libvorbis, ...) for each format we want to support. Note that there are also some problems at the reading side, so using MediaConvert, the output will be truncated and about 2 seconds of audio will be missing at the end of the file in several cases. When this happens, the input file is not removed from the list. Watch out for this and don't delete the source files until you're very sure the output is correct!
|
#
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
|