diff options
author | Reinhard Nißl <rnissl@gmx.de> | 2009-04-12 17:47:06 +0200 |
---|---|---|
committer | Reinhard Nißl <rnissl@gmx.de> | 2009-04-12 17:47:06 +0200 |
commit | 065344253a1c3c8ddbbfb673712e9a11656f29bc (patch) | |
tree | 6e855fad093d57a9b600967f3592da3c5762f2ce /include/xine/vdr.h | |
parent | 63cfee97af9525eaa147e62801ca50493d7ceb2f (diff) | |
download | xine-lib-065344253a1c3c8ddbbfb673712e9a11656f29bc.tar.gz xine-lib-065344253a1c3c8ddbbfb673712e9a11656f29bc.tar.bz2 |
Prepare input_vdr for VDR 1.7.5's requirements on returned STC.
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.
Diffstat (limited to 'include/xine/vdr.h')
-rw-r--r-- | include/xine/vdr.h | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/include/xine/vdr.h b/include/xine/vdr.h index 1f253cdbe..77a7a41f8 100644 --- a/include/xine/vdr.h +++ b/include/xine/vdr.h @@ -22,7 +22,7 @@ #define __VDR_H -#define XINE_VDR_VERSION 900 +#define XINE_VDR_VERSION 901 enum funcs @@ -441,6 +441,7 @@ result_grab_image_t; typedef struct __attribute__((packed)) data_get_pts_s { data_header_t header; + int32_t ms_timeout; } data_get_pts_t; @@ -451,6 +452,7 @@ typedef struct __attribute__((packed)) result_get_pts_s result_header_t header; int64_t pts; + int8_t queued; } result_get_pts_t; |