diff options
author | František Dvořák <valtri@users.sourceforge.net> | 2006-01-01 21:28:31 +0000 |
---|---|---|
committer | František Dvořák <valtri@users.sourceforge.net> | 2006-01-01 21:28:31 +0000 |
commit | feb563384bc37729b57086bbf6cc1170f1e63eae (patch) | |
tree | 1afdd6d5931bb980c377192f1897bc61ec795924 | |
parent | 6edfbdb15a312fc1cecb116a1462f2ceda248195 (diff) | |
download | xine-lib-feb563384bc37729b57086bbf6cc1170f1e63eae.tar.gz xine-lib-feb563384bc37729b57086bbf6cc1170f1e63eae.tar.bz2 |
*BUGFIX*
Added missing function to VCD plugin from original sources
(thanks to Gert Vervoort).
Fixed Changelog (added 1.0.3 entries, the new ones go to 1.0.4).
CVS patchset: 7829
CVS date: 2006/01/01 21:28:31
-rw-r--r-- | ChangeLog | 8 | ||||
-rw-r--r-- | src/input/vcd/libvcd/info.c | 61 |
2 files changed, 65 insertions, 4 deletions
@@ -38,11 +38,15 @@ xine-lib (1.1.0) needed for the ASX parser; deprecates plain MRL reference events. * goom updated to 2k4-0 -xine-lib (1.0.3) +xine-lib (1.0.4) * tiny doc update * build fixes and cross build improvements * fixed an align problem in Win32 DirectX video output plugin - + +xine-lib (1.0.3) + * fixed format string vulnerability in audio CD input plugin + * some build system fixes for Windows + xine-lib (1.0.2) * fixed playback of single-session Real RTSP streams, such as rtsp://stream.samurai.fm/broadcast/live_hi.rm diff --git a/src/input/vcd/libvcd/info.c b/src/input/vcd/libvcd/info.c index c18444676..d98f9b9a9 100644 --- a/src/input/vcd/libvcd/info.c +++ b/src/input/vcd/libvcd/info.c @@ -1,5 +1,5 @@ /* - $Id: info.c,v 1.4 2005/06/14 17:17:45 rockyb Exp $ + $Id: info.c,v 1.5 2006/01/01 21:28:32 valtri Exp $ Copyright (C) 2002, 2003, 2004 Rocky Bernstein <rocky@panix.com> @@ -59,7 +59,7 @@ #include <stddef.h> #include <errno.h> -static const char _rcsid[] = "$Id: info.c,v 1.4 2005/06/14 17:17:45 rockyb Exp $"; +static const char _rcsid[] = "$Id: info.c,v 1.5 2006/01/01 21:28:32 valtri Exp $"; #define BUF_COUNT 16 #define BUF_SIZE 80 @@ -1208,6 +1208,63 @@ vcdinfo_get_seg_msf(const vcdinfo_obj_t *obj, segnum_t seg_num) } } +/*! Return the x-y resolution for a given segment. + Note first i_seg is 0. +*/ +void +vcdinfo_get_seg_resolution(const vcdinfo_obj_t *p_vcdinfo, segnum_t i_seg, + /*out*/ uint16_t *max_x, /*out*/ uint16_t *max_y) +{ + vcdinfo_video_segment_type_t segtype + = vcdinfo_get_video_type(p_vcdinfo, i_seg); + segnum_t i_segs = vcdinfo_get_num_segments(p_vcdinfo); + + if (i_seg >= i_segs) return; + + switch (segtype) { + case VCDINFO_FILES_VIDEO_NTSC_STILL: + *max_x = 704; + *max_y = 480; + break; + case VCDINFO_FILES_VIDEO_NTSC_STILL2: + *max_x = 352; + *max_y = 240; + break; + case VCDINFO_FILES_VIDEO_PAL_STILL: + *max_x = 704; + *max_y = 576; + break; + case VCDINFO_FILES_VIDEO_PAL_STILL2: + *max_x = 352; + *max_y = 288; + break; + default: + /* */ + switch (vcdinfo_get_format_version(p_vcdinfo)) { + case VCD_TYPE_VCD: + *max_x = 352; + *max_y = 240; + break; + case VCD_TYPE_VCD11: + case VCD_TYPE_VCD2: + *max_x = 352; + switch(segtype) { + case VCDINFO_FILES_VIDEO_NTSC_MOTION: + *max_y = 240; + break; + case VCDINFO_FILES_VIDEO_PAL_MOTION: + *max_y = 288; + default: + *max_y = 289; + } + break; + default: ; + } + } +} + + + /*! Return the number of sectors for segment entry_num in obj. 0 is returned if there is no entry. |