From: <li...@yo...> - 2007-10-29 17:32:43
|
# HG changeset patch # User Darren Salt <li...@yo...> # Date 1193677771 0 # Node ID ff19f68c92f2b618d918332f6eae9b10e12a7b63 # Parent ae9a2fddb2b6b50dab2a7ac649b2307719c78fe2 # Parent 5574c3327175ad4770c8ba1f3f07b55cf84faea5 Merge from 1.1. Spanish translation merge needs checking. diff -r ff19f68c92f2b618d918332f6eae9b10e12a7b63 -r ae9a2fddb2b6b50dab2a7ac649b2307719c78fe2 ChangeLog --- a/ChangeLog Mon Oct 29 17:09:31 2007 +0000 +++ b/ChangeLog Thu Oct 25 13:53:42 2007 +0100 @@ -55,6 +55,7 @@ xine-lib (1.1.9) (unreleased) * Improve handling of invalid or unknown frame sizes. * Fixed handling of streamed Flash videos (broken in 1.1.5). * Fixed division by zero in sputext decoder + * Build fix for when using Linux 2.6.23 headers. [Bug 1820958] xine-lib (1.1.8) * Send a channel-changed event to the frontend when receiving the SYNC diff -r ff19f68c92f2b618d918332f6eae9b10e12a7b63 -r ae9a2fddb2b6b50dab2a7ac649b2307719c78fe2 po/es.po --- a/po/es.po Mon Oct 29 17:09:31 2007 +0000 +++ b/po/es.po Thu Oct 25 13:53:42 2007 +0100 @@ -4,13 +4,14 @@ # # Juan Manuel García Molina <jua...@wa...>, 2002. # Carlos E. Robinson M. <car...@us...>, 2006, 2007. +# Cer: <<== marcas de revision. msgid "" msgstr "" "Project-Id-Version: xine-lib-1.1.4\n" "Report-Msgid-Bugs-To: xin...@li...\n" -"POT-Creation-Date: 2007-06-02 13:14+0200\n" -"PO-Revision-Date: 2007-02-28 14:07+0100\n" -"Last-Translator: Carlos E. Robinson M. <car...@us...>\n" +"POT-Creation-Date: 2007-08-26 22:19+0100\n" +"PO-Revision-Date: 2007-10-28 00:11+0200\n" +"Last-Translator: Carlos E. Robinson <car...@us...>\n" "Language-Team: Spanish\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -20,35 +21,31 @@ msgstr "" "X-Poedit-Language: Spanish\n" "X-Poedit-Country: SPAIN\n" "X-Poedit-SourceCharset: utf-8\n" -"X-Poedit-Basepath: /home/cer/compilaciones/xine/xine-lib-1.1.4\n" +"X-Poedit-Basepath: /home/cer/Documents/babel/xine-lib/po/\n" #: lib/hstrerror.c:17 -#, fuzzy msgid "No error" -msgstr "error desconocido" +msgstr "Sin error" #: lib/hstrerror.c:18 -#, fuzzy msgid "Unknown host" -msgstr "error desconocido" +msgstr "Host desconocido" #: lib/hstrerror.c:19 msgid "No address associated with name" -msgstr "" +msgstr "No hay dirección asociada con el nombre" #: lib/hstrerror.c:20 -#, fuzzy msgid "Unknown server error" -msgstr "error desconocido" +msgstr "Error de servidor desconocido" #: lib/hstrerror.c:21 msgid "Host name lookup failure" -msgstr "" +msgstr "Fallo de búsqueda de nombre del host" #: lib/hstrerror.c:22 -#, fuzzy msgid "Unknown error" -msgstr "error desconocido" +msgstr "Error desconocido" #: src/audio_out/audio_alsa_out.c:351 #, c-format @@ -243,7 +240,7 @@ msgstr "" "un superbajos para las frecuencias bajas.\n" "Paso libre: Su sistema de sonido recibirá sonido digital sin decodificar de " "xine. Necesita conectar un decodificador digital envolvente capaz de " -"decodificar los formatos que quiera reproducir mediate la salida digital de " +"decodificar los formatos que quiera reproducir mediante la salida digital de " "su tarjeta de sonido." #: src/audio_out/audio_alsa_out.c:1491 @@ -568,8 +565,8 @@ msgid "" "The unit of the value is one PTS tick, which is the 90000th part of a second." msgstr "" "Si observa que el sonido no está sincronizado con la imagen, puede " -"introducir aquí un desfase fijo para compensar.\n" -"La unidad del valor es un tick PTS tick, que es 1/90000 de segundo." +"introducir aquí un desfase fijo para compensar.\n" +"La unidad del valor es una marca PTS, que es 1/90000 segundo." #: src/audio_out/audio_esd_out.c:574 msgid "xine audio output plugin using esound" @@ -592,16 +589,16 @@ msgstr "" msgstr "" "Puede especificar la máxima distancia entre el audio y el video que xine " "tolerará antes de que trate de resincronizarlos.\n" -"La unidad del valor es un tick PTS tick, que es 1/90000 de segundo." +"La unidad del valor es una marca PTS, que es 1/90000 segundo." #: src/audio_out/audio_irixal_out.c:417 msgid "xine audio output plugin using IRIX libaudio" msgstr "complemento de xine de salida de audio usando libaudio IRIX" #: src/audio_out/audio_jack_out.c:406 -#, fuzzy msgid "xine output plugin for JACK Audio Connection Kit" -msgstr "complemento de xine de salida de audio para Coreaudio/Mac OS X" +msgstr "" +"complemento de xine de salida de audio para \"JACK Audio Connection Kit\"" #: src/audio_out/audio_none_out.c:225 msgid "xine dummy audio output plugin" @@ -813,22 +810,23 @@ msgstr "" "complemento de xine de salida de audio usando dispositivos/drivers " "compatibles OSS" +# Cer: ¿pulseaudio? #: src/audio_out/audio_pulse_out.c:608 -#, fuzzy msgid "device used for pulseaudio" -msgstr "dispositivo usado para polypaudio" - +msgstr "dispositivo usado para audio a pulsos" + +# Cer: ¿pulseaudio? Estaba como "polypaudio" pero fuzzy. #: src/audio_out/audio_pulse_out.c:609 -#, fuzzy msgid "use 'server[:sink]' for setting the pulseaudio sink device." msgstr "" -"use 'server[:sink]' para definir el sumidero del dispositivo polypaudio." - +"use 'server[:sink]' para definir el sumidero del dispositivo audio a pulsos." + +# Cer: ¿pulseaudio? #: src/audio_out/audio_pulse_out.c:646 -#, fuzzy [... 2394 lines omitted ...] #: src/xine-engine/xine_interface.c:958 msgid "Warning:" -msgstr "" +msgstr "Aviso:" #: src/xine-engine/xine_interface.c:959 -#, fuzzy msgid "Unknown host:" -msgstr "error desconocido" +msgstr "host desconocido:" #: src/xine-engine/xine_interface.c:960 -#, fuzzy msgid "Unknown device:" -msgstr "Tipo de evento desconocido: " +msgstr "Dispositivo desconocido:" #: src/xine-engine/xine_interface.c:961 msgid "Network unreachable" -msgstr "" +msgstr "Red no alcanzable" #: src/xine-engine/xine_interface.c:962 msgid "Connection refused:" -msgstr "" +msgstr "Conexión rechazada:" #: src/xine-engine/xine_interface.c:963 -#, fuzzy msgid "File not found:" -msgstr "input_file: Fichero no encontrado: >%s<\n" +msgstr "Fichero no encontrado:" #: src/xine-engine/xine_interface.c:964 msgid "Read error from:" -msgstr "" +msgstr "Error de lectura desde:" #: src/xine-engine/xine_interface.c:965 msgid "Error loading library:" -msgstr "" +msgstr "Error de carga de librería:" #: src/xine-engine/xine_interface.c:966 -#, fuzzy msgid "Encrypted media stream detected" -msgstr "ogg: detectado stream de audio vorbis\n" +msgstr "Detectado flujo de bits de medios encriptado" #: src/xine-engine/xine_interface.c:967 msgid "Security message:" -msgstr "" +msgstr "Mensaje de seguridad:" #: src/xine-engine/xine_interface.c:968 -#, fuzzy msgid "Audio device unavailable" -msgstr "nombre del dispositivo de audio OSS" +msgstr "Dispositivo de audio no disponible" #: src/xine-engine/xine_interface.c:969 msgid "Permission error" -msgstr "" +msgstr "Error de permisos" #: src/xine-engine/xine_interface.c:970 msgid "File is empty:" -msgstr "" +msgstr "El fichero está vacío:" #: src/xine-utils/memcpy.c:479 msgid "memcopy method used by xine" -msgstr "" +msgstr "método \"memcopy\" usado por xine" #: src/xine-utils/memcpy.c:480 msgid "" @@ -5626,45 +6177,11 @@ msgid "" "on todays computers. Therefore xine provides various tuned methods to do " "this copying. Usually, the best method is detected automatically." msgstr "" +"El copiado de grandes bloques de memoria es una de las operaciones más " +"costosas en las computadoras actuales. Por tanto xine provee varios metodos " +"ajustados para hacer este copiado. Usualmente, el método mejor se detecta " +"automáticamente." #: src/xine-utils/memcpy.c:507 msgid "Benchmarking memcpy methods (smaller is better):\n" -msgstr "" - -#, fuzzy -#~ msgid "video_out_xcbshm: your video mode was not recognized, sorry :-(\n" -#~ msgstr "video_out_fb: Lo sentimos, su modo de vídeo no fue reconocido .\n" - -#~ msgid "CDDB cache directory" -#~ msgstr "directorio caché del CDDB" - -#~ msgid "" -#~ "The replies from the CDDB server will be cached in this directory.\n" -#~ "This setting is security critical, because files with uncontrollable " -#~ "names will be created in this directory. Be sure to use a dedicated " -#~ "directory not used for anything but CDDB caching." -#~ msgstr "" -#~ "Las respuestas del servidor CDDB serán almacenadas temporalmente en este " -#~ "directorio.\n" -#~ "Esta configuración es crítica para su seguridad, porque nombres sin " -#~ "control serán creados en este directorio. Asegúrese de poner un " -#~ "directorio dedicado que no se use para ninguna otra cosa que el cacheado " -#~ "del CDDB." - -#~ msgid "path to the title key cache" -#~ msgstr "camino al caché de claves de títulos" - -#~ msgid "" -#~ "Since cracking the copy protection of scrambled DVDs can be quite time " -#~ "consuming, libdvdcss will cache the cracked keys in this directory.\n" -#~ "This setting is security critical, because files with uncontrollable " -#~ "names will be created in this directory. Be sure to use a dedicated " -#~ "directory not used for anything but DVD key caching." -#~ msgstr "" -#~ "Puesto que rompler la protección de copia de DVDs crifrados puede " -#~ "consumir bastante tiempo, libdvdcss almacenará las claves rotas en éste " -#~ "directorio.\n" -#~ "Esta configuración es de seguridad crítica, porque en este directorio se " -#~ "crearán ficheros con nombres incontrolables. Asegúrse de usar un " -#~ "directorio dedicado que no se use para otra cosa excepto cacheado de " -#~ "claves de DVDs." +msgstr "Evaluando métodos \"memcpy\" (menor es mejor):\n" diff -r ff19f68c92f2b618d918332f6eae9b10e12a7b63 -r ae9a2fddb2b6b50dab2a7ac649b2307719c78fe2 src/xine-engine/buffer_types.c --- a/src/xine-engine/buffer_types.c Mon Oct 29 17:09:31 2007 +0000 +++ b/src/xine-engine/buffer_types.c Thu Oct 25 13:53:42 2007 +0100 @@ -59,6 +59,7 @@ static const video_db_t video_db[] = { ME_FOURCC('P', 'I', 'M', '1'), ME_FOURCC('m', 'p', 'g', '2'), ME_FOURCC('m', 'p', 'g', '1'), + ME_FOURCC(0x02, 0, 0, 0x10), 0 }, BUF_VIDEO_MPEG, @@ -1212,3 +1213,4 @@ void _x_waveformatex_le2me( xine_wavefor wavex->wBitsPerSample = le2me_16(wavex->wBitsPerSample); wavex->cbSize = le2me_16(wavex->cbSize); } + diff -r ff19f68c92f2b618d918332f6eae9b10e12a7b63 -r ae9a2fddb2b6b50dab2a7ac649b2307719c78fe2 src/input/vcd/libcdio/_cdio_linux.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/input/vcd/libcdio/_cdio_linux.c Thu Oct 25 13:53:42 2007 +0100 @@ -0,0 +1,1198 @@ +/* + $Id: _cdio_linux.c,v 1.4 2006/09/26 22:18:44 dgp85 Exp $ + + Copyright (C) 2001 Herbert Valerio Riedel <hv...@gn...> + Copyright (C) 2002, 2003, 2004 Rocky Bernstein <ro...@pa...> + + This program 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. + + This program 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 +*/ + +/* This file contains Linux-specific code and implements low-level + control of the CD drive. +*/ + +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + +static const char _rcsid[] = "$Id: _cdio_linux.c,v 1.4 2006/09/26 22:18:44 dgp85 Exp $"; + +#include <string.h> + +#include <cdio/sector.h> +#include <cdio/util.h> +#include <cdio/types.h> +#include <cdio/scsi_mmc.h> +#include <cdio/cdtext.h> +#include "cdtext_private.h" +#include "cdio_assert.h" +#include "cdio_private.h" + +#ifdef HAVE_LINUX_CDROM + +#if defined(HAVE_LINUX_VERSION_H) +# include <linux/version.h> +# if LINUX_VERSION_CODE >= KERNEL_VERSION(2,2,16) +# define __CDIO_LINUXCD_BUILD +# else +# error "You need a kernel greater than 2.2.16 to have CDROM support" +# endif +#else +# error "You need <linux/version.h> to have CDROM support" +#endif + +#include <stdio.h> +#include <stdlib.h> +#include <errno.h> +#include <unistd.h> +#include <fcntl.h> +#include <mntent.h> +#include <limits.h> + +#include <linux/cdrom.h> +#include <scsi/scsi.h> +#include <scsi/sg.h> +#include <scsi/scsi_ioctl.h> +#include <sys/mount.h> + +#include <sys/stat.h> +#include <sys/types.h> +#include <sys/ioctl.h> + +typedef enum { + _AM_NONE, + _AM_IOCTL, + _AM_READ_CD, + _AM_READ_10 +} access_mode_t; + +typedef struct { + /* Things common to all drivers like this. + This must be first. */ + generic_img_private_t gen; + + access_mode_t access_mode; + + /* Some of the more OS specific things. */ + /* Entry info for each track, add 1 for leadout. */ + struct cdrom_tocentry tocent[CDIO_CD_MAX_TRACKS+1]; + + struct cdrom_tochdr tochdr; + +} _img_private_t; + +/* Some ioctl() errno values which occur when the tray is empty */ +#define ERRNO_TRAYEMPTY(errno) \ + ((errno == EIO) || (errno == ENOENT) || (errno == EINVAL)) + +/**** prototypes for static functions ****/ +static bool is_cdrom_linux(const char *drive, char *mnttype); +static bool read_toc_linux (void *p_user_data); +static int run_scsi_cmd_linux( const void *p_user_data, + unsigned int i_timeout, + unsigned int i_cdb, + const scsi_mmc_cdb_t *p_cdb, + scsi_mmc_direction_t e_direction, + unsigned int i_buf, + /*in/out*/ void *p_buf ); +static access_mode_t + +str_to_access_mode_linux(const char *psz_access_mode) +{ + const access_mode_t default_access_mode = _AM_IOCTL; + + if (NULL==psz_access_mode) return default_access_mode; + + if (!strcmp(psz_access_mode, "IOCTL")) + return _AM_IOCTL; + else if (!strcmp(psz_access_mode, "READ_CD")) + return _AM_READ_CD; + else if (!strcmp(psz_access_mode, "READ_10")) + return _AM_READ_10; + else { [... 946 lines omitted ...] + for ( j=checklist2[i][1]; exists; ++j ) { + sprintf(drive, "/dev/%s", &checklist2[i][3]); + insert = strchr(drive, '?'); + if ( insert != NULL ) { + *insert = j; + } + if ( (exists=is_cdrom_linux(drive, NULL)) > 0 ) { + return(strdup(drive)); + } + } + } + return NULL; +#endif /*HAVE_LINUX_CDROM*/ +} +/*! + Initialization routine. This is the only thing that doesn't + get called via a function pointer. In fact *we* are the + ones to set that up. + */ +CdIo * +cdio_open_linux (const char *psz_source_name) +{ + return cdio_open_am_linux(psz_source_name, NULL); +} + +/*! + Initialization routine. This is the only thing that doesn't + get called via a function pointer. In fact *we* are the + ones to set that up. + */ +CdIo * +cdio_open_am_linux (const char *psz_orig_source, const char *access_mode) +{ + +#ifdef HAVE_LINUX_CDROM + CdIo *ret; + _img_private_t *_data; + char *psz_source; + + cdio_funcs _funcs = { + .eject_media = eject_media_linux, + .free = cdio_generic_free, + .get_arg = get_arg_linux, + .get_cdtext = get_cdtext_generic, + .get_default_device = cdio_get_default_device_linux, + .get_devices = cdio_get_devices_linux, + .get_discmode = get_discmode_linux, +#if USE_LINUX_CAP + .get_drive_cap = get_drive_cap_linux, +#else + .get_drive_cap = scsi_mmc_get_drive_cap_generic, +#endif + .get_first_track_num= get_first_track_num_generic, + .get_hwinfo = NULL, + .get_mcn = get_mcn_linux, + .get_num_tracks = get_num_tracks_generic, + .get_track_format = get_track_format_linux, + .get_track_green = get_track_green_linux, + .get_track_lba = NULL, /* This could be implemented if need be. */ + .get_track_msf = get_track_msf_linux, + .lseek = cdio_generic_lseek, + .read = cdio_generic_read, + .read_audio_sectors = _read_audio_sectors_linux, + .read_mode1_sector = _read_mode1_sector_linux, + .read_mode1_sectors = _read_mode1_sectors_linux, + .read_mode2_sector = _read_mode2_sector_linux, + .read_mode2_sectors = _read_mode2_sectors_linux, + .read_toc = read_toc_linux, + .run_scsi_mmc_cmd = run_scsi_cmd_linux, + .set_arg = set_arg_linux, + .stat_size = stat_size_linux + }; + + _data = _cdio_malloc (sizeof (_img_private_t)); + + _data->access_mode = str_to_access_mode_linux(access_mode); + _data->gen.init = false; + _data->gen.toc_init = false; + _data->gen.fd = -1; + _data->gen.b_cdtext_init = false; + _data->gen.b_cdtext_error = false; + + if (NULL == psz_orig_source) { + psz_source=cdio_get_default_device_linux(); + if (NULL == psz_source) { + free(_data); + return NULL; + } + set_arg_linux(_data, "source", psz_source); + free(psz_source); + } else { + if (cdio_is_device_generic(psz_orig_source)) + set_arg_linux(_data, "source", psz_orig_source); + else { + /* The below would be okay if all device drivers worked this way. */ +#if 0 + cdio_info ("source %s is not a device", psz_orig_source); +#endif + free(_data); + return NULL; + } + } + + ret = cdio_new ((void *)_data, &_funcs); + if (ret == NULL) return NULL; + + if (cdio_generic_init(_data)) { + return ret; + } else { + cdio_generic_free (_data); + return NULL; + } + +#else + return NULL; +#endif /* HAVE_LINUX_CDROM */ + +} + +bool +cdio_have_linux (void) +{ +#ifdef HAVE_LINUX_CDROM + return true; +#else + return false; +#endif /* HAVE_LINUX_CDROM */ +} |