# 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.