1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-11-26 19:01:44 +02:00
Commit Graph

9942 Commits

Author SHA1 Message Date
Alessandro Ghedini
8542f9c4f1 replaygain: correctly parse peak values
According to the ReplayGain spec, the peak amplitude may overflow and may result
in peak amplitude values greater than 1.0 with psychoacoustically coded audio,
such as MP3. Fully compliant decoders must allow peak overflows.

Additionally, having peak values in the 0<->UINT32_MAX scale makes it more
difficult for applications to actually use the peak values (e.g. when
implementing clipping prevention) since values have to be rescaled down.

This patch corrects the peak parsing by removing the rescaling of the decoded
values between 0 and UINT32_MAX and the 1.0 upper limit.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-04-04 17:40:19 +02:00
Alessandro Ghedini
25b6837f7c replaygain: fix gain sign decoding
The gain sign was incorrectly decoded: since the FFSIGN() macro treats 0 as
negative, gain values starting with "0." were always decoded as negative.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-04-04 17:04:37 +02:00
Peter Ross
ac4b32df71 On2 VP7 decoder
Further performance improvements and security fixes by
Vittorio Giovara, Luca Barbato and Diego Biurrun.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2014-04-04 04:00:11 +02:00
Carl Eugen Hoyos
ce58ead40d riff: Add an additional AAC TwoCC
Mentioned on http://msdn.microsoft.com/en-us/library/dd341376%28prot.20%29.aspx
2014-04-04 01:29:29 +02:00
Piotr Bandurski
1e8c4fb8fc riff: support 0xa100 TwoCC for G723_1
Sample-Id: 4790b7f1c44f98e35f3b806468fa615f5930a5b3.wav
2014-04-04 01:29:29 +02:00
Piotr Bandurski
00ccdcd88c riff: add 0x594a TwoCC for Xan DPCM
Sample-Id: crusader-no-regret.avi
2014-04-04 01:29:29 +02:00
Compn
7b600ea0da riff: add 0x64 to g726
Sample-Id: g726-test1.wav
2014-04-04 01:29:28 +02:00
Piotr Bandurski
b7a12ab95b riff: add G723_1 wav tag 2014-04-04 01:29:28 +02:00
Compn
10a14bd574 riff: map 0x0038 to amrnb
Sample-Id: 40709.avi
2014-04-04 01:29:28 +02:00
Paul B Mahol
228af18a98 riff: Support FLIC FourCC 2014-04-04 01:29:28 +02:00
Michael Niedermayer
fb6c21fa8c riff: add escape130 FourCC 2014-04-04 01:29:27 +02:00
Piotr Bandurski
ae58466994 riff: support 'aas4' FourCC 2014-04-04 01:29:27 +02:00
Piotr Bandurski
7100f3c07d riff: add "YUV8" FourCC
Sample-Id: MAILTEST.AVI
2014-04-04 01:29:27 +02:00
Piotr Bandurski
c9787f034c riff: Add "S263" FourCC 2014-04-04 01:29:27 +02:00
Michael Niedermayer
9ff6429b07 riff: Support XMPG as mpeg1 2014-04-04 01:29:26 +02:00
Michael Niedermayer
771cb3e592 riff: support BW10 as mpeg1 2014-04-04 01:29:26 +02:00
Piotr Bandurski
eaec09a575 riff: Add SLDV FourCC for dvvideo 2014-04-04 01:29:25 +02:00
Carl Eugen Hoyos
a1c58b3acd riff: Support NTSC forward dvcpro videos
PAL looks incorrect.
2014-04-04 01:29:25 +02:00
Piotr Bandurski
6aa7cbd58c riff: add dvis/pdvc FourCCs 2014-04-04 01:29:24 +02:00
Piotr Bandurski
adf0ff0000 riff: add "GXVE" FourCC for WMV2
Sample-Id: vivd.avi
2014-04-04 01:29:24 +02:00
Compn
96dd7b2332 riff: add PLV1 fourcc to mpeg4
Sample-Id: york-water-meteor.avi
2014-04-04 01:29:24 +02:00
Carl Eugen Hoyos
f5f18aecef riff: Support decoding ASP variant from QNAP Systems 2014-04-04 01:29:23 +02:00
Piotr Bandurski
ade32b4a84 riff: add "SM4V" FourCC 2014-04-04 01:29:23 +02:00
Compn
684e43c5e3 riff: add DYM4 mpeg4 fourcc 2014-04-04 01:29:23 +02:00
Piotr Bandurski
32b0942c99 riff: add DM4V FourCC 2014-04-04 01:29:23 +02:00
Compn
fa6a021121 riff: add G264 to mpeg4, only decodes keyframes 2014-04-04 01:29:22 +02:00
Piotr Bandurski
9ab2d5a33c riff: add "lsvm" FourCC for H263. 2014-04-04 01:29:22 +02:00
Carl Eugen Hoyos
915524e541 riff: Support H.264 fourcc UMSV 2014-04-04 01:29:22 +02:00
Carl Eugen Hoyos
dcb6e145eb riff: add FourCC for GeoVision cameras 2014-04-04 01:29:22 +02:00
Carl Eugen Hoyos
9d9d319a3c riff: Add V264 for H264 in CCTV recordings 2014-04-04 01:29:21 +02:00
Carl Eugen Hoyos
51ace0fb92 riff: add H264 from QNAP Systems 2014-04-04 01:29:21 +02:00
Piotr Bandurski
a52a1bc912 riff: add SMV2 FourCC for H264
Sample-Id: smv2.avi
2014-04-04 01:29:21 +02:00
Clément Bœsch
235bf1dab5 riff: add ISMP/timecode tag 2014-04-04 00:28:28 +02:00
James Almer
fa570a5548 riff: Add ITRK tag
Some players, like foobar2000 or modern versions of WMP, create WAV
files using the ITRK tag for track instead of IPRT
2014-04-04 00:28:28 +02:00
Piotr Bandurski
121b5b7e04 isom: add some BOXX tags 2014-04-04 00:20:12 +02:00
Reimar Döffinger
b0a54516eb isom: add 'flic' tag 2014-04-04 00:20:12 +02:00
Carl Eugen Hoyos
5a85cf0fc2 isom: add 'm1v ' tag
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2014-04-04 00:20:10 +02:00
Luca Barbato
ad8f736b74 mxf: Remove typo
Reported-By: Vittorio Giovara <vittorio.giovara@gmail.com>
2014-04-03 23:45:05 +02:00
Michael Niedermayer
9d599e3f6e avi: Improve non-interleaved detection
Additional fixes by Nigel Touati-Evans <nigel.touatievans@gmail.com>.

Check the index for streams with a time drift of 2s or a buffer drift
of 64MB.

Bug-Id: 666
CC: libav-stable@libav.org
Sample-Id: yet-another-broken-interleaved-avi.avi

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2014-04-02 12:11:31 +02:00
Marc-Antoine Arnaud
f1c4a54f6e lavf: add supported extension to avi and mov demuxers 2014-04-02 00:27:53 +02:00
Diego Biurrun
cba4e6062a More correct printf format specifiers
This avoids compiler warnings about argument and specifier type mismatch.
2014-04-02 00:27:22 +02:00
Jimmy Christensen
38389058c3 OpenEXR decoder
Additional fixes and enhancements by Vittorio Giovara, Gonzalo Garramuno,
Nicolas George, Paul B Mahol and Michael Niedermayer.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2014-04-01 01:13:09 +02:00
Michael Niedermayer
f94371b1db mov: Unbreak sbtl writing 2014-03-31 19:31:41 +02:00
Michael Niedermayer
12789d9636 mov: call mov_rewrite_dvd_sub_extradata() after parsing dimensions from tkhd
This also moves mov_rewrite_dvd_sub_extradata() to mov.c.

Sample-Id: NeroRecodeSample.mp4
2014-03-31 01:08:23 +02:00
Michael Niedermayer
fce28c3c6d mov: fill in subtitle dimensions after parsing tkhd
Sample-Id: NeroRecodeSample.mp4
2014-03-31 01:08:18 +02:00
Michael Niedermayer
96138e8c8d isom: only write the size if its non zero in mov_rewrite_dvd_sub_extradata()
Sample-Id: NeroRecodeSample.mp4
2014-03-31 01:08:12 +02:00
Michael Niedermayer
9bd4a9f4ee isom: Simplify mov_rewrite_dvd_sub_extradata()
This avoids the 2nd buffer and fixes the palette truncated check
2014-03-31 01:05:11 +02:00
John Stebbins
6adf3bc42e movenc: Add dvd subtitle support
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-03-28 17:15:30 +01:00
Paul B Mahol
70daeacd6e PAF demuxer and decoder
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-03-27 23:34:47 +01:00
Aleksi Nurmi
ae17878fb2 BRender PIX image decoder
Further enhancements by Vittorio Giovara and Paul B Mahol.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2014-03-27 18:27:23 +01:00
Vittorio Giovara
e50f5d3cf9 Alias PIX image encoder and decoder 2014-03-26 23:25:02 +01:00
Anton Khirnov
15c5a8d22d mp3dec: export replaygain tags from ID3v2 2014-03-24 06:13:39 +01:00
Anton Khirnov
5a7e35dd23 Add replaygain side data type and code for parsing replaygain tags. 2014-03-24 06:07:51 +01:00
Anton Khirnov
25b3258656 lavf: add an AVStream field for exporting stream-global side data 2014-03-24 06:07:51 +01:00
Tanja Batchelor
5b8f0a5eac mpeg: K&R formatting cosmetics
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2014-03-24 02:22:15 +01:00
John Stebbins
1e9db41e2a movenc: Allow override of major brand in ftyp atom
Signed-off-by: Tim Walker <tdskywalker@gmail.com>
2014-03-23 00:31:54 +01:00
Luca Barbato
af9481d701 mxf: Lowercase UL strings
The specification uses lower case most of the time.
2014-03-19 12:04:15 +01:00
Luca Barbato
6920fb2b33 mxf: Verbose debug logging
Print the UL in code format and in the short format used by the
specification.
2014-03-19 12:04:06 +01:00
Luca Barbato
842ea36c74 mxf: Override faulty PreviousPartition entries
Some files set the PreviousPartition field to point to its own offset.

If we are parsing forward the Previous partition is immediately known
and its value could be used, otherwise we can safely point to the
header.

Reported-By: Jean Baptiste Kempf <jb@videolan.org>
2014-03-19 11:56:33 +01:00
Luca Barbato
92ebb33215 mxf: Add additional H264 PictureEssenceCoding
Unbreak some MXF Proxy files.
2014-03-19 11:51:08 +01:00
Keiji Costantini
ca80e15814 mpegts: Forward error codes in various functions
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2014-03-18 08:20:35 +01:00
Keiji Costantini
86ba2327e1 mpegts: K&R formatting cosmetics
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2014-03-18 08:07:43 +01:00
Jean First
6d78e852fb img2: add j2c file extension
Some applications use the j2c extension for jpeg2000 codestream files.
2014-03-16 23:31:29 +01:00
Carl Eugen Hoyos
58c215961a raw, nut: Support rgba64 encoding 2014-03-16 23:29:51 +01:00
Michael Niedermayer
6d7b22fb8f isom: fix C99-style declaration 2014-03-16 23:05:48 +01:00
Martin Storsjö
3b1c9eb0ff aacdec: Lower the number of frames required to detect ADTS
For live audio streams, requiring 500 frames for a stream to
be detected is a bit overkill.

This allows live ADTS streams that don't start nicely at
a frame boundary to start up more quickly, e.g.
http://mp3.streampower.be/radio1.aac.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-03-16 21:04:00 +02:00
Martin Storsjö
0412cb67cd aacdec: Don't count probed ADTS frames if there are false positives
If a portion of the probe buffer seem to resemble ADTS frames,
but some data at the end is a mismatch, disregard the whole
probing attempt. If it actually is ADTS data, there shouldn't be
any mismatches within the sequential frame data.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-03-16 20:58:41 +02:00
wm4
8f629a986c isom: convert mp4 dvdsub extradata to vobsub format
mp4 files embedding DVD subtitles do not use the same extradata format
as the rest of Libav expects. The subtitle decoder in libavcodec in
particular does not understand this format.

Convert the extradata to the vobsub .idx format. mp4 stores the palette
as binary 32 bit ints in YUV. The subtitle resolution is stored
separately in the track header, which we access through AVStream.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-03-15 14:32:58 +01:00
Luca Barbato
afdf94689c aac: K&R formatting cosmetics
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2014-03-14 01:24:31 +01:00
Alessandro Ghedini
6998a9f4c4 http: Properly initialize icy headers string
The icy_metadata_headers string never gets initialized, so,
during the first call to av_strlcatf() in parse_icy(),
strlen() will be called on a pointer to uninitialized memory.
At best this causes some garbage data to be left at the
start of the string.

By initializing icy_metadata_headers to the empty string, the
first call to strlen() will always return 0, so that data is
appended from the start of the string.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-03-12 20:13:36 +01:00
Martin Storsjö
e77a2ea950 http: Declare more parameters as const where possible
Signed-off-by: Martin Storsjö <martin@martin.st>
2014-03-12 13:24:58 +02:00
Clément Bœsch
2572d07c1f http: Allow setting a Content-Type for POST requests
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-03-11 22:08:57 +01:00
Alessandro Ghedini
fe568b3d27 http: Improve options descriptions
Add documentation where missing.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-03-11 22:08:57 +01:00
Anssi Hannula
ab76d9f628 http: Always allow no-op seek
This also allows checking stream position as per ffurl_seek() doxy.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-03-11 22:08:57 +01:00
Anssi Hannula
2ec33d2712 http: Add support for selecting a request range
Comment from Reimar Döffinger included as pro memoria.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-03-11 22:08:57 +01:00
Clément Bœsch
ddfc989063 http: Support setting custom User-Agent
Contextually make the default User-Agent use the common
"Name/Version" pattern.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-03-11 22:08:57 +01:00
Michael Niedermayer
e58c85b068 http: Export Content-Type information
Bug-Id: https://bugs.debian.org/740421

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-03-11 22:08:57 +01:00
Luca Barbato
8075c3d8bb http: Add support reading ICY metadata
Export the metadata as a icy_metadata_packet avoption.
Based on the work of wm4 and Alessandro Ghedini.

Bug-Id: https://bugs.debian.org/739936

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-03-11 22:08:57 +01:00
Luca Barbato
4ff99ab3d7 http: Refactor process_line 2014-03-11 22:08:56 +01:00
Luca Barbato
7a2fddb448 http: K&R formatting cosmetics 2014-03-11 22:08:56 +01:00
Luca Barbato
78b21c1d71 http: Drop doxy comments 2014-03-11 22:08:56 +01:00
Luca Barbato
55a215ba63 http: Return meaningful error codes 2014-03-11 22:08:56 +01:00
Luca Barbato
db9d39b4b5 avformat: Report the duration analysis reached 2014-03-11 21:55:11 +01:00
Diego Biurrun
d92024f18f lavf: more correct printf format specifiers 2014-03-11 13:13:41 +01:00
Michael Niedermayer
77e9123fe5 lavf: always use av_free
Signed-off-by: Tim Walker <tdskywalker@gmail.com>
2014-03-10 18:02:55 +01:00
Tim Walker
34bbc81de8 lavf: simplify ff_hevc_annexb2mp4_buf
Use ff_hevc_annexb2mp4 instead of duplicating
its functionality, and update the documentation
to match the new behavior.
2014-03-10 18:02:36 +01:00
Luca Barbato
ee17be3fdd hevc: Use get_se_golomb_long
Do not use inline functions that refer to tables present in other
libraries.
2014-03-10 10:59:48 +01:00
Martin Storsjö
8cafeb8bca mxfdec: Validate parameters to strftime
The MSVCRT version of strftime calls the invalid parameter handler
if the struct values in struct tm are invalid. In case no invalid
parameter handler is set for the process, the process is aborted.

This fixes fate failures on MSVC builds since 570af382.

Based on a patch by Hendrik Leppkes.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-03-10 11:11:08 +02:00
Tim Walker
558b20d729 matroskaenc: enable Annex B to MP4 conversion for HEVC tracks. 2014-03-09 18:09:40 +01:00
Tim Walker
a823d09486 matroskaenc: write private data in hvcC format for HEVC. 2014-03-09 18:09:40 +01:00
Tim Walker
4f3db5d341 movenc: allow muxing HEVC in MODE_MP4. 2014-03-09 18:09:40 +01:00
Tim Walker
b6c61fb83e movenc: enable Annex B to MP4 conversion for HEVC tracks. 2014-03-09 18:09:40 +01:00
Tim Walker
20b40a597c movenc: write hvcC tag for HEVC. 2014-03-09 18:09:40 +01:00
Tim Walker
1d9014f0b0 movenc: use 'hev1' tag for HEVC in MODE_MOV.
'hvc1' requires that parameter set NAL units be
present only in the samples entry, but not in the
samples themselves, requiring that additional
parameter sets, if present, be filtered out of the
samples and placed in new, additional sample entries
if they override or otherwise conflict with the
parameter sets present in the first sample entry.
We do not have any way of doing this at present, so
the files we produce can only comply with the
restrictions set for the 'hev1' sample entry name in
ISO/IEC 14496-15.
2014-03-09 18:09:40 +01:00
James Zern
3e0175d89a riff: add VP9 fourcc 2014-03-09 18:09:39 +01:00
Ben Littler
fb0a988f94 riff: IPJ2 decodes with JPEG2000 decoder
Samples can be made from mencoder and jp2avi.dll codec.
2014-03-09 18:09:39 +01:00
Baptiste Coudurier
9e71cc81f3 movdec: handle 0x7fff langcode as macintosh per the specs
The correct point that seperates ISO and MAC language codes is 0x400
according to the current QT spec. Old QT specs did not list where this
seperation is but apparently only defined the meaning of the first 137.
2014-03-09 18:09:39 +01:00
Piotr Bandurski
8a0bc40545 libspeex: support ZygoAudio (quality 10 mode) 2014-03-09 18:09:39 +01:00
Mark Himsley
360022bd3b isom: lpcm in mov default to big endian
It is my understanding that "Unless otherwise stated, all data in a
QuickTime movie is stored in big-endian byte ordering" [1] in MOV files.

I have a couple of thousand files, which technically are invalid because
their sound sample description element 4CC is 'lpcm' but its version is
0 - and "Version 0 supports only uncompressed audio in raw ('raw ') or
twos-complement ('twos') format" [2]

Because isom.c only contains a mapping for 4CC 'lpcm' to
AV_CODEC_ID_PCM_S16LE, these files have their audio decoded as LE when
it is actually BE.

This commit adds AV_CODEC_ID_PCM_S16BE as the first match for 4CC 'lpcm'.

[1]
https://developer.apple.com/library/mac/documentation/quicktime/QTFF/qtff.pdf
page 21
[2]
https://developer.apple.com/library/mac/documentation/quicktime/QTFF/qtff.pdf
page 178

Reviewed-by: Yusuke Nakamura <muken.the.vfrmaniac@gmail.com>
2014-03-09 18:09:39 +01:00
Piotr Bandurski
db32f14c3d isom: add "MNG" FourCC 2014-03-09 18:09:39 +01:00
Carl Eugen Hoyos
073cd30fb4 isom: Support MPEG-2 video mov files from FPC5 2014-03-09 18:09:39 +01:00
Piotr Bandurski
31e558fbcf isom: add "NO16" FourCC 2014-03-09 18:09:39 +01:00
Piotr Bandurski
6509012398 isom: add Radius DV YUV FourCCs 2014-03-09 18:09:38 +01:00
Carl Eugen Hoyos
eeae858596 isom: Support Sony XAVC in mov
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2014-03-09 18:09:38 +01:00
Ben Littler
c09804684a isom: add xd51 hdcam
Someone needs to binary search FCP for new isom...
2014-03-09 18:09:38 +01:00
John Stebbins
565e0c6d86 movenc: allow override of "writing application" tag
Signed-off-by: Tim Walker <tdskywalker@gmail.com>

CC: libav-stable@libav.org
2014-03-08 18:59:35 +01:00
John Stebbins
0092c1dd8d matroskaenc: allow override of "writing application" tag
Signed-off-by: Tim Walker <tdskywalker@gmail.com>

CC: libav-stable@libav.org
2014-03-08 18:56:49 +01:00
Diego Biurrun
f69befe5ee matroskadec: cosmetics: Fix "attachement" vs. "attachment" typo 2014-03-07 13:54:18 +01:00
Keiji Costantini
84cfce9f99 matroskadec: K&R formatting cosmetics
Also sort #includes into canonical order.

Signed-off-by: Diego Biurrun <diego@biurrun.de>
2014-03-07 13:39:07 +01:00
Martin Storsjö
77eed91fab rtmppkt: Rename the ts_delta field to ts_field
Based on a suggestion by Martin Panter. This is more descriptive,
since it's the actual timestamp field from the RTMP packet,
which might or might not be a delta depending on context (in
some packets it's a delta, in some packets it's an absolute
timestamp, and in some packets it's 0xffffff to indicate that
the actual delta or absolute timestamp is transmitted separately).

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-03-07 10:43:51 +02:00
Martin Panter
8bbb02ae4f rtmppkt: Properly handle extended timestamps when writing
Signed-off-by: Martin Storsjö <martin@martin.st>
2014-03-07 10:43:47 +02:00
Martin Panter
48cfb5f411 rtmppkt: Add a descriptive comment
Signed-off-by: Martin Storsjö <martin@martin.st>
2014-03-07 10:43:37 +02:00
Martin Panter
5b2ad78f97 rtmppkt: Handle extended timestamp field even for one-byte header
Related fix in "rtmpdump":
https://repo.or.cz/w/rtmpdump.git/commitdiff/79459a2

Adobe's RTMP specification (21 Dec 2012), section 5.3.1.3 ("Extended
Timestamp"), says "this field is present in Type 3 chunks". Type 3 chunks are
those with the one-byte header size.

This resolves intermittent hangs and segfaults caused by the read function,
and also includes an untested fix for the write function.

The read function was tested with ABC (Australia) News 24 streams, however
they are probably restricted to only Australian internet addresses. Some of
the packets at the start of these streams seem to contain junk timestamp
fields, often requiring the extended field. Test command:

avplay rtmp://cp81899.live.edgefcs.net/live/news24-med@28772

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-03-07 10:43:26 +02:00
Luca Barbato
5b977c1d4f mxf: Return meaningful errors 2014-03-06 19:28:20 +01:00
Paul B Mahol
f06f6daaf8 mxf: Parse random index pack
Get the last partition offset and use it when footer partition
offset is missing.

Footer partition may not be present and even if present footer
partition offset may not be set in any partition except last one.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-03-06 19:28:20 +01:00
Matthieu Bouron
570af382ee mxf: Handle identification metadata
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-03-06 19:28:20 +01:00
Matthieu Bouron
5b930092c3 mxf: Set audio packets pts
Extrapolate audio timestamps based on the number of samples demuxed.

Deal with some MXF nastiness involving fractional number of
samples per EditUnit when seeking (the specs handwave this away).

Further fixes from Tomas Härdin.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-03-06 19:28:20 +01:00
Matthieu Bouron
e118bb1a33 mxf: Introduce ff_mxf_get_samples_per_frame
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-03-06 19:28:20 +01:00
Keiji Costantini
3407172b36 avienc: K&R formatting cosmetics
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2014-03-04 18:53:58 +01:00
Vittorio Giovara
5397386eff mathops: move macro to the only place it is used
This helps in disentangling lavf and lavc too.
2014-03-04 11:45:31 +01:00
Patrice Clement
5c9c305d14 ass: K&R formatting cosmetics 2014-03-02 13:23:13 +01:00
Tomas Härdin
c416b5cdf1 mxf: Add DNxHD UL
Note that the old DNxHD UL is actually JPEG 2000 according to RP224.
Leaving it as-is for now.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-02-21 15:46:10 +01:00
Philip de Nier
a9099e0402 mxf: Add uncompressed 422 8-bit rawvideo UL
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-02-21 15:46:05 +01:00
Leandro Dorileo
8370a6fa59 libavformat/mpegts: expose raw packet size
We cannot easily determine if an mpeg TS's packet size is DVHS, FEC
or so on, for that we need to expose the internal raw_packet_size
field.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-02-19 21:52:17 +01:00
Martin Storsjö
1e142d5b48 movenc: Add a fallback fragmentation method for plain mp4 as well
Previously the default fragmentation method was only enabled
if writing an ISM file.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-02-19 09:58:14 +02:00
Diego Biurrun
2f2b2efd31 doxygen: Replace @parblock syntax with manual linebreaks
@parblock is only supported in very recent Doxygen versions.
2014-02-17 15:36:17 +01:00
Diego Biurrun
4d7ab5cfeb doxygen: Add a number of missing function parameter descriptions 2014-02-17 15:36:09 +01:00
Diego Biurrun
b339182eba Move all example programs to doc/examples
Also drop support for building examples in library directories.
2014-02-16 21:37:21 +01:00
Janne Grunau
8a2250344b jv: detect partial packets in the demuxer
Fixes fate-jv under valgrind which reports a different CRC for the last
frame from a partial read.
2014-02-12 20:12:18 +01:00
Janne Grunau
f5d92d9cab asfdec: fix seeking with fragmented packets
After seeking fragments with an offset > 0 must be skipped to correctly
assemble packets.

Bug-Id: 43
2014-02-12 12:52:28 +01:00
Andrew Kelley
0c08256596 asfdec: short-circuit seeking to the start of stream
Bug-id: 43

Signed-off-by: Janne Grunau <janne-libav@jannau.net>
2014-02-12 12:52:28 +01:00
Janne Grunau
0ebb523f07 asfdec: check ff_get_guid() return values during seeking
Hitting EOF during seeking is quite likely. Fixes use of uninitialized
data during fate-seek-lavf-asf.
2014-02-12 12:52:28 +01:00
Anton Khirnov
394fb56c29 lavf: always unref the packet passed to av_interleaved_write_frame() on error 2014-02-10 15:08:06 +01:00
Anton Khirnov
18c896be3d lavf: extend / improve the AVFormatContext doxy 2014-02-10 11:46:49 +01:00
Anton Khirnov
54f7e79d47 lavf: add some basic documentation of the muxing process 2014-02-10 11:44:21 +01:00
Anton Khirnov
4c75059950 lavf: rewrite the av_write_frame() doxy
Remove some vague / incorrect statements and make the text more specific
and less confusing.
2014-02-10 11:37:30 +01:00
Anton Khirnov
ad7f2b69a5 lavf: rewrite the av_interleaved_write_frame() doxy
Remove some vague / incorrect statements and make the text more specific
and less confusing.
2014-02-10 11:34:41 +01:00
Anton Khirnov
38893dc028 pcmdec: replace a reachable assert with an error check
Libavformat should not make any assumptions about values returned from
other libraries. This assert is easily reachable by using a non-raw
codec id.
2014-02-10 07:41:21 +01:00
Janne Grunau
b37effdc52 mxfdec: free descriptor extradata in .read_close()
Fixes memleak in fate-mxf-demux.
2014-02-09 18:50:53 +01:00
Andrew Kelley
b0c2c097e4 lavf: default .ogg audio to libvorbis if we can
Since 2007, the Xiph.org Foundation recommends that .ogg only be used
for Ogg Vorbis audio files.

Source: http://wiki.xiph.org/index.php/MIME_Types_and_File_Extensions

However we only do it if we have libvorbis available because the
built in vorbis encoder is not as good.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2014-02-09 18:36:15 +01:00
Derek Buitenhuis
722554788b Add raw HEVC muxer
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-02-09 14:15:44 +00:00
Kostya Shishkov
cde7df25ef Mirillis FIC video decoder
Does not contain cursor rendering yet.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-02-08 15:04:13 +00:00
Luca Barbato
d9ae1031f5 lavf: improve handling of sparse streams when muxing
Currently ff_interleave_packet_per_dts() waits until it gets a frame for
each stream before outputting packets in interleaved order.

Sparse streams (i.e. streams with much fewer packets than the other
streams, like subtitles or audio with DTX) tend to add up latency and in
specific cases end up allocating a large amount of memory.

Emit the top packet from the packet_buffer if it has a time delta
larger than a specified threshold.

Original report of the issue and initial proposed solution by
mus.svz@gmail.com.

Bug-id: 31
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-02-04 22:01:42 +01:00
Vittorio Giovara
d509ae5be0 jvdec: K&R formatting cosmetics
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2014-02-04 12:35:38 +01:00
Anton Khirnov
33c859c142 lavf: ignore attachment streams for interleaving purposes
Those streams should never get any packets by definition.
2014-02-04 11:17:06 +01:00
Anton Khirnov
7b03b65bf0 lavf: do basic sanity checking on muxed packets
Reject packets for non-existing or attachment streams.
2014-02-04 11:10:55 +01:00
Matthieu Bouron
c716624853 mxf: Read field dominance flag
And export the information in field_order.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-02-01 16:26:44 +01:00
Luca Barbato
7d56f2fffc mxf: Handle negative edit_rate
Default to 1/25.
2014-02-01 16:25:07 +01:00
Janne Grunau
78987a88a8 lavf: include 60 fps in guessed standard frame rates
Due to what looks like an off-by-one error 60 * 12 * 1001 / 12 * 1001
is not tested as standard frame rate in avformat_find_stream_info().
2014-01-31 11:09:10 +01:00
Diego Biurrun
d67cfdeb53 avformat: utils: Refactor duplicated PRINT macro 2014-01-29 17:04:35 +01:00
Diego Biurrun
50ecf15712 avformat: utils: K&R formatting cosmetics
Also adjust some comment wording / spelling and reorder header #includes.
2014-01-26 18:09:00 +01:00
Martin Storsjö
2aec9e228c rtpdec_asf: Copy the need_parsing field from the chained demuxer
This fixes playback of mp3 streams in rtp/asf. This used to work
until c6f1dc8, but mostly by coincidence.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-01-23 17:37:10 +02:00
Martin Storsjö
89564be444 rtmpproto: Send a full, absolute timestamp if it isn't monotonically growing
The normal differential timestamps can't handle negative
differences, thus send a full packet header with an absolute
timestamp in these cases.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-01-20 21:57:02 +02:00
Martin Storsjö
24eb3c7916 rtmpproto: Avoid using uninitialized memory
If the url ends with .flv, we stripped it but didn't initialize
rt->playpath, doing av_strlcat on an uninitialized buffer.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-01-20 21:56:57 +02:00
Justin Ruggles
d01e684186 mov: do not set avg_frame_rate in the demuxer
The track duration is often not reliable or is not the duration
represented by the number of frames. In those cases, avg_frame_rate
was reported incorrectly. Removing this code falls back to the
default calculation in avformat_find_stream_info().

This is a partial revert of commit c3aeaa540.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-01-20 19:15:36 +00:00
Michael Niedermayer
c9db8694a8 avisynth: fix setting packet properties
Reviewed-by: Stephen Hutchinson <qyot27@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-01-17 11:11:08 +01:00
Anton Khirnov
5ef11b8dcc yuv4mpeg: set average frame rate 2014-01-17 10:30:45 +01:00
Anton Khirnov
33018907bd mp3enc: allow omitting the id3v2 header with -id3v2_version 0 2014-01-17 10:30:45 +01:00
Anton Khirnov
f9cc6883a4 mp3enc: add an option for disabling the Xing frame. 2014-01-17 10:30:45 +01:00
Martin Storsjö
2620df1310 mov: Free an earlier allocated array if allocating a new one
It could probably also be considered an error if the pointer isn't
null at this point, but then we might risk rejecting some
slightly broken files that we might have handled so far.

Sample-Id: 00000496-google
Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
Signed-off-by: Martin Storsjö <martin@martin.st>
2014-01-15 09:57:38 +02:00
Martin Storsjö
d51f09962d mov: Free intermediate arrays in the normal cleanup function
These arrays are normally freed at the end of mov_read_trak,
but make sure they're freed in case mov_read_trak returned
early (due to errors) or in case the atoms that allocate arrays
are encountered at some other point than within a trak (which
we don't have checks against).

Sample-Id: 00000496-google
Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
Signed-off-by: Martin Storsjö <martin@martin.st>
2014-01-15 09:57:26 +02:00
Tomas Härdin
cc1e3ace63 mxf: Fix potential leak in mxf_read_local_tags()
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-01-14 18:23:00 +01:00
Tomas Härdin
8b708f1c6b mxf: Correctly support files from Pinnacle Thunder
Such files have IndexTableSegments which when parsed cover EditUnit
ranges like this:

 [0,1)
 [249,250)
 [249,377)
 [0,249)

where each interval is

 [IndexStartPosition, IndexStartPosition + IndexDuration)

This would be reduced to a sparse index like:

 [0,1), [249,250)

instead of the full range:

 [0,249), [249,377)

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-01-14 18:13:29 +01:00
Michael Niedermayer
0d6605c7ef mxf: Fix a possible leak of extradata
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-01-14 18:13:29 +01:00
Luca Barbato
1a4e4ad0e0 mxf: Use av_malloc_array 2014-01-14 18:13:29 +01:00
Luca Barbato
f5fbbbc022 mxf: Drop unnecessary checks
av_reallocp_array does the check already.
2014-01-14 18:13:29 +01:00
Marton Balint
aa0cb16c15 mxf: Fix off by one error in d10 aes3 decoding
Without this fix the last sample was missing from the packet.
2014-01-14 18:13:22 +01:00
Luca Barbato
42f9132218 mxf: Do not use int to check the seek position
Overly large files are to be expected.

Reported-by: Jean-Baptiste Kempf <jb@videolan.org>
2014-01-14 17:29:03 +01:00
Reimar Döffinger
d84bd4650b mxf: Set AV_FIELD_PROGRESSIVE
Needed for AVC-intra

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-01-14 17:28:48 +01:00
Anton Khirnov
2115a35974 lavf: make av_probe_input_buffer more robust
Always use the actually read size as the offset instead of making
possibly invalid assumptions.

Addresses: CVE-2012-6618
2014-01-13 15:00:09 +01:00
Anton Khirnov
8b76362836 lavf: use a fixed width type
It's shorter and more consistent with the rest of the code.
2014-01-13 15:00:09 +01:00
Anton Khirnov
c1868e7ee7 lavf: simplify handling of offset in av_probe_input_buuffer() 2014-01-13 15:00:09 +01:00
Benjamin Larsson
547f834537 flv: Workaround for buggy Omnia A/XE encoder
The Omnia A/XE encoder writes the explicit extra data incorrectly
and wrongly disables parametric stereo. Truncating the extra data
by setting the size to 2 works around this. The AAC extra data
parser will then only parse the correct parts.

Bug-id: 599
2014-01-11 13:14:20 +01:00
Justin Ruggles
aa69cbc9e0 flac muxer: add option to disable writing the global header
The global header is not explicitly required for playback, and
omitting it allows for simple concatenation.
2014-01-09 16:09:41 -05:00
Maxim Polijakowski
e6f0bb6527 ATRAC3+ decoder
Cleanup by Diego Biurrun.

Signed-off-by: Kostya Shishkov <kostya.shishkov@gmail.com>
2014-01-09 19:33:07 +01:00
Diego Biurrun
9997cee04d network.h: Add #endif comments to improve readability 2014-01-06 21:16:54 +01:00
Anton Khirnov
6892d145a0 segafilm: fix leaks if reading the header fails
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC:libav-stable@libav.org
2014-01-06 08:26:09 +01:00
Anton Khirnov
3867f3718b lavf: remove a pointless check
AVStream.codec is always non-NULL
2014-01-06 08:21:53 +01:00
Anton Khirnov
75647dea6f oggparseogm: check timing variables
Fixes a potential divide by zero.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC:libav-stable@libav.org
2014-01-06 08:21:38 +01:00
Martin Storsjö
82b9799bb2 sdp: Check that fmt->oformat is non-null before accessing it
This avoids crashes when avserver tries to create an SDP, since
d77f4af.

CC: libav-stable@libav.org
Signed-off-by: Martin Storsjö <martin@martin.st>
2014-01-05 01:33:46 +02:00
Anton Khirnov
1b5d065ca7 pmpdec: check that there is at least one audio packet.
The code cannot handle there being none, but that should not happen for
valid files.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC:libav-stable@libav.org
2014-01-03 16:40:22 +01:00
Diego Biurrun
b83d1ee3b4 avutil: Move library version related macros to version.h
This is a more sensible place for these macros.
2013-12-26 19:05:22 +01:00
Luca Barbato
1716b4c7b8 mms: Remove non-utf8 characters
Certain softwares get badly confused.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-12-26 06:07:35 +01:00
Justin Ruggles
be7c323176 Add a libwebp encoder 2013-12-21 17:01:42 -05:00
Luca Barbato
f412b2c9f3 flv: Use the correct type to hold the file offset 2013-12-20 17:44:20 +01:00
Luca Barbato
15739a9bd1 jvdec: Do not feed the decoder with known wrong data
Still assume the size value is right in non-explode mode.
2013-12-20 17:44:20 +01:00
Paul B Mahol
e518cb863e jvdec: Fix memory leak of jv->frames
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-12-20 17:44:20 +01:00
Luca Barbato
027712e851 jvdec: Return EOF on end of file 2013-12-20 17:44:20 +01:00
Michael Niedermayer
9aba0a6f7b rtpdec_h264: Check the return value of functions doing allocations
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-12-14 17:48:46 +02:00
Martin Storsjö
6451c8853a sdp: Check theora colorspace before producing the configuration string
This avoids a memory leak (or having to worry about freeing the
config string) if the colorspace isn't accepted.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-12-14 17:48:46 +02:00
Michael Niedermayer
797f2a7913 hdsenc: Check the init_file() return code
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-12-14 17:48:46 +02:00
Michael Niedermayer
b8ed15d637 hdsenc: Fix an off by one error in an array size check
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-12-14 17:48:42 +02:00
Michael Niedermayer
417927af3c hdsenc: Avoid integer overflow
Also remove a silly leftover pair of parentheses.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-12-14 17:48:28 +02:00
Carl Eugen Hoyos
9fa75be96d mpegts: add HEVC registration descriptor 2013-12-12 16:10:15 +01:00
Martin Lambers
ae9d13f03e img2: add stereo 3d still picture file extensions 2013-12-12 16:10:15 +01:00
Vittorio Giovara
46c0cbd5dc rtsp: suppress a incompatible pointer types warning 2013-12-12 16:10:14 +01:00
Rumin Sam
70e981cf5d rtspdec: Fix keep-alive request for ACTi cameras
Some ACTi cameras fail if "*" is passed as the URI.

Signed-off-by: Ismael Luceno <ismael.luceno@corp.bluecherry.net>
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-12-11 22:48:55 +02:00
Anton Khirnov
281a40e18f lavf: remove an unneeded call to avcodec_get_frame_defaults().
avcodec_decode_*() resets the frame itself.
2013-12-11 20:39:55 +01:00
Anton Khirnov
eb891b3114 Replace all uses of avcodec_free_frame with av_frame_free(). 2013-12-11 20:39:54 +01:00
Diego Biurrun
d64341e498 configure: Prefix libc-related variables with "libc_"
Simplifies host/target libc detection splitting.
2013-12-09 11:47:43 +01:00