Anton Khirnov
f638b67e57
h264: move the parameter set definitions to a new header file
...
The PS parsing code is independent from the decoder, so it makes more
sense for it to have its own separate header.
2016-06-21 11:13:29 +02:00
Anton Khirnov
9df889a5f1
h264: rename h264.[ch] to h264dec.[ch]
...
This is more consistent with the naming of other decoders.
2016-06-21 11:11:26 +02: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
728d90a0c1
h264: decouple h264_sei from the h264 decoder
...
Make the SEI parsing independent of the H264Context, to allow
decoupling the parser from the decoder.
2016-04-24 10:06:24 +02:00
Anton Khirnov
3176217c60
h264: decouple h264_ps from the h264 decoder
...
Make the SPS/PPS parsing independent of the H264Context, to allow
decoupling the parser from the decoder. The change is modelled after the
one done earlier for HEVC.
Move the dequant buffers to the PPS to avoid complex checks whether they
changed and an expensive copy for frame threads.
2016-04-24 10:06:23 +02:00
Anton Khirnov
a12d3188cb
h264: use a smaller struct for the ref lists
...
There is no need to store a whole H264Picture, with a full AVFrame
embedded in it. This should allow getting rid of the embedded AVFrame
later.
2015-03-21 11:27:16 +01:00
Anton Khirnov
d27b8248a6
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
2015-03-21 11:27:14 +01:00
Anton Khirnov
d4d9068cdf
h264: move mb_{x,y} into the per-slice context
2015-03-21 11:27:14 +01:00
Anton Khirnov
0edbe6faa7
h264: move mb_xy into the per-slice context
2015-03-21 11:27:14 +01:00
Anton Khirnov
95eb35f305
h264: move the ref lists variables into the per-slice context
2015-03-21 11:27:13 +01:00
Anton Khirnov
7747726667
h264: move map_col_to_list0[_field] into the per-slice context
2015-03-21 11:27:13 +01:00
Anton Khirnov
ee0d774dfa
h264: move dist_scale_factor[_field] into the per-slice context
2015-03-21 11:27:13 +01:00
Anton Khirnov
be69f0a800
h264: move col_{parity,fieldoff} into the per-slice context
2015-03-21 11:27:13 +01:00
Anton Khirnov
066aafced4
h264: move direct_spatial_mv_pred into the per-slice context
2015-03-21 11:27:13 +01:00
Anton Khirnov
ed451a08a4
h264: move sub_mb_type into the per-slice context
2015-03-21 11:27:13 +01:00
Anton Khirnov
56febc993b
h264: move the slice type variables into the per-slice context
2015-03-21 11:27:13 +01:00
Anton Khirnov
e6287f077c
h264: move {mv,ref}_cache into the per-slice context
2015-03-21 11:27:13 +01:00
Peter Meerwald
9abc80f1ed
libavcodec: Make use of av_clip functions
...
Signed-off-by: Peter Meerwald <pmeerw@pmeerw.net >
Signed-off-by: Luca Barbato <lu_zero@gentoo.org >
2015-02-21 00:54:40 +01:00
Ronald S. Bultje
c39059bea3
h264: Fix direct temporal mvs for bottom-field-first poc order
...
Such files can be created using the --bff x264 option.
Sample-Id: h264_direct_temporal_mvs_bff.mkv
Signed-off-by: Luca Barbato <lu_zero@gentoo.org >
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com >
2014-07-20 23:32:13 +01:00
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 >
2014-07-17 03:05:24 -07:00
Diego Biurrun
a11ef610ee
h264: Remove some commented-out, broken cruft
2014-07-16 12:26:34 -07:00
Vittorio Giovara
d24e9a99a4
h264 does not depend on mpegvideo any more
2014-03-16 23:05:47 +01:00
Vittorio Giovara
e0c16e4e32
mpegvideo: move mpegvideo formats-related defines to mpegutils.h
2014-03-16 23:04:41 +01:00
Vittorio Giovara
9b749c8274
h264: move relevant fields from Picture to H264Picture
2014-03-16 23:01:00 +01:00
Diego Biurrun
2a61592573
avcodec: Remove some commented-out debug cruft
2013-08-20 19:59:50 +02:00
Anton Khirnov
7bece9b22f
h264: add a parameter to the FRAME_MBAFF macro.
...
This way it does not look like a constant.
2013-03-21 10:20:39 +01:00
Anton Khirnov
759001c534
lavc decoders: work with refcounted frames.
2013-03-08 07:38:30 +01:00
Diego Biurrun
c242bbd8b6
Remove unnecessary dsputil.h #includes
2013-02-26 00:51:34 +01:00
Anton Khirnov
2c54155407
h264: deMpegEncContextize
...
Most of the changes are just trivial are just trivial replacements of
fields from MpegEncContext with equivalent fields in H264Context.
Everything in h264* other than h264.c are those trivial changes.
The nontrivial parts are:
1) extracting a simplified version of the frame management code from
mpegvideo.c. We don't need last/next_picture anymore, since h264 uses
its own more complex system already and those were set only to appease
the mpegvideo parts.
2) some tables that need to be allocated/freed in appropriate places.
3) hwaccels -- mostly trivial replacements.
for dxva, the draw_horiz_band() call is moved from
ff_dxva2_common_end_frame() to per-codec end_frame() callbacks,
because it's now different for h264 and MpegEncContext-based
decoders.
4) svq3 -- it does not use h264 complex reference system, so I just
added some very simplistic frame management instead and dropped the
use of ff_h264_frame_start(). Because of this I also had to move some
initialization code to svq3.
Additional fixes for chroma format and bit depth changes by
Janne Grunau <janne-libav@jannau.net >
Signed-off-by: Anton Khirnov <anton@khirnov.net >
2013-02-15 16:35:16 +01:00
Diego Biurrun
511cf612ac
miscellaneous typo fixes
2012-12-21 00:18:34 +01:00
Michael Niedermayer
ed2d7d5868
ff_h264_direct_ref_list_init: fix B slice check.
...
Fixes null pointer dereference.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
2012-12-18 19:44:22 +01:00
Janne Grunau
73ad2c2fa7
h264: increase dist_scale_factor for up to 32 references
...
Compute dist_scale_factor_field only for MBAFF since that is the only
case in which it is used.
2012-12-18 19:36:58 +01:00
Michael Niedermayer
c9aab8a123
h264: use mbaff ref indices in fill_colmap() only for mbaff references
...
Prevents writing beyond array bounds.
Signed-off-by: Janne Grunau <janne-libav@jannau.net >
2012-12-18 11:02:23 +01:00
Michael Niedermayer
758ec11153
h264: Fix invalid interlaced/progressive MB combinations for direct mode prediction.
...
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com >
2012-03-13 10:04:23 -07:00
Diego Biurrun
324deaa268
Replace AVFrame pointer type punning by proper struct member assignments.
2012-03-01 23:11:13 +01:00
Diego Biurrun
47c0ac96aa
Replace AVFrame pointer casts by proper struct member accesses.
2012-03-01 23:11:11 +01:00
Steven Walters
27237d524e
w32threads: support for frame multithreading
...
Replace our incomplete w32threads implementation with x264's pthreads
w32threads wrapper.
Relicensed to LGPL with kind permission by Pegasys Inc.
Signed-off-by: Janne Grunau <janne-libav@jannau.net >
2011-10-16 21:45:16 +02:00
Diego Biurrun
95a06eb4d5
Fix assert() calls that need updates after FF_COMMON_FRAME macro elimination.
...
This fixes build failures with -DDEBUG in CPPFLAGS.
2011-09-21 09:57:32 +02:00
Diego Biurrun
657ccb5ac7
Eliminate FF_COMMON_FRAME macro.
...
FF_COMMON_FRAME holds the contents of the AVFrame structure and is also copied
to struct Picture. Replace by an embedded AVFrame structure in struct Picture.
2011-07-11 00:19:00 +02:00
Alexander Strange
6a9c859444
H264/MPEG frame-level multi-threading.
...
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com >
2011-06-02 10:16:20 -07:00
Stefano Sabatini
975a1447f7
Replace deprecated FF_*_TYPE symbols with AV_PICTURE_TYPE_*.
...
Signed-off-by: Diego Biurrun <diego@biurrun.de >
2011-05-02 12:18:44 +02:00
Mans Rullgard
2912e87a6c
Replace FFmpeg with Libav in licence headers
...
Signed-off-by: Mans Rullgard <mans@mansr.com >
2011-03-19 13:33:20 +00:00
Diego Biurrun
ba87f0801d
Remove explicit filename from Doxygen @file commands.
...
Passing an explicit filename to this command is only necessary if the
documentation in the @file block refers to a file different from the
one the block resides in.
Originally committed as revision 22921 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-04-20 14:45:34 +00:00
Michael Niedermayer
358b5b1a59
Get rid of mb2b8_xy and b8_stride, change arrays organized based on b8_stride to
...
ones based on mb_stride in h264.
about 20 cpu cycles faster overall per MB
Originally committed as revision 22065 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-25 23:44:42 +00:00
Måns Rullgård
19769ece3b
H264: use alias-safe macros
...
This eliminates all aliasing violation warnings in h264 code.
No measurable speed difference with gcc-4.4.3 on i7.
Originally committed as revision 21881 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-18 16:24:31 +00:00
Michael Niedermayer
24006f59cb
10l ;; gcc 2.95 compilation fix by mike
...
Originally committed as revision 21830 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-15 09:11:00 +00:00
Michael Niedermayer
cbfcde9f52
10l use pack16to32(), should fix big endian h264 failures.
...
Originally committed as revision 21829 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-15 01:24:50 +00:00
Michael Niedermayer
6e7c397b5c
Cosmetics, vertical align.
...
Originally committed as revision 21817 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-14 01:14:05 +00:00
Michael Niedermayer
5ca43c25f6
Move setting MB_TYPE_L0L1 for direct MBs up, this is simpler.
...
Originally committed as revision 21794 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-13 15:57:49 +00:00
Michael Niedermayer
5134ad53ed
Simplify if()
...
Originally committed as revision 21791 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-13 13:28:04 +00:00