From b800951399e9ea2d83dabac78e554cf196d4cfc5 Mon Sep 17 00:00:00 2001 From: Bram Verweij Date: Fri, 1 Jun 2007 09:05:56 +0200 Subject: Prioritise the musepack demuxer over mpgaudio, as sometimes the latter can misfire and report a good file as unplayable. --- ChangeLog | 2 ++ src/demuxers/group_audio.c | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 1f439b880..a827947c7 100644 --- a/ChangeLog +++ b/ChangeLog @@ -18,6 +18,8 @@ xine-lib (1.1.7) (unreleased) * Use the integer versions of Speex decoding functions, this avoids an iteration over the decoded frames to transform them to integers, and also avoids an improper saturation. + * Prioritize the musepack demuxer over mpgaudio, as sometimes the latter can + misfire and report a good file as unplayable. xine-lib (1.1.6) * Split the DirectFB plugin into X11 and non-X versions. diff --git a/src/demuxers/group_audio.c b/src/demuxers/group_audio.c index b8f0e1ed4..a498a3799 100644 --- a/src/demuxers/group_audio.c +++ b/src/demuxers/group_audio.c @@ -68,7 +68,7 @@ static const demuxer_info_t demux_info_mpgaudio = { }; static const demuxer_info_t demux_info_mpc = { - 0 /* priority */ + 1 /* priority */ }; static const demuxer_info_t demux_info_nsf = { -- cgit v1.2.3 From 40bb772fadfdad2d08c4b5c7c8c02d9fdc1963b5 Mon Sep 17 00:00:00 2001 From: Darren Salt Date: Fri, 1 Jun 2007 17:48:18 +0100 Subject: Port Simon Farnsworth's xv deinterlacing fix to xcbxv. --- src/video_out/video_out_xcbxv.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/video_out/video_out_xcbxv.c b/src/video_out/video_out_xcbxv.c index 432d93416..68b6a934b 100644 --- a/src/video_out/video_out_xcbxv.c +++ b/src/video_out/video_out_xcbxv.c @@ -443,17 +443,17 @@ static void xv_deinterlace_frame (xv_driver_t *this) { else recent_bitmaps[i] = NULL; - deinterlace_yuv( this->deinterlace_frame.image+frame->width*frame->height, - recent_bitmaps, frame->width/2, frame->height/2, this->deinterlace_method ); + deinterlace_yuv( this->deinterlace_frame.image + this->deinterlace_frame.xv_width * frame->height, + recent_bitmaps, this->deinterlace_frame.xv_width/2, frame->height/2, this->deinterlace_method ); for( i = 0; i < VO_NUM_RECENT_FRAMES; i++ ) if( this->recent_frames[i] && this->recent_frames[i]->width == frame->width && this->recent_frames[i]->height == frame->height ) - recent_bitmaps[i] = this->recent_frames[i]->image + frame->width*frame->height*5/4; + recent_bitmaps[i] = this->recent_frames[i]->image + this->deinterlace_frame.xv_width*frame->height*5/4; else recent_bitmaps[i] = NULL; - deinterlace_yuv( this->deinterlace_frame.image+frame->width*frame->height*5/4, - recent_bitmaps, frame->width/2, frame->height/2, this->deinterlace_method ); + deinterlace_yuv( this->deinterlace_frame.image + this->deinterlace_frame.xv_width*frame->height*5/4, + recent_bitmaps, this->deinterlace_frame.xv_width/2, frame->height/2, this->deinterlace_method ); #else @@ -472,7 +472,7 @@ static void xv_deinterlace_frame (xv_driver_t *this) { recent_bitmaps[i] = NULL; deinterlace_yuv( this->deinterlace_frame.image, recent_bitmaps, - frame->width, frame->height, this->deinterlace_method ); + this->deinterlace_frame.xv_width, frame->height, this->deinterlace_method ); } else { /* -- cgit v1.2.3 From 3118927915161d5f32b3bb5dcd6c2b721b9fcb99 Mon Sep 17 00:00:00 2001 From: Darren Salt Date: Sat, 2 Jun 2007 00:16:48 +0100 Subject: Add a -doc package, allowing libxine1 and libxine2 to be installed together. --- debian/control | 17 ++++++++++++++++- debian/libxine1-doc.docs | 8 ++++++++ debian/libxine1-doc.manpages | 1 + debian/libxine1.install | 3 --- 4 files changed, 25 insertions(+), 4 deletions(-) create mode 100644 debian/libxine1-doc.docs create mode 100644 debian/libxine1-doc.manpages diff --git a/debian/control b/debian/control index c01e82fa5..b3e499ba5 100644 --- a/debian/control +++ b/debian/control @@ -42,10 +42,25 @@ Description: the xine video player library, development packages The xine-ui and gxine packages each provide one for your convenience, so you can just start watching your VCDs ;-) +Package: libxine1-doc +Architecture: all +Section: libdevel +Provides: libxine-doc +Conflicts: libxine2-doc +Description: the xine video player library, development packages + This contains documentation for the xine library (libxine). + . + Libxine provides the complete infrastructure for a video/media player. It + supports MPEG 1/2 and some AVI and Quicktime videos out of the box, so you + can use it to play DVDs, (S)VCDs and most video files out there. It + supports network streams, subtitles and even MP3 or Ogg files. It's + extensible to your heart's content via plugins for audio and video output, + input media, demuxers (stream types), audio/video and subtitle codecs. + Package: libxine1 Architecture: any Depends: ${shlibs:Depends} -Recommends: ${shlibs:Recommends} +Recommends: ${shlibs:Recommends}, libxine1-doc | libxine-doc Suggests: ${shlibs:Suggests}, libartsc0 Description: the xine video/media player library, binary files This is the xine media player library (libxine). diff --git a/debian/libxine1-doc.docs b/debian/libxine1-doc.docs new file mode 100644 index 000000000..c75c374d7 --- /dev/null +++ b/debian/libxine1-doc.docs @@ -0,0 +1,8 @@ +debian/tmp/usr/share/doc/libxine1/faq/* +debian/tmp/usr/share/doc/libxine1/README_xxmc.html +debian/tmp/usr/share/doc/libxine1/README +debian/tmp/usr/share/doc/libxine1/faq.* +debian/tmp/usr/share/doc/libxine1/README.syncfb* +debian/tmp/usr/share/doc/libxine1/README.opengl* +debian/tmp/usr/share/doc/libxine1/README.dxr3* +debian/tmp/usr/share/doc/libxine1/README.dvb* diff --git a/debian/libxine1-doc.manpages b/debian/libxine1-doc.manpages new file mode 100644 index 000000000..23e59ea93 --- /dev/null +++ b/debian/libxine1-doc.manpages @@ -0,0 +1 @@ +debian/tmp/usr/share/man/man5/xine.5 diff --git a/debian/libxine1.install b/debian/libxine1.install index 1efbabbea..b4037aa21 100644 --- a/debian/libxine1.install +++ b/debian/libxine1.install @@ -4,8 +4,5 @@ usr/lib/xine/plugins/*/*.so usr/lib/xine/plugins/*/vidix/*.so usr/share/locale usr/share/xine -usr/share/man/man5/xine.5 -usr/share/doc/libxine1/faq/* -usr/share/doc/libxine1/README* usr/share/doc/libxine1/hackersguide/* usr/share/bug/libxine1/presubj -- cgit v1.2.3 From 7d629a6104b9191d269a7e79ba96fc66b5f8d042 Mon Sep 17 00:00:00 2001 From: Darren Salt Date: Sat, 2 Jun 2007 14:54:21 +0100 Subject: Bump libtool revision number. --- configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index 389563fba..a80f12aab 100644 --- a/configure.ac +++ b/configure.ac @@ -50,7 +50,7 @@ dnl * in Linux, the library will be named dnl libname.so.(XINE_LT_CURRENT - XINE_LT_AGE).XINE_LT_AGE.XINE_LT_REVISION XINE_LT_CURRENT=18 -XINE_LT_REVISION=0 +XINE_LT_REVISION=1 XINE_LT_AGE=17 dnl for a release tarball do "rm .cvsversion" before "make dist" -- cgit v1.2.3 From 29a4bed3de97bf33fe1dd786c0b1f0638c152684 Mon Sep 17 00:00:00 2001 From: Darren Salt Date: Sat, 2 Jun 2007 15:25:50 +0100 Subject: Conflict with libxine2-dev. --- debian/control | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/debian/control b/debian/control index b3e499ba5..fc8098175 100644 --- a/debian/control +++ b/debian/control @@ -26,7 +26,7 @@ Package: libxine-dev Architecture: any Section: libdevel Depends: libxine1 (= ${Source-Version}), libc6-dev, zlib1g-dev | libz-dev, libslang2-dev | slang1-dev, libfreetype6-dev -Conflicts: xine-ui (<< 0.9.10) +Conflicts: xine-ui (<< 0.9.10), libxine2-dev Description: the xine video player library, development packages This contains development files (headers, documentation and the like) for the xine library (libxine). -- cgit v1.2.3 From a283e883dea4187165d4cd6f4f2e02989796feba Mon Sep 17 00:00:00 2001 From: Darren Salt Date: Sat, 2 Jun 2007 15:38:09 +0100 Subject: Rename libxine-dev to libxine2-dev. --HG-- rename : debian/libxine-dev.install => debian/libxine2-dev.install --- debian/control | 4 ++-- debian/libxine-dev.install | 10 ---------- debian/libxine2-dev.install | 10 ++++++++++ 3 files changed, 12 insertions(+), 12 deletions(-) delete mode 100644 debian/libxine-dev.install create mode 100644 debian/libxine2-dev.install diff --git a/debian/control b/debian/control index a8f4cccb3..a831ad8c7 100644 --- a/debian/control +++ b/debian/control @@ -22,11 +22,11 @@ Build-Depends: debhelper (>= 5.0.1), binutils (>= 2.12.90.0.9), pkg-config, Build-Conflicts: libdvdnav-dev, libvcdinfo-dev Standards-Version: 3.7.2 -Package: libxine-dev +Package: libxine2-dev Architecture: any Section: libdevel Depends: libxine2 (= ${Source-Version}), libc6-dev, zlib1g-dev | libz-dev, libslang2-dev | slang1-dev, libfreetype6-dev -Conflicts: xine-ui (<< 0.9.10), libxine2-dev +Conflicts: xine-ui (<< 0.9.10), libxine-dev Description: the xine video player library, development packages This contains development files (headers, documentation and the like) for the xine library (libxine). diff --git a/debian/libxine-dev.install b/debian/libxine-dev.install deleted file mode 100644 index 6fadf7dc5..000000000 --- a/debian/libxine-dev.install +++ /dev/null @@ -1,10 +0,0 @@ -usr/bin/xine-config -usr/include -usr/lib/libxine.la -usr/lib/libxine*.so -usr/lib/pkgconfig/libxine.pc -usr/lib/xine/plugins/*/*.la -usr/lib/xine/plugins/*/post/*.la -usr/lib/xine/plugins/*/vidix/*.la -usr/share/aclocal/xine.m4 -usr/share/man/man1/xine-config.1 diff --git a/debian/libxine2-dev.install b/debian/libxine2-dev.install new file mode 100644 index 000000000..6fadf7dc5 --- /dev/null +++ b/debian/libxine2-dev.install @@ -0,0 +1,10 @@ +usr/bin/xine-config +usr/include +usr/lib/libxine.la +usr/lib/libxine*.so +usr/lib/pkgconfig/libxine.pc +usr/lib/xine/plugins/*/*.la +usr/lib/xine/plugins/*/post/*.la +usr/lib/xine/plugins/*/vidix/*.la +usr/share/aclocal/xine.m4 +usr/share/man/man1/xine-config.1 -- cgit v1.2.3 From c78db6a3250c8841ad37e7171f12da579484cd00 Mon Sep 17 00:00:00 2001 From: Darren Salt Date: Sat, 2 Jun 2007 16:15:27 +0100 Subject: Repair breakage introduced in cset 923cae943a0e. --- doc/hackersguide/Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/hackersguide/Makefile.am b/doc/hackersguide/Makefile.am index 35d96ca9a..17d7eed8f 100644 --- a/doc/hackersguide/Makefile.am +++ b/doc/hackersguide/Makefile.am @@ -61,7 +61,7 @@ hackersguide.html: $(hackersguide_sgml) endif if HAVE_FIG2DEV -fig.png: +.fig.png: $(FIG2DEV) -L png -S 4 $< $@; else .fig.png: -- cgit v1.2.3 From 323365a09b0293fe865ffaf92398c01f2933ee6e Mon Sep 17 00:00:00 2001 From: Darren Salt Date: Sat, 2 Jun 2007 17:36:21 +0100 Subject: Fiddle with the versioning so that we get libxine.so.2.0.0. This requires renaming po/libxine1.pot -> po/libxine2.pot. --HG-- rename : po/libxine1.pot => po/libxine2.pot --- po/libxine1.pot | 4744 ------------------------------------------------------- po/libxine2.pot | 4744 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ version.sh | 33 +- 3 files changed, 4760 insertions(+), 4761 deletions(-) delete mode 100644 po/libxine1.pot create mode 100644 po/libxine2.pot diff --git a/po/libxine1.pot b/po/libxine1.pot deleted file mode 100644 index c41c486d3..000000000 --- a/po/libxine1.pot +++ /dev/null @@ -1,4744 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR Copyright (C) 2000-2006 the xine project -# This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: xine-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2007-06-02 13:14+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=CHARSET\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" - -#: lib/hstrerror.c:17 -msgid "No error" -msgstr "" - -#: lib/hstrerror.c:18 -msgid "Unknown host" -msgstr "" - -#: lib/hstrerror.c:19 -msgid "No address associated with name" -msgstr "" - -#: lib/hstrerror.c:20 -msgid "Unknown server error" -msgstr "" - -#: lib/hstrerror.c:21 -msgid "Host name lookup failure" -msgstr "" - -#: lib/hstrerror.c:22 -msgid "Unknown error" -msgstr "" - -#: src/audio_out/audio_alsa_out.c:351 -#, c-format -msgid "audio_alsa_out:Already open...WHY!" -msgstr "" - -#: src/audio_out/audio_alsa_out.c:379 -#, c-format -msgid "audio_alsa_out: snd_pcm_open() of %s failed: %s\n" -msgstr "" - -#: src/audio_out/audio_alsa_out.c:381 -msgid "audio_alsa_out: >>> check if another program already uses PCM <<<\n" -msgstr "" - -#: src/audio_out/audio_alsa_out.c:394 -#, c-format -msgid "" -"audio_alsa_out: broken configuration for this PCM: no configurations " -"available: %s\n" -msgstr "" - -#: src/audio_out/audio_alsa_out.c:1286 -msgid "notify changes to the hardware mixer" -msgstr "" - -#: src/audio_out/audio_alsa_out.c:1287 -msgid "" -"When the hardware mixer changes, your application will receive a " -"notification so that it can update its graphical representation of the mixer " -"settings on the fly." -msgstr "" - -#: src/audio_out/audio_alsa_out.c:1352 -#, c-format -msgid "snd_lib_error_set_handler() failed: %d" -msgstr "" - -#: src/audio_out/audio_alsa_out.c:1359 -msgid "sound card can do mmap" -msgstr "" - -#: src/audio_out/audio_alsa_out.c:1360 -msgid "" -"Enable this, if your sound card and alsa driver support memory mapped IO.\n" -"You can try enabling it and check, if everything works. If it does, this " -"will increase performance." -msgstr "" - -#: src/audio_out/audio_alsa_out.c:1369 -msgid "device used for mono output" -msgstr "" - -#: src/audio_out/audio_alsa_out.c:1370 -msgid "" -"xine will use this alsa device to output mono sound.\n" -"See the alsa documentation for information on alsa devices." -msgstr "" - -#: src/audio_out/audio_alsa_out.c:1378 -msgid "device used for stereo output" -msgstr "" - -#: src/audio_out/audio_alsa_out.c:1379 -msgid "" -"xine will use this alsa device to output stereo sound.\n" -"See the alsa documentation for information on alsa devices." -msgstr "" - -#: src/audio_out/audio_alsa_out.c:1387 -msgid "device used for 4-channel output" -msgstr "" - -#: src/audio_out/audio_alsa_out.c:1388 -msgid "" -"xine will use this alsa device to output 4 channel (4.0) surround sound.\n" -"See the alsa documentation for information on alsa devices." -msgstr "" - -#: src/audio_out/audio_alsa_out.c:1397 src/audio_out/audio_alsa_out.c:1407 -msgid "device used for 5.1-channel output" -msgstr "" - -#: src/audio_out/audio_alsa_out.c:1398 -msgid "" -"xine will use this alsa device to output 5 channel plus LFE (5.1) surround " -"sound.\n" -"See the alsa documentation for information on alsa devices." -msgstr "" - -#: src/audio_out/audio_alsa_out.c:1408 -msgid "" -"xine will use this alsa device to output undecoded digital surround sound. " -"This can be used be external surround decoders.\n" -"See the alsa documentation for information on alsa devices." -msgstr "" - -#: src/audio_out/audio_alsa_out.c:1428 -#, c-format -msgid "snd_pcm_open() failed:%d:%s\n" -msgstr "" - -#: src/audio_out/audio_alsa_out.c:1430 -#, c-format -msgid ">>> Check if another program already uses PCM <<<\n" -msgstr "" - -#: src/audio_out/audio_alsa_out.c:1461 src/audio_out/audio_oss_out.c:929 -msgid "speaker arrangement" -msgstr "" - -#: src/audio_out/audio_alsa_out.c:1462 src/audio_out/audio_oss_out.c:930 -msgid "" -"Select how your speakers are arranged, this determines which speakers xine " -"uses for sound output. The individual values are:\n" -"\n" -"Mono 1.0: You have only one speaker.\n" -"Stereo 2.0: You have two speakers for left and right channel.\n" -"Headphones 2.0: You use headphones.\n" -"Stereo 2.1: You have two speakers for left and right channel, and one " -"subwoofer for the low frequencies.\n" -"Surround 3.0: You have three speakers for left, right and rear channel.\n" -"Surround 4.0: You have four speakers for front left and right and rear left " -"and right channels.\n" -"Surround 4.1: You have four speakers for front left and right and rear left " -"and right channels, and one subwoofer for the low frequencies.\n" -"Surround 5.0: You have five speakers for front left, center and right and " -"rear left and right channels.\n" -"Surround 5.1: You have five speakers for front left, center and right and " -"rear left and right channels, and one subwoofer for the low frequencies.\n" -"Surround 6.0: You have six speakers for front left, center and right and " -"rear left, center and right channels.\n" -"Surround 6.1: You have six speakers for front left, center and right and " -"rear left, center and right channels, and one subwoofer for the low " -"frequencies.\n" -"Surround 7.1: You have seven speakers for front left, center and right, left " -"and right and rear left and right channels, and one subwoofer for the low " -"frequencies.\n" -"Pass Through: Your sound system will receive undecoded digital sound from " -"xine. You need to connect a digital surround decoder capable of decoding the " -"formats you want to play to your sound card's digital output." -msgstr "" - -#: src/audio_out/audio_alsa_out.c:1491 -msgid "audio_alsa_out : supported modes are " -msgstr "" - -#: src/audio_out/audio_alsa_out.c:1494 -msgid "8bit " -msgstr "" - -#: src/audio_out/audio_alsa_out.c:1499 -msgid "16bit " -msgstr "" - -#: src/audio_out/audio_alsa_out.c:1503 -msgid "24bit " -msgstr "" - -#: src/audio_out/audio_alsa_out.c:1507 -msgid "32bit " -msgstr "" - -#: src/audio_out/audio_alsa_out.c:1518 -msgid "mono " -msgstr "" - -#: src/audio_out/audio_alsa_out.c:1522 -msgid "stereo " -msgstr "" - -#: src/audio_out/audio_alsa_out.c:1527 -msgid "4-channel " -msgstr "" - -#: src/audio_out/audio_alsa_out.c:1530 -msgid "(4-channel not enabled in xine config) " -msgstr "" - -#: src/audio_out/audio_alsa_out.c:1535 -msgid "4.1-channel " -msgstr "" - -#: src/audio_out/audio_alsa_out.c:1538 -msgid "(4.1-channel not enabled in xine config) " -msgstr "" - -#: src/audio_out/audio_alsa_out.c:1543 -msgid "5-channel " -msgstr "" - -#: src/audio_out/audio_alsa_out.c:1546 -msgid "(5-channel not enabled in xine config) " -msgstr "" - -#: src/audio_out/audio_alsa_out.c:1551 -msgid "5.1-channel " -msgstr "" - -#: src/audio_out/audio_alsa_out.c:1554 -msgid "(5.1-channel not enabled in xine config) " -msgstr "" - -#: src/audio_out/audio_alsa_out.c:1577 -msgid "a/52 and DTS pass-through\n" -msgstr "" - -#: src/audio_out/audio_alsa_out.c:1580 -msgid "(a/52 and DTS pass-through not enabled in xine config)\n" -msgstr "" - -#: src/audio_out/audio_alsa_out.c:1587 -msgid "alsa mixer device" -msgstr "" - -#: src/audio_out/audio_alsa_out.c:1588 -msgid "" -"xine will use this alsa mixer device to change the volume.\n" -"See the alsa documentation for information on alsa devices." -msgstr "" - -#: src/audio_out/audio_alsa_out.c:1662 -msgid "xine audio output plugin using alsa-compliant audio devices/drivers" -msgstr "" - -#: src/audio_out/audio_arts_out.c:373 -msgid "xine audio output plugin using kde artsd" -msgstr "" - -#: src/audio_out/audio_coreaudio_out.c:569 -msgid "xine output plugin for Coreaudio/Mac OS X" -msgstr "" - -#: src/audio_out/audio_directx2_out.c:163 -msgid "Error" -msgstr "" - -#: src/audio_out/audio_directx2_out.c:170 -msgid "success" -msgstr "" - -#: src/audio_out/audio_directx2_out.c:172 -msgid "access denied" -msgstr "" - -#: src/audio_out/audio_directx2_out.c:174 -msgid "resource is already in use" -msgstr "" - -#: src/audio_out/audio_directx2_out.c:175 -msgid "object was already initialized" -msgstr "" - -#: src/audio_out/audio_directx2_out.c:176 -msgid "specified wave format is not supported" -msgstr "" - -#: src/audio_out/audio_directx2_out.c:177 -msgid "memory buffer has been lost and must be restored" -msgstr "" - -#: src/audio_out/audio_directx2_out.c:178 -msgid "requested buffer control is not available" -msgstr "" - -#: src/audio_out/audio_directx2_out.c:179 -msgid "undetermined error inside DirectSound subsystem" -msgstr "" - -#: src/audio_out/audio_directx2_out.c:181 -msgid "DirectSound hardware device is unavailable" -msgstr "" - -#: src/audio_out/audio_directx2_out.c:183 -msgid "function is not valid for the current state of the object" -msgstr "" - -#: src/audio_out/audio_directx2_out.c:184 -msgid "invalid parameter was passed" -msgstr "" - -#: src/audio_out/audio_directx2_out.c:185 -msgid "object doesn't support aggregation" -msgstr "" - -#: src/audio_out/audio_directx2_out.c:186 -msgid "no sound driver available for use" -msgstr "" - -#: src/audio_out/audio_directx2_out.c:187 -msgid "requested COM interface not available" -msgstr "" - -#: src/audio_out/audio_directx2_out.c:188 -msgid "another application has a higher priority level" -msgstr "" - -#: src/audio_out/audio_directx2_out.c:189 -msgid "insufficient memory" -msgstr "" - -#: src/audio_out/audio_directx2_out.c:190 -msgid "low priority level for this function" -msgstr "" - -#: src/audio_out/audio_directx2_out.c:191 -msgid "DirectSound wasn't initialized" -msgstr "" - -#: src/audio_out/audio_directx2_out.c:192 -msgid "function is not supported" -msgstr "" - -#: src/audio_out/audio_directx2_out.c:193 -msgid "unknown error" -msgstr "" - -#: src/audio_out/audio_directx2_out.c:203 -#, c-format -msgid "Unable to create direct sound object." -msgstr "" - -#: src/audio_out/audio_directx2_out.c:209 -#, c-format -msgid "Could not set direct sound cooperative level." -msgstr "" - -#: src/audio_out/audio_directx2_out.c:283 -msgid "Unable to create secondary direct sound buffer" -msgstr "" - -#: src/audio_out/audio_directx2_out.c:307 -#, c-format -msgid "Unable to create buffer position events." -msgstr "" - -#: src/audio_out/audio_directx2_out.c:315 -msgid "Unable to get notification interface" -msgstr "" - -#: src/audio_out/audio_directx2_out.c:320 -msgid "Unable to set notification positions" -msgstr "" - -#: src/audio_out/audio_directx2_out.c:340 -msgid "Couldn't play sound buffer" -msgstr "" - -#: src/audio_out/audio_directx2_out.c:352 -msgid "Couldn't stop sound buffer" -msgstr "" - -#: src/audio_out/audio_directx2_out.c:365 -msgid "Can't get buffer position" -msgstr "" - -#: src/audio_out/audio_directx2_out.c:379 -msgid "Can't set buffer position" -msgstr "" - -#: src/audio_out/audio_directx2_out.c:411 -msgid "Can't set sound volume" -msgstr "" - -#: src/audio_out/audio_directx2_out.c:429 -#, c-format -msgid ": buffer lost, tryig to restore\n" -msgstr "" - -#: src/audio_out/audio_directx2_out.c:433 -msgid "Couldn't lock direct sound buffer" -msgstr "" - -#: src/audio_out/audio_directx2_out.c:444 -msgid "Couldn't unlock direct sound buffer" -msgstr "" - -#: src/audio_out/audio_directx2_out.c:541 -#, c-format -msgid "Unable to create primary direct sound buffer." -msgstr "" - -#: src/audio_out/audio_directx2_out.c:634 -#, c-format -msgid ": play cursor overran, flushing buffers\n" -msgstr "" - -#: src/audio_out/audio_directx2_out.c:652 -#, c-format -msgid ": delayed by %ld msec\n" -msgstr "" - -#: src/audio_out/audio_directx2_out.c:756 -#, c-format -msgid ": can't create pthread condition: %s\n" -msgstr "" - -#: src/audio_out/audio_directx2_out.c:760 -#, c-format -msgid ": can't create pthread mutex: %s\n" -msgstr "" - -#: src/audio_out/audio_directx2_out.c:767 -#, c-format -msgid ": can't create buffer pthread: %s\n" -msgstr "" - -#: src/audio_out/audio_directx2_out.c:874 -#, c-format -msgid ": can't destroy buffer pthread: %s\n" -msgstr "" - -#: src/audio_out/audio_directx2_out.c:881 -#, c-format -msgid ": can't destroy pthread condition: %s\n" -msgstr "" - -#: src/audio_out/audio_directx2_out.c:884 -#, c-format -msgid ": can't destroy pthread mutex: %s\n" -msgstr "" - -#: src/audio_out/audio_directx2_out.c:944 -#, c-format -msgid ": unknown control command %d\n" -msgstr "" - -#: src/audio_out/audio_directx2_out.c:1000 -msgid "second xine audio output plugin using directx" -msgstr "" - -#: src/audio_out/audio_directx_out.c:829 -msgid "xine audio output plugin for win32 using directx" -msgstr "" - -#: src/audio_out/audio_esd_out.c:167 -#, c-format -msgid "audio_esd_out: connecting to ESD server %s: %s\n" -msgstr "" - -#: src/audio_out/audio_esd_out.c:499 -msgid "audio_esd_out: connecting to esd server...\n" -msgstr "" - -#: src/audio_out/audio_esd_out.c:511 -#, c-format -msgid "audio_esd_out: can't connect to %s ESD server: %s\n" -msgstr "" - -#: src/audio_out/audio_esd_out.c:541 -msgid "esd audio output latency (adjust a/v sync)" -msgstr "" - -#: src/audio_out/audio_esd_out.c:542 src/audio_out/audio_oss_out.c:867 -msgid "" -"If you experience audio being not in sync with the video, you can enter a " -"fixed offset here to compensate.\n" -"The unit of the value is one PTS tick, which is the 90000th part of a second." -msgstr "" - -#: src/audio_out/audio_esd_out.c:574 -msgid "xine audio output plugin using esound" -msgstr "" - -#: src/audio_out/audio_file_out.c:364 -msgid "xine file audio output plugin" -msgstr "" - -#: src/audio_out/audio_irixal_out.c:387 -msgid "irixal audio output maximum gap length" -msgstr "" - -#: src/audio_out/audio_irixal_out.c:388 -msgid "" -"You can specify the maximum offset between audio and video xine will " -"tolerate before trying to resync them.\n" -"The unit of this value is one PTS tick, which is the 90000th part of a " -"second." -msgstr "" - -#: src/audio_out/audio_irixal_out.c:417 -msgid "xine audio output plugin using IRIX libaudio" -msgstr "" - -#: src/audio_out/audio_jack_out.c:406 -msgid "xine output plugin for JACK Audio Connection Kit" -msgstr "" - -#: src/audio_out/audio_none_out.c:225 -msgid "xine dummy audio output plugin" -msgstr "" - -#: src/audio_out/audio_oss_out.c:199 -#, c-format -msgid "audio_oss_out: Opening audio device %s: %s\n" -msgstr "" - -#: src/audio_out/audio_oss_out.c:221 -#, c-format -msgid "" -"audio_oss_out: warning: sampling rate %d Hz not supported, trying 44100 Hz\n" -msgstr "" - -#: src/audio_out/audio_oss_out.c:233 -#, c-format -msgid "audio_oss_out: audio rate : %d requested, %d provided by device\n" -msgstr "" - -#: src/audio_out/audio_oss_out.c:746 -msgid "OSS audio device name" -msgstr "" - -#: src/audio_out/audio_oss_out.c:747 -msgid "" -"Specifies the base part of the audio device name, to which the OSS device " -"number is appended to get the full device name.\n" -"Select \"auto\" if you want xine to auto detect the corret setting." -msgstr "" - -#: src/audio_out/audio_oss_out.c:754 -msgid "OSS audio device number, -1 for none" -msgstr "" - -#: src/audio_out/audio_oss_out.c:755 -msgid "" -"The full audio device name is created by concatenating the OSS device name " -"and the audio device number.\n" -"If you do not need a number because you are happy with your system's default " -"audio device, set this to -1.\n" -"The range of this value is -1 or 0-15. This setting is ignored, when the OSS " -"audio device name is set to \"auto\"." -msgstr "" - -#: src/audio_out/audio_oss_out.c:764 -msgid "audio_oss_out: audio.device.oss_device_name = auto, probing devs\n" -msgstr "" - -#: src/audio_out/audio_oss_out.c:767 -msgid "audio_oss_out: Auto probe for audio device failed\n" -msgstr "" - -#: src/audio_out/audio_oss_out.c:783 -#, c-format -msgid "audio_oss_out: using device >%s<\n" -msgstr "" - -#: src/audio_out/audio_oss_out.c:789 src/audio_out/audio_oss_out.c:904 -#, c-format -msgid "" -"audio_oss_out: opening audio device %s failed:\n" -"%s\n" -msgstr "" - -#: src/audio_out/audio_oss_out.c:810 -msgid "a/v sync method to use by OSS" -msgstr "" - -#: src/audio_out/audio_oss_out.c:811 -msgid "" -"xine can use different methods to keep audio and video synchronized. Which " -"setting works best depends on the OSS driver and sound hardware you are " -"using. Try the various methods, if you experience sync problems.\n" -"\n" -"The meaning of the values is as follows:\n" -"\n" -"auto\n" -"xine attempts to automatically detect the optimal setting\n" -"\n" -"getodelay\n" -"uses the SNDCTL_DSP_GETODELAY ioctl to achieve true a/v sync even if the " -"driver claims not to support realtime playback\n" -"\n" -"getoptr\n" -"uses the SNDCTL_DSP_GETOPTR ioctl to achieve true a/v sync even if the " -"driver supports the preferred SNDCTL_DSP_GETODELAY ioctl\n" -"\n" -"softsync\n" -"uses software synchronization with the system clock; audio and video can get " -"severely out of sync if the system clock speed does not precisely match your " -"sound card's playback speed\n" -"\n" -"probebuffer\n" -"probes the sound card buffer size on initialization to calculate the latency " -"for a/v sync; try this if your system does not support any of the realtime " -"ioctls and you experience sync errors after long playback" -msgstr "" - -#: src/audio_out/audio_oss_out.c:859 -msgid "" -"audio_oss_out: Audio driver realtime sync disabled...\n" -"audio_oss_out: ...will use system real-time clock for soft-sync instead\n" -"audio_oss_out: ...there may be audio/video synchronization issues\n" -msgstr "" - -#: src/audio_out/audio_oss_out.c:866 -msgid "OSS audio output latency (adjust a/v sync)" -msgstr "" - -#: src/audio_out/audio_oss_out.c:880 -msgid "" -"audio_oss_out: Audio driver realtime sync disabled...\n" -"audio_oss_out: ...probing output buffer size: " -msgstr "" - -#: src/audio_out/audio_oss_out.c:897 -#, c-format -msgid "" -"%d bytes\n" -"audio_oss_out: ...there may be audio/video synchronization issues\n" -msgstr "" - -#: src/audio_out/audio_oss_out.c:1026 -msgid "OSS audio mixer number, -1 for none" -msgstr "" - -#: src/audio_out/audio_oss_out.c:1027 -msgid "" -"The full mixer device name is created by taking the OSS device name, " -"replacing \"dsp\" with \"mixer\" and adding the mixer number.\n" -"If you do not need a number because you are happy with your system's default " -"mixer device, set this to -1.\n" -"The range of this value is -1 or 0-15. This setting is ignored, when the OSS " -"audio device name is set to \"auto\"." -msgstr "" - -#: src/audio_out/audio_oss_out.c:1084 -#, c-format -msgid "audio_oss_out: open() mixer %s failed: %s\n" -msgstr "" - -#: src/audio_out/audio_oss_out.c:1157 -msgid "xine audio output plugin using oss-compliant audio devices/drivers" -msgstr "" - -#: src/audio_out/audio_pulse_out.c:608 -msgid "device used for pulseaudio" -msgstr "" - -#: src/audio_out/audio_pulse_out.c:609 -msgid "use 'server[:sink]' for setting the pulseaudio sink device." -msgstr "" - -#: src/audio_out/audio_pulse_out.c:646 -msgid "xine audio output plugin using pulseaudio sound server" -msgstr "" - -#: src/audio_out/audio_sun_out.c:459 src/audio_out/audio_sun_out.c:952 -#, c-format -msgid "audio_sun_out: opening audio device %s failed: %s\n" -msgstr "" - -#: src/audio_out/audio_sun_out.c:927 -msgid "Sun audio device name" -msgstr "" - -#: src/audio_out/audio_sun_out.c:928 -msgid "" -"Specifies the file name for the Sun audio device to be used.\n" -"This setting is security critical, because when changed to a different file, " -"xine can be used to fill this file with arbitrary content. So you should be " -"careful that the value you enter really is a proper Sun audio device." -msgstr "" - -#: src/audio_out/audio_sun_out.c:970 -#, c-format -msgid "audio_sun_out: audio ioctl on device %s failed: %s\n" -msgstr "" - -#: src/audio_out/audio_sun_out.c:1024 -msgid "xine audio output plugin using sun-compliant audio devices/drivers" -msgstr "" - -#: src/combined/xine_ogg_demuxer.c:810 -#, c-format -msgid "ogg: vorbis audio track indicated but no vorbis stream header found.\n" -msgstr "" - -#: src/demuxers/demux_asf.c:428 -#, c-format -msgid "demux_asf: warning: The stream id=%d is encrypted.\n" -msgstr "" - -#: src/demuxers/demux_asf.c:430 -msgid "Media stream scrambled/encrypted" -msgstr "" - -#: src/demuxers/demux_asf.c:1637 -#, c-format -msgid "demux_asf: Wrong ASX version: %s\n" -msgstr "" - -#: src/demuxers/demux_avi.c:532 src/demuxers/demux_avi.c:646 -msgid "Restoring index..." -msgstr "" - -#: src/demuxers/demux_avi.c:632 src/demuxers/demux_avi.c:1687 -#, c-format -msgid "demux_avi: invalid avi chunk \"%c%c%c%c\" at pos %\n" -msgstr "" - -#: src/demuxers/demux_avi.c:827 -#, c-format -msgid "demux_avi: avi index is broken\n" -msgstr "" - -#: src/demuxers/demux_avi.c:835 -#, c-format -msgid "demux_avi: failed to seek to the next chunk (pos %)\n" -msgstr "" - -#: src/demuxers/demux_film.c:188 -#, c-format -msgid "invalid FILM chunk size\n" -msgstr "" - -#: src/demuxers/demux_film.c:342 -#, c-format -msgid "unrecognized FILM chunk\n" -msgstr "" - -#: src/demuxers/demux_flv.c:172 -#, c-format -msgid "unsupported FLV version (%d).\n" -msgstr "" - -#: src/demuxers/demux_flv.c:179 -msgid "neither video nor audio stream in this file.\n" -msgstr "" - -#: src/demuxers/demux_iff.c:235 -#, c-format -msgid "iff-8svx/16sv: unknown compression: %d\n" -msgstr "" - -#: src/demuxers/demux_iff.c:369 -#, c-format -msgid "iff-ilbm: unknown compression: %d\n" -msgstr "" - -#: src/demuxers/demux_iff.c:570 -#, c-format -msgid "iff: unknown Chunk: %s\n" -msgstr "" - -#: src/demuxers/demux_mpc.c:212 -msgid "demux_mpc: frame too big for buffer" -msgstr "" - -#: src/demuxers/demux_mpeg_block.c:297 -#, c-format -msgid "" -"xine-lib:demux_mpeg_block: Unrecognised stream_id 0x%02x. Please report this " -"to xine developers.\n" -msgstr "" - -#: src/demuxers/demux_mpeg_block.c:308 -msgid "" -"demux_mpeg_block: error! freeing. Please report this to xine developers.\n" -msgstr "" - -#: src/demuxers/demux_mpeg_block.c:640 -#, c-format -msgid "demux_mpeg_block: warning: PES header reserved 10 bits not found\n" -msgstr "" - -#: src/demuxers/demux_mpeg_block.c:650 -#, c-format -msgid "" -"demux_mpeg_block: warning: PES header indicates that this stream may be " -"encrypted (encryption mode %d)\n" -msgstr "" - -#: src/demuxers/demux_mpeg_pes.c:386 -#, c-format -msgid "" -"xine-lib:demux_mpeg_pes: Unrecognised stream_id 0x%02x. Please report this " -"to xine developers.\n" -msgstr "" - -#: src/demuxers/demux_mpeg_pes.c:395 -#, c-format -msgid "demux_mpeg_pes: warning: PACK stream id=0x%x decode failed.\n" -msgstr "" - -#: src/demuxers/demux_mpeg_pes.c:777 -#, c-format -msgid "demux_mpeg_pes: warning: PES header reserved 10 bits not found\n" -msgstr "" - -#: src/demuxers/demux_mpeg_pes.c:787 -#, c-format -msgid "" -"demux_mpeg_pes: warning: PES header indicates that this stream may be " -"encrypted (encryption mode %d)\n" -msgstr "" - -#: src/demuxers/demux_mpeg_pes.c:1061 -#, c-format -msgid "" -"demux_mpeg_pes:Unrecognised private stream 1 0x%02x. Please report this to " -"xine developers.\n" -msgstr "" - -#: src/demuxers/demux_snd.c:104 -#, c-format -msgid "demux_snd: bad header parameters\n" -msgstr "" - -#: src/demuxers/demux_snd.c:149 -#, c-format -msgid "demux_snd: unsupported audio type: %d\n" -msgstr "" - -#: src/demuxers/demux_tta.c:86 -msgid "demux_tta: total frames count too high\n" -msgstr "" - -#: src/demuxers/demux_voc.c:105 -#, c-format -msgid "unknown VOC block type (0x%02X); please report to xine developers\n" -msgstr "" - -#: src/demuxers/demux_voc.c:120 -#, c-format -msgid "" -"unknown VOC compression type (0x%02X); please report to xine developers\n" -msgstr "" - -#: src/demuxers/demux_wc3movie.c:192 -#, c-format -msgid "demux_wc3movie: SHOT chunk referenced invalid palette (%d >= %d)\n" -msgstr "" - -#: src/demuxers/demux_wc3movie.c:404 -#, c-format -msgid "demux_wc3movie: There was a problem while loading palette chunks\n" -msgstr "" - -#: src/dxr3/dxr3_decode_spu.c:253 -#, c-format -msgid "dxr3_decode_spu: Failed to open spu device %s (%s)\n" -msgstr "" - -#: src/dxr3/dxr3_decode_spu.c:663 -msgid "requested button not available\n" -msgstr "" - -#: src/dxr3/dxr3_decode_video.c:250 -#, c-format -msgid "dxr3_decode_video: Failed to open control device %s (%s)\n" -msgstr "" - -#: src/dxr3/dxr3_decode_video.c:256 -msgid "use Pan & Scan info" -msgstr "" - -#: src/dxr3/dxr3_decode_video.c:257 -msgid "" -"\"Pan & Scan\" is a special display mode which is sometimes used in MPEG " -"encoded material. You can specify here, how to handle such content.\n" -"\n" -"only when forced\n" -"Use Pan & Scan only, when the content you are playing enforces it.\n" -"\n" -"use MPEG hint\n" -"Enable Pan & Scan based on information embedded in the MPEG video stream.\n" -"\n" -"use DVB hint\n" -"Enable Pan & Scan based on information embedded in DVB streams. This makes " -"use of the Active Format Descriptor (AFD) used in some European DVB channels." -msgstr "" - -#: src/dxr3/dxr3_decode_video.c:276 -msgid "try to sync video every frame" -msgstr "" - -#: src/dxr3/dxr3_decode_video.c:277 -msgid "" -"Tries to set a synchronization timestamp for every frame. Normally this is " -"not necessary, because sync is sufficent even when the timestamp is set only " -"every now and then.\n" -"This is relevant for progressive video only (most PAL films)." -msgstr "" - -#: src/dxr3/dxr3_decode_video.c:283 -msgid "use smooth play mode" -msgstr "" - -#: src/dxr3/dxr3_decode_video.c:284 -msgid "Enabling this option will utilise a smoother play mode." -msgstr "" - -#: src/dxr3/dxr3_decode_video.c:287 -msgid "correct frame durations in broken streams" -msgstr "" - -#: src/dxr3/dxr3_decode_video.c:288 -msgid "" -"Enables a small logic that corrects the frame durations of some mpeg streams " -"with wrong framerate codes. Currently a correction for NTSC streams " -"erroneously labeled as PAL streams is implemented. Enable only, when you " -"encounter such streams." -msgstr "" - -#: src/dxr3/dxr3_decode_video.c:547 -#, c-format -msgid "dxr3_decode_video: Failed to open video device %s (%s)\n" -msgstr "" - -#: src/dxr3/dxr3_decode_video.c:615 -msgid "dxr3_decode_video: write to device would block. flushing\n" -msgstr "" - -#: src/dxr3/dxr3_decode_video.c:619 -#, c-format -msgid "dxr3_decode_video: video device write failed (%s)\n" -msgstr "" - -#: src/dxr3/dxr3_decode_video.c:734 -#, c-format -msgid "dxr3_decode_video: WARNING: unknown frame rate code %d\n" -msgstr "" - -#: src/dxr3/dxr3_decode_video.c:762 -msgid "" -"dxr3_decode_video: WARNING: correcting frame rate code from PAL to NTSC\n" -msgstr "" - -#: src/dxr3/dxr3.h:32 -msgid "DXR3 device number" -msgstr "" - -#: src/dxr3/dxr3.h:33 -msgid "" -"If you have more than one DXR3 in your computer, you can specify which one " -"to use here." -msgstr "" - -#: src/dxr3/dxr3_mpeg_encoders.c:125 -msgid "dxr3_mpeg_encoder: failed to init librte\n" -msgstr "" - -#: src/dxr3/dxr3_mpeg_encoders.c:160 -msgid "" -"dxr3_mpeg_encoder: rte only handles video dimensions which are multiples of " -"16\n" -msgstr "" - -#: src/dxr3/dxr3_mpeg_encoders.c:170 -msgid "dxr3_mpeg_encoder: failed to get rte context.\n" -msgstr "" - -#: src/dxr3/dxr3_mpeg_encoders.c:181 -msgid "dxr3_mpeg_encoder: could not create codec.\n" -msgstr "" - -#: src/dxr3/dxr3_mpeg_encoders.c:189 -msgid "rte mpeg output bitrate (kbit/s)" -msgstr "" - -#: src/dxr3/dxr3_mpeg_encoders.c:190 -msgid "" -"The bitrate the mpeg encoder library librte should use for DXR3's encoding " -"mode. Higher values will increase quality and CPU usage." -msgstr "" - -#: src/dxr3/dxr3_mpeg_encoders.c:234 -#, c-format -msgid "dxr3_mpeg_encoder: cannot init the context: %s\n" -msgstr "" - -#: src/dxr3/dxr3_mpeg_encoders.c:242 -#, c-format -msgid "dxr3_mpeg_encoder: cannot start encoding: %s\n" -msgstr "" - -#: src/dxr3/dxr3_mpeg_encoders.c:372 -msgid "dxr3_mpeg_encoder: Couldn't start the FAME library\n" -msgstr "" - -#: src/dxr3/dxr3_mpeg_encoders.c:387 -msgid "fame mpeg encoding quality" -msgstr "" - -#: src/dxr3/dxr3_mpeg_encoders.c:388 -msgid "" -"The encoding quality of the libfame mpeg encoder library. Lower is faster " -"but gives noticeable artifacts. Higher is better but slower." -msgstr "" - -#: src/dxr3/dxr3_scr.c:98 -msgid "SCR plugin priority" -msgstr "" - -#: src/dxr3/dxr3_scr.c:99 -msgid "" -"Priority of the DXR3 SCR plugin. Values less than 5 mean that the unix " -"system timer will be used. Values greater 5 force to use DXR3's internal " -"clock as sync source." -msgstr "" - -#: src/dxr3/video_out_dxr3.c:262 -msgid "swap odd and even lines" -msgstr "" - -#: src/dxr3/video_out_dxr3.c:263 -msgid "" -"Swaps the even and odd field of the image.\n" -"Enable this option for non-MPEG material which produces a vertical jitter on " -"screen." -msgstr "" - -#: src/dxr3/video_out_dxr3.c:267 -msgid "add black bars to correct aspect ratio" -msgstr "" - -#: src/dxr3/video_out_dxr3.c:268 -msgid "" -"Adds black bars when the image has an aspect ratio the card cannot handle " -"natively. This is needed to maintain proper image proportions." -msgstr "" - -#: src/dxr3/video_out_dxr3.c:273 -msgid "use smooth play mode for mpeg encoder playback" -msgstr "" - -#: src/dxr3/video_out_dxr3.c:274 -msgid "" -"Enabling this option will utilise a smoother play mode for non-MPEG content." -msgstr "" - -#: src/dxr3/video_out_dxr3.c:282 -#, c-format -msgid "video_out_dxr3: Failed to open control device %s (%s)\n" -msgstr "" - -#: src/dxr3/video_out_dxr3.c:290 -#, c-format -msgid "video_out_dxr3: Failed to open video device %s (%s)\n" -msgstr "" - -#: src/dxr3/video_out_dxr3.c:336 -msgid "encoder for non mpeg content" -msgstr "" - -#: src/dxr3/video_out_dxr3.c:337 -msgid "" -"Content other than MPEG has to pass an additional reencoding stage, because " -"the dxr3 handles only MPEG.\n" -"Depending on what is supported by your xine, this setting can be \"fame\", " -"\"rte\", \"libavcodec\" or \"none\".\n" -"The \"libavcodec\" encoder makes use of the ffmpeg plugin that already ships " -"with xine, so you do not need to install any additional library for that. " -"Even better is that libavcodec also provides high quality with low CPU " -"usage. Using \"libavcodec\" is therefore strongly suggested.\n" -"\"fame\" and \"rte\" are still there, but xine support for them is outdated, " -"so these might fail to work." -msgstr "" - -#: src/dxr3/video_out_dxr3.c:348 -msgid "video_out_dxr3: Mpeg encoder libavcodec failed to init.\n" -msgstr "" - -#: src/dxr3/video_out_dxr3.c:354 -msgid "video_out_dxr3: Mpeg encoder rte failed to init.\n" -msgstr "" - -#: src/dxr3/video_out_dxr3.c:361 -msgid "video_out_dxr3: Mpeg encoder fame failed to init.\n" -msgstr "" - -#: src/dxr3/video_out_dxr3.c:367 -msgid "" -"video_out_dxr3: Mpeg encoding disabled.\n" -"video_out_dxr3: that's ok, you don't need it for mpeg video like DVDs, but\n" -"video_out_dxr3: you will not be able to play non-mpeg content using this " -"video out\n" -"video_out_dxr3: driver. See the README.dxr3 for details on configuring an " -"encoder.\n" -msgstr "" - -#: src/dxr3/video_out_dxr3.c:373 -msgid "" -"video_out_dxr3: No mpeg encoder compiled in.\n" -"video_out_dxr3: that's ok, you don't need it for mpeg video like DVDs, but\n" -"video_out_dxr3: you will not be able to play non-mpeg content using this " -"video out\n" -"video_out_dxr3: driver. See the README.dxr3 for details on configuring an " -"encoder.\n" -msgstr "" - -#: src/dxr3/video_out_dxr3.c:388 -msgid "video output mode (TV or overlay)" -msgstr "" - -#: src/dxr3/video_out_dxr3.c:389 -msgid "" -"The way the DXR3 outputs the final video can be set here. The individual " -"values are:\n" -"\n" -"letterboxed tv\n" -"Send video to the TV out connector only. This is the mode used for the " -"standard 4:3 television set. Anamorphic (16:9) video will be displayed " -"letterboxed, pan&scan material will have the image cropped at the left and " -"right side. This is the common setting for TV viewing and acts like a " -"standalone DVD player.\n" -"\n" -"widescreen tv\n" -"Send video to the tv out connector only. This mode is intended for 16:9 " -"widescreen TV sets. Anamorphic and pan&scan content will fill the entire " -"screen, but you have to set the TV's aspect ratio manually to 16:9 using " -"your.\n" -"\n" -"letterboxed overlay\n" -"Overlay Video output on the computer screen with the option of on-the-fly " -"switching to TV out by hiding the video window. The overlay will be " -"displayed with black borders if it is anamorphic (16:9).\n" -"This setting is only useful in the rare case of a DVD subtitle channel that " -"would only display properly in letterbox mode. A good example for that are " -"the animated commentator's silhouettes on \"Ghostbusters\".\n" -"\n" -"widescreen overlay\n" -"Overlay Video output on the computer screen with the option of on-the-fly " -"switching to TV out by hiding the video window. This is the common variant " -"of DXR3 overlay." -msgstr "" - -#: src/dxr3/video_out_dxr3.c:436 -msgid "overlay colorkey value" -msgstr "" - -#: src/dxr3/video_out_dxr3.c:436 -msgid "" -"Hexadecimal RGB value of the key color.\n" -"You can try different values, if you experience windows becoming transparent " -"when using DXR3 overlay mode." -msgstr "" - -#: src/dxr3/video_out_dxr3.c:441 -msgid "overlay colorkey tolerance" -msgstr "" - -#: src/dxr3/video_out_dxr3.c:441 -msgid "" -"A greater value widens the tolerance for the overlay keycolor.\n" -"You can try lower values, if you experience windows becoming transparent " -"when using DXR3 overlay mode, but parts of the image borders may disappear " -"when using a too low setting." -msgstr "" - -#: src/dxr3/video_out_dxr3.c:447 -msgid "crop the overlay area at top and bottom" -msgstr "" - -#: src/dxr3/video_out_dxr3.c:448 -msgid "" -"Removes one pixel line from the top and bottom of the overlay. Enable this, " -"if you see green lines at the top or bottom of the overlay." -msgstr "" - -#: src/dxr3/video_out_dxr3.c:452 -msgid "video_out_dxr3: please run autocal, overlay disabled\n" -msgstr "" - -#: src/dxr3/video_out_dxr3.c:462 -msgid "preferred tv mode" -msgstr "" - -#: src/dxr3/video_out_dxr3.c:462 -msgid "" -"Selects the TV mode to be used by the DXR3. The values mean:\n" -"\n" -"ntsc: NTSC at 60Hz\n" -"pal: PAL at 50Hz\n" -"pal60: PAL at 60Hz\n" -"default: keep the card's setting" -msgstr "" - -#: src/dxr3/video_out_dxr3.c:484 -msgid "video_out_dxr3: setting video mode failed.\n" -msgstr "" - -#: src/dxr3/video_out_dxr3.c:714 -msgid "" -"video_out_dxr3: Need an mpeg encoder to play non-mpeg videos on dxr3\n" -"video_out_dxr3: Read the README.dxr3 for details.\n" -msgstr "" - -#: src/dxr3/video_out_dxr3.c:1373 -msgid "video_out_dxr3: ERROR Reading overlay init file. Run autocal!\n" -msgstr "" - -#: src/input/input_cdda.c:1611 -#, c-format -msgid "%s: can't connect to %s:%d\n" -msgstr "" - -#: src/input/input_cdda.c:1658 -#, c-format -msgid "input_cdda: successfuly connected to cddb server '%s:%d'.\n" -msgstr "" - -#: src/input/input_cdda.c:1663 -#, c-format -msgid "input_cdda: failed to connect to cddb server '%s:%d' (%s).\n" -msgstr "" - -#: src/input/input_cdda.c:2693 -msgid "CD Digital Audio (aka. CDDA)" -msgstr "" - -#: src/input/input_cdda.c:2745 -msgid "device used for CD audio" -msgstr "" - -#: src/input/input_cdda.c:2746 -msgid "" -"The path to the device, usually a CD or DVD drive, which you intend to use " -"for playing audio CDs." -msgstr "" - -#: src/input/input_cdda.c:2752 -msgid "query CDDB" -msgstr "" - -#: src/input/input_cdda.c:2752 -msgid "" -"Enables CDDB queries, which will give you convenient title and track names " -"for your audio CDs.\n" -"Keep in mind that, unless you use your own private CDDB, this information is " -"retrieved from an internet server which might collect a profile of your " -"listening habits." -msgstr "" - -#: src/input/input_cdda.c:2760 -msgid "CDDB server name" -msgstr "" - -#: src/input/input_cdda.c:2760 -msgid "" -"The CDDB server used to retrieve the title and track information from.\n" -"This setting is security critical, because the sever will receive " -"information about your listening habits and could answer the queries with " -"malicious replies. Be sure to enter a server you can trust." -msgstr "" - -#: src/input/input_cdda.c:2768 -msgid "CDDB server port" -msgstr "" - -#: src/input/input_cdda.c:2768 -msgid "The server port used to retrieve the title and track information from." -msgstr "" - -#: src/input/input_cdda.c:2774 -msgid "slow down disc drive to this speed factor" -msgstr "" - -#: src/input/input_cdda.c:2775 -msgid "" -"Since some CD or DVD drives make some really loud noises because of the fast " -"disc rotation, xine will try to slow them down. With standard CD or DVD " -"playback, the high datarates that require the fast rotation are not needed, " -"so the slowdown should not affect playback performance.\n" -"A value of zero here will disable the slowdown." -msgstr "" - -#: src/input/input_dvb.c:900 -#, c-format -msgid "input_dvb: failed to open dvb channel file '%s': %s\n" -msgstr "" - -#: src/input/input_dvb.c:906 -#, c-format -msgid "input_dvb: dvb channel file '%s' is not a plain file\n" -msgstr "" - -#: src/input/input_dvb.c:2116 src/input/input_dvb.c:2948 -msgid "input_dvb: tuner_set_channel failed\n" -msgstr "" - -#: src/input/input_dvb.c:2748 -msgid "input_dvb: cannot open dvb device\n" -msgstr "" - -#: src/input/input_dvb.c:2772 -#, c-format -msgid "input_dvb: channel %d out of range, defaulting to 0\n" -msgstr "" - -#: src/input/input_dvb.c:2783 -#, c-format -msgid "input_dvb: searching for channel %s\n" -msgstr "" - -#: src/input/input_dvb.c:2806 -#, c-format -msgid "input_dvb: exact match for %s not found: trying partial matches\n" -msgstr "" - -#: src/input/input_dvb.c:2813 -#, c-format -msgid "input_dvb: found matching channel %s\n" -msgstr "" - -#: src/input/input_dvb.c:2826 -#, c-format -msgid "input_dvb: channel %s not found in channels.conf, defaulting.\n" -msgstr "" - -#: src/input/input_dvb.c:2832 -msgid "" -"input_dvb: invalid channel specification, defaulting to last viewed " -"channel.\n" -msgstr "" - -#: src/input/input_dvb.c:2838 -msgid "input_dvb: invalid channel specification, defaulting to channel 0\n" -msgstr "" - -#: src/input/input_dvb.c:2850 -msgid "" -"input_dvb: dvbs mrl specified but the tuner doesn't appear to be QPSK (DVB-" -"S)\n" -msgstr "" - -#: src/input/input_dvb.c:2870 -msgid "" -"input_dvb: dvbt mrl specified but the tuner doesn't appear to be OFDM (DVB-" -"T)\n" -msgstr "" - -#: src/input/input_dvb.c:2893 -msgid "" -"input_dvb: dvbc mrl specified but the tuner doesn't appear to be QAM (DVB-" -"C)\n" -msgstr "" - -#: src/input/input_dvb.c:2919 -msgid "" -"input_dvb: dvba mrl specified but the tuner doesn't appear to be ATSC (DVB-" -"A)\n" -msgstr "" - -#: src/input/input_dvb.c:2954 -#, c-format -msgid "input_dvb: cannot open dvr device '%s'\n" -msgstr "" - -#: src/input/input_dvb.c:2976 -msgid "input_dvb: cannot create EPG updater thread\n" -msgstr "" - -#: src/input/input_dvb.c:3038 -msgid "use DVB 'center cutout' (zoom)" -msgstr "" - -#: src/input/input_dvb.c:3039 -msgid "" -"This will allow fullscreen playback of 4:3 content transmitted in a 16:9 " -"frame." -msgstr "" - -#: src/input/input_dvb.c:3132 -msgid "DVB (Digital TV) input plugin" -msgstr "" - -#: src/input/input_dvb.c:3249 -msgid "Remember last DVB channel watched" -msgstr "" - -#: src/input/input_dvb.c:3250 -msgid "" -"On autoplay, xine will remember and switch to the channel indicated in media." -"dvb.last_channel. " -msgstr "" - -#: src/input/input_dvb.c:3257 -msgid "Last DVB channel viewed" -msgstr "" - -#: src/input/input_dvb.c:3258 -msgid "If enabled xine will remember and switch to this channel. " -msgstr "" - -#: src/input/input_dvb.c:3264 -msgid "Number of dvb card to use." -msgstr "" - -#: src/input/input_dvb.c:3265 -msgid "" -"Leave this at zero unless you really have more than 1 card in your system." -msgstr "" - -#: src/input/input_dvd.c:591 -msgid "input_dvd: values of \\beta will give rise to dom!\n" -msgstr "" - -#: src/input/input_dvd.c:610 -#, c-format -msgid "input_dvd: Error getting next block from DVD (%s)\n" -msgstr "" - -#: src/input/input_dvd.c:1498 -msgid "input_dvd: Error opening DVD device\n" -msgstr "" - -#: src/input/input_dvd.c:1781 -msgid "device used for DVD playback" -msgstr "" - -#: src/input/input_dvd.c:1782 -msgid "" -"The path to the device, usually a DVD drive, which you intend to use for " -"playing DVDs." -msgstr "" - -#: src/input/input_dvd.c:1799 -msgid "raw device set up for DVD access" -msgstr "" - -#: src/input/input_dvd.c:1800 -msgid "" -"If this points to a raw device connected to your DVD device, xine will use " -"the raw device for playback. This has the advantage of being slightly faster " -"and of bypassing the block device cache, which avoids throwing away " -"important cache content by keeping DVD data cached. Using the block device " -"cache for DVDs is useless, because almost all DVD data will be used only " -"once.\n" -"See the documentation on raw device setup (man raw) for further information." -msgstr "" - -#: src/input/input_dvd.c:1813 -msgid "CSS decryption method" -msgstr "" - -#: src/input/input_dvd.c:1814 -msgid "" -"Selects the decryption method libdvdcss will use to descramble copy " -"protected DVDs. Try the various methods, if you have problems playing " -"scrambled DVDs." -msgstr "" - -#: src/input/input_dvd.c:1829 -msgid "region the DVD player claims to be in (1 to 8)" -msgstr "" - -#: src/input/input_dvd.c:1830 -msgid "" -"This only needs to be changed if your DVD jumps to a screen complaining " -"about a wrong region code. It has nothing to do with the region code set in " -"DVD drives, this is purely software." -msgstr "" - -#: src/input/input_dvd.c:1836 -msgid "default language for DVD playback" -msgstr "" - -#: src/input/input_dvd.c:1837 -msgid "" -"xine tries to use this language as a default for DVD playback. As far as the " -"DVD supports it, menus and audio tracks will be presented in this language.\n" -"The value must be a two character ISO639 language code." -msgstr "" - -#: src/input/input_dvd.c:1843 -msgid "read-ahead caching" -msgstr "" - -#: src/input/input_dvd.c:1844 -msgid "" -"xine can use a read ahead cache for DVD drive access.\n" -"This may lead to jerky playback on slow drives, but it improves the impact " -"of the DVD layer change on faster drives." -msgstr "" - -#: src/input/input_dvd.c:1850 -msgid "unit for the skip action" -msgstr "" - -#: src/input/input_dvd.c:1851 -msgid "" -"You can configure the behaviour when issuing a skip command (using the skip " -"buttons for example). The individual values mean:\n" -"\n" -"skip program\n" -"will skip a DVD program, which is a navigational unit similar to the index " -"marks on an audio CD; this is the normal behaviour for DVD players\n" -"\n" -"skip part\n" -"will skip a DVD part, which is a structural unit similar to the track marks " -"on an audio CD; parts usually coincide with programs, but parts can be " -"larger than programs\n" -"\n" -"skip title\n" -"will skip a DVD title, which is a structural unit representing entire " -"features on the DVD" -msgstr "" - -#: src/input/input_dvd.c:1866 -msgid "unit for seeking" -msgstr "" - -#: src/input/input_dvd.c:1867 -msgid "" -"You can configure the domain spanned by the seek slider. The individual " -"values mean:\n" -"\n" -"seek in program chain\n" -"seeking will span an entire DVD program chain, which is a navigational unit " -"representing the entire video stream of the current feature\n" -"\n" -"seek in program\n" -"seeking will span a DVD program, which is a navigational unit representing a " -"chapter of the current feature" -msgstr "" - -#: src/input/input_dvd.c:1878 -msgid "play mode when title/chapter is given" -msgstr "" - -#: src/input/input_dvd.c:1879 -msgid "" -"You can configure the behaviour when playing a dvd from a given title/" -"chapter (eg. using MRL 'dvd:/1.2'). The individual values mean:\n" -"\n" -"entire dvd\n" -"play the entire dvd starting on the specified position.\n" -"\n" -"one chapter\n" -"play just the specified title/chapter and then stop" -msgstr "" - -#: src/input/input_file.c:203 -#, c-format -msgid "input_file: read error (%s)\n" -msgstr "" - -#: src/input/input_file.c:400 -#, c-format -msgid "input_file: Permission denied: >%s<\n" -msgstr "" - -#: src/input/input_file.c:405 -#, c-format -msgid "input_file: File not found: >%s<\n" -msgstr "" - -#: src/input/input_file.c:437 src/input/input_gnome_vfs.c:292 -#, c-format -msgid "input_file: File empty: >%s<\n" -msgstr "" - -#: src/input/input_file.c:658 -msgid "file input plugin" -msgstr "" - -#: src/input/input_file.c:1027 -msgid "file browsing start location" -msgstr "" - -#: src/input/input_file.c:1028 -msgid "The browser to select the file to play will start at this location." -msgstr "" - -#: src/input/input_file.c:1035 -msgid "list hidden files" -msgstr "" - -#: src/input/input_file.c:1036 -msgid "" -"If enabled, the browser to select the file to play will also show hidden " -"files." -msgstr "" - -#: src/input/input_gnome_vfs.c:218 -msgid "gnome-vfs input plugin as shipped with xine" -msgstr "" - -#: src/input/input_http.c:176 -#, c-format -msgid "input_http: gethostbyname(%s) failed: %s\n" -msgstr "" - -#: src/input/input_http.c:402 src/input/input_http.c:957 -#, c-format -msgid "input_http: read error %d\n" -msgstr "" - -#: src/input/input_http.c:629 -msgid "Connecting HTTP server..." -msgstr "" - -#: src/input/input_http.c:820 -#, c-format -msgid "input_http: invalid http answer\n" -msgstr "" - -#: src/input/input_http.c:826 -#, c-format -msgid "input_http: 3xx redirection: >%d %s<\n" -msgstr "" - -#: src/input/input_http.c:831 src/input/input_http.c:836 -#: src/input/input_http.c:842 src/input/input_http.c:849 -#, c-format -msgid "input_http: http status not 2xx: >%d %s<\n" -msgstr "" - -#: src/input/input_http.c:859 -#, c-format -msgid "input_http: content length = % bytes\n" -msgstr "" - -#: src/input/input_http.c:932 -#, c-format -msgid "input_http: buffer exhausted after %d bytes." -msgstr "" - -#: src/input/input_http.c:1010 -msgid "http input plugin" -msgstr "" - -#: src/input/input_http.c:1076 -msgid "HTTP proxy host" -msgstr "" - -#: src/input/input_http.c:1076 -msgid "The hostname of the HTTP proxy." -msgstr "" - -#: src/input/input_http.c:1080 -msgid "HTTP proxy port" -msgstr "" - -#: src/input/input_http.c:1080 -msgid "The port number of the HTTP proxy." -msgstr "" - -#: src/input/input_http.c:1090 -msgid "HTTP proxy username" -msgstr "" - -#: src/input/input_http.c:1091 -msgid "The user name for the HTTP proxy." -msgstr "" - -#: src/input/input_http.c:1094 -msgid "HTTP proxy password" -msgstr "" - -#: src/input/input_http.c:1095 -msgid "The password for the HTTP proxy." -msgstr "" - -#: src/input/input_http.c:1098 -msgid "Domains for which to ignore the HTTP proxy" -msgstr "" - -#: src/input/input_http.c:1099 -msgid "" -"A comma-separated list of domain names for which the proxy is to be " -"ignored.\n" -"If a domain name is prefixed with '=' then it is treated as a host name only " -"(full match required)." -msgstr "" - -#: src/input/input_mms.c:443 -msgid "mms streaming input plugin" -msgstr "" - -#: src/input/input_mms.c:479 src/input/librtsp/rtsp_session.c:93 -msgid "network bandwidth" -msgstr "" - -#: src/input/input_mms.c:480 src/input/librtsp/rtsp_session.c:94 -msgid "" -"Specify the bandwidth of your internet connection here. This will be used " -"when streaming servers offer different versions with different bandwidth " -"requirements of the same stream." -msgstr "" - -#: src/input/input_mms.c:489 -msgid "MMS protocol" -msgstr "" - -#: src/input/input_mms.c:490 -msgid "" -"Select the protocol to encapsulate MMS.\n" -"TCP is better but you may need HTTP behind a firewall." -msgstr "" - -#: src/input/input_net.c:123 src/input/input_net.c:153 -#, c-format -msgid "input_net: socket(): %s\n" -msgstr "" - -#: src/input/input_net.c:138 src/input/input_net.c:164 -#, c-format -msgid "input_net: connect(): %s\n" -msgstr "" - -#: src/input/input_net.c:182 src/input/input_net.c:224 -#, c-format -msgid "input_net: unable to resolve '%s'.\n" -msgstr "" - -#: src/input/input_net.c:195 src/input/input_net.c:241 -#, c-format -msgid "input_net: unable to connect to '%s'.\n" -msgstr "" - -#: src/input/input_net.c:510 -msgid "net input plugin as shipped with xine" -msgstr "" - -#: src/input/input_pnm.c:262 -msgid "pnm streaming input plugin" -msgstr "" - -#: src/input/input_pvr.c:603 -#, c-format -msgid "input_pvr: error creating pvr file (%s)\n" -msgstr "" - -#: src/input/input_pvr.c:760 -#, c-format -msgid "input_pvr: error opening pvr file (%s)\n" -msgstr "" - -#: src/input/input_pvr.c:836 -#, c-format -msgid "input_pvr: read error (%s)\n" -msgstr "" - -#: src/input/input_pvr.c:1152 src/input/input_pvr.c:1405 -#, c-format -msgid "input_pvr: error opening device %s\n" -msgstr "" - -#: src/input/input_pvr.c:1158 src/input/input_pvr.c:1411 -msgid "input_pvr: IVTV_IOC_G_CODEC failed, maybe API changed?\n" -msgstr "" - -#: src/input/input_pvr.c:1166 src/input/input_pvr.c:1420 -msgid "input_pvr: IVTV_IOC_S_CODEC failed, maybe API changed?\n" -msgstr "" - -#: src/input/input_pvr.c:1528 -msgid "WinTV-PVR 250/350 input plugin" -msgstr "" - -#: src/input/input_pvr.c:1554 -msgid "device used for WinTV-PVR 250/350 (pvr plugin)" -msgstr "" - -#: src/input/input_pvr.c:1555 -msgid "The path to the device of your WinTV card." -msgstr "" - -#: src/input/input_rtp.c:185 -#, c-format -msgid "socket(): %s.\n" -msgstr "" - -#: src/input/input_rtp.c:195 -msgid "IP address specified is multicast\n" -msgstr "" - -#: src/input/input_rtp.c:204 -#, c-format -msgid "setsockopt(SO_RCVBUF): %s.\n" -msgstr "" - -#: src/input/input_rtp.c:212 -#, c-format -msgid "setsockopt(SO_REUSEADDR): %s.\n" -msgstr "" - -#: src/input/input_rtp.c:219 -#, c-format -msgid "bind(): %s.\n" -msgstr "" - -#: src/input/input_rtp.c:239 -#, c-format -msgid "Can't find address for iface %s:%s\n" -msgstr "" - -#: src/input/input_rtp.c:257 -#, c-format -msgid "setsockopt(IP_ADD_MEMBERSHIP) failed (multicast kernel?): %s.\n" -msgstr "" - -#: src/input/input_rtp.c:279 -#, c-format -msgid "unable to resolve '%s'.\n" -msgstr "" - -#: src/input/input_rtp.c:289 -#, c-format -msgid "unable to bind to '%s'.\n" -msgstr "" - -#: src/input/input_rtp.c:317 -#, c-format -msgid "recv(): %s.\n" -msgstr "" - -#: src/input/input_rtp.c:605 -msgid "RTP: stopping reading thread...\n" -msgstr "" - -#: src/input/input_rtp.c:608 -msgid "RTP: reading thread terminated\n" -msgstr "" - -#: src/input/input_rtp.c:623 -#, c-format -msgid "Opening >filename:%s port:%d interface:%s<\n" -msgstr "" - -#: src/input/input_rtp.c:640 -#, c-format -msgid "input_rtp: can't create new thread (%s)\n" -msgstr "" - -#: src/input/input_rtp.c:746 -msgid "RTP and UDP input plugin as shipped with xine" -msgstr "" - -#: src/input/input_rtsp.c:284 -msgid "rtsp streaming input plugin" -msgstr "" - -#: src/input/input_smb.c:158 -msgid "CIFS/SMB input plugin based on libsmbclient" -msgstr "" - -#: src/input/input_stdin_fifo.c:166 -#, c-format -msgid "stdin: cannot seek back! (% > %)\n" -msgstr "" - -#: src/input/input_stdin_fifo.c:254 -#, c-format -msgid "stdin: failed to open '%s'\n" -msgstr "" - -#: src/input/input_stdin_fifo.c:350 -msgid "stdin streaming input plugin" -msgstr "" - -#: src/input/input_v4l.c:379 -msgid "Buffer underrun..." -msgstr "" - -#: src/input/input_v4l.c:383 -msgid "Buffer overrun..." -msgstr "" - -#: src/input/input_v4l.c:386 -msgid "Adjusting..." -msgstr "" - -#: src/input/input_v4l.c:658 -msgid "Tuner name not found\n" -msgstr "" - -#: src/input/input_v4l.c:1874 -msgid "v4l tv input plugin" -msgstr "" - -#: src/input/input_v4l.c:1878 -msgid "v4l radio input plugin" -msgstr "" - -#: src/input/input_v4l.c:1910 -msgid "v4l video device" -msgstr "" - -#: src/input/input_v4l.c:1911 -msgid "The path to your Video4Linux video device." -msgstr "" - -#: src/input/input_v4l.c:1936 -msgid "v4l radio device" -msgstr "" - -#: src/input/input_v4l.c:1937 -msgid "The path to your Video4Linux radio device." -msgstr "" - -#: src/input/input_vcd.c:850 -msgid "input_vcd: malformed MRL. Use vcdo:/\n" -msgstr "" - -#: src/input/input_vcd.c:856 -#, c-format -msgid "input_vcd: invalid track %d (valid range: 0 .. %d)\n" -msgstr "" - -#: src/input/input_vcd.c:923 -msgid "Video CD input plugin" -msgstr "" - -#: src/input/input_vcd.c:968 -#, c-format -msgid "unable to open %s: %s.\n" -msgstr "" - -#: src/input/input_vcd.c:1044 -#, c-format -msgid "input_vcd: unable to open %s: %s.\n" -msgstr "" - -#: src/input/input_vcd.c:1098 -msgid "device used for VCD playback" -msgstr "" - -#: src/input/input_vcd.c:1099 -msgid "" -"The path to the device, usually a CD or DVD drive, you intend to play your " -"VideoCDs with." -msgstr "" - -#: src/input/librtsp/rtsp.c:450 -#, c-format -msgid "rtsp: bad mrl: %s\n" -msgstr "" - -#: src/input/librtsp/rtsp.c:510 -#, c-format -msgid "rtsp: failed to connect to '%s'\n" -msgstr "" - -#: src/input/librtsp/rtsp_session.c:109 -#, c-format -msgid "rtsp_session: failed to connect to server %s\n" -msgstr "" - -#: src/input/librtsp/rtsp_session.c:143 -msgid "rtsp_session: session can not be established.\n" -msgstr "" - -#: src/input/librtsp/rtsp_session.c:161 -#, c-format -msgid "rtsp_session: rtsp server type '%s' not supported yet. sorry.\n" -msgstr "" - -#: src/input/media_helper.c:148 -#, c-format -msgid "input_dvd: Device %s failed to open during eject calls\n" -msgstr "" - -#: src/input/mms.c:561 -msgid "Connecting MMS server (over tcp)..." -msgstr "" - -#: src/input/mmsh.c:201 -msgid "libmmsh: send error\n" -msgstr "" - -#: src/input/mmsh.c:246 -#, c-format -msgid "libmmsh: bad response format\n" -msgstr "" - -#: src/input/mmsh.c:252 -#, c-format -msgid "libmmsh: 3xx redirection not implemented: >%d %s<\n" -msgstr "" - -#: src/input/mmsh.c:259 -#, c-format -msgid "libmmsh: http status not 2xx: >%d %s<\n" -msgstr "" - -#: src/input/mmsh.c:267 -#, c-format -msgid "libmmsh: Location redirection not implemented\n" -msgstr "" - -#: src/input/mmsh.c:476 -msgid "Connecting MMS server (over http)..." -msgstr "" - -#: src/input/mmsh.c:657 -#, c-format -msgid "invalid url\n" -msgstr "" - -#: src/input/mmsh.c:662 -#, c-format -msgid "unsupported protocol\n" -msgstr "" - -#: src/input/net_buf_ctrl.c:89 -msgid "Buffering..." -msgstr "" - -#: src/input/pnm.c:617 -#, c-format -msgid "" -"input_pnm: got message from server while reading stream:\n" -"%s\n" -msgstr "" - -#: src/input/pnm.c:755 -#, c-format -msgid "input_pnm: failed to connect '%s'\n" -msgstr "" - -#: src/input/pnm.c:766 -msgid "input_pnm: failed to set up stream\n" -msgstr "" - -#: src/input/vcd/vcdio.c:222 -msgid "SEEK_CUR not implemented for non-zero offset" -msgstr "" - -#: src/input/vcd/vcdio.c:250 -msgid "SEEK_END not implemented yet." -msgstr "" - -#: src/input/vcd/vcdio.c:253 -msgid "seek not implemented yet for" -msgstr "" - -#: src/input/vcd/vcdplayer.c:94 -msgid "bad item type" -msgstr "" - -#: src/input/vcd/vcdplayer.c:458 -msgid "bad entry number" -msgstr "" - -#: src/input/vcd/vcdplayer.c:491 -msgid "bad segment number" -msgstr "" - -#: src/input/vcd/vcdplayer.c:501 -msgid "Error in getting current segment number" -msgstr "" - -#: src/input/vcd/vcdplayer.c:589 -msgid "Should have converted this above" -msgstr "" - -#: src/input/vcd/xineplug_inp_vcd.c:192 -msgid "failed to find a device with a VCD" -msgstr "" - -#: src/input/vcd/xineplug_inp_vcd.c:329 -msgid "was passed a null class parameter" -msgstr "" - -#: src/input/vcd/xineplug_inp_vcd.c:982 -msgid "Invalid current entry type" -msgstr "" - -#: src/input/vcd/xineplug_inp_vcd.c:1006 -msgid "" -"Video CD plugin with PBC and support for: (X)VCD, (X)SVCD, HQVCD, CVD ... " -msgstr "" - -#: src/input/vcd/xineplug_inp_vcd.c:1107 -msgid "selection has no RETURN entry" -msgstr "" - -#: src/input/vcd/xineplug_inp_vcd.c:1136 -msgid "DEFAULT selected, but PBC is not on." -msgstr "" - -#: src/input/vcd/xineplug_inp_vcd.c:1141 -msgid "selection has no NEXT entry" -msgstr "" - -#: src/input/vcd/xineplug_inp_vcd.c:1149 -msgid "selection has no PREVIOUS entry" -msgstr "" - -#: src/input/vcd/xineplug_inp_vcd.c:1156 -msgid "Unknown event type: " -msgstr "" - -#: src/input/vcd/xineplug_inp_vcd.c:1452 src/input/vcd/xineplug_inp_vcd.c:1499 -msgid "The above message had unknown vcdimager log level" -msgstr "" - -#: src/input/vcd/xineplug_inp_vcd.c:1830 -msgid "VCD default type to use on autoplay" -msgstr "" - -#: src/input/vcd/xineplug_inp_vcd.c:1831 -msgid "" -"The VCD play unit to use when none is specified in an MRL, e.g. vcd:// or " -"vcd:///dev/dvd:" -msgstr "" - -#: src/input/vcd/xineplug_inp_vcd.c:1841 -msgid "CD-ROM drive used for VCD when none given" -msgstr "" - -#: src/input/vcd/xineplug_inp_vcd.c:1842 -msgid "" -"What to use if no drive specified. If the setting is empty, xine will scan " -"for CD drives." -msgstr "" - -#: src/input/vcd/xineplug_inp_vcd.c:1852 -msgid "VCD position slider range" -msgstr "" - -#: src/input/vcd/xineplug_inp_vcd.c:1853 -msgid "" -"range that the stream playback position slider represents playing a VCD." -msgstr "" - -#: src/input/vcd/xineplug_inp_vcd.c:1861 -msgid "VCD read-ahead caching?" -msgstr "" - -#: src/input/vcd/xineplug_inp_vcd.c:1862 -msgid "Class may lead to jerky playback on low-end machines." -msgstr "" - -#: src/input/vcd/xineplug_inp_vcd.c:1872 -msgid "automatically advance VCD track/entry" -msgstr "" - -#: src/input/vcd/xineplug_inp_vcd.c:1873 -msgid "" -"If enabled, we should automatically advance to the next entry or track. Used " -"only when playback control (PBC) is disabled." -msgstr "" - -#: src/input/vcd/xineplug_inp_vcd.c:1882 -msgid "show 'rejected' VCD LIDs" -msgstr "" - -#: src/input/vcd/xineplug_inp_vcd.c:1883 -msgid "" -"Some playback list IDs (LIDs) are marked not showable, but you can see them " -"in the MRL list if this is set. Rejected entries are marked with an asterisk " -"(*) appended to the MRL." -msgstr "" - -#: src/input/vcd/xineplug_inp_vcd.c:1894 -msgid "VCD format string for display banner" -msgstr "" - -#: src/input/vcd/xineplug_inp_vcd.c:1895 -msgid "" -"VCD format used in the GUI Title. Similar to the Unix date command. Format " -"specifiers start with a percent sign. Specifiers are:\n" -" %A : The album information\n" -" %C : The VCD volume count - the number of CD's in the collection.\n" -" %c : The VCD volume num - the number of the CD in the collection.\n" -" %F : The VCD Format, e.g. VCD 1.0, VCD 1.1, VCD 2.0, or SVCD\n" -" %I : The current entry/segment/playback type, e.g. ENTRY, TRACK, ...\n" -" %L : The playlist ID prefixed with \" LID\" if it exists\n" -" %N : The current number of the above - a decimal number\n" -" %P : The publisher ID\n" -" %p : The preparer ID\n" -" %S : If we are in a segment (menu), the kind of segment\n" -" %T : The track number\n" -" %V : The volume set ID\n" -" %v : The volume ID\n" -" A number between 1 and the volume count.\n" -" %% : a %\n" -msgstr "" - -#: src/input/vcd/xineplug_inp_vcd.c:1920 -msgid "VCD format string for stream comment field" -msgstr "" - -#: src/input/vcd/xineplug_inp_vcd.c:1921 -msgid "" -"VCD format used in the GUI Title. Similar to the Unix date command. Format " -"specifiers start with a percent sign. Specifiers are %A, %C, %c, %F, %I, %L, " -"%N, %P, %p, %S, %T, %V, %v, and %%.\n" -"See the help for the title_format for the meanings of these." -msgstr "" - -#: src/input/vcd/xineplug_inp_vcd.c:1933 -msgid "VCD debug flag mask" -msgstr "" - -#: src/input/vcd/xineplug_inp_vcd.c:1934 -msgid "" -"For tracking down bugs in the VCD plugin. Mask values are:\n" -" 1: Meta information\n" -" 2: input (keyboard/mouse) events\n" -" 4: MRL parsing\n" -" 8: Calls from external routines\n" -" 16: routine calls\n" -" 32: LSN changes\n" -" 64: Playback control\n" -" 128: Debugging from CDIO\n" -" 256: Seeks to set location\n" -" 512: Seeks to find current location\n" -"1024: Still-frame\n" -"2048: Debugging from VCDINFO\n" -msgstr "" - -#: src/libffmpeg/ff_audio_decoder.c:122 -#, c-format -msgid "ffmpeg_audio_dec: increasing buffer to %d to avoid overflow.\n" -msgstr "" - -#: src/libffmpeg/ff_audio_decoder.c:166 -#, c-format -msgid "ffmpeg_audio_dec: couldn't find ffmpeg decoder for buf type 0x%X\n" -msgstr "" - -#: src/libffmpeg/ff_audio_decoder.c:258 -msgid "ffmpeg_audio_dec: trying to open null codec\n" -msgstr "" - -#: src/libffmpeg/ff_audio_decoder.c:267 -msgid "ffmpeg_audio_dec: couldn't open decoder\n" -msgstr "" - -#: src/libffmpeg/ff_dvaudio_decoder.c:280 -#, c-format -msgid "dvaudio: increasing buffer to %d to avoid overflow.\n" -msgstr "" - -#: src/libffmpeg/ffmpeg_encoder.c:163 -msgid "libavcodec mpeg output bitrate (kbit/s)" -msgstr "" - -#: src/libffmpeg/ffmpeg_encoder.c:164 -msgid "" -"The bitrate the libavcodec mpeg encoder should use for DXR3's encoding mode. " -"Higher values will increase quality and CPU usage.\n" -"This setting is only considered, when constant quality mode is disabled." -msgstr "" - -#: src/libffmpeg/ffmpeg_encoder.c:171 -msgid "constant quality mode" -msgstr "" - -#: src/libffmpeg/ffmpeg_encoder.c:172 -msgid "" -"When enabled, libavcodec will use a constant quality mode by dynamically " -"compressing the images based on their complexity. When disabled, libavcodec " -"will use constant bitrate mode." -msgstr "" - -#: src/libffmpeg/ffmpeg_encoder.c:179 -msgid "minimum compression" -msgstr "" - -#: src/libffmpeg/ffmpeg_encoder.c:180 -msgid "The minimum compression to apply to an image in constant quality mode." -msgstr "" - -#: src/libffmpeg/ffmpeg_encoder.c:185 -msgid "maximum quantizer" -msgstr "" - -#: src/libffmpeg/ffmpeg_encoder.c:186 -msgid "The maximum compression to apply to an image in constant quality mode." -msgstr "" - -#: src/libffmpeg/ff_video_decoder.c:155 -msgid "ffmpeg_video_dec: unsupported frame format, DR1 disabled.\n" -msgstr "" - -#: src/libffmpeg/ff_video_decoder.c:173 -msgid "ffmpeg_video_dec: unsupported frame dimensions, DR1 disabled.\n" -msgstr "" - -#: src/libffmpeg/ff_video_decoder.c:333 -#, c-format -msgid "ffmpeg_video_dec: couldn't find ffmpeg decoder for buf type 0x%X\n" -msgstr "" - -#: src/libffmpeg/ff_video_decoder.c:362 -msgid "ffmpeg_video_dec: couldn't open decoder\n" -msgstr "" - -#: src/libffmpeg/ff_video_decoder.c:397 -msgid "ffmpeg_video_dec: direct rendering enabled\n" -msgstr "" - -#: src/libffmpeg/ff_video_decoder.c:816 -#, c-format -msgid "ffmpeg_video_dec: increasing buffer to %d to avoid overflow.\n" -msgstr "" - -#: src/libffmpeg/ff_video_decoder.c:1519 -msgid "MPEG-4 postprocessing quality" -msgstr "" - -#: src/libffmpeg/ff_video_decoder.c:1520 -msgid "" -"You can adjust the amount of post processing applied to MPEG-4 video.\n" -"Higher values result in better quality, but need more CPU. Lower values may " -"result in image defects like block artifacts. For high quality content, too " -"heavy post processing can actually make the image worse by blurring it too " -"much." -msgstr "" - -#: src/libreal/real_common.c:107 -msgid "path to RealPlayer codecs" -msgstr "" - -#: src/libreal/real_common.c:108 -msgid "" -"If you have RealPlayer installed, specify the path to its codec directory " -"here. You can easily find the codec directory by looking for a file named " -"\"drvc.so\" in it. If xine can find the RealPlayer codecs, it will use them " -"to decode RealPlayer content for you. Consult the xine FAQ for more " -"information on how to install the codecs." -msgstr "" - -#: src/libreal/xine_real_audio_decoder.c:130 -#, c-format -msgid "libareal: (audio) Cannot resolve symbols - incompatible dll: %s\n" -msgstr "" - -#: src/libreal/xine_real_audio_decoder.c:287 -#, c-format -msgid "libareal: decoder init failed, error code: 0x%x\n" -msgstr "" - -#: src/libreal/xine_real_audio_decoder.c:301 -#, c-format -msgid "libareal: decoder flavor setup failed, error code: 0x%x\n" -msgstr "" - -#: src/libreal/xine_real_audio_decoder.c:338 -msgid "libareal: oups, real can do more than 2 channels ?\n" -msgstr "" - -#: src/libreal/xine_real_video_decoder.c:164 -msgid "libreal: Error resolving symbols! (version incompatibility?)\n" -msgstr "" - -#: src/libspucc/xine_cc_decoder.c:192 -msgid "display closed captions in MPEG-2 streams" -msgstr "" - -#: src/libspucc/xine_cc_decoder.c:193 -msgid "" -"Closed Captions are subtitles mostly meant to help the hearing impaired." -msgstr "" - -#: src/libspucc/xine_cc_decoder.c:200 -msgid "closed-captioning foreground/background scheme" -msgstr "" - -#: src/libspucc/xine_cc_decoder.c:201 -msgid "Choose your favourite rendering of the closed captions." -msgstr "" - -#: src/libspucc/xine_cc_decoder.c:207 -msgid "standard closed captioning font" -msgstr "" - -#: src/libspucc/xine_cc_decoder.c:208 -msgid "Choose the font for standard closed captions text." -msgstr "" - -#: src/libspucc/xine_cc_decoder.c:214 -msgid "italic closed captioning font" -msgstr "" - -#: src/libspucc/xine_cc_decoder.c:215 -msgid "Choose the font for italic closed captions text." -msgstr "" - -#: src/libspucc/xine_cc_decoder.c:221 -msgid "closed captioning font size" -msgstr "" - -#: src/libspucc/xine_cc_decoder.c:222 -msgid "Choose the font size for closed captions text." -msgstr "" - -#: src/libspucc/xine_cc_decoder.c:226 -msgid "center-adjust closed captions" -msgstr "" - -#: src/libspucc/xine_cc_decoder.c:227 -msgid "" -"When enabled, closed captions will be positioned by the center of the " -"individual lines." -msgstr "" - -#: src/libspucmml/xine_cmml_decoder.c:480 -msgid "font for external subtitles" -msgstr "" - -#: src/libspucmml/xine_cmml_decoder.c:486 -msgid "subtitle vertical offset (relative window size)" -msgstr "" - -#: src/libspucmml/xine_cmml_decoder.c:532 -msgid "encoding of subtitles" -msgstr "" - -#: src/libspudvb/xine_spudvb_decoder.c:621 -msgid "dvbsub: cannot create timer thread\n" -msgstr "" - -#: src/libsputext/demux_sputext.c:1506 -msgid "default duration of subtitle display in seconds" -msgstr "" - -#: src/libsputext/demux_sputext.c:1507 -msgid "" -"Some subtitle formats do not explicitly give a duration for each subtitle. " -"For these, you can set a default duration here. Setting to zero will result " -"in the subtitle being shown until the next one takes over." -msgstr "" - -#: src/libsputext/xine_sputext_decoder.c:948 -msgid "subtitle size" -msgstr "" - -#: src/libsputext/xine_sputext_decoder.c:949 -msgid "" -"You can adjust the subtitle size here. The setting will be evaluated " -"relative to the window size." -msgstr "" - -#: src/libsputext/xine_sputext_decoder.c:955 -msgid "subtitle vertical offset" -msgstr "" - -#: src/libsputext/xine_sputext_decoder.c:956 -msgid "" -"You can adjust the vertical position of the subtitle. The setting will be " -"evaluated relative to the window size." -msgstr "" - -#: src/libsputext/xine_sputext_decoder.c:962 -#: src/libsputext/xine_sputext_decoder.c:971 -msgid "font for subtitles" -msgstr "" - -#: src/libsputext/xine_sputext_decoder.c:963 -msgid "A font from the xine font directory to be used for the subtitle text." -msgstr "" - -#: src/libsputext/xine_sputext_decoder.c:972 -msgid "An outline font file (e.g. a .ttf) to be used for the subtitle text." -msgstr "" - -#: src/libsputext/xine_sputext_decoder.c:978 -msgid "whether to use a freetype font" -msgstr "" - -#: src/libsputext/xine_sputext_decoder.c:985 -msgid "encoding of the subtitles" -msgstr "" - -#: src/libsputext/xine_sputext_decoder.c:986 -msgid "" -"The encoding of the subtitle text in the stream. This setting is used to " -"render non-ASCII characters correctly. If non-ASCII characters are not " -"displayed as you expect, ask the creator of the subtitles what encoding was " -"used." -msgstr "" - -#: src/libsputext/xine_sputext_decoder.c:994 -msgid "use unscaled OSD if possible" -msgstr "" - -#: src/libsputext/xine_sputext_decoder.c:995 -msgid "" -"The unscaled OSD will be rendered independently of the video frame and will " -"always be sharp, even if the video is magnified. This will look better, but " -"does not work with all graphics hardware. The alternative is the scaled OSD, " -"which will become blurry, if you enlarge a low resolution video to " -"fullscreen, but it works with all graphics cards." -msgstr "" - -#: src/libw32dll/common.c:17 -msgid "path to Win32 codecs" -msgstr "" - -#: src/libw32dll/common.c:18 -msgid "" -"If you have the Windows or Apple Quicktime codec packs installed, specify " -"the path the codec directory here. If xine can find the Windows or Apple " -"Quicktime codecs, it will use them to decode various Windows Media and " -"Quicktime streams for you. Consult the xine FAQ for more information on how " -"to install the codecs." -msgstr "" - -#: src/libw32dll/w32codec.c:588 -#, c-format -msgid "w32codec: ICOpen failed! unknown codec %08lx / wrong parameters?\n" -msgstr "" - -#: src/libw32dll/w32codec.c:597 -#, c-format -msgid "w32codec: ICDecompressGetFormat (%.4s %08lx/%d) failed: Error %ld\n" -msgstr "" - -#: src/libw32dll/w32codec.c:630 -#, c-format -msgid "w32codec: ICDecompressQuery failed: Error %ld\n" -msgstr "" - -#: src/libw32dll/w32codec.c:641 -#, c-format -msgid "w32codec: ICDecompressBegin failed: Error %ld\n" -msgstr "" - -#: src/libw32dll/w32codec.c:687 -#, c-format -msgid "" -"w32codec: DS_VideoDecoder failed! unknown codec %08lx / wrong parameters?\n" -msgstr "" - -#: src/libw32dll/w32codec.c:698 -#, c-format -msgid "" -"w32codec: DMO_VideoDecoder failed! unknown codec %08lx / wrong parameters?\n" -msgstr "" - -#: src/libw32dll/w32codec.c:818 src/libw32dll/w32codec.c:1487 -#, c-format -msgid "w32codec: decoder failed to start. Is '%s' installed?\n" -msgstr "" - -#: src/libw32dll/w32codec.c:1221 -#, c-format -msgid "w32codec: (ACM_Decoder) Unappropriate audio format\n" -msgstr "" - -#: src/libw32dll/w32codec.c:1224 -#, c-format -msgid "w32codec: (ACM_Decoder) acmStreamOpen error %d\n" -msgstr "" - -#: src/libw32dll/w32codec.c:1243 -#, c-format -msgid "w32codec: Error initializing DirectShow Audio\n" -msgstr "" - -#: src/libw32dll/w32codec.c:1261 -#, c-format -msgid "w32codec: Error initializing DMO Audio\n" -msgstr "" - -#: src/libxineadec/xine_a52_decoder.c:742 -#: src/libxineadec/xine_dts_decoder.c:524 -msgid "HELP! a mono-only audio driver?!\n" -msgstr "" - -#: src/libxineadec/xine_a52_decoder.c:805 -msgid "A/52 volume" -msgstr "" - -#: src/libxineadec/xine_a52_decoder.c:806 -msgid "" -"With A/52 audio, you can modify the volume at the decoder level. This has " -"the advantage of the audio being already decoded for the specified volume, " -"so later operations like channel downmixing will work on an audio stream of " -"the given volume." -msgstr "" - -#: src/libxineadec/xine_a52_decoder.c:814 -msgid "use A/52 dynamic range compression" -msgstr "" - -#: src/libxineadec/xine_a52_decoder.c:815 -msgid "" -"Dynamic range compression limits the dynamic range of the audio. This means " -"making the loud sounds softer, and the soft sounds louder, so you can more " -"easily listen to the audio in a noisy environment without disturbing anyone." -msgstr "" - -#: src/libxineadec/xine_a52_decoder.c:822 -msgid "downmix audio to 2 channel surround stereo" -msgstr "" - -#: src/libxineadec/xine_a52_decoder.c:823 -msgid "" -"When you want to listen to multichannel surround sound, but you have only " -"two speakers or a surround decoder or amplifier which does some sort of " -"matrix surround decoding like prologic, you should enable this option so " -"that the additional channels are mixed into the stereo signal." -msgstr "" - -#: src/libxineadec/xine_faad_decoder.c:130 -msgid "libfaad: libfaad NeAACDecOpen() failed.\n" -msgstr "" - -#: src/libxineadec/xine_faad_decoder.c:139 -msgid "libfaad: libfaad NeAACDecInit2 failed.\n" -msgstr "" - -#: src/libxineadec/xine_faad_decoder.c:150 -msgid "libfaad: libfaad NeAACDecInit failed.\n" -msgstr "" - -#: src/libxineadec/xine_musepack_decoder.c:249 -#, c-format -msgid "libmusepack: mpc_streaminfo_read failed: %d\n" -msgstr "" - -#: src/libxineadec/xine_musepack_decoder.c:323 -msgid "libmusepack: data after last frame ignored\n" -msgstr "" - -#: src/libxineadec/xine_musepack_decoder.c:334 -msgid "libmusepack: mpc_decoder_initialise failed\n" -msgstr "" - -#: src/libxineadec/xine_musepack_decoder.c:354 -#: src/libxineadec/xine_musepack_decoder.c:369 -#, c-format -msgid "libmusepack: mpc_decoder_decode failed: %d\n" -msgstr "" - -#: src/libxinevdec/bitplane.c:1272 -#, c-format -msgid "bitplane: error doing ByteRun1 decompression\n" -msgstr "" - -#: src/libxinevdec/bitplane.c:1331 -#, c-format -msgid "bitplane: Anim Opt 1 is not supported at the moment\n" -msgstr "" - -#: src/libxinevdec/bitplane.c:1338 -#, c-format -msgid "bitplane: Anim Opt 2 is not supported at the moment\n" -msgstr "" - -#: src/libxinevdec/bitplane.c:1388 -#, c-format -msgid "bitplane: Anim ASCIIJ is not supported at the moment\n" -msgstr "" - -#: src/libxinevdec/bitplane.c:1394 -#, c-format -msgid "bitplane: This anim-type is not supported at the moment\n" -msgstr "" - -#: src/post/audio/stretch.c:264 -msgid "" -"This filter will perform a time stretch, playing the stream faster or slower " -"by a factor. Pitch is optionally preserved, so it is possible, for example, " -"to use it to watch a movie in less time than it was originaly shot.\n" -msgstr "" - -#: src/post/audio/upmix.c:137 -msgid "" -"Upmix functions. e.g. Take stereo input and produce Surround 5.1 output.\n" -"Parameters\n" -" cut_off_freq\n" -"\n" -"Note: It is possible to use frontend's control window to set these " -"parameters.\n" -"\n" -msgstr "" - -#: src/post/audio/upmix_mono.c:109 -msgid "" -"This filter will upmix a mono stream to stereo, by duplicating channels. " -"Alternatively, one may use this plugin to listen just one channel of a given " -"stream.\n" -msgstr "" - -#: src/post/audio/upmix_mono.c:147 -msgid ": upmixing Mono to Stereo.\n" -msgstr "" - -#: src/post/audio/upmix_mono.c:152 -#, c-format -msgid ": upmixing a single channel from original %d channel stream.\n" -msgid_plural ": upmixing a single channel from original %d channels stream.\n" -msgstr[0] "" -msgstr[1] "" - -#: src/post/audio/upmix_mono.c:157 -msgid ": audio device not capable of AO_CAP_MODE_STEREO.\n" -msgstr "" - -#: src/post/audio/volnorm.c:150 -msgid "" -"Normalizes audio by maximizing the volume without distorting the sound.\n" -"\n" -"Parameters:\n" -" method: 1: use a single sample to smooth the variations via the standard " -"weighted mean over past samples (default); 2: use several samples to smooth " -"the variations via the standard weighted mean over past samples.\n" -msgstr "" - -#: src/post/deinterlace/xine_plugin.c:204 -msgid "" -"Advanced tvtime/deinterlacer plugin with pulldown detection\n" -"This plugin aims to provide deinterlacing mechanisms comparable to high " -"quality progressive DVD players and so called line-doublers, for use with " -"computer monitors, projectors and other progressive display devices.\n" -"\n" -"Parameters\n" -"\n" -" Method: Select deinterlacing method/algorithm to use, see below for " -"explanation of each method.\n" -"\n" -" Enabled: Enable/disable the plugin.\n" -"\n" -" Pulldown: Choose the 2-3 pulldown detection algorithm. 24 FPS films that " -"have being converted to NTSC can be detected and intelligently reconstructed " -"to their original (non-interlaced) frames.\n" -"\n" -" Framerate_mode: Selecting 'full' will deinterlace every field to an unique " -"frame for television quality and beyond. This feature will effetively double " -"the frame rate, improving smoothness. Note, however, that full 59.94 FPS is " -"not possible with plain 2.4 Linux kernel (that use a timer interrupt " -"frequency of 100Hz). Newer RedHat and 2.6 kernels use higher HZ settings " -"(512 and 1000, respectively) and should work fine.\n" -"\n" -" Judder_correction: Once 2-3 pulldown is enabled and a film material is " -"detected, it is possible to reduce the frame rate to original rate used (24 " -"FPS). This will make the frames evenly spaced in time, matching the speed " -"they were shot and eliminating the judder effect.\n" -"\n" -" Use_progressive_frame_flag: Well mastered MPEG2 streams uses a flag to " -"indicate progressive material. This setting control whether we trust this " -"flag or not (some rare and buggy mpeg2 streams set it wrong).\n" -"\n" -" Chroma_filter: DVD/MPEG2 use an interlaced image format that has a very " -"poor vertical chroma resolution. Upsampling the chroma for purposes of " -"deinterlacing may cause some artifacts to occur (eg. color stripes). Use " -"this option to blur the chroma vertically after deinterlacing to remove the " -"artifacts. Warning: cpu intensive.\n" -"\n" -" Cheap_mode: This will skip the expensive YV12->YUY2 image conversion, " -"tricking tvtime/dscaler routines like if they were still handling YUY2 " -"images. Of course, this is not correct, not all pixels will be evaluated by " -"the algorithms to decide the regions to deinterlace and chroma will be " -"processed separately. Nevertheless, it allows people with not so fast " -"systems to try deinterlace algorithms, in a tradeoff between quality and cpu " -"usage.\n" -"\n" -"* Uses several algorithms from tvtime and dscaler projects.\n" -"Deinterlacing methods: (Not all methods are available for all plataforms)\n" -"\n" -msgstr "" - -#: src/post/deinterlace/xine_plugin.c:325 -msgid "tvtime: No deinterlacing methods available, exiting.\n" -msgstr "" - -#: src/post/goom/xine_goom.c:204 -msgid "frames per second to generate" -msgstr "" - -#: src/post/goom/xine_goom.c:205 -msgid "" -"With more frames per second, the animation will get smoother and faster, but " -"will also require more CPU power." -msgstr "" - -#: src/post/goom/xine_goom.c:210 -msgid "goom image width" -msgstr "" - -#: src/post/goom/xine_goom.c:211 -msgid "The width in pixels of the image to be generated." -msgstr "" - -#: src/post/goom/xine_goom.c:215 -msgid "goom image height" -msgstr "" - -#: src/post/goom/xine_goom.c:216 -msgid "The height in pixels of the image to be generated." -msgstr "" - -#: src/post/goom/xine_goom.c:222 -msgid "colorspace conversion method" -msgstr "" - -#: src/post/goom/xine_goom.c:223 -msgid "" -"You can choose the colorspace conversion method used by goom.\n" -"The available selections should be self-explaining." -msgstr "" - -#: src/post/mosaico/mosaico.c:273 -msgid "" -"Mosaico does simple picture in picture effects.\n" -"\n" -"Parameters\n" -" pip_num: the number of the picture slot the following settings apply to\n" -" x: the x coordinate of the left upper corner of the picture\n" -" y: the y coordinate of the left upper corner of the picture\n" -" w: the width of the picture\n" -" h: the height of the picture\n" -msgstr "" - -#: src/post/mosaico/switch.c:230 -msgid "" -"Switch can be used for fast switching between multiple inputs.\n" -"\n" -"Parameters\n" -" select: the number of the input which will be passed to the output\n" -msgstr "" - -#: src/post/planar/boxblur.c:103 -msgid "" -"Box blur does a simple blurring of the image.\n" -"\n" -"Parameters\n" -" Radius: size of the filter\n" -" Power: how often the filter should be applied\n" -"\n" -"* mplayer's boxblur (C) 2002 Michael Niedermayer\n" -msgstr "" - -#: src/post/planar/denoise3d.c:136 -msgid "" -"This filter aims to reduce image noise producing smooth images and making " -"still images really still (This should enhance compressibility.). It can be " -"given from 0 to 3 parameters. If you omit a parameter, a reasonable value " -"will be inferred.\n" -"\n" -"Parameters\n" -" Luma: Spatial luma strength (default = 4)\n" -" Chroma: Spatial chroma strength (default = 3)\n" -" Time: Temporal strength (default = 6)\n" -"\n" -"* mplayer's denoise3d (C) 2003 Daniel Moreno\n" -msgstr "" - -#: src/post/planar/eq2.c:359 -msgid "" -"Alternative software equalizer that uses lookup tables (very slow), allowing " -"gamma correction in addition to simple brightness, contrast and saturation " -"adjustment.\n" -"Note that it uses the same MMX optimized code as 'eq' if all gamma values " -"are 1.0.\n" -"\n" -"Parameters\n" -" gamma\n" -" brightness\n" -" contrast\n" -" saturation\n" -" rgamma (gamma for the red component)\n" -" ggamma (gamma for the green component)\n" -" bgamma (gamma for the blue component)\n" -"\n" -"Value ranges are 0.1 - 10 for gammas, -2 - 2 for contrast (negative values " -"result in a negative image), -1 - 1 for brightness and 0 - 3 for " -"saturation.\n" -"\n" -"* mplayer's eq2 (C) Hampa Hug, Daniel Moreno, Richard Felker\n" -msgstr "" - -#: src/post/planar/eq.c:186 -msgid "" -"Software equalizer with interactive controls just like the hardware " -"equalizer, for cards/drivers that do not support brightness and contrast " -"controls in hardware.\n" -"\n" -"Parameters\n" -" brightness\n" -" contrast\n" -"\n" -"Note: It is possible to use frontend's control window to set these " -"parameters.\n" -"\n" -"* mplayer's eq (C) Richard Felker\n" -msgstr "" - -#: src/post/planar/expand.c:251 -msgid "" -"The expand plugin is meant to take frames of arbitrary aspect ratio and " -"converts them to a different aspect (4:3 by default) by adding black bars on " -"the top and bottom of the frame. This allows us to shift overlays down into " -"the black area so they don't cover the image.\n" -"\n" -"Parameters (FIXME: better help)\n" -" Enable_automatic_shift: Enable automatic overlay shifting\n" -" Overlay_y_offset: Manually shift the overlay vertically\n" -" aspect: The target aspect ratio (default 4:3)\n" -" Centre_cut_out_mode: extracts 4:3 image contained in 16:9 frame\n" -"\n" -msgstr "" - -#: src/post/planar/noise.c:402 -msgid "" -"Adds random noise to the video.\n" -"\n" -"Parameters:\n" -" luma_strength: strength of noise added to luma channel (0-100, default: " -"8)\n" -" chroma_strength: strength of noise added to chroma channel (0-100, " -"default: 5)\n" -" quality: quality level of the noise. fixed: constant noise pattern; " -"temporal: noise pattern changes between frames; averaged temporal: smoother " -"noise pattern that changes between frames. (default: averaged temporal)\n" -" type: Type of noise: uniform or gaussian. (default: gaussian)\n" -" pattern: Mix random noise with a (semi)regular pattern. (default: False)\n" -"\n" -"* mplayer's noise (C) Michael Niedermayer\n" -msgstr "" - -#: src/post/planar/pp.c:108 -msgid "" -"FFmpeg libpostprocess plugin.\n" -"\n" -"Parameters\n" -"\n" -msgstr "" - -#: src/post/planar/pp.c:114 -msgid "" -"\n" -"* libpostprocess (C) Michael Niedermayer\n" -msgstr "" - -#: src/post/planar/unsharp.c:220 -msgid "" -"Unsharp mask / gaussian blur\n" -"It is possible to set the width and height of the matrix, odd sized in both " -"directions (min = 3x3, max = 13x11 or 11x13, usually something between 3x3 " -"and 7x7) and the relative amount of sharpness/blur to add to the image (a " -"sane range should be -1.5 - 1.5).\n" -"\n" -"Parameters\n" -"\n" -" Luma_matrix_width: Width of the matrix (must be odd)\n" -"\n" -" Luma_matrix_height: Height of the matrix (must be odd)\n" -"\n" -" Luma_amount: Relative amount of sharpness/blur (=0 disable, <0 blur, >0 " -"sharpen)\n" -"\n" -" Chroma_matrix_width: Width of the matrix (must be odd)\n" -"\n" -" Chroma_matrix_height: Height of the matrix (must be odd)\n" -"\n" -" Chroma_amount: Relative amount of sharpness/blur (=0 disable, <0 blur, >0 " -"sharpen)\n" -"\n" -"\n" -"* mplayer's unsharp (C) 2002 Remi Guyomarch\n" -msgstr "" - -#: src/vdr/input_vdr.c:183 src/vdr/input_vdr.c:223 src/vdr/input_vdr.c:2297 -#: src/vdr/input_vdr.c:2394 -#, c-format -msgid ": input event write: %s.\n" -msgstr "" - -#: src/vdr/input_vdr.c:713 src/vdr/input_vdr.c:1137 -msgid ": buffer_pool_alloc() failed!\n" -msgstr "" - -#: src/vdr/input_vdr.c:782 -#, c-format -msgid ": flush buffers (vb: %d, ab: %d, vf: %d, af: %d) %s.\n" -msgstr "" - -#: src/vdr/input_vdr.c:1475 -#, c-format -msgid ": shutting down rpc thread (timeout: %d ms) ...\n" -msgstr "" - -#: src/vdr/input_vdr.c:1499 -#, c-format -msgid ": cancelling rpc thread in function %d...\n" -msgstr "" - -#: src/vdr/input_vdr.c:1506 -msgid ": joining rpc thread ...\n" -msgstr "" - -#: src/vdr/input_vdr.c:1508 -msgid ": rpc thread joined.\n" -msgstr "" - -#: src/vdr/input_vdr.c:2137 src/vdr/input_vdr.c:2151 src/vdr/input_vdr.c:2169 -#: src/vdr/input_vdr.c:2190 src/vdr/input_vdr.c:2211 -#, c-format -msgid ": failed to open '%s' (%s)\n" -msgstr "" - -#: src/vdr/input_vdr.c:2153 -msgid "timeout expired during setup phase" -msgstr "" - -#: src/vdr/input_vdr.c:2227 -#, c-format -msgid ": can't create new thread (%s)\n" -msgstr "" - -#: src/vdr/input_vdr.c:2487 -msgid "VDR display device plugin" -msgstr "" - -#: src/vdr/post_vdr_video.c:435 -#, c-format -msgid ": osd: (%d, %d)-(%d, %d)@%lg\n" -msgstr "" - -#: src/video_out/video_out_aa.c:311 -msgid "xine video output plugin using the ascii-art library" -msgstr "" - -#: src/video_out/video_out_caca.c:318 -msgid "xine video output plugin using the Color AsCii Art library" -msgstr "" - -#: src/video_out/video_out_directfb.c:1341 -msgid "video layer buffering mode" -msgstr "" - -#: src/video_out/video_out_directfb.c:1342 -msgid "" -"Select the buffering mode of the output layer. Double or triple buffering " -"give a smoother playback, but consume more video memory." -msgstr "" - -#: src/video_out/video_out_directfb.c:1349 -msgid "wait for vertical retrace" -msgstr "" - -#: src/video_out/video_out_directfb.c:1350 -msgid "" -"Enable synchronizing the update of the video image to the repainting of the " -"entire screen (\"vertical retrace\")." -msgstr "" - -#: src/video_out/video_out_directfb.c:1357 -msgid "enable video color key" -msgstr "" - -#: src/video_out/video_out_directfb.c:1358 -msgid "" -"Enable using a color key to tell the graphics card where to overlay the " -"video image." -msgstr "" - -#: src/video_out/video_out_directfb.c:1364 -msgid "video color key" -msgstr "" - -#: src/video_out/video_out_directfb.c:1365 -msgid "" -"The color key is used to tell the graphics card where to overlay the video " -"image. Try different values, if you experience windows becoming transparent." -msgstr "" - -#: src/video_out/video_out_directfb.c:1374 -msgid "flicker filtering" -msgstr "" - -#: src/video_out/video_out_directfb.c:1375 -msgid "Enable Flicker Filetring for a smooth output on an interlaced display." -msgstr "" - -#: src/video_out/video_out_directfb.c:1382 -msgid "field parity" -msgstr "" - -#: src/video_out/video_out_directfb.c:1383 -msgid "" -"For an interlaced display, enable controlling the field parity (\"none" -"\"=disabled)." -msgstr "" - -#: src/video_out/video_out_directfb.c:1516 -msgid "video_out_directfb: using hardware subpicture acceleration.\n" -msgstr "" - -#: src/video_out/video_out_directfb.c:1530 -msgid "video_out_directfb: layer supports video output.\n" -msgstr "" - -#: src/video_out/video_out_directfb.c:1539 -msgid "video_out_directfb: layer doesn't support YV12!\n" -msgstr "" - -#: src/video_out/video_out_directfb.c:1546 -msgid "video_out_directfb: layer doesn't support YUY2!\n" -msgstr "" - -#: src/video_out/video_out_directfb.c:1557 -msgid "" -"video_out_directfb:need at least DirectFB 0.9.25 to play on this layer!\n" -msgstr "" - -#: src/video_out/video_out_directfb.c:1592 -#, c-format -msgid "video_out_directfb: layer doesn't support buffermode %d!\n" -msgstr "" - -#: src/video_out/video_out_directfb.c:1598 -#, c-format -msgid "video_out_directfb: layer doesn't support options 0x%08x!\n" -msgstr "" - -#: src/video_out/video_out_directfb.c:1692 -msgid "video_out_directfb: using hardware accelerated image scaling.\n" -msgstr "" - -#: src/video_out/video_out_directfb.c:1704 -msgid "" -"video_out_directfb: image scaling with deinterlacing is hardware " -"accelerated.\n" -msgstr "" - -#: src/video_out/video_out_directfb.c:1782 -msgid "video layer id (auto: -1)" -msgstr "" - -#: src/video_out/video_out_directfb.c:1783 -msgid "Select the video output layer by its id." -msgstr "" - -#: src/video_out/video_out_directfb.c:1804 -#: src/video_out/video_out_directfb.c:2014 -#, c-format -msgid "video_out_directfb: using display layer #%d.\n" -msgstr "" - -#: src/video_out/video_out_directfb.c:1888 -msgid "xine video output plugin using DirectFB." -msgstr "" - -#: src/video_out/video_out_directfb.c:2007 -msgid "video_out_directfb: no usable display layer was found!\n" -msgstr "" - -#: src/video_out/video_out_directfb.c:2096 -msgid "xine video output plugin using DirectFB under XDirectFB." -msgstr "" - -#: src/video_out/video_out_directx.c:1238 -msgid "xine video output plugin for win32 using directx" -msgstr "" - -#: src/video_out/video_out_fb.c:780 -#, c-format -msgid "" -"video_out_fb: only packed truecolor/directcolor is supported (%d).\n" -" Check 'fbset -i' or try 'fbset -depth 16'.\n" -msgstr "" - -#: src/video_out/video_out_fb.c:840 src/video_out/video_out_vidix.c:1239 -msgid "framebuffer device name" -msgstr "" - -#: src/video_out/video_out_fb.c:841 src/video_out/video_out_vidix.c:1240 -msgid "" -"Specifies the file name for the framebuffer device to be used.\n" -"This setting is security critical, because when changed to a different file, " -"xine can be used to fill this file with arbitrary content. So you should be " -"careful that the value you enter really is a proper framebuffer device." -msgstr "" - -#: src/video_out/video_out_fb.c:915 -#, c-format -msgid "%s: Your video mode was not recognized, sorry.\n" -msgstr "" - -#: src/video_out/video_out_fb.c:972 -#, c-format -msgid "%s: %d video RAM buffers are available.\n" -msgstr "" - -#: src/video_out/video_out_fb.c:978 -#, c-format -msgid "" -"WARNING: %s: Zero copy buffers are DISABLED because only %d buffers\n" -" are available which is less than the recommended %d buffers. Lowering\n" -" the frame buffer resolution might help.\n" -msgstr "" - -#: src/video_out/video_out_fb.c:989 -#, c-format -msgid "" -"WARNING: %s: Zero copy buffers are DISABLED because kernel driver\n" -" do not support screen panning (used for frame flips).\n" -msgstr "" - -#: src/video_out/video_out_fb.c:1058 -#, c-format -msgid "" -"WARNING: %s: current display depth is %d. For better performance\n" -" a depth of 16 bpp is recommended!\n" -"\n" -msgstr "" - -#: src/video_out/video_out_fb.c:1090 -msgid "Xine video output plugin using the Linux frame buffer device" -msgstr "" - -#: src/video_out/video_out_none.c:279 -msgid "xine video output plugin which displays nothing" -msgstr "" - -#: src/video_out/video_out_opengl.c:1889 -msgid "OpenGL renderer" -msgstr "" - -#: src/video_out/video_out_opengl.c:1890 -msgid "" -"The OpenGL plugin provides several render modules:\n" -"\n" -"2D_Tex_Fragprog\n" -"This module downloads the images as YUV 2D textures and renders a textured " -"slice\n" -"using fragment programs for reconstructing RGB.\n" -"This is the best and fastest method on modern graphics cards.\n" -"\n" -"2D_Tex\n" -"This module downloads the images as 2D textures and renders a textured " -"slice.\n" -"2D_Tex_Tiled\n" -"This module downloads the images as multiple 2D textures and renders a " -"textured\n" -"slice. Thus this works with smaller maximum texture sizes as well.\n" -"Image_Pipeline\n" -"This module uses glDraw() to render the images.\n" -"Only accelerated on few drivers.\n" -"Does not interpolate on scaling.\n" -"\n" -"Cylinder\n" -"Shows images on a rotating cylinder. Nice effect :)\n" -"\n" -"Environment_Mapped_Torus\n" -"Show images reflected in a spinning torus. Way cool =)" -msgstr "" - -#: src/video_out/video_out_opengl.c:1912 -msgid "OpenGL minimum framerate" -msgstr "" - -#: src/video_out/video_out_opengl.c:1913 -msgid "" -"Minimum framerate for animated render routines.\n" -"Ignored for static render routines.\n" -msgstr "" - -#: src/video_out/video_out_opengl.c:1918 src/video_out/video_out_vidix.c:1015 -#: src/video_out/video_out_xcbxv.c:1304 src/video_out/video_out_xv.c:1359 -#: src/video_out/video_out_xvmc.c:1423 src/video_out/video_out_xxmc.c:2531 -msgid "enable double buffering" -msgstr "" - -#: src/video_out/video_out_opengl.c:1919 -msgid "" -"For OpenGL double buffering does not only remove tearing artifacts,\n" -"it also reduces flickering a lot.\n" -"It should not have any performance impact." -msgstr "" - -#: src/video_out/video_out_opengl.c:1966 -msgid "xine video output plugin using the OpenGL 3D graphics API" -msgstr "" - -#: src/video_out/video_out_pgx32.c:190 -msgid "video_out_pgx32: Error: can't grab DGA drawable for video window\n" -msgstr "" - -#: src/video_out/video_out_pgx32.c:209 src/video_out/video_out_pgx32.c:223 -#, c-format -msgid "video_out_pgx32: Error: ioctl failed, bad device (%s)\n" -msgstr "" - -#: src/video_out/video_out_pgx32.c:216 -#, c-format -msgid "video_out_pgx32: Error: '%s' is not a pgx32 framebuffer device\n" -msgstr "" - -#: src/video_out/video_out_pgx64.c:281 -msgid "video_out_pgx64: Error: can't grab DGA drawable for video window\n" -msgstr "" - -#: src/video_out/video_out_pgx64.c:299 -#, c-format -msgid "video_out_pgx64: Error: can't open framebuffer device '%s'\n" -msgstr "" - -#: src/video_out/video_out_pgx64.c:306 -#, c-format -msgid "" -"video_out_pgx64: Error: ioctl failed (VIS_GETIDENTIFIER), bad device (%s)\n" -msgstr "" - -#: src/video_out/video_out_pgx64.c:319 -#, c-format -msgid "" -"video_out_pgx64: Error: '%s' is not a xvr100/pgx64/pgx24 framebuffer device\n" -msgstr "" - -#: src/video_out/video_out_pgx64.c:340 -msgid "" -"video_out_pgx64: Error: video overlay on this screen is already in use\n" -msgstr "" - -#: src/video_out/video_out_pgx64.c:355 -msgid "video_out_pgx64: Error: unable to set window properties\n" -msgstr "" - -#: src/video_out/video_out_pgx64.c:811 -msgid "video_out_pgx64: Warning: low video memory, multi-buffering disabled\n" -msgstr "" - -#: src/video_out/video_out_pgx64.c:843 -msgid "video_out_pgx64: Error: insuffucient video memory\n" -msgstr "" - -#: src/video_out/video_out_pgx64.c:859 -msgid "video_out_pgx64: Warning: low video memory, double-buffering disabled\n" -msgstr "" - -#: src/video_out/video_out_pgx64.c:1397 -msgid "video_out_pgx64: Error: ioctl failed (FBIOGATTR)\n" -msgstr "" - -#: src/video_out/video_out_pgx64.c:1464 src/video_out/video_out_xcbxv.c:1271 -#: src/video_out/video_out_xv.c:1326 src/video_out/video_out_xvmc.c:1408 -#: src/video_out/video_out_xxmc.c:2498 -msgid "video overlay colour key" -msgstr "" - -#: src/video_out/video_out_pgx64.c:1465 -msgid "" -"The colour key is used to tell the graphics card where it can overlay the " -"video image. Try using different values if you see the video showing through " -"other windows." -msgstr "" - -#: src/video_out/video_out_pgx64.c:1472 -msgid "enable chroma keying" -msgstr "" - -#: src/video_out/video_out_pgx64.c:1473 -msgid "" -"Draw OSD graphics on top of the overlay colour key rather than blend them " -"into each frame." -msgstr "" - -#: src/video_out/video_out_pgx64.c:1476 -msgid "enable multi-buffering" -msgstr "" - -#: src/video_out/video_out_pgx64.c:1477 -msgid "" -"Multi buffering increases performance at the expense of using more graphics " -"memory." -msgstr "" - -#: src/video_out/video_out_sdl.c:482 -msgid "use hardware acceleration if available" -msgstr "" - -#: src/video_out/video_out_sdl.c:483 -msgid "" -"When your system supports it, hardware acceleration provided by your " -"graphics hardware will be used. This might not work, so you can disable it, " -"if things go wrong." -msgstr "" - -#: src/video_out/video_out_sdl.c:525 -msgid "sdl has to emulate a 16 bit surfaces, that will slow things down.\n" -msgstr "" - -#: src/video_out/video_out_sdl.c:562 -msgid "video_out_sdl: fullscreen mode is NOT supported\n" -msgstr "" - -#: src/video_out/video_out_sdl.c:573 -msgid "xine video output plugin using the Simple Direct Media Layer" -msgstr "" - -#: src/video_out/video_out_stk.c:454 -msgid "xine video output plugin using the Libstk Surface Set-top Toolkit" -msgstr "" - -#: src/video_out/video_out_syncfb.c:282 -msgid "video_out_syncfb: error. (YUY2 not supported by your graphic card)\n" -msgstr "" - -#: src/video_out/video_out_syncfb.c:298 -msgid "video_out_syncfb: error. (YV12 not supported by your graphic card)\n" -msgstr "" - -#: src/video_out/video_out_syncfb.c:940 -msgid "video_out_syncfb: info. (SyncFB module supports YUV 4:2:0 (3 plane))\n" -msgstr "" - -#: src/video_out/video_out_syncfb.c:945 -msgid "video_out_syncfb: info. (SyncFB module supports YUV 4:2:0 (2 plane))\n" -msgstr "" - -#: src/video_out/video_out_syncfb.c:950 -msgid "video_out_syncfb: info. (SyncFB module supports YUV 4:2:2)\n" -msgstr "" - -#: src/video_out/video_out_syncfb.c:956 -msgid "video_out_syncfb: info. (SyncFB module supports YUY2)\n" -msgstr "" - -#: src/video_out/video_out_syncfb.c:963 -msgid "video_out_syncfb: info. (SyncFB module supports RGB565)\n" -msgstr "" - -#: src/video_out/video_out_syncfb.c:968 -msgid "" -"video_out_syncfb: aborting. (SyncFB module does not support YV12, YUY2 nor " -"RGB565)\n" -msgstr "" - -#: src/video_out/video_out_syncfb.c:987 -msgid "" -"video_out_syncfb: info. (brightness/contrast control won't be available " -"because your SyncFB kernel module seems to be outdated. Please refer to " -"README.syncfb for informations on how to update it.)\n" -msgstr "" - -#: src/video_out/video_out_syncfb.c:1011 -msgid "default number of frame repetitions" -msgstr "" - -#: src/video_out/video_out_syncfb.c:1012 -msgid "" -"This specifies how many times a single video frame will be displayed " -"consecutively." -msgstr "" - -#: src/video_out/video_out_syncfb.c:1060 -msgid "" -"xine video output plugin using the SyncFB module for Matrox G200/G400 cards" -msgstr "" - -#: src/video_out/video_out_syncfb.c:1078 -msgid "SyncFB device name" -msgstr "" - -#: src/video_out/video_out_syncfb.c:1079 -msgid "" -"Specifies the file name for the SyncFB (TeleTux) device to be used.\n" -"This setting is security critical, because when changed to a different file, " -"xine can be used to fill this file with arbitrary content. So you should be " -"careful that the value you enter really is a proper framebuffer device." -msgstr "" - -#: src/video_out/video_out_vidix.c:993 -msgid "red intensity" -msgstr "" - -#: src/video_out/video_out_vidix.c:993 -msgid "The intensity of the red colour components." -msgstr "" - -#: src/video_out/video_out_vidix.c:998 -msgid "green intensity" -msgstr "" - -#: src/video_out/video_out_vidix.c:998 -msgid "The intensity of the green colour components." -msgstr "" - -#: src/video_out/video_out_vidix.c:1003 -msgid "blue intensity" -msgstr "" - -#: src/video_out/video_out_vidix.c:1003 -msgid "The intensity of the blue colour components." -msgstr "" - -#: src/video_out/video_out_vidix.c:1016 src/video_out/video_out_xcbxv.c:1305 -#: src/video_out/video_out_xv.c:1360 src/video_out/video_out_xvmc.c:1424 -#: src/video_out/video_out_xxmc.c:2532 -msgid "" -"Double buffering will synchronize the update of the video image to the " -"repainting of the entire screen (\"vertical retrace\"). This eliminates " -"flickering and tearing artifacts, but will use more graphics memory." -msgstr "" - -#: src/video_out/video_out_vidix.c:1063 -msgid "video_out_vidix: adaptor supports the yuy2 format\n" -msgstr "" - -#: src/video_out/video_out_vidix.c:1074 -msgid "video_out_vidix: adaptor supports the yv12 format\n" -msgstr "" - -#: src/video_out/video_out_vidix.c:1090 -msgid "video_out_vidix: You have wrong version of VIDIX library\n" -msgstr "" - -#: src/video_out/video_out_vidix.c:1098 -msgid "video_out_vidix: Couldn't find working VIDIX driver\n" -msgstr "" - -#: src/video_out/video_out_vidix.c:1111 -#, c-format -msgid "video_out_vidix: using driver: %s by %s\n" -msgstr "" - -#: src/video_out/video_out_vidix.c:1158 -msgid "video overlay colour key red component" -msgstr "" - -#: src/video_out/video_out_vidix.c:1159 src/video_out/video_out_vidix.c:1166 -#: src/video_out/video_out_vidix.c:1173 src/video_out/video_out_xcbxv.c:1272 -#: src/video_out/video_out_xv.c:1327 src/video_out/video_out_xvmc.c:1409 -#: src/video_out/video_out_xxmc.c:2499 -msgid "" -"The colour key is used to tell the graphics card where to overlay the video " -"image. Try different values, if you experience windows becoming transparent." -msgstr "" - -#: src/video_out/video_out_vidix.c:1165 -msgid "video overlay colour key green component" -msgstr "" - -#: src/video_out/video_out_vidix.c:1172 -msgid "video overlay colour key blue component" -msgstr "" - -#: src/video_out/video_out_vidix.c:1204 -msgid "xine video output plugin using libvidix for x11" -msgstr "" - -#: src/video_out/video_out_vidix.c:1286 -msgid "xine video output plugin using libvidix for linux frame buffer" -msgstr "" - -#: src/video_out/video_out_xcbshm.c:157 src/video_out/video_out_xshm.c:219 -#, c-format -msgid "%s: %s: allocating image\n" -msgstr "" - -#: src/video_out/video_out_xcbshm.c:159 src/video_out/video_out_xcbshm.c:169 -#: src/video_out/video_out_xcbshm.c:181 src/video_out/video_out_xcbxv.c:267 -#: src/video_out/video_out_xcbxv.c:277 src/video_out/video_out_xcbxv.c:287 -#: src/video_out/video_out_xcbxv.c:299 src/video_out/video_out_xshm.c:204 -#: src/video_out/video_out_xshm.c:221 src/video_out/video_out_xshm.c:232 -#: src/video_out/video_out_xshm.c:251 src/video_out/video_out_xv.c:295 -#: src/video_out/video_out_xv.c:322 src/video_out/video_out_xv.c:331 -#: src/video_out/video_out_xv.c:367 src/video_out/video_out_xxmc.c:648 -#: src/video_out/video_out_xxmc.c:659 src/video_out/video_out_xxmc.c:668 -#: src/video_out/video_out_xxmc.c:704 -#, c-format -msgid "%s: => not using MIT Shared Memory extension.\n" -msgstr "" - -#: src/video_out/video_out_xcbshm.c:167 src/video_out/video_out_xshm.c:230 -#, c-format -msgid "%s: shared memory error (address error) when allocating image \n" -msgstr "" - -#: src/video_out/video_out_xcbshm.c:179 src/video_out/video_out_xcbxv.c:297 -#: src/video_out/video_out_xshm.c:249 src/video_out/video_out_xv.c:365 -#: src/video_out/video_out_xxmc.c:702 -#, c-format -msgid "%s: x11 error during shared memory XImage creation\n" -msgstr "" - -#: src/video_out/video_out_xcbshm.c:1103 src/video_out/video_out_xshm.c:1161 -#, c-format -msgid "" -"\n" -"\n" -"WARNING: current display depth is %d. For better performance\n" -"a depth of 16 bpp is recommended!\n" -"\n" -msgstr "" - -#: src/video_out/video_out_xcbshm.c:1116 src/video_out/video_out_xshm.c:1174 -#, c-format -msgid "%s: MIT shared memory extension not present on display.\n" -msgstr "" - -#: src/video_out/video_out_xcbshm.c:1215 src/video_out/video_out_xshm.c:1258 -#, c-format -msgid "%s: your video mode was not recognized, sorry :-(\n" -msgstr "" - -#: src/video_out/video_out_xcbshm.c:1245 src/video_out/video_out_xshm.c:1307 -msgid "xine video output plugin using the MIT X shared memory extension" -msgstr "" - -#: src/video_out/video_out_xcbxv.c:265 src/video_out/video_out_xv.c:320 -#: src/video_out/video_out_xxmc.c:657 -#, c-format -msgid "%s: XvShmCreateImage returned a zero size\n" -msgstr "" - -#: src/video_out/video_out_xcbxv.c:275 src/video_out/video_out_xv.c:329 -#: src/video_out/video_out_xxmc.c:666 -#, c-format -msgid "%s: shared memory error in shmget: %s\n" -msgstr "" - -#: src/video_out/video_out_xcbxv.c:285 -#, c-format -msgid "%s: shared memory error (address error)\n" -msgstr "" - -#: src/video_out/video_out_xcbxv.c:1125 src/video_out/video_out_xv.c:1174 -#: src/video_out/video_out_xxmc.c:2349 -#, c-format -msgid "%s: Xv extension not present.\n" -msgstr "" - -#: src/video_out/video_out_xcbxv.c:1167 src/video_out/video_out_xv.c:1211 -#: src/video_out/video_out_xxmc.c:2386 -#, c-format -msgid "" -"%s: Xv extension is present but I couldn't find a usable yuv12 port.\n" -"\tLooks like your graphics hardware driver doesn't support Xv?!\n" -msgstr "" - -#: src/video_out/video_out_xcbxv.c:1176 -#, c-format -msgid "" -"%s: using Xv port %d from adaptor %s for hardware colorspace conversion and " -"scaling.\n" -msgstr "" - -#: src/video_out/video_out_xcbxv.c:1280 src/video_out/video_out_xv.c:1335 -#: src/video_out/video_out_xvmc.c:1417 src/video_out/video_out_xxmc.c:2507 -msgid "autopaint colour key" -msgstr "" - -#: src/video_out/video_out_xcbxv.c:1281 src/video_out/video_out_xv.c:1336 -#: src/video_out/video_out_xvmc.c:1418 src/video_out/video_out_xxmc.c:2508 -msgid "Make Xv autopaint its colorkey." -msgstr "" - -#: src/video_out/video_out_xcbxv.c:1288 src/video_out/video_out_xv.c:1343 -#: src/video_out/video_out_xxmc.c:2515 -msgid "bilinear scaling mode" -msgstr "" - -#: src/video_out/video_out_xcbxv.c:1289 src/video_out/video_out_xv.c:1344 -#: src/video_out/video_out_xxmc.c:2516 -msgid "" -"Selects the bilinear scaling mode for Permedia cards. The individual values " -"are:\n" -"\n" -"Permedia 2\n" -"0 - disable bilinear filtering\n" -"1 - enable bilinear filtering\n" -"\n" -"Permedia 3\n" -"0 - disable bilinear filtering\n" -"1 - horizontal linear filtering\n" -"2 - enable full bilinear filtering" -msgstr "" - -#: src/video_out/video_out_xcbxv.c:1341 src/video_out/video_out_xv.c:1393 -#: src/video_out/video_out_xxmc.c:2572 -#, c-format -msgid "%s: this adaptor supports the yv12 format.\n" -msgstr "" - -#: src/video_out/video_out_xcbxv.c:1346 src/video_out/video_out_xv.c:1398 -#: src/video_out/video_out_xxmc.c:2577 -#, c-format -msgid "%s: this adaptor supports the yuy2 format.\n" -msgstr "" - -#: src/video_out/video_out_xcbxv.c:1354 src/video_out/video_out_xv.c:1420 -#: src/video_out/video_out_xxmc.c:2600 -msgid "pitch alignment workaround" -msgstr "" - -#: src/video_out/video_out_xcbxv.c:1355 src/video_out/video_out_xv.c:1421 -#: src/video_out/video_out_xxmc.c:2601 -msgid "Some buggy video drivers need a workaround to function properly." -msgstr "" - -#: src/video_out/video_out_xcbxv.c:1383 src/video_out/video_out_xv.c:1468 -#: src/video_out/video_out_xxmc.c:2681 -msgid "xine video output plugin using the MIT X video extension" -msgstr "" - -#: src/video_out/video_out_xshm.c:202 -#, c-format -msgid "%s: shared memory error when allocating image\n" -msgstr "" - -#: src/video_out/video_out_xv.c:293 src/video_out/video_out_xxmc.c:646 -#, c-format -msgid "%s: XvShmCreateImage failed\n" -msgstr "" - -#: src/video_out/video_out_xv.c:1221 src/video_out/video_out_xxmc.c:2396 -#, c-format -msgid "" -"%s: using Xv port %ld from adaptor %s for hardware colorspace conversion and " -"scaling.\n" -msgstr "" - -#: src/video_out/video_out_xvmc.c:1496 -msgid "xine video output plugin using the XvMC X video extension" -msgstr "" - -#: src/video_out/video_out_xvmc.c:1542 -msgid "video_out_xvmc: XvMC extension not present.\n" -msgstr "" - -#: src/video_out/video_out_xvmc.c:1640 -msgid "" -"video_out_xvmc: Xv extension is present but I couldn't find a usable yuv12 " -"port.\n" -msgstr "" - -#: src/video_out/video_out_xvmc.c:1649 -#, c-format -msgid "" -"video_out_xvmc: using Xv port %ld from adaptor %s\n" -" for hardware colorspace conversion and scaling\n" -msgstr "" - -#: src/video_out/video_out_xvmc.c:1654 -msgid " idct and motion compensation acceleration \n" -msgstr "" - -#: src/video_out/video_out_xvmc.c:1656 -msgid " motion compensation acceleration only\n" -msgstr "" - -#: src/video_out/video_out_xvmc.c:1658 -msgid " no XvMC support \n" -msgstr "" - -#: src/video_out/video_out_xvmc.c:1659 -#, c-format -msgid " With Overlay = %d; UnsignedIntra = %d.\n" -msgstr "" - -#: src/video_out/video_out_xxmc.c:2606 -msgid "Make XvMC allocate more frames for better buffering." -msgstr "" - -#: src/video_out/video_out_xxmc.c:2607 -msgid "" -"Some XvMC implementations allow more than 8 frames.\n" -"This option, when turned on, makes the driver try to\n" -"allocate 15 frames. A must for unichrome and live VDR.\n" -msgstr "" - -#: src/video_out/video_out_xxmc.c:2613 -msgid "Unichrome cpu save" -msgstr "" - -#: src/video_out/video_out_xxmc.c:2614 -msgid "" -"Saves CPU time by sleeping while decoder works.\n" -"Only for Linux kernel 2.6 series or 2.4 with multimedia patch.\n" -"Experimental.\n" -msgstr "" - -#: src/video_out/video_out_xxmc.c:2620 -msgid "Fix buggy NVIDIA XvMC subpicture colors" -msgstr "" - -#: src/video_out/video_out_xxmc.c:2621 -msgid "" -"There's a bug in NVIDIA's XvMC lib that makes red OSD colors\n" -"look blue and vice versa. This option provides a workaround.\n" -msgstr "" - -#: src/video_out/video_out_xxmc.c:2626 -msgid "Use bob as accelerated deinterlace method." -msgstr "" - -#: src/video_out/video_out_xxmc.c:2627 -msgid "" -"When interlacing is enabled for hardware accelerated frames,\n" -"Alternate between top and bottom field at double the frame rate.\n" -msgstr "" - -#: src/video_out/x11osd.c:276 src/video_out/xcbosd.c:270 -msgid "x11osd: XShape extension not available. unscaled overlay disabled.\n" -msgstr "" - -#: src/video_out/x11osd.c:289 src/video_out/xcbosd.c:283 -msgid "x11osd: error creating window. unscaled overlay disabled.\n" -msgstr "" - -#: src/video_out/x11osd.c:297 src/video_out/x11osd.c:338 -#: src/video_out/xcbosd.c:293 -msgid "x11osd: error creating pixmap. unscaled overlay disabled.\n" -msgstr "" - -#: src/video_out/x11osd.c:348 src/video_out/xcbosd.c:332 -#, c-format -msgid "x11osd: unscaled overlay created (%s mode).\n" -msgstr "" - -#: src/xine-engine/alphablend.c:2146 -msgid "disable exact alpha blending of overlays" -msgstr "" - -#: src/xine-engine/alphablend.c:2147 -msgid "" -"If you experience a performance impact when an On Screen Display or other " -"overlays like DVD subtitles are active, then you might want to enable this " -"option.\n" -"The result is that alpha blending of overlays is less accurate than before, " -"but the CPU usage will be decreased as well." -msgstr "" - -#: src/xine-engine/audio_decoder.c:366 -#, c-format -msgid "audio_decoder: no plugin available to handle '%s'\n" -msgstr "" - -#: src/xine-engine/audio_decoder.c:383 -#, c-format -msgid "audio_decoder: error, unknown buffer type: %08x\n" -msgstr "" - -#: src/xine-engine/audio_decoder.c:485 -msgid "number of audio buffers" -msgstr "" - -#: src/xine-engine/audio_decoder.c:486 -msgid "" -"The number of audio buffers (each is 8k in size) xine uses in its internal " -"queue. Higher values mean smoother playback for unreliable inputs, but also " -"increased latency and memory consumption." -msgstr "" - -#: src/xine-engine/audio_out.c:1078 -msgid "" -"audio_out: delay calculation impossible with an unavailable audio device\n" -msgstr "" - -#: src/xine-engine/audio_out.c:1220 -msgid "write to sound card failed. Was a USB device unplugged ?\n" -msgstr "" - -#: src/xine-engine/audio_out.c:1373 -msgid "8 bits not supported by driver, converting to 16 bits.\n" -msgstr "" - -#: src/xine-engine/audio_out.c:1381 -msgid "mono not supported by driver, converting to stereo.\n" -msgstr "" - -#: src/xine-engine/audio_out.c:1387 -msgid "stereo not supported by driver, converting to mono.\n" -msgstr "" - -#: src/xine-engine/audio_out.c:2041 -msgid "method to sync audio and video" -msgstr "" - -#: src/xine-engine/audio_out.c:2042 -msgid "" -"When playing audio and video, there are at least two clocks involved: The " -"system clock, to which video frames are synchronized and the clock in your " -"sound hardware, which determines the speed of the audio playback. These " -"clocks are never ticking at the same speed except for some rare cases where " -"they are physically identical. In general, the two clocks will run drift " -"after some time, for which xine offers two ways to keep audio and video " -"synchronized:\n" -"\n" -"metronom feedback\n" -"This is the standard method, which applies a countereffecting video drift, " -"as soon as the audio drift has accumulated over a threshold.\n" -"\n" -"resample\n" -"For some video hardware, which is limited to a fixed frame rate (like the " -"DXR3 or other decoder cards) the above does not work, because the video " -"cannot drift. Therefore we resample the audio stream to make it longer or " -"shorter to compensate the audio drift error. This does not work for digital " -"passthrough, where audio data is passed to an external decoder in digital " -"form." -msgstr "" - -#: src/xine-engine/audio_out.c:2070 -msgid "enable resampling" -msgstr "" - -#: src/xine-engine/audio_out.c:2071 -msgid "" -"When the sample rate of the decoded audio does not match the capabilities of " -"your sound hardware, an adaptation called \"resampling\" is required. Here " -"you can select, whether resampling is enabled, disabled or used " -"automatically when necessary." -msgstr "" - -#: src/xine-engine/audio_out.c:2078 -msgid "always resample to this rate (0 to disable)" -msgstr "" - -#: src/xine-engine/audio_out.c:2079 -msgid "" -"Some audio drivers do not correctly announce the capabilities of the audio " -"hardware. By setting a value other than zero here, you can force the audio " -"stream to be resampled to the given rate." -msgstr "" - -#: src/xine-engine/audio_out.c:2088 -msgid "offset for digital passthrough" -msgstr "" - -#: src/xine-engine/audio_out.c:2089 -msgid "" -"If you use an external surround decoder and audio is ahead or behind video, " -"you can enter a fixed offset here to compensate.\n" -"The unit of the value is one PTS tick, which is the 90000th part of a second." -msgstr "" - -#: src/xine-engine/audio_out.c:2098 -msgid "play audio even on slow/fast speeds" -msgstr "" - -#: src/xine-engine/audio_out.c:2099 -msgid "" -"If you enable this option, the audio will be heard even when playback speed " -"is different than 1X. Of course, it will sound distorted (lower/higher " -"pitch). If want to experiment preserving the pitch you may try the 'stretch' " -"audio post plugin instead." -msgstr "" - -#: src/xine-engine/audio_out.c:2170 -msgid "startup audio volume" -msgstr "" - -#: src/xine-engine/audio_out.c:2171 -msgid "The overall audio volume set at xine startup." -msgstr "" - -#: src/xine-engine/audio_out.c:2174 -msgid "restore volume level at startup" -msgstr "" - -#: src/xine-engine/audio_out.c:2175 -msgid "If disabled, xine will not modify any mixer settings at startup." -msgstr "" - -#: src/xine-engine/audio_out.c:2205 -msgid "audio_out: sorry, this should not happen. please restart xine.\n" -msgstr "" - -#: src/xine-engine/buffer.c:67 -#, c-format -msgid "xine-lib: buffer.c: There has been a fatal error: TOO MANY FREE's\n" -msgstr "" - -#: src/xine-engine/configfile.c:925 -#, c-format -msgid "The current config file has been modified by a newer version of xine." -msgstr "" - -#: src/xine-engine/configfile.c:1030 -#, c-format -msgid "configfile: WARNING: backing up configfile to %s failed\n" -msgstr "" - -#: src/xine-engine/configfile.c:1031 -msgid "configfile: WARNING: your configuration will not be saved\n" -msgstr "" - -#: src/xine-engine/configfile.c:1130 -#, c-format -msgid "configfile: WARNING: writing configuration to %s failed\n" -msgstr "" - -#: src/xine-engine/configfile.c:1131 -#, c-format -msgid "configfile: WARNING: removing possibly broken config file %s\n" -msgstr "" - -#: src/xine-engine/configfile.c:1132 -#, c-format -msgid "configfile: WARNING: you should check the backup file %s\n" -msgstr "" - -#: src/xine-engine/configfile.c:1267 -#, c-format -msgid "configfile: entry '%s' mustn't be modified from MRL\n" -msgstr "" - -#: src/xine-engine/info_helper.c:230 -msgid "info_helper: can't find out current locale character set\n" -msgstr "" - -#: src/xine-engine/info_helper.c:244 -#, c-format -msgid "" -"info_helper: unsupported conversion %s -> UTF-8, no conversion performed\n" -msgstr "" - -#: src/xine-engine/input_cache.c:171 -#, c-format -msgid ": open() function should never be called\n" -msgstr "" - -#: src/xine-engine/input_cache.c:353 -#, c-format -msgid ": input plugin not defined!\n" -msgstr "" - -#: src/xine-engine/input_rip.c:140 src/xine-engine/input_rip.c:260 -#, c-format -msgid "input_rip: reading of saved data failed: %s\n" -msgstr "" - -#: src/xine-engine/input_rip.c:155 -#, c-format -msgid "input_rip: reading by input plugin failed\n" -msgstr "" - -#: src/xine-engine/input_rip.c:163 src/xine-engine/input_rip.c:292 -#: src/xine-engine/input_rip.c:658 -#, c-format -msgid "input_rip: error writing to file % bytes: %s\n" -msgstr "" - -#: src/xine-engine/input_rip.c:184 -#, c-format -msgid "input_rip: open() function should never be called\n" -msgstr "" - -#: src/xine-engine/input_rip.c:315 src/xine-engine/input_rip.c:420 -#, c-format -msgid "input_rip: seeking failed\n" -msgstr "" - -#: src/xine-engine/input_rip.c:372 src/xine-engine/input_rip.c:390 -#, c-format -msgid "input_rip: seeking failed: %s\n" -msgstr "" - -#: src/xine-engine/input_rip.c:398 -#, c-format -msgid "input_rip: % bytes dropped\n" -msgstr "" - -#: src/xine-engine/input_rip.c:563 -#, c-format -msgid "input_rip: input plugin not defined!\n" -msgstr "" - -#: src/xine-engine/input_rip.c:569 -#, c-format -msgid "" -"input_rip: target directory wasn't specified, please fill out the option " -"'media.capture.save_dir'\n" -msgstr "" - -#: src/xine-engine/input_rip.c:571 -msgid "" -"The stream save feature is disabled until you set media.capture.save_dir in " -"the configuration." -msgstr "" - -#: src/xine-engine/input_rip.c:578 -#, c-format -msgid "input_rip: ripping/caching of this source is not permitted!\n" -msgstr "" - -#: src/xine-engine/input_rip.c:580 -msgid "" -"xine is not allowed to save from this source. (possibly copyrighted " -"material?)" -msgstr "" - -#: src/xine-engine/input_rip.c:586 -#, c-format -msgid "input_rip: file name not given!\n" -msgstr "" - -#: src/xine-engine/input_rip.c:628 -#, c-format -msgid "input_rip: error opening file %s: %s\n" -msgstr "" - -#: src/xine-engine/io_helper.c:252 -#, c-format -msgid "io_helper: waiting abandoned\n" -msgstr "" - -#: src/xine-engine/io_helper.c:259 -#, c-format -msgid "io_helper: waiting failed: %s\n" -msgstr "" - -#: src/xine-engine/io_helper.c:314 -msgid "failed to get status of socket" -msgstr "" - -#: src/xine-engine/io_helper.c:388 -#, c-format -msgid "io_helper: Permission denied\n" -msgstr "" - -#: src/xine-engine/io_helper.c:392 -#, c-format -msgid "io_helper: File not found\n" -msgstr "" - -#: src/xine-engine/io_helper.c:396 -#, c-format -msgid "io_helper: Connection Refused\n" -msgstr "" - -#: src/xine-engine/load_plugins.c:215 -#, c-format -msgid "map_decoder_list: no space for decoder, skipped.\n" -msgstr "" - -#: src/xine-engine/load_plugins.c:330 -#, c-format -msgid "" -"load_plugins: ignoring plugin %s, wrong iface version %d (should be %d)\n" -msgstr "" - -#: src/xine-engine/load_plugins.c:387 -#, c-format -msgid "priority for %s decoder" -msgstr "" - -#: src/xine-engine/load_plugins.c:398 -msgid "" -"The priority provides a ranking in case some media can be handled by more " -"than one decoder.\n" -"A priority of 0 enables the decoder's default priority." -msgstr "" - -#: src/xine-engine/load_plugins.c:426 -#, c-format -msgid "" -"load_plugins: demuxer plugin %s does not provide a priority, xine-lib will " -"use the default priority.\n" -msgstr "" - -#: src/xine-engine/load_plugins.c:443 -#, c-format -msgid "" -"load_plugins: input plugin %s does not provide a priority, xine-lib will use " -"the default priority.\n" -msgstr "" - -#: src/xine-engine/load_plugins.c:499 -#, c-format -msgid "load_plugins: plugin %s found\n" -msgstr "" - -#: src/xine-engine/load_plugins.c:502 -#, c-format -msgid "load_plugins: static plugin found\n" -msgstr "" - -#: src/xine-engine/load_plugins.c:509 -#, c-format -msgid "load_plugins: plugin limit reached, %s could not be loaded\n" -msgstr "" - -#: src/xine-engine/load_plugins.c:512 -#, c-format -msgid "load_plugins: plugin limit reached, static plugin could not be loaded\n" -msgstr "" - -#: src/xine-engine/load_plugins.c:529 -#, c-format -msgid "load_plugins: unknown plugin type %d in %s\n" -msgstr "" - -#: src/xine-engine/load_plugins.c:533 -#, c-format -msgid "load_plugins: unknown statically linked plugin type %d\n" -msgstr "" - -#: src/xine-engine/load_plugins.c:593 -#, c-format -msgid "load_plugins: unable to stat %s\n" -msgstr "" - -#: src/xine-engine/load_plugins.c:634 -#, c-format -msgid "" -"load_plugins: cannot open plugin lib %s:\n" -"%s\n" -msgstr "" - -#: src/xine-engine/load_plugins.c:649 -#, c-format -msgid "" -"load_plugins: can't get plugin info from %s:\n" -"%s\n" -msgstr "" - -#: src/xine-engine/load_plugins.c:667 -#, c-format -msgid "load_plugins: skipping unreadable plugin directory %s.\n" -msgstr "" - -#: src/xine-engine/load_plugins.c:716 -#, c-format -msgid "" -"load_plugins: cannot (stage 2) open plugin lib %s:\n" -"%s\n" -msgstr "" - -#: src/xine-engine/load_plugins.c:742 -#, c-format -msgid "load_plugins: Yikes! %s doesn't contain plugin info.\n" -msgstr "" - -#: src/xine-engine/load_plugins.c:1104 src/xine-engine/load_plugins.c:1113 -#, c-format -msgid "Unable to create %s directory: %s\n" -msgstr "" - -#: src/xine-engine/load_plugins.c:1345 -#, c-format -msgid "load_plugins: unknown content detection strategy %d\n" -msgstr "" - -#: src/xine-engine/load_plugins.c:1455 -#, c-format -msgid "load_plugins: using demuxer '%s'\n" -msgstr "" - -#: src/xine-engine/load_plugins.c:1766 -#, c-format -msgid "load_plugins: failed to load audio output plugin <%s>\n" -msgstr "" - -#: src/xine-engine/load_plugins.c:1769 -msgid "" -"load_plugins: audio output auto-probing didn't find any usable audio " -"driver.\n" -msgstr "" - -#: src/xine-engine/load_plugins.c:2073 -#, c-format -msgid "" -"load_plugins: cannot unload plugin lib %s:\n" -"%s\n" -msgstr "" - -#: src/xine-engine/osd.c:747 -#, c-format -msgid "font '%s-%d' already loaded, weird.\n" -msgstr "" - -#: src/xine-engine/osd.c:759 -#, c-format -msgid "font '%s' loading failed (%d < %d)\n" -msgstr "" - -#: src/xine-engine/osd.c:769 -#, c-format -msgid "wrong version for font '%s'. expected %d found %d.\n" -msgstr "" - -#: src/xine-engine/osd.c:856 -#, c-format -msgid "osd: error matching font %s with FontConfig" -msgstr "" - -#: src/xine-engine/osd.c:870 -#, c-format -msgid "osd: error loading font %s with FontConfig" -msgstr "" - -#: src/xine-engine/osd.c:874 -#, c-format -msgid "osd: error looking up font %s with FontConfig" -msgstr "" - -#: src/xine-engine/osd.c:914 -#, c-format -msgid "osd: error loading font %s with in XDG data directories.\n" -msgstr "" - -#: src/xine-engine/osd.c:923 -msgid "osd: cannot initialize ft2 library\n" -msgstr "" - -#: src/xine-engine/osd.c:945 -msgid "osd: error setting font size (no scalable font?)\n" -msgstr "" - -#: src/xine-engine/osd.c:1061 -#, c-format -msgid "" -"osd: unknown sequence starting with byte 0x%02X in encoding \"%s\", " -"skipping\n" -msgstr "" - -#: src/xine-engine/osd.c:1117 -msgid "osd: can't find out current locale character set\n" -msgstr "" - -#: src/xine-engine/osd.c:1127 -#, c-format -msgid "osd: unsupported conversion %s -> %s, no conversion performed\n" -msgstr "" - -#: src/xine-engine/osd.c:1182 src/xine-engine/osd.c:1350 -msgid "osd: font isn't defined\n" -msgstr "" - -#: src/xine-engine/osd.c:1221 -msgid "osd: error loading glyph\n" -msgstr "" - -#: src/xine-engine/osd.c:1227 -msgid "osd: error in rendering glyph\n" -msgstr "" - -#: src/xine-engine/osd.c:1387 -#, c-format -msgid "osd: error loading glyph %i\n" -msgstr "" - -#: src/xine-engine/osd.c:1394 -msgid "osd: error in rendering\n" -msgstr "" - -#: src/xine-engine/osd.c:1660 -msgid "palette (foreground-border-background) to use for subtitles and OSD" -msgstr "" - -#: src/xine-engine/osd.c:1661 -msgid "" -"The palette for on-screen-display and some subtitle formats that do not " -"specify any colouring themselves. The palettes are listed in the form: " -"foreground-border-background." -msgstr "" - -#: src/xine-engine/video_decoder.c:390 -#, c-format -msgid "video_decoder: no plugin available to handle '%s'\n" -msgstr "" - -#: src/xine-engine/video_decoder.c:469 -#, c-format -msgid "video_decoder: error, unknown buffer type: %08x\n" -msgstr "" - -#: src/xine-engine/video_decoder.c:505 -msgid "number of video buffers" -msgstr "" - -#: src/xine-engine/video_decoder.c:506 -msgid "" -"The number of video buffers (each is 8k in size) xine uses in its internal " -"queue. Higher values mean smoother playback for unreliable inputs, but also " -"increased latency and memory consumption." -msgstr "" - -#: src/xine-engine/video_out.c:671 -#, c-format -msgid "%d frames delivered, %d frames skipped, %d frames discarded\n" -msgstr "" - -#: src/xine-engine/video_out.c:844 -#, c-format -msgid "" -"video_out: throwing away image with pts % because it's too old " -"(diff : %).\n" -msgstr "" - -#: src/xine-engine/video_out.c:1863 -msgid "default number of video frames" -msgstr "" - -#: src/xine-engine/video_out.c:1864 -msgid "" -"The default number of video frames to request from xine video out driver. " -"Some drivers will override this setting with their own values." -msgstr "" - -#: src/xine-engine/video_out.c:1921 -msgid "percentage of skipped frames to tolerate" -msgstr "" - -#: src/xine-engine/video_out.c:1922 -msgid "" -"When more than this percentage of frames are not shown, because they were " -"not decoded in time, xine sends a notification." -msgstr "" - -#: src/xine-engine/video_out.c:1927 -msgid "percentage of discarded frames to tolerate" -msgstr "" - -#: src/xine-engine/video_out.c:1928 -msgid "" -"When more than this percentage of frames are not shown, because they were " -"not scheduled for display in time, xine sends a notification." -msgstr "" - -#: src/xine-engine/video_out.c:1965 -msgid "video_out: sorry, this should not happen. please restart xine.\n" -msgstr "" - -#: src/xine-engine/vo_scale.c:389 -msgid "horizontal image position in the output window" -msgstr "" - -#: src/xine-engine/vo_scale.c:390 -msgid "" -"If the video window's horizontal size is bigger than the actual image to " -"show, you can adjust the position where the image will be placed.\n" -"The position is given as a percentage, so a value of 50 means \"in the middle" -"\", while 0 means \"at the very left\" and 100 \"at the very right\"." -msgstr "" - -#: src/xine-engine/vo_scale.c:397 -msgid "vertical image position in the output window" -msgstr "" - -#: src/xine-engine/vo_scale.c:398 -msgid "" -"If the video window's vertical size is bigger than the actual image to show, " -"you can adjust the position where the image will be placed.\n" -"The position is given as a percentage, so a value of 50 means \"in the middle" -"\", while 0 means \"at the top\" and 100 \"at the bottom\"." -msgstr "" - -#: src/xine-engine/vo_scale.c:405 -msgid "disable all video scaling" -msgstr "" - -#: src/xine-engine/vo_scale.c:406 -msgid "" -"If you want the video image to be always shown at its original resolution, " -"you can disable all image scaling here.\n" -"This of course means that the image will no longer adapt to the size of the " -"video window and that videos with a pixel aspect ratio other than 1:1, like " -"anamorphic DVDs, will be shown distorted. But on the other hand, with some " -"video output drivers like XShm, where the image scaling is not hardware " -"accelerated, this can dramatically reduce CPU usage." -msgstr "" - -#: src/xine-engine/xine.c:771 src/xine-engine/xine.c:878 -#: src/xine-engine/xine.c:917 src/xine-engine/xine.c:953 -#: src/xine-engine/xine.c:965 src/xine-engine/xine.c:978 -#: src/xine-engine/xine.c:991 src/xine-engine/xine.c:1004 -#: src/xine-engine/xine.c:1030 src/xine-engine/xine.c:1055 -#: src/xine-engine/xine.c:1090 -msgid "xine: error while parsing mrl\n" -msgstr "" - -#: src/xine-engine/xine.c:807 -#, c-format -msgid "xine: found input plugin : %s\n" -msgstr "" - -#: src/xine-engine/xine.c:825 -#, c-format -msgid "xine: input plugin cannot open MRL [%s]\n" -msgstr "" - -#: src/xine-engine/xine.c:841 -#, c-format -msgid "xine: cannot find input plugin for MRL [%s]\n" -msgstr "" - -#: src/xine-engine/xine.c:867 -#, c-format -msgid "xine: specified demuxer %s failed to start\n" -msgstr "" - -#: src/xine-engine/xine.c:903 -#, c-format -msgid "xine: join rip input plugin\n" -msgstr "" - -#: src/xine-engine/xine.c:910 -msgid "xine: error opening rip input plugin instance\n" -msgstr "" - -#: src/xine-engine/xine.c:941 -#, c-format -msgid "xine: last_probed demuxer %s failed to start\n" -msgstr "" - -#: src/xine-engine/xine.c:970 -msgid "ignoring video\n" -msgstr "" - -#: src/xine-engine/xine.c:983 -msgid "ignoring audio\n" -msgstr "" - -#: src/xine-engine/xine.c:996 -msgid "ignoring subpicture\n" -msgstr "" - -#: src/xine-engine/xine.c:1009 -msgid "input cache plugin disabled\n" -msgstr "" - -#: src/xine-engine/xine.c:1080 -#, c-format -msgid "subtitle mrl opened '%s'\n" -msgstr "" - -#: src/xine-engine/xine.c:1084 -msgid "xine: error opening subtitle mrl\n" -msgstr "" - -#: src/xine-engine/xine.c:1116 -#, c-format -msgid "xine: error while parsing MRL\n" -msgstr "" - -#: src/xine-engine/xine.c:1123 -#, c-format -msgid "xine: changing option '%s' from MRL isn't permitted\n" -msgstr "" - -#: src/xine-engine/xine.c:1143 -#, c-format -msgid "xine: couldn't find demux for >%s<\n" -msgstr "" - -#: src/xine-engine/xine.c:1159 -#, c-format -msgid "xine: found demuxer plugin: %s\n" -msgstr "" - -#: src/xine-engine/xine.c:1179 -#, c-format -msgid "xine: demuxer failed to start\n" -msgstr "" - -#: src/xine-engine/xine.c:1244 -#, c-format -msgid "xine_play: no demux available\n" -msgstr "" - -#: src/xine-engine/xine.c:1314 -#, c-format -msgid "xine_play: demux failed to start\n" -msgstr "" - -#: src/xine-engine/xine.c:1592 -#, c-format -msgid "xine: The specified save_dir \"%s\" might be a security risk.\n" -msgstr "" - -#: src/xine-engine/xine.c:1597 -msgid "The specified save_dir might be a security risk." -msgstr "" - -#: src/xine-engine/xine.c:1626 -msgid "xine: locale not supported by C library\n" -msgstr "" - -#: src/xine-engine/xine.c:1635 -msgid "media format detection strategy" -msgstr "" - -#: src/xine-engine/xine.c:1636 -msgid "" -"xine offers various methods to detect the media format of input to play. The " -"individual values are:\n" -"\n" -"default\n" -"First try to detect by content, then by file name extension.\n" -"\n" -"reverse\n" -"First try to detect by file name extension, then by content.\n" -"\n" -"content\n" -"Detect by content only.\n" -"\n" -"extension\n" -"Detect by file name extension only.\n" -msgstr "" - -#: src/xine-engine/xine.c:1654 -msgid "directory for saving streams" -msgstr "" - -#: src/xine-engine/xine.c:1655 -msgid "" -"When using the stream save feature, files will be written only into this " -"directory.\n" -"This setting is security critical, because when changed to a different " -"directory, xine can be used to fill files in it with arbitrary content. So " -"you should be careful that the directory you specify is robust against any " -"content in any file." -msgstr "" - -#: src/xine-engine/xine.c:1666 -msgid "allow implicit changes to the configuration (e.g. by MRL)" -msgstr "" - -#: src/xine-engine/xine.c:1667 -msgid "" -"If enabled, you allow xine to change your configuration without explicit " -"actions from your side. For example configuration changes demanded by MRLs " -"or embedded into playlist will be executed.\n" -"This setting is security critcal, because xine can receive MRLs or playlists " -"from untrusted remote sources. If you allow them to arbitrarily change your " -"configuration, you might end with a totally messed up xine." -msgstr "" - -#: src/xine-engine/xine.c:1681 -msgid "Timeout for network stream reading (in seconds)" -msgstr "" - -#: src/xine-engine/xine.c:1682 -msgid "" -"Specifies the timeout when reading from network streams, in seconds. Too low " -"values might stop streaming when the source is slow or the bandwidth is " -"occupied, too high values will freeze the player if the connection is lost." -msgstr "" - -#: src/xine-engine/xine.c:2034 -msgid "messages" -msgstr "" - -#: src/xine-engine/xine.c:2035 -msgid "plugin" -msgstr "" - -#: src/xine-engine/xine.c:2036 -msgid "trace" -msgstr "" - -#: src/xine-engine/xine_interface.c:958 -msgid "Warning:" -msgstr "" - -#: src/xine-engine/xine_interface.c:959 -msgid "Unknown host:" -msgstr "" - -#: src/xine-engine/xine_interface.c:960 -msgid "Unknown device:" -msgstr "" - -#: src/xine-engine/xine_interface.c:961 -msgid "Network unreachable" -msgstr "" - -#: src/xine-engine/xine_interface.c:962 -msgid "Connection refused:" -msgstr "" - -#: src/xine-engine/xine_interface.c:963 -msgid "File not found:" -msgstr "" - -#: src/xine-engine/xine_interface.c:964 -msgid "Read error from:" -msgstr "" - -#: src/xine-engine/xine_interface.c:965 -msgid "Error loading library:" -msgstr "" - -#: src/xine-engine/xine_interface.c:966 -msgid "Encrypted media stream detected" -msgstr "" - -#: src/xine-engine/xine_interface.c:967 -msgid "Security message:" -msgstr "" - -#: src/xine-engine/xine_interface.c:968 -msgid "Audio device unavailable" -msgstr "" - -#: src/xine-engine/xine_interface.c:969 -msgid "Permission error" -msgstr "" - -#: src/xine-engine/xine_interface.c:970 -msgid "File is empty:" -msgstr "" - -#: src/xine-utils/memcpy.c:479 -msgid "memcopy method used by xine" -msgstr "" - -#: src/xine-utils/memcpy.c:480 -msgid "" -"The copying of large memory blocks is one of the most expensive operations " -"on todays computers. Therefore xine provides various tuned methods to do " -"this copying. Usually, the best method is detected automatically." -msgstr "" - -#: src/xine-utils/memcpy.c:507 -msgid "Benchmarking memcpy methods (smaller is better):\n" -msgstr "" diff --git a/po/libxine2.pot b/po/libxine2.pot new file mode 100644 index 000000000..c41c486d3 --- /dev/null +++ b/po/libxine2.pot @@ -0,0 +1,4744 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR Copyright (C) 2000-2006 the xine project +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: xine-devel@lists.sourceforge.net\n" +"POT-Creation-Date: 2007-06-02 13:14+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" + +#: lib/hstrerror.c:17 +msgid "No error" +msgstr "" + +#: lib/hstrerror.c:18 +msgid "Unknown host" +msgstr "" + +#: lib/hstrerror.c:19 +msgid "No address associated with name" +msgstr "" + +#: lib/hstrerror.c:20 +msgid "Unknown server error" +msgstr "" + +#: lib/hstrerror.c:21 +msgid "Host name lookup failure" +msgstr "" + +#: lib/hstrerror.c:22 +msgid "Unknown error" +msgstr "" + +#: src/audio_out/audio_alsa_out.c:351 +#, c-format +msgid "audio_alsa_out:Already open...WHY!" +msgstr "" + +#: src/audio_out/audio_alsa_out.c:379 +#, c-format +msgid "audio_alsa_out: snd_pcm_open() of %s failed: %s\n" +msgstr "" + +#: src/audio_out/audio_alsa_out.c:381 +msgid "audio_alsa_out: >>> check if another program already uses PCM <<<\n" +msgstr "" + +#: src/audio_out/audio_alsa_out.c:394 +#, c-format +msgid "" +"audio_alsa_out: broken configuration for this PCM: no configurations " +"available: %s\n" +msgstr "" + +#: src/audio_out/audio_alsa_out.c:1286 +msgid "notify changes to the hardware mixer" +msgstr "" + +#: src/audio_out/audio_alsa_out.c:1287 +msgid "" +"When the hardware mixer changes, your application will receive a " +"notification so that it can update its graphical representation of the mixer " +"settings on the fly." +msgstr "" + +#: src/audio_out/audio_alsa_out.c:1352 +#, c-format +msgid "snd_lib_error_set_handler() failed: %d" +msgstr "" + +#: src/audio_out/audio_alsa_out.c:1359 +msgid "sound card can do mmap" +msgstr "" + +#: src/audio_out/audio_alsa_out.c:1360 +msgid "" +"Enable this, if your sound card and alsa driver support memory mapped IO.\n" +"You can try enabling it and check, if everything works. If it does, this " +"will increase performance." +msgstr "" + +#: src/audio_out/audio_alsa_out.c:1369 +msgid "device used for mono output" +msgstr "" + +#: src/audio_out/audio_alsa_out.c:1370 +msgid "" +"xine will use this alsa device to output mono sound.\n" +"See the alsa documentation for information on alsa devices." +msgstr "" + +#: src/audio_out/audio_alsa_out.c:1378 +msgid "device used for stereo output" +msgstr "" + +#: src/audio_out/audio_alsa_out.c:1379 +msgid "" +"xine will use this alsa device to output stereo sound.\n" +"See the alsa documentation for information on alsa devices." +msgstr "" + +#: src/audio_out/audio_alsa_out.c:1387 +msgid "device used for 4-channel output" +msgstr "" + +#: src/audio_out/audio_alsa_out.c:1388 +msgid "" +"xine will use this alsa device to output 4 channel (4.0) surround sound.\n" +"See the alsa documentation for information on alsa devices." +msgstr "" + +#: src/audio_out/audio_alsa_out.c:1397 src/audio_out/audio_alsa_out.c:1407 +msgid "device used for 5.1-channel output" +msgstr "" + +#: src/audio_out/audio_alsa_out.c:1398 +msgid "" +"xine will use this alsa device to output 5 channel plus LFE (5.1) surround " +"sound.\n" +"See the alsa documentation for information on alsa devices." +msgstr "" + +#: src/audio_out/audio_alsa_out.c:1408 +msgid "" +"xine will use this alsa device to output undecoded digital surround sound. " +"This can be used be external surround decoders.\n" +"See the alsa documentation for information on alsa devices." +msgstr "" + +#: src/audio_out/audio_alsa_out.c:1428 +#, c-format +msgid "snd_pcm_open() failed:%d:%s\n" +msgstr "" + +#: src/audio_out/audio_alsa_out.c:1430 +#, c-format +msgid ">>> Check if another program already uses PCM <<<\n" +msgstr "" + +#: src/audio_out/audio_alsa_out.c:1461 src/audio_out/audio_oss_out.c:929 +msgid "speaker arrangement" +msgstr "" + +#: src/audio_out/audio_alsa_out.c:1462 src/audio_out/audio_oss_out.c:930 +msgid "" +"Select how your speakers are arranged, this determines which speakers xine " +"uses for sound output. The individual values are:\n" +"\n" +"Mono 1.0: You have only one speaker.\n" +"Stereo 2.0: You have two speakers for left and right channel.\n" +"Headphones 2.0: You use headphones.\n" +"Stereo 2.1: You have two speakers for left and right channel, and one " +"subwoofer for the low frequencies.\n" +"Surround 3.0: You have three speakers for left, right and rear channel.\n" +"Surround 4.0: You have four speakers for front left and right and rear left " +"and right channels.\n" +"Surround 4.1: You have four speakers for front left and right and rear left " +"and right channels, and one subwoofer for the low frequencies.\n" +"Surround 5.0: You have five speakers for front left, center and right and " +"rear left and right channels.\n" +"Surround 5.1: You have five speakers for front left, center and right and " +"rear left and right channels, and one subwoofer for the low frequencies.\n" +"Surround 6.0: You have six speakers for front left, center and right and " +"rear left, center and right channels.\n" +"Surround 6.1: You have six speakers for front left, center and right and " +"rear left, center and right channels, and one subwoofer for the low " +"frequencies.\n" +"Surround 7.1: You have seven speakers for front left, center and right, left " +"and right and rear left and right channels, and one subwoofer for the low " +"frequencies.\n" +"Pass Through: Your sound system will receive undecoded digital sound from " +"xine. You need to connect a digital surround decoder capable of decoding the " +"formats you want to play to your sound card's digital output." +msgstr "" + +#: src/audio_out/audio_alsa_out.c:1491 +msgid "audio_alsa_out : supported modes are " +msgstr "" + +#: src/audio_out/audio_alsa_out.c:1494 +msgid "8bit " +msgstr "" + +#: src/audio_out/audio_alsa_out.c:1499 +msgid "16bit " +msgstr "" + +#: src/audio_out/audio_alsa_out.c:1503 +msgid "24bit " +msgstr "" + +#: src/audio_out/audio_alsa_out.c:1507 +msgid "32bit " +msgstr "" + +#: src/audio_out/audio_alsa_out.c:1518 +msgid "mono " +msgstr "" + +#: src/audio_out/audio_alsa_out.c:1522 +msgid "stereo " +msgstr "" + +#: src/audio_out/audio_alsa_out.c:1527 +msgid "4-channel " +msgstr "" + +#: src/audio_out/audio_alsa_out.c:1530 +msgid "(4-channel not enabled in xine config) " +msgstr "" + +#: src/audio_out/audio_alsa_out.c:1535 +msgid "4.1-channel " +msgstr "" + +#: src/audio_out/audio_alsa_out.c:1538 +msgid "(4.1-channel not enabled in xine config) " +msgstr "" + +#: src/audio_out/audio_alsa_out.c:1543 +msgid "5-channel " +msgstr "" + +#: src/audio_out/audio_alsa_out.c:1546 +msgid "(5-channel not enabled in xine config) " +msgstr "" + +#: src/audio_out/audio_alsa_out.c:1551 +msgid "5.1-channel " +msgstr "" + +#: src/audio_out/audio_alsa_out.c:1554 +msgid "(5.1-channel not enabled in xine config) " +msgstr "" + +#: src/audio_out/audio_alsa_out.c:1577 +msgid "a/52 and DTS pass-through\n" +msgstr "" + +#: src/audio_out/audio_alsa_out.c:1580 +msgid "(a/52 and DTS pass-through not enabled in xine config)\n" +msgstr "" + +#: src/audio_out/audio_alsa_out.c:1587 +msgid "alsa mixer device" +msgstr "" + +#: src/audio_out/audio_alsa_out.c:1588 +msgid "" +"xine will use this alsa mixer device to change the volume.\n" +"See the alsa documentation for information on alsa devices." +msgstr "" + +#: src/audio_out/audio_alsa_out.c:1662 +msgid "xine audio output plugin using alsa-compliant audio devices/drivers" +msgstr "" + +#: src/audio_out/audio_arts_out.c:373 +msgid "xine audio output plugin using kde artsd" +msgstr "" + +#: src/audio_out/audio_coreaudio_out.c:569 +msgid "xine output plugin for Coreaudio/Mac OS X" +msgstr "" + +#: src/audio_out/audio_directx2_out.c:163 +msgid "Error" +msgstr "" + +#: src/audio_out/audio_directx2_out.c:170 +msgid "success" +msgstr "" + +#: src/audio_out/audio_directx2_out.c:172 +msgid "access denied" +msgstr "" + +#: src/audio_out/audio_directx2_out.c:174 +msgid "resource is already in use" +msgstr "" + +#: src/audio_out/audio_directx2_out.c:175 +msgid "object was already initialized" +msgstr "" + +#: src/audio_out/audio_directx2_out.c:176 +msgid "specified wave format is not supported" +msgstr "" + +#: src/audio_out/audio_directx2_out.c:177 +msgid "memory buffer has been lost and must be restored" +msgstr "" + +#: src/audio_out/audio_directx2_out.c:178 +msgid "requested buffer control is not available" +msgstr "" + +#: src/audio_out/audio_directx2_out.c:179 +msgid "undetermined error inside DirectSound subsystem" +msgstr "" + +#: src/audio_out/audio_directx2_out.c:181 +msgid "DirectSound hardware device is unavailable" +msgstr "" + +#: src/audio_out/audio_directx2_out.c:183 +msgid "function is not valid for the current state of the object" +msgstr "" + +#: src/audio_out/audio_directx2_out.c:184 +msgid "invalid parameter was passed" +msgstr "" + +#: src/audio_out/audio_directx2_out.c:185 +msgid "object doesn't support aggregation" +msgstr "" + +#: src/audio_out/audio_directx2_out.c:186 +msgid "no sound driver available for use" +msgstr "" + +#: src/audio_out/audio_directx2_out.c:187 +msgid "requested COM interface not available" +msgstr "" + +#: src/audio_out/audio_directx2_out.c:188 +msgid "another application has a higher priority level" +msgstr "" + +#: src/audio_out/audio_directx2_out.c:189 +msgid "insufficient memory" +msgstr "" + +#: src/audio_out/audio_directx2_out.c:190 +msgid "low priority level for this function" +msgstr "" + +#: src/audio_out/audio_directx2_out.c:191 +msgid "DirectSound wasn't initialized" +msgstr "" + +#: src/audio_out/audio_directx2_out.c:192 +msgid "function is not supported" +msgstr "" + +#: src/audio_out/audio_directx2_out.c:193 +msgid "unknown error" +msgstr "" + +#: src/audio_out/audio_directx2_out.c:203 +#, c-format +msgid "Unable to create direct sound object." +msgstr "" + +#: src/audio_out/audio_directx2_out.c:209 +#, c-format +msgid "Could not set direct sound cooperative level." +msgstr "" + +#: src/audio_out/audio_directx2_out.c:283 +msgid "Unable to create secondary direct sound buffer" +msgstr "" + +#: src/audio_out/audio_directx2_out.c:307 +#, c-format +msgid "Unable to create buffer position events." +msgstr "" + +#: src/audio_out/audio_directx2_out.c:315 +msgid "Unable to get notification interface" +msgstr "" + +#: src/audio_out/audio_directx2_out.c:320 +msgid "Unable to set notification positions" +msgstr "" + +#: src/audio_out/audio_directx2_out.c:340 +msgid "Couldn't play sound buffer" +msgstr "" + +#: src/audio_out/audio_directx2_out.c:352 +msgid "Couldn't stop sound buffer" +msgstr "" + +#: src/audio_out/audio_directx2_out.c:365 +msgid "Can't get buffer position" +msgstr "" + +#: src/audio_out/audio_directx2_out.c:379 +msgid "Can't set buffer position" +msgstr "" + +#: src/audio_out/audio_directx2_out.c:411 +msgid "Can't set sound volume" +msgstr "" + +#: src/audio_out/audio_directx2_out.c:429 +#, c-format +msgid ": buffer lost, tryig to restore\n" +msgstr "" + +#: src/audio_out/audio_directx2_out.c:433 +msgid "Couldn't lock direct sound buffer" +msgstr "" + +#: src/audio_out/audio_directx2_out.c:444 +msgid "Couldn't unlock direct sound buffer" +msgstr "" + +#: src/audio_out/audio_directx2_out.c:541 +#, c-format +msgid "Unable to create primary direct sound buffer." +msgstr "" + +#: src/audio_out/audio_directx2_out.c:634 +#, c-format +msgid ": play cursor overran, flushing buffers\n" +msgstr "" + +#: src/audio_out/audio_directx2_out.c:652 +#, c-format +msgid ": delayed by %ld msec\n" +msgstr "" + +#: src/audio_out/audio_directx2_out.c:756 +#, c-format +msgid ": can't create pthread condition: %s\n" +msgstr "" + +#: src/audio_out/audio_directx2_out.c:760 +#, c-format +msgid ": can't create pthread mutex: %s\n" +msgstr "" + +#: src/audio_out/audio_directx2_out.c:767 +#, c-format +msgid ": can't create buffer pthread: %s\n" +msgstr "" + +#: src/audio_out/audio_directx2_out.c:874 +#, c-format +msgid ": can't destroy buffer pthread: %s\n" +msgstr "" + +#: src/audio_out/audio_directx2_out.c:881 +#, c-format +msgid ": can't destroy pthread condition: %s\n" +msgstr "" + +#: src/audio_out/audio_directx2_out.c:884 +#, c-format +msgid ": can't destroy pthread mutex: %s\n" +msgstr "" + +#: src/audio_out/audio_directx2_out.c:944 +#, c-format +msgid ": unknown control command %d\n" +msgstr "" + +#: src/audio_out/audio_directx2_out.c:1000 +msgid "second xine audio output plugin using directx" +msgstr "" + +#: src/audio_out/audio_directx_out.c:829 +msgid "xine audio output plugin for win32 using directx" +msgstr "" + +#: src/audio_out/audio_esd_out.c:167 +#, c-format +msgid "audio_esd_out: connecting to ESD server %s: %s\n" +msgstr "" + +#: src/audio_out/audio_esd_out.c:499 +msgid "audio_esd_out: connecting to esd server...\n" +msgstr "" + +#: src/audio_out/audio_esd_out.c:511 +#, c-format +msgid "audio_esd_out: can't connect to %s ESD server: %s\n" +msgstr "" + +#: src/audio_out/audio_esd_out.c:541 +msgid "esd audio output latency (adjust a/v sync)" +msgstr "" + +#: src/audio_out/audio_esd_out.c:542 src/audio_out/audio_oss_out.c:867 +msgid "" +"If you experience audio being not in sync with the video, you can enter a " +"fixed offset here to compensate.\n" +"The unit of the value is one PTS tick, which is the 90000th part of a second." +msgstr "" + +#: src/audio_out/audio_esd_out.c:574 +msgid "xine audio output plugin using esound" +msgstr "" + +#: src/audio_out/audio_file_out.c:364 +msgid "xine file audio output plugin" +msgstr "" + +#: src/audio_out/audio_irixal_out.c:387 +msgid "irixal audio output maximum gap length" +msgstr "" + +#: src/audio_out/audio_irixal_out.c:388 +msgid "" +"You can specify the maximum offset between audio and video xine will " +"tolerate before trying to resync them.\n" +"The unit of this value is one PTS tick, which is the 90000th part of a " +"second." +msgstr "" + +#: src/audio_out/audio_irixal_out.c:417 +msgid "xine audio output plugin using IRIX libaudio" +msgstr "" + +#: src/audio_out/audio_jack_out.c:406 +msgid "xine output plugin for JACK Audio Connection Kit" +msgstr "" + +#: src/audio_out/audio_none_out.c:225 +msgid "xine dummy audio output plugin" +msgstr "" + +#: src/audio_out/audio_oss_out.c:199 +#, c-format +msgid "audio_oss_out: Opening audio device %s: %s\n" +msgstr "" + +#: src/audio_out/audio_oss_out.c:221 +#, c-format +msgid "" +"audio_oss_out: warning: sampling rate %d Hz not supported, trying 44100 Hz\n" +msgstr "" + +#: src/audio_out/audio_oss_out.c:233 +#, c-format +msgid "audio_oss_out: audio rate : %d requested, %d provided by device\n" +msgstr "" + +#: src/audio_out/audio_oss_out.c:746 +msgid "OSS audio device name" +msgstr "" + +#: src/audio_out/audio_oss_out.c:747 +msgid "" +"Specifies the base part of the audio device name, to which the OSS device " +"number is appended to get the full device name.\n" +"Select \"auto\" if you want xine to auto detect the corret setting." +msgstr "" + +#: src/audio_out/audio_oss_out.c:754 +msgid "OSS audio device number, -1 for none" +msgstr "" + +#: src/audio_out/audio_oss_out.c:755 +msgid "" +"The full audio device name is created by concatenating the OSS device name " +"and the audio device number.\n" +"If you do not need a number because you are happy with your system's default " +"audio device, set this to -1.\n" +"The range of this value is -1 or 0-15. This setting is ignored, when the OSS " +"audio device name is set to \"auto\"." +msgstr "" + +#: src/audio_out/audio_oss_out.c:764 +msgid "audio_oss_out: audio.device.oss_device_name = auto, probing devs\n" +msgstr "" + +#: src/audio_out/audio_oss_out.c:767 +msgid "audio_oss_out: Auto probe for audio device failed\n" +msgstr "" + +#: src/audio_out/audio_oss_out.c:783 +#, c-format +msgid "audio_oss_out: using device >%s<\n" +msgstr "" + +#: src/audio_out/audio_oss_out.c:789 src/audio_out/audio_oss_out.c:904 +#, c-format +msgid "" +"audio_oss_out: opening audio device %s failed:\n" +"%s\n" +msgstr "" + +#: src/audio_out/audio_oss_out.c:810 +msgid "a/v sync method to use by OSS" +msgstr "" + +#: src/audio_out/audio_oss_out.c:811 +msgid "" +"xine can use different methods to keep audio and video synchronized. Which " +"setting works best depends on the OSS driver and sound hardware you are " +"using. Try the various methods, if you experience sync problems.\n" +"\n" +"The meaning of the values is as follows:\n" +"\n" +"auto\n" +"xine attempts to automatically detect the optimal setting\n" +"\n" +"getodelay\n" +"uses the SNDCTL_DSP_GETODELAY ioctl to achieve true a/v sync even if the " +"driver claims not to support realtime playback\n" +"\n" +"getoptr\n" +"uses the SNDCTL_DSP_GETOPTR ioctl to achieve true a/v sync even if the " +"driver supports the preferred SNDCTL_DSP_GETODELAY ioctl\n" +"\n" +"softsync\n" +"uses software synchronization with the system clock; audio and video can get " +"severely out of sync if the system clock speed does not precisely match your " +"sound card's playback speed\n" +"\n" +"probebuffer\n" +"probes the sound card buffer size on initialization to calculate the latency " +"for a/v sync; try this if your system does not support any of the realtime " +"ioctls and you experience sync errors after long playback" +msgstr "" + +#: src/audio_out/audio_oss_out.c:859 +msgid "" +"audio_oss_out: Audio driver realtime sync disabled...\n" +"audio_oss_out: ...will use system real-time clock for soft-sync instead\n" +"audio_oss_out: ...there may be audio/video synchronization issues\n" +msgstr "" + +#: src/audio_out/audio_oss_out.c:866 +msgid "OSS audio output latency (adjust a/v sync)" +msgstr "" + +#: src/audio_out/audio_oss_out.c:880 +msgid "" +"audio_oss_out: Audio driver realtime sync disabled...\n" +"audio_oss_out: ...probing output buffer size: " +msgstr "" + +#: src/audio_out/audio_oss_out.c:897 +#, c-format +msgid "" +"%d bytes\n" +"audio_oss_out: ...there may be audio/video synchronization issues\n" +msgstr "" + +#: src/audio_out/audio_oss_out.c:1026 +msgid "OSS audio mixer number, -1 for none" +msgstr "" + +#: src/audio_out/audio_oss_out.c:1027 +msgid "" +"The full mixer device name is created by taking the OSS device name, " +"replacing \"dsp\" with \"mixer\" and adding the mixer number.\n" +"If you do not need a number because you are happy with your system's default " +"mixer device, set this to -1.\n" +"The range of this value is -1 or 0-15. This setting is ignored, when the OSS " +"audio device name is set to \"auto\"." +msgstr "" + +#: src/audio_out/audio_oss_out.c:1084 +#, c-format +msgid "audio_oss_out: open() mixer %s failed: %s\n" +msgstr "" + +#: src/audio_out/audio_oss_out.c:1157 +msgid "xine audio output plugin using oss-compliant audio devices/drivers" +msgstr "" + +#: src/audio_out/audio_pulse_out.c:608 +msgid "device used for pulseaudio" +msgstr "" + +#: src/audio_out/audio_pulse_out.c:609 +msgid "use 'server[:sink]' for setting the pulseaudio sink device." +msgstr "" + +#: src/audio_out/audio_pulse_out.c:646 +msgid "xine audio output plugin using pulseaudio sound server" +msgstr "" + +#: src/audio_out/audio_sun_out.c:459 src/audio_out/audio_sun_out.c:952 +#, c-format +msgid "audio_sun_out: opening audio device %s failed: %s\n" +msgstr "" + +#: src/audio_out/audio_sun_out.c:927 +msgid "Sun audio device name" +msgstr "" + +#: src/audio_out/audio_sun_out.c:928 +msgid "" +"Specifies the file name for the Sun audio device to be used.\n" +"This setting is security critical, because when changed to a different file, " +"xine can be used to fill this file with arbitrary content. So you should be " +"careful that the value you enter really is a proper Sun audio device." +msgstr "" + +#: src/audio_out/audio_sun_out.c:970 +#, c-format +msgid "audio_sun_out: audio ioctl on device %s failed: %s\n" +msgstr "" + +#: src/audio_out/audio_sun_out.c:1024 +msgid "xine audio output plugin using sun-compliant audio devices/drivers" +msgstr "" + +#: src/combined/xine_ogg_demuxer.c:810 +#, c-format +msgid "ogg: vorbis audio track indicated but no vorbis stream header found.\n" +msgstr "" + +#: src/demuxers/demux_asf.c:428 +#, c-format +msgid "demux_asf: warning: The stream id=%d is encrypted.\n" +msgstr "" + +#: src/demuxers/demux_asf.c:430 +msgid "Media stream scrambled/encrypted" +msgstr "" + +#: src/demuxers/demux_asf.c:1637 +#, c-format +msgid "demux_asf: Wrong ASX version: %s\n" +msgstr "" + +#: src/demuxers/demux_avi.c:532 src/demuxers/demux_avi.c:646 +msgid "Restoring index..." +msgstr "" + +#: src/demuxers/demux_avi.c:632 src/demuxers/demux_avi.c:1687 +#, c-format +msgid "demux_avi: invalid avi chunk \"%c%c%c%c\" at pos %\n" +msgstr "" + +#: src/demuxers/demux_avi.c:827 +#, c-format +msgid "demux_avi: avi index is broken\n" +msgstr "" + +#: src/demuxers/demux_avi.c:835 +#, c-format +msgid "demux_avi: failed to seek to the next chunk (pos %)\n" +msgstr "" + +#: src/demuxers/demux_film.c:188 +#, c-format +msgid "invalid FILM chunk size\n" +msgstr "" + +#: src/demuxers/demux_film.c:342 +#, c-format +msgid "unrecognized FILM chunk\n" +msgstr "" + +#: src/demuxers/demux_flv.c:172 +#, c-format +msgid "unsupported FLV version (%d).\n" +msgstr "" + +#: src/demuxers/demux_flv.c:179 +msgid "neither video nor audio stream in this file.\n" +msgstr "" + +#: src/demuxers/demux_iff.c:235 +#, c-format +msgid "iff-8svx/16sv: unknown compression: %d\n" +msgstr "" + +#: src/demuxers/demux_iff.c:369 +#, c-format +msgid "iff-ilbm: unknown compression: %d\n" +msgstr "" + +#: src/demuxers/demux_iff.c:570 +#, c-format +msgid "iff: unknown Chunk: %s\n" +msgstr "" + +#: src/demuxers/demux_mpc.c:212 +msgid "demux_mpc: frame too big for buffer" +msgstr "" + +#: src/demuxers/demux_mpeg_block.c:297 +#, c-format +msgid "" +"xine-lib:demux_mpeg_block: Unrecognised stream_id 0x%02x. Please report this " +"to xine developers.\n" +msgstr "" + +#: src/demuxers/demux_mpeg_block.c:308 +msgid "" +"demux_mpeg_block: error! freeing. Please report this to xine developers.\n" +msgstr "" + +#: src/demuxers/demux_mpeg_block.c:640 +#, c-format +msgid "demux_mpeg_block: warning: PES header reserved 10 bits not found\n" +msgstr "" + +#: src/demuxers/demux_mpeg_block.c:650 +#, c-format +msgid "" +"demux_mpeg_block: warning: PES header indicates that this stream may be " +"encrypted (encryption mode %d)\n" +msgstr "" + +#: src/demuxers/demux_mpeg_pes.c:386 +#, c-format +msgid "" +"xine-lib:demux_mpeg_pes: Unrecognised stream_id 0x%02x. Please report this " +"to xine developers.\n" +msgstr "" + +#: src/demuxers/demux_mpeg_pes.c:395 +#, c-format +msgid "demux_mpeg_pes: warning: PACK stream id=0x%x decode failed.\n" +msgstr "" + +#: src/demuxers/demux_mpeg_pes.c:777 +#, c-format +msgid "demux_mpeg_pes: warning: PES header reserved 10 bits not found\n" +msgstr "" + +#: src/demuxers/demux_mpeg_pes.c:787 +#, c-format +msgid "" +"demux_mpeg_pes: warning: PES header indicates that this stream may be " +"encrypted (encryption mode %d)\n" +msgstr "" + +#: src/demuxers/demux_mpeg_pes.c:1061 +#, c-format +msgid "" +"demux_mpeg_pes:Unrecognised private stream 1 0x%02x. Please report this to " +"xine developers.\n" +msgstr "" + +#: src/demuxers/demux_snd.c:104 +#, c-format +msgid "demux_snd: bad header parameters\n" +msgstr "" + +#: src/demuxers/demux_snd.c:149 +#, c-format +msgid "demux_snd: unsupported audio type: %d\n" +msgstr "" + +#: src/demuxers/demux_tta.c:86 +msgid "demux_tta: total frames count too high\n" +msgstr "" + +#: src/demuxers/demux_voc.c:105 +#, c-format +msgid "unknown VOC block type (0x%02X); please report to xine developers\n" +msgstr "" + +#: src/demuxers/demux_voc.c:120 +#, c-format +msgid "" +"unknown VOC compression type (0x%02X); please report to xine developers\n" +msgstr "" + +#: src/demuxers/demux_wc3movie.c:192 +#, c-format +msgid "demux_wc3movie: SHOT chunk referenced invalid palette (%d >= %d)\n" +msgstr "" + +#: src/demuxers/demux_wc3movie.c:404 +#, c-format +msgid "demux_wc3movie: There was a problem while loading palette chunks\n" +msgstr "" + +#: src/dxr3/dxr3_decode_spu.c:253 +#, c-format +msgid "dxr3_decode_spu: Failed to open spu device %s (%s)\n" +msgstr "" + +#: src/dxr3/dxr3_decode_spu.c:663 +msgid "requested button not available\n" +msgstr "" + +#: src/dxr3/dxr3_decode_video.c:250 +#, c-format +msgid "dxr3_decode_video: Failed to open control device %s (%s)\n" +msgstr "" + +#: src/dxr3/dxr3_decode_video.c:256 +msgid "use Pan & Scan info" +msgstr "" + +#: src/dxr3/dxr3_decode_video.c:257 +msgid "" +"\"Pan & Scan\" is a special display mode which is sometimes used in MPEG " +"encoded material. You can specify here, how to handle such content.\n" +"\n" +"only when forced\n" +"Use Pan & Scan only, when the content you are playing enforces it.\n" +"\n" +"use MPEG hint\n" +"Enable Pan & Scan based on information embedded in the MPEG video stream.\n" +"\n" +"use DVB hint\n" +"Enable Pan & Scan based on information embedded in DVB streams. This makes " +"use of the Active Format Descriptor (AFD) used in some European DVB channels." +msgstr "" + +#: src/dxr3/dxr3_decode_video.c:276 +msgid "try to sync video every frame" +msgstr "" + +#: src/dxr3/dxr3_decode_video.c:277 +msgid "" +"Tries to set a synchronization timestamp for every frame. Normally this is " +"not necessary, because sync is sufficent even when the timestamp is set only " +"every now and then.\n" +"This is relevant for progressive video only (most PAL films)." +msgstr "" + +#: src/dxr3/dxr3_decode_video.c:283 +msgid "use smooth play mode" +msgstr "" + +#: src/dxr3/dxr3_decode_video.c:284 +msgid "Enabling this option will utilise a smoother play mode." +msgstr "" + +#: src/dxr3/dxr3_decode_video.c:287 +msgid "correct frame durations in broken streams" +msgstr "" + +#: src/dxr3/dxr3_decode_video.c:288 +msgid "" +"Enables a small logic that corrects the frame durations of some mpeg streams " +"with wrong framerate codes. Currently a correction for NTSC streams " +"erroneously labeled as PAL streams is implemented. Enable only, when you " +"encounter such streams." +msgstr "" + +#: src/dxr3/dxr3_decode_video.c:547 +#, c-format +msgid "dxr3_decode_video: Failed to open video device %s (%s)\n" +msgstr "" + +#: src/dxr3/dxr3_decode_video.c:615 +msgid "dxr3_decode_video: write to device would block. flushing\n" +msgstr "" + +#: src/dxr3/dxr3_decode_video.c:619 +#, c-format +msgid "dxr3_decode_video: video device write failed (%s)\n" +msgstr "" + +#: src/dxr3/dxr3_decode_video.c:734 +#, c-format +msgid "dxr3_decode_video: WARNING: unknown frame rate code %d\n" +msgstr "" + +#: src/dxr3/dxr3_decode_video.c:762 +msgid "" +"dxr3_decode_video: WARNING: correcting frame rate code from PAL to NTSC\n" +msgstr "" + +#: src/dxr3/dxr3.h:32 +msgid "DXR3 device number" +msgstr "" + +#: src/dxr3/dxr3.h:33 +msgid "" +"If you have more than one DXR3 in your computer, you can specify which one " +"to use here." +msgstr "" + +#: src/dxr3/dxr3_mpeg_encoders.c:125 +msgid "dxr3_mpeg_encoder: failed to init librte\n" +msgstr "" + +#: src/dxr3/dxr3_mpeg_encoders.c:160 +msgid "" +"dxr3_mpeg_encoder: rte only handles video dimensions which are multiples of " +"16\n" +msgstr "" + +#: src/dxr3/dxr3_mpeg_encoders.c:170 +msgid "dxr3_mpeg_encoder: failed to get rte context.\n" +msgstr "" + +#: src/dxr3/dxr3_mpeg_encoders.c:181 +msgid "dxr3_mpeg_encoder: could not create codec.\n" +msgstr "" + +#: src/dxr3/dxr3_mpeg_encoders.c:189 +msgid "rte mpeg output bitrate (kbit/s)" +msgstr "" + +#: src/dxr3/dxr3_mpeg_encoders.c:190 +msgid "" +"The bitrate the mpeg encoder library librte should use for DXR3's encoding " +"mode. Higher values will increase quality and CPU usage." +msgstr "" + +#: src/dxr3/dxr3_mpeg_encoders.c:234 +#, c-format +msgid "dxr3_mpeg_encoder: cannot init the context: %s\n" +msgstr "" + +#: src/dxr3/dxr3_mpeg_encoders.c:242 +#, c-format +msgid "dxr3_mpeg_encoder: cannot start encoding: %s\n" +msgstr "" + +#: src/dxr3/dxr3_mpeg_encoders.c:372 +msgid "dxr3_mpeg_encoder: Couldn't start the FAME library\n" +msgstr "" + +#: src/dxr3/dxr3_mpeg_encoders.c:387 +msgid "fame mpeg encoding quality" +msgstr "" + +#: src/dxr3/dxr3_mpeg_encoders.c:388 +msgid "" +"The encoding quality of the libfame mpeg encoder library. Lower is faster " +"but gives noticeable artifacts. Higher is better but slower." +msgstr "" + +#: src/dxr3/dxr3_scr.c:98 +msgid "SCR plugin priority" +msgstr "" + +#: src/dxr3/dxr3_scr.c:99 +msgid "" +"Priority of the DXR3 SCR plugin. Values less than 5 mean that the unix " +"system timer will be used. Values greater 5 force to use DXR3's internal " +"clock as sync source." +msgstr "" + +#: src/dxr3/video_out_dxr3.c:262 +msgid "swap odd and even lines" +msgstr "" + +#: src/dxr3/video_out_dxr3.c:263 +msgid "" +"Swaps the even and odd field of the image.\n" +"Enable this option for non-MPEG material which produces a vertical jitter on " +"screen." +msgstr "" + +#: src/dxr3/video_out_dxr3.c:267 +msgid "add black bars to correct aspect ratio" +msgstr "" + +#: src/dxr3/video_out_dxr3.c:268 +msgid "" +"Adds black bars when the image has an aspect ratio the card cannot handle " +"natively. This is needed to maintain proper image proportions." +msgstr "" + +#: src/dxr3/video_out_dxr3.c:273 +msgid "use smooth play mode for mpeg encoder playback" +msgstr "" + +#: src/dxr3/video_out_dxr3.c:274 +msgid "" +"Enabling this option will utilise a smoother play mode for non-MPEG content." +msgstr "" + +#: src/dxr3/video_out_dxr3.c:282 +#, c-format +msgid "video_out_dxr3: Failed to open control device %s (%s)\n" +msgstr "" + +#: src/dxr3/video_out_dxr3.c:290 +#, c-format +msgid "video_out_dxr3: Failed to open video device %s (%s)\n" +msgstr "" + +#: src/dxr3/video_out_dxr3.c:336 +msgid "encoder for non mpeg content" +msgstr "" + +#: src/dxr3/video_out_dxr3.c:337 +msgid "" +"Content other than MPEG has to pass an additional reencoding stage, because " +"the dxr3 handles only MPEG.\n" +"Depending on what is supported by your xine, this setting can be \"fame\", " +"\"rte\", \"libavcodec\" or \"none\".\n" +"The \"libavcodec\" encoder makes use of the ffmpeg plugin that already ships " +"with xine, so you do not need to install any additional library for that. " +"Even better is that libavcodec also provides high quality with low CPU " +"usage. Using \"libavcodec\" is therefore strongly suggested.\n" +"\"fame\" and \"rte\" are still there, but xine support for them is outdated, " +"so these might fail to work." +msgstr "" + +#: src/dxr3/video_out_dxr3.c:348 +msgid "video_out_dxr3: Mpeg encoder libavcodec failed to init.\n" +msgstr "" + +#: src/dxr3/video_out_dxr3.c:354 +msgid "video_out_dxr3: Mpeg encoder rte failed to init.\n" +msgstr "" + +#: src/dxr3/video_out_dxr3.c:361 +msgid "video_out_dxr3: Mpeg encoder fame failed to init.\n" +msgstr "" + +#: src/dxr3/video_out_dxr3.c:367 +msgid "" +"video_out_dxr3: Mpeg encoding disabled.\n" +"video_out_dxr3: that's ok, you don't need it for mpeg video like DVDs, but\n" +"video_out_dxr3: you will not be able to play non-mpeg content using this " +"video out\n" +"video_out_dxr3: driver. See the README.dxr3 for details on configuring an " +"encoder.\n" +msgstr "" + +#: src/dxr3/video_out_dxr3.c:373 +msgid "" +"video_out_dxr3: No mpeg encoder compiled in.\n" +"video_out_dxr3: that's ok, you don't need it for mpeg video like DVDs, but\n" +"video_out_dxr3: you will not be able to play non-mpeg content using this " +"video out\n" +"video_out_dxr3: driver. See the README.dxr3 for details on configuring an " +"encoder.\n" +msgstr "" + +#: src/dxr3/video_out_dxr3.c:388 +msgid "video output mode (TV or overlay)" +msgstr "" + +#: src/dxr3/video_out_dxr3.c:389 +msgid "" +"The way the DXR3 outputs the final video can be set here. The individual " +"values are:\n" +"\n" +"letterboxed tv\n" +"Send video to the TV out connector only. This is the mode used for the " +"standard 4:3 television set. Anamorphic (16:9) video will be displayed " +"letterboxed, pan&scan material will have the image cropped at the left and " +"right side. This is the common setting for TV viewing and acts like a " +"standalone DVD player.\n" +"\n" +"widescreen tv\n" +"Send video to the tv out connector only. This mode is intended for 16:9 " +"widescreen TV sets. Anamorphic and pan&scan content will fill the entire " +"screen, but you have to set the TV's aspect ratio manually to 16:9 using " +"your.\n" +"\n" +"letterboxed overlay\n" +"Overlay Video output on the computer screen with the option of on-the-fly " +"switching to TV out by hiding the video window. The overlay will be " +"displayed with black borders if it is anamorphic (16:9).\n" +"This setting is only useful in the rare case of a DVD subtitle channel that " +"would only display properly in letterbox mode. A good example for that are " +"the animated commentator's silhouettes on \"Ghostbusters\".\n" +"\n" +"widescreen overlay\n" +"Overlay Video output on the computer screen with the option of on-the-fly " +"switching to TV out by hiding the video window. This is the common variant " +"of DXR3 overlay." +msgstr "" + +#: src/dxr3/video_out_dxr3.c:436 +msgid "overlay colorkey value" +msgstr "" + +#: src/dxr3/video_out_dxr3.c:436 +msgid "" +"Hexadecimal RGB value of the key color.\n" +"You can try different values, if you experience windows becoming transparent " +"when using DXR3 overlay mode." +msgstr "" + +#: src/dxr3/video_out_dxr3.c:441 +msgid "overlay colorkey tolerance" +msgstr "" + +#: src/dxr3/video_out_dxr3.c:441 +msgid "" +"A greater value widens the tolerance for the overlay keycolor.\n" +"You can try lower values, if you experience windows becoming transparent " +"when using DXR3 overlay mode, but parts of the image borders may disappear " +"when using a too low setting." +msgstr "" + +#: src/dxr3/video_out_dxr3.c:447 +msgid "crop the overlay area at top and bottom" +msgstr "" + +#: src/dxr3/video_out_dxr3.c:448 +msgid "" +"Removes one pixel line from the top and bottom of the overlay. Enable this, " +"if you see green lines at the top or bottom of the overlay." +msgstr "" + +#: src/dxr3/video_out_dxr3.c:452 +msgid "video_out_dxr3: please run autocal, overlay disabled\n" +msgstr "" + +#: src/dxr3/video_out_dxr3.c:462 +msgid "preferred tv mode" +msgstr "" + +#: src/dxr3/video_out_dxr3.c:462 +msgid "" +"Selects the TV mode to be used by the DXR3. The values mean:\n" +"\n" +"ntsc: NTSC at 60Hz\n" +"pal: PAL at 50Hz\n" +"pal60: PAL at 60Hz\n" +"default: keep the card's setting" +msgstr "" + +#: src/dxr3/video_out_dxr3.c:484 +msgid "video_out_dxr3: setting video mode failed.\n" +msgstr "" + +#: src/dxr3/video_out_dxr3.c:714 +msgid "" +"video_out_dxr3: Need an mpeg encoder to play non-mpeg videos on dxr3\n" +"video_out_dxr3: Read the README.dxr3 for details.\n" +msgstr "" + +#: src/dxr3/video_out_dxr3.c:1373 +msgid "video_out_dxr3: ERROR Reading overlay init file. Run autocal!\n" +msgstr "" + +#: src/input/input_cdda.c:1611 +#, c-format +msgid "%s: can't connect to %s:%d\n" +msgstr "" + +#: src/input/input_cdda.c:1658 +#, c-format +msgid "input_cdda: successfuly connected to cddb server '%s:%d'.\n" +msgstr "" + +#: src/input/input_cdda.c:1663 +#, c-format +msgid "input_cdda: failed to connect to cddb server '%s:%d' (%s).\n" +msgstr "" + +#: src/input/input_cdda.c:2693 +msgid "CD Digital Audio (aka. CDDA)" +msgstr "" + +#: src/input/input_cdda.c:2745 +msgid "device used for CD audio" +msgstr "" + +#: src/input/input_cdda.c:2746 +msgid "" +"The path to the device, usually a CD or DVD drive, which you intend to use " +"for playing audio CDs." +msgstr "" + +#: src/input/input_cdda.c:2752 +msgid "query CDDB" +msgstr "" + +#: src/input/input_cdda.c:2752 +msgid "" +"Enables CDDB queries, which will give you convenient title and track names " +"for your audio CDs.\n" +"Keep in mind that, unless you use your own private CDDB, this information is " +"retrieved from an internet server which might collect a profile of your " +"listening habits." +msgstr "" + +#: src/input/input_cdda.c:2760 +msgid "CDDB server name" +msgstr "" + +#: src/input/input_cdda.c:2760 +msgid "" +"The CDDB server used to retrieve the title and track information from.\n" +"This setting is security critical, because the sever will receive " +"information about your listening habits and could answer the queries with " +"malicious replies. Be sure to enter a server you can trust." +msgstr "" + +#: src/input/input_cdda.c:2768 +msgid "CDDB server port" +msgstr "" + +#: src/input/input_cdda.c:2768 +msgid "The server port used to retrieve the title and track information from." +msgstr "" + +#: src/input/input_cdda.c:2774 +msgid "slow down disc drive to this speed factor" +msgstr "" + +#: src/input/input_cdda.c:2775 +msgid "" +"Since some CD or DVD drives make some really loud noises because of the fast " +"disc rotation, xine will try to slow them down. With standard CD or DVD " +"playback, the high datarates that require the fast rotation are not needed, " +"so the slowdown should not affect playback performance.\n" +"A value of zero here will disable the slowdown." +msgstr "" + +#: src/input/input_dvb.c:900 +#, c-format +msgid "input_dvb: failed to open dvb channel file '%s': %s\n" +msgstr "" + +#: src/input/input_dvb.c:906 +#, c-format +msgid "input_dvb: dvb channel file '%s' is not a plain file\n" +msgstr "" + +#: src/input/input_dvb.c:2116 src/input/input_dvb.c:2948 +msgid "input_dvb: tuner_set_channel failed\n" +msgstr "" + +#: src/input/input_dvb.c:2748 +msgid "input_dvb: cannot open dvb device\n" +msgstr "" + +#: src/input/input_dvb.c:2772 +#, c-format +msgid "input_dvb: channel %d out of range, defaulting to 0\n" +msgstr "" + +#: src/input/input_dvb.c:2783 +#, c-format +msgid "input_dvb: searching for channel %s\n" +msgstr "" + +#: src/input/input_dvb.c:2806 +#, c-format +msgid "input_dvb: exact match for %s not found: trying partial matches\n" +msgstr "" + +#: src/input/input_dvb.c:2813 +#, c-format +msgid "input_dvb: found matching channel %s\n" +msgstr "" + +#: src/input/input_dvb.c:2826 +#, c-format +msgid "input_dvb: channel %s not found in channels.conf, defaulting.\n" +msgstr "" + +#: src/input/input_dvb.c:2832 +msgid "" +"input_dvb: invalid channel specification, defaulting to last viewed " +"channel.\n" +msgstr "" + +#: src/input/input_dvb.c:2838 +msgid "input_dvb: invalid channel specification, defaulting to channel 0\n" +msgstr "" + +#: src/input/input_dvb.c:2850 +msgid "" +"input_dvb: dvbs mrl specified but the tuner doesn't appear to be QPSK (DVB-" +"S)\n" +msgstr "" + +#: src/input/input_dvb.c:2870 +msgid "" +"input_dvb: dvbt mrl specified but the tuner doesn't appear to be OFDM (DVB-" +"T)\n" +msgstr "" + +#: src/input/input_dvb.c:2893 +msgid "" +"input_dvb: dvbc mrl specified but the tuner doesn't appear to be QAM (DVB-" +"C)\n" +msgstr "" + +#: src/input/input_dvb.c:2919 +msgid "" +"input_dvb: dvba mrl specified but the tuner doesn't appear to be ATSC (DVB-" +"A)\n" +msgstr "" + +#: src/input/input_dvb.c:2954 +#, c-format +msgid "input_dvb: cannot open dvr device '%s'\n" +msgstr "" + +#: src/input/input_dvb.c:2976 +msgid "input_dvb: cannot create EPG updater thread\n" +msgstr "" + +#: src/input/input_dvb.c:3038 +msgid "use DVB 'center cutout' (zoom)" +msgstr "" + +#: src/input/input_dvb.c:3039 +msgid "" +"This will allow fullscreen playback of 4:3 content transmitted in a 16:9 " +"frame." +msgstr "" + +#: src/input/input_dvb.c:3132 +msgid "DVB (Digital TV) input plugin" +msgstr "" + +#: src/input/input_dvb.c:3249 +msgid "Remember last DVB channel watched" +msgstr "" + +#: src/input/input_dvb.c:3250 +msgid "" +"On autoplay, xine will remember and switch to the channel indicated in media." +"dvb.last_channel. " +msgstr "" + +#: src/input/input_dvb.c:3257 +msgid "Last DVB channel viewed" +msgstr "" + +#: src/input/input_dvb.c:3258 +msgid "If enabled xine will remember and switch to this channel. " +msgstr "" + +#: src/input/input_dvb.c:3264 +msgid "Number of dvb card to use." +msgstr "" + +#: src/input/input_dvb.c:3265 +msgid "" +"Leave this at zero unless you really have more than 1 card in your system." +msgstr "" + +#: src/input/input_dvd.c:591 +msgid "input_dvd: values of \\beta will give rise to dom!\n" +msgstr "" + +#: src/input/input_dvd.c:610 +#, c-format +msgid "input_dvd: Error getting next block from DVD (%s)\n" +msgstr "" + +#: src/input/input_dvd.c:1498 +msgid "input_dvd: Error opening DVD device\n" +msgstr "" + +#: src/input/input_dvd.c:1781 +msgid "device used for DVD playback" +msgstr "" + +#: src/input/input_dvd.c:1782 +msgid "" +"The path to the device, usually a DVD drive, which you intend to use for " +"playing DVDs." +msgstr "" + +#: src/input/input_dvd.c:1799 +msgid "raw device set up for DVD access" +msgstr "" + +#: src/input/input_dvd.c:1800 +msgid "" +"If this points to a raw device connected to your DVD device, xine will use " +"the raw device for playback. This has the advantage of being slightly faster " +"and of bypassing the block device cache, which avoids throwing away " +"important cache content by keeping DVD data cached. Using the block device " +"cache for DVDs is useless, because almost all DVD data will be used only " +"once.\n" +"See the documentation on raw device setup (man raw) for further information." +msgstr "" + +#: src/input/input_dvd.c:1813 +msgid "CSS decryption method" +msgstr "" + +#: src/input/input_dvd.c:1814 +msgid "" +"Selects the decryption method libdvdcss will use to descramble copy " +"protected DVDs. Try the various methods, if you have problems playing " +"scrambled DVDs." +msgstr "" + +#: src/input/input_dvd.c:1829 +msgid "region the DVD player claims to be in (1 to 8)" +msgstr "" + +#: src/input/input_dvd.c:1830 +msgid "" +"This only needs to be changed if your DVD jumps to a screen complaining " +"about a wrong region code. It has nothing to do with the region code set in " +"DVD drives, this is purely software." +msgstr "" + +#: src/input/input_dvd.c:1836 +msgid "default language for DVD playback" +msgstr "" + +#: src/input/input_dvd.c:1837 +msgid "" +"xine tries to use this language as a default for DVD playback. As far as the " +"DVD supports it, menus and audio tracks will be presented in this language.\n" +"The value must be a two character ISO639 language code." +msgstr "" + +#: src/input/input_dvd.c:1843 +msgid "read-ahead caching" +msgstr "" + +#: src/input/input_dvd.c:1844 +msgid "" +"xine can use a read ahead cache for DVD drive access.\n" +"This may lead to jerky playback on slow drives, but it improves the impact " +"of the DVD layer change on faster drives." +msgstr "" + +#: src/input/input_dvd.c:1850 +msgid "unit for the skip action" +msgstr "" + +#: src/input/input_dvd.c:1851 +msgid "" +"You can configure the behaviour when issuing a skip command (using the skip " +"buttons for example). The individual values mean:\n" +"\n" +"skip program\n" +"will skip a DVD program, which is a navigational unit similar to the index " +"marks on an audio CD; this is the normal behaviour for DVD players\n" +"\n" +"skip part\n" +"will skip a DVD part, which is a structural unit similar to the track marks " +"on an audio CD; parts usually coincide with programs, but parts can be " +"larger than programs\n" +"\n" +"skip title\n" +"will skip a DVD title, which is a structural unit representing entire " +"features on the DVD" +msgstr "" + +#: src/input/input_dvd.c:1866 +msgid "unit for seeking" +msgstr "" + +#: src/input/input_dvd.c:1867 +msgid "" +"You can configure the domain spanned by the seek slider. The individual " +"values mean:\n" +"\n" +"seek in program chain\n" +"seeking will span an entire DVD program chain, which is a navigational unit " +"representing the entire video stream of the current feature\n" +"\n" +"seek in program\n" +"seeking will span a DVD program, which is a navigational unit representing a " +"chapter of the current feature" +msgstr "" + +#: src/input/input_dvd.c:1878 +msgid "play mode when title/chapter is given" +msgstr "" + +#: src/input/input_dvd.c:1879 +msgid "" +"You can configure the behaviour when playing a dvd from a given title/" +"chapter (eg. using MRL 'dvd:/1.2'). The individual values mean:\n" +"\n" +"entire dvd\n" +"play the entire dvd starting on the specified position.\n" +"\n" +"one chapter\n" +"play just the specified title/chapter and then stop" +msgstr "" + +#: src/input/input_file.c:203 +#, c-format +msgid "input_file: read error (%s)\n" +msgstr "" + +#: src/input/input_file.c:400 +#, c-format +msgid "input_file: Permission denied: >%s<\n" +msgstr "" + +#: src/input/input_file.c:405 +#, c-format +msgid "input_file: File not found: >%s<\n" +msgstr "" + +#: src/input/input_file.c:437 src/input/input_gnome_vfs.c:292 +#, c-format +msgid "input_file: File empty: >%s<\n" +msgstr "" + +#: src/input/input_file.c:658 +msgid "file input plugin" +msgstr "" + +#: src/input/input_file.c:1027 +msgid "file browsing start location" +msgstr "" + +#: src/input/input_file.c:1028 +msgid "The browser to select the file to play will start at this location." +msgstr "" + +#: src/input/input_file.c:1035 +msgid "list hidden files" +msgstr "" + +#: src/input/input_file.c:1036 +msgid "" +"If enabled, the browser to select the file to play will also show hidden " +"files." +msgstr "" + +#: src/input/input_gnome_vfs.c:218 +msgid "gnome-vfs input plugin as shipped with xine" +msgstr "" + +#: src/input/input_http.c:176 +#, c-format +msgid "input_http: gethostbyname(%s) failed: %s\n" +msgstr "" + +#: src/input/input_http.c:402 src/input/input_http.c:957 +#, c-format +msgid "input_http: read error %d\n" +msgstr "" + +#: src/input/input_http.c:629 +msgid "Connecting HTTP server..." +msgstr "" + +#: src/input/input_http.c:820 +#, c-format +msgid "input_http: invalid http answer\n" +msgstr "" + +#: src/input/input_http.c:826 +#, c-format +msgid "input_http: 3xx redirection: >%d %s<\n" +msgstr "" + +#: src/input/input_http.c:831 src/input/input_http.c:836 +#: src/input/input_http.c:842 src/input/input_http.c:849 +#, c-format +msgid "input_http: http status not 2xx: >%d %s<\n" +msgstr "" + +#: src/input/input_http.c:859 +#, c-format +msgid "input_http: content length = % bytes\n" +msgstr "" + +#: src/input/input_http.c:932 +#, c-format +msgid "input_http: buffer exhausted after %d bytes." +msgstr "" + +#: src/input/input_http.c:1010 +msgid "http input plugin" +msgstr "" + +#: src/input/input_http.c:1076 +msgid "HTTP proxy host" +msgstr "" + +#: src/input/input_http.c:1076 +msgid "The hostname of the HTTP proxy." +msgstr "" + +#: src/input/input_http.c:1080 +msgid "HTTP proxy port" +msgstr "" + +#: src/input/input_http.c:1080 +msgid "The port number of the HTTP proxy." +msgstr "" + +#: src/input/input_http.c:1090 +msgid "HTTP proxy username" +msgstr "" + +#: src/input/input_http.c:1091 +msgid "The user name for the HTTP proxy." +msgstr "" + +#: src/input/input_http.c:1094 +msgid "HTTP proxy password" +msgstr "" + +#: src/input/input_http.c:1095 +msgid "The password for the HTTP proxy." +msgstr "" + +#: src/input/input_http.c:1098 +msgid "Domains for which to ignore the HTTP proxy" +msgstr "" + +#: src/input/input_http.c:1099 +msgid "" +"A comma-separated list of domain names for which the proxy is to be " +"ignored.\n" +"If a domain name is prefixed with '=' then it is treated as a host name only " +"(full match required)." +msgstr "" + +#: src/input/input_mms.c:443 +msgid "mms streaming input plugin" +msgstr "" + +#: src/input/input_mms.c:479 src/input/librtsp/rtsp_session.c:93 +msgid "network bandwidth" +msgstr "" + +#: src/input/input_mms.c:480 src/input/librtsp/rtsp_session.c:94 +msgid "" +"Specify the bandwidth of your internet connection here. This will be used " +"when streaming servers offer different versions with different bandwidth " +"requirements of the same stream." +msgstr "" + +#: src/input/input_mms.c:489 +msgid "MMS protocol" +msgstr "" + +#: src/input/input_mms.c:490 +msgid "" +"Select the protocol to encapsulate MMS.\n" +"TCP is better but you may need HTTP behind a firewall." +msgstr "" + +#: src/input/input_net.c:123 src/input/input_net.c:153 +#, c-format +msgid "input_net: socket(): %s\n" +msgstr "" + +#: src/input/input_net.c:138 src/input/input_net.c:164 +#, c-format +msgid "input_net: connect(): %s\n" +msgstr "" + +#: src/input/input_net.c:182 src/input/input_net.c:224 +#, c-format +msgid "input_net: unable to resolve '%s'.\n" +msgstr "" + +#: src/input/input_net.c:195 src/input/input_net.c:241 +#, c-format +msgid "input_net: unable to connect to '%s'.\n" +msgstr "" + +#: src/input/input_net.c:510 +msgid "net input plugin as shipped with xine" +msgstr "" + +#: src/input/input_pnm.c:262 +msgid "pnm streaming input plugin" +msgstr "" + +#: src/input/input_pvr.c:603 +#, c-format +msgid "input_pvr: error creating pvr file (%s)\n" +msgstr "" + +#: src/input/input_pvr.c:760 +#, c-format +msgid "input_pvr: error opening pvr file (%s)\n" +msgstr "" + +#: src/input/input_pvr.c:836 +#, c-format +msgid "input_pvr: read error (%s)\n" +msgstr "" + +#: src/input/input_pvr.c:1152 src/input/input_pvr.c:1405 +#, c-format +msgid "input_pvr: error opening device %s\n" +msgstr "" + +#: src/input/input_pvr.c:1158 src/input/input_pvr.c:1411 +msgid "input_pvr: IVTV_IOC_G_CODEC failed, maybe API changed?\n" +msgstr "" + +#: src/input/input_pvr.c:1166 src/input/input_pvr.c:1420 +msgid "input_pvr: IVTV_IOC_S_CODEC failed, maybe API changed?\n" +msgstr "" + +#: src/input/input_pvr.c:1528 +msgid "WinTV-PVR 250/350 input plugin" +msgstr "" + +#: src/input/input_pvr.c:1554 +msgid "device used for WinTV-PVR 250/350 (pvr plugin)" +msgstr "" + +#: src/input/input_pvr.c:1555 +msgid "The path to the device of your WinTV card." +msgstr "" + +#: src/input/input_rtp.c:185 +#, c-format +msgid "socket(): %s.\n" +msgstr "" + +#: src/input/input_rtp.c:195 +msgid "IP address specified is multicast\n" +msgstr "" + +#: src/input/input_rtp.c:204 +#, c-format +msgid "setsockopt(SO_RCVBUF): %s.\n" +msgstr "" + +#: src/input/input_rtp.c:212 +#, c-format +msgid "setsockopt(SO_REUSEADDR): %s.\n" +msgstr "" + +#: src/input/input_rtp.c:219 +#, c-format +msgid "bind(): %s.\n" +msgstr "" + +#: src/input/input_rtp.c:239 +#, c-format +msgid "Can't find address for iface %s:%s\n" +msgstr "" + +#: src/input/input_rtp.c:257 +#, c-format +msgid "setsockopt(IP_ADD_MEMBERSHIP) failed (multicast kernel?): %s.\n" +msgstr "" + +#: src/input/input_rtp.c:279 +#, c-format +msgid "unable to resolve '%s'.\n" +msgstr "" + +#: src/input/input_rtp.c:289 +#, c-format +msgid "unable to bind to '%s'.\n" +msgstr "" + +#: src/input/input_rtp.c:317 +#, c-format +msgid "recv(): %s.\n" +msgstr "" + +#: src/input/input_rtp.c:605 +msgid "RTP: stopping reading thread...\n" +msgstr "" + +#: src/input/input_rtp.c:608 +msgid "RTP: reading thread terminated\n" +msgstr "" + +#: src/input/input_rtp.c:623 +#, c-format +msgid "Opening >filename:%s port:%d interface:%s<\n" +msgstr "" + +#: src/input/input_rtp.c:640 +#, c-format +msgid "input_rtp: can't create new thread (%s)\n" +msgstr "" + +#: src/input/input_rtp.c:746 +msgid "RTP and UDP input plugin as shipped with xine" +msgstr "" + +#: src/input/input_rtsp.c:284 +msgid "rtsp streaming input plugin" +msgstr "" + +#: src/input/input_smb.c:158 +msgid "CIFS/SMB input plugin based on libsmbclient" +msgstr "" + +#: src/input/input_stdin_fifo.c:166 +#, c-format +msgid "stdin: cannot seek back! (% > %)\n" +msgstr "" + +#: src/input/input_stdin_fifo.c:254 +#, c-format +msgid "stdin: failed to open '%s'\n" +msgstr "" + +#: src/input/input_stdin_fifo.c:350 +msgid "stdin streaming input plugin" +msgstr "" + +#: src/input/input_v4l.c:379 +msgid "Buffer underrun..." +msgstr "" + +#: src/input/input_v4l.c:383 +msgid "Buffer overrun..." +msgstr "" + +#: src/input/input_v4l.c:386 +msgid "Adjusting..." +msgstr "" + +#: src/input/input_v4l.c:658 +msgid "Tuner name not found\n" +msgstr "" + +#: src/input/input_v4l.c:1874 +msgid "v4l tv input plugin" +msgstr "" + +#: src/input/input_v4l.c:1878 +msgid "v4l radio input plugin" +msgstr "" + +#: src/input/input_v4l.c:1910 +msgid "v4l video device" +msgstr "" + +#: src/input/input_v4l.c:1911 +msgid "The path to your Video4Linux video device." +msgstr "" + +#: src/input/input_v4l.c:1936 +msgid "v4l radio device" +msgstr "" + +#: src/input/input_v4l.c:1937 +msgid "The path to your Video4Linux radio device." +msgstr "" + +#: src/input/input_vcd.c:850 +msgid "input_vcd: malformed MRL. Use vcdo:/\n" +msgstr "" + +#: src/input/input_vcd.c:856 +#, c-format +msgid "input_vcd: invalid track %d (valid range: 0 .. %d)\n" +msgstr "" + +#: src/input/input_vcd.c:923 +msgid "Video CD input plugin" +msgstr "" + +#: src/input/input_vcd.c:968 +#, c-format +msgid "unable to open %s: %s.\n" +msgstr "" + +#: src/input/input_vcd.c:1044 +#, c-format +msgid "input_vcd: unable to open %s: %s.\n" +msgstr "" + +#: src/input/input_vcd.c:1098 +msgid "device used for VCD playback" +msgstr "" + +#: src/input/input_vcd.c:1099 +msgid "" +"The path to the device, usually a CD or DVD drive, you intend to play your " +"VideoCDs with." +msgstr "" + +#: src/input/librtsp/rtsp.c:450 +#, c-format +msgid "rtsp: bad mrl: %s\n" +msgstr "" + +#: src/input/librtsp/rtsp.c:510 +#, c-format +msgid "rtsp: failed to connect to '%s'\n" +msgstr "" + +#: src/input/librtsp/rtsp_session.c:109 +#, c-format +msgid "rtsp_session: failed to connect to server %s\n" +msgstr "" + +#: src/input/librtsp/rtsp_session.c:143 +msgid "rtsp_session: session can not be established.\n" +msgstr "" + +#: src/input/librtsp/rtsp_session.c:161 +#, c-format +msgid "rtsp_session: rtsp server type '%s' not supported yet. sorry.\n" +msgstr "" + +#: src/input/media_helper.c:148 +#, c-format +msgid "input_dvd: Device %s failed to open during eject calls\n" +msgstr "" + +#: src/input/mms.c:561 +msgid "Connecting MMS server (over tcp)..." +msgstr "" + +#: src/input/mmsh.c:201 +msgid "libmmsh: send error\n" +msgstr "" + +#: src/input/mmsh.c:246 +#, c-format +msgid "libmmsh: bad response format\n" +msgstr "" + +#: src/input/mmsh.c:252 +#, c-format +msgid "libmmsh: 3xx redirection not implemented: >%d %s<\n" +msgstr "" + +#: src/input/mmsh.c:259 +#, c-format +msgid "libmmsh: http status not 2xx: >%d %s<\n" +msgstr "" + +#: src/input/mmsh.c:267 +#, c-format +msgid "libmmsh: Location redirection not implemented\n" +msgstr "" + +#: src/input/mmsh.c:476 +msgid "Connecting MMS server (over http)..." +msgstr "" + +#: src/input/mmsh.c:657 +#, c-format +msgid "invalid url\n" +msgstr "" + +#: src/input/mmsh.c:662 +#, c-format +msgid "unsupported protocol\n" +msgstr "" + +#: src/input/net_buf_ctrl.c:89 +msgid "Buffering..." +msgstr "" + +#: src/input/pnm.c:617 +#, c-format +msgid "" +"input_pnm: got message from server while reading stream:\n" +"%s\n" +msgstr "" + +#: src/input/pnm.c:755 +#, c-format +msgid "input_pnm: failed to connect '%s'\n" +msgstr "" + +#: src/input/pnm.c:766 +msgid "input_pnm: failed to set up stream\n" +msgstr "" + +#: src/input/vcd/vcdio.c:222 +msgid "SEEK_CUR not implemented for non-zero offset" +msgstr "" + +#: src/input/vcd/vcdio.c:250 +msgid "SEEK_END not implemented yet." +msgstr "" + +#: src/input/vcd/vcdio.c:253 +msgid "seek not implemented yet for" +msgstr "" + +#: src/input/vcd/vcdplayer.c:94 +msgid "bad item type" +msgstr "" + +#: src/input/vcd/vcdplayer.c:458 +msgid "bad entry number" +msgstr "" + +#: src/input/vcd/vcdplayer.c:491 +msgid "bad segment number" +msgstr "" + +#: src/input/vcd/vcdplayer.c:501 +msgid "Error in getting current segment number" +msgstr "" + +#: src/input/vcd/vcdplayer.c:589 +msgid "Should have converted this above" +msgstr "" + +#: src/input/vcd/xineplug_inp_vcd.c:192 +msgid "failed to find a device with a VCD" +msgstr "" + +#: src/input/vcd/xineplug_inp_vcd.c:329 +msgid "was passed a null class parameter" +msgstr "" + +#: src/input/vcd/xineplug_inp_vcd.c:982 +msgid "Invalid current entry type" +msgstr "" + +#: src/input/vcd/xineplug_inp_vcd.c:1006 +msgid "" +"Video CD plugin with PBC and support for: (X)VCD, (X)SVCD, HQVCD, CVD ... " +msgstr "" + +#: src/input/vcd/xineplug_inp_vcd.c:1107 +msgid "selection has no RETURN entry" +msgstr "" + +#: src/input/vcd/xineplug_inp_vcd.c:1136 +msgid "DEFAULT selected, but PBC is not on." +msgstr "" + +#: src/input/vcd/xineplug_inp_vcd.c:1141 +msgid "selection has no NEXT entry" +msgstr "" + +#: src/input/vcd/xineplug_inp_vcd.c:1149 +msgid "selection has no PREVIOUS entry" +msgstr "" + +#: src/input/vcd/xineplug_inp_vcd.c:1156 +msgid "Unknown event type: " +msgstr "" + +#: src/input/vcd/xineplug_inp_vcd.c:1452 src/input/vcd/xineplug_inp_vcd.c:1499 +msgid "The above message had unknown vcdimager log level" +msgstr "" + +#: src/input/vcd/xineplug_inp_vcd.c:1830 +msgid "VCD default type to use on autoplay" +msgstr "" + +#: src/input/vcd/xineplug_inp_vcd.c:1831 +msgid "" +"The VCD play unit to use when none is specified in an MRL, e.g. vcd:// or " +"vcd:///dev/dvd:" +msgstr "" + +#: src/input/vcd/xineplug_inp_vcd.c:1841 +msgid "CD-ROM drive used for VCD when none given" +msgstr "" + +#: src/input/vcd/xineplug_inp_vcd.c:1842 +msgid "" +"What to use if no drive specified. If the setting is empty, xine will scan " +"for CD drives." +msgstr "" + +#: src/input/vcd/xineplug_inp_vcd.c:1852 +msgid "VCD position slider range" +msgstr "" + +#: src/input/vcd/xineplug_inp_vcd.c:1853 +msgid "" +"range that the stream playback position slider represents playing a VCD." +msgstr "" + +#: src/input/vcd/xineplug_inp_vcd.c:1861 +msgid "VCD read-ahead caching?" +msgstr "" + +#: src/input/vcd/xineplug_inp_vcd.c:1862 +msgid "Class may lead to jerky playback on low-end machines." +msgstr "" + +#: src/input/vcd/xineplug_inp_vcd.c:1872 +msgid "automatically advance VCD track/entry" +msgstr "" + +#: src/input/vcd/xineplug_inp_vcd.c:1873 +msgid "" +"If enabled, we should automatically advance to the next entry or track. Used " +"only when playback control (PBC) is disabled." +msgstr "" + +#: src/input/vcd/xineplug_inp_vcd.c:1882 +msgid "show 'rejected' VCD LIDs" +msgstr "" + +#: src/input/vcd/xineplug_inp_vcd.c:1883 +msgid "" +"Some playback list IDs (LIDs) are marked not showable, but you can see them " +"in the MRL list if this is set. Rejected entries are marked with an asterisk " +"(*) appended to the MRL." +msgstr "" + +#: src/input/vcd/xineplug_inp_vcd.c:1894 +msgid "VCD format string for display banner" +msgstr "" + +#: src/input/vcd/xineplug_inp_vcd.c:1895 +msgid "" +"VCD format used in the GUI Title. Similar to the Unix date command. Format " +"specifiers start with a percent sign. Specifiers are:\n" +" %A : The album information\n" +" %C : The VCD volume count - the number of CD's in the collection.\n" +" %c : The VCD volume num - the number of the CD in the collection.\n" +" %F : The VCD Format, e.g. VCD 1.0, VCD 1.1, VCD 2.0, or SVCD\n" +" %I : The current entry/segment/playback type, e.g. ENTRY, TRACK, ...\n" +" %L : The playlist ID prefixed with \" LID\" if it exists\n" +" %N : The current number of the above - a decimal number\n" +" %P : The publisher ID\n" +" %p : The preparer ID\n" +" %S : If we are in a segment (menu), the kind of segment\n" +" %T : The track number\n" +" %V : The volume set ID\n" +" %v : The volume ID\n" +" A number between 1 and the volume count.\n" +" %% : a %\n" +msgstr "" + +#: src/input/vcd/xineplug_inp_vcd.c:1920 +msgid "VCD format string for stream comment field" +msgstr "" + +#: src/input/vcd/xineplug_inp_vcd.c:1921 +msgid "" +"VCD format used in the GUI Title. Similar to the Unix date command. Format " +"specifiers start with a percent sign. Specifiers are %A, %C, %c, %F, %I, %L, " +"%N, %P, %p, %S, %T, %V, %v, and %%.\n" +"See the help for the title_format for the meanings of these." +msgstr "" + +#: src/input/vcd/xineplug_inp_vcd.c:1933 +msgid "VCD debug flag mask" +msgstr "" + +#: src/input/vcd/xineplug_inp_vcd.c:1934 +msgid "" +"For tracking down bugs in the VCD plugin. Mask values are:\n" +" 1: Meta information\n" +" 2: input (keyboard/mouse) events\n" +" 4: MRL parsing\n" +" 8: Calls from external routines\n" +" 16: routine calls\n" +" 32: LSN changes\n" +" 64: Playback control\n" +" 128: Debugging from CDIO\n" +" 256: Seeks to set location\n" +" 512: Seeks to find current location\n" +"1024: Still-frame\n" +"2048: Debugging from VCDINFO\n" +msgstr "" + +#: src/libffmpeg/ff_audio_decoder.c:122 +#, c-format +msgid "ffmpeg_audio_dec: increasing buffer to %d to avoid overflow.\n" +msgstr "" + +#: src/libffmpeg/ff_audio_decoder.c:166 +#, c-format +msgid "ffmpeg_audio_dec: couldn't find ffmpeg decoder for buf type 0x%X\n" +msgstr "" + +#: src/libffmpeg/ff_audio_decoder.c:258 +msgid "ffmpeg_audio_dec: trying to open null codec\n" +msgstr "" + +#: src/libffmpeg/ff_audio_decoder.c:267 +msgid "ffmpeg_audio_dec: couldn't open decoder\n" +msgstr "" + +#: src/libffmpeg/ff_dvaudio_decoder.c:280 +#, c-format +msgid "dvaudio: increasing buffer to %d to avoid overflow.\n" +msgstr "" + +#: src/libffmpeg/ffmpeg_encoder.c:163 +msgid "libavcodec mpeg output bitrate (kbit/s)" +msgstr "" + +#: src/libffmpeg/ffmpeg_encoder.c:164 +msgid "" +"The bitrate the libavcodec mpeg encoder should use for DXR3's encoding mode. " +"Higher values will increase quality and CPU usage.\n" +"This setting is only considered, when constant quality mode is disabled." +msgstr "" + +#: src/libffmpeg/ffmpeg_encoder.c:171 +msgid "constant quality mode" +msgstr "" + +#: src/libffmpeg/ffmpeg_encoder.c:172 +msgid "" +"When enabled, libavcodec will use a constant quality mode by dynamically " +"compressing the images based on their complexity. When disabled, libavcodec " +"will use constant bitrate mode." +msgstr "" + +#: src/libffmpeg/ffmpeg_encoder.c:179 +msgid "minimum compression" +msgstr "" + +#: src/libffmpeg/ffmpeg_encoder.c:180 +msgid "The minimum compression to apply to an image in constant quality mode." +msgstr "" + +#: src/libffmpeg/ffmpeg_encoder.c:185 +msgid "maximum quantizer" +msgstr "" + +#: src/libffmpeg/ffmpeg_encoder.c:186 +msgid "The maximum compression to apply to an image in constant quality mode." +msgstr "" + +#: src/libffmpeg/ff_video_decoder.c:155 +msgid "ffmpeg_video_dec: unsupported frame format, DR1 disabled.\n" +msgstr "" + +#: src/libffmpeg/ff_video_decoder.c:173 +msgid "ffmpeg_video_dec: unsupported frame dimensions, DR1 disabled.\n" +msgstr "" + +#: src/libffmpeg/ff_video_decoder.c:333 +#, c-format +msgid "ffmpeg_video_dec: couldn't find ffmpeg decoder for buf type 0x%X\n" +msgstr "" + +#: src/libffmpeg/ff_video_decoder.c:362 +msgid "ffmpeg_video_dec: couldn't open decoder\n" +msgstr "" + +#: src/libffmpeg/ff_video_decoder.c:397 +msgid "ffmpeg_video_dec: direct rendering enabled\n" +msgstr "" + +#: src/libffmpeg/ff_video_decoder.c:816 +#, c-format +msgid "ffmpeg_video_dec: increasing buffer to %d to avoid overflow.\n" +msgstr "" + +#: src/libffmpeg/ff_video_decoder.c:1519 +msgid "MPEG-4 postprocessing quality" +msgstr "" + +#: src/libffmpeg/ff_video_decoder.c:1520 +msgid "" +"You can adjust the amount of post processing applied to MPEG-4 video.\n" +"Higher values result in better quality, but need more CPU. Lower values may " +"result in image defects like block artifacts. For high quality content, too " +"heavy post processing can actually make the image worse by blurring it too " +"much." +msgstr "" + +#: src/libreal/real_common.c:107 +msgid "path to RealPlayer codecs" +msgstr "" + +#: src/libreal/real_common.c:108 +msgid "" +"If you have RealPlayer installed, specify the path to its codec directory " +"here. You can easily find the codec directory by looking for a file named " +"\"drvc.so\" in it. If xine can find the RealPlayer codecs, it will use them " +"to decode RealPlayer content for you. Consult the xine FAQ for more " +"information on how to install the codecs." +msgstr "" + +#: src/libreal/xine_real_audio_decoder.c:130 +#, c-format +msgid "libareal: (audio) Cannot resolve symbols - incompatible dll: %s\n" +msgstr "" + +#: src/libreal/xine_real_audio_decoder.c:287 +#, c-format +msgid "libareal: decoder init failed, error code: 0x%x\n" +msgstr "" + +#: src/libreal/xine_real_audio_decoder.c:301 +#, c-format +msgid "libareal: decoder flavor setup failed, error code: 0x%x\n" +msgstr "" + +#: src/libreal/xine_real_audio_decoder.c:338 +msgid "libareal: oups, real can do more than 2 channels ?\n" +msgstr "" + +#: src/libreal/xine_real_video_decoder.c:164 +msgid "libreal: Error resolving symbols! (version incompatibility?)\n" +msgstr "" + +#: src/libspucc/xine_cc_decoder.c:192 +msgid "display closed captions in MPEG-2 streams" +msgstr "" + +#: src/libspucc/xine_cc_decoder.c:193 +msgid "" +"Closed Captions are subtitles mostly meant to help the hearing impaired." +msgstr "" + +#: src/libspucc/xine_cc_decoder.c:200 +msgid "closed-captioning foreground/background scheme" +msgstr "" + +#: src/libspucc/xine_cc_decoder.c:201 +msgid "Choose your favourite rendering of the closed captions." +msgstr "" + +#: src/libspucc/xine_cc_decoder.c:207 +msgid "standard closed captioning font" +msgstr "" + +#: src/libspucc/xine_cc_decoder.c:208 +msgid "Choose the font for standard closed captions text." +msgstr "" + +#: src/libspucc/xine_cc_decoder.c:214 +msgid "italic closed captioning font" +msgstr "" + +#: src/libspucc/xine_cc_decoder.c:215 +msgid "Choose the font for italic closed captions text." +msgstr "" + +#: src/libspucc/xine_cc_decoder.c:221 +msgid "closed captioning font size" +msgstr "" + +#: src/libspucc/xine_cc_decoder.c:222 +msgid "Choose the font size for closed captions text." +msgstr "" + +#: src/libspucc/xine_cc_decoder.c:226 +msgid "center-adjust closed captions" +msgstr "" + +#: src/libspucc/xine_cc_decoder.c:227 +msgid "" +"When enabled, closed captions will be positioned by the center of the " +"individual lines." +msgstr "" + +#: src/libspucmml/xine_cmml_decoder.c:480 +msgid "font for external subtitles" +msgstr "" + +#: src/libspucmml/xine_cmml_decoder.c:486 +msgid "subtitle vertical offset (relative window size)" +msgstr "" + +#: src/libspucmml/xine_cmml_decoder.c:532 +msgid "encoding of subtitles" +msgstr "" + +#: src/libspudvb/xine_spudvb_decoder.c:621 +msgid "dvbsub: cannot create timer thread\n" +msgstr "" + +#: src/libsputext/demux_sputext.c:1506 +msgid "default duration of subtitle display in seconds" +msgstr "" + +#: src/libsputext/demux_sputext.c:1507 +msgid "" +"Some subtitle formats do not explicitly give a duration for each subtitle. " +"For these, you can set a default duration here. Setting to zero will result " +"in the subtitle being shown until the next one takes over." +msgstr "" + +#: src/libsputext/xine_sputext_decoder.c:948 +msgid "subtitle size" +msgstr "" + +#: src/libsputext/xine_sputext_decoder.c:949 +msgid "" +"You can adjust the subtitle size here. The setting will be evaluated " +"relative to the window size." +msgstr "" + +#: src/libsputext/xine_sputext_decoder.c:955 +msgid "subtitle vertical offset" +msgstr "" + +#: src/libsputext/xine_sputext_decoder.c:956 +msgid "" +"You can adjust the vertical position of the subtitle. The setting will be " +"evaluated relative to the window size." +msgstr "" + +#: src/libsputext/xine_sputext_decoder.c:962 +#: src/libsputext/xine_sputext_decoder.c:971 +msgid "font for subtitles" +msgstr "" + +#: src/libsputext/xine_sputext_decoder.c:963 +msgid "A font from the xine font directory to be used for the subtitle text." +msgstr "" + +#: src/libsputext/xine_sputext_decoder.c:972 +msgid "An outline font file (e.g. a .ttf) to be used for the subtitle text." +msgstr "" + +#: src/libsputext/xine_sputext_decoder.c:978 +msgid "whether to use a freetype font" +msgstr "" + +#: src/libsputext/xine_sputext_decoder.c:985 +msgid "encoding of the subtitles" +msgstr "" + +#: src/libsputext/xine_sputext_decoder.c:986 +msgid "" +"The encoding of the subtitle text in the stream. This setting is used to " +"render non-ASCII characters correctly. If non-ASCII characters are not " +"displayed as you expect, ask the creator of the subtitles what encoding was " +"used." +msgstr "" + +#: src/libsputext/xine_sputext_decoder.c:994 +msgid "use unscaled OSD if possible" +msgstr "" + +#: src/libsputext/xine_sputext_decoder.c:995 +msgid "" +"The unscaled OSD will be rendered independently of the video frame and will " +"always be sharp, even if the video is magnified. This will look better, but " +"does not work with all graphics hardware. The alternative is the scaled OSD, " +"which will become blurry, if you enlarge a low resolution video to " +"fullscreen, but it works with all graphics cards." +msgstr "" + +#: src/libw32dll/common.c:17 +msgid "path to Win32 codecs" +msgstr "" + +#: src/libw32dll/common.c:18 +msgid "" +"If you have the Windows or Apple Quicktime codec packs installed, specify " +"the path the codec directory here. If xine can find the Windows or Apple " +"Quicktime codecs, it will use them to decode various Windows Media and " +"Quicktime streams for you. Consult the xine FAQ for more information on how " +"to install the codecs." +msgstr "" + +#: src/libw32dll/w32codec.c:588 +#, c-format +msgid "w32codec: ICOpen failed! unknown codec %08lx / wrong parameters?\n" +msgstr "" + +#: src/libw32dll/w32codec.c:597 +#, c-format +msgid "w32codec: ICDecompressGetFormat (%.4s %08lx/%d) failed: Error %ld\n" +msgstr "" + +#: src/libw32dll/w32codec.c:630 +#, c-format +msgid "w32codec: ICDecompressQuery failed: Error %ld\n" +msgstr "" + +#: src/libw32dll/w32codec.c:641 +#, c-format +msgid "w32codec: ICDecompressBegin failed: Error %ld\n" +msgstr "" + +#: src/libw32dll/w32codec.c:687 +#, c-format +msgid "" +"w32codec: DS_VideoDecoder failed! unknown codec %08lx / wrong parameters?\n" +msgstr "" + +#: src/libw32dll/w32codec.c:698 +#, c-format +msgid "" +"w32codec: DMO_VideoDecoder failed! unknown codec %08lx / wrong parameters?\n" +msgstr "" + +#: src/libw32dll/w32codec.c:818 src/libw32dll/w32codec.c:1487 +#, c-format +msgid "w32codec: decoder failed to start. Is '%s' installed?\n" +msgstr "" + +#: src/libw32dll/w32codec.c:1221 +#, c-format +msgid "w32codec: (ACM_Decoder) Unappropriate audio format\n" +msgstr "" + +#: src/libw32dll/w32codec.c:1224 +#, c-format +msgid "w32codec: (ACM_Decoder) acmStreamOpen error %d\n" +msgstr "" + +#: src/libw32dll/w32codec.c:1243 +#, c-format +msgid "w32codec: Error initializing DirectShow Audio\n" +msgstr "" + +#: src/libw32dll/w32codec.c:1261 +#, c-format +msgid "w32codec: Error initializing DMO Audio\n" +msgstr "" + +#: src/libxineadec/xine_a52_decoder.c:742 +#: src/libxineadec/xine_dts_decoder.c:524 +msgid "HELP! a mono-only audio driver?!\n" +msgstr "" + +#: src/libxineadec/xine_a52_decoder.c:805 +msgid "A/52 volume" +msgstr "" + +#: src/libxineadec/xine_a52_decoder.c:806 +msgid "" +"With A/52 audio, you can modify the volume at the decoder level. This has " +"the advantage of the audio being already decoded for the specified volume, " +"so later operations like channel downmixing will work on an audio stream of " +"the given volume." +msgstr "" + +#: src/libxineadec/xine_a52_decoder.c:814 +msgid "use A/52 dynamic range compression" +msgstr "" + +#: src/libxineadec/xine_a52_decoder.c:815 +msgid "" +"Dynamic range compression limits the dynamic range of the audio. This means " +"making the loud sounds softer, and the soft sounds louder, so you can more " +"easily listen to the audio in a noisy environment without disturbing anyone." +msgstr "" + +#: src/libxineadec/xine_a52_decoder.c:822 +msgid "downmix audio to 2 channel surround stereo" +msgstr "" + +#: src/libxineadec/xine_a52_decoder.c:823 +msgid "" +"When you want to listen to multichannel surround sound, but you have only " +"two speakers or a surround decoder or amplifier which does some sort of " +"matrix surround decoding like prologic, you should enable this option so " +"that the additional channels are mixed into the stereo signal." +msgstr "" + +#: src/libxineadec/xine_faad_decoder.c:130 +msgid "libfaad: libfaad NeAACDecOpen() failed.\n" +msgstr "" + +#: src/libxineadec/xine_faad_decoder.c:139 +msgid "libfaad: libfaad NeAACDecInit2 failed.\n" +msgstr "" + +#: src/libxineadec/xine_faad_decoder.c:150 +msgid "libfaad: libfaad NeAACDecInit failed.\n" +msgstr "" + +#: src/libxineadec/xine_musepack_decoder.c:249 +#, c-format +msgid "libmusepack: mpc_streaminfo_read failed: %d\n" +msgstr "" + +#: src/libxineadec/xine_musepack_decoder.c:323 +msgid "libmusepack: data after last frame ignored\n" +msgstr "" + +#: src/libxineadec/xine_musepack_decoder.c:334 +msgid "libmusepack: mpc_decoder_initialise failed\n" +msgstr "" + +#: src/libxineadec/xine_musepack_decoder.c:354 +#: src/libxineadec/xine_musepack_decoder.c:369 +#, c-format +msgid "libmusepack: mpc_decoder_decode failed: %d\n" +msgstr "" + +#: src/libxinevdec/bitplane.c:1272 +#, c-format +msgid "bitplane: error doing ByteRun1 decompression\n" +msgstr "" + +#: src/libxinevdec/bitplane.c:1331 +#, c-format +msgid "bitplane: Anim Opt 1 is not supported at the moment\n" +msgstr "" + +#: src/libxinevdec/bitplane.c:1338 +#, c-format +msgid "bitplane: Anim Opt 2 is not supported at the moment\n" +msgstr "" + +#: src/libxinevdec/bitplane.c:1388 +#, c-format +msgid "bitplane: Anim ASCIIJ is not supported at the moment\n" +msgstr "" + +#: src/libxinevdec/bitplane.c:1394 +#, c-format +msgid "bitplane: This anim-type is not supported at the moment\n" +msgstr "" + +#: src/post/audio/stretch.c:264 +msgid "" +"This filter will perform a time stretch, playing the stream faster or slower " +"by a factor. Pitch is optionally preserved, so it is possible, for example, " +"to use it to watch a movie in less time than it was originaly shot.\n" +msgstr "" + +#: src/post/audio/upmix.c:137 +msgid "" +"Upmix functions. e.g. Take stereo input and produce Surround 5.1 output.\n" +"Parameters\n" +" cut_off_freq\n" +"\n" +"Note: It is possible to use frontend's control window to set these " +"parameters.\n" +"\n" +msgstr "" + +#: src/post/audio/upmix_mono.c:109 +msgid "" +"This filter will upmix a mono stream to stereo, by duplicating channels. " +"Alternatively, one may use this plugin to listen just one channel of a given " +"stream.\n" +msgstr "" + +#: src/post/audio/upmix_mono.c:147 +msgid ": upmixing Mono to Stereo.\n" +msgstr "" + +#: src/post/audio/upmix_mono.c:152 +#, c-format +msgid ": upmixing a single channel from original %d channel stream.\n" +msgid_plural ": upmixing a single channel from original %d channels stream.\n" +msgstr[0] "" +msgstr[1] "" + +#: src/post/audio/upmix_mono.c:157 +msgid ": audio device not capable of AO_CAP_MODE_STEREO.\n" +msgstr "" + +#: src/post/audio/volnorm.c:150 +msgid "" +"Normalizes audio by maximizing the volume without distorting the sound.\n" +"\n" +"Parameters:\n" +" method: 1: use a single sample to smooth the variations via the standard " +"weighted mean over past samples (default); 2: use several samples to smooth " +"the variations via the standard weighted mean over past samples.\n" +msgstr "" + +#: src/post/deinterlace/xine_plugin.c:204 +msgid "" +"Advanced tvtime/deinterlacer plugin with pulldown detection\n" +"This plugin aims to provide deinterlacing mechanisms comparable to high " +"quality progressive DVD players and so called line-doublers, for use with " +"computer monitors, projectors and other progressive display devices.\n" +"\n" +"Parameters\n" +"\n" +" Method: Select deinterlacing method/algorithm to use, see below for " +"explanation of each method.\n" +"\n" +" Enabled: Enable/disable the plugin.\n" +"\n" +" Pulldown: Choose the 2-3 pulldown detection algorithm. 24 FPS films that " +"have being converted to NTSC can be detected and intelligently reconstructed " +"to their original (non-interlaced) frames.\n" +"\n" +" Framerate_mode: Selecting 'full' will deinterlace every field to an unique " +"frame for television quality and beyond. This feature will effetively double " +"the frame rate, improving smoothness. Note, however, that full 59.94 FPS is " +"not possible with plain 2.4 Linux kernel (that use a timer interrupt " +"frequency of 100Hz). Newer RedHat and 2.6 kernels use higher HZ settings " +"(512 and 1000, respectively) and should work fine.\n" +"\n" +" Judder_correction: Once 2-3 pulldown is enabled and a film material is " +"detected, it is possible to reduce the frame rate to original rate used (24 " +"FPS). This will make the frames evenly spaced in time, matching the speed " +"they were shot and eliminating the judder effect.\n" +"\n" +" Use_progressive_frame_flag: Well mastered MPEG2 streams uses a flag to " +"indicate progressive material. This setting control whether we trust this " +"flag or not (some rare and buggy mpeg2 streams set it wrong).\n" +"\n" +" Chroma_filter: DVD/MPEG2 use an interlaced image format that has a very " +"poor vertical chroma resolution. Upsampling the chroma for purposes of " +"deinterlacing may cause some artifacts to occur (eg. color stripes). Use " +"this option to blur the chroma vertically after deinterlacing to remove the " +"artifacts. Warning: cpu intensive.\n" +"\n" +" Cheap_mode: This will skip the expensive YV12->YUY2 image conversion, " +"tricking tvtime/dscaler routines like if they were still handling YUY2 " +"images. Of course, this is not correct, not all pixels will be evaluated by " +"the algorithms to decide the regions to deinterlace and chroma will be " +"processed separately. Nevertheless, it allows people with not so fast " +"systems to try deinterlace algorithms, in a tradeoff between quality and cpu " +"usage.\n" +"\n" +"* Uses several algorithms from tvtime and dscaler projects.\n" +"Deinterlacing methods: (Not all methods are available for all plataforms)\n" +"\n" +msgstr "" + +#: src/post/deinterlace/xine_plugin.c:325 +msgid "tvtime: No deinterlacing methods available, exiting.\n" +msgstr "" + +#: src/post/goom/xine_goom.c:204 +msgid "frames per second to generate" +msgstr "" + +#: src/post/goom/xine_goom.c:205 +msgid "" +"With more frames per second, the animation will get smoother and faster, but " +"will also require more CPU power." +msgstr "" + +#: src/post/goom/xine_goom.c:210 +msgid "goom image width" +msgstr "" + +#: src/post/goom/xine_goom.c:211 +msgid "The width in pixels of the image to be generated." +msgstr "" + +#: src/post/goom/xine_goom.c:215 +msgid "goom image height" +msgstr "" + +#: src/post/goom/xine_goom.c:216 +msgid "The height in pixels of the image to be generated." +msgstr "" + +#: src/post/goom/xine_goom.c:222 +msgid "colorspace conversion method" +msgstr "" + +#: src/post/goom/xine_goom.c:223 +msgid "" +"You can choose the colorspace conversion method used by goom.\n" +"The available selections should be self-explaining." +msgstr "" + +#: src/post/mosaico/mosaico.c:273 +msgid "" +"Mosaico does simple picture in picture effects.\n" +"\n" +"Parameters\n" +" pip_num: the number of the picture slot the following settings apply to\n" +" x: the x coordinate of the left upper corner of the picture\n" +" y: the y coordinate of the left upper corner of the picture\n" +" w: the width of the picture\n" +" h: the height of the picture\n" +msgstr "" + +#: src/post/mosaico/switch.c:230 +msgid "" +"Switch can be used for fast switching between multiple inputs.\n" +"\n" +"Parameters\n" +" select: the number of the input which will be passed to the output\n" +msgstr "" + +#: src/post/planar/boxblur.c:103 +msgid "" +"Box blur does a simple blurring of the image.\n" +"\n" +"Parameters\n" +" Radius: size of the filter\n" +" Power: how often the filter should be applied\n" +"\n" +"* mplayer's boxblur (C) 2002 Michael Niedermayer\n" +msgstr "" + +#: src/post/planar/denoise3d.c:136 +msgid "" +"This filter aims to reduce image noise producing smooth images and making " +"still images really still (This should enhance compressibility.). It can be " +"given from 0 to 3 parameters. If you omit a parameter, a reasonable value " +"will be inferred.\n" +"\n" +"Parameters\n" +" Luma: Spatial luma strength (default = 4)\n" +" Chroma: Spatial chroma strength (default = 3)\n" +" Time: Temporal strength (default = 6)\n" +"\n" +"* mplayer's denoise3d (C) 2003 Daniel Moreno\n" +msgstr "" + +#: src/post/planar/eq2.c:359 +msgid "" +"Alternative software equalizer that uses lookup tables (very slow), allowing " +"gamma correction in addition to simple brightness, contrast and saturation " +"adjustment.\n" +"Note that it uses the same MMX optimized code as 'eq' if all gamma values " +"are 1.0.\n" +"\n" +"Parameters\n" +" gamma\n" +" brightness\n" +" contrast\n" +" saturation\n" +" rgamma (gamma for the red component)\n" +" ggamma (gamma for the green component)\n" +" bgamma (gamma for the blue component)\n" +"\n" +"Value ranges are 0.1 - 10 for gammas, -2 - 2 for contrast (negative values " +"result in a negative image), -1 - 1 for brightness and 0 - 3 for " +"saturation.\n" +"\n" +"* mplayer's eq2 (C) Hampa Hug, Daniel Moreno, Richard Felker\n" +msgstr "" + +#: src/post/planar/eq.c:186 +msgid "" +"Software equalizer with interactive controls just like the hardware " +"equalizer, for cards/drivers that do not support brightness and contrast " +"controls in hardware.\n" +"\n" +"Parameters\n" +" brightness\n" +" contrast\n" +"\n" +"Note: It is possible to use frontend's control window to set these " +"parameters.\n" +"\n" +"* mplayer's eq (C) Richard Felker\n" +msgstr "" + +#: src/post/planar/expand.c:251 +msgid "" +"The expand plugin is meant to take frames of arbitrary aspect ratio and " +"converts them to a different aspect (4:3 by default) by adding black bars on " +"the top and bottom of the frame. This allows us to shift overlays down into " +"the black area so they don't cover the image.\n" +"\n" +"Parameters (FIXME: better help)\n" +" Enable_automatic_shift: Enable automatic overlay shifting\n" +" Overlay_y_offset: Manually shift the overlay vertically\n" +" aspect: The target aspect ratio (default 4:3)\n" +" Centre_cut_out_mode: extracts 4:3 image contained in 16:9 frame\n" +"\n" +msgstr "" + +#: src/post/planar/noise.c:402 +msgid "" +"Adds random noise to the video.\n" +"\n" +"Parameters:\n" +" luma_strength: strength of noise added to luma channel (0-100, default: " +"8)\n" +" chroma_strength: strength of noise added to chroma channel (0-100, " +"default: 5)\n" +" quality: quality level of the noise. fixed: constant noise pattern; " +"temporal: noise pattern changes between frames; averaged temporal: smoother " +"noise pattern that changes between frames. (default: averaged temporal)\n" +" type: Type of noise: uniform or gaussian. (default: gaussian)\n" +" pattern: Mix random noise with a (semi)regular pattern. (default: False)\n" +"\n" +"* mplayer's noise (C) Michael Niedermayer\n" +msgstr "" + +#: src/post/planar/pp.c:108 +msgid "" +"FFmpeg libpostprocess plugin.\n" +"\n" +"Parameters\n" +"\n" +msgstr "" + +#: src/post/planar/pp.c:114 +msgid "" +"\n" +"* libpostprocess (C) Michael Niedermayer\n" +msgstr "" + +#: src/post/planar/unsharp.c:220 +msgid "" +"Unsharp mask / gaussian blur\n" +"It is possible to set the width and height of the matrix, odd sized in both " +"directions (min = 3x3, max = 13x11 or 11x13, usually something between 3x3 " +"and 7x7) and the relative amount of sharpness/blur to add to the image (a " +"sane range should be -1.5 - 1.5).\n" +"\n" +"Parameters\n" +"\n" +" Luma_matrix_width: Width of the matrix (must be odd)\n" +"\n" +" Luma_matrix_height: Height of the matrix (must be odd)\n" +"\n" +" Luma_amount: Relative amount of sharpness/blur (=0 disable, <0 blur, >0 " +"sharpen)\n" +"\n" +" Chroma_matrix_width: Width of the matrix (must be odd)\n" +"\n" +" Chroma_matrix_height: Height of the matrix (must be odd)\n" +"\n" +" Chroma_amount: Relative amount of sharpness/blur (=0 disable, <0 blur, >0 " +"sharpen)\n" +"\n" +"\n" +"* mplayer's unsharp (C) 2002 Remi Guyomarch\n" +msgstr "" + +#: src/vdr/input_vdr.c:183 src/vdr/input_vdr.c:223 src/vdr/input_vdr.c:2297 +#: src/vdr/input_vdr.c:2394 +#, c-format +msgid ": input event write: %s.\n" +msgstr "" + +#: src/vdr/input_vdr.c:713 src/vdr/input_vdr.c:1137 +msgid ": buffer_pool_alloc() failed!\n" +msgstr "" + +#: src/vdr/input_vdr.c:782 +#, c-format +msgid ": flush buffers (vb: %d, ab: %d, vf: %d, af: %d) %s.\n" +msgstr "" + +#: src/vdr/input_vdr.c:1475 +#, c-format +msgid ": shutting down rpc thread (timeout: %d ms) ...\n" +msgstr "" + +#: src/vdr/input_vdr.c:1499 +#, c-format +msgid ": cancelling rpc thread in function %d...\n" +msgstr "" + +#: src/vdr/input_vdr.c:1506 +msgid ": joining rpc thread ...\n" +msgstr "" + +#: src/vdr/input_vdr.c:1508 +msgid ": rpc thread joined.\n" +msgstr "" + +#: src/vdr/input_vdr.c:2137 src/vdr/input_vdr.c:2151 src/vdr/input_vdr.c:2169 +#: src/vdr/input_vdr.c:2190 src/vdr/input_vdr.c:2211 +#, c-format +msgid ": failed to open '%s' (%s)\n" +msgstr "" + +#: src/vdr/input_vdr.c:2153 +msgid "timeout expired during setup phase" +msgstr "" + +#: src/vdr/input_vdr.c:2227 +#, c-format +msgid ": can't create new thread (%s)\n" +msgstr "" + +#: src/vdr/input_vdr.c:2487 +msgid "VDR display device plugin" +msgstr "" + +#: src/vdr/post_vdr_video.c:435 +#, c-format +msgid ": osd: (%d, %d)-(%d, %d)@%lg\n" +msgstr "" + +#: src/video_out/video_out_aa.c:311 +msgid "xine video output plugin using the ascii-art library" +msgstr "" + +#: src/video_out/video_out_caca.c:318 +msgid "xine video output plugin using the Color AsCii Art library" +msgstr "" + +#: src/video_out/video_out_directfb.c:1341 +msgid "video layer buffering mode" +msgstr "" + +#: src/video_out/video_out_directfb.c:1342 +msgid "" +"Select the buffering mode of the output layer. Double or triple buffering " +"give a smoother playback, but consume more video memory." +msgstr "" + +#: src/video_out/video_out_directfb.c:1349 +msgid "wait for vertical retrace" +msgstr "" + +#: src/video_out/video_out_directfb.c:1350 +msgid "" +"Enable synchronizing the update of the video image to the repainting of the " +"entire screen (\"vertical retrace\")." +msgstr "" + +#: src/video_out/video_out_directfb.c:1357 +msgid "enable video color key" +msgstr "" + +#: src/video_out/video_out_directfb.c:1358 +msgid "" +"Enable using a color key to tell the graphics card where to overlay the " +"video image." +msgstr "" + +#: src/video_out/video_out_directfb.c:1364 +msgid "video color key" +msgstr "" + +#: src/video_out/video_out_directfb.c:1365 +msgid "" +"The color key is used to tell the graphics card where to overlay the video " +"image. Try different values, if you experience windows becoming transparent." +msgstr "" + +#: src/video_out/video_out_directfb.c:1374 +msgid "flicker filtering" +msgstr "" + +#: src/video_out/video_out_directfb.c:1375 +msgid "Enable Flicker Filetring for a smooth output on an interlaced display." +msgstr "" + +#: src/video_out/video_out_directfb.c:1382 +msgid "field parity" +msgstr "" + +#: src/video_out/video_out_directfb.c:1383 +msgid "" +"For an interlaced display, enable controlling the field parity (\"none" +"\"=disabled)." +msgstr "" + +#: src/video_out/video_out_directfb.c:1516 +msgid "video_out_directfb: using hardware subpicture acceleration.\n" +msgstr "" + +#: src/video_out/video_out_directfb.c:1530 +msgid "video_out_directfb: layer supports video output.\n" +msgstr "" + +#: src/video_out/video_out_directfb.c:1539 +msgid "video_out_directfb: layer doesn't support YV12!\n" +msgstr "" + +#: src/video_out/video_out_directfb.c:1546 +msgid "video_out_directfb: layer doesn't support YUY2!\n" +msgstr "" + +#: src/video_out/video_out_directfb.c:1557 +msgid "" +"video_out_directfb:need at least DirectFB 0.9.25 to play on this layer!\n" +msgstr "" + +#: src/video_out/video_out_directfb.c:1592 +#, c-format +msgid "video_out_directfb: layer doesn't support buffermode %d!\n" +msgstr "" + +#: src/video_out/video_out_directfb.c:1598 +#, c-format +msgid "video_out_directfb: layer doesn't support options 0x%08x!\n" +msgstr "" + +#: src/video_out/video_out_directfb.c:1692 +msgid "video_out_directfb: using hardware accelerated image scaling.\n" +msgstr "" + +#: src/video_out/video_out_directfb.c:1704 +msgid "" +"video_out_directfb: image scaling with deinterlacing is hardware " +"accelerated.\n" +msgstr "" + +#: src/video_out/video_out_directfb.c:1782 +msgid "video layer id (auto: -1)" +msgstr "" + +#: src/video_out/video_out_directfb.c:1783 +msgid "Select the video output layer by its id." +msgstr "" + +#: src/video_out/video_out_directfb.c:1804 +#: src/video_out/video_out_directfb.c:2014 +#, c-format +msgid "video_out_directfb: using display layer #%d.\n" +msgstr "" + +#: src/video_out/video_out_directfb.c:1888 +msgid "xine video output plugin using DirectFB." +msgstr "" + +#: src/video_out/video_out_directfb.c:2007 +msgid "video_out_directfb: no usable display layer was found!\n" +msgstr "" + +#: src/video_out/video_out_directfb.c:2096 +msgid "xine video output plugin using DirectFB under XDirectFB." +msgstr "" + +#: src/video_out/video_out_directx.c:1238 +msgid "xine video output plugin for win32 using directx" +msgstr "" + +#: src/video_out/video_out_fb.c:780 +#, c-format +msgid "" +"video_out_fb: only packed truecolor/directcolor is supported (%d).\n" +" Check 'fbset -i' or try 'fbset -depth 16'.\n" +msgstr "" + +#: src/video_out/video_out_fb.c:840 src/video_out/video_out_vidix.c:1239 +msgid "framebuffer device name" +msgstr "" + +#: src/video_out/video_out_fb.c:841 src/video_out/video_out_vidix.c:1240 +msgid "" +"Specifies the file name for the framebuffer device to be used.\n" +"This setting is security critical, because when changed to a different file, " +"xine can be used to fill this file with arbitrary content. So you should be " +"careful that the value you enter really is a proper framebuffer device." +msgstr "" + +#: src/video_out/video_out_fb.c:915 +#, c-format +msgid "%s: Your video mode was not recognized, sorry.\n" +msgstr "" + +#: src/video_out/video_out_fb.c:972 +#, c-format +msgid "%s: %d video RAM buffers are available.\n" +msgstr "" + +#: src/video_out/video_out_fb.c:978 +#, c-format +msgid "" +"WARNING: %s: Zero copy buffers are DISABLED because only %d buffers\n" +" are available which is less than the recommended %d buffers. Lowering\n" +" the frame buffer resolution might help.\n" +msgstr "" + +#: src/video_out/video_out_fb.c:989 +#, c-format +msgid "" +"WARNING: %s: Zero copy buffers are DISABLED because kernel driver\n" +" do not support screen panning (used for frame flips).\n" +msgstr "" + +#: src/video_out/video_out_fb.c:1058 +#, c-format +msgid "" +"WARNING: %s: current display depth is %d. For better performance\n" +" a depth of 16 bpp is recommended!\n" +"\n" +msgstr "" + +#: src/video_out/video_out_fb.c:1090 +msgid "Xine video output plugin using the Linux frame buffer device" +msgstr "" + +#: src/video_out/video_out_none.c:279 +msgid "xine video output plugin which displays nothing" +msgstr "" + +#: src/video_out/video_out_opengl.c:1889 +msgid "OpenGL renderer" +msgstr "" + +#: src/video_out/video_out_opengl.c:1890 +msgid "" +"The OpenGL plugin provides several render modules:\n" +"\n" +"2D_Tex_Fragprog\n" +"This module downloads the images as YUV 2D textures and renders a textured " +"slice\n" +"using fragment programs for reconstructing RGB.\n" +"This is the best and fastest method on modern graphics cards.\n" +"\n" +"2D_Tex\n" +"This module downloads the images as 2D textures and renders a textured " +"slice.\n" +"2D_Tex_Tiled\n" +"This module downloads the images as multiple 2D textures and renders a " +"textured\n" +"slice. Thus this works with smaller maximum texture sizes as well.\n" +"Image_Pipeline\n" +"This module uses glDraw() to render the images.\n" +"Only accelerated on few drivers.\n" +"Does not interpolate on scaling.\n" +"\n" +"Cylinder\n" +"Shows images on a rotating cylinder. Nice effect :)\n" +"\n" +"Environment_Mapped_Torus\n" +"Show images reflected in a spinning torus. Way cool =)" +msgstr "" + +#: src/video_out/video_out_opengl.c:1912 +msgid "OpenGL minimum framerate" +msgstr "" + +#: src/video_out/video_out_opengl.c:1913 +msgid "" +"Minimum framerate for animated render routines.\n" +"Ignored for static render routines.\n" +msgstr "" + +#: src/video_out/video_out_opengl.c:1918 src/video_out/video_out_vidix.c:1015 +#: src/video_out/video_out_xcbxv.c:1304 src/video_out/video_out_xv.c:1359 +#: src/video_out/video_out_xvmc.c:1423 src/video_out/video_out_xxmc.c:2531 +msgid "enable double buffering" +msgstr "" + +#: src/video_out/video_out_opengl.c:1919 +msgid "" +"For OpenGL double buffering does not only remove tearing artifacts,\n" +"it also reduces flickering a lot.\n" +"It should not have any performance impact." +msgstr "" + +#: src/video_out/video_out_opengl.c:1966 +msgid "xine video output plugin using the OpenGL 3D graphics API" +msgstr "" + +#: src/video_out/video_out_pgx32.c:190 +msgid "video_out_pgx32: Error: can't grab DGA drawable for video window\n" +msgstr "" + +#: src/video_out/video_out_pgx32.c:209 src/video_out/video_out_pgx32.c:223 +#, c-format +msgid "video_out_pgx32: Error: ioctl failed, bad device (%s)\n" +msgstr "" + +#: src/video_out/video_out_pgx32.c:216 +#, c-format +msgid "video_out_pgx32: Error: '%s' is not a pgx32 framebuffer device\n" +msgstr "" + +#: src/video_out/video_out_pgx64.c:281 +msgid "video_out_pgx64: Error: can't grab DGA drawable for video window\n" +msgstr "" + +#: src/video_out/video_out_pgx64.c:299 +#, c-format +msgid "video_out_pgx64: Error: can't open framebuffer device '%s'\n" +msgstr "" + +#: src/video_out/video_out_pgx64.c:306 +#, c-format +msgid "" +"video_out_pgx64: Error: ioctl failed (VIS_GETIDENTIFIER), bad device (%s)\n" +msgstr "" + +#: src/video_out/video_out_pgx64.c:319 +#, c-format +msgid "" +"video_out_pgx64: Error: '%s' is not a xvr100/pgx64/pgx24 framebuffer device\n" +msgstr "" + +#: src/video_out/video_out_pgx64.c:340 +msgid "" +"video_out_pgx64: Error: video overlay on this screen is already in use\n" +msgstr "" + +#: src/video_out/video_out_pgx64.c:355 +msgid "video_out_pgx64: Error: unable to set window properties\n" +msgstr "" + +#: src/video_out/video_out_pgx64.c:811 +msgid "video_out_pgx64: Warning: low video memory, multi-buffering disabled\n" +msgstr "" + +#: src/video_out/video_out_pgx64.c:843 +msgid "video_out_pgx64: Error: insuffucient video memory\n" +msgstr "" + +#: src/video_out/video_out_pgx64.c:859 +msgid "video_out_pgx64: Warning: low video memory, double-buffering disabled\n" +msgstr "" + +#: src/video_out/video_out_pgx64.c:1397 +msgid "video_out_pgx64: Error: ioctl failed (FBIOGATTR)\n" +msgstr "" + +#: src/video_out/video_out_pgx64.c:1464 src/video_out/video_out_xcbxv.c:1271 +#: src/video_out/video_out_xv.c:1326 src/video_out/video_out_xvmc.c:1408 +#: src/video_out/video_out_xxmc.c:2498 +msgid "video overlay colour key" +msgstr "" + +#: src/video_out/video_out_pgx64.c:1465 +msgid "" +"The colour key is used to tell the graphics card where it can overlay the " +"video image. Try using different values if you see the video showing through " +"other windows." +msgstr "" + +#: src/video_out/video_out_pgx64.c:1472 +msgid "enable chroma keying" +msgstr "" + +#: src/video_out/video_out_pgx64.c:1473 +msgid "" +"Draw OSD graphics on top of the overlay colour key rather than blend them " +"into each frame." +msgstr "" + +#: src/video_out/video_out_pgx64.c:1476 +msgid "enable multi-buffering" +msgstr "" + +#: src/video_out/video_out_pgx64.c:1477 +msgid "" +"Multi buffering increases performance at the expense of using more graphics " +"memory." +msgstr "" + +#: src/video_out/video_out_sdl.c:482 +msgid "use hardware acceleration if available" +msgstr "" + +#: src/video_out/video_out_sdl.c:483 +msgid "" +"When your system supports it, hardware acceleration provided by your " +"graphics hardware will be used. This might not work, so you can disable it, " +"if things go wrong." +msgstr "" + +#: src/video_out/video_out_sdl.c:525 +msgid "sdl has to emulate a 16 bit surfaces, that will slow things down.\n" +msgstr "" + +#: src/video_out/video_out_sdl.c:562 +msgid "video_out_sdl: fullscreen mode is NOT supported\n" +msgstr "" + +#: src/video_out/video_out_sdl.c:573 +msgid "xine video output plugin using the Simple Direct Media Layer" +msgstr "" + +#: src/video_out/video_out_stk.c:454 +msgid "xine video output plugin using the Libstk Surface Set-top Toolkit" +msgstr "" + +#: src/video_out/video_out_syncfb.c:282 +msgid "video_out_syncfb: error. (YUY2 not supported by your graphic card)\n" +msgstr "" + +#: src/video_out/video_out_syncfb.c:298 +msgid "video_out_syncfb: error. (YV12 not supported by your graphic card)\n" +msgstr "" + +#: src/video_out/video_out_syncfb.c:940 +msgid "video_out_syncfb: info. (SyncFB module supports YUV 4:2:0 (3 plane))\n" +msgstr "" + +#: src/video_out/video_out_syncfb.c:945 +msgid "video_out_syncfb: info. (SyncFB module supports YUV 4:2:0 (2 plane))\n" +msgstr "" + +#: src/video_out/video_out_syncfb.c:950 +msgid "video_out_syncfb: info. (SyncFB module supports YUV 4:2:2)\n" +msgstr "" + +#: src/video_out/video_out_syncfb.c:956 +msgid "video_out_syncfb: info. (SyncFB module supports YUY2)\n" +msgstr "" + +#: src/video_out/video_out_syncfb.c:963 +msgid "video_out_syncfb: info. (SyncFB module supports RGB565)\n" +msgstr "" + +#: src/video_out/video_out_syncfb.c:968 +msgid "" +"video_out_syncfb: aborting. (SyncFB module does not support YV12, YUY2 nor " +"RGB565)\n" +msgstr "" + +#: src/video_out/video_out_syncfb.c:987 +msgid "" +"video_out_syncfb: info. (brightness/contrast control won't be available " +"because your SyncFB kernel module seems to be outdated. Please refer to " +"README.syncfb for informations on how to update it.)\n" +msgstr "" + +#: src/video_out/video_out_syncfb.c:1011 +msgid "default number of frame repetitions" +msgstr "" + +#: src/video_out/video_out_syncfb.c:1012 +msgid "" +"This specifies how many times a single video frame will be displayed " +"consecutively." +msgstr "" + +#: src/video_out/video_out_syncfb.c:1060 +msgid "" +"xine video output plugin using the SyncFB module for Matrox G200/G400 cards" +msgstr "" + +#: src/video_out/video_out_syncfb.c:1078 +msgid "SyncFB device name" +msgstr "" + +#: src/video_out/video_out_syncfb.c:1079 +msgid "" +"Specifies the file name for the SyncFB (TeleTux) device to be used.\n" +"This setting is security critical, because when changed to a different file, " +"xine can be used to fill this file with arbitrary content. So you should be " +"careful that the value you enter really is a proper framebuffer device." +msgstr "" + +#: src/video_out/video_out_vidix.c:993 +msgid "red intensity" +msgstr "" + +#: src/video_out/video_out_vidix.c:993 +msgid "The intensity of the red colour components." +msgstr "" + +#: src/video_out/video_out_vidix.c:998 +msgid "green intensity" +msgstr "" + +#: src/video_out/video_out_vidix.c:998 +msgid "The intensity of the green colour components." +msgstr "" + +#: src/video_out/video_out_vidix.c:1003 +msgid "blue intensity" +msgstr "" + +#: src/video_out/video_out_vidix.c:1003 +msgid "The intensity of the blue colour components." +msgstr "" + +#: src/video_out/video_out_vidix.c:1016 src/video_out/video_out_xcbxv.c:1305 +#: src/video_out/video_out_xv.c:1360 src/video_out/video_out_xvmc.c:1424 +#: src/video_out/video_out_xxmc.c:2532 +msgid "" +"Double buffering will synchronize the update of the video image to the " +"repainting of the entire screen (\"vertical retrace\"). This eliminates " +"flickering and tearing artifacts, but will use more graphics memory." +msgstr "" + +#: src/video_out/video_out_vidix.c:1063 +msgid "video_out_vidix: adaptor supports the yuy2 format\n" +msgstr "" + +#: src/video_out/video_out_vidix.c:1074 +msgid "video_out_vidix: adaptor supports the yv12 format\n" +msgstr "" + +#: src/video_out/video_out_vidix.c:1090 +msgid "video_out_vidix: You have wrong version of VIDIX library\n" +msgstr "" + +#: src/video_out/video_out_vidix.c:1098 +msgid "video_out_vidix: Couldn't find working VIDIX driver\n" +msgstr "" + +#: src/video_out/video_out_vidix.c:1111 +#, c-format +msgid "video_out_vidix: using driver: %s by %s\n" +msgstr "" + +#: src/video_out/video_out_vidix.c:1158 +msgid "video overlay colour key red component" +msgstr "" + +#: src/video_out/video_out_vidix.c:1159 src/video_out/video_out_vidix.c:1166 +#: src/video_out/video_out_vidix.c:1173 src/video_out/video_out_xcbxv.c:1272 +#: src/video_out/video_out_xv.c:1327 src/video_out/video_out_xvmc.c:1409 +#: src/video_out/video_out_xxmc.c:2499 +msgid "" +"The colour key is used to tell the graphics card where to overlay the video " +"image. Try different values, if you experience windows becoming transparent." +msgstr "" + +#: src/video_out/video_out_vidix.c:1165 +msgid "video overlay colour key green component" +msgstr "" + +#: src/video_out/video_out_vidix.c:1172 +msgid "video overlay colour key blue component" +msgstr "" + +#: src/video_out/video_out_vidix.c:1204 +msgid "xine video output plugin using libvidix for x11" +msgstr "" + +#: src/video_out/video_out_vidix.c:1286 +msgid "xine video output plugin using libvidix for linux frame buffer" +msgstr "" + +#: src/video_out/video_out_xcbshm.c:157 src/video_out/video_out_xshm.c:219 +#, c-format +msgid "%s: %s: allocating image\n" +msgstr "" + +#: src/video_out/video_out_xcbshm.c:159 src/video_out/video_out_xcbshm.c:169 +#: src/video_out/video_out_xcbshm.c:181 src/video_out/video_out_xcbxv.c:267 +#: src/video_out/video_out_xcbxv.c:277 src/video_out/video_out_xcbxv.c:287 +#: src/video_out/video_out_xcbxv.c:299 src/video_out/video_out_xshm.c:204 +#: src/video_out/video_out_xshm.c:221 src/video_out/video_out_xshm.c:232 +#: src/video_out/video_out_xshm.c:251 src/video_out/video_out_xv.c:295 +#: src/video_out/video_out_xv.c:322 src/video_out/video_out_xv.c:331 +#: src/video_out/video_out_xv.c:367 src/video_out/video_out_xxmc.c:648 +#: src/video_out/video_out_xxmc.c:659 src/video_out/video_out_xxmc.c:668 +#: src/video_out/video_out_xxmc.c:704 +#, c-format +msgid "%s: => not using MIT Shared Memory extension.\n" +msgstr "" + +#: src/video_out/video_out_xcbshm.c:167 src/video_out/video_out_xshm.c:230 +#, c-format +msgid "%s: shared memory error (address error) when allocating image \n" +msgstr "" + +#: src/video_out/video_out_xcbshm.c:179 src/video_out/video_out_xcbxv.c:297 +#: src/video_out/video_out_xshm.c:249 src/video_out/video_out_xv.c:365 +#: src/video_out/video_out_xxmc.c:702 +#, c-format +msgid "%s: x11 error during shared memory XImage creation\n" +msgstr "" + +#: src/video_out/video_out_xcbshm.c:1103 src/video_out/video_out_xshm.c:1161 +#, c-format +msgid "" +"\n" +"\n" +"WARNING: current display depth is %d. For better performance\n" +"a depth of 16 bpp is recommended!\n" +"\n" +msgstr "" + +#: src/video_out/video_out_xcbshm.c:1116 src/video_out/video_out_xshm.c:1174 +#, c-format +msgid "%s: MIT shared memory extension not present on display.\n" +msgstr "" + +#: src/video_out/video_out_xcbshm.c:1215 src/video_out/video_out_xshm.c:1258 +#, c-format +msgid "%s: your video mode was not recognized, sorry :-(\n" +msgstr "" + +#: src/video_out/video_out_xcbshm.c:1245 src/video_out/video_out_xshm.c:1307 +msgid "xine video output plugin using the MIT X shared memory extension" +msgstr "" + +#: src/video_out/video_out_xcbxv.c:265 src/video_out/video_out_xv.c:320 +#: src/video_out/video_out_xxmc.c:657 +#, c-format +msgid "%s: XvShmCreateImage returned a zero size\n" +msgstr "" + +#: src/video_out/video_out_xcbxv.c:275 src/video_out/video_out_xv.c:329 +#: src/video_out/video_out_xxmc.c:666 +#, c-format +msgid "%s: shared memory error in shmget: %s\n" +msgstr "" + +#: src/video_out/video_out_xcbxv.c:285 +#, c-format +msgid "%s: shared memory error (address error)\n" +msgstr "" + +#: src/video_out/video_out_xcbxv.c:1125 src/video_out/video_out_xv.c:1174 +#: src/video_out/video_out_xxmc.c:2349 +#, c-format +msgid "%s: Xv extension not present.\n" +msgstr "" + +#: src/video_out/video_out_xcbxv.c:1167 src/video_out/video_out_xv.c:1211 +#: src/video_out/video_out_xxmc.c:2386 +#, c-format +msgid "" +"%s: Xv extension is present but I couldn't find a usable yuv12 port.\n" +"\tLooks like your graphics hardware driver doesn't support Xv?!\n" +msgstr "" + +#: src/video_out/video_out_xcbxv.c:1176 +#, c-format +msgid "" +"%s: using Xv port %d from adaptor %s for hardware colorspace conversion and " +"scaling.\n" +msgstr "" + +#: src/video_out/video_out_xcbxv.c:1280 src/video_out/video_out_xv.c:1335 +#: src/video_out/video_out_xvmc.c:1417 src/video_out/video_out_xxmc.c:2507 +msgid "autopaint colour key" +msgstr "" + +#: src/video_out/video_out_xcbxv.c:1281 src/video_out/video_out_xv.c:1336 +#: src/video_out/video_out_xvmc.c:1418 src/video_out/video_out_xxmc.c:2508 +msgid "Make Xv autopaint its colorkey." +msgstr "" + +#: src/video_out/video_out_xcbxv.c:1288 src/video_out/video_out_xv.c:1343 +#: src/video_out/video_out_xxmc.c:2515 +msgid "bilinear scaling mode" +msgstr "" + +#: src/video_out/video_out_xcbxv.c:1289 src/video_out/video_out_xv.c:1344 +#: src/video_out/video_out_xxmc.c:2516 +msgid "" +"Selects the bilinear scaling mode for Permedia cards. The individual values " +"are:\n" +"\n" +"Permedia 2\n" +"0 - disable bilinear filtering\n" +"1 - enable bilinear filtering\n" +"\n" +"Permedia 3\n" +"0 - disable bilinear filtering\n" +"1 - horizontal linear filtering\n" +"2 - enable full bilinear filtering" +msgstr "" + +#: src/video_out/video_out_xcbxv.c:1341 src/video_out/video_out_xv.c:1393 +#: src/video_out/video_out_xxmc.c:2572 +#, c-format +msgid "%s: this adaptor supports the yv12 format.\n" +msgstr "" + +#: src/video_out/video_out_xcbxv.c:1346 src/video_out/video_out_xv.c:1398 +#: src/video_out/video_out_xxmc.c:2577 +#, c-format +msgid "%s: this adaptor supports the yuy2 format.\n" +msgstr "" + +#: src/video_out/video_out_xcbxv.c:1354 src/video_out/video_out_xv.c:1420 +#: src/video_out/video_out_xxmc.c:2600 +msgid "pitch alignment workaround" +msgstr "" + +#: src/video_out/video_out_xcbxv.c:1355 src/video_out/video_out_xv.c:1421 +#: src/video_out/video_out_xxmc.c:2601 +msgid "Some buggy video drivers need a workaround to function properly." +msgstr "" + +#: src/video_out/video_out_xcbxv.c:1383 src/video_out/video_out_xv.c:1468 +#: src/video_out/video_out_xxmc.c:2681 +msgid "xine video output plugin using the MIT X video extension" +msgstr "" + +#: src/video_out/video_out_xshm.c:202 +#, c-format +msgid "%s: shared memory error when allocating image\n" +msgstr "" + +#: src/video_out/video_out_xv.c:293 src/video_out/video_out_xxmc.c:646 +#, c-format +msgid "%s: XvShmCreateImage failed\n" +msgstr "" + +#: src/video_out/video_out_xv.c:1221 src/video_out/video_out_xxmc.c:2396 +#, c-format +msgid "" +"%s: using Xv port %ld from adaptor %s for hardware colorspace conversion and " +"scaling.\n" +msgstr "" + +#: src/video_out/video_out_xvmc.c:1496 +msgid "xine video output plugin using the XvMC X video extension" +msgstr "" + +#: src/video_out/video_out_xvmc.c:1542 +msgid "video_out_xvmc: XvMC extension not present.\n" +msgstr "" + +#: src/video_out/video_out_xvmc.c:1640 +msgid "" +"video_out_xvmc: Xv extension is present but I couldn't find a usable yuv12 " +"port.\n" +msgstr "" + +#: src/video_out/video_out_xvmc.c:1649 +#, c-format +msgid "" +"video_out_xvmc: using Xv port %ld from adaptor %s\n" +" for hardware colorspace conversion and scaling\n" +msgstr "" + +#: src/video_out/video_out_xvmc.c:1654 +msgid " idct and motion compensation acceleration \n" +msgstr "" + +#: src/video_out/video_out_xvmc.c:1656 +msgid " motion compensation acceleration only\n" +msgstr "" + +#: src/video_out/video_out_xvmc.c:1658 +msgid " no XvMC support \n" +msgstr "" + +#: src/video_out/video_out_xvmc.c:1659 +#, c-format +msgid " With Overlay = %d; UnsignedIntra = %d.\n" +msgstr "" + +#: src/video_out/video_out_xxmc.c:2606 +msgid "Make XvMC allocate more frames for better buffering." +msgstr "" + +#: src/video_out/video_out_xxmc.c:2607 +msgid "" +"Some XvMC implementations allow more than 8 frames.\n" +"This option, when turned on, makes the driver try to\n" +"allocate 15 frames. A must for unichrome and live VDR.\n" +msgstr "" + +#: src/video_out/video_out_xxmc.c:2613 +msgid "Unichrome cpu save" +msgstr "" + +#: src/video_out/video_out_xxmc.c:2614 +msgid "" +"Saves CPU time by sleeping while decoder works.\n" +"Only for Linux kernel 2.6 series or 2.4 with multimedia patch.\n" +"Experimental.\n" +msgstr "" + +#: src/video_out/video_out_xxmc.c:2620 +msgid "Fix buggy NVIDIA XvMC subpicture colors" +msgstr "" + +#: src/video_out/video_out_xxmc.c:2621 +msgid "" +"There's a bug in NVIDIA's XvMC lib that makes red OSD colors\n" +"look blue and vice versa. This option provides a workaround.\n" +msgstr "" + +#: src/video_out/video_out_xxmc.c:2626 +msgid "Use bob as accelerated deinterlace method." +msgstr "" + +#: src/video_out/video_out_xxmc.c:2627 +msgid "" +"When interlacing is enabled for hardware accelerated frames,\n" +"Alternate between top and bottom field at double the frame rate.\n" +msgstr "" + +#: src/video_out/x11osd.c:276 src/video_out/xcbosd.c:270 +msgid "x11osd: XShape extension not available. unscaled overlay disabled.\n" +msgstr "" + +#: src/video_out/x11osd.c:289 src/video_out/xcbosd.c:283 +msgid "x11osd: error creating window. unscaled overlay disabled.\n" +msgstr "" + +#: src/video_out/x11osd.c:297 src/video_out/x11osd.c:338 +#: src/video_out/xcbosd.c:293 +msgid "x11osd: error creating pixmap. unscaled overlay disabled.\n" +msgstr "" + +#: src/video_out/x11osd.c:348 src/video_out/xcbosd.c:332 +#, c-format +msgid "x11osd: unscaled overlay created (%s mode).\n" +msgstr "" + +#: src/xine-engine/alphablend.c:2146 +msgid "disable exact alpha blending of overlays" +msgstr "" + +#: src/xine-engine/alphablend.c:2147 +msgid "" +"If you experience a performance impact when an On Screen Display or other " +"overlays like DVD subtitles are active, then you might want to enable this " +"option.\n" +"The result is that alpha blending of overlays is less accurate than before, " +"but the CPU usage will be decreased as well." +msgstr "" + +#: src/xine-engine/audio_decoder.c:366 +#, c-format +msgid "audio_decoder: no plugin available to handle '%s'\n" +msgstr "" + +#: src/xine-engine/audio_decoder.c:383 +#, c-format +msgid "audio_decoder: error, unknown buffer type: %08x\n" +msgstr "" + +#: src/xine-engine/audio_decoder.c:485 +msgid "number of audio buffers" +msgstr "" + +#: src/xine-engine/audio_decoder.c:486 +msgid "" +"The number of audio buffers (each is 8k in size) xine uses in its internal " +"queue. Higher values mean smoother playback for unreliable inputs, but also " +"increased latency and memory consumption." +msgstr "" + +#: src/xine-engine/audio_out.c:1078 +msgid "" +"audio_out: delay calculation impossible with an unavailable audio device\n" +msgstr "" + +#: src/xine-engine/audio_out.c:1220 +msgid "write to sound card failed. Was a USB device unplugged ?\n" +msgstr "" + +#: src/xine-engine/audio_out.c:1373 +msgid "8 bits not supported by driver, converting to 16 bits.\n" +msgstr "" + +#: src/xine-engine/audio_out.c:1381 +msgid "mono not supported by driver, converting to stereo.\n" +msgstr "" + +#: src/xine-engine/audio_out.c:1387 +msgid "stereo not supported by driver, converting to mono.\n" +msgstr "" + +#: src/xine-engine/audio_out.c:2041 +msgid "method to sync audio and video" +msgstr "" + +#: src/xine-engine/audio_out.c:2042 +msgid "" +"When playing audio and video, there are at least two clocks involved: The " +"system clock, to which video frames are synchronized and the clock in your " +"sound hardware, which determines the speed of the audio playback. These " +"clocks are never ticking at the same speed except for some rare cases where " +"they are physically identical. In general, the two clocks will run drift " +"after some time, for which xine offers two ways to keep audio and video " +"synchronized:\n" +"\n" +"metronom feedback\n" +"This is the standard method, which applies a countereffecting video drift, " +"as soon as the audio drift has accumulated over a threshold.\n" +"\n" +"resample\n" +"For some video hardware, which is limited to a fixed frame rate (like the " +"DXR3 or other decoder cards) the above does not work, because the video " +"cannot drift. Therefore we resample the audio stream to make it longer or " +"shorter to compensate the audio drift error. This does not work for digital " +"passthrough, where audio data is passed to an external decoder in digital " +"form." +msgstr "" + +#: src/xine-engine/audio_out.c:2070 +msgid "enable resampling" +msgstr "" + +#: src/xine-engine/audio_out.c:2071 +msgid "" +"When the sample rate of the decoded audio does not match the capabilities of " +"your sound hardware, an adaptation called \"resampling\" is required. Here " +"you can select, whether resampling is enabled, disabled or used " +"automatically when necessary." +msgstr "" + +#: src/xine-engine/audio_out.c:2078 +msgid "always resample to this rate (0 to disable)" +msgstr "" + +#: src/xine-engine/audio_out.c:2079 +msgid "" +"Some audio drivers do not correctly announce the capabilities of the audio " +"hardware. By setting a value other than zero here, you can force the audio " +"stream to be resampled to the given rate." +msgstr "" + +#: src/xine-engine/audio_out.c:2088 +msgid "offset for digital passthrough" +msgstr "" + +#: src/xine-engine/audio_out.c:2089 +msgid "" +"If you use an external surround decoder and audio is ahead or behind video, " +"you can enter a fixed offset here to compensate.\n" +"The unit of the value is one PTS tick, which is the 90000th part of a second." +msgstr "" + +#: src/xine-engine/audio_out.c:2098 +msgid "play audio even on slow/fast speeds" +msgstr "" + +#: src/xine-engine/audio_out.c:2099 +msgid "" +"If you enable this option, the audio will be heard even when playback speed " +"is different than 1X. Of course, it will sound distorted (lower/higher " +"pitch). If want to experiment preserving the pitch you may try the 'stretch' " +"audio post plugin instead." +msgstr "" + +#: src/xine-engine/audio_out.c:2170 +msgid "startup audio volume" +msgstr "" + +#: src/xine-engine/audio_out.c:2171 +msgid "The overall audio volume set at xine startup." +msgstr "" + +#: src/xine-engine/audio_out.c:2174 +msgid "restore volume level at startup" +msgstr "" + +#: src/xine-engine/audio_out.c:2175 +msgid "If disabled, xine will not modify any mixer settings at startup." +msgstr "" + +#: src/xine-engine/audio_out.c:2205 +msgid "audio_out: sorry, this should not happen. please restart xine.\n" +msgstr "" + +#: src/xine-engine/buffer.c:67 +#, c-format +msgid "xine-lib: buffer.c: There has been a fatal error: TOO MANY FREE's\n" +msgstr "" + +#: src/xine-engine/configfile.c:925 +#, c-format +msgid "The current config file has been modified by a newer version of xine." +msgstr "" + +#: src/xine-engine/configfile.c:1030 +#, c-format +msgid "configfile: WARNING: backing up configfile to %s failed\n" +msgstr "" + +#: src/xine-engine/configfile.c:1031 +msgid "configfile: WARNING: your configuration will not be saved\n" +msgstr "" + +#: src/xine-engine/configfile.c:1130 +#, c-format +msgid "configfile: WARNING: writing configuration to %s failed\n" +msgstr "" + +#: src/xine-engine/configfile.c:1131 +#, c-format +msgid "configfile: WARNING: removing possibly broken config file %s\n" +msgstr "" + +#: src/xine-engine/configfile.c:1132 +#, c-format +msgid "configfile: WARNING: you should check the backup file %s\n" +msgstr "" + +#: src/xine-engine/configfile.c:1267 +#, c-format +msgid "configfile: entry '%s' mustn't be modified from MRL\n" +msgstr "" + +#: src/xine-engine/info_helper.c:230 +msgid "info_helper: can't find out current locale character set\n" +msgstr "" + +#: src/xine-engine/info_helper.c:244 +#, c-format +msgid "" +"info_helper: unsupported conversion %s -> UTF-8, no conversion performed\n" +msgstr "" + +#: src/xine-engine/input_cache.c:171 +#, c-format +msgid ": open() function should never be called\n" +msgstr "" + +#: src/xine-engine/input_cache.c:353 +#, c-format +msgid ": input plugin not defined!\n" +msgstr "" + +#: src/xine-engine/input_rip.c:140 src/xine-engine/input_rip.c:260 +#, c-format +msgid "input_rip: reading of saved data failed: %s\n" +msgstr "" + +#: src/xine-engine/input_rip.c:155 +#, c-format +msgid "input_rip: reading by input plugin failed\n" +msgstr "" + +#: src/xine-engine/input_rip.c:163 src/xine-engine/input_rip.c:292 +#: src/xine-engine/input_rip.c:658 +#, c-format +msgid "input_rip: error writing to file % bytes: %s\n" +msgstr "" + +#: src/xine-engine/input_rip.c:184 +#, c-format +msgid "input_rip: open() function should never be called\n" +msgstr "" + +#: src/xine-engine/input_rip.c:315 src/xine-engine/input_rip.c:420 +#, c-format +msgid "input_rip: seeking failed\n" +msgstr "" + +#: src/xine-engine/input_rip.c:372 src/xine-engine/input_rip.c:390 +#, c-format +msgid "input_rip: seeking failed: %s\n" +msgstr "" + +#: src/xine-engine/input_rip.c:398 +#, c-format +msgid "input_rip: % bytes dropped\n" +msgstr "" + +#: src/xine-engine/input_rip.c:563 +#, c-format +msgid "input_rip: input plugin not defined!\n" +msgstr "" + +#: src/xine-engine/input_rip.c:569 +#, c-format +msgid "" +"input_rip: target directory wasn't specified, please fill out the option " +"'media.capture.save_dir'\n" +msgstr "" + +#: src/xine-engine/input_rip.c:571 +msgid "" +"The stream save feature is disabled until you set media.capture.save_dir in " +"the configuration." +msgstr "" + +#: src/xine-engine/input_rip.c:578 +#, c-format +msgid "input_rip: ripping/caching of this source is not permitted!\n" +msgstr "" + +#: src/xine-engine/input_rip.c:580 +msgid "" +"xine is not allowed to save from this source. (possibly copyrighted " +"material?)" +msgstr "" + +#: src/xine-engine/input_rip.c:586 +#, c-format +msgid "input_rip: file name not given!\n" +msgstr "" + +#: src/xine-engine/input_rip.c:628 +#, c-format +msgid "input_rip: error opening file %s: %s\n" +msgstr "" + +#: src/xine-engine/io_helper.c:252 +#, c-format +msgid "io_helper: waiting abandoned\n" +msgstr "" + +#: src/xine-engine/io_helper.c:259 +#, c-format +msgid "io_helper: waiting failed: %s\n" +msgstr "" + +#: src/xine-engine/io_helper.c:314 +msgid "failed to get status of socket" +msgstr "" + +#: src/xine-engine/io_helper.c:388 +#, c-format +msgid "io_helper: Permission denied\n" +msgstr "" + +#: src/xine-engine/io_helper.c:392 +#, c-format +msgid "io_helper: File not found\n" +msgstr "" + +#: src/xine-engine/io_helper.c:396 +#, c-format +msgid "io_helper: Connection Refused\n" +msgstr "" + +#: src/xine-engine/load_plugins.c:215 +#, c-format +msgid "map_decoder_list: no space for decoder, skipped.\n" +msgstr "" + +#: src/xine-engine/load_plugins.c:330 +#, c-format +msgid "" +"load_plugins: ignoring plugin %s, wrong iface version %d (should be %d)\n" +msgstr "" + +#: src/xine-engine/load_plugins.c:387 +#, c-format +msgid "priority for %s decoder" +msgstr "" + +#: src/xine-engine/load_plugins.c:398 +msgid "" +"The priority provides a ranking in case some media can be handled by more " +"than one decoder.\n" +"A priority of 0 enables the decoder's default priority." +msgstr "" + +#: src/xine-engine/load_plugins.c:426 +#, c-format +msgid "" +"load_plugins: demuxer plugin %s does not provide a priority, xine-lib will " +"use the default priority.\n" +msgstr "" + +#: src/xine-engine/load_plugins.c:443 +#, c-format +msgid "" +"load_plugins: input plugin %s does not provide a priority, xine-lib will use " +"the default priority.\n" +msgstr "" + +#: src/xine-engine/load_plugins.c:499 +#, c-format +msgid "load_plugins: plugin %s found\n" +msgstr "" + +#: src/xine-engine/load_plugins.c:502 +#, c-format +msgid "load_plugins: static plugin found\n" +msgstr "" + +#: src/xine-engine/load_plugins.c:509 +#, c-format +msgid "load_plugins: plugin limit reached, %s could not be loaded\n" +msgstr "" + +#: src/xine-engine/load_plugins.c:512 +#, c-format +msgid "load_plugins: plugin limit reached, static plugin could not be loaded\n" +msgstr "" + +#: src/xine-engine/load_plugins.c:529 +#, c-format +msgid "load_plugins: unknown plugin type %d in %s\n" +msgstr "" + +#: src/xine-engine/load_plugins.c:533 +#, c-format +msgid "load_plugins: unknown statically linked plugin type %d\n" +msgstr "" + +#: src/xine-engine/load_plugins.c:593 +#, c-format +msgid "load_plugins: unable to stat %s\n" +msgstr "" + +#: src/xine-engine/load_plugins.c:634 +#, c-format +msgid "" +"load_plugins: cannot open plugin lib %s:\n" +"%s\n" +msgstr "" + +#: src/xine-engine/load_plugins.c:649 +#, c-format +msgid "" +"load_plugins: can't get plugin info from %s:\n" +"%s\n" +msgstr "" + +#: src/xine-engine/load_plugins.c:667 +#, c-format +msgid "load_plugins: skipping unreadable plugin directory %s.\n" +msgstr "" + +#: src/xine-engine/load_plugins.c:716 +#, c-format +msgid "" +"load_plugins: cannot (stage 2) open plugin lib %s:\n" +"%s\n" +msgstr "" + +#: src/xine-engine/load_plugins.c:742 +#, c-format +msgid "load_plugins: Yikes! %s doesn't contain plugin info.\n" +msgstr "" + +#: src/xine-engine/load_plugins.c:1104 src/xine-engine/load_plugins.c:1113 +#, c-format +msgid "Unable to create %s directory: %s\n" +msgstr "" + +#: src/xine-engine/load_plugins.c:1345 +#, c-format +msgid "load_plugins: unknown content detection strategy %d\n" +msgstr "" + +#: src/xine-engine/load_plugins.c:1455 +#, c-format +msgid "load_plugins: using demuxer '%s'\n" +msgstr "" + +#: src/xine-engine/load_plugins.c:1766 +#, c-format +msgid "load_plugins: failed to load audio output plugin <%s>\n" +msgstr "" + +#: src/xine-engine/load_plugins.c:1769 +msgid "" +"load_plugins: audio output auto-probing didn't find any usable audio " +"driver.\n" +msgstr "" + +#: src/xine-engine/load_plugins.c:2073 +#, c-format +msgid "" +"load_plugins: cannot unload plugin lib %s:\n" +"%s\n" +msgstr "" + +#: src/xine-engine/osd.c:747 +#, c-format +msgid "font '%s-%d' already loaded, weird.\n" +msgstr "" + +#: src/xine-engine/osd.c:759 +#, c-format +msgid "font '%s' loading failed (%d < %d)\n" +msgstr "" + +#: src/xine-engine/osd.c:769 +#, c-format +msgid "wrong version for font '%s'. expected %d found %d.\n" +msgstr "" + +#: src/xine-engine/osd.c:856 +#, c-format +msgid "osd: error matching font %s with FontConfig" +msgstr "" + +#: src/xine-engine/osd.c:870 +#, c-format +msgid "osd: error loading font %s with FontConfig" +msgstr "" + +#: src/xine-engine/osd.c:874 +#, c-format +msgid "osd: error looking up font %s with FontConfig" +msgstr "" + +#: src/xine-engine/osd.c:914 +#, c-format +msgid "osd: error loading font %s with in XDG data directories.\n" +msgstr "" + +#: src/xine-engine/osd.c:923 +msgid "osd: cannot initialize ft2 library\n" +msgstr "" + +#: src/xine-engine/osd.c:945 +msgid "osd: error setting font size (no scalable font?)\n" +msgstr "" + +#: src/xine-engine/osd.c:1061 +#, c-format +msgid "" +"osd: unknown sequence starting with byte 0x%02X in encoding \"%s\", " +"skipping\n" +msgstr "" + +#: src/xine-engine/osd.c:1117 +msgid "osd: can't find out current locale character set\n" +msgstr "" + +#: src/xine-engine/osd.c:1127 +#, c-format +msgid "osd: unsupported conversion %s -> %s, no conversion performed\n" +msgstr "" + +#: src/xine-engine/osd.c:1182 src/xine-engine/osd.c:1350 +msgid "osd: font isn't defined\n" +msgstr "" + +#: src/xine-engine/osd.c:1221 +msgid "osd: error loading glyph\n" +msgstr "" + +#: src/xine-engine/osd.c:1227 +msgid "osd: error in rendering glyph\n" +msgstr "" + +#: src/xine-engine/osd.c:1387 +#, c-format +msgid "osd: error loading glyph %i\n" +msgstr "" + +#: src/xine-engine/osd.c:1394 +msgid "osd: error in rendering\n" +msgstr "" + +#: src/xine-engine/osd.c:1660 +msgid "palette (foreground-border-background) to use for subtitles and OSD" +msgstr "" + +#: src/xine-engine/osd.c:1661 +msgid "" +"The palette for on-screen-display and some subtitle formats that do not " +"specify any colouring themselves. The palettes are listed in the form: " +"foreground-border-background." +msgstr "" + +#: src/xine-engine/video_decoder.c:390 +#, c-format +msgid "video_decoder: no plugin available to handle '%s'\n" +msgstr "" + +#: src/xine-engine/video_decoder.c:469 +#, c-format +msgid "video_decoder: error, unknown buffer type: %08x\n" +msgstr "" + +#: src/xine-engine/video_decoder.c:505 +msgid "number of video buffers" +msgstr "" + +#: src/xine-engine/video_decoder.c:506 +msgid "" +"The number of video buffers (each is 8k in size) xine uses in its internal " +"queue. Higher values mean smoother playback for unreliable inputs, but also " +"increased latency and memory consumption." +msgstr "" + +#: src/xine-engine/video_out.c:671 +#, c-format +msgid "%d frames delivered, %d frames skipped, %d frames discarded\n" +msgstr "" + +#: src/xine-engine/video_out.c:844 +#, c-format +msgid "" +"video_out: throwing away image with pts % because it's too old " +"(diff : %).\n" +msgstr "" + +#: src/xine-engine/video_out.c:1863 +msgid "default number of video frames" +msgstr "" + +#: src/xine-engine/video_out.c:1864 +msgid "" +"The default number of video frames to request from xine video out driver. " +"Some drivers will override this setting with their own values." +msgstr "" + +#: src/xine-engine/video_out.c:1921 +msgid "percentage of skipped frames to tolerate" +msgstr "" + +#: src/xine-engine/video_out.c:1922 +msgid "" +"When more than this percentage of frames are not shown, because they were " +"not decoded in time, xine sends a notification." +msgstr "" + +#: src/xine-engine/video_out.c:1927 +msgid "percentage of discarded frames to tolerate" +msgstr "" + +#: src/xine-engine/video_out.c:1928 +msgid "" +"When more than this percentage of frames are not shown, because they were " +"not scheduled for display in time, xine sends a notification." +msgstr "" + +#: src/xine-engine/video_out.c:1965 +msgid "video_out: sorry, this should not happen. please restart xine.\n" +msgstr "" + +#: src/xine-engine/vo_scale.c:389 +msgid "horizontal image position in the output window" +msgstr "" + +#: src/xine-engine/vo_scale.c:390 +msgid "" +"If the video window's horizontal size is bigger than the actual image to " +"show, you can adjust the position where the image will be placed.\n" +"The position is given as a percentage, so a value of 50 means \"in the middle" +"\", while 0 means \"at the very left\" and 100 \"at the very right\"." +msgstr "" + +#: src/xine-engine/vo_scale.c:397 +msgid "vertical image position in the output window" +msgstr "" + +#: src/xine-engine/vo_scale.c:398 +msgid "" +"If the video window's vertical size is bigger than the actual image to show, " +"you can adjust the position where the image will be placed.\n" +"The position is given as a percentage, so a value of 50 means \"in the middle" +"\", while 0 means \"at the top\" and 100 \"at the bottom\"." +msgstr "" + +#: src/xine-engine/vo_scale.c:405 +msgid "disable all video scaling" +msgstr "" + +#: src/xine-engine/vo_scale.c:406 +msgid "" +"If you want the video image to be always shown at its original resolution, " +"you can disable all image scaling here.\n" +"This of course means that the image will no longer adapt to the size of the " +"video window and that videos with a pixel aspect ratio other than 1:1, like " +"anamorphic DVDs, will be shown distorted. But on the other hand, with some " +"video output drivers like XShm, where the image scaling is not hardware " +"accelerated, this can dramatically reduce CPU usage." +msgstr "" + +#: src/xine-engine/xine.c:771 src/xine-engine/xine.c:878 +#: src/xine-engine/xine.c:917 src/xine-engine/xine.c:953 +#: src/xine-engine/xine.c:965 src/xine-engine/xine.c:978 +#: src/xine-engine/xine.c:991 src/xine-engine/xine.c:1004 +#: src/xine-engine/xine.c:1030 src/xine-engine/xine.c:1055 +#: src/xine-engine/xine.c:1090 +msgid "xine: error while parsing mrl\n" +msgstr "" + +#: src/xine-engine/xine.c:807 +#, c-format +msgid "xine: found input plugin : %s\n" +msgstr "" + +#: src/xine-engine/xine.c:825 +#, c-format +msgid "xine: input plugin cannot open MRL [%s]\n" +msgstr "" + +#: src/xine-engine/xine.c:841 +#, c-format +msgid "xine: cannot find input plugin for MRL [%s]\n" +msgstr "" + +#: src/xine-engine/xine.c:867 +#, c-format +msgid "xine: specified demuxer %s failed to start\n" +msgstr "" + +#: src/xine-engine/xine.c:903 +#, c-format +msgid "xine: join rip input plugin\n" +msgstr "" + +#: src/xine-engine/xine.c:910 +msgid "xine: error opening rip input plugin instance\n" +msgstr "" + +#: src/xine-engine/xine.c:941 +#, c-format +msgid "xine: last_probed demuxer %s failed to start\n" +msgstr "" + +#: src/xine-engine/xine.c:970 +msgid "ignoring video\n" +msgstr "" + +#: src/xine-engine/xine.c:983 +msgid "ignoring audio\n" +msgstr "" + +#: src/xine-engine/xine.c:996 +msgid "ignoring subpicture\n" +msgstr "" + +#: src/xine-engine/xine.c:1009 +msgid "input cache plugin disabled\n" +msgstr "" + +#: src/xine-engine/xine.c:1080 +#, c-format +msgid "subtitle mrl opened '%s'\n" +msgstr "" + +#: src/xine-engine/xine.c:1084 +msgid "xine: error opening subtitle mrl\n" +msgstr "" + +#: src/xine-engine/xine.c:1116 +#, c-format +msgid "xine: error while parsing MRL\n" +msgstr "" + +#: src/xine-engine/xine.c:1123 +#, c-format +msgid "xine: changing option '%s' from MRL isn't permitted\n" +msgstr "" + +#: src/xine-engine/xine.c:1143 +#, c-format +msgid "xine: couldn't find demux for >%s<\n" +msgstr "" + +#: src/xine-engine/xine.c:1159 +#, c-format +msgid "xine: found demuxer plugin: %s\n" +msgstr "" + +#: src/xine-engine/xine.c:1179 +#, c-format +msgid "xine: demuxer failed to start\n" +msgstr "" + +#: src/xine-engine/xine.c:1244 +#, c-format +msgid "xine_play: no demux available\n" +msgstr "" + +#: src/xine-engine/xine.c:1314 +#, c-format +msgid "xine_play: demux failed to start\n" +msgstr "" + +#: src/xine-engine/xine.c:1592 +#, c-format +msgid "xine: The specified save_dir \"%s\" might be a security risk.\n" +msgstr "" + +#: src/xine-engine/xine.c:1597 +msgid "The specified save_dir might be a security risk." +msgstr "" + +#: src/xine-engine/xine.c:1626 +msgid "xine: locale not supported by C library\n" +msgstr "" + +#: src/xine-engine/xine.c:1635 +msgid "media format detection strategy" +msgstr "" + +#: src/xine-engine/xine.c:1636 +msgid "" +"xine offers various methods to detect the media format of input to play. The " +"individual values are:\n" +"\n" +"default\n" +"First try to detect by content, then by file name extension.\n" +"\n" +"reverse\n" +"First try to detect by file name extension, then by content.\n" +"\n" +"content\n" +"Detect by content only.\n" +"\n" +"extension\n" +"Detect by file name extension only.\n" +msgstr "" + +#: src/xine-engine/xine.c:1654 +msgid "directory for saving streams" +msgstr "" + +#: src/xine-engine/xine.c:1655 +msgid "" +"When using the stream save feature, files will be written only into this " +"directory.\n" +"This setting is security critical, because when changed to a different " +"directory, xine can be used to fill files in it with arbitrary content. So " +"you should be careful that the directory you specify is robust against any " +"content in any file." +msgstr "" + +#: src/xine-engine/xine.c:1666 +msgid "allow implicit changes to the configuration (e.g. by MRL)" +msgstr "" + +#: src/xine-engine/xine.c:1667 +msgid "" +"If enabled, you allow xine to change your configuration without explicit " +"actions from your side. For example configuration changes demanded by MRLs " +"or embedded into playlist will be executed.\n" +"This setting is security critcal, because xine can receive MRLs or playlists " +"from untrusted remote sources. If you allow them to arbitrarily change your " +"configuration, you might end with a totally messed up xine." +msgstr "" + +#: src/xine-engine/xine.c:1681 +msgid "Timeout for network stream reading (in seconds)" +msgstr "" + +#: src/xine-engine/xine.c:1682 +msgid "" +"Specifies the timeout when reading from network streams, in seconds. Too low " +"values might stop streaming when the source is slow or the bandwidth is " +"occupied, too high values will freeze the player if the connection is lost." +msgstr "" + +#: src/xine-engine/xine.c:2034 +msgid "messages" +msgstr "" + +#: src/xine-engine/xine.c:2035 +msgid "plugin" +msgstr "" + +#: src/xine-engine/xine.c:2036 +msgid "trace" +msgstr "" + +#: src/xine-engine/xine_interface.c:958 +msgid "Warning:" +msgstr "" + +#: src/xine-engine/xine_interface.c:959 +msgid "Unknown host:" +msgstr "" + +#: src/xine-engine/xine_interface.c:960 +msgid "Unknown device:" +msgstr "" + +#: src/xine-engine/xine_interface.c:961 +msgid "Network unreachable" +msgstr "" + +#: src/xine-engine/xine_interface.c:962 +msgid "Connection refused:" +msgstr "" + +#: src/xine-engine/xine_interface.c:963 +msgid "File not found:" +msgstr "" + +#: src/xine-engine/xine_interface.c:964 +msgid "Read error from:" +msgstr "" + +#: src/xine-engine/xine_interface.c:965 +msgid "Error loading library:" +msgstr "" + +#: src/xine-engine/xine_interface.c:966 +msgid "Encrypted media stream detected" +msgstr "" + +#: src/xine-engine/xine_interface.c:967 +msgid "Security message:" +msgstr "" + +#: src/xine-engine/xine_interface.c:968 +msgid "Audio device unavailable" +msgstr "" + +#: src/xine-engine/xine_interface.c:969 +msgid "Permission error" +msgstr "" + +#: src/xine-engine/xine_interface.c:970 +msgid "File is empty:" +msgstr "" + +#: src/xine-utils/memcpy.c:479 +msgid "memcopy method used by xine" +msgstr "" + +#: src/xine-utils/memcpy.c:480 +msgid "" +"The copying of large memory blocks is one of the most expensive operations " +"on todays computers. Therefore xine provides various tuned methods to do " +"this copying. Usually, the best method is detected automatically." +msgstr "" + +#: src/xine-utils/memcpy.c:507 +msgid "Benchmarking memcpy methods (smaller is better):\n" +msgstr "" diff --git a/version.sh b/version.sh index 2d9438379..37649ecda 100755 --- a/version.sh +++ b/version.sh @@ -6,32 +6,31 @@ # 3. Adjust the values of XINE_LT_CURRENT, XINE_LT_REVISION, and XINE_LT_AGE # according to the following rules: # -# If the interface is totally unchanged from the previous release, -# increment XINE_LT_REVISION by one. Otherwise: -# 1. XINE_LT_REVISION=0 -# 2. Increment XINE_LT_CURRENT by one. -# 3. If any interfaces have been ADDED since the last release, -# increment XINE_LT_AGE by one. If any interfaces have been -# REMOVED or incompatibly changed, XINE_LT_AGE=0 +# 1. Increment XINE_LT_REVISION. +# 2. If any interfaces have been added, removed, or changed, set +# XINE_LT_REVISION to 0 and increment XINE_LT_CURRENT. +# 3. If any interfaces have been added, increment XINE_LT_AGE. +# 4. If any interfaces have been removed or incompatibly changed, +# set XINE_LT_AGE to 0, and rename po/libxine*.pot accordingly +# (use "hg rename"). # -# Regarding libtool versioning, here are some details, but see the info page for -# libtool for the whole story. The most important thing to keep in mind is that -# the libtool version numbers DO NOT MATCH the xine-lib version numbers, and you -# should NEVER try to make them match. +# The most important thing to keep in mind is that the libtool version +# numbers DO NOT MATCH the xine-lib version numbers, and you should NEVER +# try to make them match. +# +# See the libtool documentation for more information. # # XINE_LT_CURRENT the current API version -# XINE_LT_REVISION an internal revision number that is increased when the -# API does not change in any way -# XINE_LT_AGE the number of previous API versions still supported by -# this version +# XINE_LT_REVISION the current revision of the current API +# XINE_LT_AGE the number of previous API versions still supported XINE_VERSION_MAJOR=1 XINE_VERSION_MINOR=1 XINE_VERSION_SUB=90 -XINE_LT_CURRENT=19 +XINE_LT_CURRENT=2 XINE_LT_REVISION=0 -XINE_LT_AGE=17 +XINE_LT_AGE=0 test -f "`dirname $0`/.cvsversion" && XINE_VERSION_SUFFIX="hg" XINE_VERSION_SPEC="${XINE_VERSION_MAJOR}.${XINE_VERSION_MINOR}.${XINE_VERSION_SUB}${XINE_VERSION_SUFFIX}" -- cgit v1.2.3 From 48cc4dc5d74fbda7bad6e8bdc34ac1e016935a20 Mon Sep 17 00:00:00 2001 From: Darren Salt Date: Sat, 2 Jun 2007 18:54:54 +0100 Subject: Make LIBNAME correspond to the soname. --- configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index dcf89eeec..794da2895 100644 --- a/configure.ac +++ b/configure.ac @@ -74,7 +74,7 @@ AC_SUBST(XINE_LT_REVISION) XINE_LT_AGE=__XINE_LT_AGE AC_SUBST(XINE_LT_AGE) -LIBNAME="libxine${XINE_MAJOR}" +LIBNAME="libxine$(($XINE_LT_CURRENT-$XINE_LT_AGE))" AC_SUBST(LIBNAME) AC_DEFINE_UNQUOTED([XINE_TEXTDOMAIN], "$LIBNAME", [catalog message text domain]) -- cgit v1.2.3 From a3caa5974f860b9702089c4ffea54e22f658fb49 Mon Sep 17 00:00:00 2001 From: Andrew de Quincey Date: Sun, 3 Jun 2007 02:43:07 +0100 Subject: [patch] Nasty mmap problem with huge files Hi, I've been tracking down a very odd bug this afternoon. As it turns out it is caused by enabling xine's mmap() support for the input_file.c. I'm running 32 bit linux 2.6.21. The file in question is 0x10e4da000 bytes long (you can probably guess what kind of bug this is by now :) Anyway, the issue stems from the definition of mmap(): void *mmap(void *start, size_t length, int prot, int flags, int fd, off_t offset); compare this to the definition of st_size in struct stat: off_t st_size; /* total size, in bytes */ On my machine (in input_file.c) sizeof(size_t) ==4, whilst sizeof(off_t) == 8. However the compiler doesn't generate a warning when the following is done in xine's code: if ( (this->mmap_base = mmap(NULL, sbuf.st_size, PROT_READ, MAP_SHARED, this->fh, 0)) != (void*)-1 So it silently truncates the upper part of the length. Obviously you cannot mmap() a file that large into (32 bit) memory anyway, but as it turns out, mmapping() 0xe4da000 succeeds, which causes... problems. The patch (against xine-lib 1.1.6) does two things: * Check that the length will not be truncated, while still allowing for mmap()s of large files under 64 bit OSes. * A correctness fix: if mmap() fails, this->mmap_base will be set to 0xffffffff. Later on when the file is closed, this means it was attempting to do munmap(0xffffffff). --- src/input/input_file.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/input/input_file.c b/src/input/input_file.c index fd2b0e733..d57eaacb9 100644 --- a/src/input/input_file.c +++ b/src/input/input_file.c @@ -359,6 +359,9 @@ static int file_plugin_open (input_plugin_t *this_gen ) { file_input_plugin_t *this = (file_input_plugin_t *) this_gen; char *filename; struct stat sbuf; +#ifdef HAVE_MMAP + size_t tmp_size; +#endif lprintf("file_plugin_open\n"); @@ -423,10 +426,14 @@ static int file_plugin_open (input_plugin_t *this_gen ) { } #ifdef HAVE_MMAP - if ( (this->mmap_base = mmap(NULL, sbuf.st_size, PROT_READ, MAP_SHARED, this->fh, 0)) != (void*)-1 ) { + tmp_size = sbuf.st_size; + if ((tmp_size == sbuf.st_size) && + ( (this->mmap_base = mmap(NULL, tmp_size, PROT_READ, MAP_SHARED, this->fh, 0)) != (void*)-1 )) { this->mmap_on = 1; this->mmap_curr = this->mmap_base; this->mmap_len = sbuf.st_size; + } else { + this->mmap_base = NULL; } #endif -- cgit v1.2.3 From f398c68b695ee3dad829d95a724573ca42926205 Mon Sep 17 00:00:00 2001 From: Darren Salt Date: Sun, 3 Jun 2007 03:01:31 +0100 Subject: Add a comment & changelog entry for the mmap bug fix. --- ChangeLog | 1 + src/input/input_file.c | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index a827947c7..ff67ebc56 100644 --- a/ChangeLog +++ b/ChangeLog @@ -20,6 +20,7 @@ xine-lib (1.1.7) (unreleased) also avoids an improper saturation. * Prioritize the musepack demuxer over mpgaudio, as sometimes the latter can misfire and report a good file as unplayable. + * Fix an mmap problem with huge files on 32-bit systems. xine-lib (1.1.6) * Split the DirectFB plugin into X11 and non-X versions. diff --git a/src/input/input_file.c b/src/input/input_file.c index d57eaacb9..c755a84a8 100644 --- a/src/input/input_file.c +++ b/src/input/input_file.c @@ -426,7 +426,7 @@ static int file_plugin_open (input_plugin_t *this_gen ) { } #ifdef HAVE_MMAP - tmp_size = sbuf.st_size; + tmp_size = sbuf.st_size; /* may cause truncation - if it does, DON'T mmap! */ if ((tmp_size == sbuf.st_size) && ( (this->mmap_base = mmap(NULL, tmp_size, PROT_READ, MAP_SHARED, this->fh, 0)) != (void*)-1 )) { this->mmap_on = 1; -- cgit v1.2.3 From e9864c1735402533e4ff7bdf3dca675b6d80bbef Mon Sep 17 00:00:00 2001 From: Riccardo Magliocchetti Date: Sun, 3 Jun 2007 03:10:46 +0100 Subject: [PATCH] remove uneeded %s from it translation --- po/it.po | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/po/it.po b/po/it.po index 51dfcbb6f..e629f9306 100644 --- a/po/it.po +++ b/po/it.po @@ -5336,9 +5336,9 @@ msgid "load_plugins: plugin %s found\n" msgstr "load_plugins: trovato plugin %s\n" #: src/xine-engine/load_plugins.c:499 -#, fuzzy, c-format +#, c-format msgid "load_plugins: static plugin found\n" -msgstr "load_plugins: trovato plugin statico %s\n" +msgstr "load_plugins: trovato plugin statico\n" #: src/xine-engine/load_plugins.c:506 #, c-format -- cgit v1.2.3 From 3e2ed6d0263c021644041ad3928ba4e7074360d7 Mon Sep 17 00:00:00 2001 From: Andrew de Quincey Date: Sun, 3 Jun 2007 17:47:19 +0100 Subject: [patch] Fix video pid misdetection Hi, the next bug that has been annoying me is as follows. I have some streams recorded from BBC4 on UK DVB-T. BBC4 only actually starts transmitting at about 7pm; prior to that there is a static picture saying it is not playing just now. With these streams and xine, I would get audio, but no picture. Looking at the PMT table during the static picture, all the streams have type 0x0b. However there IS a video stream in there, but there are also several streams of binary data. Xine's current video PID auto-detection code was locking on to one of these streams of binary data because it contained the magic sequence 00 00 01 e0 at one of the PUS. *HOWEVER* it is NOT a PES stream; this sequence is just an accident. The other problem is that xine can only handle one video stream; so once it was misdetected once, it was stuck at that PID. The attached patch changes the corrupted_pes flag into a counter. If a video stream has more than CORRUPT_PES_THRESHOLD corrupt PES packets in a row, then it is deselected as the video stream, and auto-detection is kicked off again. Auto-detection will now also ignore any streams seen previously which have a nonzero corrupted_pes count. This works very well; I can now see the video fine. One possible issue might be that if you get a lot of corrupt PES in a stream which really IS the video stream, it will be deselected. However, this is not actually a problem: once the corruption goes away, the corrupted_pes counter will be reset to 0, and the stream will once again be autodetected as the video stream (and playback will continue from there). --- src/demuxers/demux_ts.c | 41 +++++++++++++++++++++++++++++++---------- 1 file changed, 31 insertions(+), 10 deletions(-) diff --git a/src/demuxers/demux_ts.c b/src/demuxers/demux_ts.c index f2da5f268..57925deff 100644 --- a/src/demuxers/demux_ts.c +++ b/src/demuxers/demux_ts.c @@ -180,6 +180,8 @@ #define MAX_PES_BUF_SIZE 2048 +#define CORRUPT_PES_THRESHOLD 10 + #define NULL_PID 0x1fff #define INVALID_PID ((unsigned int)(-1)) #define INVALID_PROGRAM ((unsigned int)(-1)) @@ -913,12 +915,17 @@ static void demux_ts_buffer_pes(demux_ts_t*this, unsigned char *ts, m->buf = m->fifo->buffer_pool_alloc(m->fifo); if (!demux_ts_parse_pes_header(this->stream->xine, m, ts, len, this->stream)) { - m->corrupted_pes = 1; m->buf->free_buffer(m->buf); m->buf = NULL; - xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG, + + if (m->corrupted_pes > CORRUPT_PES_THRESHOLD) { + if (this->videoPid == m->pid) + this->videoPid = INVALID_PID; + } else { + m->corrupted_pes++; + xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG, "demux_ts: PID 0x%.4x: corrupted pes encountered\n", m->pid); - + } } else { m->corrupted_pes = 0; @@ -1784,13 +1791,27 @@ static void demux_ts_parse_packet (demux_ts_t*this) { if ( (pes_stream_id >= VIDEO_STREAM_S) && (pes_stream_id <= VIDEO_STREAM_E) ) { if ( this->videoPid == INVALID_PID) { - - xprintf (this->stream->xine, XINE_VERBOSITY_DEBUG, - "demux_ts: auto-detected video pid 0x%.4x\n", pid); - - this->videoPid = pid; - this->videoMedia = this->media_num; - demux_ts_pes_new(this, this->media_num++, pid, this->video_fifo, pes_stream_id); + int i, found = 0; + for(i = 0; i < this->media_num; i++) { + if (this->media[i].pid == pid) { + found = 1; + break; + } + } + + if (found && (this->media[i].corrupted_pes == 0)) { + this->videoPid = pid; + this->videoMedia = i; + } else if (!found) { + this->videoPid = pid; + this->videoMedia = this->media_num; + demux_ts_pes_new(this, this->media_num++, pid, this->video_fifo, pes_stream_id); + } + + if (this->videoPid != INVALID_PID) { + xprintf (this->stream->xine, XINE_VERBOSITY_DEBUG, + "demux_ts: auto-detected video pid 0x%.4x\n", pid); + } } } else if ( (pes_stream_id >= AUDIO_STREAM_S) && (pes_stream_id <= AUDIO_STREAM_E) ) { if (this->audio_tracks_count < MAX_AUDIO_TRACKS) { -- cgit v1.2.3 From f022bad42861429cac5c56c575b54819ba092b98 Mon Sep 17 00:00:00 2001 From: Darren Salt Date: Sun, 3 Jun 2007 18:06:50 +0100 Subject: Changelog entry for the MPEG PES change. --- ChangeLog | 2 ++ 1 file changed, 2 insertions(+) diff --git a/ChangeLog b/ChangeLog index ff67ebc56..30512e72f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -21,6 +21,8 @@ xine-lib (1.1.7) (unreleased) * Prioritize the musepack demuxer over mpgaudio, as sometimes the latter can misfire and report a good file as unplayable. * Fix an mmap problem with huge files on 32-bit systems. + * Improved MPEG PES stream handling: specifically, misdetection of data + streams as PES streams. xine-lib (1.1.6) * Split the DirectFB plugin into X11 and non-X versions. -- cgit v1.2.3 From b002c484a3d9a3288dc812252d17f9bb2d0e6b77 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Diego=20=27Flameeyes=27=20Petten=C3=B2?= Date: Sun, 3 Jun 2007 22:47:51 +0200 Subject: Update libmpcdec code to 1.2.6 version. --- ChangeLog | 2 +- contrib/libmpcdec/mpc_decoder.c | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index af103b697..3a1395109 100644 --- a/ChangeLog +++ b/ChangeLog @@ -8,7 +8,7 @@ xine-lib (1.1.90) (Unreleased) * Use FFmpeg's own buildsystem, rather than wrapping automake around its sources; this allows to enable/disable FFmpeg features easily, and allow to properly support --disable-ffmpeg-(uncommon|popular)-codecs. - * Update libmpcdec (formerly libmusepack) to version 1.2.5 (newer than the + * Update libmpcdec (formerly libmusepack) to version 1.2.6 (newer than the previous Subversion snapshot) and contestually move it to contrib/libmpcdec to separate from xine's own code. * Save plugins' cache in the defined cache home directory as per XDG Base diff --git a/contrib/libmpcdec/mpc_decoder.c b/contrib/libmpcdec/mpc_decoder.c index 0617869c8..a7b31c970 100644 --- a/contrib/libmpcdec/mpc_decoder.c +++ b/contrib/libmpcdec/mpc_decoder.c @@ -244,8 +244,8 @@ mpc_decoder_reset_globals(mpc_decoder *d) memset(d->Y_L , 0, sizeof d->Y_L ); memset(d->Y_R , 0, sizeof d->Y_R ); - memset(d->SCF_Index_L , 1, sizeof d->SCF_Index_L ); - memset(d->SCF_Index_R , 1, sizeof d->SCF_Index_R ); + memset(d->SCF_Index_L , 0, sizeof d->SCF_Index_L ); + memset(d->SCF_Index_R , 0, sizeof d->SCF_Index_R ); memset(d->Res_L , 0, sizeof d->Res_L ); memset(d->Res_R , 0, sizeof d->Res_R ); memset(d->SCFI_L , 0, sizeof d->SCFI_L ); @@ -1185,7 +1185,7 @@ mpc_bool_t mpc_decoder_initialize(mpc_decoder *d, mpc_streaminfo *si) mpc_decoder_seek(d, get_initial_fpos(d)); d->seeking_pwr = 0; - while (d->OverallFrames > (SEEKING_TABLE_SIZE << d->seeking_pwr)) + while( d->OverallFrames > ((mpc_int64_t) SEEKING_TABLE_SIZE << d->seeking_pwr) ) d->seeking_pwr++; d->seeking_table_frames = 0; d->seeking_table[0] = get_initial_fpos(d); -- cgit v1.2.3 From 22dd2d33da401a9d876725fbe36e86552aa16fb7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Diego=20=27Flameeyes=27=20Petten=C3=B2?= Date: Mon, 4 Jun 2007 13:16:48 +0200 Subject: Remove redundant nested #ifdef __svr4__. --- src/audio_out/audio_sun_out.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/audio_out/audio_sun_out.c b/src/audio_out/audio_sun_out.c index 5923eb658..486c06342 100644 --- a/src/audio_out/audio_sun_out.c +++ b/src/audio_out/audio_sun_out.c @@ -248,13 +248,11 @@ static int realtime_samplecounter_available(xine_t *xine, char *dev) error: if (silence != NULL) free(silence); if (fd >= 0) { -#ifdef __svr4__ /* * remove the 0 bytes from the above measurement from the * audio driver's STREAMS queue */ ioctl(fd, I_FLUSH, FLUSHW); -#endif close(fd); } -- cgit v1.2.3 From 4bc3f24d3a85f682707851e6865a2c890c326c2c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Diego=20=27Flameeyes=27=20Petten=C3=B2?= Date: Mon, 4 Jun 2007 13:19:00 +0200 Subject: Mark audiocs_rates static and const. --- src/audio_out/audio_sun_out.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/audio_out/audio_sun_out.c b/src/audio_out/audio_sun_out.c index 486c06342..ca91a8fe6 100644 --- a/src/audio_out/audio_sun_out.c +++ b/src/audio_out/audio_sun_out.c @@ -332,7 +332,7 @@ find_close_samplerate_match(int dev, int sample_rate) #else int i, err; - int audiocs_rates[] = { + static const int audiocs_rates[] = { 5510, 6620, 8000, 9600, 11025, 16000, 18900, 22050, 27420, 32000, 33075, 37800, 44100, 48000, 0 }; -- cgit v1.2.3 From a3571c71d767bd68f7245a46dae1d8f04a91eff9 Mon Sep 17 00:00:00 2001 From: Matthias Kretz Date: Mon, 4 Jun 2007 21:18:49 +0200 Subject: pending a real fix --enable-debug for libxine does not enable debugging options for ffmpeg for now --- contrib/Makefile.am | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/contrib/Makefile.am b/contrib/Makefile.am index 76b63d100..5f26fd25c 100644 --- a/contrib/Makefile.am +++ b/contrib/Makefile.am @@ -52,16 +52,19 @@ configure_options =\ --disable-shared --enable-static --disable-demuxers --disable-muxers --disable-strip \ --enable-gpl --enable-pthreads --disable-ffmpeg --disable-ffserver --disable-ffplay -if DEBUG_BUILD -configure_options += --enable-debug -else +# --enable-debug --disable-opts breaks the build of ffmpeg on x86: +# i386/mpegvideo_mmx_template.c:108: error: can't find a register in class ‘GENERAL_REGS’ while reloading ‘asm’ +# pending a real fix --enable-debug for libxine does not enable debugging options for ffmpeg for now +#if DEBUG_BUILD +#configure_options += --enable-debug +#else configure_options += --disable-debug -endif +#endif if PROFILING_BUILD configure_options += --enable-gprof endif if DISABLE_OPTIMIZATIONS -configure_options += --disable-opts +#configure_options += --disable-opts endif if HAVE_MLIB configure_options += --enable-sunmlib -- cgit v1.2.3 From 24b7171dff5bdbb05dd7ab343e718814aaba9186 Mon Sep 17 00:00:00 2001 From: Matthias Kretz Date: Mon, 4 Jun 2007 21:18:49 +0200 Subject: handle unplugged devices in audio_alsa_out (return -1) and in audio_out close the driver on a return value <0 --- src/audio_out/audio_alsa_out.c | 12 +++++++++--- src/xine-engine/audio_out.c | 16 +++++++++------- 2 files changed, 18 insertions(+), 10 deletions(-) diff --git a/src/audio_out/audio_alsa_out.c b/src/audio_out/audio_alsa_out.c index 6ad78da2a..ce3e7fb2b 100644 --- a/src/audio_out/audio_alsa_out.c +++ b/src/audio_out/audio_alsa_out.c @@ -752,6 +752,9 @@ static int ao_alsa_write(ao_driver_t *this_gen, int16_t *data, uint32_t count) { if (res < 0) return 0; state = snd_pcm_state(this->audio_fd); + } else if (state == SND_PCM_STATE_DISCONNECTED) { + /* the device is gone. audio_out.c handles it if we return something < 0 */ + return -1; } if (state == SND_PCM_STATE_XRUN) { #ifdef LOG_DEBUG @@ -784,11 +787,11 @@ static int ao_alsa_write(ao_driver_t *this_gen, int16_t *data, uint32_t count) { #endif snd_pcm_status(this->audio_fd, pcm_stat); if ( snd_pcm_status_get_avail(pcm_stat) < number_of_frames) { - wait_result = snd_pcm_wait(this->audio_fd, 1000000); + wait_result = snd_pcm_wait(this->audio_fd, 1000); #ifdef LOG_DEBUG printf("audio_alsa_out:write:loop:wait_result=%d\n",wait_result); #endif - if (wait_result < 0) return 0; + if (wait_result <= 0) return 0; } } if (this->mmap != 0) { @@ -808,7 +811,10 @@ static int ao_alsa_write(ao_driver_t *this_gen, int16_t *data, uint32_t count) { return 0; continue; } - if ( (state != SND_PCM_STATE_PREPARED) && + if (state == SND_PCM_STATE_DISCONNECTED) { + /* the device is gone. audio_out.c handles it if we return something < 0 */ + return -1; + } else if ( (state != SND_PCM_STATE_PREPARED) && (state != SND_PCM_STATE_RUNNING) && (state != SND_PCM_STATE_DRAINING) ) { xprintf(this->class->xine, XINE_VERBOSITY_DEBUG, diff --git a/src/xine-engine/audio_out.c b/src/xine-engine/audio_out.c index 66e28d80d..2655d495a 100644 --- a/src/xine-engine/audio_out.c +++ b/src/xine-engine/audio_out.c @@ -1211,13 +1211,15 @@ static void *ao_loop (void *this_gen) { } if( result < 0 ) { - /* FIXME: USB device unplugged. - * We should get the card into a closed state here, that involves closing - * the PCM as well as the MIXER. - * Maybe we should pause the stream until the USB device is plugged in again. - * Return values 0 happen even if usb not unplugged, so needs further investigation. - */ - xprintf(this->xine, XINE_VERBOSITY_LOG, _("write to sound card failed. Was a USB device unplugged ?\n")); + /* device unplugged. */ + xprintf(this->xine, XINE_VERBOSITY_LOG, _("write to sound card failed. Assuming the device was unplugged.\n")); + + pthread_mutex_lock( &this->driver_lock ); + if(this->driver_open) + this->driver->close(this->driver); + this->driver_open = 0; + pthread_mutex_unlock( &this->driver_lock ); + /* closing the driver will result in XINE_MSG_AUDIO_OUT_UNAVAILABLE to be emitted */ } lprintf ("loop: next buf from fifo\n"); -- cgit v1.2.3 From 6d72cf30f29689035eddbe95d35fd39fcf5d70ca Mon Sep 17 00:00:00 2001 From: Matthias Kretz Date: Mon, 4 Jun 2007 21:18:49 +0200 Subject: fallback to none output when the device is unplugged --- src/xine-engine/audio_out.c | 18 +++++++++++++++--- src/xine-engine/load_plugins.c | 32 ++++++++++++++++++++++++++++++++ src/xine-engine/xine_internal.h | 2 +- 3 files changed, 48 insertions(+), 4 deletions(-) diff --git a/src/xine-engine/audio_out.c b/src/xine-engine/audio_out.c index 2655d495a..75cef4ce6 100644 --- a/src/xine-engine/audio_out.c +++ b/src/xine-engine/audio_out.c @@ -1213,11 +1213,23 @@ static void *ao_loop (void *this_gen) { if( result < 0 ) { /* device unplugged. */ xprintf(this->xine, XINE_VERBOSITY_LOG, _("write to sound card failed. Assuming the device was unplugged.\n")); + _x_message (in_buf->stream, XINE_MSG_AUDIO_OUT_UNAVAILABLE, NULL); pthread_mutex_lock( &this->driver_lock ); - if(this->driver_open) - this->driver->close(this->driver); - this->driver_open = 0; + if(this->driver_open) { + this->driver->close(this->driver); + this->driver_open = 0; + this->driver->exit(this->driver); + this->driver = _x_load_audio_output_plugin (this->xine, "none"); + if (this->driver && !in_buf->stream->emergency_brake && + ao_change_settings(this, + in_buf->format.bits, + in_buf->format.rate, + in_buf->format.mode) == 0) { + in_buf->stream->emergency_brake = 1; + _x_message (in_buf->stream, XINE_MSG_AUDIO_OUT_UNAVAILABLE, NULL); + } + } pthread_mutex_unlock( &this->driver_lock ); /* closing the driver will result in XINE_MSG_AUDIO_OUT_UNAVAILABLE to be emitted */ } diff --git a/src/xine-engine/load_plugins.c b/src/xine-engine/load_plugins.c index ca1f87c7a..750ec21e7 100644 --- a/src/xine-engine/load_plugins.c +++ b/src/xine-engine/load_plugins.c @@ -1721,6 +1721,38 @@ static ao_driver_t *_load_audio_driver (xine_t *this, plugin_node_t *node, return driver; } +ao_driver_t *_x_load_audio_output_plugin (xine_t *this, const char *id) +{ + plugin_node_t *node; + ao_driver_t *driver = NULL; + ao_info_t *ao_info; + plugin_catalog_t *catalog = this->plugin_catalog; + int list_id, list_size; + + pthread_mutex_lock (&catalog->lock); + + list_size = xine_sarray_size (this->plugin_catalog->plugin_lists[PLUGIN_AUDIO_OUT - 1]); + for (list_id = 0; list_id < list_size; list_id++) { + + node = xine_sarray_get (this->plugin_catalog->plugin_lists[PLUGIN_AUDIO_OUT - 1], list_id); + + ao_info = (ao_info_t *)node->info->special_info; + + if (!strcasecmp(node->info->id, id)) { + driver = _load_audio_driver (this, node, NULL); + break; + } + } + + pthread_mutex_unlock (&catalog->lock); + + if (!driver) { + xprintf (this, XINE_VERBOSITY_LOG, + _("load_plugins: failed to load audio output plugin <%s>\n"), id); + } + return driver; +} + xine_audio_port_t *xine_open_audio_driver (xine_t *this, const char *id, void *data) { diff --git a/src/xine-engine/xine_internal.h b/src/xine-engine/xine_internal.h index 208ef7647..fc142d44b 100644 --- a/src/xine-engine/xine_internal.h +++ b/src/xine-engine/xine_internal.h @@ -500,7 +500,7 @@ vo_driver_t *_x_load_video_output_plugin(xine_t *this, * load a specific audio output plugin */ -ao_driver_t *_x_load_audio_output_plugin (xine_t *self, char *id) XINE_PROTECTED; +ao_driver_t *_x_load_audio_output_plugin (xine_t *self, const char *id) XINE_PROTECTED; void _x_set_speed (xine_stream_t *stream, int speed) XINE_PROTECTED; -- cgit v1.2.3 From 7fc8916e6231e4cd7ed55c0fc7423f1ff705e497 Mon Sep 17 00:00:00 2001 From: Matthias Kretz Date: Mon, 4 Jun 2007 23:30:16 +0200 Subject: handle unplugged devices in audio_alsa_out (return -1) and in audio_out close the driver on a return value <0 --- src/audio_out/audio_alsa_out.c | 12 +++++++++--- src/xine-engine/audio_out.c | 16 +++++++++------- 2 files changed, 18 insertions(+), 10 deletions(-) diff --git a/src/audio_out/audio_alsa_out.c b/src/audio_out/audio_alsa_out.c index 6ad78da2a..ce3e7fb2b 100644 --- a/src/audio_out/audio_alsa_out.c +++ b/src/audio_out/audio_alsa_out.c @@ -752,6 +752,9 @@ static int ao_alsa_write(ao_driver_t *this_gen, int16_t *data, uint32_t count) { if (res < 0) return 0; state = snd_pcm_state(this->audio_fd); + } else if (state == SND_PCM_STATE_DISCONNECTED) { + /* the device is gone. audio_out.c handles it if we return something < 0 */ + return -1; } if (state == SND_PCM_STATE_XRUN) { #ifdef LOG_DEBUG @@ -784,11 +787,11 @@ static int ao_alsa_write(ao_driver_t *this_gen, int16_t *data, uint32_t count) { #endif snd_pcm_status(this->audio_fd, pcm_stat); if ( snd_pcm_status_get_avail(pcm_stat) < number_of_frames) { - wait_result = snd_pcm_wait(this->audio_fd, 1000000); + wait_result = snd_pcm_wait(this->audio_fd, 1000); #ifdef LOG_DEBUG printf("audio_alsa_out:write:loop:wait_result=%d\n",wait_result); #endif - if (wait_result < 0) return 0; + if (wait_result <= 0) return 0; } } if (this->mmap != 0) { @@ -808,7 +811,10 @@ static int ao_alsa_write(ao_driver_t *this_gen, int16_t *data, uint32_t count) { return 0; continue; } - if ( (state != SND_PCM_STATE_PREPARED) && + if (state == SND_PCM_STATE_DISCONNECTED) { + /* the device is gone. audio_out.c handles it if we return something < 0 */ + return -1; + } else if ( (state != SND_PCM_STATE_PREPARED) && (state != SND_PCM_STATE_RUNNING) && (state != SND_PCM_STATE_DRAINING) ) { xprintf(this->class->xine, XINE_VERBOSITY_DEBUG, diff --git a/src/xine-engine/audio_out.c b/src/xine-engine/audio_out.c index d39c99aba..fddae2dfe 100644 --- a/src/xine-engine/audio_out.c +++ b/src/xine-engine/audio_out.c @@ -1211,13 +1211,15 @@ static void *ao_loop (void *this_gen) { } if( result < 0 ) { - /* FIXME: USB device unplugged. - * We should get the card into a closed state here, that involves closing - * the PCM as well as the MIXER. - * Maybe we should pause the stream until the USB device is plugged in again. - * Return values 0 happen even if usb not unplugged, so needs further investigation. - */ - xprintf(this->xine, XINE_VERBOSITY_LOG, _("write to sound card failed. Was a USB device unplugged ?\n")); + /* device unplugged. */ + xprintf(this->xine, XINE_VERBOSITY_LOG, _("write to sound card failed. Assuming the device was unplugged.\n")); + + pthread_mutex_lock( &this->driver_lock ); + if(this->driver_open) + this->driver->close(this->driver); + this->driver_open = 0; + pthread_mutex_unlock( &this->driver_lock ); + /* closing the driver will result in XINE_MSG_AUDIO_OUT_UNAVAILABLE to be emitted */ } lprintf ("loop: next buf from fifo\n"); -- cgit v1.2.3 From d121d898bd4a4061cb95162ecb886bd4d8d2e79b Mon Sep 17 00:00:00 2001 From: Matthias Kretz Date: Mon, 4 Jun 2007 23:30:47 +0200 Subject: fallback to none output when the device is unplugged --- src/xine-engine/audio_out.c | 18 +++++++++++++++--- src/xine-engine/load_plugins.c | 32 ++++++++++++++++++++++++++++++++ src/xine-engine/xine_internal.h | 2 +- 3 files changed, 48 insertions(+), 4 deletions(-) diff --git a/src/xine-engine/audio_out.c b/src/xine-engine/audio_out.c index fddae2dfe..6f5351986 100644 --- a/src/xine-engine/audio_out.c +++ b/src/xine-engine/audio_out.c @@ -1213,11 +1213,23 @@ static void *ao_loop (void *this_gen) { if( result < 0 ) { /* device unplugged. */ xprintf(this->xine, XINE_VERBOSITY_LOG, _("write to sound card failed. Assuming the device was unplugged.\n")); + _x_message (in_buf->stream, XINE_MSG_AUDIO_OUT_UNAVAILABLE, NULL); pthread_mutex_lock( &this->driver_lock ); - if(this->driver_open) - this->driver->close(this->driver); - this->driver_open = 0; + if(this->driver_open) { + this->driver->close(this->driver); + this->driver_open = 0; + this->driver->exit(this->driver); + this->driver = _x_load_audio_output_plugin (this->xine, "none"); + if (this->driver && !in_buf->stream->emergency_brake && + ao_change_settings(this, + in_buf->format.bits, + in_buf->format.rate, + in_buf->format.mode) == 0) { + in_buf->stream->emergency_brake = 1; + _x_message (in_buf->stream, XINE_MSG_AUDIO_OUT_UNAVAILABLE, NULL); + } + } pthread_mutex_unlock( &this->driver_lock ); /* closing the driver will result in XINE_MSG_AUDIO_OUT_UNAVAILABLE to be emitted */ } diff --git a/src/xine-engine/load_plugins.c b/src/xine-engine/load_plugins.c index c72241487..912455b18 100644 --- a/src/xine-engine/load_plugins.c +++ b/src/xine-engine/load_plugins.c @@ -1681,6 +1681,38 @@ static ao_driver_t *_load_audio_driver (xine_t *this, plugin_node_t *node, return driver; } +ao_driver_t *_x_load_audio_output_plugin (xine_t *this, const char *id) +{ + plugin_node_t *node; + ao_driver_t *driver = NULL; + ao_info_t *ao_info; + plugin_catalog_t *catalog = this->plugin_catalog; + int list_id, list_size; + + pthread_mutex_lock (&catalog->lock); + + list_size = xine_sarray_size (this->plugin_catalog->plugin_lists[PLUGIN_AUDIO_OUT - 1]); + for (list_id = 0; list_id < list_size; list_id++) { + + node = xine_sarray_get (this->plugin_catalog->plugin_lists[PLUGIN_AUDIO_OUT - 1], list_id); + + ao_info = (ao_info_t *)node->info->special_info; + + if (!strcasecmp(node->info->id, id)) { + driver = _load_audio_driver (this, node, NULL); + break; + } + } + + pthread_mutex_unlock (&catalog->lock); + + if (!driver) { + xprintf (this, XINE_VERBOSITY_LOG, + _("load_plugins: failed to load audio output plugin <%s>\n"), id); + } + return driver; +} + xine_audio_port_t *xine_open_audio_driver (xine_t *this, const char *id, void *data) { diff --git a/src/xine-engine/xine_internal.h b/src/xine-engine/xine_internal.h index c88bcc904..8230dfb13 100644 --- a/src/xine-engine/xine_internal.h +++ b/src/xine-engine/xine_internal.h @@ -484,7 +484,7 @@ vo_driver_t *_x_load_video_output_plugin(xine_t *this, * load a specific audio output plugin */ -ao_driver_t *_x_load_audio_output_plugin (xine_t *self, char *id) XINE_PROTECTED; +ao_driver_t *_x_load_audio_output_plugin (xine_t *self, const char *id) XINE_PROTECTED; void _x_set_speed (xine_stream_t *stream, int speed) XINE_PROTECTED; -- cgit v1.2.3 From 3027b1d5c75d20c38af0d7df33a0d3cd514f93dc Mon Sep 17 00:00:00 2001 From: Matthias Kretz Date: Mon, 4 Jun 2007 23:32:48 +0200 Subject: Changelog entry for the unplug code --- ChangeLog | 2 ++ 1 file changed, 2 insertions(+) diff --git a/ChangeLog b/ChangeLog index 30512e72f..d7c039d4b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -23,6 +23,8 @@ xine-lib (1.1.7) (unreleased) * Fix an mmap problem with huge files on 32-bit systems. * Improved MPEG PES stream handling: specifically, misdetection of data streams as PES streams. + * Handle unplugged ALSA device (fixes crashes) and if the frontend does not + handle the event continue playback to the none output. xine-lib (1.1.6) * Split the DirectFB plugin into X11 and non-X versions. -- cgit v1.2.3 From 71f48c6e91419fc7161f8a75fbaebd2adc58ed77 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Diego=20=27Flameeyes=27=20Petten=C3=B2?= Date: Tue, 5 Jun 2007 20:28:08 +0200 Subject: Use XINE_PACKED rather than __attribute__((__packed__)). --- src/demuxers/demux_tta.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/demuxers/demux_tta.c b/src/demuxers/demux_tta.c index 724404a5b..4d53c5d3f 100644 --- a/src/demuxers/demux_tta.c +++ b/src/demuxers/demux_tta.c @@ -32,6 +32,7 @@ #include "buffer.h" #include "bswap.h" #include "group_audio.h" +#include "attributes.h" typedef struct { demux_plugin_t demux_plugin; @@ -56,7 +57,7 @@ typedef struct { uint32_t samplerate; uint32_t data_length; uint32_t crc32; - } __attribute__((__packed__)) tta; + } XINE_PACKED tta; uint8_t buffer[22]; /* This is the size of the header */ } header; } demux_tta_t; -- cgit v1.2.3 From f29569da381605fa75dd7dfc780de0c8a2c44740 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Diego=20=27Flameeyes=27=20Petten=C3=B2?= Date: Tue, 5 Jun 2007 20:37:47 +0200 Subject: Disable aRTs output plugin by default, it's deprecated and will be removed in 1.2 series. --- ChangeLog | 2 ++ configure.ac | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index d7c039d4b..5f9b47ecd 100644 --- a/ChangeLog +++ b/ChangeLog @@ -25,6 +25,8 @@ xine-lib (1.1.7) (unreleased) streams as PES streams. * Handle unplugged ALSA device (fixes crashes) and if the frontend does not handle the event continue playback to the none output. + * Disable aRTs output plugin by default, it's deprecated and will be removed + in 1.2 series. xine-lib (1.1.6) * Split the DirectFB plugin into X11 and non-X versions. diff --git a/configure.ac b/configure.ac index a80f12aab..c57677b72 100644 --- a/configure.ac +++ b/configure.ac @@ -1488,8 +1488,8 @@ dnl ARTS support dnl --------------------------------------------- AC_ARG_WITH([arts], - AS_HELP_STRING([--without-arts], [Build without ARTS audio output]), - [with_arts=$withval], [with_arts=yes]) + AS_HELP_STRING([--with-arts], [Build with ARTS audio output]), + [with_arts=$withval], [with_arts=no]) if test "x$with_arts" = "xyes"; then AM_PATH_ARTS(0.9.5, -- cgit v1.2.3 From f587fe0e84650b5731f9fd81b1acf0f62e670e84 Mon Sep 17 00:00:00 2001 From: Darren Salt Date: Tue, 5 Jun 2007 19:45:56 +0100 Subject: Silence an ignored error when running "debuild clean". --- debian/rules | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/debian/rules b/debian/rules index 395b983e0..e89896255 100755 --- a/debian/rules +++ b/debian/rules @@ -100,7 +100,7 @@ clean: -$(MAKE) distclean # remove more cruft leftover by autohell rm -f doc/faq/faq.html doc/faq/faq.txt doc/hackersguide/hackersguide.html m4/caca.m4 - -test -f .noauto || find . -name Makefile.in -print | xargs rm + -test -f .noauto || find . -name Makefile.in -print | xargs -r rm test -f .noauto || rm -rf compile config.guess configure depcomp install-sh ltmain.sh missing aclocal.m4 config.h.in dh_clean -- cgit v1.2.3 From 6f430a25e9cd653fdb6995ae4e427ea6be0d8c3a Mon Sep 17 00:00:00 2001 From: Steve Freeland Date: Wed, 6 Jun 2007 00:39:12 +0100 Subject: [PATCH] video_out_fb crash I discovered some problems with the framebuffer output driver. The first problem I had was a segfault when trying to play a 480x360 clip on a 640x480 display. I traced it to the yuv420_rgb16() color conversion function, which was overrunning the input buffer (the "y" part of the image). The reason was that it was being called downstack from fb_frame_proc_slice(), multiple times for each 16-pixel high horizontal slice of the image. When it got to the last slice, only 8 pixels were left to the bottom but it still tried to process a 16-pixel high slice. Nosing around a bit, I compared the configuration of the color converter as used by the fb driver to the xshm driver and found some oddities: 1) The color converter was configured with a "source height" of 16 pixels no matter what the size of the image, and a "dest height" based on what was referred to within video_out_fb.c as a "stripe" -- essentially an input slice scaled up or down as required by the output size. 2) Apparently to prevent the above from causing problems, the position in the output buffer was managed by special code -- see the "stripe_incr" variable. 3) The xshm driver calls yuv2rgb_next_slice() with a NULL argument at the beginning of each frame to allow the color converter to reset its tracking of the slice-by-slice progress through the image; the fb driver does not. I'm not sure exactly why it was done that way, but my best guess would be that whoever coded it didn't know about the need to call yuv2rgb_next_slice() with a NULL argument, and the rest was built up to get it to mostly work without that. The attached patch changes the behaviour to match that of the xshm driver, and also removes the reset_dest_pointers() function, replacing its single invocation with one to fb_frame_field(), which is identical after removing the "stripe" management. It fixed my crash. Can anyone see if I've misunderstood what was going on? If not, it should probably be applied to the official version. --- src/video_out/video_out_fb.c | 44 ++++++-------------------------------------- 1 file changed, 6 insertions(+), 38 deletions(-) diff --git a/src/video_out/video_out_fb.c b/src/video_out/video_out_fb.c index e88def112..3c53adf4d 100644 --- a/src/video_out/video_out_fb.c +++ b/src/video_out/video_out_fb.c @@ -99,7 +99,6 @@ typedef struct fb_frame_s yuv2rgb_t *yuv2rgb; /* yuv2rgb converter for this frame */ uint8_t *rgb_dst; int yuv_stride; - int stripe_height, stripe_inc; int bytes_per_line; @@ -182,7 +181,6 @@ static void fb_frame_proc_slice(vo_frame_t *vo_img, uint8_t **src) else frame->yuv2rgb->yuy22rgb_fun(frame->yuv2rgb, frame->rgb_dst, src[0]); - frame->rgb_dst += frame->stripe_inc; } static void fb_frame_field(vo_frame_t *vo_img, int which_field) @@ -193,21 +191,18 @@ static void fb_frame_field(vo_frame_t *vo_img, int which_field) { case VO_TOP_FIELD: frame->rgb_dst = frame->data; - frame->stripe_inc = 2*frame->stripe_height * - frame->bytes_per_line; break; case VO_BOTTOM_FIELD: frame->rgb_dst = frame->data + frame->bytes_per_line ; - frame->stripe_inc = 2*frame->stripe_height * - frame->bytes_per_line; break; case VO_BOTH_FIELDS: frame->rgb_dst = frame->data; break; } + frame->yuv2rgb->next_slice (frame->yuv2rgb, NULL); } static void fb_frame_dispose(vo_frame_t *vo_img) @@ -304,11 +299,11 @@ static void setup_colorspace_converter(fb_frame_t *frame, int flags) frame->yuv2rgb-> configure(frame->yuv2rgb, frame->sc.delivered_width, - 16, + frame->sc.delivered_height, 2 * frame->vo_frame.pitches[0], 2 * frame->vo_frame.pitches[1], frame->sc.output_width, - frame->stripe_height, + frame->sc.output_height, frame->bytes_per_line * 2); frame->yuv_stride = frame->bytes_per_line * 2; break; @@ -317,42 +312,17 @@ static void setup_colorspace_converter(fb_frame_t *frame, int flags) frame->yuv2rgb-> configure(frame->yuv2rgb, frame->sc.delivered_width, - 16, + frame->sc.delivered_height, frame->vo_frame.pitches[0], frame->vo_frame.pitches[1], frame->sc.output_width, - frame->stripe_height, + frame->sc.output_height, frame->bytes_per_line); frame->yuv_stride = frame->bytes_per_line; break; } } -static void reset_dest_pointers(fb_frame_t *frame, int flags) -{ - switch(flags) - { - case VO_TOP_FIELD: - frame->rgb_dst = frame->data; - frame->stripe_inc = 2 * frame->stripe_height * - frame->bytes_per_line; - break; - - case VO_BOTTOM_FIELD: - frame->rgb_dst = frame->data + - frame->bytes_per_line ; - frame->stripe_inc = 2 * frame->stripe_height * - frame->bytes_per_line; - break; - - case VO_BOTH_FIELDS: - frame->rgb_dst = frame->data; - frame->stripe_inc = frame->stripe_height * - frame->bytes_per_line; - break; - } -} - static void frame_reallocate(fb_driver_t *this, fb_frame_t *frame, uint32_t width, uint32_t height, int format) { @@ -457,8 +427,6 @@ static void fb_update_frame_format(vo_driver_t *this_gen, frame_reallocate(this, frame, width, height, format); - frame->stripe_height = 16 * frame->sc.output_height / - frame->sc.delivered_height; if(this->use_zero_copy) frame->bytes_per_line = this->fb_bytes_per_line; else @@ -468,7 +436,7 @@ static void fb_update_frame_format(vo_driver_t *this_gen, setup_colorspace_converter(frame, flags); } - reset_dest_pointers(frame, flags); + fb_frame_field(frame_gen, flags); } static void fb_overlay_clut_yuv2rgb(fb_driver_t *this, -- cgit v1.2.3 From 5af2d92e19f0f67482972c5ae9f29405dbb67142 Mon Sep 17 00:00:00 2001 From: Darren Salt Date: Wed, 6 Jun 2007 00:41:08 +0100 Subject: Changelog entry for the fb colour conversion crash fix. --- ChangeLog | 1 + 1 file changed, 1 insertion(+) diff --git a/ChangeLog b/ChangeLog index 5f9b47ecd..f5d60ead8 100644 --- a/ChangeLog +++ b/ChangeLog @@ -27,6 +27,7 @@ xine-lib (1.1.7) (unreleased) handle the event continue playback to the none output. * Disable aRTs output plugin by default, it's deprecated and will be removed in 1.2 series. + * Fix a colour format conversion crash in the fb video output driver. xine-lib (1.1.6) * Split the DirectFB plugin into X11 and non-X versions. -- cgit v1.2.3 From 8b41e0929610c6ce97de12043bc713a866696f11 Mon Sep 17 00:00:00 2001 From: Darren Salt Date: Wed, 6 Jun 2007 17:38:06 +0100 Subject: Clean up .tar.bz2 as well as .tar.gz. --- Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile.am b/Makefile.am index 0b8e0e368..452210c57 100644 --- a/Makefile.am +++ b/Makefile.am @@ -100,7 +100,7 @@ install-data-hook: mostlyclean-generic: -rm -f *~ \#* .*~ .\#* - -rm -f $(PACKAGE)_$(VERSION).tar.gz + -rm -f $(PACKAGE)_$(VERSION).tar.gz $(PACKAGE)_$(VERSION).tar.bz2 -rm -f $(distdir).tar.gz $(PACKAGE).tgz package_descriptions -rm -rf $(distdir) -- cgit v1.2.3 From 7f249d1dde1e0c4f7023926ce96a87bb7734c57b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Diego=20=27Flameeyes=27=20Petten=C3=B2?= Date: Wed, 6 Jun 2007 21:40:50 +0200 Subject: Remove aRTs output plugin. ALSA's DMix can allow to run both xine and aRTs at the same time for Linux, and if other operating systems lacks a proper software mixing facility you can consider alternative daemons. Note: aRTs will not be present in KDE 4. --- ChangeLog | 4 + m4/audio_out.m4 | 19 -- m4/summary.m4 | 1 - src/audio_out/Makefile.am | 9 - src/audio_out/audio_arts_out.c | 418 ----------------------------------------- 5 files changed, 4 insertions(+), 447 deletions(-) delete mode 100644 src/audio_out/audio_arts_out.c diff --git a/ChangeLog b/ChangeLog index 685d79a1f..c3cc1399e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -28,6 +28,10 @@ xine-lib (1.1.90) (Unreleased) initialisation, even for audio files that nothing have to do with modplug. * Collapse the Ogg demuxer, and the Theora, Vorbis and Speex decoders in the same 'xiph' plugin. + * Remove aRTs output plugin; ALSA's DMix can allow to run both xine and aRTs + at the same time for Linux, and if other operating systems lacks a proper + software mixing facility you can consider alternative daemons. Note: aRTs + will not be present in KDE 4. xine-lib (1.1.7) (unreleased) * Support libdca (new name for libdts) by shuffling around the dts.h file. diff --git a/m4/audio_out.m4 b/m4/audio_out.m4 index cdfe8b65d..4288c32d5 100644 --- a/m4/audio_out.m4 +++ b/m4/audio_out.m4 @@ -7,7 +7,6 @@ AC_DEFUN([XINE_AUDIO_OUT_PLUGINS], [ dnl explicitly requested to do so on other operating systems. dnl Notes: dnl - Alsa is Linux only - dnl - aRts is Linux only dnl - CoreAudio is Mac OS X only dnl - EsounD is reported to be available on most platforms dnl - FusionSound is Linux only, but don't enable it by default @@ -22,7 +21,6 @@ AC_DEFUN([XINE_AUDIO_OUT_PLUGINS], [ default_enable_sunaudio=disable default_with_alsa=without - default_with_arts=without default_with_esound=with default_with_fusionsound=without default_with_jack=without @@ -47,7 +45,6 @@ AC_DEFUN([XINE_AUDIO_OUT_PLUGINS], [ ;; linux*) default_with_alsa=with - default_with_arts=with default_with_jack=with default_with_pulseaudio=with ;; @@ -81,22 +78,6 @@ AC_DEFUN([XINE_AUDIO_OUT_PLUGINS], [ AM_CONDITIONAL([ENABLE_ALSA], [test x"$have_alsa" = x"yes"]) - dnl aRts support - AC_ARG_WITH([arts], - [AS_HELP_STRING([--with-arts], [Build with aRts audio output support])], - [test x"$withval" != x"no" && with_arts="yes"], - [test $default_with_arts = without && with_arts="no"]) - if test x"$with_arts" != x"no"; then - ACX_PACKAGE_CHECK([ARTS], [0.9.5], [artsc-config], [have_arts=yes], [have_arts=no]) - if test x"$with_arts" = x"yes" && test x"$have_arts" != x"yes"; then - AC_MSG_ERROR([aRts support requested, but aRts not found]) - elif test x"$have_arts" = x"yes"; then - AC_DEFINE([HAVE_ARTS], 1, [Define this if you have aRts (libartsc) installed]) - fi - fi - AM_CONDITIONAL([ENABLE_ARTS], [test x"$have_arts" = x"yes"]) - - dnl CoreAudio for Mac OS X AC_ARG_ENABLE([coreaudio], [AS_HELP_STRING([--enable-coreaudio], [Enable support for Mac OS X CoreAudio])], diff --git a/m4/summary.m4 b/m4/summary.m4 index 792c5d319..19c8ff479 100644 --- a/m4/summary.m4 +++ b/m4/summary.m4 @@ -274,7 +274,6 @@ AC_DEFUN([XINE_LIB_SUMMARY], [ dnl Audio plugins echo " * audio driver plugins:" test x"$have_alsa" = x"yes" && echo " - alsa (ALSA - Advanced Linux Sound Architecture)" - test x"$have_arts" = x"yes" && echo " - arts (aRts - KDE soundserver)" test x"$have_coreaudio" = x"yes" && echo " - CoreAudio (Mac OS X audio driver)" test x"$have_directx" = x"yes" && echo " - directx (DirectX audio driver)" test x"$have_esound" = x"yes" && echo " - esd (Enlightened Sound Daemon)" diff --git a/src/audio_out/Makefile.am b/src/audio_out/Makefile.am index 8759b123f..cb3eb79d3 100644 --- a/src/audio_out/Makefile.am +++ b/src/audio_out/Makefile.am @@ -32,10 +32,6 @@ endif #irixal_module = xineplug_ao_out_irixal.la #endif -if ENABLE_ARTS -arts_module = xineplug_ao_out_arts.la -endif - if ENABLE_DIRECTX directx_module = xineplug_ao_out_directx.la directx2_module = xineplug_ao_out_directx2.la @@ -63,7 +59,6 @@ xineplug_LTLIBRARIES = \ $(oss_module) \ $(alsa_module) \ $(sun_module) \ - $(arts_module) \ $(esd_module) \ $(directx_module) \ $(coreaudio_module) \ @@ -96,10 +91,6 @@ xineplug_ao_out_sun_la_LIBADD = $(XINE_LIB) #xineplug_ao_out_irixal_la_LIBADD = $(IRIXAL_LIBS) #xineplug_ao_out_irixal_la_CFLAGS = $(AM_CFLAGS) $(IRIXAL_CFLAGS) -xineplug_ao_out_arts_la_SOURCES = audio_arts_out.c -xineplug_ao_out_arts_la_LIBADD = $(ARTS_LIBS) $(XINE_LIB) -xineplug_ao_out_arts_la_CFLAGS = $(AM_CFLAGS) $(ARTS_CFLAGS) - xineplug_ao_out_directx_la_SOURCES = audio_directx_out.c xineplug_ao_out_directx_la_LIBADD = $(DIRECTX_AUDIO_LIBS) $(XINE_LIB) xineplug_ao_out_directx_la_CPPFLAGS = $(AM_CPPFLAGS) $(DIRECTX_CPPFLAGS) diff --git a/src/audio_out/audio_arts_out.c b/src/audio_out/audio_arts_out.c deleted file mode 100644 index f38575aff..000000000 --- a/src/audio_out/audio_arts_out.c +++ /dev/null @@ -1,418 +0,0 @@ -/* - * Copyright (C) 2000-2003 the xine project - * - * This file is part of xine, a free video player. - * - * xine is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * xine is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA - * - * $Id: audio_arts_out.c,v 1.32 2006/07/16 16:18:09 dsalt Exp $ - */ - -#ifdef HAVE_CONFIG_H -#include "config.h" -#endif - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "xine_internal.h" -#include "xineutils.h" -#include "audio_out.h" -#include "bswap.h" - -#define AO_OUT_ARTS_IFACE_VERSION 8 - -#define AUDIO_NUM_FRAGMENTS 15 -#define AUDIO_FRAGMENT_SIZE 8192 - -#define GAP_TOLERANCE AO_MAX_GAP - -typedef struct arts_driver_s { - - ao_driver_t ao_driver; - - xine_t *xine; - - arts_stream_t audio_stream; - int capabilities; - int mode; - - int32_t sample_rate; - uint32_t num_channels; - uint32_t bits_per_sample; - uint32_t bytes_per_frame; - - uint32_t latency; - - struct { - int volume; - int mute; - int vol_scale; - int v_mixer; - } mixer; - -} arts_driver_t; - -typedef struct { - audio_driver_class_t driver_class; - - xine_t *xine; - int inited; -} arts_class_t; - -/* - * Software stereo volume control..... - * Igor Mokrushin - */ -static void ao_arts_volume(void *buffer, int length, int volume) { - int v; - short *data = (short *)buffer; - - while (length--) { - v=(int) ((*(data) * volume) / 100); - *(data)=(v>32767) ? 32767 : ((v<-32768) ? -32768 : v); - *(data)=LE_16(data); - data++; - } -} -/* End volume control */ - -/* - * open the audio device for writing to - */ -static int ao_arts_open(ao_driver_t *this_gen, - uint32_t bits, uint32_t rate, int mode) -{ - arts_driver_t *this = (arts_driver_t *) this_gen; - - xprintf (this->xine, XINE_VERBOSITY_DEBUG, - "audio_arts_out: ao_open bits=%d rate=%d, mode=%d\n", bits, rate, mode); - - if ( (mode & this->capabilities) == 0 ) { - xprintf (this->xine, XINE_VERBOSITY_DEBUG, "audio_arts_out: unsupported mode %08x\n", mode); - return 0; - } - - if (this->audio_stream) { - - if ( (mode == this->mode) && (rate == this->sample_rate) ) - return this->sample_rate; - - sleep(2); /* arts might segfault if we are still playing */ - arts_close_stream(this->audio_stream); - } - - this->mode = mode; - this->sample_rate = rate; - this->bits_per_sample = bits; - - switch (mode) { - case AO_CAP_MODE_MONO: - this->num_channels = 1; - break; - case AO_CAP_MODE_STEREO: - this->num_channels = 2; - break; - } - - this->bytes_per_frame=(this->bits_per_sample*this->num_channels)/8; - - xprintf (this->xine, XINE_VERBOSITY_DEBUG, "audio_arts_out: %d channels output\n", this->num_channels); - - this->audio_stream=arts_play_stream(this->sample_rate, bits, this->num_channels, "xine"); - - this->latency = arts_stream_get (this->audio_stream, ARTS_P_TOTAL_LATENCY); - - /* try to keep latency low, if we don't do this we might end - with very high latencies for low quality sound and audio_out will - try to fill gaps every time...(values in ms) */ - if( this->latency > 800 ) - { - this->latency = 800 - arts_stream_get (this->audio_stream, ARTS_P_SERVER_LATENCY); - if( this->latency < 100 ) - this->latency = 100; - arts_stream_set( this->audio_stream, ARTS_P_BUFFER_TIME, this->latency ); - this->latency = arts_stream_get (this->audio_stream, ARTS_P_TOTAL_LATENCY); - } - - xprintf (this->xine, XINE_VERBOSITY_DEBUG, "audio_arts_out : latency %d ms\n", this->latency); - - return this->sample_rate; -} - - -static int ao_arts_num_channels(ao_driver_t *this_gen) -{ - arts_driver_t *this = (arts_driver_t *) this_gen; - return this->num_channels; -} - -static int ao_arts_bytes_per_frame(ao_driver_t *this_gen) -{ - arts_driver_t *this = (arts_driver_t *) this_gen; - return this->bytes_per_frame; -} - -static int ao_arts_get_gap_tolerance (ao_driver_t *this_gen) -{ - return GAP_TOLERANCE; -} - -static int ao_arts_write(ao_driver_t *this_gen, int16_t *data, - uint32_t num_frames) -{ - arts_driver_t *this = (arts_driver_t *) this_gen; - int size = num_frames * this->bytes_per_frame; - - ao_arts_volume(data, num_frames * this->num_channels, this->mixer.vol_scale ); - arts_write(this->audio_stream, data, size ); - - return 1; -} - - -static int ao_arts_delay (ao_driver_t *this_gen) -{ - arts_driver_t *this = (arts_driver_t *) this_gen; - - /* Just convert latency (ms) to frame units. - please note that there is no function in aRts C API to - get the current buffer utilization. This is, at best, - a very roughly aproximation. - */ - - return this->latency * this->sample_rate / 1000; -} - -static void ao_arts_close(ao_driver_t *this_gen) -{ - arts_driver_t *this = (arts_driver_t *) this_gen; - - if (this->audio_stream) { - sleep(2); /* arts might segfault if we are still playing */ - arts_close_stream(this->audio_stream); - this->audio_stream = NULL; - } -} - -static uint32_t ao_arts_get_capabilities (ao_driver_t *this_gen) { - arts_driver_t *this = (arts_driver_t *) this_gen; - return this->capabilities; -} - -static void ao_arts_exit(ao_driver_t *this_gen) -{ - arts_driver_t *this = (arts_driver_t *) this_gen; - - ao_arts_close(this_gen); - /* FIXME: arts_free() freezes on BSD, so don't use it there */ -#if !defined(__OpenBSD__) && !defined (__FreeBSD__) && !defined(__NetBSD__) - arts_free(); -#endif - - free (this); -} - -static int ao_arts_get_property (ao_driver_t *this_gen, int property) { - - arts_driver_t *this = (arts_driver_t *) this_gen; - - switch(property) { - case AO_PROP_PCM_VOL: - case AO_PROP_MIXER_VOL: - if(!this->mixer.mute) - this->mixer.volume = this->mixer.vol_scale; - return this->mixer.volume; - break; - case AO_PROP_MUTE_VOL: - return this->mixer.mute; - break; - } - return 0; -} - -static int ao_arts_set_property (ao_driver_t *this_gen, int property, int value) { - - arts_driver_t *this = (arts_driver_t *) this_gen; - int mute = (value) ? 1 : 0; - - switch(property) { - case AO_PROP_PCM_VOL: - case AO_PROP_MIXER_VOL: - if(!this->mixer.mute) - this->mixer.volume = value; - this->mixer.vol_scale = this->mixer.volume; - return this->mixer.volume; - break; - case AO_PROP_MUTE_VOL: - if(mute) { - this->mixer.v_mixer = this->mixer.volume; - this->mixer.volume = 0; - this->mixer.vol_scale = this->mixer.volume; - } else { - this->mixer.volume = this->mixer.v_mixer; - this->mixer.vol_scale = this->mixer.volume; - } - this->mixer.mute = mute; - return value; - break; - } - - return ~value; -} - -static int ao_arts_ctrl(ao_driver_t *this_gen, int cmd, ...) { - /*arts_driver_t *this = (arts_driver_t *) this_gen;*/ - - switch (cmd) { - - case AO_CTRL_PLAY_PAUSE: - break; - - case AO_CTRL_PLAY_RESUME: - break; - - case AO_CTRL_FLUSH_BUFFERS: - break; - } - - return 0; -} - -static ao_driver_t *open_plugin (audio_driver_class_t *class_gen, const void *data) { - arts_class_t *class = (arts_class_t *) class_gen; - arts_driver_t *this; - int rc; - - lprintf ("audio_arts_out: open_plugin called\n"); - - this = (arts_driver_t *) xine_xmalloc (sizeof (arts_driver_t)); - if (!this) - return NULL; - - this->xine = class->xine; - - if (class->inited == 0) { - rc = arts_init(); - class->inited++; - } else { - xprintf (this->xine, XINE_VERBOSITY_LOG, "audio_arts_out: not trying to initialise a second time\n"); - free(this); - return NULL; - } - - if (rc < 0) { - xprintf (this->xine, XINE_VERBOSITY_DEBUG,"audio_arts_out: arts_init failed: %s\n", arts_error_text(rc)); - free(this); - return NULL; - } - - /* - * set volume control - */ - this->mixer.mute = 0; - this->mixer.vol_scale = 60; - this->mixer.v_mixer = 0; - /* - * set capabilities - */ - this->capabilities = 0; - xprintf (this->xine, XINE_VERBOSITY_DEBUG, "audio_arts_out : supported modes are "); - this->capabilities |= AO_CAP_MODE_MONO | AO_CAP_MIXER_VOL | AO_CAP_PCM_VOL | AO_CAP_MUTE_VOL; - xprintf (this->xine, XINE_VERBOSITY_DEBUG, "mono "); - this->capabilities |= AO_CAP_MODE_STEREO | AO_CAP_MIXER_VOL | AO_CAP_PCM_VOL | AO_CAP_MUTE_VOL; - xprintf (this->xine, XINE_VERBOSITY_DEBUG, "stereo "); - - this->sample_rate = 0; - this->audio_stream = NULL; - - this->ao_driver.get_capabilities = ao_arts_get_capabilities; - this->ao_driver.get_property = ao_arts_get_property; - this->ao_driver.set_property = ao_arts_set_property; - this->ao_driver.open = ao_arts_open; - this->ao_driver.num_channels = ao_arts_num_channels; - this->ao_driver.bytes_per_frame = ao_arts_bytes_per_frame; - this->ao_driver.delay = ao_arts_delay; - this->ao_driver.write = ao_arts_write; - this->ao_driver.close = ao_arts_close; - this->ao_driver.exit = ao_arts_exit; - this->ao_driver.get_gap_tolerance = ao_arts_get_gap_tolerance; - this->ao_driver.control = ao_arts_ctrl; - - return &this->ao_driver; -} - -/* - * class functions - */ - -static char* get_identifier (audio_driver_class_t *this_gen) { - return "arts"; -} - -static char* get_description (audio_driver_class_t *this_gen) { - return _("xine audio output plugin using kde artsd"); -} - -static void dispose_class (audio_driver_class_t *this_gen) { - - arts_class_t *this = (arts_class_t *) this_gen; - - free (this); -} - -static void *init_class (xine_t *xine, void *data) { - - arts_class_t *this; - - lprintf ("audio_arts_out: init class\n"); - - this = (arts_class_t *) xine_xmalloc (sizeof (arts_class_t)); - if (!this) - return NULL; - - this->inited = 0; - - this->driver_class.open_plugin = open_plugin; - this->driver_class.get_identifier = get_identifier; - this->driver_class.get_description = get_description; - this->driver_class.dispose = dispose_class; - - this->xine = xine; - - return this; -} - -static ao_info_t ao_info_arts = { - 5 -}; - -/* - * exported plugin catalog entry - */ - -const plugin_info_t xine_plugin_info[] EXPORTED = { - /* type, API, "name", version, special_info, init_function */ - { PLUGIN_AUDIO_OUT, AO_OUT_ARTS_IFACE_VERSION, "arts", XINE_VERSION_CODE, &ao_info_arts, init_class }, - { PLUGIN_NONE, 0, "", 0, NULL, NULL } -}; - -- cgit v1.2.3 From 9a5c7569df986181a089c33fbd4eeae0122a512d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Diego=20=27Flameeyes=27=20Petten=C3=B2?= Date: Wed, 6 Jun 2007 21:52:15 +0200 Subject: Don't return integer, the function is expected to return a pointer. --- src/xine-engine/metronom.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/xine-engine/metronom.c b/src/xine-engine/metronom.c index fa33da9e1..50720e157 100644 --- a/src/xine-engine/metronom.c +++ b/src/xine-engine/metronom.c @@ -851,7 +851,8 @@ static void metronom_unregister_scr (metronom_clock_t *this, scr_plugin_t *scr) this->scr_master = get_master_scr(this); } -static int metronom_sync_loop (metronom_clock_t *this) { +static void *metronom_sync_loop (void *const this_gen) { + metronom_clock_t *const this = (metronom_clock_t *const)this_gen; struct timeval tv; struct timespec ts; @@ -874,7 +875,7 @@ static int metronom_sync_loop (metronom_clock_t *this) { pthread_mutex_unlock (&this->lock); } - return 0; + return NULL; } static void metronom_exit (metronom_t *this) { @@ -990,7 +991,7 @@ metronom_clock_t *_x_metronom_clock_init(xine_t *xine) this->thread_running = 1; if ((err = pthread_create(&this->sync_thread, NULL, - (void*(*)(void*)) metronom_sync_loop, this)) != 0) + metronom_sync_loop, this)) != 0) xprintf(this->xine, XINE_VERBOSITY_NONE, "cannot create sync thread (%s)\n", strerror(err)); -- cgit v1.2.3 From e026dc188cfa93f778e7f1db9ef58d115d91417e Mon Sep 17 00:00:00 2001 From: Darren Salt Date: Wed, 6 Jun 2007 23:48:52 +0100 Subject: Fix RealPlayer codec detection and a nearby logging build failure. Both typos. --- src/libreal/real_common.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/libreal/real_common.c b/src/libreal/real_common.c index 22c33aa03..e2a4ee3d6 100644 --- a/src/libreal/real_common.c +++ b/src/libreal/real_common.c @@ -79,7 +79,7 @@ void _x_real_codecs_init(xine_t *const xine) { struct stat s; #define try_real_path(path) \ - if (!stat (path "/dvrc.so", &s)) \ + if (!stat (path "/drvc.so", &s)) \ default_real_codecs_path = path; #define try_real_subpath(path) \ try_real_path("/usr/" path) \ @@ -114,7 +114,7 @@ void _x_real_codecs_init(xine_t *const xine) { "how to install the codecs."), 10, NULL, NULL); - lprintf ("real codecs path : %s\n", real_codec_path); + lprintf ("real codecs path : %s\n", real_codecs_path); } void *_x_real_codec_open(xine_stream_t *const stream, const char *const path, -- cgit v1.2.3 From 063bcadd4c7f3802489f103eb753d375eb8c51df Mon Sep 17 00:00:00 2001 From: Darren Salt Date: Thu, 7 Jun 2007 03:26:06 +0100 Subject: 1.1.7. --- ChangeLog | 2 +- debian/changelog | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index f5d60ead8..367d78939 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,4 +1,4 @@ -xine-lib (1.1.7) (unreleased) +xine-lib (1.1.7) * Support libdca (new name for libdts) by shuffling around the dts.h file. * Add support for MDHD version 1 atom in demux_qt. [bug #1679398] * Handle single-quoted attribute values in XML. diff --git a/debian/changelog b/debian/changelog index 178f0341a..2a9e42e9b 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,8 +1,8 @@ -xine-lib (1.1.6~hg-0) unstable; urgency=low +xine-lib (1.1.7~hg-0) unstable; urgency=low * Hg snapshot. - -- Darren Salt Mon, 16 Apr 2007 22:00:07 +0100 + -- Darren Salt Thu, 07 Jun 2007 02:48:13 +0100 xine-lib (1.1.5~cvs-0) unstable; urgency=low -- cgit v1.2.3 From c3c4c4768019288a8f3b3870ec4a7161564333a5 Mon Sep 17 00:00:00 2001 From: Darren Salt Date: Thu, 7 Jun 2007 03:26:31 +0100 Subject: Release tag for 1.1.7. --- .hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/.hgtags b/.hgtags index d8e9adc3d..1c20ea2b0 100644 --- a/.hgtags +++ b/.hgtags @@ -60,3 +60,4 @@ fd12068ebd3fab2438f77b06e312c4244e97950a DXR3_095 4a4f4e8bb768b6598c02a59929019866a40b4edc nopadding_no_abi_change 204b8e92463b592e5c220b56f186a6d4d1007cf9 xine-lib-1_1_5-release 7b60f85a95345c41fb074dc5e3f7355d9e72968e xine-lib-1_1_6-release +ab1531337553ad5eac24a69ac665eae33916b423 xine-lib-1_1_7-release -- cgit v1.2.3 From 73c6bfed31352563e976fe5bac6e218c74f99e6a Mon Sep 17 00:00:00 2001 From: Darren Salt Date: Thu, 7 Jun 2007 03:28:12 +0100 Subject: Signature for 1.1.7. --- .hgsigs | 1 + 1 file changed, 1 insertion(+) create mode 100644 .hgsigs diff --git a/.hgsigs b/.hgsigs new file mode 100644 index 000000000..a1901b37f --- /dev/null +++ b/.hgsigs @@ -0,0 +1 @@ +5e6d0656ac4efdc1a89ed0fc32f11050f4a22970 0 iD8DBQBGZ207sBKtjPGfWZ8RAhdEAKCrkwiBT6bTof7ro5QQwewRfF/dMACffsvfK42+ahQrjpSfQxEp6k7RpCI= -- cgit v1.2.3 From 9043d0680a6e15ab0058e8cabc48610de50cc29a Mon Sep 17 00:00:00 2001 From: Darren Salt Date: Fri, 8 Jun 2007 00:40:11 +0100 Subject: Fix build issues on systems which need our internal asprintf. config.h is now include/configure.h and no longer #includes os_internals.h. A new file, include/config.h, #includes both; this breaks a #include loop. Other files are updated accordingly. --- .hgignore | 4 ++-- Makefile.am | 4 +--- configure.ac | 5 +---- include/Makefile.am | 4 +++- include/config.h | 23 +++++++++++++++++++++++ lib/os_internal.h | 1 + src/libfaad/common.h | 2 +- src/xine-utils/attributes.h | 2 +- 8 files changed, 33 insertions(+), 12 deletions(-) create mode 100644 include/config.h diff --git a/.hgignore b/.hgignore index 32b62ae30..c9d403171 100644 --- a/.hgignore +++ b/.hgignore @@ -17,8 +17,8 @@ config.log config.sub config.status config.status.lineno -config.h -config.h.in +include/configure.h +include/configure.h.in depcomp install-sh libtool diff --git a/Makefile.am b/Makefile.am index 452210c57..0b8d346da 100644 --- a/Makefile.am +++ b/Makefile.am @@ -31,8 +31,6 @@ EXTRA_DIST = config.rpath autogen.sh \ CREDITS \ @DEPCOMP@ -noinst_HEADERS = config.h - CONFIG_CLEAN_FILES = libtool docs: @@ -109,7 +107,7 @@ maintainer-clean-generic: -@echo "This command is intended for maintainers to use;" -@echo "it deletes files that may require special tools to rebuild." -rm -f Makefile.in configure acinclude.m4 aclocal.m4 - -rm -f config.h.in stamp-h.in ltconfig ltmain.sh + -rm -f stamp-h.in ltconfig ltmain.sh -rm -f config.guess config.sub install-sh missing mkinstalldirs -rm -f depcomp config.log diff --git a/configure.ac b/configure.ac index c57677b72..68e307990 100644 --- a/configure.ac +++ b/configure.ac @@ -100,7 +100,7 @@ AC_CANONICAL_BUILD test "$host" == "$build" && check_athlon=yes -AC_CONFIG_HEADERS([config.h]) +AC_CONFIG_HEADERS([include/configure.h]) dnl --------------------------------------------- @@ -2141,9 +2141,6 @@ AC_CHECK_FUNC(opendir, AC_MSG_ERROR([dirent is needed (opendir, readdir, ...)]) fi]) -AH_BOTTOM([/* include internal system specific header */ -#include "os_internal.h"]) - dnl --------------------------------------------- dnl cflags and debug cflags diff --git a/include/Makefile.am b/include/Makefile.am index 97d82e063..46a9e2478 100644 --- a/include/Makefile.am +++ b/include/Makefile.am @@ -6,6 +6,8 @@ endif include_HEADERS = xine.h +noinst_HEADERS = config.h configure.h + CONFIG_CLEAN_FILES = xine.h $(inttypes_h) debug: @@ -20,7 +22,7 @@ mostlyclean-generic: maintainer-clean-generic: -@echo "This command is intended for maintainers to use;" -@echo "it deletes files that may require special tools to rebuild." - -rm -f Makefile.in + -rm -f Makefile.in configure.h.in install-data-local: install-includeHEADERS sed -e '/^\/\*_x_/d' xine.h > $(DESTDIR)$(includedir)/xine.h diff --git a/include/config.h b/include/config.h new file mode 100644 index 000000000..3cf680b1c --- /dev/null +++ b/include/config.h @@ -0,0 +1,23 @@ +/* + * Copyright (C) 2007 the xine project + * + * This file is part of xine, a free video player. + * + * xine is free software; you can redistribute it and/or modify it under + * the terms of the GNU General Public Licence as published by the Free + * Software Foundation; either version 2 of the Licence, or (at your option) + * any later version. + * + * xine is distributed in the hope that it will be useful, but WITHOUT ANY + * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + * FOR A PARTICULAR PURPOSE. See the GNU General Public Licence for more + * details. + * + * You should have received a copy of the GNU General Public Licence along + * with this program; if not, write to the Free Software Foundation, Inc., + * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + * + */ + +#include "configure.h" +#include "os_internal.h" diff --git a/lib/os_internal.h b/lib/os_internal.h index dd48e04f7..5f61fb84d 100644 --- a/lib/os_internal.h +++ b/lib/os_internal.h @@ -17,6 +17,7 @@ #endif #include +#include "../src/xine-utils/attributes.h" #if defined(WIN32) || defined(__CYGWIN__) diff --git a/src/libfaad/common.h b/src/libfaad/common.h index 47832e648..31f07708a 100644 --- a/src/libfaad/common.h +++ b/src/libfaad/common.h @@ -36,7 +36,7 @@ extern "C" { #define __STRICT_ANSI__ #endif -#include "../config.h" +#include "config.h" #define INLINE __inline #if 0 //defined(_WIN32) && !defined(_WIN32_WCE) diff --git a/src/xine-utils/attributes.h b/src/xine-utils/attributes.h index 13c787925..2a7029522 100644 --- a/src/xine-utils/attributes.h +++ b/src/xine-utils/attributes.h @@ -45,7 +45,7 @@ #endif #ifdef XINE_COMPILE -# include "config.h" +# include "configure.h" #endif /* Export protected only for libxine functions */ -- cgit v1.2.3 From 800682ecc936445468fb411c636255b43e07db3b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Diego=20=27Flameeyes=27=20Petten=C3=B2?= Date: Fri, 8 Jun 2007 17:38:47 +0200 Subject: Update parse_meta_atom to use a switch case rather than a series of if. By the way, the code is totally broken and does not work as intended. --- src/demuxers/demux_qt.c | 45 ++++++++++++++++++++++++--------------------- 1 file changed, 24 insertions(+), 21 deletions(-) diff --git a/src/demuxers/demux_qt.c b/src/demuxers/demux_qt.c index 1b82a288d..1aa736870 100644 --- a/src/demuxers/demux_qt.c +++ b/src/demuxers/demux_qt.c @@ -729,50 +729,53 @@ static int is_qt_file(input_plugin_t *qt_file) { /* parse out a meta data atom */ static void parse_meta_atom(qt_info *info, unsigned char *meta_atom) { - int i; - unsigned int meta_atom_size = BE_32(&meta_atom[0]); - qt_atom current_atom; - int string_size; + uint32_t i = 4; + uint32_t meta_atom_size = BE_32(&meta_atom[0]); - for (i = 0; i < meta_atom_size - 4; i++) { - current_atom = BE_32(&meta_atom[i]); - - if (current_atom == ART_ATOM) { - string_size = BE_32(&meta_atom[i + 4]) - 16 + 1; + while ( i < meta_atom_size ) { + qt_atom current_atom = BE_32(&meta_atom[i]); + uint32_t sub_atom_size = BE_32(&meta_atom[i + 4]); + uint32_t string_size = sub_atom_size - 16 + 1; + + switch (current_atom) { + case ART_ATOM: info->artist = xine_xmalloc(string_size); strncpy(info->artist, &meta_atom[i + 20], string_size - 1); info->artist[string_size - 1] = 0; - } else if (current_atom == NAM_ATOM) { - string_size = BE_32(&meta_atom[i + 4]) - 16 + 1; + break; + case NAM_ATOM: info->name = xine_xmalloc(string_size); strncpy(info->name, &meta_atom[i + 20], string_size - 1); info->name[string_size - 1] = 0; - } else if (current_atom == ALB_ATOM) { - string_size = BE_32(&meta_atom[i + 4]) - 16 + 1; + break; + case ALB_ATOM: info->album = xine_xmalloc(string_size); strncpy(info->album, &meta_atom[i + 20], string_size - 1); info->album[string_size - 1] = 0; - } else if (current_atom == GEN_ATOM) { - string_size = BE_32(&meta_atom[i + 4]) - 16 + 1; + break; + case GEN_ATOM: info->genre = xine_xmalloc(string_size); strncpy(info->genre, &meta_atom[i + 20], string_size - 1); info->genre[string_size - 1] = 0; - } else if (current_atom == TOO_ATOM) { - string_size = BE_32(&meta_atom[i + 4]) - 16 + 1; + break; + case TOO_ATOM: info->comment = xine_xmalloc(string_size); strncpy(info->comment, &meta_atom[i + 20], string_size - 1); info->comment[string_size - 1] = 0; - } else if (current_atom == WRT_ATOM) { - string_size = BE_32(&meta_atom[i + 4]) - 16 + 1; + break; + case WRT_ATOM: info->composer = xine_xmalloc(string_size); strncpy(info->composer, &meta_atom[i + 20], string_size - 1); info->composer[string_size - 1] = 0; - } else if (current_atom == DAY_ATOM) { - string_size = BE_32(&meta_atom[i + 4]) - 16 + 1; + break; + case DAY_ATOM: info->year = xine_xmalloc(string_size); strncpy(info->year, &meta_atom[i + 20], string_size - 1); info->year[string_size - 1] = 0; + break; } + + i += sub_atom_size; } } -- cgit v1.2.3 From 5968a05988d5640c4e787b8365b01a614d57561d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Diego=20=27Flameeyes=27=20Petten=C3=B2?= Date: Fri, 8 Jun 2007 17:57:30 +0200 Subject: Use a switch statement even for the parsing of trak atom. --- src/demuxers/demux_qt.c | 58 ++++++++++++++++++++++++++----------------------- 1 file changed, 31 insertions(+), 27 deletions(-) diff --git a/src/demuxers/demux_qt.c b/src/demuxers/demux_qt.c index 1aa736870..f583db28c 100644 --- a/src/demuxers/demux_qt.c +++ b/src/demuxers/demux_qt.c @@ -886,10 +886,12 @@ static qt_error parse_trak_atom (qt_trak *trak, current_atom_size = BE_32(&trak_atom[i - 4]); current_atom = BE_32(&trak_atom[i]); - if (current_atom == TKHD_ATOM) { + switch(current_atom) { + case TKHD_ATOM: trak->flags = BE_16(&trak_atom[i + 6]); - } else if (current_atom == ELST_ATOM) { + break; + case ELST_ATOM: /* there should only be one edit list table */ if (trak->edit_list_table) { last_error = QT_HEADER_TROUBLE; @@ -919,17 +921,19 @@ static qt_error parse_trak_atom (qt_trak *trak, trak->edit_list_table[j].track_duration, trak->edit_list_table[j].media_time); } + break; - } else if (current_atom == MDHD_ATOM) { - int version; + case MDHD_ATOM: debug_atom_load ("demux_qt: mdhd atom\n"); - - version = trak_atom[i+4]; - if ( version > 1 ) continue; /* unsupported, undocumented */ + { + const int version = trak_atom[i+4]; + if ( version > 1 ) continue; /* unsupported, undocumented */ - trak->timescale = BE_32(&trak_atom[i + (version == 0 ? 0x10 : 0x18) ]); - } else if (current_atom == STSD_ATOM) { + trak->timescale = BE_32(&trak_atom[i + (version == 0 ? 0x10 : 0x18) ]); + } + break; + case STSD_ATOM: debug_atom_load ("demux_qt: stsd atom\n"); #if DEBUG_ATOM_LOAD xine_hexdump (&trak_atom[i], current_atom_size); @@ -1278,15 +1282,15 @@ static qt_error parse_trak_atom (qt_trak *trak, atom_pos += current_stsd_atom_size; properties_offset += current_stsd_atom_size; } - - } else if (current_atom == ESDS_ATOM) { - - uint32_t len; + break; + + case ESDS_ATOM: debug_atom_load(" qt/mpeg-4 esds atom\n"); if ((trak->type == MEDIA_VIDEO) || (trak->type == MEDIA_AUDIO)) { + uint32_t len; j = i + 8; if( trak_atom[j++] == 0x03 ) { @@ -1309,17 +1313,17 @@ static qt_error parse_trak_atom (qt_trak *trak, } } } + break; - } else if (current_atom == AVCC_ATOM) { - + case AVCC_ATOM: debug_atom_load(" avcC atom\n"); trak->decoder_config_len = current_atom_size - 8; trak->decoder_config = realloc(trak->decoder_config, trak->decoder_config_len); memcpy(trak->decoder_config, &trak_atom[i + 4], trak->decoder_config_len); + break; - } else if (current_atom == STSZ_ATOM) { - + case STSZ_ATOM: /* there should only be one of these atoms */ if (trak->sample_size_table) { last_error = QT_HEADER_TROUBLE; @@ -1351,9 +1355,9 @@ static qt_error parse_trak_atom (qt_trak *trak, /* set the pointer to non-NULL to indicate that the atom type has * already been seen for this trak atom */ trak->sample_size_table = (void *)-1; + break; - } else if (current_atom == STSS_ATOM) { - + case STSS_ATOM: /* there should only be one of these atoms */ if (trak->sync_sample_table) { last_error = QT_HEADER_TROUBLE; @@ -1380,9 +1384,9 @@ static qt_error parse_trak_atom (qt_trak *trak, j, trak->sync_sample_table[j], trak->sync_sample_table[j] - 1); } + break; - } else if (current_atom == STCO_ATOM) { - + case STCO_ATOM: /* there should only be one of either stco or co64 */ if (trak->chunk_offset_table) { last_error = QT_HEADER_TROUBLE; @@ -1408,9 +1412,9 @@ static qt_error parse_trak_atom (qt_trak *trak, debug_atom_load(" chunk %d @ 0x%"PRIX64"\n", j, trak->chunk_offset_table[j]); } + break; - } else if (current_atom == CO64_ATOM) { - + case CO64_ATOM: /* there should only be one of either stco or co64 */ if (trak->chunk_offset_table) { last_error = QT_HEADER_TROUBLE; @@ -1439,9 +1443,9 @@ static qt_error parse_trak_atom (qt_trak *trak, debug_atom_load(" chunk %d @ 0x%"PRIX64"\n", j, trak->chunk_offset_table[j]); } + break; - } else if (current_atom == STSC_ATOM) { - + case STSC_ATOM: /* there should only be one of these atoms */ if (trak->sample_to_chunk_table) { last_error = QT_HEADER_TROUBLE; @@ -1474,9 +1478,9 @@ static qt_error parse_trak_atom (qt_trak *trak, trak->sample_to_chunk_table[j].first_chunk - 1, trak->sample_to_chunk_table[j].media_id); } + break; - } else if (current_atom == STTS_ATOM) { - + case STTS_ATOM: /* there should only be one of these atoms */ if (trak->time_to_sample_table) { last_error = QT_HEADER_TROUBLE; -- cgit v1.2.3 From d15cedf35c0fb1b920e37f9efd441e8fb9036d63 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Diego=20=27Flameeyes=27=20Petten=C3=B2?= Date: Fri, 8 Jun 2007 18:01:55 +0200 Subject: More switches in parse_reference_atom. --- src/demuxers/demux_qt.c | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/src/demuxers/demux_qt.c b/src/demuxers/demux_qt.c index f583db28c..bb107c59e 100644 --- a/src/demuxers/demux_qt.c +++ b/src/demuxers/demux_qt.c @@ -1540,9 +1540,7 @@ static qt_error parse_reference_atom (reference_t *ref, char *base_mrl) { int i, j; - unsigned int ref_atom_size = BE_32(&ref_atom[0]); - qt_atom current_atom; - unsigned int current_atom_size; + const unsigned int ref_atom_size = BE_32(&ref_atom[0]); /* initialize reference atom */ ref->url = NULL; @@ -1551,11 +1549,11 @@ static qt_error parse_reference_atom (reference_t *ref, /* traverse through the atom looking for the key atoms */ for (i = ATOM_PREAMBLE_SIZE; i < ref_atom_size - 4; i++) { + const uint32_t current_atom_size = BE_32(&ref_atom[i - 4]); + const qt_atom current_atom = BE_32(&ref_atom[i]); - current_atom_size = BE_32(&ref_atom[i - 4]); - current_atom = BE_32(&ref_atom[i]); - - if (current_atom == RDRF_ATOM) { + switch (current_atom) { + case RDRF_ATOM: /* if the URL starts with "http://", copy it */ if (strncmp(&ref_atom[i + 16], "http://", 7) == 0 @@ -1584,17 +1582,17 @@ static qt_error parse_reference_atom (reference_t *ref, } debug_atom_load(" qt rdrf URL reference:\n %s\n", ref->url); + break; - } else if (current_atom == RMDR_ATOM) { - + case RMDR_ATOM: /* load the data rate */ ref->data_rate = BE_32(&ref_atom[i + 8]); ref->data_rate *= 10; debug_atom_load(" qt rmdr data rate = %"PRId64"\n", ref->data_rate); + break; - } else if (current_atom == RMVC_ATOM) { - + case RMVC_ATOM: debug_atom_load(" qt rmvc atom\n"); /* search the rmvc atom for 'qtim'; 2 bytes will follow the qtim -- cgit v1.2.3 From 2e3c87592773b39e1b4978f0d3a7ea6053bcfbb2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Diego=20=27Flameeyes=27=20Petten=C3=B2?= Date: Fri, 8 Jun 2007 18:08:35 +0200 Subject: More conversion to switches. --- src/demuxers/demux_qt.c | 55 +++++++++++++++++++++++++------------------------ 1 file changed, 28 insertions(+), 27 deletions(-) diff --git a/src/demuxers/demux_qt.c b/src/demuxers/demux_qt.c index bb107c59e..65bf81f4d 100644 --- a/src/demuxers/demux_qt.c +++ b/src/demuxers/demux_qt.c @@ -817,9 +817,7 @@ static qt_error parse_trak_atom (qt_trak *trak, unsigned char *trak_atom) { int i, j, k; - unsigned int trak_atom_size = BE_32(&trak_atom[0]); - qt_atom current_atom; - unsigned int current_atom_size; + const unsigned int trak_atom_size = BE_32(&trak_atom[0]); unsigned int atom_pos; unsigned int properties_offset; unsigned int current_stsd_atom_size; @@ -866,12 +864,13 @@ static qt_error parse_trak_atom (qt_trak *trak, /* search for media type atoms */ for (i = ATOM_PREAMBLE_SIZE; i < trak_atom_size - 4; i++) { - current_atom = BE_32(&trak_atom[i]); + const qt_atom current_atom = BE_32(&trak_atom[i]); - if (current_atom == VMHD_ATOM) { + switch (current_atom) { + case VMHD_ATOM: trak->type = MEDIA_VIDEO; break; - } else if (current_atom == SMHD_ATOM) { + case SMHD_ATOM: trak->type = MEDIA_AUDIO; break; } @@ -883,8 +882,8 @@ static qt_error parse_trak_atom (qt_trak *trak, /* search for the useful atoms */ for (i = ATOM_PREAMBLE_SIZE; i < trak_atom_size - 4; i++) { - current_atom_size = BE_32(&trak_atom[i - 4]); - current_atom = BE_32(&trak_atom[i]); + const current_atom_size = BE_32(&trak_atom[i - 4]); + const current_atom = BE_32(&trak_atom[i]); switch(current_atom) { case TKHD_ATOM: @@ -1920,7 +1919,6 @@ static void parse_moov_atom(qt_info *info, unsigned char *moov_atom, int64_t bandwidth) { int i, j; unsigned int moov_atom_size = BE_32(&moov_atom[0]); - qt_atom current_atom; int string_size, error; unsigned int max_video_frames = 0; unsigned int max_audio_frames = 0; @@ -1935,15 +1933,17 @@ static void parse_moov_atom(qt_info *info, unsigned char *moov_atom, /* prowl through the moov atom looking for very specific targets */ for (i = ATOM_PREAMBLE_SIZE + 4; i < moov_atom_size - 4; i += BE_32(&moov_atom[i - 4])) { - current_atom = BE_32(&moov_atom[i]); + const qt_atom current_atom = BE_32(&moov_atom[i]); - if (current_atom == MVHD_ATOM) { + switch (current_atom) { + case MVHD_ATOM: parse_mvhd_atom(info, &moov_atom[i - 4]); if (info->last_error != QT_OK) return; - } else if (current_atom == TRAK_ATOM) { + break; + case TRAK_ATOM: /* create a new trak structure */ info->trak_count++; info->traks = (qt_trak *)realloc(info->traks, @@ -1955,44 +1955,44 @@ static void parse_moov_atom(qt_info *info, unsigned char *moov_atom, info->trak_count--; return; } - - } else if (current_atom == META_ATOM) { - + break; + + case META_ATOM: parse_meta_atom(info, &moov_atom[i - 4]); if (info->last_error != QT_OK) return; + break; - } else if (current_atom == NAM_ATOM) { - + case NAM_ATOM: string_size = BE_16(&moov_atom[i + 4]) + 1; info->name = realloc (info->name, string_size); strncpy(info->name, &moov_atom[i + 8], string_size - 1); info->name[string_size - 1] = 0; + break; - } else if (current_atom == CPY_ATOM) { - + case CPY_ATOM: string_size = BE_16(&moov_atom[i + 4]) + 1; info->copyright = realloc (info->copyright, string_size); strncpy(info->copyright, &moov_atom[i + 8], string_size - 1); info->copyright[string_size - 1] = 0; + break; - } else if (current_atom == DES_ATOM) { - + case DES_ATOM: string_size = BE_16(&moov_atom[i + 4]) + 1; info->description = realloc (info->description, string_size); strncpy(info->description, &moov_atom[i + 8], string_size - 1); info->description[string_size - 1] = 0; + break; - } else if (current_atom == CMT_ATOM) { - + case CMT_ATOM: string_size = BE_16(&moov_atom[i + 4]) + 1; info->comment = realloc (info->comment, string_size); strncpy(info->comment, &moov_atom[i + 8], string_size - 1); info->comment[string_size - 1] = 0; + break; - } else if (current_atom == RMDA_ATOM || - current_atom == RMRA_ATOM) { - + case RMDA_ATOM: + case RMRA_ATOM: /* create a new reference structure */ info->reference_count++; info->references = (reference_t *)realloc(info->references, @@ -2000,8 +2000,9 @@ static void parse_moov_atom(qt_info *info, unsigned char *moov_atom, parse_reference_atom(&info->references[info->reference_count - 1], &moov_atom[i - 4], info->base_mrl); + break; - } else { + default: debug_atom_load(" qt: unknown atom into the moov atom (0x%08X)\n", current_atom); } } -- cgit v1.2.3 From fa73605943a34d50491ecd1fe74d6d9a1dc27874 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Diego=20=27Flameeyes=27=20Petten=C3=B2?= Date: Fri, 8 Jun 2007 18:11:58 +0200 Subject: Mark some stuff constant, reduce scope of a few other variables. --- src/demuxers/demux_qt.c | 27 +++++++++++++-------------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/src/demuxers/demux_qt.c b/src/demuxers/demux_qt.c index 65bf81f4d..e6867c246 100644 --- a/src/demuxers/demux_qt.c +++ b/src/demuxers/demux_qt.c @@ -820,20 +820,8 @@ static qt_error parse_trak_atom (qt_trak *trak, const unsigned int trak_atom_size = BE_32(&trak_atom[0]); unsigned int atom_pos; unsigned int properties_offset; - unsigned int current_stsd_atom_size; qt_error last_error = QT_OK; - /* for palette traversal */ - int color_depth; - int color_flag; - int color_start; - int color_count; - int color_end; - int color_index; - int color_dec; - int color_greyscale; - const unsigned char *color_table; - /* initialize trak structure */ trak->edit_list_count = 0; trak->edit_list_table = NULL; @@ -950,7 +938,18 @@ static qt_error parse_trak_atom (qt_trak *trak, properties_offset = 0x0C; for (k = 0; k < trak->stsd_atoms_count; k++) { - current_stsd_atom_size = BE_32(&trak_atom[atom_pos - 4]); + const uint32_t current_stsd_atom_size = BE_32(&trak_atom[atom_pos - 4]); + + /* for palette traversal */ + int color_depth; + int color_flag; + int color_start; + int color_count; + int color_end; + int color_index; + int color_dec; + int color_greyscale; + const unsigned char *color_table; if (trak->type == MEDIA_VIDEO) { @@ -1231,7 +1230,7 @@ static qt_error parse_trak_atom (qt_trak *trak, (BE_32(&trak_atom[atom_pos + 0x34]) == WAVE_ATOM) && (BE_32(&trak_atom[atom_pos + 0x3C]) == FRMA_ATOM) && (ME_32(&trak_atom[atom_pos + 0x48]) == trak->stsd_atoms[k].audio.codec_fourcc)) { - int wave_size = BE_32(&trak_atom[atom_pos + 0x44]) - 8; + const int wave_size = BE_32(&trak_atom[atom_pos + 0x44]) - 8; if ((wave_size >= sizeof(xine_waveformatex)) && (current_atom_size >= (0x4C + wave_size))) { -- cgit v1.2.3 From 6b67a249152f3da003cee871ae9ecf6ffdf3b559 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Diego=20=27Flameeyes=27=20Petten=C3=B2?= Date: Fri, 8 Jun 2007 18:56:12 +0200 Subject: Fix metadata parser. --- src/demuxers/demux_qt.c | 104 ++++++++++++++++++++++++++++++++++-------------- 1 file changed, 75 insertions(+), 29 deletions(-) diff --git a/src/demuxers/demux_qt.c b/src/demuxers/demux_qt.c index e6867c246..69a1635b9 100644 --- a/src/demuxers/demux_qt.c +++ b/src/demuxers/demux_qt.c @@ -110,6 +110,7 @@ typedef unsigned int qt_atom; #define UDTA_ATOM QT_ATOM('u', 'd', 't', 'a') #define META_ATOM QT_ATOM('m', 'e', 't', 'a') +#define HDLR_ATOM QT_ATOM('h', 'd', 'l', 'r') #define NAM_ATOM QT_ATOM(0xA9, 'n', 'a', 'm') #define CPY_ATOM QT_ATOM(0xA9, 'c', 'p', 'y') #define DES_ATOM QT_ATOM(0xA9, 'd', 'e', 's') @@ -406,6 +407,10 @@ typedef struct { * demuxer is sending off to the audio decoder */ #define DEBUG_AUDIO_DEMUX 0 +/* define DEBUG_META_LOAD as 1 to see details about the metadata chunks the + * demuxer is reading from the file */ +#define DEBUG_META_LOAD 0 + /* Define DEBUG_DUMP_MOOV as 1 to dump the raw moov atom to disk. This is * particularly useful in debugging a file with a compressed moov (cmov) * atom. The atom will be dumped to the filename specified as @@ -443,6 +448,12 @@ static inline void XINE_FORMAT_PRINTF(1, 2) debug_video_demux(const char *format static inline void XINE_FORMAT_PRINTF(1, 2) debug_audio_demux(const char *format, ...) {} #endif +#if DEBUG_META_LOAD +#define debug_audio_demux printf +#else +static inline void XINE_FORMAT_PRINTF(1, 2) debug_meta_load(const char *format, ...) {} +#endif + static inline void dump_moov_atom(unsigned char *moov_atom, int moov_atom_size) { #if DEBUG_DUMP_MOOV @@ -727,55 +738,90 @@ static int is_qt_file(input_plugin_t *qt_file) { } } +static char *parse_data_atom(unsigned char *data_atom) { + const uint32_t data_atom_size = BE_32(&data_atom[0]); + + static const int data_atom_max_version = 0; + const int data_atom_version = data_atom[4]; + + const size_t alloc_size = data_atom_size - 8 + 1; + char *alloc_str = NULL; + + if ( data_atom_version > data_atom_max_version ) { + debug_meta_load("demux_qt: version %d for data atom is higher than the highest supported version (%d)", + data_atom_version, data_atom_max_version); + return; + } + + alloc_str = xine_xmalloc(alloc_size); + xine_fast_memcpy(alloc_str, &data_atom[12], alloc_size-1); + return alloc_str; +} + /* parse out a meta data atom */ static void parse_meta_atom(qt_info *info, unsigned char *meta_atom) { - uint32_t i = 4; - uint32_t meta_atom_size = BE_32(&meta_atom[0]); + static const uint32_t meta_atom_preamble_size = 8; + + const uint32_t meta_atom_size = BE_32(&meta_atom[0]); + + static const int meta_atom_max_version = 0; + const int meta_atom_version = meta_atom[4]; + /* const uint32_t flags = BE_24(&meta_atom[5]); */ + + uint32_t i = meta_atom_preamble_size; + + if ( meta_atom_version > meta_atom_max_version ) { + debug_meta_load("demux_qt: version %d for meta atom is higher than the highest supported version (%d)", + meta_atom_version, meta_atom_max_version); + return; + } while ( i < meta_atom_size ) { - qt_atom current_atom = BE_32(&meta_atom[i]); - uint32_t sub_atom_size = BE_32(&meta_atom[i + 4]); - uint32_t string_size = sub_atom_size - 16 + 1; + const uint8_t *const current_atom = &meta_atom[i]; + const qt_atom current_atom_code = BE_32(¤t_atom[0]); + const uint32_t current_atom_size = BE_32(¤t_atom[4]); + uint32_t handler_type = 0; - switch (current_atom) { + switch (current_atom_code) { + case HDLR_ATOM: { + static const int hdlr_atom_max_version = 0; + const int hdlr_atom_version = current_atom[8]; + + /* const uint32_t hdlr_atom_flags = BE_24(¤t_atom[9]); */ + + if ( hdlr_atom_version > hdlr_atom_max_version ) { + debug_meta_load("demux_qt: version %d for hdlr atom is higher than the highest supported version (%d)", + hdlr_atom_version, hdlr_atom_max_version); + return; + } + + handler_type = BE_32(¤t_atom[12]); + } + case ART_ATOM: - info->artist = xine_xmalloc(string_size); - strncpy(info->artist, &meta_atom[i + 20], string_size - 1); - info->artist[string_size - 1] = 0; + info->artist = parse_data_atom(¤t_atom[8]); break; case NAM_ATOM: - info->name = xine_xmalloc(string_size); - strncpy(info->name, &meta_atom[i + 20], string_size - 1); - info->name[string_size - 1] = 0; + info->name = parse_data_atom(¤t_atom[8]); break; case ALB_ATOM: - info->album = xine_xmalloc(string_size); - strncpy(info->album, &meta_atom[i + 20], string_size - 1); - info->album[string_size - 1] = 0; + info->album = parse_data_atom(¤t_atom[8]); break; case GEN_ATOM: - info->genre = xine_xmalloc(string_size); - strncpy(info->genre, &meta_atom[i + 20], string_size - 1); - info->genre[string_size - 1] = 0; + info->genre = parse_data_atom(¤t_atom[8]); break; - case TOO_ATOM: - info->comment = xine_xmalloc(string_size); - strncpy(info->comment, &meta_atom[i + 20], string_size - 1); - info->comment[string_size - 1] = 0; + case CMT_ATOM: + info->comment = parse_data_atom(¤t_atom[8]); break; case WRT_ATOM: - info->composer = xine_xmalloc(string_size); - strncpy(info->composer, &meta_atom[i + 20], string_size - 1); - info->composer[string_size - 1] = 0; + info->composer = parse_data_atom(¤t_atom[8]); break; case DAY_ATOM: - info->year = xine_xmalloc(string_size); - strncpy(info->year, &meta_atom[i + 20], string_size - 1); - info->year[string_size - 1] = 0; + info->year = parse_data_atom(¤t_atom[8]); break; } - i += sub_atom_size; + i += current_atom_size; } } -- cgit v1.2.3 From 4f2f35a3d9164cc0485bb728f8ca4f2668cbcee2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Diego=20=27Flameeyes=27=20Petten=C3=B2?= Date: Fri, 8 Jun 2007 20:47:34 +0200 Subject: Properly read metadata for the file, the structure is more complex than it was previously implemented. --- src/demuxers/demux_qt.c | 95 ++++++++++++++++++++++++++++++++----------------- 1 file changed, 63 insertions(+), 32 deletions(-) diff --git a/src/demuxers/demux_qt.c b/src/demuxers/demux_qt.c index 69a1635b9..4ce55502e 100644 --- a/src/demuxers/demux_qt.c +++ b/src/demuxers/demux_qt.c @@ -111,6 +111,7 @@ typedef unsigned int qt_atom; #define UDTA_ATOM QT_ATOM('u', 'd', 't', 'a') #define META_ATOM QT_ATOM('m', 'e', 't', 'a') #define HDLR_ATOM QT_ATOM('h', 'd', 'l', 'r') +#define ILST_ATOM QT_ATOM('i', 'l', 's', 't') #define NAM_ATOM QT_ATOM(0xA9, 'n', 'a', 'm') #define CPY_ATOM QT_ATOM(0xA9, 'c', 'p', 'y') #define DES_ATOM QT_ATOM(0xA9, 'd', 'e', 's') @@ -449,7 +450,7 @@ static inline void XINE_FORMAT_PRINTF(1, 2) debug_audio_demux(const char *format #endif #if DEBUG_META_LOAD -#define debug_audio_demux printf +#define debug_meta_load printf #else static inline void XINE_FORMAT_PRINTF(1, 2) debug_meta_load(const char *format, ...) {} #endif @@ -742,44 +743,48 @@ static char *parse_data_atom(unsigned char *data_atom) { const uint32_t data_atom_size = BE_32(&data_atom[0]); static const int data_atom_max_version = 0; - const int data_atom_version = data_atom[4]; + const int data_atom_version = data_atom[8]; const size_t alloc_size = data_atom_size - 8 + 1; char *alloc_str = NULL; if ( data_atom_version > data_atom_max_version ) { - debug_meta_load("demux_qt: version %d for data atom is higher than the highest supported version (%d)", + debug_meta_load("demux_qt: version %d for data atom is higher than the highest supported version (%d)\n", data_atom_version, data_atom_max_version); - return; + return NULL; } alloc_str = xine_xmalloc(alloc_size); - xine_fast_memcpy(alloc_str, &data_atom[12], alloc_size-1); + xine_fast_memcpy(alloc_str, &data_atom[16], alloc_size-1); + alloc_str[alloc_size-1] = '\0'; + + debug_meta_load("demux_qt: got a string of size %d (%s)\n", alloc_size, alloc_str); + return alloc_str; } /* parse out a meta data atom */ static void parse_meta_atom(qt_info *info, unsigned char *meta_atom) { - static const uint32_t meta_atom_preamble_size = 8; + static const uint32_t meta_atom_preamble_size = 12; const uint32_t meta_atom_size = BE_32(&meta_atom[0]); static const int meta_atom_max_version = 0; - const int meta_atom_version = meta_atom[4]; - /* const uint32_t flags = BE_24(&meta_atom[5]); */ + const int meta_atom_version = meta_atom[8]; + /* const uint32_t flags = BE_24(&meta_atom[9]); */ uint32_t i = meta_atom_preamble_size; if ( meta_atom_version > meta_atom_max_version ) { - debug_meta_load("demux_qt: version %d for meta atom is higher than the highest supported version (%d)", + debug_meta_load("demux_qt: version %d for meta atom is higher than the highest supported version (%d)\n", meta_atom_version, meta_atom_max_version); return; } while ( i < meta_atom_size ) { const uint8_t *const current_atom = &meta_atom[i]; - const qt_atom current_atom_code = BE_32(¤t_atom[0]); - const uint32_t current_atom_size = BE_32(¤t_atom[4]); + const qt_atom current_atom_code = BE_32(¤t_atom[4]); + const uint32_t current_atom_size = BE_32(¤t_atom[0]); uint32_t handler_type = 0; switch (current_atom_code) { @@ -790,35 +795,55 @@ static void parse_meta_atom(qt_info *info, unsigned char *meta_atom) { /* const uint32_t hdlr_atom_flags = BE_24(¤t_atom[9]); */ if ( hdlr_atom_version > hdlr_atom_max_version ) { - debug_meta_load("demux_qt: version %d for hdlr atom is higher than the highest supported version (%d)", + debug_meta_load("demux_qt: version %d for hdlr atom is higher than the highest supported version (%d)\n", hdlr_atom_version, hdlr_atom_max_version); return; } handler_type = BE_32(¤t_atom[12]); } - - case ART_ATOM: - info->artist = parse_data_atom(¤t_atom[8]); - break; - case NAM_ATOM: - info->name = parse_data_atom(¤t_atom[8]); - break; - case ALB_ATOM: - info->album = parse_data_atom(¤t_atom[8]); - break; - case GEN_ATOM: - info->genre = parse_data_atom(¤t_atom[8]); - break; - case CMT_ATOM: - info->comment = parse_data_atom(¤t_atom[8]); break; - case WRT_ATOM: - info->composer = parse_data_atom(¤t_atom[8]); - break; - case DAY_ATOM: - info->year = parse_data_atom(¤t_atom[8]); + + case ILST_ATOM: { + uint32_t j = i + 8; + while ( j < current_atom_size ) { + const uint8_t *const sub_atom = &meta_atom[j]; + const qt_atom sub_atom_code = BE_32(&sub_atom[4]); + const uint32_t sub_atom_size = BE_32(&sub_atom[0]); + + switch(sub_atom_code) { + case ART_ATOM: + info->artist = parse_data_atom(&sub_atom[8]); + break; + case NAM_ATOM: + info->name = parse_data_atom(&sub_atom[8]); + break; + case ALB_ATOM: + info->album = parse_data_atom(&sub_atom[8]); + break; + case GEN_ATOM: + info->genre = parse_data_atom(&sub_atom[8]); + break; + case CMT_ATOM: + info->comment = parse_data_atom(&sub_atom[8]); + break; + case WRT_ATOM: + info->composer = parse_data_atom(&sub_atom[8]); + break; + case DAY_ATOM: + info->year = parse_data_atom(&sub_atom[8]); + break; + default: + debug_meta_load("unknown atom %08x in ilst\n", sub_atom_code); + } + + j += sub_atom_size; + } + } break; + + default: + debug_meta_load("unknown atom %08x in meta\n", current_atom_code); } i += current_atom_size; @@ -2002,6 +2027,12 @@ static void parse_moov_atom(qt_info *info, unsigned char *moov_atom, } break; + case UDTA_ATOM: + parse_meta_atom(info, &moov_atom[i + 4]); + if (info->last_error != QT_OK) + return; + break; + case META_ATOM: parse_meta_atom(info, &moov_atom[i - 4]); if (info->last_error != QT_OK) -- cgit v1.2.3 From 72c64cd5c76febda45d95452276e11d60477103e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Diego=20=27Flameeyes=27=20Petten=C3=B2?= Date: Sat, 9 Jun 2007 11:23:10 +0200 Subject: Make the read() function of input plugins be declared with void pointer as buf parameter, so that any kind of variable can be passed through it. --- src/input/input_plugin.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/input/input_plugin.h b/src/input/input_plugin.h index 11e1303e7..66b3abbb9 100644 --- a/src/input/input_plugin.h +++ b/src/input/input_plugin.h @@ -118,7 +118,7 @@ struct input_plugin_s { * Should block until some bytes available for read; * a return value of 0 indicates no data available */ - off_t (*read) (input_plugin_t *this, char *buf, off_t nlen); + off_t (*read) (input_plugin_t *this, void *buf, off_t nlen); /* -- cgit v1.2.3 From 4d7e574abefe9cd15c04cf0145faf55c9e282e83 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Diego=20=27Flameeyes=27=20Petten=C3=B2?= Date: Sat, 9 Jun 2007 11:44:00 +0200 Subject: Convert all input plugins to use void * as type for the buf parameter of read() function, and declare a new buf variable in the function as needed. --- src/input/input_cdda.c | 2 +- src/input/input_dvb.c | 4 +++- src/input/input_dvd.c | 3 ++- src/input/input_file.c | 2 +- src/input/input_gnome_vfs.c | 3 ++- src/input/input_http.c | 3 ++- src/input/input_mms.c | 3 ++- src/input/input_net.c | 3 ++- src/input/input_pnm.c | 3 ++- src/input/input_pvr.c | 3 ++- src/input/input_rtp.c | 3 ++- src/input/input_rtsp.c | 2 +- src/input/input_smb.c | 3 ++- src/input/input_stdin_fifo.c | 3 ++- src/input/input_v4l.c | 2 +- src/input/input_vcd.c | 9 ++++++--- src/vdr/input_vdr.c | 3 ++- src/xine-engine/input_cache.c | 3 ++- src/xine-engine/input_rip.c | 3 ++- 19 files changed, 39 insertions(+), 21 deletions(-) diff --git a/src/input/input_cdda.c b/src/input/input_cdda.c index b85bc534e..e35ee5b9c 100644 --- a/src/input/input_cdda.c +++ b/src/input/input_cdda.c @@ -2243,7 +2243,7 @@ static uint32_t cdda_plugin_get_capabilities (input_plugin_t *this_gen) { } -static off_t cdda_plugin_read (input_plugin_t *this_gen, char *buf, off_t len) { +static off_t cdda_plugin_read (input_plugin_t *this_gen, void *buf, off_t len) { /* only allow reading in block-sized chunks */ diff --git a/src/input/input_dvb.c b/src/input/input_dvb.c index 50162c7db..38ad0be82 100644 --- a/src/input/input_dvb.c +++ b/src/input/input_dvb.c @@ -2468,8 +2468,10 @@ static void ts_rewrite_packets (dvb_input_plugin_t *this, unsigned char * origin } static off_t dvb_plugin_read (input_plugin_t *this_gen, - char *buf, off_t len) { + void *buf_gen, off_t len) { dvb_input_plugin_t *this = (dvb_input_plugin_t *) this_gen; + char *buf = (char *)buf_gen; + off_t n=0, total=0; int have_mutex=0; struct pollfd pfd; diff --git a/src/input/input_dvd.c b/src/input/input_dvd.c index 1a8861289..dc38ceecd 100644 --- a/src/input/input_dvd.c +++ b/src/input/input_dvd.c @@ -853,8 +853,9 @@ static buf_element_t *dvd_plugin_read_block (input_plugin_t *this_gen, return buf; } -static off_t dvd_plugin_read (input_plugin_t *this_gen, char *ch_buf, off_t len) { +static off_t dvd_plugin_read (input_plugin_t *this_gen, void *buf_gen, off_t len) { /* dvd_input_plugin_t *this = (dvd_input_plugin_t*)this_gen; */ + char *ch_buf = (char *)buf_gen; /* FIXME: Tricking the demux_mpeg_block plugin */ ch_buf[0] = 0; diff --git a/src/input/input_file.c b/src/input/input_file.c index 1dce8baad..cc1e55c87 100644 --- a/src/input/input_file.c +++ b/src/input/input_file.c @@ -144,7 +144,7 @@ static int check_mmap_file(file_input_plugin_t *this) { } #endif -static off_t file_plugin_read (input_plugin_t *this_gen, char *buf, off_t len) { +static off_t file_plugin_read (input_plugin_t *this_gen, void *buf, off_t len) { file_input_plugin_t *this = (file_input_plugin_t *) this_gen; #ifdef HAVE_MMAP diff --git a/src/input/input_gnome_vfs.c b/src/input/input_gnome_vfs.c index 540abd0f4..1fe29fbcd 100644 --- a/src/input/input_gnome_vfs.c +++ b/src/input/input_gnome_vfs.c @@ -75,8 +75,9 @@ gnomevfs_plugin_get_capabilities (input_plugin_t *this_gen) #define SSH_BUFFER_SIZE 256 * 1024 static off_t -gnomevfs_plugin_read (input_plugin_t *this_gen, char *buf, off_t len) +gnomevfs_plugin_read (input_plugin_t *this_gen, void *buf_gen, off_t len) { + char *buf = (char *)buf_gen; gnomevfs_input_t *this = (gnomevfs_input_t *) this_gen; off_t n, num_bytes; diff --git a/src/input/input_http.c b/src/input/input_http.c index d1202ae14..3db5af002 100644 --- a/src/input/input_http.c +++ b/src/input/input_http.c @@ -404,8 +404,9 @@ error: } static off_t http_plugin_read (input_plugin_t *this_gen, - char *buf, off_t nlen) { + void *buf_gen, off_t nlen) { http_input_plugin_t *this = (http_input_plugin_t *) this_gen; + char *buf = (char *)buf_gen; off_t n, num_bytes; num_bytes = 0; diff --git a/src/input/input_mms.c b/src/input/input_mms.c index 739d81a59..23102ac18 100644 --- a/src/input/input_mms.c +++ b/src/input/input_mms.c @@ -98,8 +98,9 @@ typedef struct { } mms_input_class_t; static off_t mms_plugin_read (input_plugin_t *this_gen, - char *buf, off_t len) { + void *buf_gen, off_t len) { mms_input_plugin_t *this = (mms_input_plugin_t *) this_gen; + char *buf = (char *)buf_gen; off_t n = 0; lprintf ("mms_plugin_read: %"PRId64" bytes ...\n", len); diff --git a/src/input/input_net.c b/src/input/input_net.c index 0ce2e1340..dd318c37c 100644 --- a/src/input/input_net.c +++ b/src/input/input_net.c @@ -249,8 +249,9 @@ static int host_connect(const char *host, int port, xine_t *xine) { #define HIGH_WATER_MARK 100 static off_t net_plugin_read (input_plugin_t *this_gen, - char *buf, off_t len) { + void *buf_gen, off_t len) { net_input_plugin_t *this = (net_input_plugin_t *) this_gen; + char *buf = (char *)buf_gen; off_t n, total; lprintf("reading %" PRIdMAX " bytes...\n", (intmax_t)len); diff --git a/src/input/input_pnm.c b/src/input/input_pnm.c index e1413b0f7..29d65da2d 100644 --- a/src/input/input_pnm.c +++ b/src/input/input_pnm.c @@ -76,8 +76,9 @@ typedef struct { static off_t pnm_plugin_read (input_plugin_t *this_gen, - char *buf, off_t len) { + void *buf_gen, off_t len) { pnm_input_plugin_t *this = (pnm_input_plugin_t *) this_gen; + char *buf = (char *)buf_gen; off_t n; lprintf ("pnm_plugin_read: %"PRId64" bytes ...\n", len); diff --git a/src/input/input_pvr.c b/src/input/input_pvr.c index bcf93af2b..48b69c8f5 100644 --- a/src/input/input_pvr.c +++ b/src/input/input_pvr.c @@ -423,8 +423,9 @@ static uint32_t pvr_plugin_get_capabilities (input_plugin_t *this_gen) { } -static off_t pvr_plugin_read (input_plugin_t *this_gen, char *buf, off_t len) { +static off_t pvr_plugin_read (input_plugin_t *this_gen, void *buf_gen, off_t len) { /*pvr_input_plugin_t *this = (pvr_input_plugin_t *) this_gen;*/ + char *buf = (char *)buf_gen; /* FIXME: Tricking the demux_mpeg_block plugin */ buf[0] = 0; diff --git a/src/input/input_rtp.c b/src/input/input_rtp.c index d4ba804c6..2c6c581c2 100644 --- a/src/input/input_rtp.c +++ b/src/input/input_rtp.c @@ -432,8 +432,9 @@ static void * input_plugin_read_loop(void *arg) { /* ***************************************************************** */ static off_t rtp_plugin_read (input_plugin_t *this_gen, - char *buf, off_t length) { + void *buf_gen, off_t length) { rtp_input_plugin_t *this = (rtp_input_plugin_t *) this_gen; + char *buf = (char *)buf_gen; struct timeval tv; struct timespec timeout; diff --git a/src/input/input_rtsp.c b/src/input/input_rtsp.c index 693e8af66..cd2209baa 100644 --- a/src/input/input_rtsp.c +++ b/src/input/input_rtsp.c @@ -77,7 +77,7 @@ typedef struct { static off_t rtsp_plugin_read (input_plugin_t *this_gen, - char *buf, off_t len) { + void *buf, off_t len) { rtsp_input_plugin_t *this = (rtsp_input_plugin_t *) this_gen; off_t n; diff --git a/src/input/input_smb.c b/src/input/input_smb.c index 4cacebf89..87f2a81fa 100644 --- a/src/input/input_smb.c +++ b/src/input/input_smb.c @@ -66,9 +66,10 @@ smb_plugin_get_capabilities (input_plugin_t *this_gen) static off_t -smb_plugin_read (input_plugin_t *this_gen, char *buf, off_t len) +smb_plugin_read (input_plugin_t *this_gen, void *buf_gen, off_t len) { smb_input_t *this = (smb_input_t *) this_gen; + char *buf = (char *)buf_gen; off_t n, num_bytes; num_bytes = 0; diff --git a/src/input/input_stdin_fifo.c b/src/input/input_stdin_fifo.c index 939f56f25..2b3cf1376 100644 --- a/src/input/input_stdin_fifo.c +++ b/src/input/input_stdin_fifo.c @@ -81,9 +81,10 @@ static off_t stdin_plugin_get_current_pos (input_plugin_t *this_gen); static off_t stdin_plugin_read (input_plugin_t *this_gen, - char *buf, off_t len) { + void *buf_gen, off_t len) { stdin_input_plugin_t *this = (stdin_input_plugin_t *) this_gen; + char *buf = (char *)buf_gen; off_t n, total; lprintf ("reading %"PRId64" bytes...\n", len); diff --git a/src/input/input_v4l.c b/src/input/input_v4l.c index 6829470ff..959874b14 100644 --- a/src/input/input_v4l.c +++ b/src/input/input_v4l.c @@ -1192,7 +1192,7 @@ static int v4l_adjust_realtime_speed(v4l_input_plugin_t *this, fifo_buffer_t *fi * Plugin read. * This function is not supported by the plugin. */ -static off_t v4l_plugin_read (input_plugin_t *this_gen, char *buf, off_t len) { +static off_t v4l_plugin_read (input_plugin_t *this_gen, void *buf, off_t len) { lprintf("Read not supported\n"); return 0; } diff --git a/src/input/input_vcd.c b/src/input/input_vcd.c index bcd50ecc1..7d2ea0063 100644 --- a/src/input/input_vcd.c +++ b/src/input/input_vcd.c @@ -340,9 +340,10 @@ static int sun_vcd_read(vcd_input_plugin_t *this, long lba, cdsector_t *data) #if defined (__linux__) static off_t vcd_plugin_read (input_plugin_t *this_gen, - char *buf, off_t nlen) { + void *buf_gen, off_t nlen) { vcd_input_plugin_t *this = (vcd_input_plugin_t *) this_gen; + char *buf = (char *)buf_gen; static struct cdrom_msf msf ; static cdsector_t data; struct cdrom_msf0 *end_msf; @@ -398,8 +399,9 @@ static off_t vcd_plugin_read (input_plugin_t *this_gen, } #elif defined (__FreeBSD__) static off_t vcd_plugin_read (input_plugin_t *this_gen, - char *buf, off_t nlen) { + void *buf_gen, off_t nlen) { vcd_input_plugin_t *this = (vcd_input_plugin_t *) this_gen; + char *buf = (char *)buf_gen; static cdsector_t data; int bsize = 2352; @@ -422,9 +424,10 @@ static off_t vcd_plugin_read (input_plugin_t *this_gen, } #elif defined (__sun) static off_t vcd_plugin_read (input_plugin_t *this_gen, - char *buf, off_t nlen) { + void *buf_gen, off_t nlen) { vcd_input_plugin_t *this = (vcd_input_plugin_t *) this_gen; + char *buf = (char *)buf_gen; static cdsector_t data; struct cdrom_msf0 *end_msf; long lba; diff --git a/src/vdr/input_vdr.c b/src/vdr/input_vdr.c index 1f82def28..97da8e834 100644 --- a/src/vdr/input_vdr.c +++ b/src/vdr/input_vdr.c @@ -1308,9 +1308,10 @@ static int internal_write_event_play_external(vdr_input_plugin_t *this, uint32_t } static off_t vdr_plugin_read(input_plugin_t *this_gen, - char *buf, off_t len) + void *buf_gen, off_t len) { vdr_input_plugin_t *this = (vdr_input_plugin_t *) this_gen; + char *buf = (char *)buf_gen; off_t n, total; #ifdef LOG_READ lprintf ("reading %lld bytes...\n", len); diff --git a/src/xine-engine/input_cache.c b/src/xine-engine/input_cache.c index 75c4beb43..7537c4d16 100644 --- a/src/xine-engine/input_cache.c +++ b/src/xine-engine/input_cache.c @@ -62,8 +62,9 @@ typedef struct { /* * read data from input plugin and write it into file */ -static off_t cache_plugin_read(input_plugin_t *this_gen, char *buf, off_t len) { +static off_t cache_plugin_read(input_plugin_t *this_gen, void *buf_gen, off_t len) { cache_input_plugin_t *this = (cache_input_plugin_t *)this_gen; + char *buf = (char *)buf_gen; off_t read_len = 0; off_t main_read; diff --git a/src/xine-engine/input_rip.c b/src/xine-engine/input_rip.c index 56850ba2d..774ef82c5 100644 --- a/src/xine-engine/input_rip.c +++ b/src/xine-engine/input_rip.c @@ -100,8 +100,9 @@ static off_t min_off(off_t a, off_t b) { /* * read data from input plugin and write it into file */ -static off_t rip_plugin_read(input_plugin_t *this_gen, char *buf, off_t len) { +static off_t rip_plugin_read(input_plugin_t *this_gen, void *buf_gen, off_t len) { rip_input_plugin_t *this = (rip_input_plugin_t *)this_gen; + char *buf = (char *)buf_gen; off_t retlen, npreview, nread, nwrite, nread_orig, nread_file; lprintf("reading %"PRId64" bytes (curpos = %"PRId64", savepos = %"PRId64")\n", len, this->curpos, this->savepos); -- cgit v1.2.3 From 106dee09c13aae60a589c511e6499f8e8d049ce8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Diego=20=27Flameeyes=27=20Petten=C3=B2?= Date: Sat, 9 Jun 2007 11:46:03 +0200 Subject: Remove unused variable. --- src/xine-engine/scratch.c | 1 - 1 file changed, 1 deletion(-) diff --git a/src/xine-engine/scratch.c b/src/xine-engine/scratch.c index 4b694699f..ddca0cfaf 100644 --- a/src/xine-engine/scratch.c +++ b/src/xine-engine/scratch.c @@ -108,7 +108,6 @@ static void scratch_dispose (scratch_buffer_t *this) { scratch_buffer_t *_x_new_scratch_buffer (int num_lines) { scratch_buffer_t *this; - int i; this = xine_xmalloc (sizeof (scratch_buffer_t)); -- cgit v1.2.3 From fbbcbdc0f8c9effae987db271b0bca71098fe5c5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Diego=20=27Flameeyes=27=20Petten=C3=B2?= Date: Sat, 9 Jun 2007 11:46:22 +0200 Subject: Remove unused and orphan label and code. --- src/audio_out/audio_pulse_out.c | 6 ------ 1 file changed, 6 deletions(-) diff --git a/src/audio_out/audio_pulse_out.c b/src/audio_out/audio_pulse_out.c index 9e6089730..cd80318b6 100644 --- a/src/audio_out/audio_pulse_out.c +++ b/src/audio_out/audio_pulse_out.c @@ -626,12 +626,6 @@ static ao_driver_t *open_plugin (audio_driver_class_t *class_gen, const void *da this->pa_class = class; return &this->ao_driver; - - fail: - pthread_mutex_unlock(&this->pa_class->pa_mutex); - free(this); - xprintf (class->xine, XINE_VERBOSITY_DEBUG, "audio_pulse_out: open_plugin failed.\n"); - return NULL; } /* -- cgit v1.2.3 From 3a399036b466bbfc1ad3c379e0cc1c7d2f05e91c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Diego=20=27Flameeyes=27=20Petten=C3=B2?= Date: Sat, 9 Jun 2007 11:47:30 +0200 Subject: Remove unused variable. --- src/input/input_cdda.c | 1 - 1 file changed, 1 deletion(-) diff --git a/src/input/input_cdda.c b/src/input/input_cdda.c index e35ee5b9c..029658fe1 100644 --- a/src/input/input_cdda.c +++ b/src/input/input_cdda.c @@ -1566,7 +1566,6 @@ static int _cdda_load_cached_cddb_infos(cdda_input_plugin_t *this) { */ static void _cdda_save_cached_cddb_infos(cdda_input_plugin_t *this, char *filecontent) { FILE *fd; - DIR *dir; char *cfile; const char *const xdg_cache_home = xdgCacheHome(this->stream->xine->basedir_handle); -- cgit v1.2.3 From 5a6de3347ef0da6c51f936a8d94ab58404453300 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Diego=20=27Flameeyes=27=20Petten=C3=B2?= Date: Sat, 9 Jun 2007 11:48:09 +0200 Subject: Remove unused variable. --- src/demuxers/demux_realaudio.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/demuxers/demux_realaudio.c b/src/demuxers/demux_realaudio.c index bf8de0dad..0f8528a22 100644 --- a/src/demuxers/demux_realaudio.c +++ b/src/demuxers/demux_realaudio.c @@ -313,8 +313,6 @@ static int demux_ra_get_status (demux_plugin_t *this_gen) { /* return the approximate length in miliseconds */ static int demux_ra_get_stream_length (demux_plugin_t *this_gen) { - demux_ra_t *this = (demux_ra_t *) this_gen; - return 0; } -- cgit v1.2.3 From 72b3ce11eb673800237497eb74736ac092e9ee0d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Diego=20=27Flameeyes=27=20Petten=C3=B2?= Date: Sat, 9 Jun 2007 11:48:53 +0200 Subject: Remove unused variables. --- src/demuxers/demux_ts.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/demuxers/demux_ts.c b/src/demuxers/demux_ts.c index 0c8b4e974..2b3f77d11 100644 --- a/src/demuxers/demux_ts.c +++ b/src/demuxers/demux_ts.c @@ -1305,7 +1305,6 @@ printf("Program Number is %i, looking for %i\n",program_number,this->program_num case ISO_13818_PES_PRIVATE: for (i = 5; i < coded_length; i += stream[i+1] + 2) { if ((stream[i] == 0x6a) && (this->audio_tracks_count < MAX_AUDIO_TRACKS)) { - uint32_t format_identifier=0; int i, found = 0; for(i = 0; i < this->audio_tracks_count; i++) { if(this->audio_tracks[i].pid == pid) { @@ -2081,7 +2080,6 @@ static int demux_ts_get_optional_data(demux_plugin_t *this_gen, demux_ts_t *this = (demux_ts_t *) this_gen; char *str = data; int channel = *((int *)data); - int track_num; /* be a bit paranoid */ if (this == NULL || this->stream == NULL) -- cgit v1.2.3 From 9cfd704b3b6eadf2c5532908440c214edc6788f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Diego=20=27Flameeyes=27=20Petten=C3=B2?= Date: Sat, 9 Jun 2007 11:49:35 +0200 Subject: Fix %d -> %zd for size_t parameter. --- src/demuxers/demux_qt.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/demuxers/demux_qt.c b/src/demuxers/demux_qt.c index 4ce55502e..bfacd1410 100644 --- a/src/demuxers/demux_qt.c +++ b/src/demuxers/demux_qt.c @@ -758,7 +758,7 @@ static char *parse_data_atom(unsigned char *data_atom) { xine_fast_memcpy(alloc_str, &data_atom[16], alloc_size-1); alloc_str[alloc_size-1] = '\0'; - debug_meta_load("demux_qt: got a string of size %d (%s)\n", alloc_size, alloc_str); + debug_meta_load("demux_qt: got a string of size %zd (%s)\n", alloc_size, alloc_str); return alloc_str; } -- cgit v1.2.3 From e198fcdc4ace3f3c61f294e25a62a0aa308a1973 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Diego=20=27Flameeyes=27=20Petten=C3=B2?= Date: Sat, 9 Jun 2007 12:05:19 +0200 Subject: Add an nsf_combined.h header file with declarations of decoder_nsf_init_plugin and demux_nsf_init_plugin. --- src/combined/Makefile.am | 2 +- src/combined/nsf_combined.c | 4 +--- src/combined/nsf_combined.h | 22 ++++++++++++++++++++++ src/combined/nsf_decoder.c | 2 ++ src/combined/nsf_demuxer.c | 2 ++ 5 files changed, 28 insertions(+), 4 deletions(-) create mode 100644 src/combined/nsf_combined.h diff --git a/src/combined/Makefile.am b/src/combined/Makefile.am index c1e590fd7..47a42039f 100644 --- a/src/combined/Makefile.am +++ b/src/combined/Makefile.am @@ -28,7 +28,7 @@ xineplug_flac_la_SOURCES = flac_demuxer.c flac_decoder.c xineplug_flac_la_LIBADD = $(XINE_LIB) $(LIBFLAC_LIBS) xineplug_flac_la_CFLAGS = $(AM_CFLAGS) $(LIBFLAC_CFLAGS) -xineplug_nsf_la_SOURCES = nsf_decoder.c nsf_demuxer.c nsf_combined.c +xineplug_nsf_la_SOURCES = nsf_decoder.c nsf_demuxer.c nsf_combined.c nsf_combined.h xineplug_nsf_la_LIBADD = $(XINE_LIB) $(top_builddir)/contrib/nosefart/libnosefart.la -lm xineplug_nsf_la_CFLAGS = $(AM_CFLAGS) -fno-strict-aliasing xineplug_nsf_la_CPPFLAGS = $(AM_CPPFLAGS) -DNSF_PLAYER -I$(top_srcdir)/contrib/nosefart -I$(top_srcdir)/src/demuxers diff --git a/src/combined/nsf_combined.c b/src/combined/nsf_combined.c index 855b8d2a5..474064213 100644 --- a/src/combined/nsf_combined.c +++ b/src/combined/nsf_combined.c @@ -21,9 +21,7 @@ */ #include "xine_internal.h" - -void *decoder_nsf_init_plugin (xine_t *xine, void *data); -void *demux_nsf_init_plugin (xine_t *xine, void *data); +#include "nsf_combined.h" static const demuxer_info_t demux_info_nsf = { 10 /* priority */ diff --git a/src/combined/nsf_combined.h b/src/combined/nsf_combined.h new file mode 100644 index 000000000..36a0abe71 --- /dev/null +++ b/src/combined/nsf_combined.h @@ -0,0 +1,22 @@ +/* + * Copyright (C) 2000-2001 the xine project + * + * This file is part of xine, a free video player. + * + * xine is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * xine is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + +void *decoder_nsf_init_plugin (xine_t *xine, void *data); +void *demux_nsf_init_plugin (xine_t *xine, void *data); diff --git a/src/combined/nsf_decoder.c b/src/combined/nsf_decoder.c index e8b5dd96a..01884f267 100644 --- a/src/combined/nsf_decoder.c +++ b/src/combined/nsf_decoder.c @@ -39,6 +39,8 @@ #include "types.h" #include "nsf.h" +#include "nsf_combined.h" + typedef struct { audio_decoder_class_t decoder_class; } nsf_class_t; diff --git a/src/combined/nsf_demuxer.c b/src/combined/nsf_demuxer.c index b598b9e1c..3ebacc217 100644 --- a/src/combined/nsf_demuxer.c +++ b/src/combined/nsf_demuxer.c @@ -54,6 +54,8 @@ #include "demux.h" #include "bswap.h" +#include "nsf_combined.h" + #define NSF_HEADER_SIZE 0x80 #define NSF_SAMPLERATE 44100 #define NSF_BITS 8 -- cgit v1.2.3 From 14d1a63dc30aa4590c30b24b824b4cc76e869183 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Diego=20=27Flameeyes=27=20Petten=C3=B2?= Date: Sat, 9 Jun 2007 12:22:54 +0200 Subject: Define sigill_return and sigill_handler only on x86, as there is where they only are used. --- src/xine-utils/cpu_accel.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/xine-utils/cpu_accel.c b/src/xine-utils/cpu_accel.c index b32733fba..ddada94d3 100644 --- a/src/xine-utils/cpu_accel.c +++ b/src/xine-utils/cpu_accel.c @@ -24,8 +24,6 @@ #include #include #include -#include -#include #include #if defined (__SVR4) && defined (__sun) @@ -42,11 +40,16 @@ #if defined(ARCH_X86) || defined(ARCH_X86_64) +#ifndef __x86_64__ +#include +#include + static jmp_buf sigill_return; static void sigill_handler (int n) { longjmp(sigill_return, 1); } +#endif static uint32_t arch_accel (void) { -- cgit v1.2.3 From 1164322fc326fd8023c9a01823092eac105ccba5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Diego=20=27Flameeyes=27=20Petten=C3=B2?= Date: Sat, 9 Jun 2007 12:30:11 +0200 Subject: Include dlfcn.h only when dlopen() is needed. --- src/xine-utils/cpu_accel.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/xine-utils/cpu_accel.c b/src/xine-utils/cpu_accel.c index ddada94d3..9285148b8 100644 --- a/src/xine-utils/cpu_accel.c +++ b/src/xine-utils/cpu_accel.c @@ -24,7 +24,10 @@ #include #include #include + +#if defined(HAVE_MLIB) && defined(MLIB_LAZYLOAD) #include +#endif #if defined (__SVR4) && defined (__sun) #include -- cgit v1.2.3 From 2c5cfbc4e033c3959f5e3c9707b71044adadbd55 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Diego=20=27Flameeyes=27=20Petten=C3=B2?= Date: Sat, 9 Jun 2007 12:50:55 +0200 Subject: If 3dNOW is enabled at build-time, mark it as present on x86-64; it's not always there because Intel EM64T machines does not have it. --- src/xine-utils/cpu_accel.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/xine-utils/cpu_accel.c b/src/xine-utils/cpu_accel.c index 9285148b8..147a32ac5 100644 --- a/src/xine-utils/cpu_accel.c +++ b/src/xine-utils/cpu_accel.c @@ -61,7 +61,11 @@ static uint32_t arch_accel (void) #ifdef __x86_64__ /* No need to test for this on AMD64, we know what the platform has. */ - caps = MM_ACCEL_X86_MMX | MM_ACCEL_X86_SSE | MM_ACCEL_X86_MMXEXT | MM_ACCEL_X86_SSE2; + caps = MM_ACCEL_X86_MMX | MM_ACCEL_X86_SSE | MM_ACCEL_X86_MMXEXT | MM_ACCEL_X86_SSE2 +# if defined(__3dNOW__) + | MM_ACCEL_X86_3DNOW +# endif + ; #else #ifndef _MSC_VER -- cgit v1.2.3 From 13cb1497c43a5bffc29ca27933c37c5e3e898d94 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Diego=20=27Flameeyes=27=20Petten=C3=B2?= Date: Sat, 9 Jun 2007 12:56:14 +0200 Subject: If SSE, SSE2 and MMX are enabled at build-time, enable them and skip over the cpuid tests; a runtime CPU detection option could be supplied by configure, for instance. --- src/xine-utils/cpu_accel.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/xine-utils/cpu_accel.c b/src/xine-utils/cpu_accel.c index 147a32ac5..e350898eb 100644 --- a/src/xine-utils/cpu_accel.c +++ b/src/xine-utils/cpu_accel.c @@ -58,7 +58,8 @@ static uint32_t arch_accel (void) { uint32_t caps; -#ifdef __x86_64__ +#if defined(__x86_64__) || \ + ( defined(__SSE__) && defined(__SSE2__) && defined(__MMX__) ) /* No need to test for this on AMD64, we know what the platform has. */ caps = MM_ACCEL_X86_MMX | MM_ACCEL_X86_SSE | MM_ACCEL_X86_MMXEXT | MM_ACCEL_X86_SSE2 @@ -158,6 +159,9 @@ static uint32_t arch_accel (void) caps = 0; #endif /* _MSC_VER */ +#endif /* x86_64 or built-in options */ + +#ifndef __x86_64__ /* test OS support for SSE */ if (caps & MM_ACCEL_X86_SSE) { void (*old_sigill_handler)(int); -- cgit v1.2.3 From 71895542f37568218e6c479c9036218e856c8fb3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Diego=20=27Flameeyes=27=20Petten=C3=B2?= Date: Sat, 9 Jun 2007 13:04:05 +0200 Subject: Use __i386__ and __x86_64__ instead of ARCH_X86 and ARCH_X86_64; the ARCH_* defines comes from FFmpeg, but they can easily stay there. --- src/xine-utils/cpu_accel.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/xine-utils/cpu_accel.c b/src/xine-utils/cpu_accel.c index e350898eb..87d7aee77 100644 --- a/src/xine-utils/cpu_accel.c +++ b/src/xine-utils/cpu_accel.c @@ -41,7 +41,7 @@ #include "xineutils.h" -#if defined(ARCH_X86) || defined(ARCH_X86_64) +#if defined(__i386__) || defined(__x86_64__) #ifndef __x86_64__ #include @@ -183,7 +183,7 @@ static uint32_t arch_accel (void) return caps; } -#endif /* ARCH_X86 */ +#endif /* i386 or x86_64 */ #if defined(ARCH_PPC) && defined(ENABLE_ALTIVEC) static sigjmp_buf jmpbuf; @@ -340,7 +340,7 @@ uint32_t xine_mm_accel (void) #endif #endif -#if defined(ARCH_X86) || defined(ARCH_X86_64) || (defined(ARCH_PPC) && defined(ENABLE_ALTIVEC)) || (defined(ARCH_SPARC) && defined(ENABLE_VIS)) +#if defined(__i386__) || defined(__x86_64__) || (defined(ARCH_PPC) && defined(ENABLE_ALTIVEC)) || (defined(ARCH_SPARC) && defined(ENABLE_VIS)) accel |= arch_accel(); #endif -- cgit v1.2.3 From d5d3776bf7e2733d382c5811b317bcdb7c2c9e88 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Diego=20=27Flameeyes=27=20Petten=C3=B2?= Date: Sat, 9 Jun 2007 13:04:43 +0200 Subject: signal.h and setjmp.h are needed on PPC and SPARC too. --- src/xine-utils/cpu_accel.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/xine-utils/cpu_accel.c b/src/xine-utils/cpu_accel.c index 87d7aee77..06ee90cd3 100644 --- a/src/xine-utils/cpu_accel.c +++ b/src/xine-utils/cpu_accel.c @@ -186,6 +186,9 @@ static uint32_t arch_accel (void) #endif /* i386 or x86_64 */ #if defined(ARCH_PPC) && defined(ENABLE_ALTIVEC) +#include +#include + static sigjmp_buf jmpbuf; static volatile sig_atomic_t canjump = 0; @@ -270,6 +273,9 @@ static uint32_t arch_accel (void) return flags; } #else +#include +#include + static sigjmp_buf jmpbuf; static volatile sig_atomic_t canjump = 0; -- cgit v1.2.3