1 /*
2  * MediaConverter is the base class for all subsequent decoders
3  * and encoders
4  *
5  * Copyright (C) 2008 Joern Seger
6  *
7  * This program is free software; you can redistribute it and/or modify
8  * it under the terms of the GNU General Public License as published by
9  * the Free Software Foundation; either version 2 of the License, or
10  * (at your option) any later version.
11 
12  * This program is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15  * GNU General Public License for more details.
16 
17  * You should have received a copy of the GNU General Public License
18  * along with this program; if not, write to the Free Software
19  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
20  *
21  */
22 
23 #include <iostream>
24 #include "mediaConverter.h"
25 #include "log.h"
26 
MediaConverter()27 MediaConverter::MediaConverter()
28   : mediaConverterState(mdec_free)
29 {
30 }
31 
~MediaConverter()32 MediaConverter::~MediaConverter()
33 {
34 }
35 
setInitialized()36 void MediaConverter::setInitialized()
37 {
38   if (mediaConverterState == mdec_free)
39     mediaConverterState = mdec_initialized;
40   else
41     logger.error() << "MediaConverter::setInitialized(): double initalization\n";
42 }
43 
setConfigured()44 void MediaConverter::setConfigured()
45 {
46   if (mediaConverterState < mdec_configured)
47     mediaConverterState = mdec_configured;
48   else
49     logger.error() << "MediaConverter::setConfigured(): decoder is configured\n";
50 }
51 
setAvailable()52 void MediaConverter::setAvailable()
53 {
54   if ((mediaConverterState >= mdec_configured) &&
55       (mediaConverterState <= mdec_available))
56     mediaConverterState = mdec_available;
57   else
58     logger.error() << "MediaConverter::setAvailable(): decoder is not configured or has ended\n";
59 }
60 
setEmpty()61 void MediaConverter::setEmpty()
62 {
63   if ((mediaConverterState == mdec_configured) ||
64       (mediaConverterState == mdec_available) ||
65       (mediaConverterState == mdec_empty))
66     mediaConverterState = mdec_empty;
67   else
68     logger.error() << "MediaConverter::setEmpty(): decoder not configured correctly\n";
69 }
70 
setEndOfStream()71 void MediaConverter::setEndOfStream()
72 {
73   if (mediaConverterState > mdec_initialized)
74     mediaConverterState = mdec_endofStream;
75   else
76     logger.error() << "MediaConverter::setEndOfStream(): decoder not initialized\n";
77 }
78 
setFree()79 void MediaConverter::setFree()
80 {
81   mediaConverterState = mdec_free;
82 }
83 
isInitialized()84 bool MediaConverter::isInitialized()
85 {
86   return(mediaConverterState > mdec_free);
87 }
88 
isConfigured()89 bool MediaConverter::isConfigured()
90 {
91   return(mediaConverterState > mdec_initialized);
92 }
93 
isAvailable()94 bool MediaConverter::isAvailable()
95 {
96   return(mediaConverterState == mdec_available);
97 }
98 
isEmpty()99 bool MediaConverter::isEmpty()
100 {
101   return( (mediaConverterState == mdec_initialized) ||
102           (mediaConverterState == mdec_empty) ||
103           (mediaConverterState == mdec_configured));
104 }
105 
isEndOfStream()106 bool MediaConverter::isEndOfStream()
107 {
108   return(mediaConverterState == mdec_endofStream);
109 }
110