summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDarren Salt <linux@youmustbejoking.demon.co.uk>2009-12-12 03:05:33 +0000
committerDarren Salt <linux@youmustbejoking.demon.co.uk>2009-12-12 03:05:33 +0000
commit8bd8e600bf475426cbcd5b8f8f89fb2d6e53ec29 (patch)
tree96f97a7a8bc898ff7036c3a0c8ec366530c059b2 /src
parent258ff7f5eef3a0813f04c4c78f28f50fb601bef7 (diff)
parentd6e3f2809541eb3b0753222a582d30bc13c31b55 (diff)
downloadxine-lib-8bd8e600bf475426cbcd5b8f8f89fb2d6e53ec29.tar.gz
xine-lib-8bd8e600bf475426cbcd5b8f8f89fb2d6e53ec29.tar.bz2
Merge from 1.1.
--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
Diffstat (limited to 'src')
-rw-r--r--src/combined/flac_decoder.c2
-rw-r--r--src/demuxers/Makefile.am2
-rw-r--r--src/demuxers/demux_flac.c9
-rw-r--r--src/demuxers/demux_tta.c53
-rw-r--r--src/input/input_pvr.c2
-rw-r--r--src/spu_dec/spuhdmv_decoder.c78
-rw-r--r--src/xine-engine/audio_out.c2
-rw-r--r--src/xine-engine/broadcaster.c2
-rw-r--r--src/xine-engine/events.c2
-rw-r--r--src/xine-engine/video_out.c2
10 files changed, 101 insertions, 53 deletions
diff --git a/src/combined/flac_decoder.c b/src/combined/flac_decoder.c
index 94c0d30f2..312749c7b 100644
--- a/src/combined/flac_decoder.c
+++ b/src/combined/flac_decoder.c
@@ -404,7 +404,7 @@ static const uint32_t audio_types[] = {
static const decoder_info_t dec_info_audio = {
audio_types, /* supported types */
- 5 /* priority */
+ 8 /* priority */
};
const plugin_info_t xine_plugin_info[] EXPORTED = {
diff --git a/src/demuxers/Makefile.am b/src/demuxers/Makefile.am
index 95d143095..39ce2ebb3 100644
--- a/src/demuxers/Makefile.am
+++ b/src/demuxers/Makefile.am
@@ -62,7 +62,7 @@ xineplug_dmx_mpeg_block_la_CFLAGS = $(AM_CFLAGS) $(AVUTIL_CFLAGS)
xineplug_dmx_mpeg_block_la_LIBADD = $(XINE_LIB) $(LTLIBINTL) $(AVUTIL_LIBS)
xineplug_dmx_mpeg_la_SOURCES = demux_mpeg.c
-xineplug_dmx_mpeg_la_LIBADD = $(XINE_LIB)
+xineplug_dmx_mpeg_la_LIBADD = $(XINE_LIB) $(LTLIBINTL)
xineplug_dmx_mpeg_elem_la_SOURCES = demux_elem.c
xineplug_dmx_mpeg_elem_la_LIBADD = $(XINE_LIB)
diff --git a/src/demuxers/demux_flac.c b/src/demuxers/demux_flac.c
index 508a8264b..0c2545441 100644
--- a/src/demuxers/demux_flac.c
+++ b/src/demuxers/demux_flac.c
@@ -466,6 +466,13 @@ static int demux_flac_seek (demux_plugin_t *this_gen,
return this->status;
}
+static void demux_flac_dispose (demux_plugin_t *this_gen) {
+ demux_flac_t *this = (demux_flac_t *) this_gen;
+
+ free(this->seekpoints);
+ free(this);
+}
+
static int demux_flac_get_status (demux_plugin_t *this_gen) {
demux_flac_t *this = (demux_flac_t *) this_gen;
@@ -509,7 +516,7 @@ static demux_plugin_t *open_plugin (demux_class_t *class_gen, xine_stream_t *str
this->demux_plugin.send_headers = demux_flac_send_headers;
this->demux_plugin.send_chunk = demux_flac_send_chunk;
this->demux_plugin.seek = demux_flac_seek;
- this->demux_plugin.dispose = default_demux_plugin_dispose;
+ this->demux_plugin.dispose = demux_flac_dispose;
this->demux_plugin.get_status = demux_flac_get_status;
this->demux_plugin.get_stream_length = demux_flac_get_stream_length;
this->demux_plugin.get_capabilities = demux_flac_get_capabilities;
diff --git a/src/demuxers/demux_tta.c b/src/demuxers/demux_tta.c
index 8e7462d66..8f8f954d5 100644
--- a/src/demuxers/demux_tta.c
+++ b/src/demuxers/demux_tta.c
@@ -19,6 +19,8 @@
*
* True Audio demuxer by Diego Pettenò <flameeyes@gentoo.org>
* Inspired by tta libavformat demuxer by Alex Beregszaszi
+ *
+ * Seek + time support added by Kelvie Wong <kelvie@ieee.org>
*/
#ifdef HAVE_CONFIG_H
@@ -28,6 +30,10 @@
#define LOG_MODULE "demux_tta"
#define LOG_VERBOSE
+// This is from the TTA spec, the length (in seconds) of a frame
+// http://www.true-audio.com/TTA_Lossless_Audio_Codec_-_Format_Description
+#define FRAME_TIME 1.04489795918367346939
+
#include <xine/xine_internal.h>
#include <xine/xineutils.h>
#include <xine/demux.h>
@@ -48,6 +54,8 @@ typedef struct {
uint32_t totalframes;
uint32_t currentframe;
+ off_t datastart;
+
int status;
union {
@@ -81,7 +89,7 @@ static int open_tta_file(demux_tta_t *this) {
if ( this->input->read(this->input, this->header.buffer, sizeof(this->header)) != sizeof(this->header) )
return 0;
- framelen = 1.04489795918367346939 * le2me_32(this->header.tta.samplerate);
+ framelen = (uint32_t)(FRAME_TIME * le2me_32(this->header.tta.samplerate));
this->totalframes = le2me_32(this->header.tta.data_length) / framelen + ((le2me_32(this->header.tta.data_length) % framelen) ? 1 : 0);
this->currentframe = 0;
@@ -96,6 +104,9 @@ static int open_tta_file(demux_tta_t *this) {
/* Skip the CRC32 */
this->input->seek(this->input, 4, SEEK_CUR);
+ /* Store the offset after the header for seeking */
+ this->datastart = this->input->get_current_pos(this->input);
+
return 1;
}
@@ -126,7 +137,7 @@ static int demux_tta_send_chunk(demux_plugin_t *this_gen) {
(int) ((double) this->currentframe * 65535 / this->totalframes);
/* Set time */
- /* buf->extra_info->input_time = this->current_sample / this->samplerate; */
+ buf->extra_info->input_time = (int)(FRAME_TIME * this->currentframe)*1000;
bytes_read = this->input->read(this->input, buf->content, ( bytes_to_read > buf->max_size ) ? buf->max_size : bytes_to_read);
if (bytes_read < 0) {
@@ -195,6 +206,9 @@ static void demux_tta_send_headers(demux_plugin_t *this_gen) {
static int demux_tta_seek (demux_plugin_t *this_gen,
off_t start_pos, int start_time, int playing) {
demux_tta_t *this = (demux_tta_t *) this_gen;
+ uint32_t start_frame;
+ uint32_t frame_index;
+ off_t start_off = this->datastart;
/* if thread is not running, initialize demuxer */
if( !playing ) {
@@ -203,11 +217,39 @@ static int demux_tta_seek (demux_plugin_t *this_gen,
_x_demux_control_newpts(this->stream, 0, 0);
this->status = DEMUX_OK;
+
+ } else {
+
+ /* Get the starting frame */
+ if( start_pos )
+ start_frame = start_pos * this->totalframes / 65535;
+ else
+ start_frame = (uint32_t)((double)start_time/ 1000.0 / FRAME_TIME);
+
+ /* Now we find the offset */
+ for( frame_index = 0; frame_index < start_frame; frame_index++ )
+ start_off += le2me_32(this->seektable[frame_index]);
+
+ /* Let's seek! We store the current frame internally, so let's update that
+ * as well */
+ _x_demux_flush_engine(this->stream);
+ this->input->seek(this->input, start_off, SEEK_SET);
+ this->currentframe = start_frame;
+ _x_demux_control_newpts(this->stream, (int)(FRAME_TIME * start_frame) * 90000, BUF_FLAG_SEEK);
+
+ this->status = DEMUX_OK;
}
return this->status;
}
+static void demux_tta_dispose (demux_plugin_t *this_gen) {
+ demux_tta_t *this = (demux_tta_t *) this_gen;
+
+ free(this->seektable);
+ free(this);
+}
+
static int demux_tta_get_status (demux_plugin_t *this_gen) {
demux_tta_t *this = (demux_tta_t *) this_gen;
@@ -215,9 +257,8 @@ static int demux_tta_get_status (demux_plugin_t *this_gen) {
}
static int demux_tta_get_stream_length (demux_plugin_t *this_gen) {
-// demux_tta_t *this = (demux_tta_t *) this_gen;
-
- return 0;
+ demux_tta_t *this = (demux_tta_t *) this_gen;
+ return (int)(FRAME_TIME * this->totalframes * 1000);
}
static uint32_t demux_tta_get_capabilities(demux_plugin_t *this_gen) {
@@ -241,7 +282,7 @@ static demux_plugin_t *open_plugin (demux_class_t *class_gen, xine_stream_t *str
this->demux_plugin.send_headers = demux_tta_send_headers;
this->demux_plugin.send_chunk = demux_tta_send_chunk;
this->demux_plugin.seek = demux_tta_seek;
- this->demux_plugin.dispose = default_demux_plugin_dispose;
+ this->demux_plugin.dispose = demux_tta_dispose;
this->demux_plugin.get_status = demux_tta_get_status;
this->demux_plugin.get_stream_length = demux_tta_get_stream_length;
this->demux_plugin.get_capabilities = demux_tta_get_capabilities;
diff --git a/src/input/input_pvr.c b/src/input/input_pvr.c
index 813ec4c1e..288434c47 100644
--- a/src/input/input_pvr.c
+++ b/src/input/input_pvr.c
@@ -1454,7 +1454,7 @@ static int pvr_plugin_open (input_plugin_t *this_gen ) {
if ((err = pthread_create (&this->pvr_thread,
NULL, pvr_loop, this)) != 0) {
- xprintf (this->stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf (this->stream->xine, XINE_VERBOSITY_NONE,
"input_pvr: can't create new thread (%s)\n", strerror(err));
_x_abort();
}
diff --git a/src/spu_dec/spuhdmv_decoder.c b/src/spu_dec/spuhdmv_decoder.c
index bcd52ee3f..93e232678 100644
--- a/src/spu_dec/spuhdmv_decoder.c
+++ b/src/spu_dec/spuhdmv_decoder.c
@@ -37,9 +37,9 @@
#include <xine/video_out.h>
#include <xine/video_overlay.h>
-#define TRACE(x...) printf(x)
+#define XINE_HDMV_TRACE(x...) printf(x)
/*#define TRACE(x...) */
-#define ERROR(x...) fprintf(stderr, "spuhdmv: " x)
+#define XINE_HDMV_ERROR(x...) fprintf(stderr, "spuhdmv: " x)
/*#define ERROR(x...) lprintf(x) */
/*
@@ -65,7 +65,7 @@ struct subtitle_object_s {
uint16_t width, height;
rle_elem_t *rle;
- uint num_rle;
+ unsigned int num_rle;
size_t data_size;
#if 0
@@ -142,7 +142,7 @@ struct presentation_segment_s {
#define LIST_REPLACE(list, obj, FREE_FUNC) \
do { \
- uint id = obj->id; \
+ unsigned int id = obj->id; \
\
/* insert to list */ \
obj->next = list; \
@@ -244,7 +244,7 @@ static void segbuf_parse_segment_header(segment_buffer_t *buf)
if ( buf->segment_type < 0x14 ||
( buf->segment_type > 0x18 &&
buf->segment_type != 0x80)) {
- ERROR("unknown segment type, resetting\n");
+ XINE_HDMV_ERROR("unknown segment type, resetting\n");
segbuf_reset(buf);
}
} else {
@@ -283,10 +283,10 @@ static void segbuf_skip_segment(segment_buffer_t *buf)
segbuf_parse_segment_header(buf);
- TRACE(" skip_segment: %d bytes left\n", (uint)buf->len);
+ XINE_HDMV_TRACE(" skip_segment: %zd bytes left\n", buf->len);
} else {
- ERROR(" skip_segment: ERROR - %d bytes queued, %d required\n",
- (uint)buf->len, buf->segment_len);
+ XINE_HDMV_ERROR(" skip_segment: ERROR - %zd bytes queued, %d required\n",
+ buf->len, buf->segment_len);
segbuf_reset (buf);
}
}
@@ -311,7 +311,7 @@ static uint8_t segbuf_get_u8(segment_buffer_t *buf)
{
if (!(buf->error = ++buf->segment_data > buf->segment_end))
return buf->segment_data[-1];
- ERROR("segbuf_get_u8: read failed (end of segment reached) !");
+ XINE_HDMV_ERROR("segbuf_get_u8: read failed (end of segment reached) !");
return 0;
}
@@ -333,7 +333,7 @@ static uint8_t *segbuf_get_string(segment_buffer_t *buf, size_t len)
if (buf->segment_data <= buf->segment_end)
return val;
}
- ERROR("segbuf_get_string(%d): read failed (end of segment reached) !", (int)len);
+ XINE_HDMV_ERROR("segbuf_get_string(%zd): read failed (end of segment reached) !", len);
buf->error = 1;
return NULL;
}
@@ -355,12 +355,12 @@ static subtitle_clut_t *segbuf_decode_palette(segment_buffer_t *buf)
return NULL;
if (len % 5) {
- ERROR(" decode_palette: segment size error (%d ; expected %d for %d entries)\n",
- (uint)len, (uint)(5 * entries), (uint)entries);
+ XINE_HDMV_ERROR(" decode_palette: segment size error (%zd ; expected %zd for %zd entries)\n",
+ len, (5 * entries), entries);
return NULL;
}
- TRACE("decode_palette: %d items (id %d, version %d)\n",
- (uint)entries, palette_id, palette_version_number);
+ XINE_HDMV_TRACE("decode_palette: %zd items (id %d, version %d)\n",
+ entries, palette_id, palette_version_number);
/* convert to xine-lib clut */
subtitle_clut_t *clut = calloc(1, sizeof(subtitle_clut_t));
@@ -449,7 +449,7 @@ static subtitle_object_t *segbuf_decode_object(segment_buffer_t *buf)
uint8_t version = segbuf_get_u8 (buf);
uint8_t seq_desc = segbuf_get_u8 (buf);
- TRACE(" decode_object: object_id %d, version %d, seq 0x%x\n",
+ XINE_HDMV_TRACE(" decode_object: object_id %d, version %d, seq 0x%x\n",
object_id, version, seq_desc);
//LIST_FIND();
@@ -462,7 +462,7 @@ static subtitle_object_t *segbuf_decode_object(segment_buffer_t *buf)
obj->width = segbuf_get_u16(buf);
obj->height = segbuf_get_u16(buf);
- TRACE(" object length %d bytes, size %dx%d\n", data_len, obj->width, obj->height);
+ XINE_HDMV_TRACE(" object length %d bytes, size %dx%d\n", data_len, obj->width, obj->height);
segbuf_decode_rle (buf, obj);
@@ -472,7 +472,7 @@ static subtitle_object_t *segbuf_decode_object(segment_buffer_t *buf)
}
} else {
- ERROR(" TODO: APPEND RLE, length %d bytes\n", buf->segment_len - 4);
+ XINE_HDMV_ERROR(" TODO: APPEND RLE, length %d bytes\n", buf->segment_len - 4);
/* TODO */
free_subtitle_object(obj);
return NULL;
@@ -492,7 +492,7 @@ static window_def_t *segbuf_decode_window_definition(segment_buffer_t *buf)
wnd->width = segbuf_get_u16 (buf);
wnd->height = segbuf_get_u16 (buf);
- TRACE(" window: [%02x %d] %d,%d %dx%d\n", a,
+ XINE_HDMV_TRACE(" window: [%02x %d] %d,%d %dx%d\n", a,
wnd->id, wnd->xpos, wnd->ypos, wnd->width, wnd->height);
if (buf->error) {
@@ -509,7 +509,7 @@ static int segbuf_decode_video_descriptor(segment_buffer_t *buf)
uint16_t height = segbuf_get_u16(buf);
uint8_t frame_rate = segbuf_get_u8 (buf);
- TRACE(" video_descriptor: %dx%d fps %d\n", width, height, frame_rate);
+ XINE_HDMV_TRACE(" video_descriptor: %dx%d fps %d\n", width, height, frame_rate);
return buf->error;
}
@@ -518,7 +518,7 @@ static int segbuf_decode_composition_descriptor(segment_buffer_t *buf, compositi
descr->number = segbuf_get_u16(buf);
descr->state = segbuf_get_u8 (buf);
- TRACE(" composition_descriptor: number %d, state %d\n", descr->number, descr->state);
+ XINE_HDMV_TRACE(" composition_descriptor: number %d, state %d\n", descr->number, descr->state);
return buf->error;
}
@@ -547,7 +547,7 @@ static composition_object_t *segbuf_decode_composition_object(segment_buffer_t *
return NULL;
}
- TRACE(" composition_object: id: %d, win: %d, position %d,%d crop %d forced %d\n",
+ XINE_HDMV_TRACE(" composition_object: id: %d, win: %d, position %d,%d crop %d forced %d\n",
cobj->object_id_ref, cobj->window_id_ref, cobj->xpos, cobj->ypos,
cobj->cropped_flag, cobj->forced_flag);
@@ -566,7 +566,7 @@ static presentation_segment_t *segbuf_decode_presentation_segment(segment_buffer
seg->palette_id_ref = segbuf_get_u8 (buf);
seg->object_number = segbuf_get_u8 (buf);
- TRACE(" presentation_segment: object_number %d, palette %d\n",
+ XINE_HDMV_TRACE(" presentation_segment: object_number %d, palette %d\n",
seg->object_number, seg->palette_id_ref);
for (index = 0; index < seg->object_number; index++) {
@@ -673,7 +673,7 @@ static int decode_presentation_segment(spuhdmv_decoder_t *this)
return 0;
}
-static int show_overlay(spuhdmv_decoder_t *this, composition_object_t *cobj, uint palette_id_ref,
+static int show_overlay(spuhdmv_decoder_t *this, composition_object_t *cobj, unsigned int palette_id_ref,
int overlay_index, int64_t pts, int force_update)
{
video_overlay_manager_t *ovl_manager = this->stream->video_out->get_overlay_manager(this->stream->video_out);
@@ -686,7 +686,7 @@ static int show_overlay(spuhdmv_decoder_t *this, composition_object_t *cobj, uin
while (clut && clut->id != palette_id_ref)
clut = clut->next;
if (!clut) {
- TRACE(" show_overlay: clut %d not found !\n", palette_id_ref);
+ XINE_HDMV_TRACE(" show_overlay: clut %d not found !\n", palette_id_ref);
return -1;
}
@@ -695,7 +695,7 @@ static int show_overlay(spuhdmv_decoder_t *this, composition_object_t *cobj, uin
while (obj && obj->id != cobj->object_id_ref)
obj = obj->next;
if (!obj) {
- TRACE(" show_overlay: object %d not found !\n", cobj->object_id_ref);
+ XINE_HDMV_TRACE(" show_overlay: object %d not found !\n", cobj->object_id_ref);
return -1;
}
@@ -704,7 +704,7 @@ static int show_overlay(spuhdmv_decoder_t *this, composition_object_t *cobj, uin
while (wnd && wnd->id != cobj->window_id_ref)
wnd = wnd->next;
if (!wnd) {
- TRACE(" show_overlay: window %d not found !\n", cobj->window_id_ref);
+ XINE_HDMV_TRACE(" show_overlay: window %d not found !\n", cobj->window_id_ref);
return -1;
}
@@ -737,7 +737,7 @@ static int show_overlay(spuhdmv_decoder_t *this, composition_object_t *cobj, uin
overlay.hili_left = -1;
overlay.hili_right = -1;
- TRACE(" -> overlay: %d,%d %dx%d\n",
+ XINE_HDMV_TRACE(" -> overlay: %d,%d %dx%d\n",
overlay.x, overlay.y, overlay.width, overlay.height);
@@ -772,7 +772,7 @@ static void hide_overlays(spuhdmv_decoder_t *this, int64_t pts)
int i = 0;
while (this->overlay_handles[i] >= 0) {
- TRACE(" -> HIDE %d\n", i);
+ XINE_HDMV_TRACE(" -> HIDE %d\n", i);
video_overlay_manager_t *ovl_manager = this->stream->video_out->get_overlay_manager(this->stream->video_out);
metronom_t *metronom = this->stream->metronom;
@@ -811,7 +811,7 @@ static void update_overlays(spuhdmv_decoder_t *this)
for (i = 0; i < pseg->object_number; i++) {
if (!cobj) {
- ERROR("show_overlays: composition object %d missing !\n", i);
+ XINE_HDMV_ERROR("show_overlays: composition object %d missing !\n", i);
} else {
show_overlay(this, cobj, pseg->palette_id_ref, i, pseg->pts, !pseg->shown);
cobj = cobj->next;
@@ -835,40 +835,40 @@ static void free_objs(spuhdmv_decoder_t *this)
static void decode_segment(spuhdmv_decoder_t *this)
{
- TRACE("*** new segment, pts %010ld: 0x%02x (%8d bytes)",
- this->pts, (uint)this->buf->segment_type, (uint)this->buf->segment_len);
+ XINE_HDMV_TRACE("*** new segment, pts %010ld: 0x%02x (%8d bytes)",
+ this->pts, this->buf->segment_type, this->buf->segment_len);
switch (this->buf->segment_type) {
case 0x14:
- TRACE(" segment: PALETTE\n");
+ XINE_HDMV_TRACE(" segment: PALETTE\n");
decode_palette(this);
break;
case 0x15:
- TRACE(" segment: OBJECT\n");
+ XINE_HDMV_TRACE(" segment: OBJECT\n");
decode_object(this);
break;
case 0x16:
- TRACE(" segment: PRESENTATION SEGMENT\n");
+ XINE_HDMV_TRACE(" segment: PRESENTATION SEGMENT\n");
decode_presentation_segment(this);
break;
case 0x17:
- TRACE(" segment: WINDOW DEFINITION\n");
+ XINE_HDMV_TRACE(" segment: WINDOW DEFINITION\n");
decode_window_definition(this);
break;
case 0x18:
- TRACE(" segment: INTERACTIVE\n");
+ XINE_HDMV_TRACE(" segment: INTERACTIVE\n");
break;
case 0x80:
- TRACE(" segment: END OF DISPLAY\n");
+ XINE_HDMV_TRACE(" segment: END OF DISPLAY\n");
/* drop all cached objects */
free_objs(this);
break;
default:
- ERROR(" segment type 0x%x unknown, skipping\n", this->buf->segment_type);
+ XINE_HDMV_ERROR(" segment type 0x%x unknown, skipping\n", this->buf->segment_type);
break;
}
if (this->buf->error) {
- ERROR("*** DECODE ERROR ***\n");
+ XINE_HDMV_ERROR("*** DECODE ERROR ***\n");
}
update_overlays (this);
diff --git a/src/xine-engine/audio_out.c b/src/xine-engine/audio_out.c
index c9daa4e4e..3a11aa238 100644
--- a/src/xine-engine/audio_out.c
+++ b/src/xine-engine/audio_out.c
@@ -2287,7 +2287,7 @@ xine_audio_port_t *_x_ao_new_port (xine_t *xine, ao_driver_t *driver,
if ((err = pthread_create (&this->audio_thread,
&pth_attrs, ao_loop, this)) != 0) {
- xprintf (this->xine, XINE_VERBOSITY_DEBUG,
+ xprintf (this->xine, XINE_VERBOSITY_NONE,
"audio_out: can't create thread (%s)\n", strerror(err));
xprintf (this->xine, XINE_VERBOSITY_LOG,
_("audio_out: sorry, this should not happen. please restart xine.\n"));
diff --git a/src/xine-engine/broadcaster.c b/src/xine-engine/broadcaster.c
index 24f2ef636..f5ac0156f 100644
--- a/src/xine-engine/broadcaster.c
+++ b/src/xine-engine/broadcaster.c
@@ -344,7 +344,7 @@ broadcaster_t *_x_init_broadcaster(xine_stream_t *stream, int port)
this->running = 1;
if ((err = pthread_create (&this->manager_thread,
NULL, manager_loop, (void *)this)) != 0) {
- xprintf (stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf (stream->xine, XINE_VERBOSITY_NONE,
"broadcaster: can't create new thread (%s)\n", strerror(err));
_x_abort();
}
diff --git a/src/xine-engine/events.c b/src/xine-engine/events.c
index 3c2c28f6d..33d9988be 100644
--- a/src/xine-engine/events.c
+++ b/src/xine-engine/events.c
@@ -244,7 +244,7 @@ void xine_event_create_listener_thread (xine_event_queue_t *queue,
if ((err = pthread_create (queue->listener_thread,
NULL, listener_loop, queue)) != 0) {
- xprintf (queue->stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf (queue->stream->xine, XINE_VERBOSITY_NONE,
"events: can't create new thread (%s)\n", strerror(err));
_x_abort();
}
diff --git a/src/xine-engine/video_out.c b/src/xine-engine/video_out.c
index 59975bab0..0c593b9d9 100644
--- a/src/xine-engine/video_out.c
+++ b/src/xine-engine/video_out.c
@@ -1958,7 +1958,7 @@ xine_video_port_t *_x_vo_new_port (xine_t *xine, vo_driver_t *driver, int grabon
if ((err = pthread_create (&this->video_thread,
&pth_attrs, video_out_loop, this)) != 0) {
- xprintf (this->xine, XINE_VERBOSITY_DEBUG, "video_out: can't create thread (%s)\n", strerror(err));
+ xprintf (this->xine, XINE_VERBOSITY_NONE, "video_out: can't create thread (%s)\n", strerror(err));
/* FIXME: how does this happen ? */
xprintf (this->xine, XINE_VERBOSITY_LOG,
_("video_out: sorry, this should not happen. please restart xine.\n"));