1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-12-02 03:06:28 +02:00
FFmpeg/libavformat
vacingfang 1483cfa817 lavf/mov: support dvcC/dvvC box for DOVI
support dvcC/dvcC box from spec Dolby Vision Streams Within the
ISO Base MediaFile Format Version 2.1.2
(https://www.dolby.com/in/en/technologies/dolby-vision/dolby-vision\
-bitstreams-within-the-iso-base-media-file-format-v2.1.2.pdf)

export the DOVI information to sidedata.

Signed-off-by: vacingfang <vacingfang@tencent.com>
2020-04-23 08:05:46 +08:00
..
tests avformat/utils: make av_url_split search for hashmark as well to separate hostname 2020-02-15 18:41:36 +01:00
.gitignore
3dostr.c
4xm.c
a64.c
aacdec.c avformat: Remove unnecessary av_packet_unref() 2020-02-10 22:41:38 +01:00
aadec.c
ac3dec.c
acm.c
act.c
adp.c avformat: Remove unnecessary av_packet_unref() 2020-02-10 22:41:38 +01:00
ads.c
adtsenc.c
adxdec.c avformat: Remove unnecessary av_packet_unref() 2020-02-10 22:41:38 +01:00
aea.c
afc.c
aiff.h
aiffdec.c
aiffenc.c
aixdec.c
allformats.c avformat: add hca demuxer 2020-03-17 16:08:13 +01:00
alp.c avformat/alp: tweak probe function to return MAX-1 2020-03-09 13:41:12 +01:00
amr.c avformat/amr: Don't reimplement ff_raw_write_packet() 2020-04-14 18:52:44 +02:00
anm.c
apc.c
ape.c avformat: Remove unnecessary av_packet_unref() 2020-02-10 22:41:38 +01:00
apetag.c
apetag.h
apm.c avformat: add demuxer for Rayman 2's APM format 2020-02-21 14:47:29 +01:00
apngdec.c
apngenc.c
aptxdec.c
aqtitledec.c
argo_asf.c
asf.c
asf.h
asfcrypt.c
asfcrypt.h
asfdec_f.c avformat/asfdec_f: Fix overflow check in get_tag() 2020-03-21 20:55:27 +01:00
asfdec_o.c
asfenc.c
assdec.c
assenc.c
ast.c
ast.h
astdec.c
astenc.c
async.c
au.c
audiointerleave.c avformat/mux: Fix leak when adding packet to interleavement queue fails 2020-04-18 00:22:22 +02:00
audiointerleave.h avformat/audiointerleave: disallow using a samples_per_frame array 2020-03-14 22:25:25 +01:00
av1.c
av1.h
av1dec.c
avc.c
avc.h
avformat.h avformat/avformat.h: Correct some comments 2020-04-01 05:48:31 +02:00
avformatres.rc
avi.h
avidec.c avformat/avidec: Fix memleak with embedded GAB2 subtitles 2020-04-05 18:38:26 +02:00
avienc.c avformat/avienc: Use AV_STRINGIFY for compile time constant 2020-03-14 22:07:27 +01:00
avio_internal.h avformat/aviobuf: Add function to reset dynamic buffer 2020-03-30 05:50:49 +02:00
avio.c remove CHAR_MIN/CHAR_MAX usage 2020-03-17 22:46:36 +01:00
avio.h
aviobuf.c avformat/aviobuf: Add function to reset dynamic buffer 2020-03-30 05:50:49 +02:00
avisynth.c avformat/avisynth: fix deprecation warning 2020-04-05 01:23:46 +02:00
avlanguage.c
avlanguage.h
avr.c
avs.c avformat: Remove unnecessary av_packet_unref() 2020-02-10 22:41:38 +01:00
bethsoftvid.c avformat/bethsoftvid: Fix potential memleak upon reallocation failure 2020-03-22 13:00:19 +01:00
bfi.c
bink.c avformat/bink: properly mark packets that are key frames 2020-03-20 14:24:34 +01:00
bintext.c
bit.c
bluray.c
bmv.c
boadec.c
brstm.c avformat: Remove unnecessary av_packet_unref() 2020-02-10 22:41:38 +01:00
c93.c avformat: Remove unnecessary av_packet_unref() 2020-02-10 22:41:38 +01:00
cache.c
caf.c
caf.h
cafdec.c
cafenc.c
cavsvideodec.c
cdg.c
cdxl.c avformat: Remove unnecessary av_packet_unref() 2020-02-10 22:41:38 +01:00
chromaprint.c lavf/chromaprint: Silence compilation warnings 2020-04-05 22:47:21 +02:00
cinedec.c
codec2.c
concat.c
concatdec.c avformat: Remove unnecessary av_packet_unref() 2020-02-10 22:41:38 +01:00
crcenc.c
crypto.c
cutils.c
dash.c
dash.h
dashdec.c avformat/dashdec: add attribute lang for audio and subtitle streams 2020-04-15 12:45:23 +08:00
dashenc.c avformat/dashenc: add missing startWithSap attribute to AdaptationSet elements 2020-04-20 13:49:15 -03:00
data_uri.c
dauddec.c
daudenc.c
davs2.c
dcstr.c
derf.c avformat: add derf demuxer 2020-03-17 16:05:49 +01:00
dfa.c avformat: Remove unnecessary av_packet_unref() 2020-02-10 22:41:38 +01:00
dhav.c
diracdec.c
dnxhddec.c
dsfdec.c
dsicin.c avformat: Remove unnecessary av_packet_unref() 2020-02-10 22:41:38 +01:00
dss.c avformat/dss: Remove unnecessary allocation 2020-04-03 17:56:57 +02:00
dtsdec.c
dtshddec.c
dump.c API: add AV_PKT_DATA_ICC_PROFILE to AVPacketSideDataType 2020-03-10 15:10:06 +00:00
dv.c
dv.h
dvbsub.c
dvbtxt.c
dvenc.c
dxa.c avformat: Remove unnecessary av_packet_unref() 2020-02-10 22:41:38 +01:00
eacdata.c
electronicarts.c avformat: Remove unnecessary av_packet_unref() 2020-02-10 22:41:38 +01:00
epafdec.c
ffmeta.h
ffmetadec.c
ffmetaenc.c
fifo_test.c
fifo.c ffplay, avcodec, avformat: Don't initialize before av_packet_ref() 2020-03-28 04:17:20 +01:00
file_open.c
file.c
filmstripdec.c
filmstripenc.c avformat/filmstripenc: Use ff_raw_write_packet() 2020-04-14 19:01:27 +02:00
fitsdec.c avformat: Remove unnecessary av_packet_unref() 2020-02-10 22:41:38 +01:00
fitsenc.c
flac_picture.c
flac_picture.h
flacdec.c
flacenc_header.c
flacenc.c avformat/flacenc: Don't allocate updated streaminfo separately 2020-04-18 01:53:31 +02:00
flacenc.h
flic.c avformat: Remove unnecessary av_packet_unref() 2020-02-10 22:41:38 +01:00
flv.h
flvdec.c
flvenc.c
format.c
framecrcenc.c
framehash.c
frmdec.c
fsb.c
ftp.c avformat/ftp: slightly rework file retrieval with seeking 2020-02-15 18:41:36 +01:00
fwse.c avformat: add fwse demuxer 2020-03-17 16:04:42 +01:00
g722.c
g723_1.c avformat: Remove unnecessary av_packet_unref() 2020-02-10 22:41:38 +01:00
g726.c
g729dec.c
gdv.c avformat: Remove unnecessary av_packet_unref() 2020-02-10 22:41:38 +01:00
genh.c
gif.c
gifdec.c
golomb_tab.c
gopher.c
gsmdec.c avformat: Remove unnecessary av_packet_unref() 2020-02-10 22:41:38 +01:00
gxf.c
gxf.h
gxfenc.c avformat/audiointerleave: disallow using a samples_per_frame array 2020-03-14 22:25:25 +01:00
h261dec.c
h263dec.c
h264dec.c
hashenc.c
hca.c avformat: add hca demuxer 2020-03-17 16:08:13 +01:00
hcom.c
hdsenc.c
hevc.c
hevc.h
hevcdec.c
hls.c avformat/hls: Don't strdup non-null-terminated string 2020-03-24 21:22:15 +01:00
hlsenc.c avformat/hlsenc: add hls_fmp4_init_resend option 2020-04-15 12:45:16 +08:00
hlsplaylist.c avformat: add subtitle support in master playlist m3u8 2020-04-08 23:02:41 +08:00
hlsplaylist.h avformat: add subtitle support in master playlist m3u8 2020-04-08 23:02:41 +08:00
hlsproto.c
hnm.c avformat/hnm: Only keep and parse what is needed later 2020-04-02 21:22:52 +02:00
http.c avformat/http: escape unsafe URL path in HTTP request 2020-02-15 18:41:36 +01:00
http.h
httpauth.c avformat/httpauth: do not decode plus sign to space in credentials 2020-02-15 18:41:36 +01:00
httpauth.h
icecast.c
icodec.c avformat: Remove unnecessary av_packet_unref() 2020-02-10 22:41:38 +01:00
icoenc.c
id3v1.c
id3v1.h
id3v2.c
id3v2.h
id3v2enc.c
idcin.c avformat: Remove unnecessary av_packet_unref() 2020-02-10 22:41:38 +01:00
idroqdec.c avformat: Remove unnecessary av_packet_unref() 2020-02-10 22:41:38 +01:00
idroqenc.c
iff.c
ifv.c
ilbc.c avformat/ilbc: Add missing #if for muxer 2020-04-07 17:01:58 +02:00
img2_alias_pix.c
img2_brender_pix.c
img2.c
img2.h
img2dec.c avformat: Remove unnecessary av_packet_unref() 2020-02-10 22:41:38 +01:00
img2enc.c ffplay, avcodec, avformat: Don't initialize before av_packet_ref() 2020-03-28 04:17:20 +01:00
ingenientdec.c
internal.h libavformat/mux, mxfenc: Don't initialize unnecessarily 2020-04-18 01:24:56 +02:00
ip.c
ip.h
ipmovie.c
ircam.c
ircam.h
ircamdec.c
ircamenc.c
isom.c avcodec: add cdtoons decoder 2020-02-15 10:55:33 +01:00
isom.h libavformat/mov: fix multiple trun per traf 2020-04-11 18:15:58 +02:00
iss.c
iv8.c avformat: Remove unnecessary av_packet_unref() 2020-02-10 22:41:38 +01:00
ivfdec.c
ivfenc.c avformat/ivfenc: Don't use size_t for size of file 2020-02-28 19:40:05 +01:00
jacosubdec.c
jacosubenc.c
jvdec.c
kvag.c avformat: add demuxer for Simon & Schuster Interactive's VAG format 2020-02-06 17:26:22 +01:00
latmenc.c
libamqp.c avformat: Add AMQP version 0-9-1 protocol support 2020-03-09 22:07:17 +01:00
libavformat.v
libgme.c
libmodplug.c avformat: Remove unnecessary av_packet_unref() 2020-02-10 22:41:38 +01:00
libopenmpt.c
librtmp.c
libsmbclient.c
libsrt.c avformat/libsrt: make avformat connect timeout 0 by default 2020-02-24 00:13:38 +01:00
libssh.c
libzmq.c avformat/libzmq: Make default pkt_size value consistent with amqp 2020-03-09 22:07:18 +01:00
lmlm4.c
loasdec.c
log2_tab.c
lrc.c
lrc.h
lrcdec.c
lrcenc.c
lvfdec.c
lxfdec.c avformat: Remove unnecessary av_packet_unref() 2020-02-10 22:41:38 +01:00
m4vdec.c
Makefile avformat/filmstripenc: Use ff_raw_write_packet() 2020-04-14 19:01:27 +02:00
matroska.c avformat/matroska: Move mime_tag lists to matroskadec 2020-04-20 21:24:18 +02:00
matroska.h avformat/matroska: Move mime_tag lists to matroskadec 2020-04-20 21:24:18 +02:00
matroskadec.c avformat/matroska: Move mime_tag lists to matroskadec 2020-04-20 21:24:18 +02:00
matroskaenc.c avformat/matroskaenc: Use comparison instead of assignment 2020-04-22 03:45:44 +02:00
md5proto.c
metadata.c
metadata.h
mgsts.c
microdvddec.c
microdvdenc.c
mj2kdec.c
mkvtimestamp_v2.c
mlpdec.c
mlvdec.c
mm.c
mmf.c
mms.c
mms.h
mmsh.c
mmst.c
mov_chan.c
mov_chan.h
mov_esds.c
mov.c lavf/mov: support dvcC/dvvC box for DOVI 2020-04-23 08:05:46 +08:00
movenc.c avformat/movenc: cosmetics 2020-04-20 15:59:32 +00:00
movenc.h avformat/movenc: remove the write_clli mov flag 2020-04-13 10:37:45 -06:00
movenccenc.c
movenccenc.h
movenchint.c
mp3dec.c avformat/mp3dec: Count last partial frame in probe. 2020-02-28 19:40:05 +01:00
mp3enc.c
mpc8.c
mpc.c avformat/mpc: Simplify cleanup 2020-04-19 02:37:46 +02:00
mpeg.c avformat/mpeg: Don't use unintialized value 2020-04-09 15:16:20 +02:00
mpeg.h
mpegenc.c
mpegts.c lavf/mpegts: support DOVI Video Stream Descriptor 2020-04-23 08:05:33 +08:00
mpegts.h avformat/mpegtsenc: use standard pids for m2ts 2020-04-21 21:28:29 +02:00
mpegtsenc.c avformat/mpegtsenc: don't print warning for DVB text streams 2020-04-22 16:07:04 +05:30
mpegvideodec.c
mpjpeg.c
mpjpegdec.c avformat/mpjpegdec: Remove redundant initializations 2020-02-11 00:15:19 +01:00
mpl2dec.c
mpsubdec.c
msf.c
msnwc_tcp.c
mtaf.c
mtv.c
musx.c
mux.c libavformat/mux, mxfenc: Don't initialize unnecessarily 2020-04-18 01:24:56 +02:00
mvdec.c avformat/mvdec: Check stream numbers 2020-02-25 19:57:16 +01:00
mvi.c
mxf.c avformat/mxfenc: add some missing content package rates 2020-03-14 22:25:25 +01:00
mxf.h avformat/mxfenc: move content package rates and timebase combinations to a separate struct 2020-03-14 22:25:25 +01:00
mxfdec.c avformat/mxfdec: Correct confusing struct tag 2020-03-30 07:27:02 +02:00
mxfenc.c libavformat/mux, mxfenc: Don't initialize unnecessarily 2020-04-18 01:24:56 +02:00
mxg.c
ncdec.c avformat: Remove unnecessary av_packet_unref() 2020-02-10 22:41:38 +01:00
network.c
network.h
nistspheredec.c
nspdec.c
nsvdec.c avformat/nsvdec: Use av_packet_move_ref() for packet ownership transfer 2020-03-26 20:06:15 +01:00
nullenc.c
nut.c
nut.h
nutdec.c
nutenc.c avformat/nutenc: Drop redundant frees 2020-03-14 22:07:27 +01:00
nuv.c avformat: Remove unnecessary av_packet_unref() 2020-02-10 22:41:38 +01:00
oggdec.c avformat/oggdec: Check for EOF after page header 2020-04-12 16:36:47 +02:00
oggdec.h
oggenc.c avformat/oggenc: Don't free AVStream's priv_data, fix memleak 2020-04-20 18:43:53 +02:00
oggparsecelt.c
oggparsedaala.c
oggparsedirac.c
oggparseflac.c
oggparseogm.c
oggparseopus.c
oggparseskeleton.c
oggparsespeex.c
oggparsetheora.c
oggparsevorbis.c lavf/oggparsevorbis: Use case-insensitive key compare for vorbis picture 2020-04-11 12:56:21 +02:00
oggparsevp8.c
oma.c
oma.h
omadec.c
omaenc.c
options_table.h remove CHAR_MIN/CHAR_MAX usage 2020-03-17 22:46:36 +01:00
options.c
os_support.c
os_support.h
paf.c
pcm.c
pcm.h
pcmdec.c
pcmenc.c
pjsdec.c
pmpdec.c
prompeg.c
protocols.c avformat: Add AMQP version 0-9-1 protocol support 2020-03-09 22:07:17 +01:00
psxstr.c
pva.c
pvfdec.c
qcp.c
qtpalette.c
qtpalette.h
r3d.c
rawdec.c
rawdec.h
rawenc.c
rawenc.h
rawutils.c
rawvideodec.c
rdt.c
rdt.h
realtextdec.c
redspark.c avformat: Remove unnecessary av_packet_unref() 2020-02-10 22:41:38 +01:00
replaygain.c
replaygain.h
riff.c avcodec: add MV30 decoder 2020-04-10 12:22:09 +02:00
riff.h
riffdec.c avcodec: fix pcm zork decoder 2020-02-16 12:54:57 +01:00
riffenc.c
rl2.c avformat: Remove unnecessary av_packet_unref() 2020-02-10 22:41:38 +01:00
rm.c
rm.h
rmdec.c
rmenc.c
rmsipr.c
rmsipr.h
rpl.c avformat: Remove unnecessary av_packet_unref() 2020-02-10 22:41:38 +01:00
rsd.c
rso.c
rso.h
rsodec.c
rsoenc.c avformat/rso: Don't reimplement ff_raw_write_packet() 2020-04-14 18:57:59 +02:00
rtmp.h
rtmpcrypt.c
rtmpcrypt.h
rtmpdh.c
rtmpdh.h
rtmpdigest.c
rtmphttp.c
rtmppkt.c
rtmppkt.h
rtmpproto.c
rtp.c
rtp.h
rtpdec_ac3.c
rtpdec_amr.c
rtpdec_asf.c
rtpdec_dv.c
rtpdec_formats.h
rtpdec_g726.c
rtpdec_h261.c
rtpdec_h263_rfc2190.c
rtpdec_h263.c
rtpdec_h264.c
rtpdec_hevc.c
rtpdec_ilbc.c
rtpdec_jpeg.c
rtpdec_latm.c
rtpdec_mpa_robust.c
rtpdec_mpeg4.c
rtpdec_mpeg12.c
rtpdec_mpegts.c
rtpdec_qcelp.c
rtpdec_qdm2.c
rtpdec_qt.c
rtpdec_rfc4175.c
rtpdec_svq3.c
rtpdec_vc2hq.c
rtpdec_vp8.c
rtpdec_vp9.c
rtpdec_xiph.c
rtpdec.c
rtpdec.h
rtpenc_aac.c
rtpenc_amr.c
rtpenc_chain.c
rtpenc_chain.h
rtpenc_h261.c
rtpenc_h263_rfc2190.c
rtpenc_h263.c
rtpenc_h264_hevc.c
rtpenc_jpeg.c
rtpenc_latm.c
rtpenc_mpegts.c
rtpenc_mpv.c
rtpenc_vc2hq.c
rtpenc_vp8.c
rtpenc_vp9.c
rtpenc_xiph.c
rtpenc.c
rtpenc.h
rtpproto.c
rtpproto.h
rtsp.c avformat/rtsp: Put strings instead of pointers to strings into array 2020-04-20 18:21:39 +02:00
rtsp.h
rtspcodes.h
rtspdec.c
rtspenc.c
s337m.c avformat: Remove unnecessary av_packet_unref() 2020-02-10 22:41:38 +01:00
samidec.c
sapdec.c avformat: Remove unnecessary av_packet_unref() 2020-02-10 22:41:38 +01:00
sapenc.c
sauce.c
sauce.h
sbcdec.c
sbgdec.c
sccdec.c avformat/sccdec: use av_sscanf() instead 2020-02-04 20:39:46 +01:00
sccenc.c
sctp.c
sdp.c
sdr2.c avformat: Remove unnecessary av_packet_unref() 2020-02-10 22:41:38 +01:00
sdsdec.c
sdxdec.c
segafilm.c
segafilmenc.c avformat/segafilmenc: Add deinit function 2020-02-25 19:57:16 +01:00
segment.c avformat/segment: always use interleaved writes for formats with custom interleaving 2020-04-08 21:57:57 +02:00
serdec.c
shortendec.c
sierravmd.c avformat: Remove unnecessary av_packet_unref() 2020-02-10 22:41:38 +01:00
siff.c avformat: Remove unnecessary av_packet_unref() 2020-02-10 22:41:38 +01:00
smacker.c avformat/smacker: Cosmetics 2020-04-08 16:23:07 +02:00
smjpeg.c
smjpeg.h
smjpegdec.c
smjpegenc.c
smoothstreamingenc.c avformat/smoothstreaming: Fix memleaks on errors 2020-03-14 22:07:27 +01:00
smush.c
sol.c
sox.h
soxdec.c
soxenc.c
spdif.c
spdif.h
spdifdec.c avformat: Remove unnecessary av_packet_unref() 2020-02-10 22:41:38 +01:00
spdifenc.c avformat/spdifenc: fix TrueHD streams over 48kHz 2020-02-20 23:04:50 +02:00
srtdec.c
srtenc.c
srtp.c
srtp.h
srtpproto.c
stldec.c
subfile.c
subtitles.c avformat/subtitles: Don't increment packet counter prematurely 2020-03-22 13:00:19 +01:00
subtitles.h
subviewer1dec.c
subviewerdec.c lavf/subviewerdec: Support higher sub-second precision. 2020-03-21 18:46:36 +01:00
supdec.c
supenc.c
svag.c
swf.c
swf.h
swfdec.c avformat: Remove unnecessary av_packet_unref() 2020-02-10 22:41:38 +01:00
swfenc.c
takdec.c
tcp.c
tedcaptionsdec.c
tee_common.c
tee_common.h
tee.c ffplay, avcodec, avformat: Don't initialize before av_packet_ref() 2020-03-28 04:17:20 +01:00
teeproto.c
thp.c avformat: Remove unnecessary av_packet_unref() 2020-02-10 22:41:38 +01:00
tiertexseq.c
tls_gnutls.c lavf/tls_gnutls: check for interrupt inside handshake loop 2020-04-21 21:14:26 +03:00
tls_libtls.c
tls_mbedtls.c lavf/tls_mbedtls: fix resource leak 2020-04-22 12:41:29 +08:00
tls_openssl.c
tls_schannel.c
tls_securetransport.c
tls.c
tls.h
tmv.c
tta.c
ttaenc.c
tty.c lavf/tty: Reduce probe score to fix ffmetadata auto-detection. 2020-03-14 15:38:34 +01:00
txd.c
ty.c
udp.c avformat/udp: support w32pthreads compat 2020-03-08 19:08:04 +01:00
uncodedframecrcenc.c
unix.c
url.c
url.h
urldecode.c avformat/urldecode: add the ability to not decode plus sign to space 2020-02-15 18:41:36 +01:00
urldecode.h avformat/urldecode: add the ability to not decode plus sign to space 2020-02-15 18:41:36 +01:00
utils.c avformat/utils: Fix memleak when decoding subtitle in find_stream_info 2020-04-20 18:35:00 +02:00
v210.c
vag.c
vapoursynth.c
vc1dec.c
vc1test.c
vc1testenc.c
version.h avformat/dashenc: add a PlaybackRate element 2020-04-20 13:49:15 -03:00
vividas.c
vivo.c avformat/vivo: set packet duration 2020-02-20 14:41:26 +01:00
voc_packet.c
voc.c
voc.h
vocdec.c
vocenc.c
vorbiscomment.c
vorbiscomment.h
vpcc.c
vpcc.h
vpk.c avformat/vpk: add seeking support 2020-03-12 18:47:39 +01:00
vplayerdec.c
vqf.c avformat: Remove unnecessary av_packet_unref() 2020-02-10 22:41:38 +01:00
w64.c
w64.h
wavdec.c
wavenc.c
wc3movie.c
webm_chunk.c avformat/Makefile: Remove false dependencies of WebM and Matroska muxer 2020-04-14 18:43:44 +02:00
webmdashenc.c avformat/Makefile: Remove false dependencies of WebM and Matroska muxer 2020-04-14 18:43:44 +02:00
webpenc.c
webvttdec.c
webvttenc.c
westwood_aud.c
westwood_vqa.c
wsddec.c
wtv_common.c
wtv.h
wtvdec.c avformat/wtvdec: Forward errors when reading packet 2020-02-19 22:37:30 +01:00
wtvenc.c
wv.c
wv.h
wvdec.c avformat/wvdec: Export version as extradata 2020-04-02 07:17:34 +02:00
wvedec.c
wvenc.c
xa.c
xmv.c
xvag.c
xwma.c avformat/xwma: return always proper error codes 2020-03-19 10:58:07 +01:00
yop.c avformat/yop: Use av_packet_move_ref() for packet ownership transfer 2020-03-26 20:51:34 +01:00
yuv4mpeg.h
yuv4mpegdec.c avformat/yuv4mpegdec: add support for 444alpha 2020-03-19 17:34:31 +01:00
yuv4mpegenc.c