Skip to content
项目
群组
代码片段
帮助
正在加载...
登录
切换导航
F
freeswitch
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分枝图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
分枝图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
张华
freeswitch
Commits
3ae87091
提交
3ae87091
authored
7月 24, 2013
作者:
Steve Underwood
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Reworked some of the definition names and values in preparation for
colour FAX
上级
612c81c1
全部展开
隐藏空白字符变更
内嵌
并排
正在显示
13 个修改的文件
包含
735 行增加
和
409 行删除
+735
-409
t4_rx.h
libs/spandsp/src/spandsp/t4_rx.h
+37
-96
t30.c
libs/spandsp/src/t30.c
+112
-112
t30_api.c
libs/spandsp/src/t30_api.c
+41
-38
t4_rx.c
libs/spandsp/src/t4_rx.c
+6
-6
generate_etsi_300_242_pages.c
.../spandsp/test-data/etsi/fax/generate_etsi_300_242_pages.c
+26
-22
generate_dithered_tif.c
libs/spandsp/test-data/itu/fax/generate_dithered_tif.c
+4
-6
generate_sized_pages.c
libs/spandsp/test-data/itu/fax/generate_sized_pages.c
+287
-48
generate_striped_pages.c
libs/spandsp/test-data/itu/fax/generate_striped_pages.c
+6
-3
fax_tests.c
libs/spandsp/tests/fax_tests.c
+61
-47
fax_tests.sh
libs/spandsp/tests/fax_tests.sh
+128
-4
t38_decode.c
libs/spandsp/tests/t38_decode.c
+2
-2
tsb85_tests.c
libs/spandsp/tests/tsb85_tests.c
+15
-15
mod_spandsp_fax.c
src/mod/applications/mod_spandsp/mod_spandsp_fax.c
+10
-10
没有找到文件。
libs/spandsp/src/spandsp/t4_rx.h
浏览文件 @
3ae87091
...
...
@@ -49,68 +49,44 @@ typedef int (*t4_row_write_handler_t)(void *user_data, const uint8_t buf[], size
typedef
enum
{
/*! No compression */
T4_COMPRESSION_NONE
=
0
,
/*! T.
1
1D compression */
T4_COMPRESSION_T4_1D
=
1
,
T4_COMPRESSION_NONE
=
0
x01
,
/*! T.
4
1D compression */
T4_COMPRESSION_T4_1D
=
0x02
,
/*! T.4 2D compression */
T4_COMPRESSION_T4_2D
=
2
,
T4_COMPRESSION_T4_2D
=
0x04
,
/*! T.6 2D compression */
T4_COMPRESSION_T6
=
3
,
T4_COMPRESSION_T6
=
0x08
,
/*! T.85 monochrome JBIG coding with L0 fixed. */
T4_COMPRESSION_T85
=
4
,
T4_COMPRESSION_T85
=
0x10
,
/*! T.85 monochrome JBIG coding with L0 variable. */
T4_COMPRESSION_T85_L0
=
5
,
T4_COMPRESSION_T85_L0
=
0x20
,
/*! T.43 gray-scale/colour JBIG coding */
T4_COMPRESSION_T43
=
6
,
T4_COMPRESSION_T43
=
0x40
,
/*! T.45 run length colour compression */
T4_COMPRESSION_T45
=
7
,
T4_COMPRESSION_T45
=
0x80
,
/*! T.42 + T.81 + T.30 Annex E colour JPEG coding */
T4_COMPRESSION_T42_T81
=
8
,
T4_COMPRESSION_T42_T81
=
0x100
,
/*! T.42 + T.81 + T.30 Annex K colour sYCC-JPEG coding */
T4_COMPRESSION_SYCC_T81
=
9
,
T4_COMPRESSION_SYCC_T81
=
0x200
,
/*! T.88 monochrome JBIG2 compression */
T4_COMPRESSION_T88
=
10
}
t4_image_compression_t
;
enum
{
/*! No compression */
T4_SUPPORT_COMPRESSION_NONE
=
0x01
,
/*! T.1 1D compression */
T4_SUPPORT_COMPRESSION_T4_1D
=
0x02
,
/*! T.4 2D compression */
T4_SUPPORT_COMPRESSION_T4_2D
=
0x04
,
/*! T.6 2D compression */
T4_SUPPORT_COMPRESSION_T6
=
0x08
,
/*! T.85 monochrome JBIG compression, with fixed L0 */
T4_SUPPORT_COMPRESSION_T85
=
0x10
,
/*! T.85 monochrome JBIG compression, with variable L0 */
T4_SUPPORT_COMPRESSION_T85_L0
=
0x20
,
/*! T.43 colour JBIG compression */
T4_SUPPORT_COMPRESSION_T43
=
0x40
,
/*! T.45 run length colour compression */
T4_SUPPORT_COMPRESSION_T45
=
0x80
,
/*! T.81 + T.30 Annex E colour JPEG compression */
T4_SUPPORT_COMPRESSION_T42_T81
=
0x100
,
/*! T.81 + T.30 Annex K colour sYCC-JPEG compression */
T4_SUPPORT_COMPRESSION_SYCC_T81
=
0x200
,
/*! T.88 monochrome JBIG2 compression */
T4_SUPPORT_COMPRESSION_T88
=
0x400
,
T4_COMPRESSION_T88
=
0x400
,
/*! Support solour compression without sub-sampling */
T4_COMPRESSION_NO_SUBSAMPLING
=
0x800000
,
/*! Gray-scale support by multi-level codecs */
T4_
SUPPORT_
COMPRESSION_GRAYSCALE
=
0x1000000
,
T4_COMPRESSION_GRAYSCALE
=
0x1000000
,
/*! Colour support by multi-level codecs */
T4_
SUPPORT_
COMPRESSION_COLOUR
=
0x2000000
,
T4_COMPRESSION_COLOUR
=
0x2000000
,
/*! 12 bit mode for gray-scale and colour */
T4_
SUPPORT_
COMPRESSION_12BIT
=
0x4000000
,
T4_COMPRESSION_12BIT
=
0x4000000
,
/*! Convert a colour image to a gray-scale one */
T4_
SUPPORT_
COMPRESSION_COLOUR_TO_GRAY
=
0x8000000
,
T4_COMPRESSION_COLOUR_TO_GRAY
=
0x8000000
,
/*! Dither a gray-scale image down a simple bilevel image, with rescaling to fit a FAX page */
T
30_SUPPORT
_GRAY_TO_BILEVEL
=
0x10000000
,
T
4_COMPRESSION
_GRAY_TO_BILEVEL
=
0x10000000
,
/*! Dither a colour image down a simple bilevel image, with rescaling to fit a FAX page */
T
30_SUPPORT
_COLOUR_TO_BILEVEL
=
0x20000000
,
T
4_COMPRESSION
_COLOUR_TO_BILEVEL
=
0x20000000
,
/*! Rescale an image (except a bi-level image) to fit a permitted FAX width when necessary */
T4_
SUPPORT_
COMPRESSION_RESCALING
=
0x40000000
};
T4_COMPRESSION_RESCALING
=
0x40000000
}
t4_image_compression_t
;
/*! Image type */
typedef
enum
...
...
@@ -169,71 +145,36 @@ typedef enum
enum
{
/*! Standard FAX resolution 204dpi x 98dpi - bi-level only */
T4_RESOLUTION_R8_STANDARD
=
1
,
T4_RESOLUTION_R8_STANDARD
=
0x
1
,
/*! Fine FAX resolution 204dpi x 196dpi - bi-level only */
T4_RESOLUTION_R8_FINE
=
2
,
T4_RESOLUTION_R8_FINE
=
0x
2
,
/*! Super-fine FAX resolution 204dpi x 391dpi - bi-level only */
T4_RESOLUTION_R8_SUPERFINE
=
3
,
T4_RESOLUTION_R8_SUPERFINE
=
0x4
,
/*! Double FAX resolution 408dpi x 391dpi - bi-level only */
T4_RESOLUTION_R16_SUPERFINE
=
4
,
T4_RESOLUTION_R16_SUPERFINE
=
0x8
,
/*! 100dpi x 100dpi - gray-scale and colour only */
T4_RESOLUTION_100_100
=
5
,
T4_RESOLUTION_100_100
=
0x10
,
/*! 200dpi x 100dpi - bi-level only */
T4_RESOLUTION_200_100
=
6
,
T4_RESOLUTION_200_100
=
0x20
,
/*! 200dpi x 200dpi */
T4_RESOLUTION_200_200
=
7
,
T4_RESOLUTION_200_200
=
0x40
,
/*! 200dpi x 400dpi - bi-level only */
T4_RESOLUTION_200_400
=
8
,
T4_RESOLUTION_200_400
=
0x80
,
/*! 300dpi x 300dpi */
T4_RESOLUTION_300_300
=
9
,
T4_RESOLUTION_300_300
=
0x100
,
/*! 300dpi x 600dpi - bi-level only */
T4_RESOLUTION_300_600
=
1
0
,
T4_RESOLUTION_300_600
=
0x20
0
,
/*! 400dpi x 400dpi */
T4_RESOLUTION_400_400
=
11
,
T4_RESOLUTION_400_400
=
0x400
,
/*! 400dpi x 800dpi - bi-level only */
T4_RESOLUTION_400_800
=
12
,
T4_RESOLUTION_400_800
=
0x800
,
/*! 600dpi x 600dpi */
T4_RESOLUTION_600_600
=
13
,
T4_RESOLUTION_600_600
=
0x1000
,
/*! 600dpi x 1200dpi - bi-level only */
T4_RESOLUTION_600_1200
=
14
,
T4_RESOLUTION_600_1200
=
0x2000
,
/*! 1200dpi x 1200dpi */
T4_RESOLUTION_1200_1200
=
15
};
enum
{
/*! Support standard FAX resolution 204dpi x 98dpi - bi-level only */
T4_SUPPORT_RESOLUTION_R8_STANDARD
=
0x1
,
/*! Support fine FAX resolution 204dpi x 196dpi - bi-level only */
T4_SUPPORT_RESOLUTION_R8_FINE
=
0x2
,
/*! Support super-fine FAX resolution 204dpi x 391dpi - bi-level only */
T4_SUPPORT_RESOLUTION_R8_SUPERFINE
=
0x4
,
/*! Support double FAX resolution 408dpi x 391dpi - bi-level only */
T4_SUPPORT_RESOLUTION_R16_SUPERFINE
=
0x8
,
/*! Support 100dpi x 100dpi - gray-scale and colour only */
T4_SUPPORT_RESOLUTION_100_100
=
0x10
,
/*! Support 200dpi x 100dpi - bi-level only */
T4_SUPPORT_RESOLUTION_200_100
=
0x20
,
/*! Support 200dpi x 200dpi */
T4_SUPPORT_RESOLUTION_200_200
=
0x40
,
/*! Support 200dpi x 400dpi - bi-level only */
T4_SUPPORT_RESOLUTION_200_400
=
0x80
,
/*! Support 300dpi x 300dpi */
T4_SUPPORT_RESOLUTION_300_300
=
0x100
,
/*! Support 300dpi x 600dpi - bi-level only */
T4_SUPPORT_RESOLUTION_300_600
=
0x200
,
/*! Support 400dpi x 400dpi */
T4_SUPPORT_RESOLUTION_400_400
=
0x400
,
/*! Support 400dpi x 800dpi - bi-level only */
T4_SUPPORT_RESOLUTION_400_800
=
0x800
,
/*! Support 600dpi x 600dpi */
T4_SUPPORT_RESOLUTION_600_600
=
0x1000
,
/*! Support 600dpi x 1200dpi - bi-level only */
T4_SUPPORT_RESOLUTION_600_1200
=
0x2000
,
/*! Support 1200dpi x 1200dpi */
T4_SUPPORT_RESOLUTION_1200_1200
=
0x4000
T4_RESOLUTION_1200_1200
=
0x4000
};
/*!
...
...
libs/spandsp/src/t30.c
浏览文件 @
3ae87091
差异被折叠。
点击展开。
libs/spandsp/src/t30_api.c
浏览文件 @
3ae87091
...
...
@@ -685,29 +685,32 @@ SPAN_DECLARE(int) t30_set_supported_modems(t30_state_t *s, int supported_modems)
SPAN_DECLARE
(
int
)
t30_set_supported_compressions
(
t30_state_t
*
s
,
int
supported_compressions
)
{
/* Mask out the ones we actually support today. */
supported_compressions
&=
T4_
SUPPORT_
COMPRESSION_T4_1D
|
T4_
SUPPORT_
COMPRESSION_T4_2D
|
T4_
SUPPORT_
COMPRESSION_T6
|
T4_
SUPPORT_
COMPRESSION_T85
|
T4_
SUPPORT_
COMPRESSION_T85_L0
supported_compressions
&=
T4_COMPRESSION_T4_1D
|
T4_COMPRESSION_T4_2D
|
T4_COMPRESSION_T6
|
T4_COMPRESSION_T85
|
T4_COMPRESSION_T85_L0
#if defined(SPANDSP_SUPPORT_T88)
|
T4_SUPPORT_COMPRESSION_T88
|
T4_COMPRESSION_T88
#endif
//| T4_COMPRESSION_T42_T81
#if defined(SPANDSP_SUPPORT_SYCC_T81)
|
T4_COMPRESSION_SYCC_T81
#endif
//| T4_SUPPORT_COMPRESSION_T81
#if defined(SPANDSP_SUPPORT_T43)
|
T4_
SUPPORT_
COMPRESSION_T43
|
T4_COMPRESSION_T43
#endif
#if defined(SPANDSP_SUPPORT_T45)
|
T4_
SUPPORT_
COMPRESSION_T45
|
T4_COMPRESSION_T45
#endif
#if 0
| T4_
SUPPORT_
COMPRESSION_GRAYSCALE
| T4_
SUPPORT_
COMPRESSION_COLOUR
| T4_
SUPPORT_
COMPRESSION_12BIT
| T4_
SUPPORT_
COMPRESSION_COLOUR_TO_GRAY
| T4_
SUPPORT_
COMPRESSION_GRAY_TO_BILEVEL
| T4_
SUPPORT_
COMPRESSION_COLOUR_TO_BILEVEL
| T4_
SUPPORT_
COMPRESSION_RESCALING
| T4_COMPRESSION_GRAYSCALE
| T4_COMPRESSION_COLOUR
| T4_COMPRESSION_12BIT
| T4_COMPRESSION_COLOUR_TO_GRAY
| T4_COMPRESSION_GRAY_TO_BILEVEL
| T4_COMPRESSION_COLOUR_TO_BILEVEL
| T4_COMPRESSION_RESCALING
#endif
|
0
;
s
->
supported_compressions
=
supported_compressions
;
...
...
@@ -718,23 +721,23 @@ SPAN_DECLARE(int) t30_set_supported_compressions(t30_state_t *s, int supported_c
SPAN_DECLARE
(
int
)
t30_set_supported_bilevel_resolutions
(
t30_state_t
*
s
,
int
supported_resolutions
)
{
supported_resolutions
&=
T4_
SUPPORT_
RESOLUTION_R8_STANDARD
|
T4_
SUPPORT_
RESOLUTION_R8_FINE
|
T4_
SUPPORT_
RESOLUTION_R8_SUPERFINE
|
T4_
SUPPORT_
RESOLUTION_R16_SUPERFINE
|
T4_
SUPPORT_
RESOLUTION_200_100
|
T4_
SUPPORT_
RESOLUTION_200_200
|
T4_
SUPPORT_
RESOLUTION_200_400
|
T4_
SUPPORT_
RESOLUTION_300_300
|
T4_
SUPPORT_
RESOLUTION_300_600
|
T4_
SUPPORT_
RESOLUTION_400_400
|
T4_
SUPPORT_
RESOLUTION_400_800
|
T4_
SUPPORT_
RESOLUTION_600_600
|
T4_
SUPPORT_
RESOLUTION_600_1200
|
T4_
SUPPORT_
RESOLUTION_1200_1200
;
supported_resolutions
&=
T4_RESOLUTION_R8_STANDARD
|
T4_RESOLUTION_R8_FINE
|
T4_RESOLUTION_R8_SUPERFINE
|
T4_RESOLUTION_R16_SUPERFINE
|
T4_RESOLUTION_200_100
|
T4_RESOLUTION_200_200
|
T4_RESOLUTION_200_400
|
T4_RESOLUTION_300_300
|
T4_RESOLUTION_300_600
|
T4_RESOLUTION_400_400
|
T4_RESOLUTION_400_800
|
T4_RESOLUTION_600_600
|
T4_RESOLUTION_600_1200
|
T4_RESOLUTION_1200_1200
;
/* Make sure anything needed for colour is enabled as a bi-level image, as that is a
rule from T.30. 100x100 is an exception, as it doesn't exist as a bi-level resolution. */
supported_resolutions
|=
(
s
->
supported_colour_resolutions
&
~
T4_
SUPPORT_
RESOLUTION_100_100
);
supported_resolutions
|=
(
s
->
supported_colour_resolutions
&
~
T4_RESOLUTION_100_100
);
s
->
supported_bilevel_resolutions
=
supported_resolutions
;
t30_build_dis_or_dtc
(
s
);
return
0
;
...
...
@@ -743,16 +746,16 @@ SPAN_DECLARE(int) t30_set_supported_bilevel_resolutions(t30_state_t *s, int supp
SPAN_DECLARE
(
int
)
t30_set_supported_colour_resolutions
(
t30_state_t
*
s
,
int
supported_resolutions
)
{
supported_resolutions
&=
T4_
SUPPORT_
RESOLUTION_100_100
|
T4_
SUPPORT_
RESOLUTION_200_200
|
T4_
SUPPORT_
RESOLUTION_300_300
|
T4_
SUPPORT_
RESOLUTION_400_400
|
T4_
SUPPORT_
RESOLUTION_600_600
|
T4_
SUPPORT_
RESOLUTION_1200_1200
;
supported_resolutions
&=
T4_RESOLUTION_100_100
|
T4_RESOLUTION_200_200
|
T4_RESOLUTION_300_300
|
T4_RESOLUTION_400_400
|
T4_RESOLUTION_600_600
|
T4_RESOLUTION_1200_1200
;
s
->
supported_colour_resolutions
=
supported_resolutions
;
/* Make sure anything needed for colour is enabled as a bi-level image, as that is a
rule from T.30. 100x100 is an exception, as it doesn't exist as a bi-level resolution. */
s
->
supported_bilevel_resolutions
|=
(
s
->
supported_colour_resolutions
&
~
T4_
SUPPORT_
RESOLUTION_100_100
);
s
->
supported_bilevel_resolutions
|=
(
s
->
supported_colour_resolutions
&
~
T4_RESOLUTION_100_100
);
t30_build_dis_or_dtc
(
s
);
return
0
;
}
...
...
libs/spandsp/src/t4_rx.c
浏览文件 @
3ae87091
...
...
@@ -740,20 +740,20 @@ static void select_tiff_compression(t4_rx_state_t *s, int output_image_type)
{
/* Only provide for one form of coding throughout the file, even though the
coding on the wire could change between pages. */
if
((
s
->
supported_tiff_compressions
&
T4_
SUPPORT_
COMPRESSION_T85
))
if
((
s
->
supported_tiff_compressions
&
T4_COMPRESSION_T85
))
s
->
tiff
.
compression
=
T4_COMPRESSION_T85
;
else
if
((
s
->
supported_tiff_compressions
&
T4_
SUPPORT_
COMPRESSION_T6
))
else
if
((
s
->
supported_tiff_compressions
&
T4_COMPRESSION_T6
))
s
->
tiff
.
compression
=
T4_COMPRESSION_T6
;
else
if
((
s
->
supported_tiff_compressions
&
T4_
SUPPORT_
COMPRESSION_T4_2D
))
else
if
((
s
->
supported_tiff_compressions
&
T4_COMPRESSION_T4_2D
))
s
->
tiff
.
compression
=
T4_COMPRESSION_T4_2D
;
else
if
((
s
->
supported_tiff_compressions
&
T4_
SUPPORT_
COMPRESSION_T4_1D
))
else
if
((
s
->
supported_tiff_compressions
&
T4_COMPRESSION_T4_1D
))
s
->
tiff
.
compression
=
T4_COMPRESSION_T4_1D
;
}
else
{
if
((
s
->
supported_tiff_compressions
&
T4_
SUPPORT_
COMPRESSION_T42_T81
))
if
((
s
->
supported_tiff_compressions
&
T4_COMPRESSION_T42_T81
))
s
->
tiff
.
compression
=
T4_COMPRESSION_T42_T81
;
else
if
((
s
->
supported_tiff_compressions
&
T4_
SUPPORT_
COMPRESSION_T43
))
else
if
((
s
->
supported_tiff_compressions
&
T4_COMPRESSION_T43
))
s
->
tiff
.
compression
=
T4_COMPRESSION_T43
;
}
}
...
...
libs/spandsp/test-data/etsi/fax/generate_etsi_300_242_pages.c
浏览文件 @
3ae87091
...
...
@@ -63,7 +63,7 @@ struct
T4_X_RESOLUTION_R8
,
T4_Y_RESOLUTION_STANDARD
,
T4_WIDTH_R8_A4
,
1
100
,
1
002
,
COMPRESSION_CCITT_T4
,
0
},
...
...
@@ -72,7 +72,7 @@ struct
T4_X_RESOLUTION_R8
,
T4_Y_RESOLUTION_STANDARD
,
T4_WIDTH_R8_A4
,
1
100
,
1
002
,
COMPRESSION_CCITT_T4
,
1
},
...
...
@@ -81,7 +81,7 @@ struct
T4_X_RESOLUTION_R8
,
T4_Y_RESOLUTION_STANDARD
,
T4_WIDTH_R8_A4
,
1100
,
237
,
COMPRESSION_CCITT_T4
,
2
},
...
...
@@ -90,7 +90,7 @@ struct
T4_X_RESOLUTION_R8
,
T4_Y_RESOLUTION_STANDARD
,
T4_WIDTH_R8_A4
,
1100
,
237
,
COMPRESSION_CCITT_T4
,
3
},
...
...
@@ -99,7 +99,7 @@ struct
T4_X_RESOLUTION_R8
,
T4_Y_RESOLUTION_STANDARD
,
T4_WIDTH_R8_A4
,
11
00
,
4
00
,
COMPRESSION_CCITT_T4
,
4
},
...
...
@@ -108,7 +108,7 @@ struct
T4_X_RESOLUTION_R8
,
T4_Y_RESOLUTION_STANDARD
,
T4_WIDTH_R8_A4
,
1
100
,
1
079
,
COMPRESSION_CCITT_T4
,
5
},
...
...
@@ -117,7 +117,7 @@ struct
T4_X_RESOLUTION_R8
,
T4_Y_RESOLUTION_STANDARD
,
T4_WIDTH_R8_A4
,
1
100
,
1
728
,
COMPRESSION_CCITT_T4
,
6
},
...
...
@@ -153,7 +153,7 @@ struct
T4_X_RESOLUTION_R8
,
T4_Y_RESOLUTION_STANDARD
,
T4_WIDTH_R8_A4
,
1
100
,
1
079
,
COMPRESSION_CCITT_T4
,
5
},
...
...
@@ -178,16 +178,19 @@ struct
int
photo_metric
=
PHOTOMETRIC_MINISWHITE
;
int
fill_order
=
FILLORDER_LSB2MSB
;
static
void
clear_row
(
uint8_t
buf
[],
int
width
)
static
void
set_pixel
(
uint8_t
buf
[],
int
row
,
int
pixel
)
{
memset
(
buf
,
0
,
width
/
8
+
1
);
row
--
;
buf
[
row
*
1728
/
8
+
pixel
/
8
]
|=
(
0x80
>>
(
pixel
&
0x07
));
}
/*- End of function --------------------------------------------------------*/
static
void
set_pixel
(
uint8_t
buf
[],
int
row
,
int
pixel
)
static
void
set_pixel
_range
(
uint8_t
buf
[],
int
row
,
int
start
,
int
end
)
{
row
--
;
buf
[
row
*
1728
/
8
+
pixel
/
8
]
|=
(
0x80
>>
(
pixel
&
0x07
));
int
i
;
for
(
i
=
start
;
i
<=
end
;
i
++
)
set_pixel
(
buf
,
row
,
i
);
}
/*- End of function --------------------------------------------------------*/
...
...
@@ -198,21 +201,18 @@ static void clear_pixel(uint8_t buf[], int row, int pixel)
}
/*- End of function --------------------------------------------------------*/
static
void
set
_pixel_range
(
uint8_t
buf
[],
int
row
,
int
start
,
int
end
)
static
void
clear
_pixel_range
(
uint8_t
buf
[],
int
row
,
int
start
,
int
end
)
{
int
i
;
for
(
i
=
start
;
i
<=
end
;
i
++
)
set
_pixel
(
buf
,
row
,
i
);
clear
_pixel
(
buf
,
row
,
i
);
}
/*- End of function --------------------------------------------------------*/
static
void
clear_
pixel_range
(
uint8_t
buf
[],
int
row
,
int
start
,
int
end
)
static
void
clear_
row
(
uint8_t
buf
[],
int
width
)
{
int
i
;
for
(
i
=
start
;
i
<=
end
;
i
++
)
clear_pixel
(
buf
,
row
,
i
);
memset
(
buf
,
0
,
width
/
8
+
1
);
}
/*- End of function --------------------------------------------------------*/
...
...
@@ -593,7 +593,6 @@ int main(int argc, char *argv[])
TIFFSetField
(
tiff_file
,
TIFFTAG_BITSPERSAMPLE
,
1
);
TIFFSetField
(
tiff_file
,
TIFFTAG_ORIENTATION
,
ORIENTATION_TOPLEFT
);
TIFFSetField
(
tiff_file
,
TIFFTAG_SAMPLESPERPIXEL
,
1
);
TIFFSetField
(
tiff_file
,
TIFFTAG_ROWSPERSTRIP
,
-
1L
);
TIFFSetField
(
tiff_file
,
TIFFTAG_PLANARCONFIG
,
PLANARCONFIG_CONTIG
);
TIFFSetField
(
tiff_file
,
TIFFTAG_PHOTOMETRIC
,
photo_metric
);
TIFFSetField
(
tiff_file
,
TIFFTAG_FILLORDER
,
fill_order
);
...
...
@@ -625,6 +624,7 @@ int main(int argc, char *argv[])
image_length
=
sequence
[
i
].
length
;
TIFFSetField
(
tiff_file
,
TIFFTAG_PAGENUMBER
,
0
,
1
);
TIFFSetField
(
tiff_file
,
TIFFTAG_CLEANFAXDATA
,
CLEANFAXDATA_CLEAN
);
TIFFSetField
(
tiff_file
,
TIFFTAG_ROWSPERSTRIP
,
128
);
TIFFSetField
(
tiff_file
,
TIFFTAG_IMAGELENGTH
,
image_length
);
TIFFCheckpointDirectory
(
tiff_file
);
...
...
@@ -665,7 +665,11 @@ int main(int argc, char *argv[])
break
;
}
/* ....then the directory entry, and libtiff is happy. */
TIFFSetField
(
tiff_file
,
TIFFTAG_IMAGELENGTH
,
image_length
);
if
(
image_length
!=
sequence
[
i
].
length
)
{
printf
(
"Length mismatch - %d: %d vs %d
\n
"
,
i
,
image_length
,
sequence
[
i
].
length
);
exit
(
2
);
}
TIFFWriteDirectory
(
tiff_file
);
}
...
...
libs/spandsp/test-data/itu/fax/generate_dithered_tif.c
浏览文件 @
3ae87091
...
...
@@ -63,7 +63,6 @@ int main(int argc, char *argv[])
{
int
image_width
;
int
row
;
int
resunit
;
int
output_compression
;
int
output_t4_options
;
uint8_t
image_buffer
[
1024
];
...
...
@@ -99,7 +98,6 @@ int main(int argc, char *argv[])
TIFFSetField
(
tiff_file
,
TIFFTAG_BITSPERSAMPLE
,
1
);
TIFFSetField
(
tiff_file
,
TIFFTAG_ORIENTATION
,
ORIENTATION_TOPLEFT
);
TIFFSetField
(
tiff_file
,
TIFFTAG_SAMPLESPERPIXEL
,
1
);
TIFFSetField
(
tiff_file
,
TIFFTAG_ROWSPERSTRIP
,
-
1L
);
TIFFSetField
(
tiff_file
,
TIFFTAG_PLANARCONFIG
,
PLANARCONFIG_CONTIG
);
TIFFSetField
(
tiff_file
,
TIFFTAG_PHOTOMETRIC
,
PHOTOMETRIC_MINISWHITE
);
TIFFSetField
(
tiff_file
,
TIFFTAG_FILLORDER
,
FILLORDER_LSB2MSB
);
...
...
@@ -108,16 +106,15 @@ int main(int argc, char *argv[])
y_resolution
=
y_res
/
100
.
0
f
;
TIFFSetField
(
tiff_file
,
TIFFTAG_XRESOLUTION
,
floorf
(
x_resolution
*
2
.
54
f
+
0
.
5
f
));
TIFFSetField
(
tiff_file
,
TIFFTAG_YRESOLUTION
,
floorf
(
y_resolution
*
2
.
54
f
+
0
.
5
f
));
resunit
=
RESUNIT_INCH
;
TIFFSetField
(
tiff_file
,
TIFFTAG_RESOLUTIONUNIT
,
resunit
);
TIFFSetField
(
tiff_file
,
TIFFTAG_RESOLUTIONUNIT
,
RESUNIT_INCH
);
TIFFSetField
(
tiff_file
,
TIFFTAG_SOFTWARE
,
"spandsp"
);
if
(
gethostname
(
buf
,
sizeof
(
buf
))
==
0
)
TIFFSetField
(
tiff_file
,
TIFFTAG_HOSTCOMPUTER
,
buf
);
TIFFSetField
(
tiff_file
,
TIFFTAG_SOFTWARE
,
"Spandsp"
);
TIFFSetField
(
tiff_file
,
TIFFTAG_IMAGEDESCRIPTION
,
"Checkerboard or dithered ones"
);
TIFFSetField
(
tiff_file
,
TIFFTAG_MAKE
,
"soft-switch.org"
);
TIFFSetField
(
tiff_file
,
TIFFTAG_MODEL
,
"test
data
"
);
TIFFSetField
(
tiff_file
,
TIFFTAG_MODEL
,
"test
y
"
);
time
(
&
now
);
tm
=
localtime
(
&
now
);
...
...
@@ -131,6 +128,7 @@ int main(int argc, char *argv[])
tm
->
tm_sec
);
TIFFSetField
(
tiff_file
,
TIFFTAG_DATETIME
,
buf
);
TIFFSetField
(
tiff_file
,
TIFFTAG_ROWSPERSTRIP
,
image_length
);
TIFFSetField
(
tiff_file
,
TIFFTAG_IMAGELENGTH
,
image_length
);
TIFFSetField
(
tiff_file
,
TIFFTAG_PAGENUMBER
,
0
,
1
);
TIFFSetField
(
tiff_file
,
TIFFTAG_CLEANFAXDATA
,
CLEANFAXDATA_CLEAN
);
...
...
libs/spandsp/test-data/itu/fax/generate_sized_pages.c
浏览文件 @
3ae87091
差异被折叠。
点击展开。
libs/spandsp/test-data/itu/fax/generate_striped_pages.c
浏览文件 @
3ae87091
...
...
@@ -81,11 +81,14 @@ int main(int argc, char *argv[])
TIFFSetField
(
tiff_file
,
TIFFTAG_XRESOLUTION
,
204
.
0
f
);
TIFFSetField
(
tiff_file
,
TIFFTAG_YRESOLUTION
,
196
.
0
f
);
TIFFSetField
(
tiff_file
,
TIFFTAG_RESOLUTIONUNIT
,
RESUNIT_INCH
);
TIFFSetField
(
tiff_file
,
TIFFTAG_SOFTWARE
,
"Spandsp"
);
TIFFSetField
(
tiff_file
,
TIFFTAG_HOSTCOMPUTER
,
"host"
);
TIFFSetField
(
tiff_file
,
TIFFTAG_FAXSUBADDRESS
,
"1111"
);
if
(
gethostname
(
buf
,
sizeof
(
buf
))
==
0
)
TIFFSetField
(
tiff_file
,
TIFFTAG_HOSTCOMPUTER
,
buf
);
TIFFSetField
(
tiff_file
,
TIFFTAG_SOFTWARE
,
"Spandsp"
);
TIFFSetField
(
tiff_file
,
TIFFTAG_IMAGEDESCRIPTION
,
"Image in stripes"
);
TIFFSetField
(
tiff_file
,
TIFFTAG_MAKE
,
"s
pandsp
"
);
TIFFSetField
(
tiff_file
,
TIFFTAG_MAKE
,
"s
oft-switch.org
"
);
TIFFSetField
(
tiff_file
,
TIFFTAG_MODEL
,
"testy"
);
time
(
&
now
);
...
...
libs/spandsp/tests/fax_tests.c
浏览文件 @
3ae87091
...
...
@@ -860,81 +860,95 @@ int main(int argc, char *argv[])
case
0
:
/* Allow anything */
t30_set_supported_bilevel_resolutions
(
t30_state
[
i
],
T4_
SUPPORT_
RESOLUTION_R8_STANDARD
|
T4_
SUPPORT_
RESOLUTION_R8_FINE
|
T4_
SUPPORT_
RESOLUTION_R8_SUPERFINE
|
T4_
SUPPORT_
RESOLUTION_R16_SUPERFINE
|
T4_
SUPPORT_
RESOLUTION_200_100
|
T4_
SUPPORT_
RESOLUTION_200_200
|
T4_
SUPPORT_
RESOLUTION_200_400
|
T4_
SUPPORT_
RESOLUTION_300_300
|
T4_
SUPPORT_
RESOLUTION_300_600
|
T4_
SUPPORT_
RESOLUTION_400_400
|
T4_
SUPPORT_
RESOLUTION_400_800
|
T4_
SUPPORT_
RESOLUTION_600_600
|
T4_
SUPPORT_
RESOLUTION_600_1200
|
T4_
SUPPORT_
RESOLUTION_1200_1200
);
T4_RESOLUTION_R8_STANDARD
|
T4_RESOLUTION_R8_FINE
|
T4_RESOLUTION_R8_SUPERFINE
|
T4_RESOLUTION_R16_SUPERFINE
|
T4_RESOLUTION_200_100
|
T4_RESOLUTION_200_200
|
T4_RESOLUTION_200_400
|
T4_RESOLUTION_300_300
|
T4_RESOLUTION_300_600
|
T4_RESOLUTION_400_400
|
T4_RESOLUTION_400_800
|
T4_RESOLUTION_600_600
|
T4_RESOLUTION_600_1200
|
T4_RESOLUTION_1200_1200
);
break
;
case
1
:
/* Allow anything metric */
t30_set_supported_bilevel_resolutions
(
t30_state
[
i
],
T4_
SUPPORT_
RESOLUTION_R8_STANDARD
|
T4_
SUPPORT_
RESOLUTION_R8_FINE
|
T4_
SUPPORT_
RESOLUTION_R8_SUPERFINE
|
T4_
SUPPORT_
RESOLUTION_R16_SUPERFINE
);
T4_RESOLUTION_R8_STANDARD
|
T4_RESOLUTION_R8_FINE
|
T4_RESOLUTION_R8_SUPERFINE
|
T4_RESOLUTION_R16_SUPERFINE
);
break
;
case
2
:
/* Allow anything inch based */
t30_set_supported_bilevel_resolutions
(
t30_state
[
i
],
T4_
SUPPORT_
RESOLUTION_200_100
|
T4_
SUPPORT_
RESOLUTION_200_200
|
T4_
SUPPORT_
RESOLUTION_200_400
|
T4_
SUPPORT_
RESOLUTION_300_300
|
T4_
SUPPORT_
RESOLUTION_300_600
|
T4_
SUPPORT_
RESOLUTION_400_400
|
T4_
SUPPORT_
RESOLUTION_400_800
|
T4_
SUPPORT_
RESOLUTION_600_600
|
T4_
SUPPORT_
RESOLUTION_600_1200
|
T4_
SUPPORT_
RESOLUTION_1200_1200
);
T4_RESOLUTION_200_100
|
T4_RESOLUTION_200_200
|
T4_RESOLUTION_200_400
|
T4_RESOLUTION_300_300
|
T4_RESOLUTION_300_600
|
T4_RESOLUTION_400_400
|
T4_RESOLUTION_400_800
|
T4_RESOLUTION_600_600
|
T4_RESOLUTION_600_1200
|
T4_RESOLUTION_1200_1200
);
break
;
case
3
:
/* Allow only restricted length resolution */
t30_set_supported_bilevel_resolutions
(
t30_state
[
i
],
T4_
SUPPORT_
RESOLUTION_R8_STANDARD
|
T4_
SUPPORT_
RESOLUTION_R8_FINE
|
T4_
SUPPORT_
RESOLUTION_200_100
|
T4_
SUPPORT_
RESOLUTION_200_200
);
T4_RESOLUTION_R8_STANDARD
|
T4_RESOLUTION_R8_FINE
|
T4_RESOLUTION_200_100
|
T4_RESOLUTION_200_200
);
break
;
case
4
:
/* Allow only more restricted length resolution */
t30_set_supported_bilevel_resolutions
(
t30_state
[
i
],
T4_
SUPPORT_
RESOLUTION_R8_STANDARD
|
T4_
SUPPORT_
RESOLUTION_200_100
);
T4_RESOLUTION_R8_STANDARD
|
T4_RESOLUTION_200_100
);
break
;
}
if
(
colour_enabled
)
{
t30_set_supported_colour_resolutions
(
t30_state
[
i
],
T4_
SUPPORT_
RESOLUTION_100_100
|
T4_
SUPPORT_
RESOLUTION_200_200
|
T4_
SUPPORT_
RESOLUTION_300_300
|
T4_
SUPPORT_
RESOLUTION_400_400
|
T4_
SUPPORT_
RESOLUTION_600_600
|
T4_
SUPPORT_
RESOLUTION_1200_1200
);
T4_RESOLUTION_100_100
|
T4_RESOLUTION_200_200
|
T4_RESOLUTION_300_300
|
T4_RESOLUTION_400_400
|
T4_RESOLUTION_600_600
|
T4_RESOLUTION_1200_1200
);
}
else
{
t30_set_supported_colour_resolutions
(
t30_state
[
i
],
0
);
}
t30_set_supported_output_compressions
(
t30_state
[
i
],
T4_
SUPPORT_
COMPRESSION_T4_2D
);
t30_set_supported_output_compressions
(
t30_state
[
i
],
T4_COMPRESSION_T4_2D
);
t30_set_ecm_capability
(
t30_state
[
i
],
use_ecm
);
t30_set_supported_compressions
(
t30_state
[
i
],
T4_SUPPORT_COMPRESSION_T4_1D
|
T4_SUPPORT_COMPRESSION_T4_2D
|
T4_SUPPORT_COMPRESSION_T6
//| T4_SUPPORT_COMPRESSION_t42_T81
|
T4_SUPPORT_COMPRESSION_T85
|
T4_SUPPORT_COMPRESSION_T85_L0
);
T4_COMPRESSION_T4_1D
|
T4_COMPRESSION_T4_2D
|
T4_COMPRESSION_T6
|
T4_COMPRESSION_T85
|
T4_COMPRESSION_T85_L0
#if 0
//| T4_COMPRESSION_T88
| T4_COMPRESSION_T43
| T4_COMPRESSION_T45
| T4_COMPRESSION_T42_T81
| T4_COMPRESSION_SYCC_T81
| T4_COMPRESSION_GRAYSCALE
| T4_COMPRESSION_COLOUR
| T4_COMPRESSION_12BIT
| T4_COMPRESSION_COLOUR_TO_GRAY
| T4_COMPRESSION_GRAY_TO_BILEVEL
| T4_COMPRESSION_COLOUR_TO_BILEVEL
| T4_COMPRESSION_RESCALING
#endif
|
0
);
t30_set_minimum_scan_line_time
(
t30_state
[
i
],
scan_line_time
);
if
(
mode
[
i
]
==
T38_GATEWAY_FAX
)
...
...
libs/spandsp/tests/fax_tests.sh
浏览文件 @
3ae87091
...
...
@@ -39,6 +39,31 @@ run_fax_test()
echo
tested
${
FILE
}
}
run_fax_squash_test
()
{
# Test with lengthwise squashing of a bilevel image
rm
-f
fax_tests.tif
echo
./fax_tests
-b
${
SQ
}
${
OPTS
}
-i
${
IN_FILE
}
./fax_tests
-b
${
SQ
}
${
OPTS
}
-i
${
IN_FILE
}
>
xyzzy 2>xyzzy2
RETVAL
=
$?
if
[
$RETVAL
!=
0
]
then
echo
fax_tests failed!
exit
$RETVAL
fi
# Now use tiffcmp to check the results. It will return non-zero if any page images differ. The -t
# option means the normal differences in tags will be ignored.
tiffcmp
-t
${
OUT_FILE
}
fax_tests.tif
>
/dev/null
RETVAL
=
$?
if
[
$RETVAL
!=
0
]
then
echo
fax_tests failed!
exit
$RETVAL
fi
rm
-f
fax_tests.tif
echo
tested
${
FILE
}
}
run_colour_fax_test
()
{
rm
-f
fax_tests.tif
...
...
@@ -96,20 +121,20 @@ do
# run_colour_fax_test
done
# Colour/gray -> colour/gray
by allowing ECM
# Colour/gray -> colour/gray
for
OPTS
in
"-p AA -C -e"
"-p TT -C -e"
"-p GG -C -e"
"-p TG -C -e"
"-p GT -C -e"
do
echo
Colour to colour tests disabled
# IN_FILE="${LOCALTESTS_DIR}/lenna-colour.tif"
# OUT_FILE="${LOCALTESTS_DIR}/lenna-colour.tif"
# OUT_FILE="${LOCALTESTS_DIR}/lenna-colour
-out
.tif"
# run_colour_fax_test
# IN_FILE="${LOCALTESTS_DIR}/lenna-bw.tif"
# OUT_FILE="${LOCALTESTS_DIR}/lenna-bw.tif"
# OUT_FILE="${LOCALTESTS_DIR}/lenna-bw
-out
.tif"
# run_colour_fax_test
# IN_FILE="${TIFFFX_DIR}/c03x_02x.tif"
# OUT_FILE="${TIFFFX_DIR}/c03x_02x.tif"
# OUT_FILE="${TIFFFX_DIR}/c03x_02x
-out
.tif"
# run_colour_fax_test
# IN_FILE="${TIFFFX_DIR}/l02x_02x.tif"
...
...
@@ -121,6 +146,105 @@ do
# run_colour_fax_test
done
# Bi-level tests with image squashing
for
OPTS
in
"-p AA"
"-p AA -e"
"-p TT"
"-p TT -e"
"-p GG"
"-p GG -e"
"-p TG"
"-p TG -e"
"-p GT"
"-p GT -e"
do
IN_FILE
=
"
${
ITUTESTS_DIR
}
/bilevel_R8_77_A4.tif"
OUT_FILE
=
"
${
ITUTESTS_DIR
}
/bilevel_R8_77SQ_A4.tif"
SQ
=
4
run_fax_squash_test
IN_FILE
=
"
${
ITUTESTS_DIR
}
/bilevel_R8_77_B4.tif"
OUT_FILE
=
"
${
ITUTESTS_DIR
}
/bilevel_R8_77SQ_B4.tif"
SQ
=
4
run_fax_squash_test
IN_FILE
=
"
${
ITUTESTS_DIR
}
/bilevel_R8_77_A3.tif"
OUT_FILE
=
"
${
ITUTESTS_DIR
}
/bilevel_R8_77SQ_A3.tif"
SQ
=
4
run_fax_squash_test
IN_FILE
=
"
${
ITUTESTS_DIR
}
/bilevel_R8_154_A4.tif"
OUT_FILE
=
"
${
ITUTESTS_DIR
}
/bilevel_R8_154SQ_A4.tif"
SQ
=
3
run_fax_squash_test
IN_FILE
=
"
${
ITUTESTS_DIR
}
/bilevel_R8_154_B4.tif"
OUT_FILE
=
"
${
ITUTESTS_DIR
}
/bilevel_R8_154SQ_B4.tif"
SQ
=
3
run_fax_squash_test
IN_FILE
=
"
${
ITUTESTS_DIR
}
/bilevel_R8_154_A3.tif"
OUT_FILE
=
"
${
ITUTESTS_DIR
}
/bilevel_R8_154SQ_A3.tif"
SQ
=
3
run_fax_squash_test
IN_FILE
=
"
${
ITUTESTS_DIR
}
/bilevel_R8_154_A4.tif"
OUT_FILE
=
"
${
ITUTESTS_DIR
}
/bilevel_R8_154SQSQ_A4.tif"
SQ
=
4
run_fax_squash_test
IN_FILE
=
"
${
ITUTESTS_DIR
}
/bilevel_R8_154_B4.tif"
OUT_FILE
=
"
${
ITUTESTS_DIR
}
/bilevel_R8_154SQSQ_B4.tif"
SQ
=
4
run_fax_squash_test
IN_FILE
=
"
${
ITUTESTS_DIR
}
/bilevel_R8_154_A3.tif"
OUT_FILE
=
"
${
ITUTESTS_DIR
}
/bilevel_R8_154SQSQ_A3.tif"
SQ
=
4
run_fax_squash_test
IN_FILE
=
"
${
ITUTESTS_DIR
}
/bilevel_200_200_A4.tif"
OUT_FILE
=
"
${
ITUTESTS_DIR
}
/bilevel_200_200SQ_A4.tif"
SQ
=
4
run_fax_squash_test
IN_FILE
=
"
${
ITUTESTS_DIR
}
/bilevel_200_200_B4.tif"
OUT_FILE
=
"
${
ITUTESTS_DIR
}
/bilevel_200_200SQ_B4.tif"
SQ
=
4
run_fax_squash_test
IN_FILE
=
"
${
ITUTESTS_DIR
}
/bilevel_200_200_A3.tif"
OUT_FILE
=
"
${
ITUTESTS_DIR
}
/bilevel_200_200SQ_A3.tif"
SQ
=
4
run_fax_squash_test
IN_FILE
=
"
${
ITUTESTS_DIR
}
/bilevel_200_400_A4.tif"
OUT_FILE
=
"
${
ITUTESTS_DIR
}
/bilevel_200_400SQ_A4.tif"
SQ
=
3
run_fax_squash_test
IN_FILE
=
"
${
ITUTESTS_DIR
}
/bilevel_200_400_B4.tif"
OUT_FILE
=
"
${
ITUTESTS_DIR
}
/bilevel_200_400SQ_B4.tif"
SQ
=
3
run_fax_squash_test
IN_FILE
=
"
${
ITUTESTS_DIR
}
/bilevel_200_400_A3.tif"
OUT_FILE
=
"
${
ITUTESTS_DIR
}
/bilevel_200_400SQ_A3.tif"
SQ
=
3
run_fax_squash_test
IN_FILE
=
"
${
ITUTESTS_DIR
}
/bilevel_200_400_A4.tif"
OUT_FILE
=
"
${
ITUTESTS_DIR
}
/bilevel_200_400SQSQ_A4.tif"
SQ
=
4
run_fax_squash_test
IN_FILE
=
"
${
ITUTESTS_DIR
}
/bilevel_200_400_B4.tif"
OUT_FILE
=
"
${
ITUTESTS_DIR
}
/bilevel_200_400SQSQ_B4.tif"
SQ
=
4
run_fax_squash_test
IN_FILE
=
"
${
ITUTESTS_DIR
}
/bilevel_200_400_A3.tif"
OUT_FILE
=
"
${
ITUTESTS_DIR
}
/bilevel_200_400SQSQ_A3.tif"
SQ
=
4
run_fax_squash_test
done
# Bi-level tests
for
OPTS
in
"-p AA"
"-p AA -e"
"-p TT"
"-p TT -e"
"-p GG"
"-p GG -e"
"-p TG"
"-p TG -e"
"-p GT"
"-p GT -e"
do
...
...
libs/spandsp/tests/t38_decode.c
浏览文件 @
3ae87091
...
...
@@ -440,7 +440,7 @@ int main(int argc, char *argv[])
t30_set_phase_d_handler
(
t30
,
phase_d_handler
,
(
void
*
)
(
intptr_t
)
'A'
);
t30_set_phase_e_handler
(
t30
,
phase_e_handler
,
(
void
*
)
(
intptr_t
)
'A'
);
t30_set_ecm_capability
(
t30
,
use_ecm
);
t30_set_supported_compressions
(
t30
,
T4_
SUPPORT_COMPRESSION_T4_1D
|
T4_SUPPORT_COMPRESSION_T4_2D
|
T4_SUPPORT_COMPRESSION_T6
|
T4_SUPPORT
_COMPRESSION_T85
);
t30_set_supported_compressions
(
t30
,
T4_
COMPRESSION_T4_1D
|
T4_COMPRESSION_T4_2D
|
T4_COMPRESSION_T6
|
T4
_COMPRESSION_T85
);
if
(
pcap_scan_pkts
(
input_file_name
,
src_addr
,
src_port
,
dest_addr
,
dest_port
,
t38_terminal_timing_update
,
process_packet
,
NULL
))
exit
(
2
);
...
...
@@ -497,7 +497,7 @@ int main(int argc, char *argv[])
t30_set_phase_d_handler
(
t30
,
phase_d_handler
,
(
void
*
)
(
intptr_t
)
'B'
);
t30_set_phase_e_handler
(
t30
,
phase_e_handler
,
(
void
*
)
(
intptr_t
)
'B'
);
t30_set_ecm_capability
(
t30
,
use_ecm
);
t30_set_supported_compressions
(
t30
,
T4_
SUPPORT_COMPRESSION_T4_1D
|
T4_SUPPORT_COMPRESSION_T4_2D
|
T4_SUPPORT
_COMPRESSION_T6
);
t30_set_supported_compressions
(
t30
,
T4_
COMPRESSION_T4_1D
|
T4_COMPRESSION_T4_2D
|
T4
_COMPRESSION_T6
);
logging
=
fax_get_logging_state
(
fax_state
);
span_log_set_level
(
logging
,
SPAN_LOG_DEBUG
|
SPAN_LOG_SHOW_TAG
|
SPAN_LOG_SHOW_SAMPLE_TIME
);
...
...
libs/spandsp/tests/tsb85_tests.c
浏览文件 @
3ae87091
...
...
@@ -393,23 +393,23 @@ static void fax_prepare(void)
|
T4_SUPPORT_LENGTH_US_LEGAL
|
T4_SUPPORT_LENGTH_UNLIMITED
);
t30_set_supported_bilevel_resolutions
(
t30
,
T4_
SUPPORT_
RESOLUTION_R8_STANDARD
|
T4_
SUPPORT_
RESOLUTION_R8_FINE
|
T4_
SUPPORT_
RESOLUTION_R8_SUPERFINE
|
T4_
SUPPORT_
RESOLUTION_R16_SUPERFINE
|
T4_
SUPPORT_
RESOLUTION_200_100
|
T4_
SUPPORT_
RESOLUTION_200_200
|
T4_
SUPPORT_
RESOLUTION_200_400
|
T4_
SUPPORT_
RESOLUTION_300_300
|
T4_
SUPPORT_
RESOLUTION_300_600
|
T4_
SUPPORT_
RESOLUTION_400_400
|
T4_
SUPPORT_
RESOLUTION_400_800
|
T4_
SUPPORT_
RESOLUTION_600_600
|
T4_
SUPPORT_
RESOLUTION_600_1200
|
T4_
SUPPORT_
RESOLUTION_1200_1200
);
T4_RESOLUTION_R8_STANDARD
|
T4_RESOLUTION_R8_FINE
|
T4_RESOLUTION_R8_SUPERFINE
|
T4_RESOLUTION_R16_SUPERFINE
|
T4_RESOLUTION_200_100
|
T4_RESOLUTION_200_200
|
T4_RESOLUTION_200_400
|
T4_RESOLUTION_300_300
|
T4_RESOLUTION_300_600
|
T4_RESOLUTION_400_400
|
T4_RESOLUTION_400_800
|
T4_RESOLUTION_600_600
|
T4_RESOLUTION_600_1200
|
T4_RESOLUTION_1200_1200
);
t30_set_supported_colour_resolutions
(
t30
,
0
);
t30_set_supported_modems
(
t30
,
T30_SUPPORT_V27TER
|
T30_SUPPORT_V29
|
T30_SUPPORT_V17
);
t30_set_supported_compressions
(
t30
,
T4_
SUPPORT_COMPRESSION_T4_1D
|
T4_SUPPORT_COMPRESSION_T4_2D
|
T4_SUPPORT
_COMPRESSION_T6
);
t30_set_supported_compressions
(
t30
,
T4_
COMPRESSION_T4_1D
|
T4_COMPRESSION_T4_2D
|
T4
_COMPRESSION_T6
);
t30_set_phase_b_handler
(
t30
,
phase_b_handler
,
(
void
*
)
(
intptr_t
)
'A'
);
t30_set_phase_d_handler
(
t30
,
phase_d_handler
,
(
void
*
)
(
intptr_t
)
'A'
);
t30_set_phase_e_handler
(
t30
,
phase_e_handler
,
(
void
*
)
(
intptr_t
)
'A'
);
...
...
src/mod/applications/mod_spandsp/mod_spandsp_fax.c
浏览文件 @
3ae87091
...
...
@@ -879,14 +879,14 @@ static switch_status_t spanfax_init(pvt_t *pvt, transport_mode_t trans_mode)
T4_SUPPORT_LENGTH_US_LETTER
|
T4_SUPPORT_LENGTH_US_LEGAL
|
T4_SUPPORT_LENGTH_UNLIMITED
|
T4_SUPPORT_WIDTH_215MM
|
T4_SUPPORT_WIDTH_255MM
|
T4_SUPPORT_WIDTH_303MM
);
t30_set_supported_bilevel_resolutions
(
t30
,
T4_
SUPPORT_
RESOLUTION_R8_STANDARD
|
T4_
SUPPORT_
RESOLUTION_R8_FINE
|
T4_
SUPPORT_
RESOLUTION_R8_SUPERFINE
|
T4_
SUPPORT_
RESOLUTION_R16_SUPERFINE
|
T4_
SUPPORT_
RESOLUTION_200_100
|
T4_
SUPPORT_
RESOLUTION_200_200
|
T4_
SUPPORT_
RESOLUTION_200_400
|
T4_
SUPPORT_
RESOLUTION_400_400
);
T4_RESOLUTION_R8_STANDARD
|
T4_RESOLUTION_R8_FINE
|
T4_RESOLUTION_R8_SUPERFINE
|
T4_RESOLUTION_R16_SUPERFINE
|
T4_RESOLUTION_200_100
|
T4_RESOLUTION_200_200
|
T4_RESOLUTION_200_400
|
T4_RESOLUTION_400_400
);
t30_set_supported_colour_resolutions
(
t30
,
0
);
if
(
pvt
->
disable_v17
)
{
...
...
@@ -898,11 +898,11 @@ static switch_status_t spanfax_init(pvt_t *pvt, transport_mode_t trans_mode)
}
if
(
pvt
->
use_ecm
)
{
t30_set_supported_compressions
(
t30
,
T4_
SUPPORT_COMPRESSION_T4_1D
|
T4_SUPPORT_COMPRESSION_T4_2D
|
T4_SUPPORT_COMPRESSION_T6
|
T4_SUPPORT_COMPRESSION_T85
|
T4_SUPPORT
_COMPRESSION_T85_L0
);
t30_set_supported_compressions
(
t30
,
T4_
COMPRESSION_T4_1D
|
T4_COMPRESSION_T4_2D
|
T4_COMPRESSION_T6
|
T4_COMPRESSION_T85
|
T4
_COMPRESSION_T85_L0
);
t30_set_ecm_capability
(
t30
,
TRUE
);
switch_channel_set_variable
(
channel
,
"fax_ecm_requested"
,
"1"
);
}
else
{
t30_set_supported_compressions
(
t30
,
T4_
SUPPORT_COMPRESSION_T4_1D
|
T4_SUPPORT
_COMPRESSION_T4_2D
);
t30_set_supported_compressions
(
t30
,
T4_
COMPRESSION_T4_1D
|
T4
_COMPRESSION_T4_2D
);
switch_channel_set_variable
(
channel
,
"fax_ecm_requested"
,
"0"
);
}
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论