1 /*
2  *  pvm_parser.h
3  *
4  *  Copyright (C) Marzio Malanchini - August 2003
5  *
6  *  This file is part of transcode, a video stream processing tool
7  *
8  *  transcode is free software; you can redistribute it and/or modify
9  *  it under the terms of the GNU General Public License as published by
10  *  the Free Software Foundation; either version 2, or (at your option)
11  *  any later version.
12  *
13  *  transcode is distributed in the hope that it will be useful,
14  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
15  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16  *  GNU General Public License for more details.
17  *
18  *  You should have received a copy of the GNU General Public License
19  *  along with GNU Make; see the file COPYING.  If not, write to
20  *  the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
21  *
22  */
23 
24 #ifndef _PVM_PARSER_H
25 #define _PVM_PARSER_H
26 
27 #include "tc_defaults.h"    /*TC_xxxx variables*/
28 
29 #define PVM_MAX_CODEC_PARAMS    3
30 
31 typedef struct _pvm_config_filelist {
32     char *p_codec;
33     char *p_filename;
34     char *p_destination;
35     int s_type;
36     struct _pvm_config_filelist *p_next;
37 } pvm_config_filelist;
38 
39 typedef struct _pvm_config_merger {
40     char *p_hostname;
41     int s_build_only_list;
42 } pvm_config_merger;
43 
44 typedef struct _pvm_config_hosts {
45     char *p_hostname;
46     int s_nproc;
47     struct _pvm_config_hosts *p_next;
48 } pvm_config_hosts;
49 
50 typedef struct _pvm_config_codec {
51     char *p_codec;
52     char *p_par1;
53     char *p_par2;
54     char *p_par3;
55 } pvm_config_codec;
56 
57 typedef struct _pvm_config_env {
58     int s_nproc;
59     int s_max_proc;
60     int s_num_frame_task;
61     int s_build_intermed_file;
62     int s_internal_multipass;
63     char *p_multiplex_cmd;
64     pvm_config_codec s_audio_codec;
65     pvm_config_codec s_video_codec;
66     pvm_config_merger s_system_merger;
67     pvm_config_merger s_video_merger;
68     pvm_config_merger s_audio_merger;
69     pvm_config_hosts *p_pvm_hosts;
70     pvm_config_filelist *p_add_list;
71     pvm_config_filelist *p_add_loglist;
72     pvm_config_filelist *p_rem_list;
73     pvm_config_filelist s_sys_list;
74 } pvm_config_env;
75 
76 
77 pvm_config_env *pvm_parser_open(char *p_hostfile, int verbose, int full);
78 void pvm_parser_close(void);
79 
80 #endif
81