def read_frame(self):
<EOL>_temp = self._read_unpack(<NUM_LIT:4>, lilendian=True, quiet=True)<EOL>if _temp is None:<EOL><INDENT>raise EOFError<EOL><DEDENT>_tsss = _temp<EOL>_tsus = self._read_unpack(<NUM_LIT:4>, lilendian=True)<EOL>_ilen = self._read_unpack(<NUM_LIT:4>, lilendian=True)<EOL>_olen = self._read_unpack(<NUM_LIT:4>, lilendian=True)<EOL>if self._nsec:<EOL><INDENT>_epch = _tsss + _tsus / <NUM_LIT><EOL><DEDENT>else:<EOL><INDENT>_epch = _tsss + _tsus / <NUM_LIT><EOL><DEDENT>_time = datetime.datetime.fromtimestamp(_epch)<EOL>frame = dict(<EOL>frame_info=dict(<EOL>ts_sec=_tsss,<EOL>ts_usec=_tsus,<EOL>incl_len=_ilen,<EOL>orig_len=_olen,<EOL>),<EOL>time=_time,<EOL>number=self._fnum,<EOL>time_epoch=_epch,<EOL>len=_ilen,<EOL>cap_len=_olen,<EOL>)<EOL>length = frame['<STR_LIT>']<EOL>bytes_ = self._file.read(length)<EOL>if self._mpkt and self._mpfp:<EOL><INDENT>self._mpfp.put(self._file.tell())<EOL>self._mpkt.pool += <NUM_LIT:1><EOL><DEDENT>frame['<STR_LIT>'] = bytes_<EOL>self._file = io.BytesIO(bytes_)<EOL>return self._decode_next_layer(frame, length)<EOL>
Read each block after global header.

        Structure of record/package header (C):
            typedef struct pcaprec_hdr_s {
                guint32 ts_sec;     /* timestamp seconds */
                guint32 ts_usec;    /* timestamp microseconds */
                guint32 incl_len;   /* number of octets of packet saved in file */
                guint32 orig_len;   /* actual length of packet */
            } pcaprec_hdr_t;