Exemplo n.º 1
0
void VDPAUContext::getDecoderCaps()
{
	queryDecoderCaps( VDP_DECODER_PROFILE_MPEG2_MAIN, "MPEG2_MAIN", ProfileMPEG2Main );
	queryDecoderCaps( VDP_DECODER_PROFILE_H264_MAIN, "H264_MAIN", ProfileH264Main );
	queryDecoderCaps( VDP_DECODER_PROFILE_H264_HIGH, "H264_HIGH", ProfileH264High );
	queryDecoderCaps( VDP_DECODER_PROFILE_VC1_MAIN, "VC1_MAIN", ProfileVC1Main );
#ifdef VDP_DECODER_PROFILE_MPEG4_PART2_ASP
	queryDecoderCaps( VDP_DECODER_PROFILE_MPEG4_PART2_ASP, "MPEG4_ASP", ProfileMPEG4ASP );
#endif
}
Exemplo n.º 2
0
int main(int argc, char **argv)
{
    /* Parse options */
    struct Options o = parse_options(argc, argv);

    /* Create an X Display */
    Display *display = XOpenDisplay(o.display_name);
    if(!display)
    {
        fprintf(stderr,"%s: cannot connect to X server %s\n", argv[0],
                o.display_name);
        exit(-1);
    }

    int screen = (o.screen == -1) ? DefaultScreen(display) : o.screen;
    if(screen >= ScreenCount(display))
        invalid_argument(argv[0], "screen %d requested but X server only has %d screen%s\n",
                         screen, ScreenCount(display),
                         ScreenCount(display) == 1 ? "" : "s");
    printf("display: %s   screen: %i\n", o.display_name, screen);

    /* Create device */
    VdpDevice device;
    VdpGetProcAddress *get_proc_address;
    VdpStatus rv;
    rv = vdp_device_create_x11(display, screen, &device, &get_proc_address);
    if(rv != VDP_STATUS_OK)
    {
        fprintf(stderr, "Error creating VDPAU device: %i\n", rv); /* cannot use GetErrorString here */
        exit(-1);
    }

    VDPDeviceImpl *impl = new VDPDeviceImpl(device, get_proc_address);

    queryBaseInfo(impl);
    queryVideoSurface(impl);
    queryDecoderCaps(impl);
    queryOutputSurface(impl);
    queryBitmapSurface(impl);
    queryVideoMixer(impl);

    printf("\n");
}