about summary refs log tree commit diff
path: root/converter/ppm/ppmtompeg/headers/parallel.h
blob: b5407cead4e8d5a1e94b231519a16393ee89ee58 (plain) (blame)
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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
/*===========================================================================*
 * parallel.h
 *
 *  parallel encoding
 *
 *===========================================================================*/

/*
 * Copyright (c) 1995 The Regents of the University of California.
 * All rights reserved.
 *
 * Permission to use, copy, modify, and distribute this software and its
 * documentation for any purpose, without fee, and without written agreement is
 * hereby granted, provided that the above copyright notice and the following
 * two paragraphs appear in all copies of this software.
 *
 * IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR
 * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT
 * OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE UNIVERSITY OF
 * CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 *
 * THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES,
 * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
 * AND FITNESS FOR A PARTICULAR PURPOSE.  THE SOFTWARE PROVIDED HEREUNDER IS
 * ON AN "AS IS" BASIS, AND THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATION TO
 * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
 */

/*==============*
 * HEADER FILES *
 *==============*/

#include "bitio.h"
#include "frame.h"


struct inputSource;

/*===============================*
 * EXTERNAL PROCEDURE prototypes *
 *===============================*/

void
MasterServer(struct inputSource * const inputSourceP,
             const char *         const paramFileName,
             const char *         const outputFileName);

void
NotifyMasterDone(const char * const hostName,
                 int          const portNum,
                 int          const machineNumber,
                 unsigned int const seconds,
                 boolean *    const moreWorkToDoP,
                 int *        const frameStartP,
                 int *        const frameEndP);

void
IoServer(struct inputSource * const inputSourceP,
         const char *         const parallelHostName,
         int                  const portNum);

void
CombineServer(int          const numInputFiles,
              const char * const masterHostName,
              int          const masterPortNum,
              const char*  const outputFileName);

void
DecodeServer(int          const numInputFiles,
             const char * const decodeFileName,
             const char * const parallelHostName,
             int          const portNum);

void
WaitForOutputFile(int number);

void
GetRemoteFrame(MpegFrame * const frameP,
               int         const frameNumber);

void
SendRemoteFrame(int         const frameNumber,
                BitBucket * const bbP);

void
NoteFrameDone(int frameStart, int frameEnd);

void
SetIOConvert(boolean const separate);

void
SetRemoteShell(const char * const shell);

void
NotifyDecodeServerReady(int const id);

void
WaitForDecodedFrame(int id);

void
SendDecodedFrame(MpegFrame * const frameP);

void
GetRemoteDecodedRefFrame(MpegFrame * const frameP,
                         int         const frameNumber);

void
SetParallelPerfect(boolean val);


/*==================*
 * GLOBAL VARIABLES *
 *==================*/

extern int parallelTestFrames;
extern int parallelTimeChunks;

extern const char *IOhostName;
extern int ioPortNumber;
extern int decodePortNumber;

extern boolean  ioServer;
extern boolean  niceProcesses;
extern boolean  forceIalign;
extern int    machineNumber;
extern boolean remoteIO;
extern boolean  separateConversion;