summaryrefslogtreecommitdiff
path: root/src/vdr/input_vdr.c
AgeCommit message (Collapse)Author
2012-01-03Fix VDR input plugin build.Brad Smith
2011-12-15Marked xine_get_autoplay_mrls() and get_autoplay_list()'s return value constPetri Hintukainen
2011-10-17Merge from 1.1Petri Hintukainen
2011-10-03Prefix open_cloexec() and create_cloexec() with xine_, and add new ↵Chris Rankin
xine_socket_cloexec() function.
2011-10-03Add CLOEXEC support for VDR plugin, plus a few extra descriptors.Chris Rankin
2011-03-13Force progressive frame display during trickspeed mode.Reinhard Nißl
For now, it will only work when there are no video post plugins enabled. In case there are video post plugins enabled the changeset has no effect. --HG-- extra : rebase_source : cfb22e2ef12ac547ea24ebf59565fe8720ab3635
2011-03-13Double buffer ARGB data for distortion free OSD updates.Reinhard Nißl
This is necessary as VDR expects its OSD flush call to return as quickly as possible. Hence, we can nolonger wait until all changes have appeared on screen. As a result, a following OSD change might be written to the ARGB buffer while the buffer is currently transferred to screen, causing visible distortions. --HG-- extra : rebase_source : 19c4d5a1c73b5791e66f276d57fe62497d00fb7b
2011-03-13Implement additional VDR key User0.Reinhard Nißl
--HG-- extra : rebase_source : ce0547448abc3011feea54401c3e46702fbe6f11
2010-07-18Fix input_vdr to use the best match when choosing zoom factorsReinhard Nißl
The current implementation chooses 4:3 when aspect is within +/- 0.0075 % of 4:3. Otherwise 16:9 is chosen. But there are some H.264 channels with almost 4:3 aspect and choosing 16:9 for them is worse. So the new implementation chooses the best match.
2009-11-30Trim trailing space & reduce space+tab.Darren Salt
2009-07-24Fix deadlocks caused by input_vdr's discontinuity handling.Reinhard Nißl
In trickspeed mode, input_vdr's metronom generates a discontinuity for each video frame. These generated discontinuities could interfere with discontinuities generated by the demuxer. As a result the metronom deadlocked while waiting for a matching discontinuity indication. So care must be taken to not mix internal and external discontinuities.
2009-06-11Make use of the new xine_osd_set_video_window() in input_vdr.Reinhard Nißl
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-01-10Cast away some compiler warnings.Reinhard Nißl
2009-01-10Fix faked preview data to avoid demuxer warning.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-04fake some data to make demuxer auto detection workLudwig Nussel
2009-01-04use compiled in default for fifo dir if none specified.Ludwig Nussel
This way one can just run xine vdr://
2009-01-04Implement new features for vdr-xine-0.9.0.Reinhard Nißl
2008-05-23Kill a debug fprintf.Darren Salt
2008-05-23Adapt input_vdr to use xine_get_current_frame_data.Darren Salt
2008-05-11Extend xine_get_current_frame to provide cropping and interlacing information.Reinhard Nißl
Cropping information is necessary for frame formats like 1920x1080 which are coded as 1920x1088, i. e. 8 lines are cropped away at the bottom. The information whether a frame is interlaced is necessary for proper upscaling of 4:2:0 frame formats as it must be done per field when the frame is interlaced. Otherwise choma and luma won't match. Make input_vdr.c compile again due to changed xine_get_current_frame.
2008-03-06Fix deadlock in sync point code caused by initial handshake byte.Reinhard Nißl
--HG-- extra : transplant_source : %09%A1%828%A2%19P%09%A0%D7%83%DB.%B3%D2%13%26%7D%10%DC
2008-03-02Make use of the new function xine_get_current_frame_alloc().Reinhard Nißl
The new function allows us to remove pausing the stream as the image data can now be retrieved in a single call. --HG-- extra : transplant_source : %DE%A7%7B%C9%E93%15%AC%1E%3D%A2Ik%E4%D1%AC44w_
2008-03-02Intercept metronom to recognize discontinuities after which PTS is valid.Reinhard Nißl
For various operations, VDR needs to know the current PTS. But to have VDR work correctly, xine-lib's PTS must only be returned to vdr-xine when the PTS is related to the current stream. Intercepting the stream's metronom for monitoring discontinuities serves the need to detect the point in time from which on xine-lib's PTS values are related to the current stream. --HG-- extra : transplant_source : %89%DEe%F0uI%CCMK%27%9E%C3%A6%EC%ACk%13Bh%02
2008-03-02Fix "clear" implementation by introducing sync points in data stream.vdr-xine-version-802Reinhard Nißl
vdr-xine used a padding packet to push out any remaining data before input_vdr executed "clear" to drop that data. But depending on the way how input_vdr is connected to vdr-xine it could happen that the padding packet reached input_vdr after executing "clear" and therefore "clear" didn't work as expected. To fix this issue, sync points are introduced by making the padding packets "unique" in the stream. input_vdr will now drop all data up to the sync point packet. So even if the padding packet arrives later than the "clear" command, only data following the sync point will be fed to the demuxer. --HG-- extra : transplant_source : %A1%5E%8C%E1vmW%98D%1EW%A7%AF%B4V%5D%84%26%D0%DA
2008-03-02Fix a compiler warning regarding const.Reinhard Nißl
--HG-- extra : transplant_source : %FFP%FFI%1EgE%7F%15%AAwQt%AD%08%FB6aO%19
2008-01-02Mark the mrl lists as constant; this trades a warning for another as char ** ↵Diego 'Flameeyes' Pettenò
and const char ** are not compatible.
2007-12-31Change some constants to accommodate recent filename changes.Reinhard Nißl
2007-12-31Combine vdr plugins into a single binary.Reinhard Nißl
Several files were renamed for consistency. --HG-- rename : include/xine/input_vdr.h => include/xine/vdr.h rename : src/vdr/post_vdr.c => src/vdr/combined_vdr.c rename : src/vdr/post_vdr.h => src/vdr/combined_vdr.h
2007-12-31Remove unused preview data from input_vdr.c.Reinhard Nißl
2007-12-31Fix installation of input_vdr.h by moving it to include/xine.Reinhard Nißl
Recent repository changes broke installation of input_vdr.h. --HG-- rename : src/vdr/input_vdr.h => include/xine/input_vdr.h
2007-12-19Update all the code to the new headers layout.Diego 'Flameeyes' Pettenò
2007-12-11Bump the input plugins interface version to 18 as they got updated.Diego 'Flameeyes' Pettenò
2007-12-11Use default_*_class_dispose macro whenever the class dispose function only ↵Diego 'Flameeyes' Pettenò
called free().
2007-12-11Use N_() rather than _(), passing the string just once to gettext().Diego 'Flameeyes' Pettenò
This way the gettext code for description does not need to be repeated by every plugin.
2007-12-11Update all misc plugins to the new identifier/description interface. Add _() ↵Diego 'Flameeyes' Pettenò
where missing, for i18n.
2007-11-20Mark xine_plugin_info structures const as for all the rest of plugins.Diego 'Flameeyes' Pettenò
2007-11-10Provide copyright notice and license. Remove RCS ID.Reinhard Nißl
2007-11-09More updates for FSF address.Diego 'Flameeyes' Pettenò
2007-11-01Fix zooming 16:9 frames and increase verbosity for debugging.Reinhard Nißl
In H.264 there are a couple of aspect ratios which can be thought of as beeing 16:9. The easiest way is to consider all non 4:3 ratios as beeing 16:9 and apply the zoom factors for 16:9 to such frames. Reporting buffer usage is intended to detect replay issues on slow machines.
2007-10-29Trivial consistency tweak.Darren Salt
2007-10-23Use vdr://path/to/fifo and netvdr://host[:port]; cope with any number of "/"s.Darren Salt
2007-10-22vdr:// MRL handling improvements.Darren Salt
Do MRL unescaping. For FIFOs, require vdr:///path/to/fifo (i.e. three or more leading slashes). For host[:port], truncate the MRL at the first "#" (prior to unescaping).
2007-10-22Fix broken usage of macros within translation markup.Darren Salt
2007-10-22Add socket connection support to input_vdr.Reinhard Nißl
2007-10-16Implement VDR's subtitles menu key for vdr-xine-0.7.12.vdr-xine-version-712Reinhard Nißl
2007-06-09Convert all input plugins to use void * as type for the buf parameter of ↵Diego 'Flameeyes' Pettenò
read() function, and declare a new buf variable in the function as needed.
2007-05-17Clean up the vdr plugins' makefile; mark the plugin info as EXPORTED.Darren Salt
2007-04-10Initial import of VDR plugins.vdr-xine-version-711Reinhard Nißl