otherwise we end up in an endless loop. This only happened when
the remaining raw data provided did not contain enough content.
In this particular case there were only 2 bytes remaining though
the decoder needed 4 bytes to handle at least 1 frame. Seems like
the audio file only provided data for one channel in the end, which
did not lead to a B_LAST_BUFFER_ERROR yet as it has been read properly.
* This fixes bug 1708 and most probably 1275 as well (someone check and
close please)
Didn't we just have a discussion about Media handling killing the system
:P
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26827 a95241bf-73f2-0310-859d-f6bbb57e9c96
* add cygwin specific options.
* Cygwin cannot handle -fPIC option and throws warnings, thus we only use it on non windows platforms for the host tools.
* Windows uses PATH instead of LD_LIBRARY_PATH, so before calling a host tool this environment variable needs to be expanded... Brilliant...
* Using jam on Windows is kind of complicated, as the cygwin included gcc creates executables with a .exe extension. When jam parses dependencies for being up to date it ignores this extension again and tries to rebuild the executables again and again. This hack removes the extension after successful linking. Though jam has a SUFEXE variable for cygwin builds, we cannot use this one directly as crosscompiled targets do not have an extension, it is complicated to use the same jam for both platforms. A more clean attempt would be to check for the extension on each host target depending on the platform. This should be fixed later on.
* Btw. Say hello to Haiku compiling successfully on Windows :) with one patch to be discussed for jam...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26590 a95241bf-73f2-0310-859d-f6bbb57e9c96
* as on darwin platform we cannot use resources for the boot sector data. Instead use attributes to store the data.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26589 a95241bf-73f2-0310-859d-f6bbb57e9c96
* additional includes for cygwin
* some automatic whitespace cleanup
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26588 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Cygwin does not have regex support, so we use the one we already have in our glibc.
* Keymap.h has a automatic forward declaration of re_registers, which causes a compile break on Cygwin, but not on other platforms. So add a include for regex.h in the header and remove it in the source file.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26587 a95241bf-73f2-0310-859d-f6bbb57e9c96
* rc uses a global instance of BResources. On destruction it calls Unset() of the BFile member fFile. BNode::Unset then calls close_fd(), which parses the static global DescriptorMap to actually close the descriptor. However on Cygwin the DescriptorMap has been destroyed already for some reason, thus accessing it is invalid. The "fix" is to put the map on the heap and delete it as soon as it gets empty. This way the global BResources instance can be freed without a crash.
* If someone likes to review, feel free to, it didn't cause any issues here
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26585 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Cygwin needs some additional defines compared to other platforms
* Additionally stpcpy and strcasestr are unknown on Cygwin. Thus we need to use the one from our posix library.
* ECANCELED is not defined on Cygwin, so only add error in case it is.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26584 a95241bf-73f2-0310-859d-f6bbb57e9c96
- Implemented BMediaFile::Copyright, which just calls Copyright() of the extractor. So this is just a simple pass through.
- Style cleanup (mostly whitespaces)
Problem is that our readers currently return the copyright of the source code, not the copyright of the MediaFile itself, like the BeBook documents. Thus, we might need to change all readers to return appropiate data or behave differently for Haiku readers.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25356 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Implemented BFileInterface class which was nearly empty so far. Added handling of messages passed to BFileInterface class.
* Added needed structs and message values to DataExchange.
* This is needed to get for instance the reader.media_addon to work. Usually one calls above functions to set a file to be decoded by the node. If the target is a consumer, they are used for setting the target for encoding data.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24671 a95241bf-73f2-0310-859d-f6bbb57e9c96
* implemented BControllable::StartControlPanel(). The behaviour is supposed to be the one documented in the BeBook, meaning that it first checks if the BControllable node has been instantiated over an BMediaAddOn. If so, we investigate where the addon is located and try to launch it. Thus media_addons which have a control panel need to be compiled as an Application, not as an Addon. See r24664 as an example.
* inside BControllable::HandleMessage() call StartControlPanel for the message.
* MediaNodes having such a ControlPanel are rarely used as parameterwebs should provide you everything. But for instance the vst MediaAddOn uses it and some others do as well.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24665 a95241bf-73f2-0310-859d-f6bbb57e9c96
* This is the first Addon inside Haiku which uses StartControlPanel(), which will be submitted later on.
* Cleaned up warnings
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24664 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Actually I could only try if they build and work inside the vm, I do not have sound available somewhere, so could please someone test whether the results are reasonable? They cannot be added to the image until someone approves that they are working fine...
* got rid of most compiler warnings
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24636 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Thus, remove it and link against the version in src/lib/expat instead
* Exporting/Importing MediaNode configuration works fluently still...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24373 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Use a member variable for the input media_format
Thx to Ingo for pointing this out
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24362 a95241bf-73f2-0310-859d-f6bbb57e9c96
* reordered addons alphabetically like we do for all plugins
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24349 a95241bf-73f2-0310-859d-f6bbb57e9c96
- Implemented missing functionality
- Added debug.h from other media addons for nicer debug.
- Instead of using the MediaNode inside the View, the node should control the view and the window in the case it is instantiated from an addon.
- During the connection process the VideoNode tried to allocate overlay buffers. This can fail for multiple reasons like there is already someone using overlay or it is not supported at all due to driver limitations. In that case try to get non overlay buffers. If this fails, the Connect() can still return an error.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24273 a95241bf-73f2-0310-859d-f6bbb57e9c96