# Io Reference

Video / AVCodec / AVCodec

|  | An object for encoding and decoding audio and video streams. When an input stream containing audio data is opened, the following slots will be set:
    audioChannels
    audioSampleRate
    audioBitRate
    audioDuration
    audioFrameCount
When an input stream containing video data is opened, the following slots will be set:
    framePeriod
    videoDuration
    videoFrameCount
|  | audioInputBuffer Returns the input buffer. audioOutputBuffer Returns the output buffer. close Closes the input file if it's open. Returns self. codecName Returns name of audio or video codec. decode Decodes the next chunk of input data. Output (if any) is placed in the outputBuffers. Returns self. decodeCodecNames Returns a list of strings with the names of the decode codecs. didProcess Called after the receiver processes some more of the input buffer. encodeCodecNames Returns a list of strings with the names of the encode codecs. inputCoro Returns coroutine currently writing to the receiver. internalCoro Returns coroutine used for the AVCodec to process data. isAtEnd Returns true if the stream is at its end, false otherwise. open Opens the input file. Return self on success or raises an exception on error. path Returns path to file the receiver is reading from or writing to. setCodecName(aSeq) Sets the codec name. Returns self. See: encodeCodecNames and decodeCodecNames setInputCoro(aCoro) Private method for setting inputCoro. Returns self. setInternalCoro(aCoro) Private method for setting internalCoro. Returns self. setPath(aSeq) Sets the path to file the receiver is reading or writing to. Returns self. setStreamDestination(anObject) Sets the streamDestination to anObject. The didProcess method will call:
    if(streamDestination, streamDestination write(outputBuffer))
    outputBuffer empty
streamDestination Returns the streamDestination. videoCodecName Returns the name of the video codec. willProcess Called before the receiver will process more of the input buffer. If inputBuffer is empty, it pauses the receiver's coro. write(aSequence) Appends aSequence to the input buffer and resumes the receiver's coroutine in order to process it. The calling coroutine (inputCoroutine) will be scheduled to resume when didProcess is called.