Commit Graph

155 Commits

Author SHA1 Message Date
Paul B Mahol d78fd2fa21 Add MagicYUV decoder
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2016-06-20 15:45:51 -04:00
Vittorio Giovara 41ed7ab45f cosmetics: Fix spelling mistakes
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2016-05-04 18:16:21 +02:00
Anton Khirnov 9200514ad8 lavf: replace AVStream.codec with AVStream.codecpar
Currently, AVStream contains an embedded AVCodecContext instance, which
is used by demuxers to export stream parameters to the caller and by
muxers to receive stream parameters from the caller. It is also used
internally as the codec context that is passed to parsers.

In addition, it is also widely used by the callers as the decoding (when
demuxer) or encoding (when muxing) context, though this has been
officially discouraged since Libav 11.

There are multiple important problems with this approach:
    - the fields in AVCodecContext are in general one of
        * stream parameters
        * codec options
        * codec state
      However, it's not clear which ones are which. It is consequently
      unclear which fields are a demuxer allowed to set or a muxer allowed to
      read. This leads to erratic behaviour depending on whether decoding or
      encoding is being performed or not (and whether it uses the AVStream
      embedded codec context).
    - various synchronization issues arising from the fact that the same
      context is used by several different APIs (muxers/demuxers,
      parsers, bitstream filters and encoders/decoders) simultaneously, with
      there being no clear rules for who can modify what and the different
      processes being typically delayed with respect to each other.
    - avformat_find_stream_info() making it necessary to support opening
      and closing a single codec context multiple times, thus
      complicating the semantics of freeing various allocated objects in the
      codec context.

Those problems are resolved by replacing the AVStream embedded codec
context with a newly added AVCodecParameters instance, which stores only
the stream parameters exported by the demuxers or read by the muxers.
2016-02-23 17:01:58 +01:00
Vittorio Giovara c45fcf30cf DXV decoder
Support all DXDI and DXD3 normal quality videos.
2015-09-02 22:22:02 +02:00
Vittorio Giovara 059a934806 lavc: Consistently prefix input buffer defines
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-07-27 15:24:59 +01:00
Vittorio Giovara 7ca3e5203f Hap decoder and encoder
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-06-22 15:23:08 +01:00
Vittorio Giovara 1a3eb042c7 Replace av_dlog with normal av_log at trace level
This applies to every library where performance is not critical.
2015-04-19 12:41:59 +01:00
Paul B Mahol cf9861dea5 isom: Add X-Com Radvision FourCC
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-03-17 13:34:22 +00:00
Luca Barbato 96dd04427f isom: Add support for TSCC2
As produced by Camtasia 4.
2015-03-17 12:21:23 +01:00
Carl Eugen Hoyos 67e9f3907d isom: Decode Prores 4444 XQ with the existing Prores decoder
The frames seem to contain a higher bitrate which our decoder is
able to handle.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-02-03 15:23:21 +00:00
Justin Ruggles 8e03ca2fff isom: add 'mp1v' fourcc
As referenced in the CoreMedia API docs.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-01-06 17:05:53 +01:00
Peter Ross 07761294fc Silicon Graphics RLE 8-bit video decoder
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2014-04-19 16:24:26 +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
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 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 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
Michael Niedermayer 6d7b22fb8f isom: fix C99-style declaration 2014-03-16 23:05:48 +01: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
Tim Walker 4f3db5d341 movenc: allow muxing HEVC in MODE_MP4. 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
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
Reimar Döffinger ecf442a58b lavf: improve support for AVC-Intra files.
Generate extradata with SPS/PPS based on container dimensions.

Authors of this commit are: Reimar and Thomas Mundt

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-11-14 18:59:39 +01:00
Yusuke Nakamura ea29f965dc mov: Support HEVC demuxing
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-10-31 20:20:32 +01:00
Kostya Shishkov 1232a1647a Apple Intermediate Codec decoder 2013-05-17 06:31:05 +02:00
Diego Biurrun 2832ea26f3 Remove commented-out debug #define cruft 2013-05-16 00:23:30 +02:00
Janne Grunau bb2bab92e7 mov: handle h263 and flv1 for codec_tag 'H','2','6','3'
The sample in https://bugzilla.libav.org/show_bug.cgi?id=393 and
samples/F4V/H263_NM_f.mp4 both have codec_tag H263 for different
codecs. H263 is apparently used by Flash Media Server for Sorensen
Spark videos.

Patch based on commit 5442083b1c by
Carl Eugen Hoyos. Fixes bug 393.
2012-12-19 14:50:14 +01:00
Justin Ruggles bfe5454cd2 lavf: move ff_codec_get_tag() and ff_codec_get_id() definitions to internal.h 2012-11-28 11:18:49 -05:00
Anton Khirnov 36ef5369ee Replace all CODEC_ID_* with AV_CODEC_ID_* 2012-08-07 16:00:24 +02:00
Martin Storsjö 9e74db6850 mov: Support muxing/demuxing iLBC
The packet size, signalled via block_align, has to be passed via
the container.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-06-18 22:00:35 +03:00
Hendrik Leppkes 949d942eef mov: support eac3 audio
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2012-04-25 15:24:14 -04:00
Yusuke Nakamura 462a5b7839 isom: Support more DTS codec identifiers.
DTS LBR identifier ('dtse') is not included since libavcodec doesn't support it yet.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2012-04-23 14:47:17 -04:00
Alex Converse b142496c56 mov: Add more HDV and XDCAM FourCCs.
Reference: VLC
2012-02-22 11:23:43 -08:00
Alex Converse 0ad522afb3 mov: Add support for MPEG2 HDV 720p24 (hdv4) 2012-02-21 14:20:28 -08: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
Derek Buitenhuis 80f6c0bb95 v410 encoder and decoder
v410 is a packed 10-bit 4:4:4 YCbCr format used in
QuickTime.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2011-12-13 23:34:24 +01:00
Justin Ruggles 4c38633352 isom: sort and pretty-print codec_movaudio_tags[]
original order is retained within the same tag or codec id to maintain the
muxing/demuxing priority.
2011-12-09 16:12:58 -05:00
Justin Ruggles 7714770de1 isom: remove pointless comments in codec_movaudio_tags[] 2011-12-09 16:12:58 -05:00
Justin Ruggles 21ebf2d493 isom: remove commented-out tag for vorbis 2011-12-09 16:12:58 -05:00
Janne Grunau fd095539d1 latmdec: fix audio specific config parsing
Pass the correct size in bits to mpeg4audio_get_config and add a flag
to disable parsing of the sync extension when the size is not known.

Latm with AudioMuxVersion 0 does not specify the size of the audio
specific config. Data after the audio specific config can be
misinterpreted as sync extension resulting in random and wrong configs.
2011-12-03 00:42:48 +01:00