summaryrefslogtreecommitdiff
path: root/src/xine-engine
AgeCommit message (Collapse)Author
2007-12-11Bump the interface version for video output plugins.Diego 'Flameeyes' Pettenò
2007-12-11Bump the interface version for audio output plugins.Diego 'Flameeyes' Pettenò
2007-12-11Bump the interface version for SPU decoders.Diego 'Flameeyes' Pettenò
2007-12-11Define free() as the default dispose function for plugin classes.Diego 'Flameeyes' Pettenò
Most plugin classes in xine define a dispose function simply to call free(), but free() is ABI-compatible with our dispose functions, so add a macro that allows to pass free() directly as dispose function. It's an opt-in so that no extra conditional is needed, and plugin authors won't forget about providing a dispose function (if they need to).
2007-12-11Use dgettext to localise the description string for plugins.Diego 'Flameeyes' Pettenò
2007-12-11Add a textdomain field to allow using a different i18n catalog for the ↵Diego 'Flameeyes' Pettenò
description translation.
2007-12-11Leave to the plugin the call to gettext exactly as before.Diego 'Flameeyes' Pettenò
This way external plugins can use their own gettext catalog for i18n.
2007-12-11Update the code not to use the get_* functions that were removed.Diego 'Flameeyes' Pettenò
2007-12-11Replace get_identifier/get_description functions with strings.Diego 'Flameeyes' Pettenò
This is the start of a new experimental branch, with the first objective being the replacement of the get_description and get_identifier functions with direct-access strings. The reason for this change is to reduce code size and time of execution. By replacing the functions with direct-access strings there is one less call to be done in those cases where the description has to be fetched. The solution is not yet definitive though, there are a couple of problems to take care of: - the use of N_() still makes it easy to internationalise the strings, but it requires for the string to be found on libxine2 catalog, which is not exactly a nice solution for external plugins; - it would be simpler to re-use the id field in plugin_info_t, and then move description there; it should reduce memory usage for the class structures; - I'm not really aware of any reason why get_description and get_identifier were used beside the idea of making i18n simpler. This probably would break a couple of frontends, especially if they have some internal plugins (like post-plugins), so it needs to be reviewed carefully before merging in 1.2 branch. My current goal is to get this in before 1.2 though, rather than waiting for 1.3.
2007-12-09Merge from 1.1.Darren Salt
2007-12-09Enable the WMV VC1 (ffmpeg) codec.Darren Salt
--HG-- extra : transplant_source : %15%CD%0B%2C%F2g%03%B9%25%D4%B2%8BQ%1F%EB%BB%8F%28%9B%C8
2007-12-03Merge from 1.1.Darren Salt
--HG-- rename : src/demuxers/demux_ogg.c => src/combined/xine_ogg_demuxer.c
2007-12-04fifo_peek_int can return NULL (when non-blocking). make fifo_remove_int ↵Matthias Kretz
handle that case
2007-12-03Fixed a race condition between ao_loop and ao_close to not lose the last buffer.Matthias Kretz
In ao_loop only read the first buffer and remove it from the fifo only when the buffer has been written or is about to be discarded. This fixes the race between ao_loop and ao_close for good. Now fifo_remove_int may signal empty again right after removing the last buffer from the fifo.
2007-12-02Don't signal fifo->empty right after reading the last bufferMatthias Kretz
but only when a read was requested and the fifo is empty. Rationale: ao_close uses fifo_wait_empty to make sure all buffers were written to the driver before it calls close on the driver. But if empty is already signaled when ao_loop just reads the next buffer then ao_close might close the driver before ao_loop has a chance to send the buffer to the driver.
2007-12-02remove redundant checkMatthias Kretz
buf must be != NULL because of the while(!fifo->first) before and the buf->next after
2007-11-25Merge from 1.1.Darren Salt
Some fixups were required for the kfreebsd patch; needs testing. --HG-- rename : src/video_out/libdha/ports.c => contrib/libdha/ports.c rename : src/demuxers/demux_ogg.c => src/combined/xine_ogg_demuxer.c rename : src/libxineadec/xine_vorbis_decoder.c => src/combined/xine_vorbis_decoder.c
2007-11-23Merge.Darren Salt
2007-11-23log if send_headers returned with DEMUX_FINISHEDMatthias Kretz
2007-11-19add support for GNU/kFreeBSDPetr Salinger ext:(%20)
It changes some "defined (__FreeBSD__)" into "defined (__FreeBSD_kernel__)" and "__FreeBSD_version" into "__FreeBSD_kernel_version". The changes are performed on places, where feature of kernel is tested. On some other places, feature of userland/libc is tested, on them "defined (__FreeBSD__)" remains. As proposed, include/configure.h cause __FreeBSD_kernel__ be defined if __FreeBSD__ is defined. --HG-- extra : transplant_source : %25%96K%05%E4Y%B15%94%60%15%FE1%8Ah%26Xy%8C/
2007-11-15assert that not more than the buffersize is readMatthias Kretz
2007-11-15when the stream is paused fifo_wait_empty will wait forever. In that case weMatthias Kretz
discard all buffers before calling fifo_wait_empty
2007-11-11Merge transplanted patches.Darren Salt
2007-11-11Added FOURCC for VP6F.Claudio Ciccani
2007-11-11Added FOURCC for VP6F.Claudio Ciccani
(transplanted from 3bea001775a81a2c784e000794ea5cc6d34dc40d) --HG-- extra : transplant_source : %3B%EA%00%17u%A8%1A%2CxN%00%07%94%EA%5C%C6%D3M%C4%0D
2007-11-10Delete most of the CVS $Id$/$Log$ lines.Darren Salt
--HG-- extra : transplant_source : %E0%D0%C5%8B%BEU%DD%24%5D7%1F%ADV%AD%EB%23%CBU%80%EB
2007-11-10Merge from 1.1.Darren Salt
--HG-- rename : src/libxineadec/nsf.c => src/combined/nsf_decoder.c rename : src/demuxers/demux_nsf.c => src/combined/nsf_demuxer.c rename : src/combined/combined_wavpack.c => src/combined/wavpack_combined.c rename : src/combined/combined_wavpack.h => src/combined/wavpack_combined.h rename : src/combined/decoder_wavpack.c => src/combined/wavpack_decoder.c rename : src/combined/demux_wavpack.c => src/combined/wavpack_demuxer.c rename : src/demuxers/demux_ogg.c => src/combined/xine_ogg_demuxer.c rename : src/libxineadec/xine_speex_decoder.c => src/combined/xine_speex_decoder.c rename : src/libxinevdec/xine_theora_decoder.c => src/combined/xine_theora_decoder.c rename : src/libxineadec/xine_vorbis_decoder.c => src/combined/xine_vorbis_decoder.c rename : src/liba52/xine_a52_decoder.c => src/libxineadec/xine_a52_decoder.c rename : src/libdts/xine_dts_decoder.c => src/libxineadec/xine_dts_decoder.c rename : src/libfaad/xine_faad_decoder.c => src/libxineadec/xine_faad_decoder.c rename : src/libmad/xine_mad_decoder.c => src/libxineadec/xine_mad_decoder.c rename : src/libmusepack/xine_musepack_decoder.c => src/libxineadec/xine_musepack_decoder.c
2007-11-09Merge FSF address changes from 1.1 branch.Diego 'Flameeyes' Pettenò
--HG-- rename : src/combined/decoder_flac.c => src/combined/flac_decoder.c rename : src/combined/demux_flac.c => src/combined/flac_demuxer.c rename : src/libxineadec/nsf.c => src/combined/nsf_decoder.c rename : src/demuxers/demux_nsf.c => src/combined/nsf_demuxer.c rename : src/combined/combined_wavpack.c => src/combined/wavpack_combined.c rename : src/combined/combined_wavpack.h => src/combined/wavpack_combined.h rename : src/combined/decoder_wavpack.c => src/combined/wavpack_decoder.c rename : src/combined/demux_wavpack.c => src/combined/wavpack_demuxer.c rename : src/demuxers/demux_ogg.c => src/combined/xine_ogg_demuxer.c rename : src/libxineadec/xine_speex_decoder.c => src/combined/xine_speex_decoder.c rename : src/libxinevdec/xine_theora_decoder.c => src/combined/xine_theora_decoder.c rename : src/libxineadec/xine_vorbis_decoder.c => src/combined/xine_vorbis_decoder.c rename : src/liba52/xine_a52_decoder.c => src/libxineadec/xine_a52_decoder.c rename : src/libdts/xine_dts_decoder.c => src/libxineadec/xine_dts_decoder.c rename : src/libfaad/xine_faad_decoder.c => src/libxineadec/xine_faad_decoder.c rename : src/libmusepack/xine_musepack_decoder.c => src/libxineadec/xine_musepack_decoder.c
2007-11-09Update FSF address on non-contributed code and COPYING files.Diego 'Flameeyes' Pettenò
For contributed code, leave whatever the version we last synced for is using to make simpler future syncs.
2007-10-29Merge from 1.1.Darren Salt
Spanish translation merge needs checking.
2007-10-28Add another identifier (0x10 0x00 0x00 0x02) for MPEG video.Darren Salt
Seen in an AVI in the wild; apparently generated by mencoder.
2007-09-19Add controls for setting the opacity of DVB subtitles.Darren Salt
2007-08-21Merge from 1.1.Darren Salt
2007-08-17xine_stream audio_track_map order fixChristophe Thommeret
Actually, audio_decoder_loop stores audio streams in ascending buffer type order. So, for example a stream with buffer type BUF_AUDIO_A52|channel_num will always be stored in audio_track_map array before any mpegaudio stream. This breaks the stream order known by TS demuxer and so a user can get a52 french audio when selecting "deu" ! Bad again. This patch fixes that.
2007-08-17Fix C++ breakage introduced in cset 290f0d28f8fc.Darren Salt
2007-08-16Merge open()/glibc (debug #define) workaround from 1.1; fix up for 1.2 changes.Darren Salt
This does not touch code in contrib.
2007-08-16Merge all but the open()/glibc workaround from 1.1.Darren Salt
2007-08-15Workaround for recent glibc & -D_FORTIFY_SOURCE=2 (defines open() as a macro).Darren Salt
According to bug 1773769, this breaks foo->open(). The fix (as used in Ville Skyttä's patch, which doesn't cover all cases) is to replace this with (foo->open)(). This patch was generated using sed -i -re 's/(([[:alnum:]_]+(->|\.))+open) ?\(/(\1) (/' `grep '[>.]open \?(' include -rIl` One change (in a comment) is not committed.
2007-08-15Fix an audio resampling problem which was causing regular clicking.Darren Salt
The cause was that the resampling code was using only the samples in the buffer but not really handling the transition between two buffers (which it would handle completely independently). The new code remembers the last sample from the previous buffer and uses it in the resampling. We therefore end up one sample behind and without the clicks.
2007-07-27make use of the new callback function in _x_post_intercept_video_frame()Reinhard Nißl
--HG-- extra : transplant_source : %E9%9C%09%7EQ%19%B6%D8%BCJ587%C5i%AF%D5R%F4%DE
2007-07-27provide an additional callback function for controlling frame interceptionReinhard Nißl
Some postplugins override a frame's draw function just to get/manipulate frame related information -- and not for drawing on the frame. The current implementation disables any preprocessing function even if the plugin is not going to draw on the frame. By introducing a further callback function route_preprocessing_procs() a plugin is now able to tell that it is not going to draw on the frame, i. e. it is ok to route the preprocessing functions to the intercepted frame, too. --HG-- extra : transplant_source : %170%82%B8%8F%BA%3D%25%9B%D7%EF%E5%B3%3B%EEg%A0%D1be
2007-07-26provide a direct link to accelerated frame for postprocessingReinhard Nißl
Accelerated frames share data between decoder and video out driver. When frames get intercepted for postprocessing the decoder will pass intercepted frames to the video out driver, but the driver needs to access it's native frame for accelerated decoding. Putting a pointer to the native frame into acceleration data is an easy way to achieve this. Some additional macros simplify accessing the native frame. --HG-- extra : transplant_source : 0%FB%1B4A%D9%27%92z%A5E%C1%1F%81nB%00y%17%9E
2007-08-02Merge from 1.1.Darren Salt
2007-07-27Fixed race, reordered broadcaster shutdown sequence to avoid multiple access ↵Kirill Belokurov
to connections list
2007-07-26copy stream in _x_post_frame_copy_up() and add refcountingReinhard Nißl
Without copying stream up, _x_post_restore_video_frame() will reset the native frame's stream to the value at _x_post_intercept_video_frame(), which is typically NULL. This behaviour differs from normal frame processing, i. e. without postprocessing. Copying the stream up reveals that stream refcounting was missing in several postprocessing functions, which is hereby added. --HG-- extra : transplant_source : I%F1%0B%86%B5%5E%5D%10_6%BC%B6%BCPZ%11%04y%83/
2007-07-19Use asprintf when generating the decoder priority description.Darren Salt
2007-07-12Remove realloc from osd.c to prevent memory leak due to fragmentationSimon Farnsworth
show() in osd.c uses realloc in an effort to minimise the amount of memory actually used for rle objects. In practice, this caused xine to fragment memory, and gradually use more and more RAM (measured over a period of 24 to 72 hours). Change osd.c to allocate the maximum amount of memory it could need; because it touches this memory in a linear fashion, lazy page allocation will ensure that most of the memory used is needed. Further, because this makes the per-drawing allocations the same size, it avoids virtual address space fragmentation.
2007-07-12Fix memory leak in video_overlay.cSimon Farnsworth
When running DVB subtitles for a long period of time (over 24 hours), we noticed a slow leak of memory. This patch removes one cause of leakage for us.
2007-07-13Prevent ticket system deadlock when using DVB subtitlesSimon Farnsworth
When using DVB subtitles on an SMP machine, we see occasional lockups, which appear to be caused by one thread acquiring the same ticket twice. Fix this, by preventing acquire() and release() from blocking if the current thread has already acquired the ticket. Code sequences like the following can still block in all acquires and releases: ticket->acquire(...) /* Do something */ ticket->release(...) However, code sequences like the following, which used to deadlock if ticket was revoked at just the wrong moment, now succeed: ticket->acquire(...) /* Do something */ ticket->acquire(...) /* This acquire cannot block */ /* Do something */ ticket->release(...) /* This release cannot block */ /* Do something */ ticket->release(...) Without this patch, the inner acquire() and release() calls could block if ticket was revoked at the wrong time. revoke() would not unblock the blocking acquire until there have been as many release()s as acquire()s, which cannot happen.
2007-07-13Merge from 1.1.Darren Salt