Commit Graph

609 Commits

Author SHA1 Message Date
Alex Converse 29a20ac4a1 movdec: Avoid av_malloc(0) in stss
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
2012-02-03 10:44:04 -08:00
Martin Storsjö 89415b8e3f movdec: Parse the dvc1 atom
Normally, the actual payload data contains sequence headers, too,
and the parser can extract this and set it as extradata. However,
the data in the dvc1 atom is the "official" extradata for the file.

This is required for proper stream copy of vc1 from ismv to ismv.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-02 21:39:27 +02:00
Janne Grunau 7f19bdc2a2 movdec: fix dts generation in fragmented files
Do not use AVStream's duration for dts generation since it contains in
some cases the duration of the whole file instead of duration of the
samples in the moov. This happens if the mdhd holds the duration of the
whole file but has no entries or a zero duration in its stts.
2012-02-02 17:39:13 +01:00
Martin Storsjö 75ab1e62d4 movdec: Ignore sample_degradation_priority bits when checking first_sample_flags
This makes the first packet of a track fragment run to get
the keyframe flag set properly if sample_degradation_priority
is nonzero.

This makes the keyframes flag be set properly for ismv files
created by Microsoft.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-01-31 00:13:31 +02:00
Anton Khirnov 6e9651d106 lavf: remove AVFormatParameters from AVFormatContext.read_header signature 2012-01-27 10:51:57 +01:00
Martin Storsjö bc7d05177f movdec: Calculate an average bit rate for fragmented streams, too
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-01-25 12:15:41 +02:00
Alex Converse d7420e0ac9 mov: Remove dead stores for spherical coordinates for channel position. 2012-01-18 10:54:25 -08:00
Daniel Huang bcd5d979aa mov, mxfdec: Employ more meaningful return values.
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-01-15 22:00:11 +01:00
Alex Converse 4274e481c0 mov: Support MOV_CH_LAYOUT_USE_DESCRIPTIONS for labeled descriptions. 2012-01-05 10:34:06 -08: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
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
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
Alex Converse 52401b82bd mov: Don't av_malloc(0).
malloc() is allowed to return NULL when zero is the argument. This
causes us to think malloc has failed and return AVERROR(ENOMEM). In
addition OS X malloc() returns an unfreeable non-NULL pointer for size
zero when alignment is greater than 16.
2011-12-05 09:51:35 -08:00
Alex Converse 6d23d19729 mov: Allow empty stts atom.
Fixes regressions caused by 30c3d976
2011-12-04 15:20:48 -08: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
Alex Converse 028a2375e2 mov: Make format string match variable type. 2011-11-26 19:41:54 -08:00
Alex Converse 9f8c190bb0 mov: Remove some redundant and obsolete comments. 2011-11-22 09:39:45 -08:00
Martin Storsjö 9d77a8faf9 avformat: Use avio_open2, pass the AVFormatContext interrupt_callback onwards
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2011-11-13 13:20:49 +01:00
Carl Eugen Hoyos 237f13290b movdec: Set frame_size for AMR
Earlier, sc->samples_per_frame was used for setting the frame size,
but all files don't have that set properly. The frame size is a
known constant for these codecs.

If frame_size isn't set, the mov/3gp muxer refuses to mux it.

This fixes stream copy of audio from
https://roundup.libav.org/file1248/Video_With_AMR-NB_Audio.3gp
to another 3gp file (roundup issue 2468).

Signed-off-by: Martin Storsjö <martin@martin.st>
2011-11-05 16:30:18 +02:00
Benjamin Larsson 69e7ad8dbc mov: Avoid divide by zero in edit list dts handling
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2011-10-29 07:59:05 -07:00
Raivo Hool b06df70755 mov: add support for hdvd and pgapmetadata atoms
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2011-10-21 20:29:05 +02:00
Raivo Hool 5da35d1cb3 mov: rename function _stik, some indentation cosmetics
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2011-10-21 20:29:05 +02:00
Raivo Hool 80951f5cf6 mov: rename function _int8 to remove ambiguity, some indentation cosmetics
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2011-10-21 20:29:02 +02:00
Raivo Hool 94395fbf8c mov: parse the gnre atom
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2011-10-21 19:50:51 +02:00
Anton Khirnov ab88b25f99 lavf: use avpriv_ prefix for some dv functions.
They are used in libavdevice.
2011-10-20 20:57:23 +02:00
Anton Khirnov 1fa395e471 lavf: use avpriv_ prefix for ff_new_chapter().
It's used in libavdevice.
2011-10-20 20:57:23 +02:00
Anton Khirnov 84ad31ff18 lavf: replace av_new_stream->avformat_new_stream part II.
Manual replacements are done in this commit.

In many cases, the id is some constant made up number (e.g. 0 for video
and 1 for audio), which is then not used in the demuxer for anything.
Those ids are removed.
2011-10-19 17:02:11 +02:00
Raivo Hool f055635313 mov: add support for TV metadata atoms tves, tvsn and stik
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2011-10-17 08:12:12 +02:00
Alex Converse 7ad06beb2c mov: 10l: Terminate string with 0 not '0' 2011-10-14 10:38:42 -07:00
Alex Converse 8fb22c3d47 mov: Prevent illegal writes when chapter titles are very short. 2011-10-14 10:36:18 -07:00
Luca Barbato 30c3d976f1 mov: do not misreport empty stts
Return -1 instead of ENOMEM if entries is 0.
Fixes a av_malloc(0) crash in macosx.
2011-10-11 15:06:50 +02:00
Luca Barbato 5a7ba58657 mov: cosmetics, fix for and if spacing 2011-10-11 15:06:11 +02:00
Raivo Hool 2804d32075 mov: read album_artist atom
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2011-10-11 14:56:41 +02:00
Raivo Hool dff4177546 mov: fix disc/track numbers and totals
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2011-10-11 14:56:41 +02:00
Anton Khirnov 609a2fa1fa Remove some forgotten AVCodecContext.palctrl usage. 2011-09-21 13:51:53 +02:00
Alex Converse ad6c7c1b52 mp4: Handle non-trivial ES Descriptors. 2011-08-25 11:53:21 -07:00
Thierry Foucu 73c0dd939d mov: add clcp type track as Subtitle stream.
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2011-07-21 09:34:41 -07: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
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
Mans Rullgard add41decd9 Remove return statements following infinite loops without break
These statements cannot be reached and are thus not needed.
This removes a number of compiler warnings.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-07-03 21:39:07 +01:00
Yusuke Nakamura ae88e9cf99 mov: Fix empty edit detection. 2011-06-19 18:15:56 -07:00
Yusuke Nakamura f33a6a22b4 mov: Fix wrong timestamp generation for fragmented movies that have time offset caused by the first edit list entry.
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2011-06-10 09:06:02 +02:00
Alex Converse 85e9e3a9fa movdec: Add support for the 'wfex' atom.
The 'wfex' is just a Microsoft WaveFormatEx struct.
2011-06-09 10:14:32 -07:00
Diego Biurrun b7847a3f2e mov: Remove leftover crufty debug statement with references to a local file. 2011-06-08 12:01:41 +02:00
Anton Khirnov d2d67e424f Remove all uses of now deprecated metadata functions. 2011-06-08 07:43:45 +02:00
Diego Biurrun 02a8d43adf Replace some av_log/printf + #ifdef combinations by av_dlog. 2011-06-07 13:20:58 +02:00
Mans Rullgard 5e1166b31b Mark some variables with av_unused
Most of these variables are only used in av_dlog statements, some
are required but not used by other macros.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-06-03 12:59:05 +01:00
Mans Rullgard e65ab9d94f Remove unused variables 2011-06-02 20:06:00 +01:00
Yusuke Nakamura 5f0bb0baef mov: Support edit list atom version 1.
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2011-05-12 15:52:25 +02:00