A codec is a computer hardware or software component 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,[5] 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.