| |
|
3
|
Sistemas Operativos / GNU/Linux / Re: Problema compilando VLC
|
en: 07 Octubre 2008, 13:18
|
|
En Slackware, pero quiero compilar yo mismo la aplicacion, no quiero instalarlo con los paquetes .tgz. Lo unico que se me ocurre, esque haya metido unas librerias que requiere en otro lado, asi que probare indicandole el path, y asi lo hare con todas las librerias que vlc depende y con el propio vlc.
|
|
|
|
|
4
|
Sistemas Operativos / GNU/Linux / Re: Problema compilando VLC
|
en: 07 Octubre 2008, 00:25
|
./configure --enable-release --enable-fb --enable-theora --enable-dvbpsi --enable-libmpeg2 --enable-read --enable-realrtsp --disable-httpd --disable-opengl --disable-wxwidgets --disable-aa --enable-ogg --enable-vorbis --enable-dvd --enable-ffmpeg --disable-bonjour --disable-joystic --disable-gnomevfs --enable-flac --enable-faad --with-ffmpeg-mp3lame --with-ffmpeg-faac --with-ffmpeg-zlib --enable-aa --enable-a52 --enable-mp4 --disable-x264 --enable-mod --enable-dmo --enable-loader Estas son las opciones con las que arranco configure
|
|
|
|
|
5
|
Sistemas Operativos / GNU/Linux / Re: Problema compilando VLC
|
en: 06 Octubre 2008, 22:56
|
|
Cuando compilo claro. En el configure no me da ningun error, instale un par de cosas que decia que no tenia, como los avcodec y demas, pero lo instale y ningun problema, hasta al compilar.
|
|
|
|
|
6
|
Sistemas Operativos / GNU/Linux / Problema compilando VLC
|
en: 06 Octubre 2008, 22:06
|
Buenas, he instalado las libs que necesita vlc, y me he bajado la ultima version, el src, y lo he puesto a compilar, pero me da error, en funciones indefinidas etc... In file included from demux.c:46: ../../codec/avcodec/chroma.h: In function 'GetFfmpegChroma': ../../codec/avcodec/chroma.h:117: warning: comparison between signed and unsigned ../../codec/avcodec/chroma.h:118: warning: comparison between signed and unsigned ../../codec/avcodec/chroma.h:119: warning: comparison between signed and unsigned demux.c: At top level: demux.c:87: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'IOSeek' demux.c: In function 'OpenDemux': demux.c:103: warning: passing argument 2 of 'stream_Peek' from incompatible pointer type demux.c:173: warning: implicit declaration of function 'offset_t' demux.c:173: error: expected epresionje before ')' token demux.c:173: error: called object 'offset_t(<erroneous-epresionje>)' is not a function demux.c:173: error: expected ';' before 'IOSeek' demux.c:177: error: 'IOSeek' undeclared (first use in this function) demux.c:177: error: (Each undeclared identifier is reported only once demux.c:177: error: for each function it appears in.) demux.c: In function 'Control': demux.c:387: warning: cast from function call of type 'int64_t' to non-matching type 'double' demux.c: At top level: demux.c:496: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'IOSeek' make[6]: *** [libavformat_plugin_la-demux.lo] Error 1 make[6]: Leaving directory `/home/0xnull/codigo_fuentes/vlc-0.9.3/modules/demux/avformat' make[5]: *** [all] Error 2 make[5]: Leaving directory `/home/0xnull/codigo_fuentes/vlc-0.9.3/modules/demux/avformat' make[4]: *** [all-recursive] Error 1 make[4]: Leaving directory `/home/0xnull/codigo_fuentes/vlc-0.9.3/modules/demux' make[3]: *** [all] Error 2 make[3]: Leaving directory `/home/0xnull/codigo_fuentes/vlc-0.9.3/modules/demux' make[2]: *** [all-recursive] Error 1 make[2]: Leaving directory `/home/0xnull/codigo_fuentes/vlc-0.9.3/modules' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/home/0xnull/codigo_fuentes/vlc-0.9.3' make: *** [all] Error 2
Alguien me puede echar una mano?
|
|
|
|
|
8
|
Sistemas Operativos / GNU/Linux / Dudas con bash
|
en: 01 Octubre 2008, 21:39
|
|
Buenas, estaba haciendo un shell script, para algo:
Debo pasar mis archivos de .mp3 a .wav para grabarlos, esto lo hago con lame, entonces como son varios archivos, pense en hacer un script que tomara un directorio y los llera convirtiendo a todos. Pero mi sorpresa esque claro, como los archivos, muchos llevan, espacios etc, solo coge partes del titulo de la cancion.
Por ejemplo:
01 - Pepito.mp3
y hago: for i in `ls -1` ; do [lo que haga] ; done
Me pondra:
01: no se ha encontrado.
Mi pregunta es por esto, hay alguna forma de sustituir los espacios por _?
Gracias de antemano
|
|
|
|
|
9
|
Sistemas Operativos / GNU/Linux / Iptables con Amule
|
en: 28 Septiembre 2008, 01:23
|
Hola, tengo una duda: He establecido una regla de denegacion por defecto en iptables, y he ido permitiendo aquello que me interesaba como pidgin, puerto 80/443, udp 53 para dns etc. En mi router tengo abiertos los puertos 4662 tcp, udp 4672 y 4665, y los tengo redirigidos a mi ip interna a los mismos puertos. Entonces lo que he hecho ha sido aplicar las siguientes reglas para amule: #amule
$IP -A INPUT -p tcp -m tcp --sport 4662 -m state --state RELATED,ESTABLISHED,NEW -j ACCEPT $IP -A OUTPUT -p tcp -m tcp --dport 4662 -j ACCEPT
$IP -A INPUT -p udp -m udp --sport 4672 -m state --state RELATED,ESTABLISHED,NEW -j ACCEPT $IP -A OUTPUT -p udp -m udp --dport 4672 -j ACCEPT
$IP -A INPUT -p udp -m udp --sport 4665 -m state --state RELATED,ESTABLISHED,NEW -j ACCEPT $IP -A INPUT -p udp -m udp --dport 4665 -j ACCEPT
Es correcto? Pidgin, puerto 80, dns etc me funciona, y amule tambien pero con ID baja, aunque me da un aviso de que mi ip termina en "0" y es por eso(asi que presupongo que las reglas estan bien) Un ejemplo de las otras que tengo para pidgin o puerto 53 son estas: #pidgin
$IP -A INPUT -p tcp -m tcp --sport 1863 -m state --state RELATED,ESTABLISHED -j ACCEPT $IP -A OUTPUT -p tcp -m tcp --dport 1863 -j ACCEPT
#dns
$IP -A INPUT -s 80.58.0.33 -p udp -m udp --sport 53 -j ACCEPT $IP -A OUTPUT -d 80.58.0.33 -p udp -m udp --dport 53 -j ACCEPT
#dns2
$IP -A INPUT -s 80.58.32.97 -p udp -m udp --sport 53 -j ACCEPT $IP -A OUTPUT -d 80.58.32.97 -p udp -m udp --dport 53 -j ACCEPT Gracias de antemano
|
|
|
|
|
10
|
Sistemas Operativos / GNU/Linux / Amule y firefox problema
|
en: 27 Septiembre 2008, 22:39
|
Buenas, hace un par de dias, vengo experimentando algo extraño. Me baje amule, lo compile y demas, cambie la cfg(puertos, limite subida/descarga, archivos etc) y abri los puertos en el router. El caso esque, tras dejarlo quizas 15h encendido, me encuentro con que cuando vuelvo no esta, y yo extrañado, miro el dmesg y mi sorpresa es: Out of memory: kill process 4582 (amule) score 385001 or a child Killed process 4582 (amule) hald invoked oom-killer: gfp_mask=0x1201d2, order=0, oomkilladj=0 Pid: 2764, comm: hald Not tainted 2.6.24.5-smp #2 [<c0158a5a>] oom_kill_process+0x10a/0x120 [<c0158e67>] out_of_memory+0x167/0x1a0 [<c015b1ac>] __alloc_pages+0x32c/0x360 [<c015d19d>] __do_page_cache_readahead+0x11d/0x240 [<c0155850>] sync_page+0x0/0x40 [<c015d68c>] do_page_cache_readahead+0x4c/0x70 [<c0157fa2>] filemap_fault+0x2f2/0x420 [<c0162c61>] __do_fault+0x61/0x3c0 [<c0164d14>] handle_mm_fault+0x104/0x660 [<c0125c36>] scheduler_tick+0xe6/0x130 [<c011c81a>] do_page_fault+0xda/0x610 [<c0141d34>] do_gettimeofday+0x34/0xe0 [<c012e5d8>] sys_gettimeofday+0x28/0x80 [<c011c740>] do_page_fault+0x0/0x610 [<c06ea012>] error_code+0x72/0x78 =======================
Me matan el proceso, lo que no entiendo es el por qué. Agradeceria a que si alguien tiene alguna idea de cual es el motivo me lo explicara con tal de solucionarlo, ya que me tiene algo intrigado, ya que a firefox tambien me lo matan: Out of memory: kill process 4106 (run-mozilla.sh) score 73314 or a child Killed process 4111 (firefox-bin) UDP: bad checksum. From 202.86.158.244:6266 to 10.0.0.2:4672 ulen 43 UDP: bad checksum. From 202.86.158.244:6266 to 10.0.0.2:4672 ulen 43 UDP: bad checksum. From 202.86.158.244:6266 to 10.0.0.2:4672 ulen 43
Gracias de antemano
|
|
|
|
|
12
|
Programación / Programación C/C++ / Ayuda ordenacion registro
|
en: 15 Septiembre 2008, 01:58
|
Buenas, estoy leyendo el libro "Programacion avanzada UNIX", y cada X paginas salen unos ejercicios, pero me tope con uno que no lo entiendo. -Se trata de escribir en un fichero X registros(los que queramos) y escribir un programa que lo ordene, pero no reescribiendo los registros en el fichero, sino por unos punteros de indices. Uhm, mejor pongo la explicacion del libro: 3.5 Queremos escribir un programa para ordenar ficheros binarios indexados que contienen informacion sobre los empleados. La estructura de estos ficheros es la siguiente:#if !defined(_EMPLEADOS_H_) #define _EMPLEADOS_H_
#define MAX 20
typedef struct { char nombre[MAX]; char sueldo[15]; }EMPLEADO;
typedef struct { long nro_indices; //total registros tipo EMPLEADO long *indices; //puntero a los indices que indican el orden en que deben //leerse los registros del fichero. En el pie del fichero habran //tantos indices como registros tenga el fichero }PIE;
typedef struct { int descriptor; //puntero a la estructura de control PIE pie; //Pie del fichero. Se debe leer del fichero referenciado por el campo //descriptor. }FICHERO;
#endif
Observese como al recorrer los indices del pie del fichero antes de ser ordenado, la secuencia que se obtiene es:
Tirante el blanco, 23.000 reales Palmerin, 19.000 reales Olivante, 35.000 reales
Sin embargo, al recorrer los indices del fichero ordenado la secuencia queda:
Olivante, 35.000 reales Palmerim, 19.000 rales Tirante el blanco, 23.000 reales
Por lo tanto el proceso de ordenacion consiste en cambiar los indices que figuran en el pie del fichero, los registros de datos no subren ninguna alteracion.FICHERO *abrir_fichero(char *nombre);La funcion abrir fichero debe abrir un fichero con la estructura descrita y cuyo nombre recibe a traves de la cadena de nombre, una vez abierto se debe crear en memoria una estructura con el formato FICHERO que contenga:
i. Un puntero a la estructura de control del fichero. ii. Una copia en memoria del pie del fichero, es decir, el total de registros del fichero y la sequencia de indices-Entonces, se hacen 3 programas, uno para crear el fichero y los registros y escribirlos en el fichero, que es este: [#include "empleados.h" #include "error.h" #include <stdio.h> #include <stdlib.h> #include <fcntl.h> #include <string.h>
#define FF(str) str[strlen(str)-1]=0 #define modo (O_WRONLY | O_CREAT)
FICHERO *abrir_fichero(char *nom_fichero) { FICHERO *f;
if((f=(FICHERO *)malloc(sizeof(FICHERO)))==NULL) error(errno,"allocate memory for struct failed");
if((f->descriptor=open(nom_fichero,modo,0600))==-1) { free(f); error(errno,"open file fail"); }
f->pie.nro_indices=0; f->pie.indices=NULL;
return(f); }
void cerrar_fichero(FICHERO *f) {
long i;
f->pie.indices=(long *)malloc(f->pie.nro_indices*sizeof(long));
printf("%d \n",f->pie.nro_indices);
if(f->pie.indices==NULL) error(errno,"long malloc");
for(i=0 ; i < f->pie.nro_indices ; i++) f->pie.indices[i]=i; write(f->descriptor, f->pie.indices,sizeof(long)*f->pie.nro_indices); write(f->descriptor, &f->pie.nro_indices, sizeof(long));
close(f->descriptor); }
EMPLEADO *leer_registro(void) { static EMPLEADO e;
printf("Nombre: ");
if((strlen(fgets(e.nombre,14,stdin))) < 2) return NULL; FF(e.nombre);
printf("Sueldo: ");
scanf("%f",&e.sueldo);
getchar();
return(&e);
}
escribir_registro(FICHERO *f, EMPLEADO e) { write(f->descriptor,&e,sizeof(e)); ++f->pie.nro_indices; }
int main(int argc, char **argv) { EMPLEADO *e; FICHERO *f;
argc != 2 ? exit(-1) : NULL;
f=abrir_fichero(argv[1]);
while((e=leer_registro())!=NULL) escribir_registro(f,*e); cerrar_fichero(f);
return 0; }
Esto lo entiendo, menos estas dos lineas: write(f->descriptor, f->pie.indices,sizeof(long)*f->pie.nro_indices); write(f->descriptor, &f->pie.nro_indices, sizeof(long)); (c) Escribir una funcion con la declaracion siguiente:
char *leer_nombre(FICHERO *f, long n);
Esta funcion devolvera el nombre del empleado que ocupa la posicion referenciada por el indice numero n del fichero controlado por f.
Tengase en cuenta que n no es el numero de registro, sino el numero del indice que contiene el numero de registroEsto tambien me tiene confuso, no se como obtenerlo a partir de cuando abro el fichero, se supone que deberia de leerlo del fichero. Ahora el quit viene en lo siguiente, estoy haciendo el programa leer, que se encarga de leer la estructura de datos del fichero y presentarla por pantalla. void *leer_fichero(FICHERO *f) {
EMPLEADO e; int nbytes;
while((nbytes=read(f->descriptor,&e,sizeof(e))) > 0) printf("Nombre: %s\tSueldo: %f\n",e.nombre,e.sueldo);
close(f->descriptor); free(f); }
Me sale esto: Nombre: Osca Sueldo: 1 Nombre: Pepe Sueldo: 3 Nombre: Sueldo: 3 Y yo solo he añadido 2 registros, tampoco se como obtener el total de indices del pie del fichero como indica el ejercicio, a partir del descriptor. A ver si alguien me puede echar un cable, este ejercicio me tiene bastante confuso Gracias de antemano y siento el toston
|
|
|
|
|
|
| |
|