summaryrefslogtreecommitdiffstats
path: root/TOOLS/vdpau_functions.pl
blob: 8bab4e533b599d71bd52a682825d91058023b932 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
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