[prev in list] [next in list] [prev in thread] [next in thread]
List: xine-cvslog
Subject: [xine-cvs] HG: xine-lib-1.2: Merge from 1.1.
From: Darren Salt <linux () youmustbejoking ! demon ! co ! uk>
Date: 2008-02-29 15:18:10
Message-ID: 9fc6fdc5c7959b3a2df0.1204297165 () hg ! debian ! org
[Download RAW message or body]
# HG changeset patch
# User Darren Salt <linux@youmustbejoking.demon.co.uk>
# Date 1204297165 0
# Node ID 9fc6fdc5c7959b3a2df03c0740377b4424e28c44
# Parent 23c7b905daf0344dd6c8bbced36637159d831880
# Parent abc0bc21389f61035e26b8ca961a90b07fb8f68d
Merge from 1.1.
diff -r 9fc6fdc5c7959b3a2df03c0740377b4424e28c44 -r \
23c7b905daf0344dd6c8bbced36637159d831880 ChangeLog
--- a/ChangeLog Fri Feb 29 14:59:25 2008 +0000
+++ b/ChangeLog Thu Feb 28 13:47:59 2008 +0000
@@ -70,6 +70,8 @@ xine-lib (1.1.11) unreleased
* Made the version parsing much more reliable; it wasn't properly coping
with four-part version numbers. This affects any program whose build
scripts use xine-lib's automake macros.
+ * Fixed an off-by-one in the FLAC security fix patch. This breakage was
+ causing failure to play some files.
xine-lib (1.1.10.1) 2008-02-07
* Security fixes:
diff -r 9fc6fdc5c7959b3a2df03c0740377b4424e28c44 -r \
23c7b905daf0344dd6c8bbced36637159d831880 Makefile.am
--- a/Makefile.am Fri Feb 29 14:59:25 2008 +0000
+++ b/Makefile.am Thu Feb 28 13:47:59 2008 +0000
@@ -13,23 +13,19 @@ DEBFILES = debian/README.Debian debian/c
debian/shlibdeps.sh debian/libxine-dev.install debian/libxine1.install
EXTRA_DIST = config.rpath autogen.sh \
- ChangeLog \
configure \
config.guess \
config.sub \
- COPYING \
INSTALL \
install-sh \
libtool \
ltmain.sh \
missing \
- NEWS \
- README \
- TODO \
- depcomp \
- CREDITS
+ depcomp
CONFIG_CLEAN_FILES = libtool
+
+dist_doc_DATA = COPYING NEWS README TODO CREDITS ChangeLog
docs:
@cd doc && $(MAKE) $@
diff -r 9fc6fdc5c7959b3a2df03c0740377b4424e28c44 -r \
23c7b905daf0344dd6c8bbced36637159d831880 doc/Makefile.am
--- a/doc/Makefile.am Fri Feb 29 14:59:25 2008 +0000
+++ b/doc/Makefile.am Thu Feb 28 13:47:59 2008 +0000
@@ -2,13 +2,11 @@ include $(top_srcdir)/misc/Makefile.comm
SUBDIRS = man hackersguide faq
-doc_DATA = README README.dvb README.dxr3 \
+dist_doc_DATA = README README.dvb README.dxr3 \
README.freebsd README.irix README.network_dvd README.opengl \
README.solaris README_xxmc.html README.MINGWCROSS \
README.WIN32 README.macosx
-EXTRA_DIST = $(doc_DATA)
-
docs clean-docs:
@cd faq && $(MAKE) $@
@cd hackersguide && $(MAKE) $@
diff -r 9fc6fdc5c7959b3a2df03c0740377b4424e28c44 -r \
23c7b905daf0344dd6c8bbced36637159d831880 doc/man/en/xine.5
--- a/doc/man/en/xine.5 Fri Feb 29 14:59:25 2008 +0000
+++ b/doc/man/en/xine.5 Thu Feb 28 13:47:59 2008 +0000
@@ -264,7 +264,12 @@ Text subtitle files may be appended to t
.TP
.BI <mrl>#subtitle:<subtitlefile>
This is the normal way to define the subtitle file to use. The frontend will
-not take any notice of the subtitle file.
+not take any notice of the subtitle file. For example:
+.br
+.I file://home/user/wibble.mpg#subtitles:/home/user/wibble.sub
+.br
+(Note that some front ends can detect subtitles files where the name differs
+as shown in the example.)
.br
.SH STREAM OPTIONS
.br
diff -r 9fc6fdc5c7959b3a2df03c0740377b4424e28c44 -r \
23c7b905daf0344dd6c8bbced36637159d831880 \
src/audio_out/audio_pulse_out.c
--- a/src/audio_out/audio_pulse_out.c Fri Feb 29 14:59:25 2008 +0000
+++ b/src/audio_out/audio_pulse_out.c Thu Feb 28 13:47:59 2008 +0000
@@ -246,7 +246,7 @@ static int ao_pulse_open(ao_driver_t *th
pa_threaded_mainloop_lock(this->pa_class->mainloop);
ret = pa_context_connect(this->pa_class->context, this->host, 1, NULL);
if ( ret < 0 )
- goto fail;
+ goto fail_unlock;
pa_context_set_state_callback(this->pa_class->context, \
__xine_pa_context_status_callback, this);
@@ -289,8 +289,9 @@ static int ao_pulse_open(ao_driver_t *th
return this->sample_rate;
-fail:
+ fail_unlock:
pa_threaded_mainloop_unlock(this->pa_class->mainloop);
+ fail:
this_gen->close(this_gen);
return 0;
}
diff -r 9fc6fdc5c7959b3a2df03c0740377b4424e28c44 -r \
23c7b905daf0344dd6c8bbced36637159d831880 \
src/combined/wavpack_demuxer.c
--- a/src/combined/wavpack_demuxer.c Fri Feb 29 14:59:25 2008 +0000
+++ b/src/combined/wavpack_demuxer.c Thu Feb 28 13:47:59 2008 +0000
@@ -368,7 +368,7 @@ void *demux_wv_init_plugin (xine_t *cons
this->demux_class.open_plugin = open_plugin;
this->demux_class.description = N_("Wavpack demux plugin");
this->demux_class.identifier = "Wavpack";
- this->demux_class.mimetypes = NULL;
+ this->demux_class.mimetypes = "audio/x-wavpack";
this->demux_class.extensions = "wv";
this->demux_class.dispose = default_demux_class_dispose;
diff -r 9fc6fdc5c7959b3a2df03c0740377b4424e28c44 -r \
23c7b905daf0344dd6c8bbced36637159d831880 src/demuxers/demux_flac.c
--- a/src/demuxers/demux_flac.c Fri Feb 29 14:59:25 2008 +0000
+++ b/src/demuxers/demux_flac.c Thu Feb 28 13:47:59 2008 +0000
@@ -201,7 +201,7 @@ static int open_flac_file(demux_flac_t *
length = _X_LE_32(ptr);
ptr += 4 + length;
- if (length >= block_length - 8)
+ if (length > block_length - 8)
return 0; /* bad length or too little left in the buffer */
user_comment_list_length = _X_LE_32(ptr);
diff -r 9fc6fdc5c7959b3a2df03c0740377b4424e28c44 -r \
23c7b905daf0344dd6c8bbced36637159d831880 \
src/demuxers/demux_matroska.c
--- a/src/demuxers/demux_matroska.c Fri Feb 29 14:59:25 2008 +0000
+++ b/src/demuxers/demux_matroska.c Thu Feb 28 13:47:59 2008 +0000
@@ -1833,6 +1833,15 @@ static int read_block_data (demux_matros
return 1;
}
+static int parse_int16(uint8_t *data) {
+ int value = (int)_X_BE_16(data);
+ if (value & 1<<15)
+ {
+ value -= 1<<16;
+ }
+ return value;
+}
+
static int parse_block (demux_matroska_t *this, uint64_t block_size,
uint64_t cluster_timecode, uint64_t block_duration,
int normpos, int is_key) {
@@ -1849,8 +1858,9 @@ static int parse_block (demux_matroska_t
if (!(num_len = parse_ebml_uint(this, data, &track_num)))
return 0;
data += num_len;
-
- timecode_diff = (int)_X_BE_16(data);
+
+ /* timecode_diff is signed */
+ timecode_diff = parse_int16(data);
data += 2;
flags = *data;
diff -r 9fc6fdc5c7959b3a2df03c0740377b4424e28c44 -r \
23c7b905daf0344dd6c8bbced36637159d831880 src/demuxers/id3.c
--- a/src/demuxers/id3.c Fri Feb 29 14:59:25 2008 +0000
+++ b/src/demuxers/id3.c Thu Feb 28 13:47:59 2008 +0000
@@ -543,6 +543,7 @@ int id3v23_parse_tag(input_plugin_t *inp
if (!id3v23_parse_frame_ext_header(input, &tag_frame_ext_header)) {
return 0;
}
+ pos += tag_frame_ext_header.size;
}
/* frame parsing */
while ((pos + ID3V23_FRAME_HEADER_SIZE) <= tag_header.size) {
@@ -563,7 +564,8 @@ int id3v23_parse_tag(input_plugin_t *inp
pos += tag_frame_header.size;
} else {
/* end of frames, the rest is padding */
- input->seek (input, tag_header.size - pos, SEEK_CUR);
+ lprintf("skipping padding %d bytes\n", tag_header.size - pos);
+ input->seek (input, tag_header.size - pos, SEEK_CUR);
return 1;
}
} else {
@@ -785,6 +787,7 @@ int id3v24_parse_tag(input_plugin_t *inp
if (!id3v24_parse_ext_header(input, &tag_frame_ext_header)) {
return 0;
}
+ pos += tag_frame_ext_header.size;
}
/* frame parsing */
while ((pos + ID3V24_FRAME_HEADER_SIZE) <= tag_header.size) {
diff -r 9fc6fdc5c7959b3a2df03c0740377b4424e28c44 -r \
23c7b905daf0344dd6c8bbced36637159d831880 \
src/video_out/video_out_xcbxv.c
--- a/src/video_out/video_out_xcbxv.c Fri Feb 29 14:59:25 2008 +0000
+++ b/src/video_out/video_out_xcbxv.c Thu Feb 28 13:47:59 2008 +0000
@@ -1085,6 +1085,27 @@ static void xv_update_XV_DOUBLE_BUFFER(v
xprintf(this->xine, XINE_VERBOSITY_DEBUG,
LOG_MODULE ": double buffering mode = %d\n", xv_double_buffer);
}
+
+static void xv_update_XV_SYNC_TO_VBLANK(void *this_gen, xine_cfg_entry_t *entry) {
+ xv_driver_t *this = (xv_driver_t *) this_gen;
+ int xv_sync_to_vblank;
+
+ xcb_intern_atom_cookie_t atom_cookie;
+ xcb_intern_atom_reply_t *atom_reply;
+
+ xv_sync_to_vblank = entry->num_value;
+
+ pthread_mutex_lock(&this->main_mutex);
+ atom_cookie = xcb_intern_atom(this->connection, 0, sizeof("XV_SYNC_TO_VBLANK"), \
"XV_SYNC_TO_VBLANK"); + atom_reply = xcb_intern_atom_reply(this->connection, \
atom_cookie, NULL); + xcb_xv_set_port_attribute(this->connection, this->xv_port, \
atom_reply->atom, xv_sync_to_vblank); + free(atom_reply);
+ pthread_mutex_unlock(&this->main_mutex);
+
+ xprintf(this->xine, XINE_VERBOSITY_DEBUG,
+ "video_out_xcbxv: sync to vblank = %d\n", xv_sync_to_vblank);
+}
+
static void xv_update_xv_pitch_alignment(void *this_gen, xine_cfg_entry_t *entry) {
xv_driver_t *this = (xv_driver_t *) this_gen;
@@ -1342,6 +1363,18 @@ static vo_driver_t *open_plugin(video_dr
VIDEO_DEVICE_XV_DOUBLE_BUFFER_HELP,
20, xv_update_XV_DOUBLE_BUFFER, this);
config->update_num(config,"video.device.xv_double_buffer",xv_double_buffer);
+ } else if(!strcmp(xcb_xv_attribute_info_name(attribute_it.data), \
"XV_SYNC_TO_VBLANK")) { + int xv_sync_to_vblank;
+ xv_sync_to_vblank =
+ config->register_bool (config, "video.device.xv_sync_to_vblank", 1,
+ _("enable vblank sync"),
+ _("This option will synchronize the update of the video image to the "
+ "repainting of the entire screen (\"vertical retrace\"). This eliminates "
+ "flickering and tearing artifacts. On nvidia cards one may also "
+ "need to run \"nvidia-settings\" and choose which display device to "
+ "sync to under the XVideo Settings tab"),
+ 20, xv_update_XV_SYNC_TO_VBLANK, this);
+ config->update_num(config,"video.device.xv_sync_to_vblank",xv_sync_to_vblank);
}
}
}
diff -r 9fc6fdc5c7959b3a2df03c0740377b4424e28c44 -r \
23c7b905daf0344dd6c8bbced36637159d831880 src/video_out/video_out_xv.c
--- a/src/video_out/video_out_xv.c Fri Feb 29 14:59:25 2008 +0000
+++ b/src/video_out/video_out_xv.c Thu Feb 28 13:47:59 2008 +0000
@@ -1128,6 +1128,22 @@ static void xv_update_XV_DOUBLE_BUFFER(v
xprintf(this->xine, XINE_VERBOSITY_DEBUG,
LOG_MODULE ": double buffering mode = %d\n", xv_double_buffer);
+}
+
+static void xv_update_XV_SYNC_TO_VBLANK(void *this_gen, xine_cfg_entry_t *entry) {
+ xv_driver_t *this = (xv_driver_t *) this_gen;
+ Atom atom;
+ int xv_sync_to_vblank;
+
+ xv_sync_to_vblank = entry->num_value;
+
+ LOCK_DISPLAY(this);
+ atom = XInternAtom (this->display, "XV_SYNC_TO_VBLANK", False);
+ XvSetPortAttribute (this->display, this->xv_port, atom, xv_sync_to_vblank);
+ UNLOCK_DISPLAY(this);
+
+ xprintf(this->xine, XINE_VERBOSITY_DEBUG,
+ "video_out_xv: sync to vblank = %d\n", xv_sync_to_vblank);
}
static void xv_update_xv_pitch_alignment(void *this_gen, xine_cfg_entry_t *entry) {
@@ -1390,6 +1406,18 @@ static vo_driver_t *open_plugin_2 (video
VIDEO_DEVICE_XV_DOUBLE_BUFFER_HELP,
20, xv_update_XV_DOUBLE_BUFFER, this);
config->update_num(config,"video.device.xv_double_buffer",xv_double_buffer);
+ } else if(!strcmp(attr[k].name, "XV_SYNC_TO_VBLANK")) {
+ int xv_sync_to_vblank;
+ xv_sync_to_vblank =
+ config->register_bool (config, "video.device.xv_sync_to_vblank", 1,
+ _("enable vblank sync"),
+ _("This option will synchronize the update of the video image to the "
+ "repainting of the entire screen (\"vertical retrace\"). This eliminates "
+ "flickering and tearing artifacts. On nvidia cards one may also "
+ "need to run \"nvidia-settings\" and choose which display device to "
+ "sync to under the XVideo Settings tab"),
+ 20, xv_update_XV_SYNC_TO_VBLANK, this);
+ config->update_num(config,"video.device.xv_sync_to_vblank",xv_sync_to_vblank);
}
}
}
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Xine-cvslog mailing list
Xine-cvslog@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/xine-cvslog
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic