summaryrefslogtreecommitdiffstats
path: root/TOOLS/vdpau_functions.pl
diff options
context:
space:
mode:
Diffstat (limited to 'TOOLS/vdpau_functions.pl')
-rwxr-xr-xTOOLS/vdpau_functions.pl74
1 files changed, 74 insertions, 0 deletions
diff --git a/TOOLS/vdpau_functions.pl b/TOOLS/vdpau_functions.pl
new file mode 100755
index 0000000000..8bab4e533b
--- /dev/null
+++ b/TOOLS/vdpau_functions.pl
@@ -0,0 +1,74 @@
+#! /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