code: def close(self):
          
          if hasattr(self, 'proc'):
              # First check the process's execution status before attempting to
              # kill it. This fixes an issue on Windows Subsystem for Linux where
              # ffmpeg closes normally on its own, but never updates
              # `returncode`.
              self.proc.poll()
  
              # Kill the process if it is still running.
              if self.proc.returncode is None:
                  self.proc.kill()
                  self.proc.wait()
  
              # Wait for the stream-reading threads to exit. (They need to
              # stop reading before we can close the streams.)
              if hasattr(self, 'stderr_reader'):
                  self.stderr_reader.join()
              if hasattr(self, 'stdout_reader'):
                  self.stdout_reader.join()
  
              # Close the stdout and stderr streams that were opened by Popen,
              # which should occur regardless of if the process terminated
              # cleanly.
              self.proc.stdout.close()
              self.proc.stderr.close()
  
          # Close the handle to os.devnull, which is opened regardless of if
          # a subprocess is successfully created.
          self.devnull.close()
docs: Close the ffmpeg process used to perform the decoding.