(self, initlength)
| 618 | self._write_header(datasize) |
| 619 | |
| 620 | def _write_header(self, initlength): |
| 621 | assert not self._headerwritten |
| 622 | self._file.write(b'RIFF') |
| 623 | if not self._nframes: |
| 624 | self._nframes = initlength // (self._nchannels * self._sampwidth) |
| 625 | self._datalength = self._nframes * self._nchannels * self._sampwidth |
| 626 | try: |
| 627 | self._form_length_pos = self._file.tell() |
| 628 | except (AttributeError, OSError): |
| 629 | self._form_length_pos = None |
| 630 | self._file.write(struct.pack('<L4s4sLHHLLHH4s', |
| 631 | 36 + self._datalength, b'WAVE', b'fmt ', 16, |
| 632 | WAVE_FORMAT_PCM, self._nchannels, self._framerate, |
| 633 | self._nchannels * self._framerate * self._sampwidth, |
| 634 | self._nchannels * self._sampwidth, |
| 635 | self._sampwidth * 8, b'data')) |
| 636 | if self._form_length_pos is not None: |
| 637 | self._data_length_pos = self._file.tell() |
| 638 | self._file.write(struct.pack('<L', self._datalength)) |
| 639 | self._headerwritten = True |
| 640 | |
| 641 | def _patchheader(self): |
| 642 | assert self._headerwritten |
no test coverage detected