vd_ffmpeg: autoselect output colorspaces without codecs.conf

Selecting the colorspace to output from a decoder is done in the
function mpcodecs_config_vo(). Add a new version of this function,
mpcodecs_config_vo2(), that allows the decoder to specify a list of
candidate colorspaces instead of always using a hardcoded list
specified in the codecs.conf entry. If the codecs.conf entry has any
"out" lines then those still take priority and the decoder-provided
list (if any) is ignored. Make vd_ffmpeg provide a list of the
colorspaces it's willing to output. Remove "out" lines from most
entries for libavcodec video decoders in codecs.conf, so that the
automatic values are now used instead.
This commit is contained in:
Uoti Urpala 2011-06-26 00:46:40 +03:00
parent aba8a1838a
commit d3bef0286b
5 changed files with 37 additions and 167 deletions

View File

@ -15,7 +15,6 @@ videocodec ffanm
fourcc "ANM " ; internal MPlayer FourCC
driver ffmpeg
dll anm
out BGR8
videocodec ffbinkvideo
info "FFmpeg Bink Video"
@ -26,8 +25,6 @@ videocodec ffbinkvideo
fourcc BIKi ; internal MPlayer FourCC
driver ffmpeg
dll binkvideo
out YV12
out 420A
videocodec ffcdgraphics
info "FFmpeg CD-Graphics"
@ -35,7 +32,6 @@ videocodec ffcdgraphics
fourcc CDGR ; internal MPlayer FourCC
driver ffmpeg
dll cdgraphics
out BGR8
videocodec ffmvi1
info "FFmpeg Motion Pixels"
@ -43,8 +39,6 @@ videocodec ffmvi1
fourcc MVI1 ; internal MPlayer FourCC
driver ffmpeg
dll motionpixels
out BGR32,BGR24,BGR8,Y800,RGB32,RGB24,RGB8
out YV12,YUY2
videocodec ffmdec
info "FFmpeg Sony PlayStation MDEC (Motion DECoder)"
@ -52,7 +46,6 @@ videocodec ffmdec
fourcc MDEC ; internal MPlayer FourCC
driver ffmpeg
dll mdec
out YV12
videocodec ffsiff
info "FFmpeg Beam Software SIFF"
@ -60,14 +53,12 @@ videocodec ffsiff
fourcc VBV1
driver ffmpeg
dll vb
out BGR8
videocodec ffmimic
info "FFmpeg Mimic video"
status working
fourcc ML20
fourcc LM20 ; mimic in avi
out I420
driver ffmpeg
dll "mimic"
@ -75,7 +66,6 @@ videocodec ffkmvc
info "FFmpeg Karl Morton Video Codec"
status working
fourcc KMVC
out BGR8
driver ffmpeg
dll "kmvc"
@ -85,7 +75,6 @@ videocodec ffzmbv
fourcc ZMBV
driver ffmpeg
dll "zmbv"
out RGB24
videocodec geov
info "GeoCodec"
@ -160,7 +149,6 @@ videocodec ffr210
fourcc r210
driver ffmpeg
dll "r210"
out RGB48BE,RGB48LE
videocodec blackmagic
info "Blackmagic 10-bit"
@ -184,7 +172,6 @@ videocodec ffmpeg1
fourcc m1v1
driver ffmpeg
dll "mpeg1video"
out YV12,I420,IYUV
videocodec ffmpeg2
info "FFmpeg MPEG-2"
@ -218,8 +205,6 @@ videocodec ffmpeg2
fourcc slif ; SoftLab MPEG-2 I-frames Codec
driver ffmpeg
dll "mpeg2video"
out YV12,I420,IYUV
out 422P,444P
; for backward compatibility
videocodec ffmpeg12
@ -257,8 +242,6 @@ videocodec ffmpeg12
fourcc EM2V ; Etymonix MPEG-2 I-frame Video Codec
driver ffmpeg
dll "mpegvideo"
out YV12,I420,IYUV
out 422P,444P
videocodec ffmpeg12vdpau
info "FFmpeg MPEG-1/2 (VDPAU)"
@ -324,7 +307,6 @@ videocodec ffmpeg2crystalhd
fourcc slif ; SoftLab MPEG-2 I-frames Codec
driver ffmpeg
dll mpeg2_crystalhd
out YUY2
videocodec mpegpes
info "MPEG-PES output (.mpg or DXR3/IVTV/DVB/V4L2 card)"
@ -365,7 +347,6 @@ videocodec ffnuv
fourcc RJPG
driver ffmpeg
dll nuv
out I420
videocodec ffbmp
info "FFmpeg BMP"
@ -374,7 +355,6 @@ videocodec ffbmp
format 0x706D62 ; AVI
driver ffmpeg
dll bmp
out BGR32,BGR24,BGR8,Y800,RGB32,RGB24,RGB8
videocodec ffdpx
info "FFmpeg DPX"
@ -382,7 +362,6 @@ videocodec ffdpx
fourcc "dpx " ; "dpx " is an internal MPlayer FOURCC
driver ffmpeg
dll dpx
out RGB48BE,RGB48LE,RGB24,RGB32,BGR32
videocodec ffgif
info "FFmpeg GIF"
@ -390,7 +369,6 @@ videocodec ffgif
fourcc "gif " ; for GIF-encoded QuickTime files
driver ffmpeg
dll gif
out BGR32,BGR24,BGR8,Y800,RGB32,RGB24,RGB8
videocodec fftiff
info "FFmpeg TIFF"
@ -398,7 +376,6 @@ videocodec fftiff
fourcc "tiff" ; for TIFF-encoded QuickTime files
driver ffmpeg
dll tiff
out BGR32,BGR24,BGR8,Y800,RGB32,RGB24,RGB8
videocodec ffpcx
info "FFmpeg PCX"
@ -406,7 +383,6 @@ videocodec ffpcx
fourcc "pcx "
driver ffmpeg
dll pcx
out BGR32,BGR24,BGR8,Y800,RGB32,RGB24,RGB8
videocodec ffpng
info "FFmpeg PNG"
@ -415,7 +391,6 @@ videocodec ffpng
fourcc "png " ; for PNG-encoded QuickTime files
driver ffmpeg
dll png
out BGR32,BGR24,BGR8,Y800,RGB48BE,RGB32,RGB24,RGB8
videocodec mpng
info "PNG image"
@ -433,7 +408,6 @@ videocodec ffptx
fourcc "ptx " ; internal MPlayer FourCC
driver ffmpeg
dll ptx
out BGR32,BGR24,BGR8,Y800,RGB32,RGB24,RGB8
videocodec fftga
info "FFmpeg TGA"
@ -442,7 +416,6 @@ videocodec fftga
fourcc "tga " ; for TGA-encoded QuickTime files
driver ffmpeg
dll targa
out BGR32,BGR24,BGR8,Y800,RGB32,RGB24,RGB8
videocodec mtga
info "TGA image"
@ -458,7 +431,6 @@ videocodec ffsgi
fourcc SGI1 ; SGI1 is an internal MPlayer FOURCC
driver ffmpeg
dll sgi
out RGB24,Y800,RGB48BE
videocodec sgi
info "SGI image"
@ -473,7 +445,6 @@ videocodec ffsunras
fourcc "sun " ; sun is an internal MPlayer FOURCC
driver ffmpeg
dll sunrast
out BGR32,BGR24,BGR8,Y800,RGB32,RGB24,RGB8
videocodec ffindeo3
info "FFmpeg Intel Indeo 3.1/3.2"
@ -482,7 +453,6 @@ videocodec ffindeo3
fourcc IV32,iv32
driver ffmpeg
dll indeo3
out YVU9
videocodec fffli
info "Autodesk FLI/FLC Animation"
@ -490,7 +460,6 @@ videocodec fffli
fourcc FLIC ; FLIC is an internal MPlayer FOURCC
driver ffmpeg
dll "flic"
out BGR16,BGR15,BGR8 query
videocodec ffaasc
info "Autodesk RLE"
@ -498,7 +467,6 @@ videocodec ffaasc
fourcc AASC
driver ffmpeg
dll "aasc"
out BGR24
videocodec ffloco
info "LOCO video"
@ -506,7 +474,6 @@ videocodec ffloco
fourcc LOCO
driver ffmpeg
dll "loco"
out 422P,YV12,BGR32,BGR24 query
videocodec ffqtrle
info "QuickTime Animation (RLE)"
@ -514,7 +481,6 @@ videocodec ffqtrle
format 0x20656C72 ; "rle "
driver ffmpeg
dll "qtrle"
out BGR32,RGB24,BGR15,BGR8 query
videocodec ffrpza
info "QuickTime Apple Video"
@ -522,7 +488,6 @@ videocodec ffrpza
fourcc rpza,azpr,RPZA,AZPR
driver ffmpeg
dll "rpza"
out BGR15
videocodec ffsmc
info "Apple Graphics (SMC) codec"
@ -530,7 +495,6 @@ videocodec ffsmc
format 0x20636d73 ; "smc "
driver ffmpeg
dll "smc"
out BGR8
videocodec ff8bps
info "Planar RGB (Photoshop)"
@ -538,7 +502,6 @@ videocodec ff8bps
fourcc 8BPS
driver ffmpeg
dll "8bps"
out BGR32,BGR24,BGR8 query
videocodec ffcyuv
info "Creative YUV (libavcodec)"
@ -546,7 +509,6 @@ videocodec ffcyuv
fourcc cyuv,CYUV
driver ffmpeg
dll "cyuv"
out 411P
videocodec ffaura
info "Auravision Aura (libavcodec)"
@ -554,7 +516,6 @@ videocodec ffaura
fourcc aura,AURA
driver ffmpeg
dll "aura"
out 411P
videocodec ffaura2
info "Auravision Aura 2 (libavcodec)"
@ -562,7 +523,6 @@ videocodec ffaura2
fourcc aur2,AUR2
driver ffmpeg
dll "aura2"
out 422P
videocodec ffmsrle
info "Microsoft RLE"
@ -572,7 +532,6 @@ videocodec ffmsrle
fourcc WRLE
driver ffmpeg
dll "msrle"
out BGR8
videocodec ffroqvideo
info "Id RoQ File Video"
@ -580,7 +539,6 @@ videocodec ffroqvideo
fourcc RoQV ; RoQV is an internal MPlayer FOURCC
driver ffmpeg
dll "roqvideo"
out 444P
videocodec lzo
info "LZO compressed"
@ -663,7 +621,6 @@ videocodec ffcvid
fourcc cvid,CVID
driver ffmpeg
dll "cinepak"
out YV12,BGR8 query
videocodec cvidvfw
info "Cinepak Video"
@ -695,7 +652,6 @@ videocodec ffvideo1
fourcc wham,WHAM
driver ffmpeg
dll "msvideo1"
out BGR15,BGR8 query
videocodec ffmszh
info "FFmpeg AVImszh"
@ -703,7 +659,6 @@ videocodec ffmszh
fourcc MSZH
driver ffmpeg
dll "mszh"
out BGR24
videocodec ffzlib
info "FFmpeg AVIzlib"
@ -711,7 +666,6 @@ videocodec ffzlib
fourcc ZLIB
driver ffmpeg
dll "zlib"
out BGR24
;XAnim (slow):
@ -732,8 +686,6 @@ videocodec ffhuffyuv
fourcc HFYU,FFVH
driver ffmpeg
dll huffyuv
out YUY2,422P,YV12
out BGR32,BGR24
videocodec ffv1
info "FFV1 (lossless codec)"
@ -741,8 +693,6 @@ videocodec ffv1
fourcc FFV1
driver ffmpeg
dll ffv1
out 411P,444P,422P,YV12,I420,IYUV,YVU9,422P16
out BGR32
videocodec ffsnow
info "FFSNOW (Michael's wavelet codec)"
@ -750,7 +700,6 @@ videocodec ffsnow
fourcc snow,SNOW
driver ffmpeg
dll snow
out YV12
videocodec ffasv1
info "FFmpeg ASUS V1"
@ -758,7 +707,6 @@ videocodec ffasv1
fourcc ASV1
driver ffmpeg
dll asv1
out YV12,I420,IYUV
videocodec ffasv2
info "FFmpeg ASUS V2"
@ -766,7 +714,6 @@ videocodec ffasv2
fourcc ASV2
driver ffmpeg
dll asv2
out YV12,I420,IYUV
videocodec ffvcr1
info "FFmpeg ATI VCR1"
@ -774,7 +721,6 @@ videocodec ffvcr1
fourcc VCR1
driver ffmpeg
dll vcr1
out YVU9
videocodec ffcljr
info "FFmpeg Cirrus Logic AccuPak (CLJR)"
@ -782,7 +728,6 @@ videocodec ffcljr
fourcc CLJR
driver ffmpeg
dll cljr
out 411P
videocodec ffsvq1
info "FFmpeg Sorenson Video v1 (SVQ1)"
@ -790,7 +735,6 @@ videocodec ffsvq1
fourcc SVQ1,svq1
driver ffmpeg
dll svq1
out YVU9
videocodec ff4xm
info "FFmpeg 4XM video"
@ -798,7 +742,6 @@ videocodec ff4xm
fourcc 4XMV
driver ffmpeg
dll 4xm
out BGR15,BGR16 query
videocodec ffvixl
info "Miro/Pinnacle VideoXL codec"
@ -808,7 +751,6 @@ videocodec ffvixl
fourcc XIXL
driver ffmpeg
dll xl
out 411P
videocodec ffqtdrw
info "FFmpeg QuickDraw"
@ -816,7 +758,6 @@ videocodec ffqtdrw
fourcc qdrw
driver ffmpeg
dll qdraw
out BGR8
videocodec ffindeo2
info "FFmpeg Indeo 2"
@ -825,7 +766,6 @@ videocodec ffindeo2
fourcc IV20
driver ffmpeg
dll indeo2
out YVU9
videocodec ffflv
info "FFmpeg Flash video"
@ -833,7 +773,6 @@ videocodec ffflv
fourcc FLV1,flv
driver ffmpeg
dll flv
out YV12
videocodec fffsv
info "FFmpeg Flash Screen video"
@ -841,7 +780,6 @@ videocodec fffsv
fourcc FSV1
driver ffmpeg
dll flashsv
out BGR24
videocodec ffdivx
info "FFmpeg DivX ;-) (MSMPEG-4 v3)"
@ -858,7 +796,6 @@ videocodec ffdivx
fourcc DVX3
driver ffmpeg
dll msmpeg4
out YV12,I420,IYUV
videocodec ffdivxcrystalhd
info "FFmpeg DivX ;-) (MSMPEG-4 v3) (CrystalHD)"
@ -875,7 +812,6 @@ videocodec ffdivxcrystalhd
fourcc DVX3
driver ffmpeg
dll msmpeg4_crystalhd
out YUY2
videocodec ffmp42
info "FFmpeg MSMPEG-4 v2"
@ -884,7 +820,6 @@ videocodec ffmp42
fourcc MP42,mp42,Mp42
driver ffmpeg
dll msmpeg4v2
out YV12,I420,IYUV
videocodec ffmp41
info "FFmpeg MSMPEG-4 v1"
@ -894,7 +829,6 @@ videocodec ffmp41
fourcc MP41
driver ffmpeg
dll msmpeg4v1
out YV12,I420,IYUV
videocodec ffwmv1
info "FFmpeg WMV1/WMV7"
@ -902,7 +836,6 @@ videocodec ffwmv1
fourcc WMV1,wmv1
driver ffmpeg
dll wmv1
out YV12,I420,IYUV
videocodec ffwmv2
info "FFmpeg WMV2/WMV8"
@ -910,7 +843,6 @@ videocodec ffwmv2
fourcc WMV2,wmv2
driver ffmpeg
dll wmv2
out YV12,I420,IYUV
videocodec ffwmv3
info "FFmpeg WMV3/WMV9"
@ -918,7 +850,6 @@ videocodec ffwmv3
fourcc WMV3,wmv3
driver ffmpeg
dll wmv3
out YV12,I420,IYUV
videocodec ffwmvp
info "FFmpeg WVC1"
@ -927,7 +858,6 @@ videocodec ffwmvp
fourcc wmvp,WMVP
driver ffmpeg
dll wmv3
out YV12,I420,IYUV
videocodec ffwmv3vdpau
info "FFmpeg WMV3/WMV9 (VDPAU)"
@ -943,7 +873,6 @@ videocodec ffwmv3crystalhd
fourcc WMV3,wmv3
driver ffmpeg
dll wmv3_crystalhd
out YUY2
videocodec ffvc1
info "FFmpeg WVC1"
@ -952,7 +881,6 @@ videocodec ffvc1
fourcc vc-1,VC-1
driver ffmpeg
dll vc1
out YV12,I420,IYUV
videocodec ffvc1vdpau
info "FFmpeg WVC1 (VDPAU)"
@ -970,7 +898,6 @@ videocodec ffvc1crystalhd
fourcc vc-1,VC-1
driver ffmpeg
dll vc1_crystalhd
out YUY2
videocodec ffh264
info "FFmpeg H.264"
@ -986,7 +913,6 @@ videocodec ffh264
format 0x10000005
driver ffmpeg
dll h264
out YV12,I420,IYUV
videocodec ffh264vdpau
info "FFmpeg H.264 (VDPAU)"
@ -1015,7 +941,6 @@ videocodec ffh264crystalhd
format 0x10000005
driver ffmpeg
dll h264_crystalhd
out YUY2
videocodec coreavcwindows
info "CoreAVC H.264 for x86 - http://corecodec.org/"
@ -1041,7 +966,6 @@ videocodec ffsvq3
fourcc SVQ3
driver ffmpeg
dll svq3
out YV12,I420,IYUV
videocodec ffodivx
info "FFmpeg MPEG-4"
@ -1074,7 +998,6 @@ videocodec ffodivx
fourcc SIPP ; Samsung SHR-6040
driver ffmpeg
dll mpeg4 ;opendivx
out YV12,I420,IYUV
videocodec ffodivxvdpau
info "FFmpeg MPEG-4,DIVX-4/5 (VDPAU)"
@ -1140,7 +1063,6 @@ videocodec ffodivxcrystalhd
fourcc SIPP ; Samsung SHR-6040
driver ffmpeg
dll mpeg4_crystalhd
out YUY2
videocodec ffwv1f
info "WV1F MPEG-4"
@ -1156,7 +1078,6 @@ videocodec fflibschroedinger
fourcc drac
driver ffmpeg
dll libschroedinger
out YV12,I420,IYUV,422P,444P
videocodec fflibdirac
info "Dirac (through FFmpeg libdirac)"
@ -1164,7 +1085,6 @@ videocodec fflibdirac
fourcc drac
driver ffmpeg
dll libdirac
out YV12,I420,IYUV,422P,444P
videocodec xvid
info "Xvid (MPEG-4)"
@ -1440,14 +1360,6 @@ videocodec ffmjpeg
fourcc MTSJ,ZJPG
driver ffmpeg
dll mjpeg
out 444P
out 422P
out 440P
out YUY2 ; queried (conversion from yuv422p)
out YV12,I420,IYUV
out BGR32 ; lossless JPEG
out RGB24 ; JPEG-LS
out Y800
videocodec ffmjpegb
info "FFmpeg MJPEG-B"
@ -1455,11 +1367,6 @@ videocodec ffmjpegb
fourcc mjpb ; Apple MJPEG-B (Quicktime)
driver ffmpeg
dll mjpegb
out 444P
out 422P
out 440P
out YUY2 ; queryed (conversion from yuv422p)
out YV12,I420,IYUV
; slow. usable only for standalone JPEGs, like -mf, avid or Photo-JPEG:
videocodec ijpg
@ -1544,7 +1451,6 @@ videocodec fflibopenjpeg
fourcc mjp2
driver ffmpeg
dll "libopenjpeg"
out RGB24,RGB32,BGR32,Y8,Y800
videocodec m3jpeg2k
info "Morgan MJPEG2000"
@ -1603,7 +1509,6 @@ videocodec fffrwu
fourcc FRWU
driver ffmpeg
dll "FRWU"
out UYVY
videocodec frwuvfw
info "Forward Uncompressed Video Codec"
@ -1673,7 +1578,6 @@ videocodec ffi263
fourcc I263,i263
driver ffmpeg
dll h263i
out YV12,I420,IYUV
videocodec ffh263
info "FFmpeg H.263+"
@ -1688,7 +1592,6 @@ videocodec ffh263
fourcc VX1K ; Agora Labs VX1000S H263
driver ffmpeg
dll h263
out YV12,I420,IYUV
videocodec ffzygo
info "FFmpeg ZyGo"
@ -1714,7 +1617,6 @@ videocodec ffh261
fourcc H261,h261
driver ffmpeg
dll h261
out YV12
videocodec qt261
info "QuickTime H.261 video"
@ -1818,7 +1720,6 @@ videocodec ffindeo5
fourcc IV50
driver ffmpeg
dll indeo5
out YVU9
; DV: qdv is more stable... libdv is slow, mcdv is unstable
@ -1844,7 +1745,6 @@ videocodec ffdv
fourcc dvs1,dvh1
driver ffmpeg
dll dvvideo
out 411P,422P,YV12
videocodec qdv
info "Sony Digital Video (DV)"
@ -1989,7 +1889,6 @@ videocodec ffrv20
fourcc RVTR
driver ffmpeg
dll rv20
out YV12,I420,IYUV
videocodec ffrv30
info "FFmpeg RV30"
@ -1997,7 +1896,6 @@ videocodec ffrv30
fourcc RV30,rv30
driver ffmpeg
dll rv30
out YV12,I420,IYUV
videocodec ffrv40
info "FFmpeg RV40"
@ -2005,7 +1903,6 @@ videocodec ffrv40
fourcc RV40,rv40
driver ffmpeg
dll rv40
out YV12,I420,IYUV
videocodec rv20
info "Linux RealPlayer 8 RV20"
@ -2046,7 +1943,6 @@ videocodec ffrv10
fourcc RV13,rv13
driver ffmpeg
dll rv10
out YV12,I420,IYUV
; others:
@ -2091,7 +1987,6 @@ videocodec fflagarith
fourcc LAGS
driver ffmpeg
dll lagarith
out YV12
videocodec lagarith
info "Lagarith Lossless Video Codec"
@ -2194,7 +2089,6 @@ videocodec ffvp3
format 0x20335056 ; "VP3 " (used in .nsv files)
driver ffmpeg
dll "vp3"
out YV12
videocodec fftheora
info "FFmpeg Theora"
@ -2204,7 +2098,6 @@ videocodec fftheora
format 0xFFFC
driver ffmpeg
dll "theora"
out YV12,422P,444P
videocodec vp3
info "On2 Open Source VP3 Codec"
@ -2234,7 +2127,6 @@ videocodec ffvp5
fourcc VP50
driver ffmpeg
dll "vp5"
out YV12
videocodec vp5
info "On2 VP5 Personal Codec"
@ -2251,7 +2143,6 @@ videocodec ffvp6
fourcc VP60,VP61,VP62
driver ffmpeg
dll "vp6"
out YV12
videocodec ffvp6a
info "FFmpeg VP6A"
@ -2259,7 +2150,6 @@ videocodec ffvp6a
fourcc VP6A
driver ffmpeg
dll "vp6a"
out 420A
videocodec ffvp6f
info "FFmpeg VP6 Flash"
@ -2268,7 +2158,6 @@ videocodec ffvp6f
fourcc FLV4
driver ffmpeg
dll "vp6f"
out YV12
videocodec vp6
info "On2 VP6 Personal Codec"
@ -2303,7 +2192,6 @@ videocodec ffvp8
fourcc VP80
driver ffmpeg
dll "vp8"
out YV12
videocodec fflibvpx
info "FFmpeg wrapper for libvpx/VP8"
@ -2311,7 +2199,6 @@ videocodec fflibvpx
fourcc VP80
driver ffmpeg
dll "libvpx"
out YV12
videocodec mwv1
info "Motion Wavelets"
@ -2353,7 +2240,6 @@ videocodec ffultimotion
fourcc ULTI
driver ffmpeg
dll "ultimotion"
out YVU9
videocodec ultimotion
info "IBM Ultimotion"
@ -2443,7 +2329,6 @@ videocodec ffduck
fourcc PVEZ
driver ffmpeg
dll "truemotion1"
out BGR15,BGR16,BGR24,BGR32 query
videocodec fftm20
info "FFmpeg Duck/On2 TrueMotion 2.0"
@ -2451,7 +2336,6 @@ videocodec fftm20
fourcc TM20
driver ffmpeg
dll truemotion2
out BGR24
; our BGR15->BGR32 is bad or the DLL?
videocodec tm20
@ -2505,7 +2389,6 @@ videocodec ffamv
fourcc AMVV ; internal MPlayer FourCC
driver ffmpeg
dll "amv"
out YV12
videocodec ffsp5x
info "SP5x codec - used by Aiptek MegaCam"
@ -2513,7 +2396,6 @@ videocodec ffsp5x
fourcc SP53,SP54,SP55,SP56,SP57,SP58
driver ffmpeg
dll "sp5x"
out YV12
videocodec sp6x
info "SP6x codec"
@ -2586,7 +2468,6 @@ videocodec ffkega
fourcc KGV1
driver ffmpeg
dll kgv1
out BGR15
videocodec kegavideo
info "Kega Video"
@ -2701,7 +2582,6 @@ videocodec ffwnv1
fourcc WNV1
driver ffmpeg
dll wnv1
out 422P
videocodec wnv1
info "Winnov Videum wnv1 codec"
@ -2744,7 +2624,6 @@ videocodec ffvmnc
fourcc VMnc
driver ffmpeg
dll "vmnc"
out BGR32,BGR15,BGR8
videocodec vmnc
info "VMware video"
@ -2759,7 +2638,6 @@ videocodec ffsmkvid
status working
fourcc SMK2
fourcc SMK4
out BGR8
driver ffmpeg
dll "smackvid"
@ -2771,7 +2649,6 @@ videocodec ffcavs
fourcc avs2
driver ffmpeg
dll "cavs"
out YV12,I420
videocodec qtdnxhd
info "QuickTime Avid DNxHD"
@ -2788,7 +2665,6 @@ videocodec ffdnxhd
fourcc AVdn
driver ffmpeg
dll "dnxhd"
out 422P
; quicktime codecs:
@ -2918,7 +2794,6 @@ videocodec ffv210
fourcc v210
driver ffmpeg
dll v210
out 422P16
videocodec qtcine
info "cinewave uncompressed 10-bit codec"
@ -3065,7 +2940,6 @@ videocodec ffcamtasia
fourcc TSCC,tscc
driver ffmpeg
dll "camtasia"
out BGR32,BGR24,BGR15,BGR8 query
; sample videos: http://www.techsmith.com/products/camtasia/examplevideos.asp
videocodec camtasia
@ -3082,7 +2956,6 @@ videocodec ffcamstudio
fourcc CSCD,cscd
driver ffmpeg
dll "camstudio"
out BGR32,BGR24,BGR15 query
; Fraps - Realtime Video Capture - http://www.fraps.com/
videocodec fraps
@ -3100,7 +2973,6 @@ videocodec fffraps
fourcc FPS1,fps1
driver ffmpeg
dll "fraps"
out BGR24,YV12,I420
videocodec ffjv
info "FFmpeg Bitmap Brothers JV"
@ -3108,7 +2980,6 @@ videocodec ffjv
fourcc FFJV ; internal MPlayer FourCC
driver ffmpeg
dll "jv"
out BGR8
videocodec fftiertexseq
info "FFmpeg Tiertex SEQ"
@ -3116,7 +2987,6 @@ videocodec fftiertexseq
fourcc TSEQ ; internal MPlayer FourCC
driver ffmpeg
dll "tiertexseqvideo"
out BGR8
videocodec ffvmd
info "FFmpeg Sierra VMD video"
@ -3124,7 +2994,6 @@ videocodec ffvmd
fourcc VMDV ; internal MPlayer FourCC
driver ffmpeg
dll "vmdvideo"
out BGR8
videocodec ffdxa
info "FFmpeg Feeble Files DXA video"
@ -3132,7 +3001,6 @@ videocodec ffdxa
fourcc DXA1 ; internal MPlayer FourCC
driver ffmpeg
dll "dxa"
out BGR8
videocodec ffdsicinvideo
info "FFmpeg Delphine CIN video"
@ -3140,7 +3008,6 @@ videocodec ffdsicinvideo
fourcc DCIV ; internal MPlayer FourCC
driver ffmpeg
dll "dsicinvideo"
out BGR8
videocodec ffthp
info "FFmpeg THP video"
@ -3148,7 +3015,6 @@ videocodec ffthp
fourcc THPV ; internal MPlayer FourCC
driver ffmpeg
dll thp
out YV12
videocodec ffbfi
info "FFmpeg BFI Video"
@ -3156,7 +3022,6 @@ videocodec ffbfi
fourcc BFIV ; internal MPlayer FourCC
driver ffmpeg
dll bfi
out BGR8
videocodec ffbethsoftvid
info "FFmpeg Bethesda Software VID"
@ -3165,7 +3030,6 @@ videocodec ffbethsoftvid
fourcc BETH ; internal MPlayer FourCC
driver ffmpeg
dll bethsoftvid
out BGR8
videocodec ffrl2
info "FFmpeg RL2"
@ -3173,7 +3037,6 @@ videocodec ffrl2
fourcc RL2V ; internal MPlayer FourCC
driver ffmpeg
dll rl2
out BGR8
videocodec fftxd
info "FFmpeg Renderware TeXture Dictionary"
@ -3181,7 +3044,6 @@ videocodec fftxd
fourcc TXDV ; internal MPlayer FourCC
driver ffmpeg
dll txd
out BGR32
videocodec xan
info "XAN Video"
@ -3197,7 +3059,6 @@ videocodec ffwc4
fourcc Xxan
driver ffmpeg
dll "xan_wc4"
out YV12
videocodec ffwc3
info "FFmpeg XAN wc3"
@ -3205,7 +3066,6 @@ videocodec ffwc3
fourcc WC3V ; internal MPlayer FourCC
driver ffmpeg
dll "xan_wc3"
out BGR8
videocodec ffidcin
info "FFmpeg Id CIN video"
@ -3213,7 +3073,6 @@ videocodec ffidcin
fourcc IDCI ; internal MPlayer FourCC
driver ffmpeg
dll "idcinvideo"
out BGR8
videocodec ffinterplay
info "FFmpeg Interplay Video"
@ -3221,7 +3080,6 @@ videocodec ffinterplay
fourcc INPV ; internal MPlayer FourCC
driver ffmpeg
dll "interplayvideo"
out BGR8,BGR15
videocodec ffvqa
info "FFmpeg VQA Video"
@ -3229,7 +3087,6 @@ videocodec ffvqa
fourcc VQAV ; internal MPlayer FourCC
driver ffmpeg
dll "vqavideo"
out BGR8
videocodec ffc93
info "FFmpeg C93 Video"
@ -3237,7 +3094,6 @@ videocodec ffc93
fourcc C93V ; internal MPlayer FourCC
driver ffmpeg
dll c93
out BGR8
videocodec ffeatgv
info "FFmpeg Electronic Arts TGV"
@ -3245,7 +3101,6 @@ videocodec ffeatgv
fourcc fVGT
driver ffmpeg
dll eatgv
out BGR8
; raw formats: (now RGB formats are autodetected)
@ -3506,7 +3361,6 @@ videocodec ffrawyuy2
fourcc yuvs,YUVS
driver ffmpeg
dll rawvideo
out YUY2
videocodec ffrawyuv2
info "RAW YUV2"
@ -3516,7 +3370,6 @@ videocodec ffrawyuv2
fourcc yuv2,YUV2
driver ffmpeg
dll rawvideo
out YUY2
videocodec ffrawuyvy
info "RAW UYVY"
@ -3534,7 +3387,6 @@ videocodec ffrawuyvy
fourcc VDTZ
driver ffmpeg
dll rawvideo
out UYVY
videocodec ffraw444P
info "RAW 444P"
@ -3544,7 +3396,6 @@ videocodec ffraw444P
fourcc 444p,444P
driver ffmpeg
dll rawvideo
out 444P
videocodec ffraw422P
info "RAW 422P"
@ -3556,7 +3407,6 @@ videocodec ffraw422P
fourcc Y42B,y42b
driver ffmpeg
dll rawvideo
out 422P
videocodec ffrawyv12
info "RAW YV12"
@ -3566,7 +3416,6 @@ videocodec ffrawyv12
fourcc yv12,YV12
driver ffmpeg
dll rawvideo
out YV12
videocodec ffrawi420
info "RAW I420"
@ -3577,7 +3426,6 @@ videocodec ffrawi420
fourcc IYUV,iyuv
driver ffmpeg
dll rawvideo
out I420,IYUV
videocodec ffrawyvu9
info "RAW YVU9"
@ -3587,7 +3435,6 @@ videocodec ffrawyvu9
fourcc yvu9,YVU9
driver ffmpeg
dll rawvideo
out YVU9
videocodec ffrawy800
info "RAW Y8/Y800"
@ -3597,7 +3444,6 @@ videocodec ffrawy800
fourcc y800,Y800
driver ffmpeg
dll rawvideo
out Y800,Y8
; NULL codec - for testing.

View File

@ -35,6 +35,7 @@
#include "vd.h"
#include "vf.h"
#include "libvo/video_out.h"
extern const vd_functions_t mpcodecs_vd_null;
extern const vd_functions_t mpcodecs_vd_ffmpeg;
@ -108,13 +109,12 @@ const vd_functions_t * const mpcodecs_vd_drivers[] = {
NULL
};
#include "libvo/video_out.h"
int mpcodecs_config_vo(sh_video_t *sh, int w, int h,
unsigned int preferred_outfmt)
int mpcodecs_config_vo2(sh_video_t *sh, int w, int h,
const unsigned int *outfmts,
unsigned int preferred_outfmt)
{
struct MPOpts *opts = sh->opts;
int i, j;
int j;
unsigned int out_fmt = 0;
int screen_size_x = 0;
int screen_size_y = 0;
@ -138,6 +138,10 @@ int mpcodecs_config_vo(sh_video_t *sh, int w, int h,
// user wants postprocess but no pp filter yet:
sh->vfilter = vf = vf_open_filter(opts, vf, "pp", NULL);
}
if (!outfmts || sh->codec->outfmt[0] != 0xffffffff)
outfmts = sh->codec->outfmt;
// check if libvo and codec has common outfmt (no conversion):
csp_again:
@ -150,11 +154,11 @@ int mpcodecs_config_vo(sh_video_t *sh, int w, int h,
}
j = -1;
for (i = 0; i < CODECS_MAX_OUTFMT; i++) {
for (int i = 0; i < CODECS_MAX_OUTFMT; i++) {
int flags;
out_fmt = sh->codec->outfmt[i];
out_fmt = outfmts[i];
if (out_fmt == (unsigned int) 0xFFFFFFFF)
continue;
break;
flags = vf->query_format(vf, out_fmt);
mp_msg(MSGT_CPLAYER, MSGL_DBG2,
"vo_debug: query(%s) returned 0x%X (i=%d) \n",
@ -234,7 +238,8 @@ int mpcodecs_config_vo(sh_video_t *sh, int w, int h,
sh->vf_initialized = -1;
return 0; // failed
}
out_fmt = sh->codec->outfmt[j];
out_fmt = outfmts[j];
sh->outfmt = out_fmt;
mp_msg(MSGT_CPLAYER, MSGL_V, "VDec: using %s as output csp (no %d)\n",
vo_format_name(out_fmt), j);
sh->outfmtidx = j;
@ -354,8 +359,7 @@ mp_image_t *mpcodecs_get_image(sh_video_t *sh, int mp_imgtype, int mp_imgflag,
int w, int h)
{
mp_image_t *mpi =
vf_get_image(sh->vfilter, sh->codec->outfmt[sh->outfmtidx], mp_imgtype,
mp_imgflag, w, h);
vf_get_image(sh->vfilter, sh->outfmt, mp_imgtype, mp_imgflag, w, h);
if (mpi)
mpi->x = mpi->y = 0;
return mpi;

View File

@ -49,7 +49,15 @@ extern const vd_functions_t * const mpcodecs_vd_drivers[];
#define VDCTRL_QUERY_UNSEEN_FRAMES 9 /* current decoder lag */
// callbacks:
int mpcodecs_config_vo(sh_video_t *sh, int w, int h, unsigned int preferred_outfmt);
int mpcodecs_config_vo2(sh_video_t *sh, int w, int h,
const unsigned int *outfmts,
unsigned int preferred_outfmt);
static inline int mpcodecs_config_vo(sh_video_t *sh, int w, int h,
unsigned int preferred_outfmt)
{
return mpcodecs_config_vo2(sh, w, h, NULL, preferred_outfmt);
}
mp_image_t* mpcodecs_get_image(sh_video_t *sh, int mp_imgtype, int mp_imgflag, int w, int h);
void mpcodecs_draw_slice(sh_video_t *sh, unsigned char** src, int* stride, int w,int h, int x, int y);

View File

@ -501,7 +501,18 @@ static int init_vo(sh_video_t *sh, enum PixelFormat pix_fmt){
sh->disp_h = height;
ctx->pix_fmt = pix_fmt;
ctx->best_csp = pixfmt2imgfmt(pix_fmt);
if (!mpcodecs_config_vo(sh, sh->disp_w, sh->disp_h, ctx->best_csp))
const unsigned int *supported_fmts;
if (ctx->best_csp == IMGFMT_YV12)
supported_fmts = (const unsigned int[])
{IMGFMT_YV12, IMGFMT_I420, IMGFMT_IYUV, 0xffffffff};
else if (ctx->best_csp == IMGFMT_422P)
supported_fmts = (const unsigned int[])
{IMGFMT_422P, IMGFMT_YV12, IMGFMT_I420, IMGFMT_IYUV,
0xffffffff};
else
supported_fmts = (const unsigned int[]){ctx->best_csp, 0xffffffff};
if (!mpcodecs_config_vo2(sh, sh->disp_w, sh->disp_h, supported_fmts,
ctx->best_csp))
return -1;
ctx->vo_initialized = 1;
}

View File

@ -119,6 +119,7 @@ typedef struct sh_video {
int i_bps; // == bitrate (compressed bytes/sec)
int disp_w,disp_h; // display size (filled by fileformat parser)
// output driver/filters: (set by libmpcodecs core)
unsigned int outfmt;
unsigned int outfmtidx;
struct vf_instance *vfilter; // the video filter chain, used for this video stream
int output_flags; // query_format() results for output filters+vo