Improve disk writes for wav49 format
authorMatthew Jordan <mjordan@digium.com>
Thu, 8 Aug 2013 18:40:15 +0000 (18:40 +0000)
committerMatthew Jordan <mjordan@digium.com>
Thu, 8 Aug 2013 18:40:15 +0000 (18:40 +0000)
commit16fd65bb73b3cac8df5fc3fe9836b34bfd1fd541
tree85da2a702aceb401df89a9f196a18e4ba7bd5d19
parent73b3c70a5fbd3665e428f26b64b0549c890e1955
Improve disk writes for wav49 format

Writing to a file in the wav49 format performs rather inefficiently. The
procedure is approximately:
 (1) Write GSM frame to the end of the file
 (2) Seek to the end of the file
 (3) Seek to the header
 (4) Update the file size
 (5) Seek (again) to the end of the file
 (6) Repeat

This pattern negates any attempt to use the stdio buffering setup in
ast_writefile. It also results in many small writes that require a seek going
to the disk each second which translates to poor disk performance on certain
file systems, particularly when there are multiple wav49 files being written
simultaneously.

(closes issue ASTERISK-19595)
Reported by: Byron Clark
Tested by: Byron Clark
patches:
  gsm_wav_only_update_header_on_close.patch uploaded by byronclark (License 6157)

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@396412 65c4cc65-6c06-0410-ace0-fbb531ad65f3
formats/format_wav_gsm.c