Herramientas de usuario

Herramientas del sitio


fw:dshow

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anterior Revisión previa
Próxima revisión
Revisión previa
fw:dshow [2013/11/21 19:01]
alfred [Creación de un filtro source]
fw:dshow [2020/05/09 09:25] (actual)
Línea 91: Línea 91:
  
 ==== Formato de los datos ==== ==== Formato de los datos ====
 +=== Stride de la imagen ===
 +El stride (o pitch) es el número de bytes de una fila de pixels que se reservan para agregar información adicional. Esto afecta al tamaño de la imagen en memoria pero no  pero no a como esta se muestra. \\ 
 +[[http://​msdn.microsoft.com/​en-us/​library/​windows/​desktop/​aa473780(v=vs.85).aspx|Artículo de MSDN]]
  
 +=== Leer video no comprimido ===
 +Video no comprimido es una secuencia de bitmaps mostrados en sucesión con ratio de unos 30 frames por segundo. Para descomprimir un frame se utilizará el método CTransformFilter::​Transform;​ este recibe un puntero a IMediaSample donde están encapsulados los datos, IMediaSample::​GetPointer retornará un puntero al primer byte de los datos.
  
 +=== Producir video no comprimido ===
 +
 +Información sacada de la [[http://​msdn.microsoft.com/​en-us/​library/​windows/​desktop/​ff485865(v=vs.85).aspx|MSDN]],​ en ese artículo también hay ejemplos de...
 +  * Función que asigna los valores para un vídeo sin comprimir.
 +  * Descompresión de una imagen.
 +Cuando produzcamos vídeo no comprimido rellenaremos el IMFMediaType con los siguientes valores:
 +  * MF_MT_MAJOR_TYPE:​ Asignarlo con MFMediaType_Video.
 +  * MF_MT_SUBTYPE:​ [[http://​msdn.microsoft.com/​en-us/​library/​windows/​desktop/​aa370819(v=vs.85).aspx|Subtipos de video]].
 +  * MF_MT_DEFAULT_STRIDE:​ El número de bytes necesitado para ir de una fila de pixels a la siguiente (este valor se puede omitir si no es igual al ancho de la imagen en bytes).
 +  * MF_MT_FRAME_RATE:​ Frame rate.
 +  * MF_MT_FRAME_SIZE:​ Frame size.
 +  * MF_MT_INTERLACE_MODE:​ Interlacing mode.
 +  * MF_MT_ALL_SAMPLES_INDEPENDENT:​ Indica si cada sample es independiente (true en formato no comprimido).
 +  * MF_MT_PIXEL_ASPECT_RATIO:​ Pixel aspect ratio.
 +Si se conocen se añadirán los siguientes valores: MF_MT_VIDEO_PRIMARIES,​ MF_MT_TRANSFER_FUNCTION,​ MF_MT_VIDEO_CHROMA_SITINGMF_MT_YUV_MATRIX y MF_MT_VIDEO_NOMINAL_RANGE. \\
 +
 +Existen las siguientes funciones que pueden ser de utilidad:
 +  * MFAverageTimePerFrameToFrameRate:​ Calcula el frame rate a partir de la duración del frame.
 +  * MFCalculateImageSize:​ Calcula el tamaño de la imagen para un video no comprimido.
 +  * MFFrameRateToAverageTimePerFrame:​ Calcula la duracion de un video dando el frame rate.
 +  * MFGetStrideForBitmapInfoHeader:​ Retorna el minimo valor de stride por formato de video.
 +  * MFInitVideoFormat:​ Inicializa el MFVIDEOFORMAT para algunos formatos de video standard.
 +  * MFIsFormatYUV:​ Indica si el formato es YUV.
  
  
Línea 105: Línea 133:
 === Explicación en MSDN === === Explicación en MSDN ===
   * [[http://​msdn.microsoft.com/​en-us/​library/​windows/​desktop/​bb530104(v=vs.85).aspx|Conversion a YUV]]   * [[http://​msdn.microsoft.com/​en-us/​library/​windows/​desktop/​bb530104(v=vs.85).aspx|Conversion a YUV]]
 +  * [[http://​msdn.microsoft.com/​en-us/​library/​windows/​desktop/​bb530115(v=vs.85).aspx|Crop,​ pan y aspect ratio]]
 +  * [[http://​msdn.microsoft.com/​en-us/​library/​windows/​desktop/​dd407212(v=vs.85).aspx|Imagenes Top-Down y Bottom-Up]]
 ==== Creación de un filtro ==== ==== Creación de un filtro ====
 === CUnknown === === CUnknown ===
Línea 343: Línea 373:
 ===== Notas ===== ===== Notas =====
   * Flash Media Live Encoder reconocerá los filtros de captura en formatos sin procesar I420, YV12, YUY2, UYVY, RGB24 y RGB32.   * Flash Media Live Encoder reconocerá los filtros de captura en formatos sin procesar I420, YV12, YUY2, UYVY, RGB24 y RGB32.
 +  * Script .bat para instalar un filtro:
 +<​code>​
 +@echo off
 +SET filterfile=VCamD.ax
 +AT > NUL
 +IF NOT %ERRORLEVEL% EQU 0 (
 +    ECHO Necesitas ser administrador para instalar el filtro
 +    pause
 +    EXIT /B 1
 +)
 +regsvr32 %~dp0%filterfile%
 +</​code>​
 ==== Notas de programación COM ==== ==== Notas de programación COM ====
 === Funciones de ayuda === === Funciones de ayuda ===
Línea 374: Línea 416:
 ==== Recursos ==== ==== Recursos ====
   * {{:​fw:​dshow:​com_in_plain_c_-_codeproject.pdf|Explicación del COM}}   * {{:​fw:​dshow:​com_in_plain_c_-_codeproject.pdf|Explicación del COM}}
 +  * {{:​fw:​dshow:​graphstudio.zip|GraphStudio}},​ aplicación para debugar los filtros y obtener info de ellos.
fw/dshow.1385060474.txt.gz · Última modificación: 2020/05/09 09:24 (editor externo)