Commit Graph

424 Commits

Author SHA1 Message Date
Martin Storsjö
3b5d4428ac movenc: Write the sample rate instead of time scale in the stsd atom
For ismv/isma, the time scale might not be the same as the sample
rate.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-01-25 12:15:41 +02:00
Martin Storsjö
4ddd54dab4 movenc: Add a separate ismv/isma (smooth streaming) muxer
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-01-25 12:15:41 +02:00
Martin Storsjö
b613ff5e93 movenc: Allow the caller to decide on fragmentation
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-01-25 12:15:41 +02:00
Martin Storsjö
83988d58ed movenc: Add support for writing fragmented mov files
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-01-25 12:15:41 +02:00
Martin Storsjö
6ca3856894 movenc: Add a separate start_pts
This fixes calculation of trackDuration if the MOVIentry array
is cleared. This is required by the fragmentation support in the
next patch.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-01-25 12:15:40 +02:00
Martin Storsjö
a78dbada55 movenc: Don't store a nonzero creation time if nothing was set by the caller
If the creation time is stored in the file as a zero, the
mov demuxer skips exporting the creation time. Currently,
files muxed without a creation time get demuxed with a
Jan 1st 1970 creation timestamp.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-01-10 16:02:07 +02:00
Alex Converse
4bf3c8f226 mov: Don't stick the QuickTime field ordering atom in extradata.
The 'fiel' atoms can be found in H.264 tracks clobbering the extradata.
MJPEG supports non field based extradata, and this data should be
preserved when copying.
2011-12-21 22:04:37 -08:00
Alex Converse
d3b8bde2f1 movenc: Rudimentary IODs support. 2011-12-15 14:06:13 -08:00
Mans Rullgard
3383a53e7d lavu: replace int/float punning functions
The existing functions defined in intfloat_readwrite.[ch] are
both slow and incorrect (infinities are not handled).

This introduces a new header with fast, inline conversion
functions using direct union punning assuming an IEEE-754
system, an assumption already made throughout the code.

The one use of Intel/Motorola extended 80-bit format is
replaced by simpler code sufficient under the present
constraints (positive normal values).

The old functions are marked deprecated and retained for
compatibility.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-12-11 18:47:19 +00:00
Mans Rullgard
373211d828 Remove extraneous semicolons
These semicolons cause invalid empty top-level declarations.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-12-11 17:23:24 +00:00
Martin Storsjö
e2484fb644 movenc: Use the actual converted sample for RTP hinting
If an annex b bitstream is muxed into mov, the actual written
sample is reformatted to mp4 syntax before writing.

Currently, the RTP hints that copy data from the normal video
track, where the payload data might be offset compared to the
original sample that the RTP hinting used (when 3 byte
annex b startcodes have been converted into 4 byte mp4 format
startcodes).

Signed-off-by: Martin Storsjö <martin@martin.st>
2011-12-11 01:37:26 +02:00
Diego Biurrun
da9cea77e3 Fix a bunch of common typos. 2011-12-11 00:32:25 +01:00
Justin Ruggles
60cd802daf movenc: write 'chan' tag for AC-3 in MOV 2011-12-09 16:12:58 -05:00
Justin Ruggles
1fdf18f4b7 mov: add support for reading and writing the 'chan' tag
This implements reading the tag in the demuxer and adds support for writing it
in the muxer. Some example channel layout tables for muxing are included for
ac3, aac, and alac, but they are not utilized yet.
2011-12-09 16:12:58 -05:00
Justin Ruggles
8e8c51318c movenc: simplify handling of pcm vs. adpcm vs. other compressed codecs
Use Sound Sample Description Version 2 for all MOV files.
Updated FATE references accordingly.
Note that ADPCM is treated as compressed audio in version 2.
2011-12-09 16:12:58 -05:00
Anton Khirnov
c3f9ebf743 lavf: make av_set_pts_info private.
It's supposed to be called only from (de)muxers.
2011-11-30 20:34:45 +01:00
Carl Eugen Hoyos
ed669c9bec movenc: Set a correct packet size for AMR-NB mode 15, "no data"
These packets are valid packets, and consist of 1 byte (which
contains the mode bits).

This had been analyzed and reported by Igor Levin, igor d levin comverse com.

Signed-off-by: Martin Storsjö <martin@martin.st>
2011-11-05 12:35:34 +02:00
Anton Khirnov
145f741e11 AVOptions: rename FF_OPT_TYPE_* => AV_OPT_TYPE_* 2011-10-12 16:51:16 +02:00
Anton Khirnov
a4ea00d021 lavc/lavf: use unique private classes.
This is needed by the new AVOptions API.
2011-10-05 07:52:30 +02:00
Anton Khirnov
c92a2a4eb8 movenc: fix NULL reference in mov_write_tkhd_tag
st may be NULL when there are more mov streams than AVStreams, e.g. when
chapters are present.
2011-09-19 16:44:42 +02:00
Anton Khirnov
7574cacbd5 movenc: create an alternate group for each media type
Partially fixes bug 44.
2011-09-17 08:42:30 +02:00
Laurent Aimar
b59efc9434 Fixed size given to init_get_bits().
init_get_bits() takes a number of bits and not a number of bytes as
its size argument.

Signed-off-by: Alex Converse <alex.converse@gmail.com>
2011-09-15 13:23:04 -07:00
Anton Khirnov
fb42d156ed movenc: use libx264 by default when possible for mov, mp4 and psp 2011-08-22 07:17:35 +02:00
Anton Khirnov
eb97dbb05a movenc: change AV_LOG_INFO to AV_LOG_WARNING for some warnings 2011-08-16 10:34:17 +02:00
Anton Khirnov
dfc2c4d900 lavf: use designated initialisers for all (de)muxers.
It's more readable and less prone to breakage.
2011-07-17 06:58:37 +02:00
Anton Khirnov
001d668d40 lavf: factor out conversion of ISO8601 string to unix time 2011-07-13 12:14:25 +02:00
Anton Khirnov
5f847bf61d lavf: deprecate AVFormatContext.timestamp
It's replaced by 'creation_time' metadata tag.
2011-07-12 15:30:10 +02:00
Anton Khirnov
71a861cf40 lavc: make avcodec_alloc_context3 officially public.
Deprecate avcodec_alloc_context/2.
2011-07-10 17:09:28 +02:00
Mans Rullgard
0ebcdf5cda Do not include mathematics.h in avutil.h
Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-07-03 21:42:06 +01:00
Mans Rullgard
ee8aecd23a Do not include intfloat_readwrite.h in avutil.h
Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-07-03 21:42:06 +01:00
Martin Storsjö
d16cccac98 movenc: Add RTP muxer/hinter options
Signed-off-by: Martin Storsjö <martin@martin.st>
2011-06-10 10:52:32 +03:00
Martin Storsjö
f3f82296a4 movenc: Pass the RTP AVFormatContext to the SDP generation
Signed-off-by: Martin Storsjö <martin@martin.st>
2011-06-10 10:52:25 +03:00
Martin Storsjö
0558e266a2 sdp: Allow passing an AVFormatContext to the SDP generation
Options from the AVFormatContext can be read for modifying
the generated SDP.

Signed-off-by: Martin Storsjö <martin@martin.st>
2011-06-10 10:45:22 +03:00
Anton Khirnov
d2d67e424f Remove all uses of now deprecated metadata functions. 2011-06-08 07:43:45 +02:00
Gil Pedersen
c16919487e improved 'edts' atom writing support
The 'edts' write function can now generate an initial empty edit resulting in a track-specific presentation delay.
This is automatically calculated and inserted for any track where the initial DTS != 0.
Added support for long (version==1) timecodes.
2011-05-31 08:16:18 -07:00
Martin Storsjö
28734ac995 movenc: Deprecate the global RTP hinting flag, use a private AVOption instead
Instead of -fflags rtphint, set -movflags rtphint instead.

Signed-off-by: Martin Storsjö <martin@martin.st>
2011-05-27 19:56:44 +03:00
Martin Storsjö
91e3a25ef6 movenc: Add an AVClass for setting muxer specific options
Signed-off-by: Martin Storsjö <martin@martin.st>
2011-05-27 19:56:33 +03:00
Baptiste Coudurier
7e19a6e868 movenc: always write esds descriptor length using 4 bytes.
ipod shuffle doesn't support anything else.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2011-05-13 07:38:54 +02:00
Baptiste Coudurier
304e983dc7 movenc: fix yuv range in avid atoms used by dnxhd.
yuv range: full 1 / normal 2

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2011-05-12 13:07:21 +02:00
Alex Converse
7fe3207e25 movenc: fix adpcm mono muxing.
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2011-05-12 13:05:30 +02:00
Alex Converse
1a5e4fd8c5 Replace strncpy() with av_strlcpy(). 2011-05-03 21:20:13 -07:00
Anton Khirnov
6dc7d80de7 avio: avio_ prefix for url_close_dyn_buf 2011-04-03 22:47:05 +02:00
Anton Khirnov
b92c545282 avio: avio_ prefix for url_open_dyn_buf 2011-04-03 22:46:56 +02:00
Anton Khirnov
8978fedaee avio: introduce an AVIOContext.seekable field
Use it instead of url_is_streamed and AVIOContext.is_streamed.
2011-04-03 22:46:40 +02:00
Mans Rullgard
2912e87a6c Replace FFmpeg with Libav in licence headers
Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-03-19 13:33:20 +00:00
Anton Khirnov
b7f2fdde74 avio: rename put_flush_packet -> avio_flush
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2011-03-16 22:59:39 -04:00
Anton Khirnov
a2704c9712 avio: add avio_tell macro as a replacement for url_ftell
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2011-03-04 11:26:57 -05:00
Baptiste Coudurier
06ed4873e6 movenc: use correct tag for dvcpro hd
Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-03-02 00:23:08 +00:00
Baptiste Coudurier
fffdee89cc movenc: fix tkhd height for imx
Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-03-01 23:45:03 +00:00
Anton Khirnov
6b4aa5dac8 avio: avio_ prefix for url_fseek
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2011-03-01 12:12:33 -05:00
Ronald S. Bultje
13ff92d197 movenc: remove uses of deprecated API.
Replace put_tag() with ffio_wfourcc() and ByteIOContext with AVIOContext.
2011-02-25 17:41:00 -05:00
Maksym Veremeyenko
d184c86cd3 store pasp atom for all types of quicktime movie
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2011-02-25 22:31:16 +01:00
Maksym Veremeyenko
77d207cbe6 reindent after tapt patch
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2011-02-25 22:31:16 +01:00
Maksym Veremeyenko
ea1afa124c use tapt atom for sample aspect ratio
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2011-02-25 22:31:16 +01:00
Anton Khirnov
0abdb29317 lavf: use a new ffio_wfourcc macro instead of put_tag() where possible
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2011-02-25 14:38:22 -05:00
Anton Khirnov
77eb5504d3 avio: avio: avio_ prefixes for put_* functions
In the name of consistency:
put_byte           -> avio_w8
put_<type>         -> avio_w<type>
put_buffer         -> avio_write

put_nbyte will be made private
put_tag will be merged with avio_put_str

Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2011-02-21 14:25:15 -05:00
Anton Khirnov
ae628ec1fd avio: rename ByteIOContext to AVIOContext.
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2011-02-20 08:37:15 -05:00
Takashi Mochizuki
44b1120724 movenc: Force first sample as SYNC
Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-02-13 01:16:30 +00:00
Janne Grunau
795ed278e6 movenc: byteswap codec_tag in mov_write_ms_tag
based on Alex Converse's "Fix ADPCM MS in mov muxing" patch
2011-01-28 01:06:57 +01:00
Baptiste Coudurier
f258964217 In mov muxer, mux adpcm_ms and adpcm_ima_wav the way quicktime supports it
In mov demuxer, set adpcm_ms and adpcm_ima_wav frame size to stsd samples per packet.

Signed-off-by: Janne Grunau <janne-ffmpeg@jannau.net>
2011-01-28 01:06:57 +01:00
Diego Elio Pettenò
c6610a216e Prefix all _demuxer, _muxer, _protocol from libavformat and libavdevice.
This also lists the objects from those two libraries as internal (by adding
the ff_ prefix) so that they can then be hidden via linker scripts.
2011-01-26 22:10:09 +00:00
Baptiste Coudurier
a2b7ed3274 In mov muxer, override codec tag for dv in mov, fix remuxing from avi
Originally committed as revision 26257 to svn://svn.ffmpeg.org/ffmpeg/trunk
2011-01-07 19:56:31 +00:00
Baptiste Coudurier
10d8eac98d In mov muxer, override codec tag for h263 in mov, fix remuxing from 3gp
Originally committed as revision 26255 to svn://svn.ffmpeg.org/ffmpeg/trunk
2011-01-07 19:55:08 +00:00
Baptiste Coudurier
91360ce61d Unset variable fps for mov and mp4 muxer, they support it
but timestamps must start at 0 currently, and this causes sync
problem.

Originally committed as revision 25805 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-11-23 00:41:28 +00:00
Baptiste Coudurier
96d1e75a0c In mov muxer, write artist metadata tag
Originally committed as revision 25498 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-10-15 23:23:47 +00:00
Baptiste Coudurier
edd33cb6fa In mov muxer, use correct metadata tag for encoder, and use the generic metadata api name
Originally committed as revision 25497 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-10-15 23:16:11 +00:00
Baptiste Coudurier
6bd296f1e4 In mov muxer, write reduced sample aspect ratio values in pasp
Originally committed as revision 25082 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-09-08 20:22:02 +00:00
Martin Storsjö
7ad1dc5447 Properly handle IPv6 addresses in the SDP generation
Originally committed as revision 24915 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-08-25 12:29:32 +00:00
Martin Storsjö
8b6e0aec9f movenc: Free the buffer returned by url_close_dyn_buffer, regardless of the size
This fixes a leak introduced in rev 23942, since we write padding to the
buffer unconditionally.

Originally committed as revision 24342 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-20 05:23:28 +00:00
Baptiste Coudurier
b015be2142 In mov muxer, write pixel aspect ratio tag in mov files.
Based on a patch by Daniel Kristjansson, danielk at cuymedia dot net

Originally committed as revision 24124 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-08 21:57:20 +00:00
Baptiste Coudurier
9a191b3a21 Support gray16be and rgb48be in mov
Originally committed as revision 23608 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-06-15 09:14:00 +00:00
Baptiste Coudurier
a7cc89e2f6 fix raw 555 pixel format, add abgr fourcc
Originally committed as revision 23479 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-06-04 23:30:58 +00:00
Baptiste Coudurier
a4de2b6ecf write 3gp perf tag for artist metadata
Originally committed as revision 23268 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-05-23 21:06:11 +00:00
Baptiste Coudurier
221ed48602 albm 3gp tag has optional track field not date
Originally committed as revision 23267 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-05-23 21:04:39 +00:00
Baptiste Coudurier
ea4c4d7fe3 change author metadata to artist in mov de/muxer
Originally committed as revision 23266 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-05-23 21:03:14 +00:00
Martin Storsjö
e977af6f2e Add initial support for RTP hinting in the mov muxer
Originally committed as revision 23164 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-05-18 19:47:24 +00:00
Martin Storsjö
27a826c941 Make mov_write_packet non-static, add ff_ prefix
Originally committed as revision 23163 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-05-18 19:40:17 +00:00
Martin Storsjö
f72dad4142 Move the mov muxer structures to a separate header
Originally committed as revision 23162 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-05-18 19:38:37 +00:00
David Conrad
ddb630177a movenc: Write QuickTime chapters
Originally committed as revision 23022 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-05-05 08:41:10 +00:00
David Conrad
1b206f62ea movenc: Swap positions of mov_write_header and mov_write_packet
Originally committed as revision 23021 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-05-05 08:41:06 +00:00
David Conrad
dc75e4e3b3 movenc: Write nero chapters
Originally committed as revision 22927 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-04-21 06:36:05 +00:00
Tomas Härdin
6b174197b5 Predicting the size of the hdlr, string data and trkn tags in the MOV muxer
Originally committed as revision 22846 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-04-12 07:24:30 +00:00
Jean-Daniel Dupas
cc947f04cc Replace all occurences of PKT_FLAG_KEY with AV_PKT_FLAG_KEY.
Patch by Jean-Daniel Dupas, devlists shadowlab org

Originally committed as revision 22744 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-31 12:29:58 +00:00
Stefano Sabatini
72415b2adb Define AVMediaType enum, and use it instead of enum CodecType, which
is deprecated and will be dropped at the next major bump.

Originally committed as revision 22735 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-30 23:30:55 +00:00
Baptiste Coudurier
fe3ab8adfa Fix encoder metadata string langcode in mov muxer
Originally committed as revision 22369 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-09 01:53:16 +00:00
Baptiste Coudurier
cc255afeb5 Correctly mark mov metadata as utf-8, using iso language code
Originally committed as revision 22368 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-09 01:21:09 +00:00
Anton Khirnov
ca76a11948 Add a list of generic tags and change demuxers to follow it.
Patch by Anton Khirnov, wyskas at gmail dot com

Originally committed as revision 21587 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-01 11:39:10 +00:00
Stefano Sabatini
ade5b91dda Use av_match_ext() rather than the deprecated match_ext(), fix
warnings.

Originally committed as revision 21263 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-17 15:57:51 +00:00
Mike Melanson
2cf9c7ef9c Add support for these widely-used iTunes metadata fields: Album Artist,
Grouping, and Lyrics.

Originally committed as revision 21010 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-04 02:52:40 +00:00
Baptiste Coudurier
1bd26e51f3 100l, max value for timescale is UINT16_MAX
Originally committed as revision 20661 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-11-29 18:26:51 +00:00
Baptiste Coudurier
729ef3ba62 remove useless mov timescale field
Originally committed as revision 20652 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-11-29 02:46:49 +00:00
Baptiste Coudurier
74ccc66099 change track timescale to unsigned int, fix warning
Originally committed as revision 20651 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-11-29 02:41:48 +00:00
Baptiste Coudurier
7506e117db track time can be 64bit
Originally committed as revision 20650 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-11-29 02:40:27 +00:00
Baptiste Coudurier
7c4b7d0f41 support pcm_f32/64le in mov
Originally committed as revision 20649 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-11-29 02:27:08 +00:00
Baptiste Coudurier
ba7c0ece61 cosmetics, reindent after last commit
Originally committed as revision 20648 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-11-29 02:04:44 +00:00
Baptiste Coudurier
feaa8d110d support sample rates > INT16_MAX in mov using stsd v2
Originally committed as revision 20647 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-11-29 02:03:24 +00:00
David Conrad
7382902b86 MOV: Add several iTunes metadata tags
Originally committed as revision 20586 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-11-23 08:47:44 +00:00
David Conrad
620af1a17a MOV: Fix writing \251wrt metadata (r20453 only fixed the demuxer)
Originally committed as revision 20585 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-11-23 08:47:40 +00:00
Justin Ruggles
aca857ecd3 Do not write an extra byte in the iTunes 'hdlr' tag. The files on iTMS have an
extra byte and are not compliant with ISO 14496-12.  This causes some strict
demuxers (notably the MPEG-4 ALS reference software) to fail.  It has been
confirmed that not writing the extra byte will still allow the generated MP4
files to work with QuickTime/iTunes/iPod.

Originally committed as revision 20571 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-11-22 02:07:10 +00:00
Daniel Verkamp
1a40491ef2 Add ff_ prefixes to exported symbols in libavformat/riff.h.
patch by Daniel Verkamp, aniel drv nu

Originally committed as revision 19254 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-06-22 23:09:34 +00:00