1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2025-01-13 21:28:01 +02:00
FFmpeg/libavformat
Timo Teräs 9af71b326f avformat/movenc: support writing iTunes cover image
Fixes https://trac.ffmpeg.org/ticket/2798

This makes movenc handle AV_DISPOSITION_ATTACHED_PIC and write
the associated pictures in iTunes cover atom. This corresponds
to how 'mov' demuxer parses and exposes the cover images when
reading.

Most of the existing track handling loops properly ignore
these 'virtual streams' as MOVTrack->entry is never incremented
for them. However, additional tests are added as needed to ignore
them.

Tested to produce valid output with:
  ffmpeg -i movie.mp4 -i thumb.jpg -disposition✌️1 attached_pic \
         -map 0 -map 1 -c copy movie-with-cover.mp4

The cover image is also copied correctly with:
  ffmpeg -i movie-with-cover.mp4 -map 0 -c copy out.mp4

AtomicParseley says that the attached_pic stream is properly
not visible in the main tracks of the file.

Signed-off-by: Timo Teräs <timo.teras@iki.fi>
2018-04-17 20:11:34 +01:00
..
tests lav*,tests: remove several register_all calls 2018-04-02 03:26:22 +01:00
.gitignore lavf: add new API for iterating muxers and demuxers 2018-02-06 18:57:42 +00:00
3dostr.c
4xm.c
a64.c
aacdec.c libavformat/aac: Parse all ID3 tags present between ADTS frames 2018-04-12 02:54:14 +02:00
aadec.c
ac3dec.c
acm.c
act.c
adp.c
ads.c
adtsenc.c avformat/adtsenc: allow only AAC streams 2018-01-14 09:57:51 -03:00
adxdec.c
aea.c
afc.c
aiff.h
aiffdec.c
aiffenc.c
aixdec.c
allformats.c Add Sega FILM muxer 2018-04-05 22:04:30 +01:00
amr.c lavf/amr: Stricter heuristic for auto-detection. 2018-04-06 00:21:22 +02:00
anm.c
apc.c
ape.c
apetag.c
apetag.h
apngdec.c
apngenc.c
aptxdec.c lavf/aptxdec: fix the limit on the APTX demuxer definition 2018-02-10 18:20:18 +02:00
aqtitledec.c
asf.c
asf.h
asfcrypt.c
asfcrypt.h
asfdec_f.c
asfdec_o.c
asfenc.c
assdec.c
assenc.c
ast.c
ast.h
astdec.c
astenc.c
async.c
au.c
audiointerleave.c
audiointerleave.h
avc.c
avc.h
avformat.h lavf: move avpriv function definition to internal.h 2018-04-02 02:16:14 +01:00
avformatres.rc
avi.h
avidec.c avformat/avidec: Fix integer overflow in cum_len check 2018-03-10 02:44:45 +01:00
avienc.c
avio_internal.h
avio.c
avio.h
aviobuf.c lavf/aviobuf: add ff_get_chomp_line 2018-04-12 16:04:58 +08:00
avisynth.c
avlanguage.c
avlanguage.h
avr.c
avs.c
bethsoftvid.c
bfi.c
bink.c
bintext.c avformat/bintext: Implement bin_probe() 2018-02-06 23:07:10 +01:00
bit.c
bluray.c
bmv.c
boadec.c
brstm.c
c93.c
cache.c
caf.c
caf.h
cafdec.c
cafenc.c
cavsvideodec.c
cdg.c
cdxl.c
chromaprint.c
cinedec.c
codec2.c Add muxer/demuxer for raw codec2 and .c2 files 2018-02-24 17:06:31 +01:00
concat.c
concatdec.c avformat/concatdec: only set output stream index before returning packet 2018-04-02 20:41:53 +02:00
crcenc.c
crypto.c
cutils.c
dash.c
dash.h
dashdec.c libavformat/dashdec: Avoid multiple HTTP requests for initialization segment that is common among all representations 2018-04-17 14:36:45 +08:00
dashenc.c avformat/dashenc: addition of segment index correction logic 2018-04-17 14:35:40 +05:30
data_uri.c
dauddec.c
daudenc.c
dcstr.c
dfa.c
diracdec.c
dnxhddec.c
dsfdec.c
dsicin.c
dss.c
dtsdec.c
dtshddec.c
dump.c avformat/mpegts: set AV_DISPOSITION_DEPENDENT for mix_type=0 supplementary audio 2018-02-23 13:47:29 -08:00
dv.c
dv.h
dvbsub.c
dvbtxt.c
dvenc.c
dxa.c
eacdata.c
electronicarts.c
epafdec.c
ffmeta.h
ffmetadec.c
ffmetaenc.c
fifo_test.c avformat/fifo_test: remove network.h include 2018-02-07 00:30:00 -03:00
fifo.c avformat: migrate to AVFormatContext->url 2018-01-28 23:06:43 +01:00
file_open.c
file.c
filmstripdec.c
filmstripenc.c
fitsdec.c
fitsenc.c
flac_picture.c
flac_picture.h
flacdec.c
flacenc_header.c
flacenc.c avformat/flacenc: add flac_init() 2018-04-16 13:46:10 -03:00
flacenc.h
flic.c
flv.h
flvdec.c avformat/flvdec: Set broken_sizes for FlixEngine. 2018-02-23 01:53:34 +01:00
flvenc.c avformat: migrate to AVFormatContext->url 2018-01-28 23:06:43 +01:00
format.c lavf/format: use const AVInputFormat for iteration 2018-04-02 03:26:22 +01:00
framecrcenc.c
framehash.c
frmdec.c
fsb.c
ftp.c
g722.c
g723_1.c
g726.c
g729dec.c
gdv.c
genh.c
gif.c
gifdec.c
golomb_tab.c
gopher.c
gsmdec.c
gxf.c
gxf.h
gxfenc.c avformat: migrate to AVFormatContext->url 2018-01-28 23:06:43 +01:00
h261dec.c
h263dec.c
h264dec.c
hashenc.c
hdsenc.c avformat: migrate to AVFormatContext->url 2018-01-28 23:06:43 +01:00
hevc.c avformat/hvcc: zero initialize the nal buffers past the last written byte 2018-02-24 00:30:28 -03:00
hevc.h
hevcdec.c
hls.c avformat/hls: clean up duplicate option fields 2018-04-17 14:40:06 +08:00
hlsenc.c avformat/hlsenc: avformat/hlsenc: add error message for encrypt fmp4 mode 2018-04-16 14:35:14 +08:00
hlsplaylist.c avformat/hlsenc: closed caption tags in the master playlist 2018-01-24 11:42:57 +08:00
hlsplaylist.h avformat/hlsenc: closed caption tags in the master playlist 2018-01-24 11:42:57 +08:00
hlsproto.c lavf/hlsproto: use ff_get_chomp_line 2018-04-12 16:04:58 +08:00
hnm.c
http.c http: fix potentially dangerous whitespace skipping code 2018-03-18 12:36:24 +01:00
http.h
httpauth.c
httpauth.h
icecast.c
icodec.c
icoenc.c
id3v1.c
id3v1.h
id3v2.c id3v2: fix unsynchronization 2018-02-04 15:19:41 +01:00
id3v2.h avformat: add option to parse/store ID3 PRIV tags in metadata. 2018-01-24 04:01:01 +01:00
id3v2enc.c avformat: add option to parse/store ID3 PRIV tags in metadata. 2018-01-24 04:01:01 +01:00
idcin.c
idroqdec.c
idroqenc.c
iff.c
ilbc.c
img2_alias_pix.c
img2_brender_pix.c
img2.c
img2.h
img2dec.c lavf/img2dec: use new iteration API 2018-04-02 03:26:22 +01:00
img2enc.c avformat: migrate to AVFormatContext->url 2018-01-28 23:06:43 +01:00
ingenientdec.c
internal.h lavf/aviobuf: add ff_get_chomp_line 2018-04-12 16:04:58 +08:00
ipmovie.c
ircam.c
ircam.h
ircamdec.c
ircamenc.c
isom.c avformat/isom: don't free extradata before calling ff_get_extradata() 2018-03-06 23:41:32 -03:00
isom.h lavf/mov.c: Use the correct offset to shift timestamp when seeking. 2018-03-10 17:55:50 +01:00
iss.c
iv8.c
ivfdec.c
ivfenc.c Merge commit '44a1731011e87fbf4180d026aefb8bfe85d8c7dc' 2018-03-28 15:46:59 -03:00
jacosubdec.c
jacosubenc.c
jvdec.c
latmenc.c
libavformat.v
libgme.c
libmodplug.c
libopenmpt.c avformat/libopenmpt: Probe file format from file data if possible 2018-03-20 22:59:40 +01:00
librtmp.c
libsmbclient.c
libsrt.c Merge commit 'a2fc8dbae85339d1b418d296f2982b6c04c53c57' 2018-03-29 21:56:19 -03:00
libssh.c
lmlm4.c
loasdec.c
log2_tab.c
lrc.c
lrc.h
lrcdec.c avformat/lrcdec: Fix memory leak in lrc_read_header() 2018-01-20 21:32:04 +01:00
lrcenc.c
lvfdec.c
lxfdec.c
m4vdec.c
Makefile Add Sega FILM muxer 2018-04-05 22:04:30 +01:00
matroska.c
matroska.h
matroskadec.c avformat/matroskadec: reference the existing data buffer when creating packets 2018-04-06 21:14:50 -03:00
matroskaenc.c lavf/matroskaenc: Force the minimum value for -reserve_index_space to 2. 2018-02-12 22:50:52 +01:00
md5proto.c
metadata.c
metadata.h
mgsts.c
microdvddec.c
microdvdenc.c
mj2kdec.c
mkvtimestamp_v2.c
mlpdec.c
mlvdec.c avformat: migrate to AVFormatContext->url 2018-01-28 23:06:43 +01:00
mm.c
mmf.c
mms.c
mms.h
mmsh.c
mmst.c
mov_chan.c
mov_chan.h
mov_esds.c
mov.c avformat/mov: Fix extradata memleak 2018-04-12 23:52:59 +02:00
movenc.c avformat/movenc: support writing iTunes cover image 2018-04-17 20:11:34 +01:00
movenc.h avformat/movenc: support writing iTunes cover image 2018-04-17 20:11:34 +01:00
movenccenc.c
movenccenc.h
movenchint.c
mp3dec.c
mp3enc.c avformat/mp3enc: use AVPacketList helper functions to queue packets 2018-04-04 00:15:39 -03:00
mpc8.c avformat/mpc8: do not return error on stream end 2018-03-29 20:46:36 +02:00
mpc.c
mpeg.c avformat/mpeg: add missing check 2018-04-01 21:08:16 +02:00
mpeg.h
mpegenc.c avformat/mpegenc - log error msgs for unsupported LPCM streams 2018-02-22 00:29:27 +01:00
mpegts.c avformat/mpegts: set AV_DISPOSITION_DEPENDENT for mix_type=0 supplementary audio 2018-02-23 13:47:29 -08:00
mpegts.h
mpegtsenc.c avformat: migrate to AVFormatContext->url 2018-01-28 23:06:43 +01:00
mpegvideodec.c
mpjpeg.c
mpjpegdec.c
mpl2dec.c
mpsubdec.c
msf.c
msnwc_tcp.c
mtaf.c
mtv.c
musx.c
mux.c avformat: deprecate AVFormatContext filename field 2018-01-28 23:06:43 +01:00
mvdec.c
mvi.c
mxf.c
mxf.h
mxfdec.c avformat/mxfdec: do not allow more partitions than INT_MAX/2 2018-03-09 20:37:49 +01:00
mxfenc.c
mxg.c avformat/mxg: return reference counted packets 2018-03-02 12:26:09 -03:00
ncdec.c
network.c avformat: make avformat_network_init() explicitly optional 2018-01-16 12:57:04 +01:00
network.h avformat: make avformat_network_init() explicitly optional 2018-01-16 12:57:04 +01:00
nistspheredec.c
nspdec.c
nsvdec.c
nullenc.c
nut.c
nut.h
nutdec.c
nutenc.c
nuv.c
oggdec.c avformat/oggdec: Fix metadata memleak on multiple headers 2018-03-07 20:37:33 +01:00
oggdec.h
oggenc.c
oggparsecelt.c
oggparsedaala.c avformat/oggparsedaala: Do not adjust AV_NOPTS_VALUE 2018-03-10 02:44:45 +01:00
oggparsedirac.c
oggparseflac.c
oggparseogm.c avformat/oggparseogm: Check lb against psize 2018-03-10 02:44:45 +01:00
oggparseopus.c
oggparseskeleton.c
oggparsespeex.c
oggparsetheora.c avformat/oggparsetheora: Do not adjust AV_NOPTS_VALUE 2018-03-10 02:44:45 +01:00
oggparsevorbis.c libavformat/oggparsevorbis: Fix memleak on multiple headers 2018-03-07 20:37:33 +01:00
oggparsevp8.c
oma.c
oma.h
omadec.c
omaenc.c
options_table.h avformat/options_table: Change the seek2any location in opt table. 2018-04-02 23:27:51 +02:00
options.c avformat: migrate to AVFormatContext->url 2018-01-28 23:06:43 +01:00
os_support.c
os_support.h
paf.c
pcm.c avformat/pcm: decrease delay when reading PCM streams. 2018-03-13 01:34:42 +01:00
pcm.h
pcmdec.c
pcmenc.c
pjsdec.c
pmpdec.c
prompeg.c
protocols.c Merge commit 'a2fc8dbae85339d1b418d296f2982b6c04c53c57' 2018-03-29 21:56:19 -03:00
psxstr.c
pva.c
pvfdec.c
qcp.c
qtpalette.c
qtpalette.h
r3d.c
rawdec.c lavf/rawdec: Also probe the last byte of mjpeg streams. 2018-01-21 03:46:40 +01:00
rawdec.h
rawenc.c sbc: add raw muxer for SBC 2018-03-07 22:26:53 +01:00
rawenc.h
rawutils.c
rawvideodec.c
rdt.c lavf/rtpdec: Constify several pointers. 2018-02-11 20:03:33 +01:00
rdt.h lavf/rtpdec: Constify several pointers. 2018-02-11 20:03:33 +01:00
realtextdec.c
redspark.c
replaygain.c
replaygain.h
riff.c
riff.h
riffdec.c
riffenc.c
rl2.c
rm.c
rm.h
rmdec.c avformat/rmdec: make use of avio_get_str() 2018-04-02 22:44:26 +02:00
rmenc.c
rmsipr.c
rmsipr.h
rpl.c
rsd.c
rso.c
rso.h
rsodec.c
rsoenc.c
rtmp.h
rtmpcrypt.c
rtmpcrypt.h
rtmpdh.c
rtmpdh.h
rtmpdigest.c
rtmphttp.c
rtmppkt.c
rtmppkt.h
rtmpproto.c libavformat/rtmpproto: Plug leak if sending bytes read report fails. 2018-01-25 20:42:39 +01:00
rtp.c
rtp.h
rtpdec_ac3.c lavf/rtpdec*: Constify all RTPDynamicProtocolHandler. 2018-02-14 01:14:35 +01:00
rtpdec_amr.c lavf/rtpdec*: Constify all RTPDynamicProtocolHandler. 2018-02-14 01:14:35 +01:00
rtpdec_asf.c lavf/rtpdec*: Constify all RTPDynamicProtocolHandler. 2018-02-14 01:14:35 +01:00
rtpdec_dv.c lavf/rtpdec*: Constify all RTPDynamicProtocolHandler. 2018-02-14 01:14:35 +01:00
rtpdec_formats.h lavf/rtpdec*: Constify all RTPDynamicProtocolHandler. 2018-02-14 01:14:35 +01:00
rtpdec_g726.c lavf/rtpdec*: Constify all RTPDynamicProtocolHandler. 2018-02-14 01:14:35 +01:00
rtpdec_h261.c lavf/rtpdec*: Constify all RTPDynamicProtocolHandler. 2018-02-14 01:14:35 +01:00
rtpdec_h263_rfc2190.c lavf/rtpdec*: Constify all RTPDynamicProtocolHandler. 2018-02-14 01:14:35 +01:00
rtpdec_h263.c lavf/rtpdec*: Constify all RTPDynamicProtocolHandler. 2018-02-14 01:14:35 +01:00
rtpdec_h264.c lavf/rtpdec*: Constify all RTPDynamicProtocolHandler. 2018-02-14 01:14:35 +01:00
rtpdec_hevc.c lavf/rtpdec*: Constify all RTPDynamicProtocolHandler. 2018-02-14 01:14:35 +01:00
rtpdec_ilbc.c lavf/rtpdec*: Constify all RTPDynamicProtocolHandler. 2018-02-14 01:14:35 +01:00
rtpdec_jpeg.c lavf/rtpdec*: Constify all RTPDynamicProtocolHandler. 2018-02-14 01:14:35 +01:00
rtpdec_latm.c lavf/rtpdec*: Constify all RTPDynamicProtocolHandler. 2018-02-14 01:14:35 +01:00
rtpdec_mpa_robust.c lavf/rtpdec*: Constify all RTPDynamicProtocolHandler. 2018-02-14 01:14:35 +01:00
rtpdec_mpeg4.c lavf/rtpdec*: Constify all RTPDynamicProtocolHandler. 2018-02-14 01:14:35 +01:00
rtpdec_mpeg12.c lavf/rtpdec*: Constify all RTPDynamicProtocolHandler. 2018-02-14 01:14:35 +01:00
rtpdec_mpegts.c lavf/rtpdec*: Constify all RTPDynamicProtocolHandler. 2018-02-14 01:14:35 +01:00
rtpdec_qcelp.c lavf/rtpdec*: Constify all RTPDynamicProtocolHandler. 2018-02-14 01:14:35 +01:00
rtpdec_qdm2.c lavf/rtpdec*: Constify all RTPDynamicProtocolHandler. 2018-02-14 01:14:35 +01:00
rtpdec_qt.c
rtpdec_rfc4175.c lavf/rtpdec*: Constify all RTPDynamicProtocolHandler. 2018-02-14 01:14:35 +01:00
rtpdec_svq3.c lavf/rtpdec*: Constify all RTPDynamicProtocolHandler. 2018-02-14 01:14:35 +01:00
rtpdec_vc2hq.c lavf/rtpdec*: Constify all RTPDynamicProtocolHandler. 2018-02-14 01:14:35 +01:00
rtpdec_vp8.c lavf/rtpdec*: Constify all RTPDynamicProtocolHandler. 2018-02-14 01:14:35 +01:00
rtpdec_vp9.c lavf/rtpdec*: Constify all RTPDynamicProtocolHandler. 2018-02-14 01:14:35 +01:00
rtpdec_xiph.c lavf/rtpdec*: Constify all RTPDynamicProtocolHandler. 2018-02-14 01:14:35 +01:00
rtpdec.c lavf/rtpdec: Constify several pointers. 2018-02-11 20:03:33 +01:00
rtpdec.h lavf/rtpdec: Constify several pointers. 2018-02-11 20:03:33 +01:00
rtpenc_aac.c
rtpenc_amr.c
rtpenc_chain.c avformat/rtpenc_chain: use the proper function to free AVFormatContext 2018-03-26 00:52:39 -03:00
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 lavf/rtpdec: Constify several pointers. 2018-02-11 20:03:33 +01:00
rtsp.h lavf/rtpdec: Constify several pointers. 2018-02-11 20:03:33 +01:00
rtspcodes.h
rtspdec.c avformat: migrate to AVFormatContext->url 2018-01-28 23:06:43 +01:00
rtspenc.c avformat: migrate to AVFormatContext->url 2018-01-28 23:06:43 +01:00
s337m.c
samidec.c
sapdec.c avformat: migrate to AVFormatContext->url 2018-01-28 23:06:43 +01:00
sapenc.c avformat: migrate to AVFormatContext->url 2018-01-28 23:06:43 +01:00
sauce.c
sauce.h
sbcdec.c sbc: add raw demuxer for SBC 2018-03-07 22:26:53 +01:00
sbgdec.c
sccdec.c
sccenc.c
sctp.c
sdp.c avformat: migrate to AVFormatContext->url 2018-01-28 23:06:43 +01:00
sdr2.c
sdsdec.c
sdxdec.c
segafilm.c Sega FILM: set dts and duration when demuxing 2018-04-10 02:36:11 +02:00
segafilmenc.c lavf/segafilmenc: Do not mix variable declaration and code. 2018-04-10 00:50:01 +02:00
segment.c avformat: fix stream_segment muxer build dependencies 2018-02-07 16:42:11 -03:00
shortendec.c
sierravmd.c
siff.c
smacker.c
smjpeg.c
smjpeg.h
smjpegdec.c
smjpegenc.c
smoothstreamingenc.c avformat: migrate to AVFormatContext->url 2018-01-28 23:06:43 +01:00
smush.c
sol.c
sox.h
soxdec.c
soxenc.c
spdif.c
spdif.h
spdifdec.c
spdifenc.c spdifenc: support ac3 core+eac3 dependent streams 2018-04-11 11:37:05 +02:00
srtdec.c
srtenc.c
srtp.c
srtp.h
srtpproto.c
stldec.c
subfile.c
subtitles.c
subtitles.h
subviewer1dec.c
subviewerdec.c
supdec.c
supenc.c
svag.c
swf.c
swf.h
swfdec.c lavf/swfdec: Reduce score when auto-detecting swf files. 2018-01-20 15:41:40 +01:00
swfenc.c
takdec.c
tcp.c
tedcaptionsdec.c
tee_common.c
tee_common.h
tee.c avformat: migrate to AVFormatContext->url 2018-01-28 23:06:43 +01:00
teeproto.c
thp.c
tiertexseq.c
tls_gnutls.c
tls_libtls.c libavformat/tls_libtls: pass numeric hostnames to tls_connect_cbs() 2018-03-07 02:06:09 +02:00
tls_openssl.c
tls_schannel.c
tls_securetransport.c
tls.c
tls.h Merge commit '4cf84e254ae75b524e1cacae499a97d7cc9e5906' 2018-02-11 23:08:48 -03:00
tmv.c
tta.c
ttaenc.c avformat/ttaenc: use AVPacketList helper functions to queue packets 2018-04-04 00:15:38 -03:00
tty.c
txd.c
ty.c
udp.c
uncodedframecrcenc.c
unix.c avformat/unix: fix handling of EOF in case of SOCK_STREAM. 2018-03-21 19:02:06 +01:00
url.c
url.h
urldecode.c
urldecode.h
utils.c avformat/utils: use the existing packet reference when parsing complete frames 2018-04-13 21:19:22 -03:00
v210.c
vag.c
vc1dec.c
vc1test.c
vc1testenc.c
version.h avformat/dashenc: replacing 'min_seg_duration' with 'seg_duration' 2018-04-17 14:30:47 +05:30
vivo.c
voc_packet.c
voc.c
voc.h
vocdec.c
vocenc.c
vorbiscomment.c
vorbiscomment.h
vpcc.c
vpcc.h
vpk.c
vplayerdec.c
vqf.c
w64.c
w64.h
wavdec.c
wavenc.c
wc3movie.c
webm_chunk.c avformat: migrate to AVFormatContext->url 2018-01-28 23:06:43 +01:00
webmdashenc.c
webpenc.c
webvttdec.c
webvttenc.c
westwood_aud.c
westwood_vqa.c
wsddec.c
wtv_common.c
wtv.h
wtvdec.c
wtvenc.c
wv.c
wv.h
wvdec.c
wvedec.c
wvenc.c
xa.c
xmv.c
xvag.c
xwma.c
yop.c
yuv4mpeg.h
yuv4mpegdec.c
yuv4mpegenc.c