summaryrefslogtreecommitdiff
path: root/src/xine-engine
AgeCommit message (Collapse)Author
2011-12-16MergePetri Hintukainen
2011-12-16Removed write-only variablesPetri Hintukainen
--HG-- branch : point-release
2011-12-16Fixed osd_hide() return valuePetri Hintukainen
--HG-- branch : point-release
2011-12-15Marked xine_get_autoplay_mrls() and get_autoplay_list()'s return value constPetri Hintukainen
2011-12-15Marked _x_is_fourcc() arguments constPetri Hintukainen
2011-12-10Merge from 1.1.Darren Salt
--HG-- rename : src/liba52/xine_a52_decoder.c => src/audio_dec/xine_a52_decoder.c rename : src/libspudvb/xine_spudvb_decoder.c => src/spu_dec/spudvb_decoder.c rename : src/libxinevdec/image.c => src/video_dec/image.c
2011-11-25Added FOURCC codes for EAC3Petri Hintukainen
--HG-- branch : point-release
2011-11-24Fixed aliasingPetri Hintukainen
--HG-- branch : point-release
2011-11-24Check fwrite return valuePetri Hintukainen
--HG-- branch : point-release
2011-11-23audio_decoder.c: include xine_private.h for _x_audio_decoder_init() and ↵Petri Hintukainen
_x_audio_decoder_shutdown() prototypes.
2011-11-11Merge from 1.1.Darren Salt
--HG-- rename : src/libfaad/xine_faad_decoder.c => src/audio_dec/xine_faad_decoder.c rename : src/libspudvb/xine_spudvb_decoder.c => src/spu_dec/spudvb_decoder.c
2011-11-04video_decoder: handle BUF_CONTROL_RESET_TRACK_MAP (reset SPU track map)Petri Hintukainen
2011-10-17Merge from 1.1Petri Hintukainen
2011-10-15Disable strict-aliasing where it caused compiler warningsChristian Ruppert
2011-10-11Merge from 1.1.Darren Salt
--HG-- rename : src/xine-engine/post.h => include/xine/post.h rename : po/libxine1.pot => po/libxine2.pot
2011-10-10Fixed asprintf usagePetri Hintukainen
2011-10-10Fixed cast from pointer to integer of different sizePetri Hintukainen
2011-10-16Added internal event XINE_EVENT_END_OF_CLIPPetri Hintukainen
This event is used by BluRay input plugin to flush demux_ts caches at end of clip.
2011-10-09Removed ' from preprocessor macroPetri Hintukainen
2011-10-06Merge from 1.1.Darren Salt
--HG-- rename : src/xine-utils/attributes.h => include/xine/attributes.h
2011-10-05Bring xine_private.h into line with 1.2 branch, which already has this ↵Chris Rankin
capability, and force an error if someone tries to include xine_private.h in an unsuitable source file.
2011-10-05Merge commits which I've already merged from 1.1...Darren Salt
2011-10-05Merge from 1.1.Darren Salt
--HG-- rename : src/xine-engine/xine_internal.h => include/xine/xine_internal.h rename : src/demuxers/demux_ogg.c => src/combined/xine_ogg_demuxer.c
2011-10-04Merge from 1.1.Darren Salt
--HG-- rename : src/xine-utils/attributes.h => include/xine/attributes.h rename : src/xine-engine/xine_internal.h => include/xine/xine_internal.h rename : src/xine-utils/xineutils.h => include/xine/xineutils.h
2011-10-03Set CLOEXEC flag on three more sockets.Chris Rankin
There are two functions that actually set this flag: int _x_set_file_close_on_exec() int _x_set_socket_close_on_exec() (We need two functions because file descriptors and sockets are not the same under WIN32 - of course). These function belong to libxine's internal API, i.e. they are not available for use by plugins.
2011-10-03Prefix open_cloexec() and create_cloexec() with xine_, and add new ↵Chris Rankin
xine_socket_cloexec() function.
2011-10-03Mark simple file and socket descriptors as uninheritable.Chris Rankin
This patch creates two utility functions: int open_cloexec(pathname, flags) int create_cloexec(pathname, flags, mode) These return a file descriptor with the CLOEXEC flag set, to ensure that the descriptor is not inherited across a fork/exec operation. The sockets returned by: _x_io_tcp_connect_ipv4() _x_io_tcp_connect() now also have their CLOEXEC flag set.
2011-10-03Set CLOEXEC flag on three more sockets.Chris Rankin
There are two functions that actually set this flag: int _x_set_file_close_on_exec() int _x_set_socket_close_on_exec() (We need two functions because file descriptors and sockets are not the same under WIN32 - of course). These function have been assigned "internal" visibility so that they can be used throughout libxine.so itself while still not being exported to the global symbol table. In other words, they're both as close to being "static" as I can make them.
2011-10-03Prefix open_cloexec() and create_cloexec() with xine_, and add new ↵Chris Rankin
xine_socket_cloexec() function.
2011-10-01Mark simple file and socket descriptors as uninheritable.Chris Rankin
This patch creates two utility functions: int open_cloexec(pathname, flags) int create_cloexec(pathname, flags, mode) These return a file descriptor with the CLOEXEC flag set, to ensure that the descriptor is not inherited across a fork/exec operation. The sockets returned by: _x_io_tcp_connect_ipv4() _x_io_tcp_connect() now also have their CLOEXEC flag set.
2011-09-26Merge from 1.1. (Needs some testing.)Darren Salt
--HG-- rename : src/xine-engine/buffer.h => include/xine/buffer.h
2011-08-23Merge from 1.1.Darren Salt
--HG-- rename : src/xine-engine/buffer.h => include/xine/buffer.h rename : src/libxineadec/xine_lpcm_decoder.c => src/audio_dec/xine_lpcm_decoder.c rename : src/libspuhdmv/xine_hdmv_decoder.c => src/spu_dec/spuhdmv_decoder.c
2011-08-22Video deadlock fixTorsten Jager
When watching TV with Kaffeine I frequently had complete engine lockups. Multiple mutexes were waiting on each other. net_buf_ctrl requires the demuxer to keep running while playback is still paused. The diff might look a bit confusing. Basically, all I did was to replace phtread_mutex_lock (); ... pthread_mutex_unlock (); with if (pthread_mutex_trylock ()) { ... pthread_mutex_unlock (); } at a place where it does the least damage.
2011-08-22UI freeze fixTorsten Jager
xine_play () gets suspended after start or seek until first frame gets displayed. This often wont work on slow machines when first frame gets dropped because its too old. Consequently, UI freezes for full 10 seconds. Let's wake up xine_play when this happens as well. OK, this is a luxury convenience fix ;-)
2011-08-22Audio crash fixTorsten Jager
Audio decoder loop creates a sorted map of available audio channels on the fly. If neither user nor dvdnav intervene, it will pass the first (= lowest index) audio channel to decoders. Now imagine a TV recording with 2 audio channels: audio.0: eac3 5.1 (fra) audio.1: eac3 stereo (qaa) By chance, first audio frame to be demuxed is for channel #1. Track map will be [0]: eac3, channel 1 Audio loop opens ffmpeg audio decoder / stereo out. Fine. Then, first frame for channel #0 comes in. [0]: eac3, channel 0 [1]: eac3, channel 1 Both are same codec, so audio loop just switches to channel 0 without further notice. Audio decoder then runs into a mem leak, or worse, crashes audio out who still thinks we're only stereo. Whenever we insert something at track map index 0, and its going to be auto-selected later, reset current codec type. This forces a clean decoder/output switch.
2011-08-13VP8 supportTorsten Jager
2011-10-04Import xine_private.h as needed, not as part of xine_internal.h.Chris Rankin
2011-09-10Ensure that the stream reference inside each event queue is counted,Chris Rankin
and that each stream object is removed from its parent xine object's list before it starts destroying itself.
2011-08-29Add AAC LATM support from FFmpeg 0.7+Chris Rankin
I've now tested this patch on Fedora 15 (FFmpeg 0.7) and Fedora 14 (FFmpeg 0.6), and am happy to report that it works fine on F15 and doesn't break xine-lib on F14. On F14, it also has the happy side effect of no longer trying to decode an LATM AAC stream with the xineplug_decode_faad.so plugin. (Which was something which never ended well anyway.)
2011-05-17Merge from 1.1.Darren Salt
--HG-- rename : src/libxineadec/xine_lpcm_decoder.c => src/audio_dec/xine_lpcm_decoder.c
2011-05-17Use "quietened" build if automake 1.11 was used.Darren Salt
2011-05-15Better support for 24-bit lpcmChristopher Martin
First of all, it improves the qt demuxer, ensuring that 24-bit audio is marked appropriately, and detecting little vs. big endian audio. It also adjusts the buffer size when audio is 24-bit, ensuring that samples aren't chopped in half (8192 does not divide evenly into 3 byte samples). Secondly, in the lpcm decoder, the patch distinguishes between standard 24-bit lpcm (big and little endian) and special DVD-format 24-bit lpcm (see http://wiki.multimedia.cx/index.php?title=PCM) and now handles both, instead of only handling the DVD format. The result is that xine now correctly plays all the 24-bit lpcm samples I throw at it, whereas before only a few worked.
2011-04-15Fix building out of source directory.Reinhard Nißl
2011-03-29Continuous video frame grabbing feature.Andreas Auras
In opposite to the 'xine_get_current_frame' based snapshot function this grabbing feature allow continuous grabbing of last or next displayed video frame. Grabbed video frames are returned in simple three byte RGB format. Depending on the capabilities of the used video output driver video image data is taken as close as possible at the end of the video processing chain. Thus a returned video image could contain the blended OSD data, is deinterlaced, cropped and scaled and video properties like hue, sat could be applied. With this patch such a decent grabbing feature is implemented for vdpau video out driver. If a video output driver does not have a decent grabbing implementation then there is a generic fallback feature that grabs the video frame as they are taken from the video display queue (like the xine_get_current_frame' function). In this case color correct conversation to a RGB image incorporating source cropping and scaling to the requested grab size is also supported. A more detailed description can be found in file "xine.h".
2011-03-27Fix race condition when accessing last_frame via get_last_frame()Reinhard Nißl
_x_get_current_frame_data() called get_last_frame() and locked the returned frame afterwards. At the same time, video_out_loop() unlocked last_frame to assign a different img afterwards. So in case the image got unlocked before it gets locked again, the image resides already on the free image queue. So when the image gets unlocked, it will be put a second time to the queue and hence cause a loop in the list the queue is based on. Getting an image from the queue will then run endlessly. To fix this issue, a new mutex is introduced which protects write access to last_frame and read accesses via get_last_frame() from other threads. Next, the semantic of get_last_frame() had to be changed to return a locked image already. Finally, functions calling get_last_frame() had to be adapted to its new behavior (there was only a single function in xine-lib which had to be adapted: _x_get_current_frame_data()).
2011-03-20Merge from 1.1.Darren Salt
2011-03-02Output a log message if raising of nice priority fails for video out and ↵Andreas Auras
decoder thread. Raising nice priority is not limited to root user only on modern unix/linux systems. So a log message about failure is helpful to everyone.
2011-03-02Fixes two issues of video out standard cropping feature.Andreas Auras
Resulting left and right cropping parameters should be multiple of 2. Left cropping offset calculation to YUY2 frames fixed.
2011-03-02Removed ugly code handling of intercepted frames.Andreas Auras
Intercepted frames should never pass function vdpau_update_frame_format. --HG-- extra : rebase_source : d1d05b67865eb6cc79225f96159184852f239262
2011-03-20Merge from 1.1.Darren Salt
--HG-- rename : src/libxineadec/gsm610/Makefile.am => contrib/gsm610/Makefile.am rename : src/libxineadec/nosefart/diff_to_nosefart_cvs.patch => contrib/nosefart/diff_to_nosefart_cvs.patch rename : src/libxineadec/nosefart/nes6502.c => contrib/nosefart/nes6502.c rename : src/libxineadec/nosefart/nes6502.h => contrib/nosefart/nes6502.h rename : src/libxineadec/nosefart/nes_apu.c => contrib/nosefart/nes_apu.c rename : src/libxineadec/nosefart/nes_apu.h => contrib/nosefart/nes_apu.h rename : src/libxineadec/nosefart/nsf.c => contrib/nosefart/nsf.c rename : src/libxineadec/nosefart/nsf.h => contrib/nosefart/nsf.h rename : src/libxineadec/nosefart/types.h => contrib/nosefart/types.h rename : src/libxineadec/nosefart/version.h => contrib/nosefart/version.h rename : doc/faq/faq.sgml => doc/faq/faq.docbook rename : src/libsputext/demux_sputext.c => src/spu_dec/sputext_demuxer.c rename : src/libxinevdec/image.c => src/video_dec/image.c