def _parse_this_box(self, fptr, box_id, start, num_bytes):
try:<EOL><INDENT>parser = _BOX_WITH_ID[box_id].parse<EOL><DEDENT>except KeyError:<EOL><INDENT>msg = ('<STR_LIT>'<EOL>'<STR_LIT>')<EOL>msg = msg.format(box_id=box_id, offset=fptr.tell() - <NUM_LIT:8>)<EOL>warnings.warn(msg, UserWarning)<EOL>box = UnknownBox(box_id, offset=start, length=num_bytes,<EOL>longname='<STR_LIT>')<EOL>return box<EOL><DEDENT>try:<EOL><INDENT>box = parser(fptr, start, num_bytes)<EOL><DEDENT>except ValueError as err:<EOL><INDENT>msg = ("<STR_LIT>"<EOL>"<STR_LIT>"<EOL>"<STR_LIT>")<EOL>msg = msg.format(box_id=_BOX_WITH_ID[box_id].longname,<EOL>offset=start,<EOL>original_error_message=str(err))<EOL>warnings.warn(msg, UserWarning)<EOL>box = UnknownBox(box_id.decode('<STR_LIT:utf-8>'),<EOL>length=num_bytes,<EOL>offset=start, longname='<STR_LIT>')<EOL><DEDENT>return box<EOL>
Parse the current box.

        Parameters
        ----------
        fptr : file
            Open file object, currently points to start of box payload, not the
            start of the box.
        box_id : str
            4-letter identifier for the current box.
        start, num_bytes : int
            Byte offset and length of the current box.

        Returns
        -------
        Jp2kBox
            Object corresponding to the current box.