mirror of
https://github.com/mpv-player/mpv
synced 2025-04-07 19:06:39 +02:00
Support VDPAU hardware accelerated decoding of MPEG-4 ASP on capable
hardware. Original patch by NVIDIA corporation. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29885 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
parent
a63e8dce21
commit
2b93a48ac8
@ -3465,7 +3465,8 @@ Select the driver to use as source to overlay on top of X11.
|
|||||||
.PD 1
|
.PD 1
|
||||||
.
|
.
|
||||||
.TP
|
.TP
|
||||||
.B vdpau (with \-vc ffmpeg12vdpau, ffwmv3vdpau, ffvc1vdpau or ffh264vdpau)
|
.B vdpau (with \-vc ffmpeg12vdpau, ffwmv3vdpau, ffvc1vdpau, ffh264vdpau
|
||||||
|
or ffodivxvdpau)
|
||||||
Video output that uses VDPAU to decode video via hardware.
|
Video output that uses VDPAU to decode video via hardware.
|
||||||
Also supports displaying of software-decoded video.
|
Also supports displaying of software-decoded video.
|
||||||
.PD 0
|
.PD 0
|
||||||
|
@ -192,6 +192,7 @@ static int add_to_format(char *s, char *alias,unsigned int *fourcc, unsigned int
|
|||||||
{"VDPAU_H264",IMGFMT_VDPAU_H264},
|
{"VDPAU_H264",IMGFMT_VDPAU_H264},
|
||||||
{"VDPAU_WMV3",IMGFMT_VDPAU_WMV3},
|
{"VDPAU_WMV3",IMGFMT_VDPAU_WMV3},
|
||||||
{"VDPAU_VC1",IMGFMT_VDPAU_VC1},
|
{"VDPAU_VC1",IMGFMT_VDPAU_VC1},
|
||||||
|
{"VDPAU_MPEG4",IMGFMT_VDPAU_MPEG4},
|
||||||
|
|
||||||
{NULL, 0}
|
{NULL, 0}
|
||||||
};
|
};
|
||||||
|
@ -954,6 +954,37 @@ videocodec ffodivx
|
|||||||
dll mpeg4 ;opendivx
|
dll mpeg4 ;opendivx
|
||||||
out YV12,I420,IYUV
|
out YV12,I420,IYUV
|
||||||
|
|
||||||
|
videocodec ffodivxvdpau
|
||||||
|
info "FFmpeg MPEG-4,DIVX-4/5 (VDPAU)"
|
||||||
|
status working
|
||||||
|
fourcc FMP4,fmp4
|
||||||
|
fourcc DIVX,divx
|
||||||
|
fourcc DIV1,div1 divx
|
||||||
|
fourcc MP4S,mp4s ; ISO MPEG-4 Video V1
|
||||||
|
fourcc M4S2,m4s2
|
||||||
|
fourcc xvid,XVID,XviD,XVIX
|
||||||
|
fourcc DX50,dx50,BLZ0 DX50
|
||||||
|
fourcc mp4v,MP4V
|
||||||
|
format 0x4
|
||||||
|
fourcc UMP4
|
||||||
|
fourcc RMP4
|
||||||
|
fourcc 3IV2,3iv2 ; 3ivx Delta 4
|
||||||
|
fourcc DXGM
|
||||||
|
fourcc SEDG ; diskless camcorder Samsung Miniket VP-M110
|
||||||
|
fourcc SMP4,smp4 ; Samsung SMP4 video codec
|
||||||
|
fourcc VIDM ; vidm 4.01 codec
|
||||||
|
format 0x10000004 ; mpeg 4 es
|
||||||
|
fourcc m4cc,M4CC
|
||||||
|
fourcc hdx4,HDX4
|
||||||
|
fourcc FVFW,fvfw
|
||||||
|
fourcc FFDS
|
||||||
|
fourcc DCOD,MVXM,EM4A,PM4V
|
||||||
|
fourcc M4T3,DMK2,DIGI,INMC
|
||||||
|
fourcc EPHV,SN40
|
||||||
|
driver ffmpeg
|
||||||
|
dll mpeg4_vdpau
|
||||||
|
out VDPAU_MPEG4
|
||||||
|
|
||||||
videocodec ffwv1f
|
videocodec ffwv1f
|
||||||
info "WV1F MPEG-4"
|
info "WV1F MPEG-4"
|
||||||
status working
|
status working
|
||||||
|
@ -73,6 +73,7 @@ static const struct {
|
|||||||
{IMGFMT_VDPAU_H264, PIX_FMT_VDPAU_H264},
|
{IMGFMT_VDPAU_H264, PIX_FMT_VDPAU_H264},
|
||||||
{IMGFMT_VDPAU_WMV3, PIX_FMT_VDPAU_WMV3},
|
{IMGFMT_VDPAU_WMV3, PIX_FMT_VDPAU_WMV3},
|
||||||
{IMGFMT_VDPAU_VC1, PIX_FMT_VDPAU_VC1},
|
{IMGFMT_VDPAU_VC1, PIX_FMT_VDPAU_VC1},
|
||||||
|
{IMGFMT_VDPAU_MPEG4, PIX_FMT_VDPAU_MPEG4},
|
||||||
{0, PIX_FMT_NONE}
|
{0, PIX_FMT_NONE}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -72,6 +72,7 @@ const char *vo_format_name(int format)
|
|||||||
case IMGFMT_VDPAU_MPEG1: return "MPEG1 VDPAU acceleration";
|
case IMGFMT_VDPAU_MPEG1: return "MPEG1 VDPAU acceleration";
|
||||||
case IMGFMT_VDPAU_MPEG2: return "MPEG2 VDPAU acceleration";
|
case IMGFMT_VDPAU_MPEG2: return "MPEG2 VDPAU acceleration";
|
||||||
case IMGFMT_VDPAU_H264: return "H.264 VDPAU acceleration";
|
case IMGFMT_VDPAU_H264: return "H.264 VDPAU acceleration";
|
||||||
|
case IMGFMT_VDPAU_MPEG4: return "MPEG-4 Part 2 VDPAU acceleration";
|
||||||
case IMGFMT_VDPAU_WMV3: return "WMV3 VDPAU acceleration";
|
case IMGFMT_VDPAU_WMV3: return "WMV3 VDPAU acceleration";
|
||||||
case IMGFMT_VDPAU_VC1: return "VC1 VDPAU acceleration";
|
case IMGFMT_VDPAU_VC1: return "VC1 VDPAU acceleration";
|
||||||
}
|
}
|
||||||
|
@ -120,6 +120,7 @@
|
|||||||
#define IMGFMT_VDPAU_H264 (IMGFMT_VDPAU|0x03)
|
#define IMGFMT_VDPAU_H264 (IMGFMT_VDPAU|0x03)
|
||||||
#define IMGFMT_VDPAU_WMV3 (IMGFMT_VDPAU|0x04)
|
#define IMGFMT_VDPAU_WMV3 (IMGFMT_VDPAU|0x04)
|
||||||
#define IMGFMT_VDPAU_VC1 (IMGFMT_VDPAU|0x05)
|
#define IMGFMT_VDPAU_VC1 (IMGFMT_VDPAU|0x05)
|
||||||
|
#define IMGFMT_VDPAU_MPEG4 (IMGFMT_VDPAU|0x06)
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
void* data;
|
void* data;
|
||||||
|
@ -459,6 +459,8 @@ const char *sws_format_name(enum PixelFormat format)
|
|||||||
return "vdpau_wmv3";
|
return "vdpau_wmv3";
|
||||||
case PIX_FMT_VDPAU_VC1:
|
case PIX_FMT_VDPAU_VC1:
|
||||||
return "vdpau_vc1";
|
return "vdpau_vc1";
|
||||||
|
case PIX_FMT_VDPAU_MPEG4:
|
||||||
|
return "vdpau_mpeg4";
|
||||||
case PIX_FMT_YUV420P16LE:
|
case PIX_FMT_YUV420P16LE:
|
||||||
return "yuv420p16le";
|
return "yuv420p16le";
|
||||||
case PIX_FMT_YUV422P16LE:
|
case PIX_FMT_YUV422P16LE:
|
||||||
|
@ -579,6 +579,9 @@ static int create_vdp_decoder(uint32_t format, uint32_t width, uint32_t height,
|
|||||||
case IMGFMT_VDPAU_VC1:
|
case IMGFMT_VDPAU_VC1:
|
||||||
vdp_decoder_profile = VDP_DECODER_PROFILE_VC1_ADVANCED;
|
vdp_decoder_profile = VDP_DECODER_PROFILE_VC1_ADVANCED;
|
||||||
break;
|
break;
|
||||||
|
case IMGFMT_VDPAU_MPEG4:
|
||||||
|
vdp_decoder_profile = VDP_DECODER_PROFILE_MPEG4_PART2_ASP;
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
goto err_out;
|
goto err_out;
|
||||||
}
|
}
|
||||||
@ -1112,6 +1115,7 @@ static int query_format(uint32_t format)
|
|||||||
case IMGFMT_VDPAU_H264:
|
case IMGFMT_VDPAU_H264:
|
||||||
case IMGFMT_VDPAU_WMV3:
|
case IMGFMT_VDPAU_WMV3:
|
||||||
case IMGFMT_VDPAU_VC1:
|
case IMGFMT_VDPAU_VC1:
|
||||||
|
case IMGFMT_VDPAU_MPEG4:
|
||||||
if (create_vdp_decoder(format, 48, 48, 2))
|
if (create_vdp_decoder(format, 48, 48, 2))
|
||||||
return default_flags;
|
return default_flags;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user