Anton Khirnov
066aafced4
h264: move direct_spatial_mv_pred into the per-slice context
10 years ago
Anton Khirnov
56febc993b
h264: move the slice type variables into the per-slice context
10 years ago
Anton Khirnov
e6287f077c
h264: move {mv,ref}_cache into the per-slice context
10 years ago
Anton Khirnov
f69574cf7a
h264: move non_zero_count_cache into the per-slice context
10 years ago
Anton Khirnov
64c81b2cd0
h264: move *_samples_available into the per-slice context
10 years ago
Anton Khirnov
7d8154edd5
h264: move intra4x4_pred_mode[_cache] into the per-slice context
10 years ago
Anton Khirnov
92c6c2a605
h264: split weighted pred-related vars into per-slice context
10 years ago
Anton Khirnov
a06b0b1295
h264: initialize H264Context.avctx in init_thread_copy
This prevents using a wrong (first thread's) AVCodecContext if decoding
a frame in the first pass over all threads fails.
10 years ago
Michael Niedermayer
61928b68dc
h264: Do not share rbsp_buffer across threads
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
CC: libav-stable@libav.org
11 years ago
Anton Khirnov
167e004e1a
h264: drop any pretense of support for data partitioning
It does not work correctly and apparently never did. There is no
indication that this (mis)feature is ever used in the wild or even that
any software other than the reference supports it.
Since the code that attempts to support it adds some nontrivial
complexity and has resulted in several bugs in the past, it is better to
just drop it.
10 years ago
Anton Khirnov
ecab21ac47
h264: do not reset the ref lists in flush_change()
They are always constructed anew when needed, so there is no need to
reset them explicitly.
10 years ago
Anton Khirnov
9404a47a2d
h264: move parser-only variables to their own context
10 years ago
Anton Khirnov
cf1e0786ed
error_resilience: move the MECmpContext initialization into ER code
Currently, it needs to be initialized by the ER caller (which is
currently either a mpegvideo decoder or h264dec). However, since none of
those decoders use MECmpContext for anything except ER, it makes more
sense to handle it purely inside ER.
10 years ago
Anton Khirnov
f9f883af4f
h264: simplify code in flush_dpb()
There is no point in clearing reference explicitly, since that will be
done as a part of ff_h264_unref_picture() right below.
10 years ago
Anton Khirnov
60d4c6ff76
h264: restore a block mistakenly removed in e10fd08a
CC: libav-stable@libav.org
Bug-ID: 781
10 years ago
Michael Niedermayer
d69d787dad
h264: proper cleanup in ff_h264_alloc_tables() if DPB alloc fails
CC: libav-devel@libav.org
10 years ago
Dale Curtis
56de2897a6
h264: Fix memory leak on ff_h264_decode_init() failure
CC: libav-devel@libav.org
10 years ago
Vittorio Giovara
b1b1a7370e
display: fix order of operands
CC: libav-stable@libav.org
Bug-Id: CID 1238828 / CID 1238832
10 years ago
Anton Khirnov
7ea1b3472a
lavc: deprecate the use of AVCodecContext.time_base for decoding
When decoding, this field holds the inverse of the framerate that can be
written in the headers for some codecs. Using a field called 'time_base'
for this is very misleading, as there are no timestamps associated with
it. Furthermore, this field is used for a very different purpose during
encoding.
Add a new field, called 'framerate', to replace the use of time_base for
decoding.
11 years ago
Michael Niedermayer
2cd7c99498
h264: reset ret to avoid propagating minor failures
Unbreak 772d150a6e
.
CC: libav-stable@libav.org
Bug-Id: 750 / 905753
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
10 years ago
Gabriel Dume
f929ab0569
cosmetics: Write NULL pointer equality checks more compactly
Signed-off-by: Diego Biurrun <diego@biurrun.de>
11 years ago
Felix Abecassis
a7e541c992
h264: fix interpretation of interleved stereo modes
Column and row frame packing arrangements were inverted.
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
11 years ago
Diego Biurrun
2d60444331
dsputil: Split motion estimation compare bits off into their own context
11 years ago
Luca Barbato
2db953f846
h264: K&R formatting cosmetics
Signed-off-by: Diego Biurrun <diego@biurrun.de>
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
11 years ago
Vittorio Giovara
18e3d61e9e
h264: parse display orientation SEI message
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
11 years ago
Vittorio Giovara
772d150a6e
h264: error out from decode_nal_units() when AV_EF_EXPLODE is set
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
11 years ago
Luca Barbato
e10fd08aa7
h264: Refactor decode_nal_units
11 years ago
Luca Barbato
f51d0f39c0
h264: Split h264 slice decoding from nal decoding
11 years ago
Vittorio Giovara
e9a77f4bc0
h264: move macroblock decoding into its own file
11 years ago
Vittorio Giovara
d24e9a99a4
h264 does not depend on mpegvideo any more
11 years ago
Vittorio Giovara
e0c16e4e32
mpegvideo: move mpegvideo formats-related defines to mpegutils.h
11 years ago
Vittorio Giovara
136034d86b
h264: Remove MotionEstContext and move the relevant fields to H264Context
Unused buffers scratchpad and temp have been dropped too.
11 years ago
Vittorio Giovara
e3c2d0f3d4
h264: Replace mpegvideo-specific MAX_THREADS by private define
11 years ago
Vittorio Giovara
5d1c2e53ab
h264: Replace mpegvideo-specific MAX_PICTURE_COUNT by private define
11 years ago
Vittorio Giovara
9b749c8274
h264: move relevant fields from Picture to H264Picture
11 years ago
Vittorio Giovara
d66e305bd1
er: move relevant fields from Picture to ERPicture
This is done to disentangle ER from mpegvideo. In order to use a
classic Picture, callers can use ff_mpeg_set_erpic() or use a custom function
to set the fields. Please note that buffers need to be allocated before
calling ff_er_frame_end().
11 years ago
Vittorio Giovara
1c79b1625d
h264: directly use frames in ff_h264_draw_horiz_band()
11 years ago
Diego Biurrun
f2408ec9d7
Give IDCT matrix transpose macro a more descriptive name
This also avoids a macro name clash and related warning on ARM.
11 years ago
Luca Barbato
d922c5a5fb
h264: Fix a typo from the previous commit
f777504f64
changed a - in +
CC: libav-stable@libav.org
11 years ago
Vittorio Giovara
f777504f64
h264: Lower bound check for slice offsets
And use the value from the specification.
Sample-Id: 00000451-google
Found-by: Mateusz j00ru Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
11 years ago
Luca Barbato
fea6db064b
h264: informative error reporting in decode_slice_header()
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
11 years ago
Luca Barbato
96f9fbe109
h264: fix slice_type value reported in decode_slice_header()
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
11 years ago
Vittorio Giovara
15210354cf
h264: drop outdated comments
11 years ago
Vittorio Giovara
3a05767028
h264: store current_sps_id inside the current sps
In preparation for MVC support.
11 years ago
Vittorio Giovara
73e8fab31d
h264: print values in case of error
Also make error style consistent and drop redundant information.
11 years ago
Janne Grunau
f795a8a8bf
h264: make context_count unsigned
Removes the bogus but scary looking warning 'libavcodec/h264.c:4529:49:
warning: array subscript is below array bounds [-Warray-bounds]'.
11 years ago
Anton Khirnov
1f097d168d
h264: reset data partitioning at the beginning of each decode call
Prevents using GetBitContexts with data from previous calls.
Fixes access to freed memory.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC:libav-stable@libav.org
11 years ago
Janne Grunau
fb0c9d41d6
avutil: remove timer.h include from internal.h
Added libavutil/timer.h include to all files with {START,STOP}_TIMER.
11 years ago
Janne Grunau
ea49f60523
h264: skip chroma edges at the picture boundary while deblocking 4:4:4
This handles macroblock edges for the chroma components in the same way
as for the luma compoment for 4:4:4 streams. The Spec explicitly states
that the deblocking filter is not applied to edges at the boundary of
the picture.
Signed-off-by: Janne Grunau <janne-libav@jannau.net>
11 years ago
Anton Khirnov
8b2e5e42bb
h264: check that an IDR NAL only contains I slices
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC:libav-stable@libav.org
11 years ago