1
0
mirror of https://github.com/mpv-player/mpv synced 2024-12-28 01:52:19 +00:00
mpv/TOOLS/vdpau_functions.pl
Kovensky fae7307931 Port several python scripts to Perl
file2string.pl and vdpau_functions.pl are direct ports.
matroska.py was reimplemented as the Parse::Matroska module in CPAN,
and matroska.pl was made a client of Parse::Matroska.
A copy of Parse::Matroska is included in TOOLS/lib, and matroska.pl
looks there first when trying to load the module.

osxbundle.py was not ported since I have no means to verify it.
Python is always available on OSX though, so there is no harm in
removing the check for it on configure.
2012-11-08 00:28:59 +01:00

75 lines
1.9 KiB
Perl
Executable File

#! /usr/bin/env perl
# Generates vdpau_template.c
use strict;
use warnings;
sub camelize($) {
my $s = shift;
$s =~ s/(?:^|_)([a-z])/\u$1/g;
$s;
}
print <<EOF;
/* Lists the VDPAU functions used by MPV.
* Generated by vdpau_functions.pl.
* First argument on each line is the VDPAU function type name,
* second is the macro name needed to get the function address,
* third is the name MPV uses for the function.
*/
EOF
while (my $f = <DATA>) {
# strip whitespace, ignore anything after a '#'
$f =~ /^\s*(.*?)\s*(?:(?<!\\)#.*)?$/;
$f = $1;
next unless $f; # empty / comment line
my ($mp_name, $vdpau_name) = split /\s+/, $f;
$vdpau_name = camelize $mp_name unless $vdpau_name;
print "VDP_FUNCTION(Vdp$vdpau_name, VDP_FUNC_ID_\U$mp_name\E, $mp_name)\n";
}
__DATA__
# get_error_string should be first, because the function lookup loop should
# have it available to print errors for other functions
get_error_string
bitmap_surface_create
bitmap_surface_destroy
bitmap_surface_put_bits_native
bitmap_surface_query_capabilities
decoder_create
decoder_destroy
decoder_render
device_destroy
generate_csc_matrix GenerateCSCMatrix # CSC completely capitalized
output_surface_create
output_surface_destroy
output_surface_get_bits_native
output_surface_put_bits_indexed
output_surface_put_bits_native
output_surface_render_bitmap_surface
output_surface_render_output_surface
preemption_callback_register
presentation_queue_block_until_surface_idle
presentation_queue_create
presentation_queue_destroy
presentation_queue_display
presentation_queue_get_time
presentation_queue_query_surface_status
presentation_queue_target_create_x11
presentation_queue_target_destroy
video_mixer_create
video_mixer_destroy
video_mixer_query_feature_support
video_mixer_render
video_mixer_set_attribute_values
video_mixer_set_feature_enables
video_surface_create
video_surface_destroy
video_surface_put_bits_y_cb_cr