OSDN Git Service
Anton Khirnov [Wed, 28 Jan 2015 12:26:24 +0000 (13:26 +0100)]
h264: use the main H264Context as the parent for all slice contexts
There is now no need to have per-slice copies of the H264Context.
Anton Khirnov [Wed, 28 Jan 2015 12:24:32 +0000 (13:24 +0100)]
h264_slice: constify all the uses of H264Context during slice decoding
All the variables modified by this code are either per-MB arrays or have
been moved to the per-slice context
Anton Khirnov [Sat, 17 Jan 2015 21:28:46 +0000 (22:28 +0100)]
h264: move rbsp_buffer into the per-slice context
Anton Khirnov [Sat, 17 Jan 2015 21:28:46 +0000 (22:28 +0100)]
h264: move remaining ER stuff into the per-slice context
Anton Khirnov [Wed, 28 Jan 2015 11:38:57 +0000 (12:38 +0100)]
error_resilience: do not require mbintra/skip tables
h264dec does not use them at all and only allocates them for ER.
Anton Khirnov [Sat, 17 Jan 2015 21:28:46 +0000 (22:28 +0100)]
h264: move top_borders into the per-slice context
Also change the method for allocating to the same one as used by
edge_emu_buffer.
Anton Khirnov [Sat, 17 Jan 2015 21:28:46 +0000 (22:28 +0100)]
h264: move the scratch buffers into the per-slice context
Also change the method for allocating them. Instead of two possible
alloc calls from different places, just ensure they are allocated at the
start of each slice. This should be simpler and less bug-prone than the
previous method.
Anton Khirnov [Tue, 27 Jan 2015 14:53:33 +0000 (15:53 +0100)]
h264_loopfilter: constify all uses of H264Context
All the variables modified by this code are either per-MB arrays or have
been moved to the per-slice context
Anton Khirnov [Tue, 27 Jan 2015 14:53:33 +0000 (15:53 +0100)]
h264_cavlc: constify all uses of H264Context
All the variables modified by this code are either per-MB arrays or have
been moved to the per-slice context
Anton Khirnov [Tue, 27 Jan 2015 14:53:33 +0000 (15:53 +0100)]
h264_cabac: constify all uses of H264Context
All the variables modified by this code are either per-MB arrays or have
been moved to the per-slice context
Anton Khirnov [Tue, 27 Jan 2015 14:53:33 +0000 (15:53 +0100)]
h264.c: constify all uses of H264Context in slice and lower-level functions
All the variables modified by this code are either per-MB arrays or have
been moved to the per-slice context
Anton Khirnov [Sat, 17 Jan 2015 21:28:46 +0000 (22:28 +0100)]
h264: move mb_mbaff into the per-slice context
Anton Khirnov [Sat, 17 Jan 2015 21:28:46 +0000 (22:28 +0100)]
h264: move mb_field_decoding_flag into the per-slice context
Anton Khirnov [Tue, 27 Jan 2015 14:53:33 +0000 (15:53 +0100)]
h264_mb: constify all uses of H264Context
All the variables modified by this code are either per-MB arrays or have
been moved to the per-slice context
Anton Khirnov [Tue, 27 Jan 2015 15:05:31 +0000 (16:05 +0100)]
h264_mb: constify block_offset
It is read-only in this code.
Anton Khirnov [Tue, 27 Jan 2015 14:53:33 +0000 (15:53 +0100)]
h264_mvpred: constify all uses of H264Context
All the variables modified by this code are either per-MB arrays or have
been moved to the per-slice context
Anton Khirnov [Tue, 27 Jan 2015 14:53:33 +0000 (15:53 +0100)]
h264.h: constify all uses of H264Context
All the variables modified by this code are either per-MB arrays or have
been moved to the per-slice context
Anton Khirnov [Tue, 27 Jan 2015 14:53:33 +0000 (15:53 +0100)]
h264_direct: constify all uses of H264Context
All the variables modified by this code are either per-MB arrays or have
been moved to the per-slice context
Anton Khirnov [Tue, 27 Jan 2015 13:39:06 +0000 (14:39 +0100)]
h264: use a separate GetBitContext for slice data
Anton Khirnov [Tue, 27 Jan 2015 13:25:01 +0000 (14:25 +0100)]
h264: do not abuse the context as a temporary storage in get_last_needed_nal()
Use a local variable instead.
Anton Khirnov [Tue, 27 Jan 2015 13:21:09 +0000 (14:21 +0100)]
h264: remove some remnants of data partitioning
Anton Khirnov [Sat, 17 Jan 2015 21:28:46 +0000 (22:28 +0100)]
h264: move resync_mb_{x,y} into the per-slice context
Anton Khirnov [Sat, 17 Jan 2015 21:28:46 +0000 (22:28 +0100)]
h264: move mb_{x,y} into the per-slice context
Anton Khirnov [Sat, 17 Jan 2015 21:28:46 +0000 (22:28 +0100)]
h264: move mb_xy into the per-slice context
Anton Khirnov [Sat, 17 Jan 2015 21:28:46 +0000 (22:28 +0100)]
h264: move is_complex into the per-slice context
Anton Khirnov [Sat, 17 Jan 2015 21:28:46 +0000 (22:28 +0100)]
h264: move mb_skip_run into the per-slice context
Anton Khirnov [Sat, 17 Jan 2015 21:28:46 +0000 (22:28 +0100)]
h264: move redundant_pic_count into the per-slice context
Anton Khirnov [Sat, 17 Jan 2015 21:28:46 +0000 (22:28 +0100)]
h264: move cabac_init_idc into the per-slice context
Anton Khirnov [Sat, 17 Jan 2015 21:28:46 +0000 (22:28 +0100)]
h264: move loopfilter parameters into the per-slice context
Anton Khirnov [Sat, 17 Jan 2015 21:28:46 +0000 (22:28 +0100)]
h264: move direct_cache into the per-slice context
Anton Khirnov [Sat, 17 Jan 2015 21:28:46 +0000 (22:28 +0100)]
h264: move mvd_cache into the per-slice context
Anton Khirnov [Sat, 17 Jan 2015 21:28:46 +0000 (22:28 +0100)]
h264: move mvd_table into the per-slice context
Anton Khirnov [Sat, 17 Jan 2015 21:28:46 +0000 (22:28 +0100)]
h264: move last_qscale_diff into the per-slice context
Anton Khirnov [Sat, 17 Jan 2015 21:28:46 +0000 (22:28 +0100)]
h264: move [{top,left}_]cbp into the per-slice context
Anton Khirnov [Sat, 17 Jan 2015 21:28:46 +0000 (22:28 +0100)]
h264: move cabac[_state] into the per-slice context
Anton Khirnov [Sat, 17 Jan 2015 21:28:46 +0000 (22:28 +0100)]
h264: move mb[_{padding,luma_dc}] into the per-slice context
Anton Khirnov [Sat, 17 Jan 2015 21:28:46 +0000 (22:28 +0100)]
h264: move intra_pcm_ptr into the per-slice context
Anton Khirnov [Sat, 17 Jan 2015 21:28:46 +0000 (22:28 +0100)]
h264: move the ref lists variables into the per-slice context
Anton Khirnov [Sat, 17 Jan 2015 21:28:46 +0000 (22:28 +0100)]
h264: move map_col_to_list0[_field] into the per-slice context
Anton Khirnov [Sat, 17 Jan 2015 21:28:46 +0000 (22:28 +0100)]
h264: move dist_scale_factor[_field] into the per-slice context
Anton Khirnov [Sat, 17 Jan 2015 21:28:46 +0000 (22:28 +0100)]
h264: move col_{parity,fieldoff} into the per-slice context
Anton Khirnov [Sat, 17 Jan 2015 21:28:46 +0000 (22:28 +0100)]
h264: move direct_spatial_mv_pred into the per-slice context
Anton Khirnov [Sat, 17 Jan 2015 21:28:46 +0000 (22:28 +0100)]
h264: move sub_mb_type into the per-slice context
Anton Khirnov [Sat, 17 Jan 2015 21:28:46 +0000 (22:28 +0100)]
h264: move the slice type variables into the per-slice context
Anton Khirnov [Sat, 17 Jan 2015 21:28:46 +0000 (22:28 +0100)]
h264: move mb_[uv]linesize into the per-slice context
Anton Khirnov [Sat, 17 Jan 2015 21:28:46 +0000 (22:28 +0100)]
h264: move neighbor_transform_size into the per-slice context
Anton Khirnov [Sat, 17 Jan 2015 21:28:46 +0000 (22:28 +0100)]
h264: move {mv,ref}_cache into the per-slice context
Anton Khirnov [Sat, 17 Jan 2015 21:28:46 +0000 (22:28 +0100)]
h264: move non_zero_count_cache into the per-slice context
Anton Khirnov [Sat, 17 Jan 2015 21:28:46 +0000 (22:28 +0100)]
h264: move *_samples_available into the per-slice context
Anton Khirnov [Sat, 17 Jan 2015 21:28:46 +0000 (22:28 +0100)]
h264: move intra4x4_pred_mode[_cache] into the per-slice context
Anton Khirnov [Sat, 17 Jan 2015 21:28:46 +0000 (22:28 +0100)]
h264: move some neighbour information into the per-slice context
Anton Khirnov [Sat, 17 Jan 2015 21:28:46 +0000 (22:28 +0100)]
h264: move {chroma,intra16x16}_pred_mode into the per-slice context
Anton Khirnov [Sat, 17 Jan 2015 21:28:46 +0000 (22:28 +0100)]
h264: move {prev,next}_mb_skipped into the per-slice context
Anton Khirnov [Sat, 17 Jan 2015 21:28:46 +0000 (22:28 +0100)]
h264: move qp_thresh into the per-slice context
Anton Khirnov [Sat, 17 Jan 2015 21:28:46 +0000 (22:28 +0100)]
h264: move the quantizers into the per-slice context
Anton Khirnov [Sat, 17 Jan 2015 20:51:40 +0000 (21:51 +0100)]
h264: do not copy qscale when updating per-thread contexts
It's a per-slice quantity constructed when parsing the slice header.
Anton Khirnov [Sat, 17 Jan 2015 17:45:29 +0000 (18:45 +0100)]
h264: split weighted pred-related vars into per-slice context
Anton Khirnov [Fri, 20 Mar 2015 20:49:23 +0000 (21:49 +0100)]
h264_ps: properly check cropping parameters against overflow
CC: libav-stable@libav.org
Anton Khirnov [Fri, 20 Mar 2015 20:30:29 +0000 (21:30 +0100)]
hevc: zero the correct variables on invalid crop parameters
It's the output_window that is applied to the output frame, not
pic_conf_win
Anton Khirnov [Fri, 20 Mar 2015 20:28:34 +0000 (21:28 +0100)]
hevc: make the crop sizes unsigned
Luca Barbato [Wed, 11 Mar 2015 00:44:47 +0000 (01:44 +0100)]
avconv: Print the avfilter errors
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
Luca Barbato [Wed, 18 Mar 2015 12:40:12 +0000 (13:40 +0100)]
cmdutils: Add a stream specifier to map usable streams
It drops everything that cannot be used for re-encoding and/or
streamcopy.
Andreas Cadhalpun [Thu, 5 Mar 2015 21:48:28 +0000 (22:48 +0100)]
webp: ensure that each transform is only used once
According to the WebP Lossless Bitstream Specification
"each transform is allowed to be used only once".
If a transform is more than once this can lead to memory
corruption.
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
Anton Khirnov [Thu, 12 Mar 2015 22:14:08 +0000 (23:14 +0100)]
movenc: write the display transform matrix
Martin Storsjö [Sun, 15 Mar 2015 22:18:37 +0000 (00:18 +0200)]
ismindex: Calculate the pts duration of trun atoms, not the dts duration
Since the duration is compared to the tfra durations/intervals which
are expressed in pts, calculate that here as well.
Signed-off-by: Martin Storsjö <martin@martin.st>
Martin Storsjö [Sun, 15 Mar 2015 21:57:06 +0000 (23:57 +0200)]
movenc: Don't assume that fragment durations in pts is equal to duration in dts
For strict CFR, they should be pretty much equal, but if the stream
is VFR, there can be a sometimes significant difference.
Calculate the pts duration separately, used in sidx atoms and for
tfrf/tfxd boxes in smooth streaming ismv files.
Also make sure to reduce the duration of sidx entries according to
edit lists.
Signed-off-by: Martin Storsjö <martin@martin.st>
Martin Storsjö [Mon, 16 Mar 2015 13:08:49 +0000 (15:08 +0200)]
movenc: Move sidx edit list timestamp adjustment into a block
When reading these values from track->frag_info, the same adjustment
has already been done.
Signed-off-by: Martin Storsjö <martin@martin.st>
Martin Storsjö [Sun, 15 Mar 2015 21:40:06 +0000 (23:40 +0200)]
movenc: Only adjust the cts offset at the start of fragments if necessary
Adjusting it is only necessary when a sidx/tfrf/tfxd atom already has
been written for the previous fragment (since the sidx/tfrf/tfxd atoms
include the duration between the first pts of the previous fragment, to
the first pts of the new fragment).
Signed-off-by: Martin Storsjö <martin@martin.st>
Martin Storsjö [Mon, 16 Mar 2015 11:02:59 +0000 (13:02 +0200)]
movenc: Write pts timestamps in tfxd, instead of dts timestamps
This matches what we write in tfra and tfrf since
9cbf70fa0e.
Signed-off-by: Martin Storsjö <martin@martin.st>
Martin Storsjö [Mon, 9 Mar 2015 09:47:54 +0000 (11:47 +0200)]
movenc: Set the last packet duration based on the next packet when autoflushing
When automatically flushing fragments based on set conditions
(fragmentation on keyframes, after some interval or byte size),
we already have the next packet for one stream - use this for setting
the duration of the last packet in the flushed fragment correctly.
This avoids having to adjust the timestamp of the first packet in
the new fragment since the last duration was unknown.
Unfortunately, this only works for automatic flushing (not for
caller-triggered flushing, like in the dash muxer), and only for the
one single track that triggered the flushing. The duration of the
last sample in all other tracks still is dependent on AVPacket
duration (or heuristics).
Signed-off-by: Martin Storsjö <martin@martin.st>
Martin Storsjö [Fri, 6 Mar 2015 20:30:31 +0000 (22:30 +0200)]
dashenc: Heuristically fill in the duration of packets that need it
This avoids that the mp4 muxer does a similar heuristic, adjusting
the timestamps in a way that the dash muxer doesn't know the actual
timestamps written to the file in the end. By making sure that the
mp4 muxer internal heuristic isn't applied, we know the exact
timestamps written to file, so that the timestamps in manifest match
the files.
Signed-off-by: Martin Storsjö <martin@martin.st>
Martin Storsjö [Fri, 6 Mar 2015 13:45:50 +0000 (15:45 +0200)]
movenc: Heuristically set the duration of the last sample in a fragment if not set
Even if this is a guess, it is way better than writing a zero duration
of the last sample in a fragment (because if the duration is zero,
the first sample of the next fragment will have the same timestamp
as the last sample in the previous one).
Since we normally don't require libavformat muxer users to set
the duration field in AVPacket, we probably can't strictly require
it here either, so don't log this as a strict warning, only as info.
Signed-off-by: Martin Storsjö <martin@martin.st>
Martin Storsjö [Thu, 19 Mar 2015 07:28:25 +0000 (09:28 +0200)]
udp: Fix crashes after adding AVOptions
Add a missing AVClass member, check whether localaddr is null.
(Previously, localaddr was always a local stack buffer, while it
now also can be an avoption string which can be null.)
This fixes crashes when not passing any localaddr parameter, since
66028b7ba.
Signed-off-by: Martin Storsjö <martin@martin.st>
Derek Buitenhuis [Mon, 16 Mar 2015 20:08:35 +0000 (20:08 +0000)]
mov: Add option to keep exact packet sequence after seeking
The current behavior may produce a different sequence of packets
after seeking, compared to demuxing linearly from the beginning.
This is because the MOV demuxer seeks in each stream individually,
based on timestamp, which may set each stream at a slightly different
position than if the file would have been read sequentially.
This makes implementing certain operations, such as segmenting,
quite hard, and slower than need be.
Therefore, add an option which retains the same packet sequence
after seeking, as when a file is demuxed linearly.
Martin Storsjö [Tue, 17 Mar 2015 12:40:40 +0000 (14:40 +0200)]
Replace a few leftover instances of enum PixelFormat with enum AVPixelFormat
Signed-off-by: Martin Storsjö <martin@martin.st>
Vittorio Giovara [Mon, 16 Mar 2015 13:09:50 +0000 (13:09 +0000)]
fate: Move tdsc to the appropriate screen capture file
Vittorio Giovara [Fri, 13 Mar 2015 19:45:14 +0000 (19:45 +0000)]
mov: Fix little endian audio detection
Set this field to TRUE if the audio component is to operate on
little-endian data, and FALSE otherwise.
However TRUE and FALSE are not defined. Since this flag is just a boolean,
interpret all values except for 0 as little endian.
Sample-Id: 64bit_FLOAT_Little_Endian.mov
Vittorio Giovara [Wed, 11 Mar 2015 19:25:00 +0000 (19:25 +0000)]
aacsbr: Fix type for index variable
Prevents unsigned overflow and variable truncation.
Bug-Id: CID 603186
Vittorio Giovara [Mon, 16 Mar 2015 13:40:35 +0000 (13:40 +0000)]
hqx: Drop unused offsets table
This is a leftover from the static to dynamic vlc table conversion.
Carl Eugen Hoyos [Mon, 16 Mar 2015 11:58:29 +0000 (11:58 +0000)]
lavf: Do not list mov-only codecs in riff tags
Instead check for all mov code-points when demuxing avi
and print a warning if a video codec is found like this.
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
Paul B Mahol [Mon, 16 Mar 2015 10:42:39 +0000 (10:42 +0000)]
isom: Add X-Com Radvision FourCC
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Vittorio Giovara [Mon, 16 Mar 2015 10:34:12 +0000 (10:34 +0000)]
riff: Add 'tshd' FourCC for H.264
Carl Eugen Hoyos [Tue, 17 Mar 2015 13:29:05 +0000 (13:29 +0000)]
libx264: Allow full-range yuv422 and yuv444 pixel formats
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
Niels Möller [Mon, 16 Mar 2015 21:31:41 +0000 (22:31 +0100)]
dca: Read params->pancABIT0[param_index] only if part0 is set
Prevent a spurious read from uninitialized memory.
Luca Barbato [Mon, 16 Mar 2015 10:26:48 +0000 (11:26 +0100)]
x86: Put COPY3_IF_LT under HAVE_6REGS
It uses 6 registers, unbreaks building on hardened x86 system.
Bug-Id: gentoo/541930
CC: libav-stable@libav.org
Luca Barbato [Mon, 16 Mar 2015 13:18:45 +0000 (14:18 +0100)]
isom: Add support for TSCC2
As produced by Camtasia 4.
Diego Biurrun [Sun, 15 Mar 2015 14:55:03 +0000 (15:55 +0100)]
configure: Disable shift operator precedence warnings with MSVC
Martin Storsjö [Tue, 10 Sep 2013 12:35:41 +0000 (15:35 +0300)]
movenc: Allow interleaving samples when writing fragmented files
This is incompatible with the omit_tfhd_offset flag (writing
position independent fragments with interleaving requires the
default_base_moof flag).
This makes the moof atoms slightly bigger, but can be better for
playback (improving locality of sample data in the mdat).
Signed-off-by: Martin Storsjö <martin@martin.st>
Martin Storsjö [Tue, 10 Sep 2013 12:24:24 +0000 (15:24 +0300)]
movenc: Support writing multiple trun atoms
This is needed if all the data for one track isn't continuous
within the mdat. Normally we make sure all the data for one
track is continuous, but in new cases we will need to have
the samples interleaved.
Signed-off-by: Martin Storsjö <martin@martin.st>
Janne Grunau [Thu, 26 Feb 2015 20:54:55 +0000 (21:54 +0100)]
configure: move cross_compile checks after the toolchain section
Janne Grunau [Wed, 25 Feb 2015 17:16:52 +0000 (18:16 +0100)]
configure: handle Apple's armv7s in probe_arm_arch()
Janne Grunau [Thu, 26 Feb 2015 21:04:12 +0000 (22:04 +0100)]
fate: add explicit support for the toolchain configure option
Janne Grunau [Mon, 9 Mar 2015 22:19:55 +0000 (23:19 +0100)]
doc: fate: remove outdated SSH key fingerprint
Luca Barbato [Sun, 15 Mar 2015 22:49:17 +0000 (23:49 +0100)]
mkv: Add support for DVB subtitles
Bug-Id: 833
Himangi Saraogi [Sat, 14 Mar 2015 15:52:25 +0000 (21:22 +0530)]
libswscale: fix compiler warnings enumerated type mixed with another type
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
Luca Barbato [Fri, 13 Mar 2015 16:00:12 +0000 (17:00 +0100)]
udp: Use AVOptions
Add AVOptions for options currently available as url parameters.
Luca Barbato [Fri, 13 Mar 2015 13:33:41 +0000 (14:33 +0100)]
sctp: Update to match tcp
Use AVOption and fallback over multiple addresses
Diego Biurrun [Wed, 18 Feb 2015 23:05:22 +0000 (00:05 +0100)]
fate: Add test for DCA XLL
Niels Möller [Tue, 11 Feb 2014 10:45:27 +0000 (11:45 +0100)]
dca: Support for XLL (lossless extension)
Cleanup and integration by Diego Biurrun.
Signed-off-by: Diego Biurrun <diego@biurrun.de>
Diego Biurrun [Thu, 12 Mar 2015 23:23:32 +0000 (00:23 +0100)]
dca: Mark syncword constants unsigned; they do not fit in 32-bit signed int