1
mirror of https://github.com/mpv-player/mpv synced 2024-12-24 07:33:46 +01:00

Merge svn changes up to r30375

This commit is contained in:
Uoti Urpala 2010-01-25 15:36:38 +02:00
commit 4ebf007580
19 changed files with 322 additions and 113 deletions

View File

@ -26,7 +26,7 @@ MPlayer (1.0)
* Support for more formats in OpenGL vos (different YUV
subsampling, 16 bit per component)
* Selectable YUV to RGB conversion standard for -vo gl
(-vo gl:colorspace=...)
(-vo gl:colorspace=...:levelconv=...)
* -vo matrixview finally added
Other:
@ -43,6 +43,9 @@ MPlayer (1.0)
Use e.g. ffmpeg://http://example.com/test
* better support for 16-bit-per-component formats and formats
with alpha channel.
* better out-of-the-box support for compiling for ARM, IA64,
MinGW32 and MinGW-w64, MinGW has ASLR enabled with recent
enough binutils.
MEncoder:
* add -tsprog for demuxer lavf

View File

@ -3872,6 +3872,16 @@ Use ITU-R BT.709 color space.
.IPs 3
Use SMPTE-240M color space.
.RE
.IPs levelconv=<n>
Select the brightness level conversion to use for the YUV to RGB conversion
.RSss
.IPs 0
Convert TV to PC levels (default).
.IPs 1
Convert PC to TV levels.
.IPs 2
Do not do any conversion.
.RE
.IPs lscale=<n>
Select the scaling function to use for luminance scaling.
Only valid for yuv modes 2, 3, 4 and 6.

View File

@ -1,4 +1,4 @@
.\" synced with r30043
.\" synced with r30336
.\" Encoding: iso-8859-1
.\" MPlayer (C) 2000-2009 MPlayer Team
.\" Questa pagina di manuale è stata fatta da Gabucino, Diego Biurrun,
@ -1292,14 +1292,14 @@ Permette ad un socket di essere riutilizzato da altri processi appena viene
chiuso.
.
.TP
.B \-bandwidth <valore> (solo rete)
.B \-bandwidth <Bytes> (solo rete)
Specifica la massima larghezza di banda (bandwidth) per lo streaming attraverso
una rete (per quei server che sono capaci di inviare contenuti, normalmente
filmati, a diversi bitrate).
Utile se vuoi guardare contenuti multimediali dal vivo con una connessione lenta.
Utile se vuoi guardare contenuti multimediali dal vivo su una connessione lenta.
Con lo streaming RTSP Real, viene anche usata per impostare la massima larghezza
di banda in uscita dal server, permettendo un riempimento della cache e un dump
di flusso più veloce.
del flusso più rapido.
.
.TP
.B \-cache <KBytes>
@ -1347,15 +1347,15 @@ Usa il dispositivo SCSI generico specificato
.IPs sector-size=<valore>
Dimensione di una lettura atomica
.IPs overlap=<valore>
Forza la ricerca di sovrapposizione minima (minimum overlap search) durante la verifica a <valore> settori
Forza la ricerca di sovrapposizione minima (minimum overlap search) durante la
verifica a <valore> settori.
.IPs toc-bias
Assume che lo scostamento iniziale della traccia 1 come riportato nella TOC
sarà indirizzato come LBA 0.
Alcuni lettori Toshiba hanno bisogno di questa opzione per ottenere la corretta
delimitazione delle tracce.
.IPs toc-offset=<valore>
Aggiunge <valore> settori ai valori riportati quando si indirizzano
le tracce.
Aggiunge <valore> settori ai valori riportati quando si indirizzano le tracce.
Può essere negativo.
.IPs (no)skip
(Non) accetta una ricostruzione imperfetta dei dati.
@ -2672,7 +2672,7 @@ Attiva il raggio della sfocatura del font (default: 2).
.TP
.B \-subfont\-encoding <valore> (solo FreeType)
Attiva la codifica del font.
Quando settato a 'unicode' tutti i glifi dal file del font verranno disegnati
Quando impostato a 'unicode' verranno disegnati tutti i glifi dal file del font
e verrà usato l'unicode (default: unicode).
.
.TP
@ -3606,7 +3606,7 @@ Seleziona la sorgente da cui viene preso il colorkey (default: cur).
.IPs cur
Il default prende il colorkey correntemente configurato in Xv.
.IPs use
Utilizza ma non setta il colorkey da MPlayer (utilizza l'opzione \-colorkey
Utilizza ma non imposta il colorkey da MPlayer (utilizza l'opzione \-colorkey
per cambiarlo).
.IPs set
Uguale a use ma imposta anche il colorkey fornito.
@ -3668,7 +3668,7 @@ Pu
del flusso A/V (default: noqueue).
.IPs (no)sleep
Utilizza la funzione sleep mentre aspetta che finisca la visualizzazione
(non raccomandato con Linux) (default: nosleep).
(non consigliato in Linux) (default: nosleep).
.IPs ck=cur|use|set
E' lo stesso che \-vo xv:ck (vedi \-vo xv).
.IPs ck-method=man|bg|auto
@ -4024,6 +4024,10 @@ orizzontale / n).
Richiede il supporto GLX_SGI_swap_control per funzionare.
Con alcune (la maggior parte/tutte?) implementazioni funziona sono in modalità
a schermo intero.
.IPs ycbcr
Usa l'estenzione GL_MESA_ycbcr_texture per convertire da YUV a RGB.
Nella maggior parte dei casi è probabilmente più lento di una conversione
software verso RGB.
.IPs yuv=<n>
Seleziona il tipo di conversione da YUV a RGB.
.RSss
@ -4069,10 +4073,28 @@ La gamma pu
La velocità dipende più dall'ampiezza di memoria della GPU rispetto agli altri
metodi.
.RE
.IPs ycbcr
Usa l'estenzione GL_MESA_ycbcr_texture per convertire da YUV a RGB.
Nella maggior parte dei casi è probabilmente più lento di una conversione
software verso RGB.
.IPs colorspace
Seleziona lo spazio colore per la conversione da YUV a RGB.
.RSss
.IPs 0
Utilizza la formula usata solitamente da MPlayer (default).
.IPs 1
Usa uno spazio colore ITU-R BT.601.
.IPs 2
Usa uno spazio colore ITU-R BT.709.
.IPs 3
Usa uno spazio colore SMPTE-240M.
.RE
.IPs levelconv=<n>
Seleziona il livello di luminosità da usare per la conversione da YUV a RGB.
.RSss
.IPs 0
Converte da livelli TV a PC (default).
.IPs 1
Converte da livelli PC a TV.
.IPs 2
Non effettua alcuna conversione.
.RE
.IPs lscale=<n>
Seleziona la funzione di ridimensionamento da usare per il ridimensionamento
della luminanza.
@ -4113,6 +4135,13 @@ GL_NEAREST per la texture 'customtex'.
.IPs (no)customtrect
Se abilitata, usa texture_rectangle per la texture 'customtex'.
Disabilitata di default.
.IPs (no)mipmapgen
Se abilitata, vengono generate automaticamente delle mipmap per il video.
Questo dovrebbe essere utile insieme con customprog e con l'istruzione TXB per
implementare filtri di sfocatura con un raggio ampio.
Per la maggior parte delle implementazioni OpenGL è molto lento per un
qualsiasi formato non RGB.
Disabilitata di default.
.RE
.sp 1
.RS
@ -4171,6 +4200,23 @@ A parte ci
.REss
.
.TP
.B matrixview
Renderizzatore basato su OpenGL che crea un effetto di testo stile Matrix.
.PD 0
.RSs
.IPs cols=<n>
Numero delle colonne di testo da mostrare.
Valori molto bassi (< 16) probabilmente non funzioneranno a causa delle
limitazioni dello scalatore.
Allo stesso modo, valori non divisibili per 16 potrebbero causare problemi.
.IPs rows=<n>
Numero delle righe di testo da mostrare.
Valori molto bassi (< 16) probabilmente non funzioneranno a causa delle
limitazioni dello scalatore.
Allo stesso modo, valori non divisibili per 16 potrebbero causare problemi.
.REss
.
.TP
.B "null\ \ \ "
Non produce nessuna uscita video.
Utile per benchmarking (prove di velocità).
@ -4226,17 +4272,20 @@ Visualizza il video utilizzando la libreria DirectFB.
.IPs (no)input
Utilizza il codice della tastiera di DirectFB invece di quello standard di MPlayer. (default: abilitato)
.IPs buffermode=single|double|triple
Il doppio ed il triplo buffering danno i migliori risultati se vuoi evitare problemi di tearing.
Il triplo buffering è più efficiente del doppio buffering perché non blocca MPlayer
mentre aspetta il tracciamento verticale.
Il doppio ed il triplo buffering danno i migliori risultati se vuoi evitare
problemi di tearing.
Il triplo buffering è più efficiente del doppio buffering perché non blocca
MPlayer mentre aspetta il tracciamento verticale.
La bufferizzazione singola dovrebbe essere evitata (default: single).
.IPs fieldparity=top|bottom
Controlla l'ordine di uscita dei fotogrammi interlacciati (default: disabilitato).
Valori validi sono top (prima il campo superiore) e bottom (prima il campo inferiore).
Questa opzione non ha alcun effetto su materiale progressivo, generalmente la maggior
parte dei film MPEG.
Devi abilitare questa opzione se hai effetti di tearing oppure movimenti non uniformi
guardando materiale interlacciato.
Controlla l'ordine di uscita dei fotogrammi interlacciati
(default: disabilitato).
Valori validi sono top (prima il campo superiore) e bottom (prima il campo
inferiore).
Questa opzione non ha alcun effetto su materiale progressivo, generalmente la
maggior parte dei film MPEG.
Devi abilitare questa opzione se hai effetti di tearing oppure movimenti non
uniformi guardando materiale interlacciato.
.IPs layer=N
Forza l'utilizzo del layer con ID N per la riproduzione (default: \-1 \- auto).
.IPs dfbopts=<list>
@ -8134,7 +8183,7 @@ lascia che sia LAME a scegliere il valore automaticamente.
.
.TP
.B preset=<valore>
valore dei settaggi predefiniti (Preset)
valore delle impostazioni predefinite (Preset)
.RSs
.IPs "help\ "
Stampa le opzioni aggiuntive ed informazioni sui preset.
@ -8145,7 +8194,7 @@ codifica VBR, alta qualit
.IPs extreme
codifica VBR, qualità molto alta, bitrate compreso tra 200\-240 kbps
.IPs insane
codifica CBR, il settaggio di miglior qualità, bitrate di 320 kbps
codifica CBR, l'impostazione di miglior qualità, bitrate di 320 kbps
.IPs <8\-320>
codifica ABR al bitrate medio specificato
.RE
@ -9944,12 +9993,12 @@ dai blocchi circostanti (default: attiva).
.
.TP
.B vhq=<0\-4>
L'algoritmo di ricerca del movimento è basato su una ricerca nel dominio del colore
e cerca di trovare un vettore di movimento che minimizzi la differenza tra il fotogramma
di riferimento e quello codificato.
Con questo settaggio attivato Xvid userà anche il dominio delle frequenze (DCT)
per ricercare un vettore di movimento che minimizzi non solo la differenza spaziale, ma
anche la lunghezza codificata del blocco.
L'algoritmo di ricerca del movimento è basato su una ricerca nel dominio del
colore e cerca di trovare un vettore di movimento che minimizzi la differenza
tra il fotogramma di riferimento e quello codificato.
Con questa impostazione attivata, Xvid userà anche il dominio delle frequenze
(DCT) per ricercare un vettore di movimento che minimizzi non solo la
differenza spaziale, ma anche la lunghezza codificata del blocco.
Dalla più rapida alla più lenta:
.PD 0
.RSs

49
configure vendored
View File

@ -167,7 +167,7 @@ alpha() {
arm() {
case "$host_arch" in
arm) return 0;;
arm*) return 0;;
*) return 1;;
esac
}
@ -487,6 +487,7 @@ _sse2=auto
_ssse3=auto
_cmov=auto
_fast_cmov=auto
_fast_clz=auto
_armv5te=auto
_armv6=auto
_armv6t2=auto
@ -1225,6 +1226,8 @@ for ac_option do
--disable-cmov) _cmov=no ;;
--enable-fast-cmov) _fast_cmov=yes ;;
--disable-fast-cmov) _fast_cmov=no ;;
--enable-fast-clz) _fast_clz=yes ;;
--disable-fast-clz) _fast_clz=no ;;
--enable-altivec) _altivec=yes ;;
--disable-altivec) _altivec=no ;;
--enable-armv5te) _armv5te=yes ;;
@ -1715,7 +1718,9 @@ case "$host_arch" in
proc=k8
;;
*) proc=k8 iproc=686 ;;
*) proc=amdfam10 iproc=686
test $_fast_clz = "auto" && _fast_clz=yes
;;
esac
;;
GenuineIntel)
@ -1741,6 +1746,7 @@ case "$host_arch" in
else
proc=i686
fi
test $_fast_clz = "auto" && _fast_clz=yes
;;
15) iproc=686
# A nocona in 32-bit mode has no more capabilities than a prescott.
@ -1748,6 +1754,7 @@ case "$host_arch" in
proc=prescott
else
proc=pentium4
test $_fast_clz = "auto" && _fast_clz=yes
fi
test $_fast_cmov = "auto" && _fast_cmov=no
;;
@ -1786,6 +1793,7 @@ case "$host_arch" in
*)
proc=i586 iproc=586 ;;
esac
test $_fast_clz = "auto" && _fast_clz=no
fi # test "$_runtime_cpudetection" = no
@ -1897,6 +1905,7 @@ EOF
else
_fast_cmov="no"
fi
test $_fast_clz = "auto" && _fast_clz=yes
echores "$proc"
;;
@ -1925,7 +1934,13 @@ EOF
if test "$_runtime_cpudetection" = no ; then
case "$pvendor" in
AuthenticAMD)
proc=k8;;
case "$pfamily" in
15) proc=k8
test $_fast_clz = "auto" && _fast_clz=no
;;
*) proc=amdfam10;;
esac
;;
GenuineIntel)
case "$pfamily" in
6) proc=core2;;
@ -1934,6 +1949,7 @@ EOF
# have the same capabilities as a nocona.
proc=nocona
test $_fast_cmov = "auto" && _fast_cmov=no
test $_fast_clz = "auto" && _fast_clz=no
;;
esac
;;
@ -1991,6 +2007,7 @@ EOF
_optimizing="$proc"
test $_fast_cmov = "auto" && _fast_cmov=yes
test $_fast_clz = "auto" && _fast_clz=yes
echores "$proc"
;;
@ -2023,7 +2040,7 @@ EOF
_optimizing="$proc"
;;
arm|armv4l|armv5tel)
arm*)
_arch='ARM'
_target_arch='ARCH_ARM = yes'
iproc='arm'
@ -2034,6 +2051,7 @@ EOF
_target_arch='ARCH_AVR32 = yes'
def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
iproc='avr32'
test $_fast_clz = "auto" && _fast_clz=yes
;;
sh|sh4)
@ -2154,6 +2172,8 @@ EOF
echores "none"
fi
test $_fast_clz = "auto" && _fast_clz=yes
;;
alpha*)
@ -2195,6 +2215,8 @@ EOF
_mcpu="-mcpu=$proc"
echores "$proc"
test $_fast_clz = "auto" && _fast_clz=yes
_optimizing="$proc"
;;
@ -2221,6 +2243,8 @@ EOF
echores "$proc"
fi
test $_fast_clz = "auto" && _fast_clz=yes
;;
hppa)
@ -2654,6 +2678,8 @@ EOF
fi
echores "$_armv5te"
test $_armv5te = "yes" && test $_fast_clz = "auto" && _fast_clz=yes
echocheck "ARMv6 (SIMD instructions)"
if test $_armv6 = "auto" ; then
cat > $TMPC << EOF
@ -2705,7 +2731,7 @@ EOF
echores "$_iwmmxt"
fi
_cpuexts_all='ALTIVEC MMX MMX2 AMD3DNOW AMD3DNOWEXT SSE SSE2 SSSE3 FAST_CMOV CMOV PLD ARMV5TE ARMV6 ARMV6T2 ARMVFP NEON IWMMXT MMI VIS MVI'
_cpuexts_all='ALTIVEC MMX MMX2 AMD3DNOW AMD3DNOWEXT SSE SSE2 SSSE3 FAST_CMOV CMOV FAST_CLZ PLD ARMV5TE ARMV6 ARMV6T2 ARMVFP NEON IWMMXT MMI VIS MVI'
test "$_altivec" = yes && _cpuexts="ALTIVEC $_cpuexts"
test "$_mmx" = yes && _cpuexts="MMX $_cpuexts"
test "$_mmxext" = yes && _cpuexts="MMX2 $_cpuexts"
@ -2716,6 +2742,7 @@ test "$_sse2" = yes && _cpuexts="SSE2 $_cpuexts"
test "$_ssse3" = yes && _cpuexts="SSSE3 $_cpuexts"
test "$_cmov" = yes && _cpuexts="CMOV $_cpuexts"
test "$_fast_cmov" = yes && _cpuexts="FAST_CMOV $_cpuexts"
test "$_fast_clz" = yes && _cpuexts="FAST_CLZ $_cpuexts"
test "$pld" = yes && _cpuexts="PLD $_cpuexts"
test "$_armv5te" = yes && _cpuexts="ARMV5TE $_cpuexts"
test "$_armv6" = yes && _cpuexts="ARMV6 $_cpuexts"
@ -5101,7 +5128,7 @@ int main(int argc, char *argv[]) {
}
EOF
_sdl=no
for _ld_tmp in "-lSDL" "-lSDL -lpthread" "-lSDL -lwinmm -lgdi32" ; do
for _ld_tmp in "-lSDL" "-lSDL -lpthread" "-lSDL -lwinmm -lgdi32" "-lSDL -lwinmm -lgdi32 -ldxguid" ; do
if cc_check -DCONFIG_SDL_SDL_H $_inc_tmp $_ld_tmp ; then
_sdl=yes
def_sdl_sdl_h="#define CONFIG_SDL_SDL_H 1"
@ -7610,6 +7637,14 @@ else
echores "no"
fi
echocheck "linker support for --nxcompat --no-seh --dynamicbase"
if cc_check "-Wl,--nxcompat -Wl,--no-seh -Wl,--dynamicbase" ; then
extra_ldflags="-Wl,--nxcompat -Wl,--no-seh -Wl,--dynamicbase $extra_ldflags"
echores "yes"
else
echores "no"
fi
# Dynamic linking flags
# (FIXME: 'echocheck "dynamic linking"' above and modify here accordingly)
@ -8471,12 +8506,12 @@ $def_yasm
#define CONFIG_SWSCALE_ALPHA 1
#define HAVE_ATTRIBUTE_PACKED 1
#define HAVE_FAST_CLZ 0
#define HAVE_GETHRTIME 0
#define HAVE_INLINE_ASM 1
#define HAVE_LDBRX 0
#define HAVE_POLL_H 1
#define HAVE_PPC4XX 0
#define HAVE_VFP_ARGS 1
#define HAVE_VIRTUALALLOC 0
/* Some FFmpeg codecs depend on these. Enable them unconditionally for now. */

View File

@ -984,6 +984,7 @@ videocodec ffodivx
fourcc DCOD,MVXM,EM4A,PM4V
fourcc M4T3,DMK2,DIGI,INMC
fourcc EPHV,SN40
fourcc uldx,ULDX,VSPX
driver ffmpeg
dll mpeg4 ;opendivx
out YV12,I420,IYUV
@ -1015,6 +1016,7 @@ videocodec ffodivxvdpau
fourcc DCOD,MVXM,EM4A,PM4V
fourcc M4T3,DMK2,DIGI,INMC
fourcc EPHV,SN40
fourcc uldx,ULDX,VSPX
driver ffmpeg
dll mpeg4_vdpau
out VDPAU_MPEG4
@ -1066,6 +1068,7 @@ videocodec xvid
fourcc DCOD,MVXM,EM4A,PM4V
fourcc M4T3,DMK2,DIGI,INMC
fourcc EPHV,SN40
fourcc uldx,ULDX,VSPX
format 0x10000004 ; mpeg 4 es
driver xvid
out YV12

View File

@ -25,10 +25,13 @@ static const struct {
int fmt;
enum PixelFormat pix_fmt;
} conversion_map[] = {
{IMGFMT_BGR32, PIX_FMT_RGB32},
{IMGFMT_ARGB, PIX_FMT_ARGB},
{IMGFMT_BGRA, PIX_FMT_BGRA},
{IMGFMT_BGR24, PIX_FMT_BGR24},
{IMGFMT_BGR16, PIX_FMT_RGB565},
{IMGFMT_BGR15, PIX_FMT_RGB555},
{IMGFMT_BGR16BE, PIX_FMT_RGB565BE},
{IMGFMT_BGR16LE, PIX_FMT_RGB565LE},
{IMGFMT_BGR15BE, PIX_FMT_RGB555BE},
{IMGFMT_BGR15LE, PIX_FMT_RGB555LE},
{IMGFMT_BGR8, PIX_FMT_RGB8},
{IMGFMT_BGR4, PIX_FMT_RGB4},
{IMGFMT_BGR1, PIX_FMT_MONOBLACK},
@ -37,10 +40,13 @@ static const struct {
{IMGFMT_BG4B, PIX_FMT_RGB4_BYTE},
{IMGFMT_RGB48LE, PIX_FMT_RGB48LE},
{IMGFMT_RGB48BE, PIX_FMT_RGB48BE},
{IMGFMT_RGB32, PIX_FMT_BGR32},
{IMGFMT_ABGR, PIX_FMT_ABGR},
{IMGFMT_RGBA, PIX_FMT_RGBA},
{IMGFMT_RGB24, PIX_FMT_RGB24},
{IMGFMT_RGB16, PIX_FMT_BGR565},
{IMGFMT_RGB15, PIX_FMT_BGR555},
{IMGFMT_RGB16BE, PIX_FMT_BGR565BE},
{IMGFMT_RGB16LE, PIX_FMT_BGR565LE},
{IMGFMT_RGB15BE, PIX_FMT_BGR555BE},
{IMGFMT_RGB15LE, PIX_FMT_BGR555LE},
{IMGFMT_RGB8, PIX_FMT_BGR8},
{IMGFMT_RGB4, PIX_FMT_BGR4},
{IMGFMT_BGR8, PIX_FMT_PAL8},

View File

@ -20,6 +20,7 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "osdep/strsep.h"
#include "af.h"

View File

@ -35,12 +35,28 @@
#define IMGFMT_ARGB IMGFMT_BGR32
#define IMGFMT_RGBA (IMGFMT_BGR32|64)
#define IMGFMT_RGB48NE IMGFMT_RGB48BE
#define IMGFMT_RGB15BE IMGFMT_RGB15
#define IMGFMT_RGB15LE (IMGFMT_RGB15|64)
#define IMGFMT_RGB16BE IMGFMT_RGB16
#define IMGFMT_RGB16LE (IMGFMT_RGB16|64)
#define IMGFMT_BGR15BE IMGFMT_BGR15
#define IMGFMT_BGR15LE (IMGFMT_BGR15|64)
#define IMGFMT_BGR16BE IMGFMT_BGR16
#define IMGFMT_BGR16LE (IMGFMT_BGR16|64)
#else
#define IMGFMT_ABGR (IMGFMT_BGR32|64)
#define IMGFMT_BGRA IMGFMT_BGR32
#define IMGFMT_ARGB (IMGFMT_RGB32|64)
#define IMGFMT_RGBA IMGFMT_RGB32
#define IMGFMT_RGB48NE IMGFMT_RGB48LE
#define IMGFMT_RGB15BE (IMGFMT_RGB15|64)
#define IMGFMT_RGB15LE IMGFMT_RGB15
#define IMGFMT_RGB16BE (IMGFMT_RGB16|64)
#define IMGFMT_RGB16LE IMGFMT_RGB16
#define IMGFMT_BGR15BE (IMGFMT_BGR15|64)
#define IMGFMT_BGR15LE IMGFMT_BGR15
#define IMGFMT_BGR16BE (IMGFMT_BGR16|64)
#define IMGFMT_BGR16LE IMGFMT_BGR16
#endif
/* old names for compatibility */

View File

@ -15,6 +15,7 @@
#include "mp_msg.h"
#include "help_mp.h"
#include "av_opts.h"
#include "osdep/strsep.h"
#include "codec-cfg.h"
#include "stream/stream.h"
@ -24,6 +25,7 @@
#include "libmpdemux/muxer.h"
#include "img_format.h"
#include "fmt-conversion.h"
#include "mp_image.h"
#include "vf.h"
@ -593,30 +595,9 @@ static int config(struct vf_instance* vf,
}
mux_v->imgfmt = lavc_param_format;
switch(lavc_param_format)
{
case IMGFMT_YV12:
lavc_venc_context->pix_fmt = PIX_FMT_YUV420P;
break;
case IMGFMT_422P:
lavc_venc_context->pix_fmt = PIX_FMT_YUV422P;
break;
case IMGFMT_444P:
lavc_venc_context->pix_fmt = PIX_FMT_YUV444P;
break;
case IMGFMT_411P:
lavc_venc_context->pix_fmt = PIX_FMT_YUV411P;
break;
case IMGFMT_YVU9:
lavc_venc_context->pix_fmt = PIX_FMT_YUV410P;
break;
case IMGFMT_BGR32:
lavc_venc_context->pix_fmt = PIX_FMT_RGB32;
break;
default:
mp_msg(MSGT_MENCODER,MSGL_ERR,"%s is not a supported format\n", vo_format_name(lavc_param_format));
lavc_venc_context->pix_fmt = imgfmt2pixfmt(lavc_param_format);
if (lavc_venc_context->pix_fmt == PIX_FMT_NONE)
return 0;
}
if(!stats_file) {
/* lavc internal 2pass bitrate control */

View File

@ -33,6 +33,7 @@
#else
#include "osdep/glob.h"
#endif
#include "osdep/strsep.h"
#include "mp_msg.h"
#include "help_mp.h"

View File

@ -60,10 +60,15 @@ void mp_get_yuv2rgb_coeffs(struct mp_csp_params *params, float yuv2rgb[3][4]) {
float uvcos = params->saturation * cos(params->hue);
float uvsin = params->saturation * sin(params->hue);
int format = params->format;
int levelconv = params->levelconv;
int i;
const float (*uv_coeffs)[3];
const float *level_adjust;
static const float yuv_pc_level_adjust[4] = {-16 / 255.0, -128 / 255.0, -128 / 255.0, 1.164};
static const float yuv_level_adjust[MP_CSP_LEVELCONV_COUNT][4] = {
{-16 / 255.0, -128 / 255.0, -128 / 255.0, 1.164},
{ 16 / 255.0 * 1.164, -128 / 255.0, -128 / 255.0, 1.0/1.164},
{ 0, -128 / 255.0, -128 / 255.0, 1},
};
static const float xyz_level_adjust[4] = {0, 0, 0, 0};
static const float uv_coeffs_table[MP_CSP_COUNT][3][3] = {
[MP_CSP_DEFAULT] = {
@ -101,7 +106,9 @@ void mp_get_yuv2rgb_coeffs(struct mp_csp_params *params, float yuv2rgb[3][4]) {
if (format < 0 || format >= MP_CSP_COUNT)
format = MP_CSP_DEFAULT;
uv_coeffs = uv_coeffs_table[format];
level_adjust = yuv_pc_level_adjust;
if (levelconv < 0 || levelconv >= MP_CSP_LEVELCONV_COUNT)
levelconv = MP_CSP_LEVELCONV_TV_TO_PC;
level_adjust = yuv_level_adjust[levelconv];
if (format == MP_CSP_XYZ)
level_adjust = xyz_level_adjust;

View File

@ -31,8 +31,16 @@ enum mp_csp_standard {
MP_CSP_COUNT
};
enum mp_csp_levelconv {
MP_CSP_LEVELCONV_TV_TO_PC,
MP_CSP_LEVELCONV_PC_TO_TV,
MP_CSP_LEVELCONV_NONE,
MP_CSP_LEVELCONV_COUNT
};
struct mp_csp_params {
enum mp_csp_standard format;
enum mp_csp_levelconv levelconv;
float brightness;
float contrast;
float hue;

View File

@ -91,12 +91,14 @@ static RECT last_rect = {0xDEADC0DE, 0xDEADC0DE, 0xDEADC0DE, 0xDEADC0DE};
* Defining them here allows us to get rid of the dxguid library during
* the linking stage.
*****************************************************************************/
const GUID IID_IDirectDraw7 =
#define IID_IDirectDraw7 MP_IID_IDirectDraw7
static const GUID MP_IID_IDirectDraw7 =
{
0x15e65ec0,0x3b9c,0x11d2,{0xb9,0x2f,0x00,0x60,0x97,0x97,0xea,0x5b}
};
const GUID IID_IDirectDrawColorControl =
#define IID_IDirectDrawColorControl MP_IID_IDirectDrawColorControl
static const GUID MP_IID_IDirectDrawColorControl =
{
0x4b9f0ee0,0x0d7e,0x11d0,{0x9b,0x06,0x00,0xa0,0xc9,0x03,0xa3,0xb8}
};

View File

@ -91,6 +91,7 @@ static int use_ycbcr;
#define MASK_GAMMA_SUPPORT (MASK_NOT_COMBINERS & ~(1 << YUV_CONVERSION_FRAGMENT))
static int use_yuv;
static int colorspace;
static int levelconv;
static int is_yuv;
static int lscale;
static int cscale;
@ -214,7 +215,7 @@ static void update_yuvconv(void) {
float ggamma = exp(log(8.0) * eq_ggamma / 100.0);
float bgamma = exp(log(8.0) * eq_bgamma / 100.0);
gl_conversion_params_t params = {gl_target, yuvconvtype,
{colorspace, bri, cont, hue, sat, rgamma, ggamma, bgamma},
{colorspace, levelconv, bri, cont, hue, sat, rgamma, ggamma, bgamma},
texture_width, texture_height, 0, 0, filter_strength};
mp_get_chroma_shift(image_format, &xs, &ys);
params.chrom_texw = params.texw >> xs;
@ -996,6 +997,12 @@ static int valid_csp(void *p)
return *csp >= -1 && *csp < MP_CSP_COUNT;
}
static int valid_csp_lvl(void *p)
{
int *lvl = p;
return *lvl >= -1 && *lvl < MP_CSP_LEVELCONV_COUNT;
}
static const opt_t subopts[] = {
{"manyfmts", OPT_ARG_BOOL, &many_fmts, NULL},
{"osd", OPT_ARG_BOOL, &use_osd, NULL},
@ -1006,6 +1013,7 @@ static const opt_t subopts[] = {
{"rectangle", OPT_ARG_INT, &use_rectangle,int_non_neg},
{"yuv", OPT_ARG_INT, &use_yuv, int_non_neg},
{"colorspace", OPT_ARG_INT, &colorspace, valid_csp},
{"levelconv", OPT_ARG_INT, &levelconv, valid_csp_lvl},
{"lscale", OPT_ARG_INT, &lscale, int_non_neg},
{"cscale", OPT_ARG_INT, &cscale, int_non_neg},
{"filter-strength", OPT_ARG_FLOAT, &filter_strength, NULL},
@ -1037,6 +1045,7 @@ static int preinit(const char *arg)
use_ycbcr = 0;
use_yuv = 0;
colorspace = -1;
levelconv = -1;
lscale = 0;
cscale = 0;
filter_strength = 0.5;
@ -1099,6 +1108,10 @@ static int preinit(const char *arg)
" 3: YUV to RGB according to SMPT-240M\n"
" 4: YUV to RGB according to EBU\n"
" 5: XYZ to RGB\n"
" levelconv=<n>\n"
" 0: YUV to RGB converting TV to PC levels\n"
" 1: YUV to RGB converting PC to TV levels\n"
" 2: YUV to RGB without converting levels\n"
" lscale=<n>\n"
" 0: use standard bilinear scaling for luma.\n"
" 1: use improved bicubic scaling for luma.\n"

View File

@ -561,7 +561,7 @@ static int initGl(uint32_t d_width, uint32_t d_height)
if (is_yuv) {
int xs, ys;
gl_conversion_params_t params = {GL_TEXTURE_2D, use_yuv,
{MP_CSP_DEFAULT, 0.0, 1.0, 0.0, 1.0, 1.0, 1.0, 1.0},
{-1, -1, 0.0, 1.0, 0.0, 1.0, 1.0, 1.0, 1.0},
texture_width, texture_height, 0, 0, 0};
switch (use_yuv) {
case YUV_CONVERSION_FRAGMENT_LOOKUP:

View File

@ -56,6 +56,8 @@ extern const GUID IID_IDivxFilterInterface;
extern const GUID CLSID_IV50_Decoder;
extern const GUID CLSID_MemoryAllocator;
extern const GUID MEDIATYPE_Video;
// avoid a clash with MinGW-W64 libuuid
#define GUID_NULL MP_GUID_NULL
extern const GUID GUID_NULL;
extern const GUID FORMAT_VideoInfo;
extern const GUID MEDIASUBTYPE_RGB1;

View File

@ -22,6 +22,7 @@
#include <string.h>
#include "config.h"
#include "strsep.h"
char *strsep(char **stringp, const char *delim) {
char *begin, *end;

30
osdep/strsep.h Normal file
View File

@ -0,0 +1,30 @@
/*
* strsep implementation for systems that do not have it in libc
*
* This file is part of MPlayer.
*
* MPlayer 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.
*
* MPlayer 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 MPlayer; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
#ifndef MPLAYER_STRSEP_H
#define MPLAYER_STRSEP_H
#include <string.h>
#include "config.h"
#ifndef HAVE_STRSEP
char *strsep(char **stringp, const char *delim);
#endif
#endif /* MPLAYER_STRSEP_H */

View File

@ -374,86 +374,127 @@ static int tv_available_inputs_count = 0;
*
*---------------------------------------------------------------------------------------
*/
// selectany can not be used with "static", fixes compilation with mingw-w64
#undef DECLSPEC_SELECTANY
#define DECLSPEC_SELECTANY
/// CLSID definitions (used for CoCreateInstance call)
DEFINE_GUID(CLSID_SampleGrabber, 0xC1F400A0, 0x3F08, 0x11d3, 0x9F, 0x0B,
#define CLSID_SampleGrabber MP_CLSID_SampleGrabber
static DEFINE_GUID(CLSID_SampleGrabber, 0xC1F400A0, 0x3F08, 0x11d3, 0x9F, 0x0B,
0x00, 0x60, 0x08, 0x03, 0x9E, 0x37);
DEFINE_GUID(CLSID_NullRenderer, 0xC1F400A4, 0x3F08, 0x11d3, 0x9F, 0x0B,
#define CLSID_NullRenderer MP_CLSID_NullRenderer
static DEFINE_GUID(CLSID_NullRenderer, 0xC1F400A4, 0x3F08, 0x11d3, 0x9F, 0x0B,
0x00, 0x60, 0x08, 0x03, 0x9E, 0x37);
DEFINE_GUID(CLSID_SystemDeviceEnum, 0x62BE5D10, 0x60EB, 0x11d0, 0xBD, 0x3B,
#define CLSID_SystemDeviceEnum MP_CLSID_SystemDeviceEnum
static DEFINE_GUID(CLSID_SystemDeviceEnum, 0x62BE5D10, 0x60EB, 0x11d0, 0xBD, 0x3B,
0x00, 0xA0, 0xC9, 0x11, 0xCE, 0x86);
DEFINE_GUID(CLSID_CaptureGraphBuilder2, 0xBF87B6E1, 0x8C27, 0x11d0, 0xB3,
#define CLSID_CaptureGraphBuilder2 MP_CLSID_CaptureGraphBuilder2
static DEFINE_GUID(CLSID_CaptureGraphBuilder2, 0xBF87B6E1, 0x8C27, 0x11d0, 0xB3,
0xF0, 0x00, 0xAA, 0x00, 0x37, 0x61, 0xC5);
DEFINE_GUID(CLSID_VideoInputDeviceCategory, 0x860BB310, 0x5D01, 0x11d0,
#define CLSID_VideoInputDeviceCategory MP_CLSID_VideoInputDeviceCategory
static DEFINE_GUID(CLSID_VideoInputDeviceCategory, 0x860BB310, 0x5D01, 0x11d0,
0xBD, 0x3B, 0x00, 0xA0, 0xC9, 0x11, 0xCE, 0x86);
DEFINE_GUID(CLSID_AudioInputDeviceCategory, 0x33d9a762, 0x90c8, 0x11d0,
#define CLSID_AudioInputDeviceCategory MP_CLSID_AudioInputDeviceCategory
static DEFINE_GUID(CLSID_AudioInputDeviceCategory, 0x33d9a762, 0x90c8, 0x11d0,
0xbd, 0x43, 0x00, 0xa0, 0xc9, 0x11, 0xce, 0x86);
DEFINE_GUID(CLSID_FilterGraph, 0xe436ebb3, 0x524f, 0x11ce, 0x9f, 0x53,
#define CLSID_FilterGraph MP_CLSID_FilterGraph
static DEFINE_GUID(CLSID_FilterGraph, 0xe436ebb3, 0x524f, 0x11ce, 0x9f, 0x53,
0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70);
DEFINE_GUID(CLSID_SystemClock, 0xe436ebb1, 0x524f, 0x11ce, 0x9f, 0x53,
#define CLSID_SystemClock MP_CLSID_SystemClock
static DEFINE_GUID(CLSID_SystemClock, 0xe436ebb1, 0x524f, 0x11ce, 0x9f, 0x53,
0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70);
#ifdef NOT_USED
DEFINE_GUID(CLSID_CaptureGraphBuilder, 0xBF87B6E0, 0x8C27, 0x11d0, 0xB3,
#define CLSID_CaptureGraphBuilder MP_CLSID_CaptureGraphBuilder
static DEFINE_GUID(CLSID_CaptureGraphBuilder, 0xBF87B6E0, 0x8C27, 0x11d0, 0xB3,
0xF0, 0x00, 0xAA, 0x00, 0x37, 0x61, 0xC5);
DEFINE_GUID(CLSID_VideoPortManager, 0x6f26a6cd, 0x967b, 0x47fd, 0x87, 0x4a,
#define CLSID_VideoPortManager MP_CLSID_VideoPortManager
static DEFINE_GUID(CLSID_VideoPortManager, 0x6f26a6cd, 0x967b, 0x47fd, 0x87, 0x4a,
0x7a, 0xed, 0x2c, 0x9d, 0x25, 0xa2);
DEFINE_GUID(IID_IPin, 0x56a86891, 0x0ad4, 0x11ce, 0xb0, 0x3a, 0x00, 0x20,
#define IID_IPin MP_IID_IPin
static DEFINE_GUID(IID_IPin, 0x56a86891, 0x0ad4, 0x11ce, 0xb0, 0x3a, 0x00, 0x20,
0xaf, 0x0b, 0xa7, 0x70);
DEFINE_GUID(IID_ICaptureGraphBuilder, 0xbf87b6e0, 0x8c27, 0x11d0, 0xb3,
#define IID_ICaptureGraphBuilder MP_IID_ICaptureGraphBuilder
static DEFINE_GUID(IID_ICaptureGraphBuilder, 0xbf87b6e0, 0x8c27, 0x11d0, 0xb3,
0xf0, 0x00, 0xaa, 0x00, 0x37, 0x61, 0xc5);
DEFINE_GUID(IID_IFilterGraph, 0x56a8689f, 0x0ad4, 0x11ce, 0xb0, 0x3a, 0x00,
#define IID_IFilterGraph MP_IID_IFilterGraph
static DEFINE_GUID(IID_IFilterGraph, 0x56a8689f, 0x0ad4, 0x11ce, 0xb0, 0x3a, 0x00,
0x20, 0xaf, 0x0b, 0xa7, 0x70);
DEFINE_GUID(PIN_CATEGORY_PREVIEW, 0xfb6c4282, 0x0353, 0x11d1, 0x90, 0x5f,
#define PIN_CATEGORY_PREVIEW MP_PIN_CATEGORY_PREVIEW
static DEFINE_GUID(PIN_CATEGORY_PREVIEW, 0xfb6c4282, 0x0353, 0x11d1, 0x90, 0x5f,
0x00, 0x00, 0xc0, 0xcc, 0x16, 0xba);
#endif
/// IID definitions (used for QueryInterface call)
DEFINE_GUID(IID_IReferenceClock, 0x56a86897, 0x0ad4, 0x11ce, 0xb0, 0x3a,
#define IID_IReferenceClock MP_IID_IReferenceClock
static DEFINE_GUID(IID_IReferenceClock, 0x56a86897, 0x0ad4, 0x11ce, 0xb0, 0x3a,
0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70);
DEFINE_GUID(IID_IAMBufferNegotiation, 0x56ED71A0, 0xAF5F, 0x11D0, 0xB3, 0xF0,
#define IID_IAMBufferNegotiation MP_IID_IAMBufferNegotiation
static DEFINE_GUID(IID_IAMBufferNegotiation, 0x56ED71A0, 0xAF5F, 0x11D0, 0xB3, 0xF0,
0x00, 0xAA, 0x00, 0x37, 0x61, 0xC5);
DEFINE_GUID(IID_IKsPropertySet, 0x31efac30, 0x515c, 0x11d0, 0xa9, 0xaa,
#define IID_IKsPropertySet MP_IID_IKsPropertySet
static DEFINE_GUID(IID_IKsPropertySet, 0x31efac30, 0x515c, 0x11d0, 0xa9, 0xaa,
0x00, 0xaa, 0x00, 0x61, 0xbe, 0x93);
DEFINE_GUID(IID_ISampleGrabber, 0x6B652FFF, 0x11FE, 0x4fce, 0x92, 0xAD,
#define IID_ISampleGrabber MP_IID_ISampleGrabber
static DEFINE_GUID(IID_ISampleGrabber, 0x6B652FFF, 0x11FE, 0x4fce, 0x92, 0xAD,
0x02, 0x66, 0xB5, 0xD7, 0xC7, 0x8F);
DEFINE_GUID(IID_ISampleGrabberCB, 0x0579154A, 0x2B53, 0x4994, 0xB0, 0xD0,
#define IID_ISampleGrabberCB MP_IID_ISampleGrabberCB
static DEFINE_GUID(IID_ISampleGrabberCB, 0x0579154A, 0x2B53, 0x4994, 0xB0, 0xD0,
0xE7, 0x73, 0x14, 0x8E, 0xFF, 0x85);
DEFINE_GUID(IID_ICaptureGraphBuilder2, 0x93e5a4e0, 0x2d50, 0x11d2, 0xab,
#define IID_ICaptureGraphBuilder2 MP_IID_ICaptureGraphBuilder2
static DEFINE_GUID(IID_ICaptureGraphBuilder2, 0x93e5a4e0, 0x2d50, 0x11d2, 0xab,
0xfa, 0x00, 0xa0, 0xc9, 0xc6, 0xe3, 0x8d);
DEFINE_GUID(IID_ICreateDevEnum, 0x29840822, 0x5b84, 0x11d0, 0xbd, 0x3b,
#define IID_ICreateDevEnum MP_IID_ICreateDevEnum
static DEFINE_GUID(IID_ICreateDevEnum, 0x29840822, 0x5b84, 0x11d0, 0xbd, 0x3b,
0x00, 0xa0, 0xc9, 0x11, 0xce, 0x86);
DEFINE_GUID(IID_IGraphBuilder, 0x56a868a9, 0x0ad4, 0x11ce, 0xb0, 0x3a,
#define IID_IGraphBuilder MP_IID_IGraphBuilder
static DEFINE_GUID(IID_IGraphBuilder, 0x56a868a9, 0x0ad4, 0x11ce, 0xb0, 0x3a,
0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70);
DEFINE_GUID(IID_IAMVideoProcAmp, 0xC6E13360, 0x30AC, 0x11d0, 0xA1, 0x8C,
#define IID_IAMVideoProcAmp MP_IID_IAMVideoProcAmp
static DEFINE_GUID(IID_IAMVideoProcAmp, 0xC6E13360, 0x30AC, 0x11d0, 0xA1, 0x8C,
0x00, 0xA0, 0xC9, 0x11, 0x89, 0x56);
DEFINE_GUID(IID_IVideoWindow, 0x56a868b4, 0x0ad4, 0x11ce, 0xb0, 0x3a, 0x00,
#define IID_IVideoWindow MP_IID_IVideoWindow
static DEFINE_GUID(IID_IVideoWindow, 0x56a868b4, 0x0ad4, 0x11ce, 0xb0, 0x3a, 0x00,
0x20, 0xaf, 0x0b, 0xa7, 0x70);
DEFINE_GUID(IID_IMediaControl, 0x56a868b1, 0x0ad4, 0x11ce, 0xb0, 0x3a,
#define IID_IMediaControl MP_IID_IMediaControl
static DEFINE_GUID(IID_IMediaControl, 0x56a868b1, 0x0ad4, 0x11ce, 0xb0, 0x3a,
0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70);
DEFINE_GUID(IID_IAMTVTuner, 0x211A8766, 0x03AC, 0x11d1, 0x8D, 0x13, 0x00,
#define IID_IAMTVTuner MP_IID_IAMTVTuner
static DEFINE_GUID(IID_IAMTVTuner, 0x211A8766, 0x03AC, 0x11d1, 0x8D, 0x13, 0x00,
0xAA, 0x00, 0xBD, 0x83, 0x39);
DEFINE_GUID(IID_IAMCrossbar, 0xc6e13380, 0x30ac, 0x11d0, 0xa1, 0x8c, 0x00,
#define IID_IAMCrossbar MP_IID_IAMCrossbar
static DEFINE_GUID(IID_IAMCrossbar, 0xc6e13380, 0x30ac, 0x11d0, 0xa1, 0x8c, 0x00,
0xa0, 0xc9, 0x11, 0x89, 0x56);
DEFINE_GUID(IID_IAMStreamConfig, 0xc6e13340, 0x30ac, 0x11d0, 0xa1, 0x8c,
#define IID_IAMStreamConfig MP_IID_IAMStreamConfig
static DEFINE_GUID(IID_IAMStreamConfig, 0xc6e13340, 0x30ac, 0x11d0, 0xa1, 0x8c,
0x00, 0xa0, 0xc9, 0x11, 0x89, 0x56);
DEFINE_GUID(IID_IAMAudioInputMixer, 0x54C39221, 0x8380, 0x11d0, 0xB3, 0xF0,
#define IID_IAMAudioInputMixer MP_IID_IAMAudioInputMixer
static DEFINE_GUID(IID_IAMAudioInputMixer, 0x54C39221, 0x8380, 0x11d0, 0xB3, 0xF0,
0x00, 0xAA, 0x00, 0x37, 0x61, 0xC5);
DEFINE_GUID(IID_IAMTVAudio, 0x83EC1C30, 0x23D1, 0x11d1, 0x99, 0xE6, 0x00,
#define IID_IAMTVAudio MP_IID_IAMTVAudio
static DEFINE_GUID(IID_IAMTVAudio, 0x83EC1C30, 0x23D1, 0x11d1, 0x99, 0xE6, 0x00,
0xA0, 0xC9, 0x56, 0x02, 0x66);
DEFINE_GUID(IID_IAMAnalogVideoDecoder, 0xC6E13350, 0x30AC, 0x11d0, 0xA1,
#define IID_IAMAnalogVideoDecoder MP_IID_IAMAnalogVideoDecoder
static DEFINE_GUID(IID_IAMAnalogVideoDecoder, 0xC6E13350, 0x30AC, 0x11d0, 0xA1,
0x8C, 0x00, 0xA0, 0xC9, 0x11, 0x89, 0x56);
DEFINE_GUID(IID_IPropertyBag, 0x55272a00, 0x42cb, 0x11ce, 0x81, 0x35, 0x00,
#define IID_IPropertyBag MP_IID_IPropertyBag
static DEFINE_GUID(IID_IPropertyBag, 0x55272a00, 0x42cb, 0x11ce, 0x81, 0x35, 0x00,
0xaa, 0x00, 0x4b, 0xb8, 0x51);
DEFINE_GUID(PIN_CATEGORY_CAPTURE, 0xfb6c4281, 0x0353, 0x11d1, 0x90, 0x5f,
#define PIN_CATEGORY_CAPTURE MP_PIN_CATEGORY_CAPTURE
static DEFINE_GUID(PIN_CATEGORY_CAPTURE, 0xfb6c4281, 0x0353, 0x11d1, 0x90, 0x5f,
0x00, 0x00, 0xc0, 0xcc, 0x16, 0xba);
DEFINE_GUID(PIN_CATEGORY_VIDEOPORT, 0xfb6c4285, 0x0353, 0x11d1, 0x90, 0x5f,
#define PIN_CATEGORY_VIDEOPORT MP_PIN_CATEGORY_VIDEOPORT
static DEFINE_GUID(PIN_CATEGORY_VIDEOPORT, 0xfb6c4285, 0x0353, 0x11d1, 0x90, 0x5f,
0x00, 0x00, 0xc0, 0xcc, 0x16, 0xba);
DEFINE_GUID(PIN_CATEGORY_PREVIEW, 0xfb6c4282, 0x0353, 0x11d1, 0x90, 0x5f,
#define PIN_CATEGORY_PREVIEW MP_PIN_CATEGORY_PREVIEW
static DEFINE_GUID(PIN_CATEGORY_PREVIEW, 0xfb6c4282, 0x0353, 0x11d1, 0x90, 0x5f,
0x00, 0x00, 0xc0, 0xcc, 0x16, 0xba);
DEFINE_GUID(PIN_CATEGORY_VBI, 0xfb6c4284, 0x0353, 0x11d1, 0x90, 0x5f,
#define PIN_CATEGORY_VBI MP_PIN_CATEGORY_VBI
static DEFINE_GUID(PIN_CATEGORY_VBI, 0xfb6c4284, 0x0353, 0x11d1, 0x90, 0x5f,
0x00, 0x00, 0xc0, 0xcc, 0x16, 0xba);
DEFINE_GUID(PROPSETID_TUNER, 0x6a2e0605, 0x28e4, 0x11d0, 0xa1, 0x8c, 0x00,
#define PROPSETID_TUNER MP_PROPSETID_TUNER
static DEFINE_GUID(PROPSETID_TUNER, 0x6a2e0605, 0x28e4, 0x11d0, 0xa1, 0x8c, 0x00,
0xa0, 0xc9, 0x11, 0x89, 0x56);
DEFINE_GUID(MEDIATYPE_VBI, 0xf72a76e1, 0xeb0a, 0x11d0, 0xac, 0xe4, 0x00,
#define MEDIATYPE_VBI MP_MEDIATYPE_VBI
static DEFINE_GUID(MEDIATYPE_VBI, 0xf72a76e1, 0xeb0a, 0x11d0, 0xac, 0xe4, 0x00,
0x00, 0xc0, 0xcc, 0x16, 0xba);
#define INSTANCEDATA_OF_PROPERTY_PTR(x) (((KSPROPERTY*)(x)) + 1)