A codec is a device or computer program that encodes or decodes a data stream or signal.[1][2][3] Codec is a portmanteau of coder/decoder.[4]

In electronic communications, an endec is a device that acts as both an encoder and a decoder on a signal or data stream,[citation needed] and hence is a type of codec. Endec is a portmanteau of encoder/decoder.

A coder or encoder encodes a data stream or a signal for transmission or storage, possibly in encrypted form, and the decoder function reverses the encoding for playback or editing. Codecs are used in videoconferencing, streaming media, and video editing applications.