Luca Barbato
18b59956e0
movenc: remove redundant check
...
The proper check is already in mov_write_header.
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-04-11 14:38:36 +03:00
Martin Storsjö
20234a4bd7
cosmetics: Align muxer/demuxer declarations
...
Also add missing trailing commas, break long codec_tag lines and
add spaces in codec_tag declarations.
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-04-06 19:19:59 +03:00
Diego Biurrun
a92be9b856
Replace memset(0) by zero initializations.
...
Also remove one pointless zero initialization in rangecoder.c.
2012-03-28 09:38:33 +02:00
Martin Storsjö
68893afe1d
movenc: Merge if statements
...
This isn't exactly equivalent with the earlier code for codecs
other than H264 and VC1, but those are two only codecs supported
by this codepath anyway, and it simplifies it a bit.
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-03-25 01:06:49 +02:00
Martin Storsjö
d5ed5e7d0c
avc: Add a function for converting mp4 style extradata to annex b
...
Make movenc use this function instead of the current custom
conversion function.
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-03-24 22:53:18 +02:00
Martin Storsjö
39f5a5462c
movenc: Add a min_frag_duration option
...
The other fragmentation options (frag_duration, frag_size and
frag_keyframe) are combined with OR, cutting fragments at the
first of the conditions being fulfilled.
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-03-20 11:18:05 +02:00
Justin Ruggles
f234e8a32e
movenc: use timestamps instead of frame_size for samples-per-packet
...
For encoding, AVCodecContext.frame_size is the number of input samples to
send to the encoder and does not necessarily correspond directly to the
timestamps of the output packets.
2012-02-27 04:33:37 -05:00
Justin Ruggles
f3dab5fb6d
movenc: use the first cluster duration as the tfhd default duration
2012-02-27 04:33:37 -05:00
Justin Ruggles
681d17264f
movenc: factorize calculation of cluster duration into a separate function
2012-02-27 04:33:37 -05:00
Martin Storsjö
c2ff63e3ac
rtpenc: Move the trailing comma into FF_RTP_FLAG_OPTS
...
This simplifies adding more flags to the macro.
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-23 15:27:42 +02:00
Martin Storsjö
0c7b8b758a
movenc: Buffer the mdat for the initial moov fragment, too
...
This allows writing QuickTime-compatible fragmented mp4 (with
a non-empty moov atom) to a non-seekable output.
This buffers the mdat for the initial fragment just as it does
for all normal fragments, too. Previously, the resulting
atom structure was mdat,moov, moof,mdat ..., while it now
is moov,mdat, moof,mdat.
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-22 12:27:39 +02:00
Martin Storsjö
5be805d38c
mov: Use defines for sample flags in fragments
...
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-18 21:13:36 +02:00
Martin Storsjö
3eec23f3cd
mov: Use defines for trun flags
...
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-18 21:13:35 +02:00
Martin Storsjö
73328f24fa
mov: Use defines for tfhd flags
...
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-18 21:13:33 +02:00
Martin Storsjö
5302633919
movenc: Write the unknown duration as 64 bit fields in ismv
...
This is required for the files to play back properly in
windows media player.
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-18 00:03:32 +02:00
Martin Storsjö
99a357f4c5
movenc: Write track durations with all bits set if duration is unknown
...
According to 14496-12, the duration should be all 1s if
the duration is unknown. This is the case if writing a moov
atom without any samples described in it (e.g. as in ismv files).
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-18 00:03:30 +02:00
Martin Storsjö
51df7b232f
movenc: Don't set a default sample duration when creating ismv
...
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-16 17:49:07 +01:00
Martin Storsjö
167f3b8de7
libavformat: Add an ff_ prefix to some lavf internal symbols
...
Prefix the functions/tables brktimegm, pcm_read_seek,
dv_offset_reset, voc_get_packet, codec_movaudio_tags,
codec_movvideo_tags.
After this, lavf has no global symbols without the proper prefix.
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-15 22:06:17 +02:00
Martin Storsjö
4ace130ee6
movenc: Support muxing VC1
...
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-14 16:12:18 +02:00
Martin Storsjö
5d561514b7
movenc: Support muxing wmapro in ismv/isma
...
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-13 19:57:28 +02:00
Martin Storsjö
b7d3dd907f
movenc: cosmetics: Get rid of camelCase identifiers
...
Also add spacing around operators on touched lines, and split
one line to match the common style.
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-01-30 19:24:39 +02:00
Martin Storsjö
e771e6dd63
movenc: Allow writing to a non-seekable output if using empty moov
...
In this mode, no seeks will be done except for within moov/moof
fragments, which should fit within the AVIOContext buffer.
This allows pushing live smooth streaming format data to
a live publishing point on IIS over http.
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-01-27 21:12:41 +02:00
Martin Storsjö
f532210499
movenc: Support adding isml (smooth streaming live) metadata
...
This metadata is required for pushing a live stream to an IIS
publishing point.
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-01-27 21:12:28 +02:00
Anton Khirnov
df0bb26aca
lavf: remove disabled FF_API_TIMESTAMP cruft
2012-01-27 10:52:42 +01:00
Anton Khirnov
2d70912cc2
lavf: remove disabled FF_API_FLAG_RTP_HINT cruft
2012-01-27 10:52:42 +01:00
Martin Storsjö
9f9c45f4b6
movenc: Don't require frame_size to be set for modes other than mov
...
The field frame_size isn't written to the output anywhere except
than in mov.
This facilitates stream copy from formats that don't set frame_size.
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-01-25 22:25:56 +02:00
Martin Storsjö
990a746cec
movenc: Reindent a block
...
Also add some space around operators and wrap a comment
that extends past the 80 char "limit"/guideline.
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-01-25 22:13:56 +02:00
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