The latest Help release available in English.
© 2019 R-Tools Technology Inc.
All rights reserved.
<?xml version="1.0" encoding="utf-8"?>
<!-- Sección de patrón. El nombre del patrón es AVI File LIST (lista de archivos AVI) -->
<template name="AVI File LIST">
<!-- Sección de firma de plantilla. Alineación es 1. -->
<signature align="1">
<!-- Firma de 4 bytes en desplazamiento 0x00. -->
<field offset="0x00">4C 49 53 54</field> <!-- ANSI: LIST -->
</signature>
<!-- Sección de datos. Su nombre es AVI File LIST . Ésta es una sección de datos principal. En el árbol de análisis no se muestra como una sección (su nombre está omitido).-->
< section name="AVI File LIST">
<!-- Los primeros 4 bytes se leen y se muestran como una cadena ANSI. -->
<field type="char" size="4" name="Firma: LIST"/>
<!-- La posición actual se ha desplazado al comienzo del archivo (4 bytes hacia atrás). -->
<goto offset="-4"/>
<!-- Los primeros 4 bytes del archivo se leen y se muestran como un entero sin signo. La variable interna signature (firma) obtiene el valor del campo. -->
<field type="uint32" name="Firma LIST (lista) como entero sin signo" var="signature"/>
<!-- Prueba de condición ( signature == LIST ) -->
<if test="signature == 1414744396"> <!-- ANSI: LIST -->
<!-- Los próximos 4 bytes se leen y se muestran como un entero sin signo. La variable interna listSize (tamaño de lista) obtiene su valor. -->
<field type="uint32" name="Tamaño de datos en la lista" var="listSize"/>
<setvar var="endOfList" expr="offset + listSize"/>
<field type="char" size="4" name="Tipo de lista"/>
<goto offset="-4"/>
<field type="uint32" base="hex" name="Tipo de lista como entero sin signo en formato hexadecimal" var="listType"/>
<!-- Prueba de condición ( listType == movi ) -->
<if test="listType == 0x69766f6d"> <!-- ANSI: movi -->
<!-- Este fragmento no se va a analizar. La posición actual se ha desplazado al final del fragmento. -->
<goto address="endOfList"/>
</if>
<setvar var="mediaType" expr="0"/>
<repeat test="endOfList > offset - 8">
<section name="FRAGMENTO">
<field type="char" size="4" name="ID de fragmento"/>
<goto offset="-4"/>
<field type="uint32" name="ID del fragmento como entero sin signo" var="chunkId"/>
<if test="chunkId == 1414744396"> <!-- ANSI: LIST -->
<goto offset="-4"/>
<field type="uint32" base="hex" name="ID del fragmento de LIST como entero sin signo en formato hexadecimal" as-offset="start_position + offset - 4" assigned-template="AVI File LIST"/>
</if>
<field type="uint32" name="Tamaño de los datos en el fragmento" var="chunkSize"/>
<setvar var="endOfChunk" expr="offset + chunkSize"/>
<!-- Redondeo del valor de la variable endOfChunk (final de fragmento) a un número divisible entre 2. -->
<if test="endOfChunk & 1">
<setvar var="endOfChunk" expr="endOfChunk & 0xFFFFFFFE"/>
<setvar var="endOfChunk" expr="endOfChunk + 2"/>
</if>
<if test="chunkId == 1751742049"> <!-- ANSI: avih -->
<field type="uint32" name="Número de microsegundos entre fotogramas"/>
<field type="uint32" name="Velocidad máxima aproximada de transmisión de datos del archivo"/>
<field type="uint32" name="Alineación de datos, en bytes"/>
<field type="uint32" name="Combinación de las marcas bit a bit de cero o más"/>
<field type="uint32" name="Número total de fotogramas de datos en el archivo"/>
<field type="uint32" name="Fotograma inicial para archivos AVI"/>
<field type="uint32" name="Número de secuencias en el archivo"/>
<field type="uint32" name="Tamaño de búfer sugerido para la lectura del archivo"/>
<field type="uint32" name="El ancho del archivo AVI en píxeles"/>
<field type="uint32" name="El alto del archivo AVI en píxeles"/>
<field type="binary" size="16" name="Reservado"/>
</if>
<if test="chunkId == 1852994675"> <!-- ANSI: strn -->
<field type="char" size="chunkSize" name="Nombre de secuencia"/>
</if>
<if test="chunkId == 1752331379"> <!-- ANSI: strh -->
<field type="char" size="4" name="Tipo"/>
<goto offset="-4"/>
<field type="uint32" base="hex" name="Tipo como entero sin signo en formato hexadecimal" var="type"/>
<setvar var="mediaType" expr="type"/>
<field type="char" size="4" name="Controlador (codec)"/>
<field type="uint32" base="hex" name="Marcas"/>
<field type="uint32" name="Número del primer bloque de secuencia presente en el archivo"/>
<field type="uint32" name="Escala"/>
<field type="uint32" name="Velocidad de transferencia"/>
<field type="uint32" name="Hora de inicio de la secuencia"/>
<field type="uint32" name="Tamaño de la secuencia en unidades según está definido en Velocidad de transferencia y Escala"/>
<field type="uint32" name="Tamaño del búfer necesario para almacenar bloques de esa secuencia"/>
<field type="uint32" name="Calidad"/>
<field type="uint32" name="Tamaño de muestra (número de bytes de un átomo de secuencia)"/>
</if>
<if test="chunkId == 1718776947"> <!-- ANSI: strf -->
<if test="mediaType == 0x73646976"> <!-- ANSI: vids -->
<section name="BITMAPINFOHEADER">
<field type="uint32" name="Número de bytes que requiere la estructura"/>
<field type="int32" name="El ancho del mapa de bits en píxeles"/>
<field type="int32" name="El alto del mapa de bits en píxeles"/>
<field type="uint16" name="Número de planos para el dispositivo de destino"/>
<field type="uint16" name="Número de bits por píxel"/>
<field type="uint32" name="Tipo de compresión para un mapa de bits comprimido en formato ascendente"/>
<field type="uint32" name="Tamaño de la imagen en bytes"/>
<field type="int32" name="Resolución horizontal del dispositivo de destino para el mapa de bits en píxeles por metro"/>
<field type="int32" name="Resolución vertical del dispositivo de destino para el mapa de bits en píxeles por metro"/>
<field type="uint32" name="Número de índices de color en la tabla de colores utilizados en el mapa de bits"/>
<field type="uint32" name="Número de índices de color requeridos para visualizar el mapa de bits"/>
</section>
</if>
<if test="mediaType == 0x73647561"> <!-- ANSI: auds -->
<section name="WAVEFORMATEX">
<field type="uint16" name="Formato WAV"/>
<field type="uint16" name="Número de canales en los datos WAV"/>
<field type="uint32" name="Velocidad de transferencia de muestra en muestras por segundo (Hz)"/>
<field type="uint32" name="Velocidad media de transmisión de datos requerida en bytes por segundo para la etiqueta de formato"/>
<field type="uint16" name="Alineación de bloques en bytes"/>
<field type="uint16" name="Bits por muestra para el formato WAV"/>
<field type="uint16" name="Tamaño en bytes de la información adicional sobre formato anexada al final de la estructura de WAVEFORMATEX"/>
</section>
</if>
</if>
<goto address="endOfChunk"/>
</section>
</repeat>
</if>
<if test="signature != 1414744396">
<section name="Se ha encontrado una firma LIST no válida">
</section>
</if>
</section>
</template>