History log of /haiku/src/add-ons/media/plugins/ffmpeg/Jamfile
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


# 1e60bdea 30-Mar-2019 Augustin Cavalier <waddlesplash@gmail.com>

Remove all invocations of SetSubDirSupportedPlatformsBeOSCompatible.


# de42fb60 24-Oct-2018 Barrett17 <b.vitruvio@gmail.com>

Welcome Codec Kit!

* Fix MediaDebug header.
* Add codec lib name mapping.


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

ffmpeg: Use the codec_kit


# 1fb7ddbb 23-Sep-2018 Augustin Cavalier <waddlesplash@gmail.com>

add-ons/media/ffmpeg: Use SWS for color-space conversion universally.

It seems to be as if not faster than the built-in method now as far
as I can tell, and this means one less arch-specific difference.
I haven't ripped all of it out yet, though.


# 19ec8972 23-Sep-2018 Augustin Cavalier <waddlesplash@gmail.com>

add-ons/media/ffmpeg: Enable deprecation warnings.

There sure are a lot of them...


# d1c51097 02-Jul-2018 Augustin Cavalier <waddlesplash@gmail.com>

Upgrade FFmpeg to 4.0.1 across the board (including GCC2.)

This was accomplished by adding some pretty nasty hacks to the FFmpeg recipe
so that we can compile it for the GCC2 ABI using GCC7. This works because
GCC's C ABI has not changed between GCC2 and GCC7.

As a consequence of this, pretty much all the longstanding issues of the
ancient-and-still-miscompiled FFmpeg 0.10 are now completely gone.

Fixes #5080, #8461, #12696, #12436, #13981 #13410, #13337.
Closes (possibly fixed earlier) #8605, #8511, #6984.
Probably fixes (couldn't test) #13989, #11974.


# ab75d3b5 24-Dec-2017 Adrien Destugues <pulkomandy@pulkomandy.tk>

Do not advertise libavdevice in ffmpeg build feature.

It is not actually used by our ffmpeg plugin.


# f7d2fd0b 16-Jan-2017 Dario Casalinuovo <b.vitruvio@gmail.com>

MediaPlugins: Make some plugins to use experimental headers.


# 9dd9b454 19-Dec-2015 Adrien Destugues <pulkomandy@gmail.com>

Use swresample to rematrix audio channels, try 2

This code is closer to what we used before for gcc2, and should not
crash there anymore. I could not get exactly the same code to work, but
reduced the difference to a single statement (which makes gcc2 work and
breaks gcc4). This is protected under a guard with appropriate ffmpeg
version test.

This code works for both gcc2 and gcc4 (tested with mp3 and aac files as
well as youtube videos). It still gets the timestamps wrong with ffmpeg
2.4, but I'll try to solve that another time.


# 8a822b7c 17-Dec-2015 Augustin Cavalier <waddlesplash@gmail.com>

Revert "AVCodecDecoder: use swresample to interleave audio channels."

Commit 856cc59e58bb83de4a69daa680748ba9b52592d8 didn't really "fix"
anything; it just broke audio pretty much everywhere but YouTube,
and there videos play at 2x speed so it wasn't really worth it.

Stopgap solution for #12509.


# 856cc59e 18-Nov-2015 Adrien Destugues <pulkomandy@gmail.com>

AVCodecDecoder: use swresample to interleave audio channels.

Some codecs will always output audio in planar mode no matter what we
request. This is the case for example with AAC used for youtube. We now
use swresample to convert from planar to packed format.

Note that since swresample does its own buffering, we could probably do
away with some of the code that handled buffering before, making the
audio pipeline simpler and faster.

Fixes audio in youtube, but now the video plays at 2x speed. It seems
something is wrong with the timestamps. Possible things to investigate:
* why do we use the packet dts instead of the pts from the frames anyway?
* the pts and pkt_dts are in "stream time_base units". We seem to assume
microseconds for audio but this is probably not the case. Or did I
miss where the conversion is done?


# 220d0402 31-Jul-2014 Oliver Tappe <zooey@hirschkaefer.de>

Use libstdc++, libsupc++ and libgcc from gcc_syslibs.

* Instead of faking libstdc++.so from libstdc++.a, use libstdc++.so
from the gcc_syslibs build feature for everything except x86_gcc2.
* Use libgcc_s.so from the gcc_syslibs build feature for everything but
x86_gcc2 (which still carries libgcc as part of libroot.so).
* Drop filtering of libgcc objects for libroot, as that is no longer
necessary since we're only using libgcc-as-single-object for libroot
with x86_gcc2, where the filtered object file doesn't exist. Should
the objects that used to be filtered cause any problems as part of
libgcc_s.so, we can always filter them as part of the gcc build.
* Use libsupc++.so from the gcc_syslibs build feature for everything but
x86_gcc2.
* Adjust all Jamfiles accordingly.
* Deactivate building of faked libstdc++.so for non-x86-gcc2. For
x86_gcc2, we still build libstdc++.so from the sources in the Haiku
source tree as part of the Haiku build .
* Put gcc_syslibs package onto the image, when needed.


# d71e18fe 31-Mar-2014 Adrien Destugues <pulkomandy@pulkomandy.tk>

Build media plugins for the secondary arch.

These are used when an app uses BMediaFile/BMediaTrack, which leads to
the plug-ins being instanciated on the application side.

* Fixes one more part of #10049 (media add-ons are still missing).
* Will probably not solve any real-world issue because of #4893.


# 9e46d51c 05-Dec-2013 Jerome Duval <jerome.duval@gmail.com>

ffmpeg plugin only needs to link against ffmpeg libs.

* clean the ffmpeg build feature.


# 1a37a812 04-Dec-2013 Jerome Duval <jerome.duval@gmail.com>

ffmpeg: fix x86_64 build, remove libbz2

* AVCodecDecoder: for x86_64, use libswscale, asm is only for x86.
* CpuCapabilities: init capabilities to zero, fixes style.
* gfx_util.cpp: protect x86 specific code, fallback to C.
* x86_64: don't include unneeded x86 stuff.
* all arch: libbz2 is a build feature.


# 14d5e307 13-Jun-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Update ffmpeg package and its requirements

Also make use of new build feature rules.


# 7c6bff17 05-May-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Complete outsourcing of zlib

* Add optional packages Zlib and Zlib-devel.
* Simplify the build feature section for zlib and also extract the
source package.
* Replace all remaining references to the zlib instance in the tree and
remove it.


# a6a99fce 30-Oct-2012 Jérôme Duval <jerome.duval@gmail.com>

zlib: added an optional build package, integrated to the build

* optional package for zlib 1.2.7
* keep zlib in build for the bootloader tarfs


# 538a2ec2 13-Mar-2012 Jérôme Duval <jerome.duval@gmail.com>

ffmpeg: added dependency on libvpx.

* added libvpx-1.0.0 optional package.
* updated ffmpeg optional package to depend on libvpx.


# 991c18ad 12-Mar-2012 Jérôme Duval <jerome.duval@gmail.com>

ffmpeg: added libs packages as dependencies.

* updated ffmpeg to enable previously enabled decoders/encoders
based on libogg, libspeex, libtheora, libvorbis.
* removed sources for these libs.


# dc18d9e7 09-Mar-2012 Jerome Duval <jerome.duval@gmail.com>

ffmpeg: fixed headers dependency on libavcodec for gfx_*.cpp.


# e40d995c 06-Mar-2012 Jérôme Duval <jerome.duval@gmail.com>

FFMpeg plugin: now build against the optional package for 0.10

* added optional feature package for ffmpeg 0.10 gcc4 and gcc2
* increased probe buffer size to 8K for now.
* built the optional packages the default way, it might need adjustments
like dependencies on speex, ogg, theora, vorbis, which I left out for now.


# 51d9b4fe 21-Dec-2010 David McPaul <dlmcpaul@gmail.com>

correct yuv422 planar conversion. Seperate sse, sse2 and ssse3 asm code. Add packed convertor

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


# cf85a555 20-Nov-2010 Jérôme Duval <korli@users.berlios.de>

* added some missing bits and removed obsolete files in ffmpeg-0.6
* replaced .. with $(DOTDOT) in Jamfiles
* added __STDC_CONSTANT_MACROS define for C++ files (required for UINT64_C)


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


# b145959b 20-Sep-2010 Stephan Aßmus <superstippi@gmx.de>

* Use the same GCC flags for GCC4 that configure in the FFmpeg source
itself generates.
* For GCC2, FFmpeg uses -fPIC instead of -DPIC. Also disable SSE for
GCC2, since that fixes a crash in the SSE version of clear_block().


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


# 6936b3ba 16-Sep-2010 Stephan Aßmus <superstippi@gmx.de>

Added support for bz2 compressed stuff in Matroska containers.


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


# 5021eb24 13-Sep-2010 Stephan Aßmus <superstippi@gmx.de>

Removed the "native" ogg, vorbis, theora and speex plugins in favor
of support for these codecs and demuxer in the FFmpeg plugin. The
ogg test streams I downloaded play fine now. For example, Big Buck Bunny
would play without video before and ogg files natively encoded with the
FFmpeg plugin wouldn't play at all. Since the removed plugins were not
maintained and were based on external libs themselves, I didn't see the
point in keeping them.


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


# 5e7287f4 07-Sep-2010 Stephan Aßmus <superstippi@gmx.de>

Enable run-time CPU detection. I didn't yet test this
on an older CPU.


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


# 8887a47d 06-Sep-2010 Stephan Aßmus <superstippi@gmx.de>

Upgraded FFmpeg to the release version 0.6 (only some minor compile fixes to the code
with regards to using the wrong #include scope in one file and disabling two
apparently unmaintained asserts when compiling in DEBUG mode). I didn't yet test
the GCC 2 build, but I need to get this into SVN since I am having some annoying
file corruption troubles. In fact I am hoping I am not commiting broken files,
but a few seconds ago everything was still building cleanly. One thing that definitely
improved is the (disabled at the moment) AVI support. Every clip I tested so far
plays, which can't be said about our native AVI reader. With the previous FFmpeg
version (a random SVN revision is my guess), many old AVIs played completely broken.
So far, I have not spotted any regressions


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


# 0b58d844 20-Dec-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

* Prefixed the INCLUDE_GPL_ADDONS variable by "HAIKU_". configure needs to
be run again or generated/build/BuildConfig needs to be adjusted manually.
* Removed bochs debug hack.


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


# 6bfbea62 19-Sep-2009 David McPaul <dlmcpaul@gmail.com>

Added SSE2 yuv to rgb conversion code. This code needs to move into the media kit though

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


# 38d967a3 07-Aug-2009 Stephan Aßmus <superstippi@gmx.de>

Include GPL code in the FFmpeg plugin during compilation, if the Haiku build
system has been configured to include GPL add-ons. This cannot be switched on
the fly without rebuilding all of the FFmpeg plugin, since the change in the
Jamfile defines will not automatically trigger a rebuild. So if you change your
configuration with regards to --include-gpl-addons, you have to touch config.h
(this commit touches it anyway).


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


# 4c3fe04b 10-Jul-2009 Stephan Aßmus <superstippi@gmx.de>

* More cleanup and removal of code duplication in the Jamfiles. Moved
the HAIKU_FFMPEG_DEFINES and friends to the toplevel ffmpeg Jamfile.
* Define the X86 CPU acceleration features in global Jamfile variables,
so that we can build specific source files depending on those defines
later (used for libavcodec_x86.a).
* In config.h, a whole bunch of parsers were defined off, which was the
actual reason why plain old .MPG files and also my .MTS streams with
H.264 video gave only scrambled video.
* Removed some files from the build by comparing which files are build
by a pristine FFmpeg libavcodec Makefile.

Attention: The following changes may break the GCC2 build:
* Remove Haiku specific changes from
- libavcodec/x86/cavsdsp_mmx.c
- libavcodec/x86/dsputil_mmx.c
- libavcodec/x86/h264dsp_mmx.c

I will test this next after switching my GCC. If you are impatiant, the
following changes were previously done to the pristine FFmpeg 0.5 files:

libavcodec/x86/cavsdsp_mmx.c:
* commented out line 426 to 429

libavcodec/x86/h264dsp_mmx.c
* h264_loop_filter_strength_mmx2() was commented out.

libavcodec/x86/dsputil_mmx.c
* gmc_mmx() was commented out.
* commented out line 2665 (assigning c->gmc)
* commented out line 2786 (assigning c->h264_loop_filter_strength)

However, I would now make similar changes by checking the GCC version. Also,
the libavcodec/x86/dsputil_mmx.c:2786 was still assigning the dummy
h264_loop_filter_strength_mmx2() version.



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


# 16d5c24e 07-Jul-2009 Oliver Tappe <zooey@hirschkaefer.de>

* merged 32bit-wchar_t branches of buildtools and haiku back into
the respective trunk

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


# 7965dde0 06-Jul-2009 Stephan Aßmus <superstippi@gmx.de>

Get the AVFormatReader into a usable state. DemuxerTable.cpp controls which
container formats we support. I hope I have turned on only those that don't
have an implementation already (did we support ASF already?). I mostly tested
with AVI and that works reasonably well, but I only tested raw audio so far.
However, the backend for Marcus' avi_reader is much nicer than FFmpeg, so I
think it should stay and have disabled the support for AVI in AVFormatReader.
A big disappointment is that MPG containers only give scrambled video. It may
be a problem of the AVCodecDecoder, but I am not so sure. After all, it works
fine for other container formats. If I am not mistaken, VLC also does not use
the mpeg demuxer from FFmpeg. :-\ On top of that, libavformat detects the
time_base and stream duration wrongly for one of my test MPGs.
As for the implementation: Although seeking in libavformat happens for an
individual stream, in reality, the packets for all other streams need to be
flushed (that's also what happens in the libavformat tutorials I've seen).
Since our MediaKit API allows to seek tracks indivually, this is of course
a no-go, since then all other tracks would be out of sync. My solution is to
simply open the demuxer once for each stream and then completely ignore the
packets of the respective other streams. This also works around the problem
that libavformat is unable to provide packets by stream, requiring the
API user to queue the packets that he needs not now, but later for other
streams. It also means we have to no memory copies, since we can directly
use the packet buffer until the next call to GetNextChunk().


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


# 220d04022750f40f8bac8f01fa551211e28d04f2 31-Jul-2014 Oliver Tappe <zooey@hirschkaefer.de>

Use libstdc++, libsupc++ and libgcc from gcc_syslibs.

* Instead of faking libstdc++.so from libstdc++.a, use libstdc++.so
from the gcc_syslibs build feature for everything except x86_gcc2.
* Use libgcc_s.so from the gcc_syslibs build feature for everything but
x86_gcc2 (which still carries libgcc as part of libroot.so).
* Drop filtering of libgcc objects for libroot, as that is no longer
necessary since we're only using libgcc-as-single-object for libroot
with x86_gcc2, where the filtered object file doesn't exist. Should
the objects that used to be filtered cause any problems as part of
libgcc_s.so, we can always filter them as part of the gcc build.
* Use libsupc++.so from the gcc_syslibs build feature for everything but
x86_gcc2.
* Adjust all Jamfiles accordingly.
* Deactivate building of faked libstdc++.so for non-x86-gcc2. For
x86_gcc2, we still build libstdc++.so from the sources in the Haiku
source tree as part of the Haiku build .
* Put gcc_syslibs package onto the image, when needed.


# d71e18fef493548d46c5ae6213daa023b691ff98 31-Mar-2014 Adrien Destugues <pulkomandy@pulkomandy.tk>

Build media plugins for the secondary arch.

These are used when an app uses BMediaFile/BMediaTrack, which leads to
the plug-ins being instanciated on the application side.

* Fixes one more part of #10049 (media add-ons are still missing).
* Will probably not solve any real-world issue because of #4893.


# 9e46d51cc2623e2ad8e145f9d2cb2ab16d2f7205 05-Dec-2013 Jerome Duval <jerome.duval@gmail.com>

ffmpeg plugin only needs to link against ffmpeg libs.

* clean the ffmpeg build feature.


# 1a37a812a4ba34aa61b1965209a5682941ac11ef 04-Dec-2013 Jerome Duval <jerome.duval@gmail.com>

ffmpeg: fix x86_64 build, remove libbz2

* AVCodecDecoder: for x86_64, use libswscale, asm is only for x86.
* CpuCapabilities: init capabilities to zero, fixes style.
* gfx_util.cpp: protect x86 specific code, fallback to C.
* x86_64: don't include unneeded x86 stuff.
* all arch: libbz2 is a build feature.


# 14d5e307b44211346880ca8255162dbd5dd773ff 13-Jun-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Update ffmpeg package and its requirements

Also make use of new build feature rules.


# 7c6bff17340e2f6697a22f1ce56c18fa009d4d2e 05-May-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Complete outsourcing of zlib

* Add optional packages Zlib and Zlib-devel.
* Simplify the build feature section for zlib and also extract the
source package.
* Replace all remaining references to the zlib instance in the tree and
remove it.


# a6a99fce04641549d5d765199533d8651e890b74 30-Oct-2012 Jérôme Duval <jerome.duval@gmail.com>

zlib: added an optional build package, integrated to the build

* optional package for zlib 1.2.7
* keep zlib in build for the bootloader tarfs


# 538a2ec29caae7d5a0b33548b4bdc6b03929a33e 13-Mar-2012 Jérôme Duval <jerome.duval@gmail.com>

ffmpeg: added dependency on libvpx.

* added libvpx-1.0.0 optional package.
* updated ffmpeg optional package to depend on libvpx.


# 991c18ad368246db55f8327bb8fc82c6537da70c 12-Mar-2012 Jérôme Duval <jerome.duval@gmail.com>

ffmpeg: added libs packages as dependencies.

* updated ffmpeg to enable previously enabled decoders/encoders
based on libogg, libspeex, libtheora, libvorbis.
* removed sources for these libs.


# dc18d9e793e92f9c842af4c12e18daa3c9a4d3bf 09-Mar-2012 Jerome Duval <jerome.duval@gmail.com>

ffmpeg: fixed headers dependency on libavcodec for gfx_*.cpp.


# e40d995cf452857204748974431023cf2e78cec2 06-Mar-2012 Jérôme Duval <jerome.duval@gmail.com>

FFMpeg plugin: now build against the optional package for 0.10

* added optional feature package for ffmpeg 0.10 gcc4 and gcc2
* increased probe buffer size to 8K for now.
* built the optional packages the default way, it might need adjustments
like dependencies on speex, ogg, theora, vorbis, which I left out for now.


# 51d9b4fe14bec902662f90f9ff7dca5df5622527 21-Dec-2010 David McPaul <dlmcpaul@gmail.com>

correct yuv422 planar conversion. Seperate sse, sse2 and ssse3 asm code. Add packed convertor

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


# cf85a555b04bc601508ca5c3ded7cf04466a82e6 20-Nov-2010 Jérôme Duval <korli@users.berlios.de>

* added some missing bits and removed obsolete files in ffmpeg-0.6
* replaced .. with $(DOTDOT) in Jamfiles
* added __STDC_CONSTANT_MACROS define for C++ files (required for UINT64_C)


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


# b145959bddcc9b9ab7cd8acb380531a6f98f3a69 20-Sep-2010 Stephan Aßmus <superstippi@gmx.de>

* Use the same GCC flags for GCC4 that configure in the FFmpeg source
itself generates.
* For GCC2, FFmpeg uses -fPIC instead of -DPIC. Also disable SSE for
GCC2, since that fixes a crash in the SSE version of clear_block().


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


# 6936b3ba4ff61a2b5eab6844a4e1ee537fd026c2 16-Sep-2010 Stephan Aßmus <superstippi@gmx.de>

Added support for bz2 compressed stuff in Matroska containers.


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


# 5021eb2421d20af3419b37cd9f647e01d40a223f 13-Sep-2010 Stephan Aßmus <superstippi@gmx.de>

Removed the "native" ogg, vorbis, theora and speex plugins in favor
of support for these codecs and demuxer in the FFmpeg plugin. The
ogg test streams I downloaded play fine now. For example, Big Buck Bunny
would play without video before and ogg files natively encoded with the
FFmpeg plugin wouldn't play at all. Since the removed plugins were not
maintained and were based on external libs themselves, I didn't see the
point in keeping them.


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


# 5e7287f481ae0b8f8ed442171032ce2785bfb2ce 07-Sep-2010 Stephan Aßmus <superstippi@gmx.de>

Enable run-time CPU detection. I didn't yet test this
on an older CPU.


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


# 8887a47dedf51e9b262fea43bd86ab442daad99e 06-Sep-2010 Stephan Aßmus <superstippi@gmx.de>

Upgraded FFmpeg to the release version 0.6 (only some minor compile fixes to the code
with regards to using the wrong #include scope in one file and disabling two
apparently unmaintained asserts when compiling in DEBUG mode). I didn't yet test
the GCC 2 build, but I need to get this into SVN since I am having some annoying
file corruption troubles. In fact I am hoping I am not commiting broken files,
but a few seconds ago everything was still building cleanly. One thing that definitely
improved is the (disabled at the moment) AVI support. Every clip I tested so far
plays, which can't be said about our native AVI reader. With the previous FFmpeg
version (a random SVN revision is my guess), many old AVIs played completely broken.
So far, I have not spotted any regressions


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


# 0b58d8440cdd5ffb87ff7ec5e8938818a68ec261 20-Dec-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

* Prefixed the INCLUDE_GPL_ADDONS variable by "HAIKU_". configure needs to
be run again or generated/build/BuildConfig needs to be adjusted manually.
* Removed bochs debug hack.


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


# 6bfbea62cd2e70f2ce97101d038c803ea8027393 19-Sep-2009 David McPaul <dlmcpaul@gmail.com>

Added SSE2 yuv to rgb conversion code. This code needs to move into the media kit though

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


# 38d967a3eabfae50a83cfd503ee9cf6dafb220eb 07-Aug-2009 Stephan Aßmus <superstippi@gmx.de>

Include GPL code in the FFmpeg plugin during compilation, if the Haiku build
system has been configured to include GPL add-ons. This cannot be switched on
the fly without rebuilding all of the FFmpeg plugin, since the change in the
Jamfile defines will not automatically trigger a rebuild. So if you change your
configuration with regards to --include-gpl-addons, you have to touch config.h
(this commit touches it anyway).


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


# 4c3fe04bd390f55ec285135cbab66f01ecc6f766 10-Jul-2009 Stephan Aßmus <superstippi@gmx.de>

* More cleanup and removal of code duplication in the Jamfiles. Moved
the HAIKU_FFMPEG_DEFINES and friends to the toplevel ffmpeg Jamfile.
* Define the X86 CPU acceleration features in global Jamfile variables,
so that we can build specific source files depending on those defines
later (used for libavcodec_x86.a).
* In config.h, a whole bunch of parsers were defined off, which was the
actual reason why plain old .MPG files and also my .MTS streams with
H.264 video gave only scrambled video.
* Removed some files from the build by comparing which files are build
by a pristine FFmpeg libavcodec Makefile.

Attention: The following changes may break the GCC2 build:
* Remove Haiku specific changes from
- libavcodec/x86/cavsdsp_mmx.c
- libavcodec/x86/dsputil_mmx.c
- libavcodec/x86/h264dsp_mmx.c

I will test this next after switching my GCC. If you are impatiant, the
following changes were previously done to the pristine FFmpeg 0.5 files:

libavcodec/x86/cavsdsp_mmx.c:
* commented out line 426 to 429

libavcodec/x86/h264dsp_mmx.c
* h264_loop_filter_strength_mmx2() was commented out.

libavcodec/x86/dsputil_mmx.c
* gmc_mmx() was commented out.
* commented out line 2665 (assigning c->gmc)
* commented out line 2786 (assigning c->h264_loop_filter_strength)

However, I would now make similar changes by checking the GCC version. Also,
the libavcodec/x86/dsputil_mmx.c:2786 was still assigning the dummy
h264_loop_filter_strength_mmx2() version.



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


# 16d5c24e533eb14b7b8a99ee9f3ec9ba66335b1e 07-Jul-2009 Oliver Tappe <zooey@hirschkaefer.de>

* merged 32bit-wchar_t branches of buildtools and haiku back into
the respective trunk

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


# 7965dde0ca126d8cc33f3800ccaa993afdc7c447 06-Jul-2009 Stephan Aßmus <superstippi@gmx.de>

Get the AVFormatReader into a usable state. DemuxerTable.cpp controls which
container formats we support. I hope I have turned on only those that don't
have an implementation already (did we support ASF already?). I mostly tested
with AVI and that works reasonably well, but I only tested raw audio so far.
However, the backend for Marcus' avi_reader is much nicer than FFmpeg, so I
think it should stay and have disabled the support for AVI in AVFormatReader.
A big disappointment is that MPG containers only give scrambled video. It may
be a problem of the AVCodecDecoder, but I am not so sure. After all, it works
fine for other container formats. If I am not mistaken, VLC also does not use
the mpeg demuxer from FFmpeg. :-\ On top of that, libavformat detects the
time_base and stream duration wrongly for one of my test MPGs.
As for the implementation: Although seeking in libavformat happens for an
individual stream, in reality, the packets for all other streams need to be
flushed (that's also what happens in the libavformat tutorials I've seen).
Since our MediaKit API allows to seek tracks indivually, this is of course
a no-go, since then all other tracks would be out of sync. My solution is to
simply open the demuxer once for each stream and then completely ignore the
packets of the respective other streams. This also works around the problem
that libavformat is unable to provide packets by stream, requiring the
API user to queue the packets that he needs not now, but later for other
streams. It also means we have to no memory copies, since we can directly
use the packet buffer until the next call to GetNextChunk().


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