2 * This library is free software; you can redistribute it and/or modify it
3 * under the terms of the GNU Lesser General Public License as published
4 * by the Free Software Foundation; either version 2 of the License, or
5 * (at your option) any later version.
7 * This library is distributed in the hope that it will be useful, but
8 * WITHOUT ANY WARRANTY; without even the implied warranty of
9 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
10 * Lesser General Public License for more details.
12 * You should have received a copy of the GNU Lesser General Public
13 * License along with this library; if not, write to the Free Software
14 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
23 #endif /* HAVE_STDINT_H */
25 #include <mjpegtools/yuv4mpeg.h>
27 #include "interlacemodes.h"
29 void ilaceautofixoption_to_text(char *string
, int autofixoption
)
33 case BC_ILACE_AUTOFIXOPTION_AUTO
: strcpy(string
, BC_ILACE_AUTOFIXOPTION_AUTO_T
); break;
34 case BC_ILACE_AUTOFIXOPTION_MANUAL
: strcpy(string
, BC_ILACE_AUTOFIXOPTION_MANUAL_T
); break;
35 default: strcpy(string
, BC_ILACE_UNKNOWN_T
); break;
39 int ilaceautofixoption_from_text(char *text
, int thedefault
)
41 if(!strcasecmp(text
, BC_ILACE_AUTOFIXOPTION_AUTO_T
)) return BC_ILACE_AUTOFIXOPTION_AUTO
;
42 if(!strcasecmp(text
, BC_ILACE_AUTOFIXOPTION_MANUAL_T
)) return BC_ILACE_AUTOFIXOPTION_MANUAL
;
46 void ilacemode_to_text(char *string
, int ilacemode
)
50 case BC_ILACE_MODE_UNDETECTED
: strcpy(string
, BC_ILACE_MODE_UNDETECTED_T
); break;
51 case BC_ILACE_MODE_TOP_FIRST
: strcpy(string
, BC_ILACE_MODE_TOP_FIRST_T
); break;
52 case BC_ILACE_MODE_BOTTOM_FIRST
: strcpy(string
, BC_ILACE_MODE_BOTTOM_FIRST_T
); break;
53 case BC_ILACE_MODE_NOTINTERLACED
: strcpy(string
, BC_ILACE_MODE_NOTINTERLACED_T
); break;
54 default: strcpy(string
, BC_ILACE_UNKNOWN_T
); break;
58 int ilacemode_from_text(char *text
, int thedefault
)
60 if(!strcasecmp(text
, BC_ILACE_MODE_UNDETECTED_T
)) return BC_ILACE_MODE_UNDETECTED
;
61 if(!strcasecmp(text
, BC_ILACE_MODE_TOP_FIRST_T
)) return BC_ILACE_MODE_TOP_FIRST
;
62 if(!strcasecmp(text
, BC_ILACE_MODE_BOTTOM_FIRST_T
)) return BC_ILACE_MODE_BOTTOM_FIRST
;
63 if(!strcasecmp(text
, BC_ILACE_MODE_NOTINTERLACED_T
)) return BC_ILACE_MODE_NOTINTERLACED
;
67 void ilacefixmethod_to_text(char *string
, int fixmethod
)
71 case BC_ILACE_FIXMETHOD_NONE
: strcpy(string
, BC_ILACE_FIXMETHOD_NONE_T
); break;
72 case BC_ILACE_FIXMETHOD_UPONE
: strcpy(string
, BC_ILACE_FIXMETHOD_UPONE_T
); break;
73 case BC_ILACE_FIXMETHOD_DOWNONE
: strcpy(string
, BC_ILACE_FIXMETHOD_DOWNONE_T
); break;
74 default: strcpy(string
, BC_ILACE_UNKNOWN_T
); break;
78 int ilacefixmethod_from_text(char *text
, int thedefault
)
80 if(!strcasecmp(text
, BC_ILACE_FIXMETHOD_NONE_T
)) return BC_ILACE_FIXMETHOD_NONE
;
81 if(!strcasecmp(text
, BC_ILACE_FIXMETHOD_UPONE_T
)) return BC_ILACE_FIXMETHOD_UPONE
;
82 if(!strcasecmp(text
, BC_ILACE_FIXMETHOD_DOWNONE_T
)) return BC_ILACE_FIXMETHOD_DOWNONE
;
86 int ilaceautofixmethod(int projectmode
, int assetmode
)
88 if (projectmode
== assetmode
)
89 return BC_ILACE_FIXMETHOD_NONE
;
92 (projectmode
== BC_ILACE_MODE_BOTTOM_FIRST
&& assetmode
== BC_ILACE_MODE_TOP_FIRST
)
94 (projectmode
== BC_ILACE_MODE_TOP_FIRST
&& assetmode
== BC_ILACE_MODE_BOTTOM_FIRST
)
96 return BC_ILACE_FIXDEFAULT
;
98 // still to implement anything else...
99 return BC_ILACE_FIXMETHOD_NONE
;
102 int ilaceautofixmethod2(int projectilacemode
, int assetautofixoption
, int assetilacemode
, int assetfixmethod
)
104 if (assetautofixoption
== BC_ILACE_AUTOFIXOPTION_AUTO
)
105 return (ilaceautofixmethod(projectilacemode
, assetilacemode
));
107 return (assetfixmethod
);
110 int ilace_bc_to_yuv4mpeg(int ilacemode
)
114 case BC_ILACE_MODE_UNDETECTED
:
117 case BC_ILACE_MODE_TOP_FIRST
:
118 return(Y4M_ILACE_TOP_FIRST
);
120 case BC_ILACE_MODE_BOTTOM_FIRST
:
121 return(Y4M_ILACE_BOTTOM_FIRST
);
123 case BC_ILACE_MODE_NOTINTERLACED
:
124 return(Y4M_ILACE_NONE
);
129 int ilace_yuv4mpeg_to_bc(int ilacemode
)
134 return (BC_ILACE_MODE_UNDETECTED
);
137 return (BC_ILACE_MODE_NOTINTERLACED
);
139 case Y4M_ILACE_TOP_FIRST
:
140 return (BC_ILACE_MODE_TOP_FIRST
);
142 case Y4M_ILACE_BOTTOM_FIRST
:
143 return (BC_ILACE_MODE_BOTTOM_FIRST
);
145 // case Y4M_ILACE_MIXED:
146 // return (BC_ILACE_MODE_UNDETECTED); // fixme!!
149 return (BC_ILACE_MODE_UNDETECTED
);
154 void ilace_yuv4mpeg_mode_to_text(char *string
, int ilacemode
)
158 case Y4M_UNKNOWN
: strcpy(string
, BC_ILACE_Y4M_UKNOWN_T
); break;
159 case Y4M_ILACE_NONE
: strcpy(string
, BC_ILACE_Y4M_NONE_T
); break;
160 case Y4M_ILACE_TOP_FIRST
: strcpy(string
, BC_ILACE_Y4M_TOP_FIRST_T
); break;
161 case Y4M_ILACE_BOTTOM_FIRST
: strcpy(string
, BC_ILACE_Y4M_BOTTOM_FIRST_T
); break;
162 // case Y4M_ILACE_MIXED: strcpy(string, BC_ILACE_Y4M_MIXED_T); break;
164 default: strcpy(string
, BC_ILACE_UNKNOWN_T
); break;