summaryrefslogtreecommitdiff
path: root/include
AgeCommit message (Collapse)Author
2011-03-13Implement additional VDR key User0.Reinhard Nißl
--HG-- extra : rebase_source : ce0547448abc3011feea54401c3e46702fbe6f11
2011-03-20Merge from 1.1.Darren Salt
--HG-- rename : include/xine.h.in => include/xine.h
2011-03-13Define event for additional VDR key.Reinhard Nißl
2011-02-06Fix argb_layer handling in xine-libs OSD stack.Reinhard Nißl
xine-libs OSD stack is event driven and some memory blocks are not copied but responsibility to free the memory moves to different layers of the OSD stack. When argb_layer was introduced, this behavior was not taken into account and as such it is likely that for example osd_free_object() frees the argb_layer while vdpau_overlay_* functions still access the memory. Passing responsibility for the argb_layer is not that easy as it seems as the design goal of the argb_layer was to not duplicate any memory of the argb_buffer which all other OSD functions usually do. To solve this issue, argb_layer_t will be turned into a managed data structure by introducing a ref_count member. ref_count increases as more layers of the OSD stack hold a reference to that memory block, and it decreases when they are no longer interested in it. When ref_count reaches zero the memory block is freed automatically. To deal with ref counting, set_argb_layer_ptr() has been introduced. Some functions of the OSD layers had to be modified to deal with reference tracking. For convinience, osd_free_object() should clear the argb_buffer pointer so that the buffer may be freed safely after returning.
2011-01-22Provide _x_query_buffers() to allow analyzing buffer usage by pluginsReinhard Nißl
This function is similar to _x_query_buffer_usage() but retrieves also the total and available (= free) number of buffers besides the number of buffers ready for processing. For example if one wants to create a buffering algorithm based on the number of frames ready, it's not that easy to determine the maximum number of ready frames possible. In case one configures engine.buffers.video_num_frames:50 it may happen, that only 30 frames can actually be provided by the video out driver. Next a video codec like H.264 may hold several frames in its display picture buffer so that you may end up with only 13 ready frames at maximum. At the same time, the number of available (= free) frames will be 0 (or almost zero in case of vo). So it may be even easier to base the buffer algorithm on the number of free buffers. The reported numbers may also reveal that too few input buffers have been provided to compensate a large a/v offset at input stage. --HG-- extra : rebase_source : 255cb186891fbab5199a99031cf1b1e93ac19923
2010-06-14Merge from 1.1.Darren Salt
--HG-- rename : include/xine.h.in => include/xine.h rename : po/libxine1.pot => po/libxine2.pot
2010-05-21Check for mpeg4-part2 vdpau hardware support.Christophe Thommeret
2010-04-08Add two new VO_CAP_*: SHARPNESS and NOISE_REDUCTION. Fix vdpau VO driver caps.Christophe Thommeret
2010-04-08Typo fix.Darren Salt
2010-04-08Merge from 1.1.Darren Salt
--HG-- rename : include/xine.h.in => include/xine.h rename : src/xine-engine/video_out.h => include/xine/video_out.h
2010-04-08Add support for Xv gamma adjustment.Darren Salt
2010-03-24Merge from 1.1.Darren Salt
--HG-- rename : doc/hackersguide/internals.sgml => doc/hackersguide/internals.docbook rename : doc/hackersguide/library.sgml => doc/hackersguide/library.docbook rename : include/xine.h.in => include/xine.h rename : src/xine-engine/buffer.h => include/xine/buffer.h rename : src/demuxers/demux_ogg.c => src/combined/xine_ogg_demuxer.c
2010-03-22Add support for Ogg tag 'DISCNUMBER' and ID3 tag 'TPOS'.Darren Salt
2010-02-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
2010-04-11Report NBC buffer stats to the application using new event XINE_EVENT_NBC_STATSFrank Enderle
This event reports the buffer status for network streams (NBC) back to the application, providing a way to measure if the stream delivers data fast enough. This enables the application to slow down the stream playback to get the buffers filling more quickly. (This is only a sample application of the event.) The event reports all vital data like fill percentage, remaining buffer in seconds and discontinuity, separately for audio and video, whether the nbc layer is actually buffering, the operation type (put or get) and also if the buffering is enabled at all. In essence, it's the output you get from nbc if you run xine-lib in verbose mode on the console, but in raw data.
2009-12-11Extra meta-info identifiers.Darren Salt
2009-11-30Trim trailing space & reduce space+tab.Darren Salt
2009-09-14Protected access to stream->demux_action_pendingIan Rae
The deadlock was caused by the unprotected use of stream->demux_action_pending internal variable from play_internal() and from within the demuxer loop. Direct access to demux_action_pending is replaced with _x_action_raise() and _x_action_lower(), which use a mutex for thread safety.
2010-01-14Don't deinterlace still framesChristophe Thommeret
still frames are marked by the decoder and the video_out will not deinterlace if the flag is set.
2010-01-08Merge from 1.2 main.Darren Salt
2010-01-06Update to libxdg-basedir 1.0.2; adapt accordingly, and default to external.Darren Salt
2009-12-17Merge from 1.2 main.Darren Salt
2009-12-12Merge from 1.1.Darren Salt
--HG-- rename : include/xine.h.in => include/xine.h rename : src/combined/decoder_flac.c => src/combined/flac_decoder.c rename : src/libspuhdmv/xine_hdmv_decoder.c => src/spu_dec/spuhdmv_decoder.c
2009-11-30Trim trailing space & reduce space+tab.Darren Salt
2009-11-20Merge from 1.1; merge vdpau (with adjustments for 1.2).Darren Salt
--HG-- rename : include/xine.h.in => include/xine.h rename : src/xine-engine/osd.h => include/xine/osd.h rename : src/xine-engine/video_out.h => include/xine/video_out.h rename : src/libspudvb/xine_spudvb_decoder.c => src/spu_dec/spudvb_decoder.c rename : src/libvdpau/Makefile.am => src/video_dec/libvdpau/Makefile.am rename : src/libvdpau/bits_reader.h => src/video_dec/libvdpau/bits_reader.h rename : src/libvdpau/dpb.c => src/video_dec/libvdpau/dpb.c rename : src/libvdpau/dpb.h => src/video_dec/libvdpau/dpb.h rename : src/libvdpau/h264_parser.c => src/video_dec/libvdpau/h264_parser.c rename : src/libvdpau/h264_parser.h => src/video_dec/libvdpau/h264_parser.h rename : src/libvdpau/nal.c => src/video_dec/libvdpau/nal.c rename : src/libvdpau/nal.h => src/video_dec/libvdpau/nal.h rename : src/libvdpau/vdpau_h264.c => src/video_dec/libvdpau/vdpau_h264.c rename : src/libvdpau/vdpau_mpeg12.c => src/video_dec/libvdpau/vdpau_mpeg12.c rename : src/libvdpau/vdpau_vc1.c => src/video_dec/libvdpau/vdpau_vc1.c
2009-11-20Merge vdpau. THIS CONTAINS ABI CHANGES and is therefore not xine-lib 1.1.Darren Salt
2009-11-05Merge from 1.1 (with adaptations).Darren Salt
--HG-- rename : src/xine-engine/scratch.h => include/xine/scratch.h rename : src/xine-utils/xmllexer.h => include/xine/xmllexer.h rename : src/xine-utils/xmlparser.h => include/xine/xmlparser.h rename : src/libspucmml/xine_cmml_decoder.c => src/spu_dec/cmml_decoder.c rename : src/libspuhdmv/xine_hdmv_decoder.c => src/spu_dec/spuhdmv_decoder.c
2009-10-10Merge from 1.1, with adaptations and renaming (as needed).Darren Salt
Note that the Matroska and Bluray changes have only been compile-tested. --HG-- rename : src/xine-engine/buffer.h => include/xine/buffer.h rename : src/libspuhdmv/xine_hdmv_decoder.c => src/spu_dec/spuhdmv_decoder.c
2009-06-11video_window_overlay + vdpau_dispose fixes.Christophe Thommeret
2009-06-11Provide framework to define a video output area within the OSD area.Reinhard Nißl
The supplied functions and constants allow to define a video output area (called video window) within the OSD area to show for example a small preview of the current channel in the top right corner while zapping through the channel list displayed as OSD. A VDPAU enabled xine-lib implements VO_CAP_VIDEO_WINDOW_OVERLAY already.
2009-04-26Merge from 1.1.Darren Salt
--HG-- rename : src/xine-engine/buffer.h => include/xine/buffer.h rename : src/libmad/xine_mad_decoder.c => src/audio_dec/xine_mad_decoder.c
2009-04-12Prepare input_vdr for VDR 1.7.5's requirements on returned STC.Reinhard Nißl
VDR 1.7.5 requires that STC should be near to a previously transmitted PTS value. We cannot hold this requirement immediately after a discontinuity as the currently displayed image's vpts time (which originated before the discontinuity) will be transformed to STC by applying the new vpts offset established at discontinuity. Therefore, a queue of vpts offset pairs is created and at discontinuity the current offset is stored there in combination with the vpts value up to which it has to be used. When retrieving a STC value, we lookup the offset to use from current vpts and therefore get a STC near to an originating PTS value. As VDR requires this quality of STC values also for its trickspeed modes, it is nolonger possible to simply set PTS of incoming frames to 0 to schedule them just after the previous frame. Therefore a discontinuity is generated for each frame in trickspeed mode, which allows us to schedule each frame immediately after the previous one while there may be gaps in PTS values. As a result the above mentioned code will take care to provide proper STC values even in VDR's trickspeed modes.
2009-02-10Merge from 1.1.Darren Salt
--HG-- rename : doc/faq/faq.sgml => doc/faq/faq.docbook rename : src/xine-engine/buffer.h => include/xine/buffer.h rename : src/xine-engine/xine_internal.h => include/xine/xine_internal.h
2009-01-18Merge from 1.1.Darren Salt
--HG-- rename : src/libxineadec/gsm610/long_term.c => contrib/gsm610/long_term.c rename : src/libxineadec/gsm610/lpc.c => contrib/gsm610/lpc.c rename : src/libxineadec/gsm610/rpe.c => contrib/gsm610/rpe.c rename : src/libxineadec/gsm610/short_term.c => contrib/gsm610/short_term.c rename : src/libfaad/common.h => contrib/libfaad/common.h rename : src/xine-engine/broadcaster.h => include/xine/broadcaster.h rename : src/xine-engine/buffer.h => include/xine/buffer.h rename : src/xine-engine/refcounter.h => include/xine/refcounter.h rename : src/xine-engine/video_out.h => include/xine/video_out.h rename : src/xine-engine/vo_scale.h => include/xine/vo_scale.h rename : src/xine-utils/xineutils.h => include/xine/xineutils.h rename : src/libxineadec/fooaudio.c => src/audio_dec/fooaudio.c rename : src/liba52/xine_a52_decoder.c => src/audio_dec/xine_a52_decoder.c rename : src/libdts/xine_dts_decoder.c => src/audio_dec/xine_dts_decoder.c rename : src/libfaad/xine_faad_decoder.c => src/audio_dec/xine_faad_decoder.c rename : src/libxineadec/xine_lpcm_decoder.c => src/audio_dec/xine_lpcm_decoder.c rename : src/libmad/xine_mad_decoder.c => src/audio_dec/xine_mad_decoder.c rename : src/libmusepack/xine_musepack_decoder.c => src/audio_dec/xine_musepack_decoder.c rename : src/libxineadec/nsf.c => src/combined/nsf_decoder.c rename : src/libspucc/cc_decoder.c => src/spu_dec/cc_decoder.c rename : src/libspudec/xine_spu_decoder.c => src/spu_dec/spu_decoder.c rename : src/libspudec/spu.c => src/spu_dec/spudec.c rename : src/libspudec/spu.h => src/spu_dec/spudec.h rename : src/libsputext/xine_sputext_decoder.c => src/spu_dec/sputext_decoder.c rename : src/libspucc/xine_cc_decoder.c => src/spu_dec/xine_cc_decoder.c rename : src/libxinevdec/bitplane.c => src/video_dec/bitplane.c rename : src/libxinevdec/foovideo.c => src/video_dec/foovideo.c rename : src/libxinevdec/gdkpixbuf.c => src/video_dec/gdkpixbuf.c rename : src/libxinevdec/image.c => src/video_dec/image.c rename : src/libmpeg2/slice_xvmc_vld.c => src/video_dec/libmpeg2/slice_xvmc_vld.c rename : src/libmpeg2/xine_mpeg2_decoder.c => src/video_dec/libmpeg2/xine_mpeg2_decoder.c rename : src/libmpeg2new/include/Makefile.am => src/video_dec/libmpeg2new/include/Makefile.am rename : src/libmpeg2new/libmpeg2/motion_comp_vis.c => src/video_dec/libmpeg2new/libmpeg2/motion_comp_vis.c rename : src/libmpeg2new/xine_mpeg2new_decoder.c => src/video_dec/libmpeg2new/xine_mpeg2new_decoder.c rename : src/libxinevdec/rgb.c => src/video_dec/rgb.c rename : src/libxinevdec/yuv.c => src/video_dec/yuv.c
2009-01-15Merge from 1.1, but neither distribute nor include by default xine_mmx.h.Darren Salt
--HG-- rename : doc/faq/faq.sgml => doc/faq/faq.docbook rename : src/xine-utils/xineutils.h => include/xine/xineutils.h
2009-01-05Enable sharpness and noise_reduction; add an option for progressive_flag.Christophe Thommeret
2009-01-02Add framegrabbing support; extend ARGB OSD interface.Reinhard Nißl
2008-12-28Fix argb overlay; allow partial buffer updates to improve performance.Julian Scheel
2008-12-27Initial support for ARGB overlay.Julian Scheel
2008-12-01Enable display of XINE_IMGFMT_VDPAU.Christophe Thommeret
2008-11-30Add imgfmt and vo_cap to headers.Julian Scheel
2009-01-11Add new event for vdr-xine-0.9.0.Reinhard Nißl
2009-01-10Fix locking issues in startup phase which could lead to disconnects.Reinhard Nißl
input_vdr's RPC thread needs to lock frontend. But frontend is also locked during xine_open() and xine_play(). xine_play() furthermore waits up to 10 seconds for the decoder to return the first frame. So it is unlikely that the RPC thread can lock the frontend to execute VDR's commands before VDR sends the first frame. Finally the RPC thread gave up locking the frontend after 5 seconds and the connect to VDR failed. To fix this issue, the RPC commands during startup phase are now handled by the thread which has called xine_open() as it already owns the frontend lock.
2009-01-04Implement new features for vdr-xine-0.9.0.Reinhard Nißl
2009-01-02Merge from 1.1.Darren Salt
--HG-- rename : include/xine.h.in => include/xine.h rename : src/libspudvb/xine_spudvb_decoder.c => src/spu_dec/spudvb_decoder.c
2009-01-02Extend OSD framework by ARGB layer and custom extent specification.Reinhard Nißl
The ARGB layer is based on the idea and scratch implementation of Julian Scheel. Each OSD object may be associated with a client ARGB buffer which holds the content of the OSD, hence there is no need to copy the buffer content. So far an OSD's reference coordinate system was defined by coded video resolution. By specifing an OSD's extent, capable hardware or software implementations my scale an arbitrarily sized OSD to the video output area while blending. Additional constants have been defined to allow vo_drivers to report their capabilities and to allow clients to check whether an OSD implementation supports these new features.
2009-01-01Mark the old MRL reference event struct as deprecated.Darren Salt
2008-12-30Add frame procedure for retrieving image data from accelerated frames in ↵Reinhard Nißl
standard format. Frame grabbing didn't work for frame image formats besides YV12 and YUY2 as decoded data is not stored in accelarated frames. Some acceleration APIs allow to read back decoded image data in the common standard formats mentioned above. The new procedure allows the vo_driver to provide a way for retrieving image data which can later be utilized by _x_get_current_frame_data() to implement frame grabbing for accelerated frames.
2008-12-15Merge from 1.1; update PO files; make buildable.Diego E. 'Flameeyes' Pettenò
--HG-- rename : include/xine.h.in => include/xine.h rename : src/xine-utils/attributes.h => include/xine/attributes.h rename : src/xine-engine/buffer.h => include/xine/buffer.h rename : m4/_xine.m4 => m4/types.m4 rename : po/libxine1.pot => po/libxine2.pot rename : src/libfaad/xine_faad_decoder.c => src/audio_dec/xine_faad_decoder.c rename : src/libspucc/cc_decoder.h => src/spu_dec/cc_decoder.h rename : src/libspucmml/xine_cmml_decoder.c => src/spu_dec/cmml_decoder.c rename : src/libspudec/xine_spu_decoder.c => src/spu_dec/spu_decoder.c rename : src/libspudvb/xine_spudvb_decoder.c => src/spu_dec/spudvb_decoder.c rename : src/libspucc/xine_cc_decoder.c => src/spu_dec/xine_cc_decoder.c rename : src/libmpeg2/mpeg2.h => src/video_dec/libmpeg2/mpeg2.h
2008-11-07Composer meta-tagMaximilian Schwerin
Date: Sat, 28 Jun 2008 17:29:59 +0200 This patch adds this to the FLAC demuxer.