Skip to content
项目
群组
代码片段
帮助
正在加载...
登录
切换导航
F
freeswitch
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分枝图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
分枝图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
张华
freeswitch
Commits
c741332d
提交
c741332d
authored
7月 23, 2013
作者:
Steve Underwood
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Spandsp tweaks
上级
8d005a41
全部展开
隐藏空白字符变更
内嵌
并排
正在显示
7 个修改的文件
包含
790 行增加
和
598 行删除
+790
-598
t42.h
libs/spandsp/src/spandsp/t42.h
+0
-10
v18.h
libs/spandsp/src/spandsp/v18.h
+2
-23
t4_tx.c
libs/spandsp/src/t4_tx.c
+47
-17
v18.c
libs/spandsp/src/v18.c
+265
-100
fax_tests.sh
libs/spandsp/tests/fax_tests.sh
+44
-38
v18_tests.c
libs/spandsp/tests/v18_tests.c
+430
-408
mod_spandsp_dsp.c
src/mod/applications/mod_spandsp/mod_spandsp_dsp.c
+2
-2
没有找到文件。
libs/spandsp/src/spandsp/t42.h
浏览文件 @
c741332d
...
@@ -76,16 +76,6 @@ SPAN_DECLARE(void) set_lab_gamut2(lab_params_t *s, int L_P, int L_Q, int a_P, in
...
@@ -76,16 +76,6 @@ SPAN_DECLARE(void) set_lab_gamut2(lab_params_t *s, int L_P, int L_Q, int a_P, in
SPAN_DECLARE
(
void
)
get_lab_gamut2
(
lab_params_t
*
s
,
int
*
L_P
,
int
*
L_Q
,
int
*
a_P
,
int
*
a_Q
,
int
*
b_P
,
int
*
b_Q
);
SPAN_DECLARE
(
void
)
get_lab_gamut2
(
lab_params_t
*
s
,
int
*
L_P
,
int
*
L_Q
,
int
*
a_P
,
int
*
a_Q
,
int
*
b_P
,
int
*
b_Q
);
SPAN_DECLARE
(
int
)
t42_itulab_to_itulab
(
logging_state_t
*
logging
,
tdata_t
*
dst
,
tsize_t
*
dstlen
,
tdata_t
src
,
tsize_t
srclen
,
uint32_t
width
,
uint32_t
height
);
SPAN_DECLARE
(
int
)
t42_itulab_to_jpeg
(
logging_state_t
*
logging
,
lab_params_t
*
s
,
tdata_t
*
dst
,
tsize_t
*
dstlen
,
tdata_t
src
,
tsize_t
srclen
);
SPAN_DECLARE
(
int
)
t42_jpeg_to_itulab
(
logging_state_t
*
logging
,
lab_params_t
*
s
,
tdata_t
*
dst
,
tsize_t
*
dstlen
,
tdata_t
src
,
tsize_t
srclen
);
SPAN_DECLARE
(
int
)
t42_srgb_to_itulab
(
logging_state_t
*
logging
,
lab_params_t
*
s
,
tdata_t
*
dst
,
tsize_t
*
dstlen
,
tdata_t
src
,
tsize_t
srclen
,
uint32_t
width
,
uint32_t
height
);
SPAN_DECLARE
(
int
)
t42_itulab_to_srgb
(
logging_state_t
*
logging
,
lab_params_t
*
s
,
tdata_t
dst
,
tsize_t
*
dstlen
,
tdata_t
src
,
tsize_t
srclen
,
uint32_t
*
width
,
uint32_t
*
height
);
SPAN_DECLARE
(
void
)
t42_encode_set_options
(
t42_encode_state_t
*
s
,
uint32_t
l0
,
int
quality
,
int
options
);
SPAN_DECLARE
(
void
)
t42_encode_set_options
(
t42_encode_state_t
*
s
,
uint32_t
l0
,
int
quality
,
int
options
);
SPAN_DECLARE
(
int
)
t42_encode_set_image_width
(
t42_encode_state_t
*
s
,
uint32_t
image_width
);
SPAN_DECLARE
(
int
)
t42_encode_set_image_width
(
t42_encode_state_t
*
s
,
uint32_t
image_width
);
...
...
libs/spandsp/src/spandsp/v18.h
浏览文件 @
c741332d
...
@@ -40,7 +40,7 @@ enum
...
@@ -40,7 +40,7 @@ enum
{
{
V18_MODE_NONE
=
0
,
V18_MODE_NONE
=
0
,
/* V.18 Annex A - Weitbrecht TDD at 45.45bps (US TTY), half-duplex, 5 bit baudot (USA). */
/* V.18 Annex A - Weitbrecht TDD at 45.45bps (US TTY), half-duplex, 5 bit baudot (USA). */
V18_MODE_5BIT_45
=
1
,
V18_MODE_5BIT_45
45
=
1
,
/* V.18 Annex A - Weitbrecht TDD at 50bps (International TTY), half-duplex, 5 bit baudot (UK, Australia and others). */
/* V.18 Annex A - Weitbrecht TDD at 50bps (International TTY), half-duplex, 5 bit baudot (UK, Australia and others). */
V18_MODE_5BIT_50
=
2
,
V18_MODE_5BIT_50
=
2
,
/* V.18 Annex B - DTMF encoding of ASCII (Denmark, Holland and others). */
/* V.18 Annex B - DTMF encoding of ASCII (Denmark, Holland and others). */
...
@@ -55,6 +55,7 @@ enum
...
@@ -55,6 +55,7 @@ enum
V18_MODE_V21TEXTPHONE
=
7
,
V18_MODE_V21TEXTPHONE
=
7
,
/* V.18 Annex G - V.18 text telephone mode. */
/* V.18 Annex G - V.18 text telephone mode. */
V18_MODE_V18TEXTPHONE
=
8
,
V18_MODE_V18TEXTPHONE
=
8
,
V18_MODE_5BIT_476
=
9
,
/* Use repetitive shift characters where character set shifts are used */
/* Use repetitive shift characters where character set shifts are used */
V18_MODE_REPETITIVE_SHIFTS_OPTION
=
0x1000
V18_MODE_REPETITIVE_SHIFTS_OPTION
=
0x1000
};
};
...
@@ -171,28 +172,6 @@ SPAN_DECLARE_NONSTD(int) v18_rx_fillin(v18_state_t *s, int len);
...
@@ -171,28 +172,6 @@ SPAN_DECLARE_NONSTD(int) v18_rx_fillin(v18_state_t *s, int len);
invalid, this function will return -1. */
invalid, this function will return -1. */
SPAN_DECLARE
(
int
)
v18_put
(
v18_state_t
*
s
,
const
char
msg
[],
int
len
);
SPAN_DECLARE
(
int
)
v18_put
(
v18_state_t
*
s
,
const
char
msg
[],
int
len
);
/*! Convert a text string to a V.18 DTMF string.
\brief Convert a text string to a V.18 DTMF string.
\param s The V.18 context.
\param dtmf The resulting DTMF string.
\param msg The text string to be converted.
\return The length of the DTMF string.
*/
SPAN_DECLARE
(
int
)
v18_encode_dtmf
(
v18_state_t
*
s
,
char
dtmf
[],
const
char
msg
[]);
/*! Convert a V.18 DTMF string to a text string.
\brief Convert a V.18 DTMF string to a text string.
\param s The V.18 context.
\param msg The resulting test string.
\param dtmf The DTMF string to be converted.
\return The length of the text string.
*/
SPAN_DECLARE
(
int
)
v18_decode_dtmf
(
v18_state_t
*
s
,
char
msg
[],
const
char
dtmf
[]);
SPAN_DECLARE
(
uint16_t
)
v18_encode_baudot
(
v18_state_t
*
s
,
uint8_t
ch
);
SPAN_DECLARE
(
uint8_t
)
v18_decode_baudot
(
v18_state_t
*
s
,
uint8_t
ch
);
/*! \brief Return a short name for an V.18 mode
/*! \brief Return a short name for an V.18 mode
\param mode The code for the V.18 mode.
\param mode The code for the V.18 mode.
\return A pointer to the name.
\return A pointer to the name.
...
...
libs/spandsp/src/t4_tx.c
浏览文件 @
c741332d
...
@@ -132,18 +132,19 @@ static const res_table_t y_res_table[] =
...
@@ -132,18 +132,19 @@ static const res_table_t y_res_table[] =
{
-
1
.
00
f
,
-
1
}
{
-
1
.
00
f
,
-
1
}
};
};
static
const
int
resolution_map
[
10
][
10
]
=
static
const
int
resolution_map
[
10
][
9
]
=
{
{
{
0
,
0
,
0
,
T4_RESOLUTION_R8_STANDARD
,
0
,
0
,
0
,
0
,
0
,
0
},
/* x = 100 102 200 204 300 400 408 600 1200 */
{
T4_RESOLUTION_100_100
,
0
,
T4_RESOLUTION_200_100
,
0
,
0
,
0
,
0
,
0
,
0
,
0
},
{
0
,
0
,
0
,
T4_RESOLUTION_R8_STANDARD
,
0
,
0
,
0
,
0
,
0
},
/* y = 3.85/mm */
{
0
,
0
,
0
,
T4_RESOLUTION_R8_FINE
,
0
,
0
,
0
,
0
,
0
,
0
},
{
T4_RESOLUTION_100_100
,
0
,
T4_RESOLUTION_200_100
,
0
,
0
,
0
,
0
,
0
,
0
},
/* y = 100 */
{
0
,
0
,
T4_RESOLUTION_200_200
,
0
,
0
,
0
,
0
,
0
,
0
,
0
},
{
0
,
0
,
0
,
T4_RESOLUTION_R8_FINE
,
0
,
0
,
0
,
0
,
0
},
/* y = 7.7/mm */
{
0
,
0
,
0
,
0
,
T4_RESOLUTION_300_300
,
0
,
0
,
0
,
0
,
0
},
{
0
,
0
,
T4_RESOLUTION_200_200
,
0
,
0
,
0
,
0
,
0
,
0
},
/* y = 200 */
{
0
,
0
,
0
,
T4_RESOLUTION_R8_SUPERFINE
,
0
,
0
,
T4_RESOLUTION_R16_SUPERFINE
,
0
,
0
,
0
},
{
0
,
0
,
0
,
0
,
T4_RESOLUTION_300_300
,
0
,
0
,
0
,
0
},
/* y = 300 */
{
0
,
0
,
T4_RESOLUTION_200_400
,
0
,
0
,
T4_RESOLUTION_400_400
,
0
,
0
,
0
,
0
},
{
0
,
0
,
0
,
T4_RESOLUTION_R8_SUPERFINE
,
0
,
0
,
T4_RESOLUTION_R16_SUPERFINE
,
0
,
0
},
/* y = 154/mm */
{
0
,
0
,
0
,
0
,
T4_RESOLUTION_300_600
,
0
,
0
,
T4_RESOLUTION_600_600
,
0
,
0
},
{
0
,
0
,
T4_RESOLUTION_200_400
,
0
,
0
,
T4_RESOLUTION_400_400
,
0
,
0
,
0
},
/* y = 400 */
{
0
,
0
,
0
,
0
,
0
,
T4_RESOLUTION_400_800
,
0
,
0
,
0
,
0
},
{
0
,
0
,
0
,
0
,
T4_RESOLUTION_300_600
,
0
,
0
,
T4_RESOLUTION_600_600
,
0
},
/* y = 600 */
{
0
,
0
,
0
,
0
,
0
,
0
,
0
,
T4_RESOLUTION_600_1200
,
0
,
T4_RESOLUTION_1200_1200
},
{
0
,
0
,
0
,
0
,
0
,
T4_RESOLUTION_400_800
,
0
,
0
,
0
},
/* y = 800 */
{
0
,
0
,
0
,
0
,
0
,
0
,
0
,
T4_RESOLUTION_600_1200
,
T4_RESOLUTION_1200_1200
}
/* y = 1200 */
};
};
#if defined(SPANDSP_SUPPORT_TIFF_FX)
#if defined(SPANDSP_SUPPORT_TIFF_FX)
...
@@ -1354,12 +1355,14 @@ SPAN_DECLARE(void) t4_tx_get_transfer_statistics(t4_tx_state_t *s, t4_stats_t *t
...
@@ -1354,12 +1355,14 @@ SPAN_DECLARE(void) t4_tx_get_transfer_statistics(t4_tx_state_t *s, t4_stats_t *t
t
->
image_type
=
s
->
tiff
.
image_type
;
t
->
image_type
=
s
->
tiff
.
image_type
;
t
->
image_width
=
s
->
tiff
.
image_width
;
t
->
image_width
=
s
->
tiff
.
image_width
;
t
->
image_length
=
s
->
tiff
.
image_length
;
t
->
image_length
=
s
->
tiff
.
image_length
;
t
->
image_x_resolution
=
s
->
tiff
.
x_resolution
;
t
->
image_x_resolution
=
s
->
tiff
.
x_resolution
;
t
->
image_y_resolution
=
s
->
tiff
.
y_resolution
;
t
->
image_y_resolution
=
s
->
tiff
.
y_resolution
;
t
->
x_resolution
=
s
->
metadata
.
x_resolution
;
t
->
x_resolution
=
s
->
metadata
.
x_resolution
;
t
->
y_resolution
=
s
->
metadata
.
y_resolution
/
s
->
row_squashing_ratio
;
t
->
y_resolution
=
s
->
metadata
.
y_resolution
/
s
->
row_squashing_ratio
;
t
->
compression
=
s
->
metadata
.
compression
;
t
->
compression
=
s
->
metadata
.
compression
;
switch
(
s
->
metadata
.
compression
)
switch
(
s
->
metadata
.
compression
)
{
{
case
T4_COMPRESSION_T4_1D
:
case
T4_COMPRESSION_T4_1D
:
...
@@ -1417,7 +1420,7 @@ SPAN_DECLARE(int) t4_tx_image_complete(t4_tx_state_t *s)
...
@@ -1417,7 +1420,7 @@ SPAN_DECLARE(int) t4_tx_image_complete(t4_tx_state_t *s)
return
t85_encode_image_complete
(
&
s
->
encoder
.
t85
);
return
t85_encode_image_complete
(
&
s
->
encoder
.
t85
);
#if defined(SPANDSP_SUPPORT_T88)
#if defined(SPANDSP_SUPPORT_T88)
case
T4_COMPRESSION_T88
:
case
T4_COMPRESSION_T88
:
break
;
return
t88_encode_image_complete
(
&
s
->
encoder
.
t88
)
;
#endif
#endif
case
T4_COMPRESSION_T42_T81
:
case
T4_COMPRESSION_T42_T81
:
case
T4_COMPRESSION_SYCC_T81
:
case
T4_COMPRESSION_SYCC_T81
:
...
@@ -1428,7 +1431,7 @@ SPAN_DECLARE(int) t4_tx_image_complete(t4_tx_state_t *s)
...
@@ -1428,7 +1431,7 @@ SPAN_DECLARE(int) t4_tx_image_complete(t4_tx_state_t *s)
#endif
#endif
#if defined(SPANDSP_SUPPORT_T45)
#if defined(SPANDSP_SUPPORT_T45)
case
T4_COMPRESSION_T45
:
case
T4_COMPRESSION_T45
:
break
;
return
t45_encode_image_complete
(
&
s
->
encoder
.
t45
)
;
#endif
#endif
}
}
return
SIG_STATUS_END_OF_DATA
;
return
SIG_STATUS_END_OF_DATA
;
...
@@ -1444,6 +1447,19 @@ SPAN_DECLARE(int) t4_tx_get_bit(t4_tx_state_t *s)
...
@@ -1444,6 +1447,19 @@ SPAN_DECLARE(int) t4_tx_get_bit(t4_tx_state_t *s)
SPAN_DECLARE
(
int
)
t4_tx_get
(
t4_tx_state_t
*
s
,
uint8_t
buf
[],
size_t
max_len
)
SPAN_DECLARE
(
int
)
t4_tx_get
(
t4_tx_state_t
*
s
,
uint8_t
buf
[],
size_t
max_len
)
{
{
#if 0
if (s->pre_encoded_len > 0)
{
if (max_len > (s->pre_encoded_len - s->pre_encoded_ptr))
max_len = s->pre_encoded_len - s->pre_encoded_ptr;
memcpy(buf, &s->pre_encoded_buf[s->pre_encoded_ptr], max_len);
s->pre_encoded_ptr += max_len;
return max_len;
}
if (s->image_get_handler)
return s->image_get_handler((void *) &s->encoder, buf, max_len);
#else
switch
(
s
->
metadata
.
compression
)
switch
(
s
->
metadata
.
compression
)
{
{
case
T4_COMPRESSION_T4_1D
:
case
T4_COMPRESSION_T4_1D
:
...
@@ -1469,6 +1485,7 @@ SPAN_DECLARE(int) t4_tx_get(t4_tx_state_t *s, uint8_t buf[], size_t max_len)
...
@@ -1469,6 +1485,7 @@ SPAN_DECLARE(int) t4_tx_get(t4_tx_state_t *s, uint8_t buf[], size_t max_len)
break
;
break
;
#endif
#endif
}
}
#endif
return
0
;
return
0
;
}
}
/*- End of function --------------------------------------------------------*/
/*- End of function --------------------------------------------------------*/
...
@@ -1497,31 +1514,44 @@ SPAN_DECLARE(int) t4_tx_start_page(t4_tx_state_t *s)
...
@@ -1497,31 +1514,44 @@ SPAN_DECLARE(int) t4_tx_start_page(t4_tx_state_t *s)
case
T4_COMPRESSION_T4_2D
:
case
T4_COMPRESSION_T4_2D
:
case
T4_COMPRESSION_T6
:
case
T4_COMPRESSION_T6
:
t4_t6_encode_restart
(
&
s
->
encoder
.
t4_t6
,
s
->
metadata
.
image_width
,
s
->
metadata
.
image_length
);
t4_t6_encode_restart
(
&
s
->
encoder
.
t4_t6
,
s
->
metadata
.
image_width
,
s
->
metadata
.
image_length
);
s
->
image_get_handler
=
(
t4_image_get_handler_t
)
t4_t6_encode_get
;
break
;
break
;
case
T4_COMPRESSION_T85
:
case
T4_COMPRESSION_T85
:
case
T4_COMPRESSION_T85_L0
:
case
T4_COMPRESSION_T85_L0
:
t85_encode_restart
(
&
s
->
encoder
.
t85
,
s
->
metadata
.
image_width
,
s
->
metadata
.
image_length
);
t85_encode_restart
(
&
s
->
encoder
.
t85
,
s
->
metadata
.
image_width
,
s
->
metadata
.
image_length
);
s
->
image_get_handler
=
(
t4_image_get_handler_t
)
t85_encode_get
;
break
;
break
;
#if defined(SPANDSP_SUPPORT_T88)
#if defined(SPANDSP_SUPPORT_T88)
case
T4_COMPRESSION_T88
:
case
T4_COMPRESSION_T88
:
t88_encode_restart
(
&
s
->
encoder
.
t88
,
s
->
metadata
.
image_width
,
s
->
metadata
.
image_length
);
s
->
image_get_handler
=
(
t4_image_get_handler_t
)
t88_encode_get
;
break
;
break
;
#endif
#endif
case
T4_COMPRESSION_T42_T81
:
case
T4_COMPRESSION_T42_T81
:
case
T4_COMPRESSION_SYCC_T81
:
case
T4_COMPRESSION_SYCC_T81
:
t42_encode_restart
(
&
s
->
encoder
.
t42
,
s
->
metadata
.
image_width
,
s
->
metadata
.
image_length
);
t42_encode_restart
(
&
s
->
encoder
.
t42
,
s
->
metadata
.
image_width
,
s
->
metadata
.
image_length
);
s
->
image_get_handler
=
(
t4_image_get_handler_t
)
t42_encode_get
;
break
;
break
;
#if defined(SPANDSP_SUPPORT_T43)
#if defined(SPANDSP_SUPPORT_T43)
case
T4_COMPRESSION_T43
:
case
T4_COMPRESSION_T43
:
t43_encode_restart
(
&
s
->
encoder
.
t43
,
s
->
metadata
.
image_width
,
s
->
metadata
.
image_length
);
t43_encode_restart
(
&
s
->
encoder
.
t43
,
s
->
metadata
.
image_width
,
s
->
metadata
.
image_length
);
s
->
image_get_handler
=
(
t4_image_get_handler_t
)
t43_encode_get
;
break
;
break
;
#endif
#endif
#if defined(SPANDSP_SUPPORT_T45)
#if defined(SPANDSP_SUPPORT_T45)
case
T4_COMPRESSION_T45
:
case
T4_COMPRESSION_T45
:
t45_encode_restart
(
&
s
->
encoder
.
t45
,
s
->
metadata
.
image_width
,
s
->
metadata
.
image_length
);
s
->
image_get_handler
=
(
t4_image_get_handler_t
)
t45_encode_get
;
break
;
break
;
#endif
#endif
default
:
s
->
image_get_handler
=
NULL
;
break
;
}
}
/* If there is a page header, create that first */
/* If there is a page header, create that first */
if
(
s
->
tiff
.
image_type
==
T4_IMAGE_TYPE_BILEVEL
&&
s
->
header_info
&&
s
->
header_info
[
0
]
&&
make_header
(
s
)
==
0
)
if
(
s
->
metadata
.
image_type
==
T4_IMAGE_TYPE_BILEVEL
&&
s
->
header_info
&&
s
->
header_info
[
0
]
&&
make_header
(
s
)
==
0
)
//if (s->header_info && s->header_info[0] && make_header(s) == 0)
{
{
s
->
header_row
=
0
;
s
->
header_row
=
0
;
set_row_read_handler
(
s
,
header_row_read_handler
,
(
void
*
)
s
);
set_row_read_handler
(
s
,
header_row_read_handler
,
(
void
*
)
s
);
...
@@ -1634,7 +1664,7 @@ SPAN_DECLARE(int) t4_tx_release(t4_tx_state_t *s)
...
@@ -1634,7 +1664,7 @@ SPAN_DECLARE(int) t4_tx_release(t4_tx_state_t *s)
return
t85_encode_release
(
&
s
->
encoder
.
t85
);
return
t85_encode_release
(
&
s
->
encoder
.
t85
);
#if defined(SPANDSP_SUPPORT_T88)
#if defined(SPANDSP_SUPPORT_T88)
case
T4_COMPRESSION_T88
:
case
T4_COMPRESSION_T88
:
break
;
return
t88_encode_release
(
&
s
->
encoder
.
t88
)
;
#endif
#endif
case
T4_COMPRESSION_T42_T81
:
case
T4_COMPRESSION_T42_T81
:
case
T4_COMPRESSION_SYCC_T81
:
case
T4_COMPRESSION_SYCC_T81
:
...
@@ -1645,7 +1675,7 @@ SPAN_DECLARE(int) t4_tx_release(t4_tx_state_t *s)
...
@@ -1645,7 +1675,7 @@ SPAN_DECLARE(int) t4_tx_release(t4_tx_state_t *s)
#endif
#endif
#if defined(SPANDSP_SUPPORT_T45)
#if defined(SPANDSP_SUPPORT_T45)
case
T4_COMPRESSION_T45
:
case
T4_COMPRESSION_T45
:
break
;
return
t45_encode_release
(
&
s
->
encoder
.
t45
)
;
#endif
#endif
}
}
return
-
1
;
return
-
1
;
...
...
libs/spandsp/src/v18.c
浏览文件 @
c741332d
差异被折叠。
点击展开。
libs/spandsp/tests/fax_tests.sh
浏览文件 @
c741332d
...
@@ -70,49 +70,55 @@ LOCALTESTS_DIR=../test-data/local
...
@@ -70,49 +70,55 @@ LOCALTESTS_DIR=../test-data/local
# Colour/gray -> bilevel by not allowing ECM
# Colour/gray -> bilevel by not allowing ECM
for
OPTS
in
"-p AA"
"-p TT"
"-p GG"
"-p TG"
"-p GT"
for
OPTS
in
"-p AA"
"-p TT"
"-p GG"
"-p TG"
"-p GT"
do
do
IN_FILE
=
"
${
LOCALTESTS_DIR
}
/lenna-colour.tif"
echo
Colour to bi-level tests disabled
OUT_FILE
=
"
${
LOCALTESTS_DIR
}
/lenna-colour-bilevel.tif"
# IN_FILE="${LOCALTESTS_DIR}/lenna-colour.tif"
run_colour_fax_test
# OUT_FILE="${LOCALTESTS_DIR}/lenna-colour-bilevel.tif"
# run_colour_fax_test
IN_FILE
=
"
${
LOCALTESTS_DIR
}
/lenna-bw.tif"
OUT_FILE
=
"
${
LOCALTESTS_DIR
}
/lenna-bw-bilevel.tif"
# IN_FILE="${LOCALTESTS_DIR}/lenna-bw.tif"
run_colour_fax_test
# OUT_FILE="${LOCALTESTS_DIR}/lenna-bw-bilevel.tif"
# run_colour_fax_test
IN_FILE
=
"
${
TIFFFX_DIR
}
/c03x_02x.tif"
OUT_FILE
=
"
${
TIFFFX_DIR
}
/c03x_02x.tif"
# IN_FILE="${LOCALTESTS_DIR}/lenna-colour.tif"
run_colour_fax_test
# OUT_FILE="${LOCALTESTS_DIR}/lenna-bw-bilevel.tif"
# run_colour_fax_test
IN_FILE
=
"
${
TIFFFX_DIR
}
/l02x_02x.tif"
OUT_FILE
=
"
${
TIFFFX_DIR
}
/l02x_02x.tif"
# IN_FILE="${TIFFFX_DIR}/c03x_02x.tif"
run_colour_fax_test
# OUT_FILE="${TIFFFX_DIR}/c03x_02x.tif"
# run_colour_fax_test
IN_FILE
=
"
${
TIFFFX_DIR
}
/l04x_02x.tif"
OUT_FILE
=
"
${
TIFFFX_DIR
}
/l04x_02x.tif"
# IN_FILE="${TIFFFX_DIR}/l02x_02x.tif"
run_colour_fax_test
# OUT_FILE="${TIFFFX_DIR}/l02x_02x.tif"
# run_colour_fax_test
# IN_FILE="${TIFFFX_DIR}/l04x_02x.tif"
# OUT_FILE="${TIFFFX_DIR}/l04x_02x.tif"
# run_colour_fax_test
done
done
# Colour/gray -> colour/gray by allowing ECM
# Colour/gray -> colour/gray by allowing ECM
for
OPTS
in
"-p AA -C -e"
"-p TT -C -e"
"-p GG -C -e"
"-p TG -C -e"
"-p GT -C -e"
for
OPTS
in
"-p AA -C -e"
"-p TT -C -e"
"-p GG -C -e"
"-p TG -C -e"
"-p GT -C -e"
do
do
IN_FILE
=
"
${
LOCALTESTS_DIR
}
/lenna-colour.tif"
echo
Colour to colour tests disabled
OUT_FILE
=
"
${
LOCALTESTS_DIR
}
/lenna-colour.tif"
# IN_FILE="${LOCALTESTS_DIR}/lenna-colour.tif"
run_colour_fax_test
# OUT_FILE="${LOCALTESTS_DIR}/lenna-colour.tif"
# run_colour_fax_test
IN_FILE
=
"
${
LOCALTESTS_DIR
}
/lenna-bw.tif"
OUT_FILE
=
"
${
LOCALTESTS_DIR
}
/lenna-bw.tif"
# IN_FILE="${LOCALTESTS_DIR}/lenna-bw.tif"
run_colour_fax_test
# OUT_FILE="${LOCALTESTS_DIR}/lenna-bw.tif"
# run_colour_fax_test
IN_FILE
=
"
${
TIFFFX_DIR
}
/c03x_02x.tif"
OUT_FILE
=
"
${
TIFFFX_DIR
}
/c03x_02x.tif"
# IN_FILE="${TIFFFX_DIR}/c03x_02x.tif"
run_colour_fax_test
# OUT_FILE="${TIFFFX_DIR}/c03x_02x.tif"
# run_colour_fax_test
IN_FILE
=
"
${
TIFFFX_DIR
}
/l02x_02x.tif"
OUT_FILE
=
"
${
TIFFFX_DIR
}
/l02x_02x.tif"
# IN_FILE="${TIFFFX_DIR}/l02x_02x.tif"
run_colour_fax_test
# OUT_FILE="${TIFFFX_DIR}/l02x_02x.tif"
# run_colour_fax_test
IN_FILE
=
"
${
TIFFFX_DIR
}
/l04x_02x.tif"
OUT_FILE
=
"
${
TIFFFX_DIR
}
/l04x_02x.tif"
# IN_FILE="${TIFFFX_DIR}/l04x_02x.tif"
run_colour_fax_test
# OUT_FILE="${TIFFFX_DIR}/l04x_02x.tif"
# run_colour_fax_test
done
done
# Bi-level tests
# Bi-level tests
...
...
libs/spandsp/tests/v18_tests.c
浏览文件 @
c741332d
This source diff could not be displayed because it is too large. You can
view the blob
instead.
src/mod/applications/mod_spandsp/mod_spandsp_dsp.c
浏览文件 @
c741332d
...
@@ -150,11 +150,11 @@ static int get_v18_mode(switch_core_session_t *session)
...
@@ -150,11 +150,11 @@ static int get_v18_mode(switch_core_session_t *session)
{
{
switch_channel_t
*
channel
=
switch_core_session_get_channel
(
session
);
switch_channel_t
*
channel
=
switch_core_session_get_channel
(
session
);
const
char
*
var
;
const
char
*
var
;
int
r
=
V18_MODE_5BIT_45
;
int
r
=
V18_MODE_5BIT_45
45
;
if
((
var
=
switch_channel_get_variable
(
channel
,
"v18_mode"
)))
{
if
((
var
=
switch_channel_get_variable
(
channel
,
"v18_mode"
)))
{
if
(
!
strcasecmp
(
var
,
"5BIT_45"
)
||
!
strcasecmp
(
var
,
"baudot"
))
{
if
(
!
strcasecmp
(
var
,
"5BIT_45"
)
||
!
strcasecmp
(
var
,
"baudot"
))
{
r
=
V18_MODE_5BIT_45
;
r
=
V18_MODE_5BIT_45
45
;
}
else
if
(
!
strcasecmp
(
var
,
"5BIT_50"
))
{
}
else
if
(
!
strcasecmp
(
var
,
"5BIT_50"
))
{
r
=
V18_MODE_5BIT_50
;
r
=
V18_MODE_5BIT_50
;
}
else
if
(
!
strcasecmp
(
var
,
"DTMF"
))
{
}
else
if
(
!
strcasecmp
(
var
,
"DTMF"
))
{
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论