Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 31-05-2008
Avatar de Guillermo80
Guillermo80 Guillermo80 is offline
Miembro
 
Registrado: may 2007
Posts: 87
Poder: 18
Guillermo80 Va por buen camino
Datos interpaginados a array

Hola, tengo una aplicación que me funciona bien, pero teóricamente no entiendo del todo cómo lo hace, me explico: se trata de alimentar un codificador de audio, al cual le llega un array tipo byte con las muestras interpaginadas de los canales L y R. Para ello primero voy leyendo el wav de entrada, que voy guardando a cada pasada del bucle, con Blockread, guardo en un array bufer de 2*n posiciones. Después con otro bucle interno al primero se van interpaginando las muestras guardándose en otro array pcm de mitad de tamaño, o sea, n. Cuando termina este subbucle, coge y alimenta al codificador. Para que se entienda, voy a poner el trozo de código que interesa:

Cita:
...dentro de un while, ya llego aqui con las muestras leídas del wav al array buffer...

for i:=0 to (necesarias*channels-1) do
begin

pcm[i] := buffer[2*i+1] shl 8 or buffer[2*i];
end;
//se alimenta el codificador
ok := FLAC__stream_encoder_process_interleaved(pencoder, pcm, necesarias);

...sigue dentro del while más operaciones y luego vuelta a empezar...
Dentro del for va guardando en pcm las posiciones impares según entiendo, pero lo que no entiendo es el porqué del desplazamiento shl, y la función del or, no entiendo en qué caso cogería buffer[2*i]

No pongo más segmentos de código porque no interesa saber nada más que lo que aquí muestro. La clave está en por qué utilizo un bufer de mitad de tamaño para interpaginar las muestras, cómo se interpaginan dentro del for, o sea, cuándo se cogen las pares.
Responder Con Cita
 


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
pasar un tipo de datos (array of record) entre aplicaciones mauqu Varios 4 26-10-2007 20:04:31
BMP en un array lacatella Gráficos 2 27-07-2006 20:36:27
Meter un Array de strings con Datos en un PSafearray camomilass OOP 1 28-06-2006 12:09:39
Como Asignar Variable Tipo Array de Tform a otro Array del Mismo tipo morfeo21 Varios 5 17-08-2004 17:39:51
Como guardar una array en una base datos? ciscu Varios 3 11-02-2004 09:27:49


La franja horaria es GMT +2. Ahora son las 02:12:40.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi