(self)
| 470 | self._write_header() |
| 471 | |
| 472 | def _write_header(self): |
| 473 | if self._comptype == 'NONE': |
| 474 | if self._sampwidth == 1: |
| 475 | encoding = AUDIO_FILE_ENCODING_LINEAR_8 |
| 476 | self._framesize = 1 |
| 477 | elif self._sampwidth == 2: |
| 478 | encoding = AUDIO_FILE_ENCODING_LINEAR_16 |
| 479 | self._framesize = 2 |
| 480 | elif self._sampwidth == 3: |
| 481 | encoding = AUDIO_FILE_ENCODING_LINEAR_24 |
| 482 | self._framesize = 3 |
| 483 | elif self._sampwidth == 4: |
| 484 | encoding = AUDIO_FILE_ENCODING_LINEAR_32 |
| 485 | self._framesize = 4 |
| 486 | else: |
| 487 | raise Error('internal error') |
| 488 | elif self._comptype == 'ULAW': |
| 489 | encoding = AUDIO_FILE_ENCODING_MULAW_8 |
| 490 | self._framesize = 1 |
| 491 | else: |
| 492 | raise Error('internal error') |
| 493 | self._framesize = self._framesize * self._nchannels |
| 494 | _write_u32(self._file, AUDIO_FILE_MAGIC) |
| 495 | header_size = 25 + len(self._info) |
| 496 | header_size = (header_size + 7) & ~7 |
| 497 | _write_u32(self._file, header_size) |
| 498 | if self._nframes == AUDIO_UNKNOWN_SIZE: |
| 499 | length = AUDIO_UNKNOWN_SIZE |
| 500 | else: |
| 501 | length = self._nframes * self._framesize |
| 502 | try: |
| 503 | self._form_length_pos = self._file.tell() |
| 504 | except (AttributeError, OSError): |
| 505 | self._form_length_pos = None |
| 506 | _write_u32(self._file, length) |
| 507 | self._datalength = length |
| 508 | _write_u32(self._file, encoding) |
| 509 | _write_u32(self._file, self._framerate) |
| 510 | _write_u32(self._file, self._nchannels) |
| 511 | self._file.write(self._info) |
| 512 | self._file.write(b'\0'*(header_size - len(self._info) - 24)) |
| 513 | |
| 514 | def _patchheader(self): |
| 515 | if self._form_length_pos is None: |
no test coverage detected