247 Commits

Author SHA1 Message Date
Michael Niedermayer
fa7c08d5e1 Merge commit 'c28ed1d743443e783537d279ae721be3bbdf7646'
* commit 'c28ed1d743443e783537d279ae721be3bbdf7646':
  h264: move [uv]linesize to the per-slice context

Conflicts:
	libavcodec/h264_mb.c
	libavcodec/h264_slice.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-21 23:16:36 +01:00
Michael Niedermayer
d8151a7e94 Merge commit 'a12d3188cbec15e22070e139fa5cc541da07e2c3'
* commit 'a12d3188cbec15e22070e139fa5cc541da07e2c3':
  h264: use a smaller struct for the ref lists

Conflicts:
	libavcodec/h264_direct.c
	libavcodec/h264_mb.c
	libavcodec/h264_picture.c
	libavcodec/h264_refs.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-21 23:05:34 +01:00
Michael Niedermayer
0f8bb0efc3 Merge commit '5bf3c0fa49afd5bbf43aa841ff78007d72c80736'
* commit '5bf3c0fa49afd5bbf43aa841ff78007d72c80736':
  h264: drop the now unused per-slice H264Contexts

Conflicts:
	libavcodec/h264_slice.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-21 21:41:17 +01:00
Michael Niedermayer
8bdcec3111 Merge commit '51d8725a6e4c7f989d6f0f38b59cb54a2d72846c'
* commit '51d8725a6e4c7f989d6f0f38b59cb54a2d72846c':
  h264: use the main H264Context as the parent for all slice contexts

Conflicts:
	libavcodec/h264.c
	libavcodec/h264.h
	libavcodec/h264_slice.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-21 21:33:27 +01:00
Michael Niedermayer
b1e6d8a226 Merge commit '92e0b7342c0490894cbcea4461380321e0569de2'
* commit '92e0b7342c0490894cbcea4461380321e0569de2':
  h264_slice: constify all the uses of H264Context during slice decoding

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-21 21:32:33 +01:00
Michael Niedermayer
84ae7294cb Merge commit '3178f4d33ff62243f7cdddb081db516ea34396c9'
* commit '3178f4d33ff62243f7cdddb081db516ea34396c9':
  h264: move rbsp_buffer into the per-slice context

Conflicts:
	libavcodec/h264.c
	libavcodec/h264_parser.c
	libavcodec/h264_slice.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-21 20:16:21 +01:00
Michael Niedermayer
830e548b9e Merge commit '582683b6ac798ed2a004a4e2121b7bd47892bbfd'
* commit '582683b6ac798ed2a004a4e2121b7bd47892bbfd':
  h264: move remaining ER stuff into the per-slice context

Conflicts:
	libavcodec/h264.h
	libavcodec/h264_picture.c
	libavcodec/h264_slice.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-21 20:00:34 +01:00
Michael Niedermayer
44e4a86c8a Merge commit 'c377e04d8aa74d030672e9a4788a700b0695fc14'
* commit 'c377e04d8aa74d030672e9a4788a700b0695fc14':
  h264: move top_borders into the per-slice context

Conflicts:
	libavcodec/h264.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-21 18:58:59 +01:00
Michael Niedermayer
3d1d8e1f95 Merge commit '36d04801ba9d8622c2d759c172aea18561bac74d'
* commit '36d04801ba9d8622c2d759c172aea18561bac74d':
  h264: move the scratch buffers into the per-slice context

Conflicts:
	libavcodec/h264.h
	libavcodec/h264_slice.c
	libavcodec/svq3.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-21 18:50:53 +01:00
Michael Niedermayer
9d0450ae94 Merge commit 'e9b2383bf86b38ad18a001801aee20c8182e29bd'
* commit 'e9b2383bf86b38ad18a001801aee20c8182e29bd':
  h264: move mb_mbaff into the per-slice context

Conflicts:
	libavcodec/h264_cabac.c
	libavcodec/h264_cavlc.c
	libavcodec/h264_slice.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-21 18:07:01 +01:00
Michael Niedermayer
d511dc6530 Merge commit 'bc98e8c0e0a8babfea35c98855e366b29cbe1191'
* commit 'bc98e8c0e0a8babfea35c98855e366b29cbe1191':
  h264: move mb_field_decoding_flag into the per-slice context

Conflicts:
	libavcodec/h264_slice.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-21 18:03:54 +01:00
Michael Niedermayer
55215383dc Merge commit 'f42485dbce614b3f63182845da43db690b427b7c'
* commit 'f42485dbce614b3f63182845da43db690b427b7c':
  h264: use a separate GetBitContext for slice data

Conflicts:
	libavcodec/h264.c
	libavcodec/h264_cavlc.c
	libavcodec/h264_parser.c
	libavcodec/h264_slice.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-21 17:13:24 +01:00
Michael Niedermayer
eba2c2321b Merge commit '404a416d4b1fcbf9db5569481d8181f296c01ea9'
* commit '404a416d4b1fcbf9db5569481d8181f296c01ea9':
  h264: remove some remnants of data partitioning

Conflicts:
	libavcodec/h264.c
	libavcodec/h264_slice.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-21 17:00:51 +01:00
Michael Niedermayer
72bec029ee Merge commit '7bbc254d646ed9cf6deffc3fda75ae6729f95979'
* commit '7bbc254d646ed9cf6deffc3fda75ae6729f95979':
  h264: move resync_mb_{x,y} into the per-slice context

Conflicts:
	libavcodec/h264_slice.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-21 16:54:48 +01:00
Michael Niedermayer
d76559fb5f Merge commit 'd4d9068cdf8f4b2b87ae87a2ef880d243f77b977'
* commit 'd4d9068cdf8f4b2b87ae87a2ef880d243f77b977':
  h264: move mb_{x,y} into the per-slice context

Conflicts:
	libavcodec/h264.c
	libavcodec/h264_cavlc.c
	libavcodec/h264_mb.c
	libavcodec/h264_slice.c
	libavcodec/svq3.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-21 16:46:15 +01:00
Michael Niedermayer
668c65e7e7 Merge commit '0edbe6faa7ef80daf0e84353cbe733389bf1a522'
* commit '0edbe6faa7ef80daf0e84353cbe733389bf1a522':
  h264: move mb_xy into the per-slice context

Conflicts:
	libavcodec/h264.c
	libavcodec/h264_cabac.c
	libavcodec/svq3.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-21 16:18:29 +01:00
Michael Niedermayer
db4234c500 Merge commit '07c5ca551b7327d3c4e33738cc0cd2d5ac2779fa'
* commit '07c5ca551b7327d3c4e33738cc0cd2d5ac2779fa':
  h264: move is_complex into the per-slice context

Conflicts:
	libavcodec/h264_slice.c
	libavcodec/svq3.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-21 16:10:31 +01:00
Michael Niedermayer
70eec8f432 Merge commit '47a0d393504d6726c4a235951153bee0abb3f7d6'
* commit '47a0d393504d6726c4a235951153bee0abb3f7d6':
  h264: move mb_skip_run into the per-slice context

Conflicts:
	libavcodec/h264_cavlc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-21 16:09:14 +01:00
Michael Niedermayer
da7f4c32ab Merge commit '9951907f6fc37a8d41566dbee09f7c15ff587de6'
* commit '9951907f6fc37a8d41566dbee09f7c15ff587de6':
  h264: move redundant_pic_count into the per-slice context

Conflicts:
	libavcodec/h264.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-21 16:07:53 +01:00
Michael Niedermayer
04d23cf1c5 Merge commit 'a9b201cacf85d710b102010cb4baef97f00ea39b'
* commit 'a9b201cacf85d710b102010cb4baef97f00ea39b':
  h264: move cabac_init_idc into the per-slice context

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-21 16:06:57 +01:00
Michael Niedermayer
7d23931632 Merge commit 'e6c90ce94f1b07f50cea2babf7471af455cca0ff'
* commit 'e6c90ce94f1b07f50cea2babf7471af455cca0ff':
  h264: move loopfilter parameters into the per-slice context

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-21 15:59:20 +01:00
Michael Niedermayer
c9841c05be Merge commit 'a67f8ae9a2c8529bf6a635e8ca4e3483592708b1'
* commit 'a67f8ae9a2c8529bf6a635e8ca4e3483592708b1':
  h264: move mvd_table into the per-slice context

Conflicts:
	libavcodec/h264.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-21 15:57:21 +01:00
Michael Niedermayer
a4952e7343 Merge commit '5c8280c3075dd54f26752c3a1185647578421703'
* commit '5c8280c3075dd54f26752c3a1185647578421703':
  h264: move last_qscale_diff into the per-slice context

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-21 15:48:53 +01:00
Michael Niedermayer
4c5c913dd8 Merge commit 'e7226984ac13aacb84eae77a372df8ff7685848f'
* commit 'e7226984ac13aacb84eae77a372df8ff7685848f':
  h264: move [{top,left}_]cbp into the per-slice context

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-21 15:48:13 +01:00
Michael Niedermayer
f5d4d61824 Merge commit '30da98adbda6de1f55188f9058a3a5c715049633'
* commit '30da98adbda6de1f55188f9058a3a5c715049633':
  h264: move cabac[_state] into the per-slice context

Conflicts:
	libavcodec/h264_cabac.c
	libavcodec/h264_slice.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-21 15:45:44 +01:00
Michael Niedermayer
d86e8f235e avcodec/h264_slice: Merge 2 memcpy()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-21 15:37:05 +01:00
Michael Niedermayer
739edc1a7e Merge commit 'bf03a878a76dea29b36f368759e9f66102b39a5f'
* commit 'bf03a878a76dea29b36f368759e9f66102b39a5f':
  h264: move mb[_{padding,luma_dc}] into the per-slice context

Conflicts:
	libavcodec/h264.h
	libavcodec/h264_cavlc.c
	libavcodec/h264_mb.c
	libavcodec/h264_slice.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-21 15:36:57 +01:00
Michael Niedermayer
35a788d953 Merge commit 'b063582e0c4f775a8ba377488bd085595e0e7fae'
* commit 'b063582e0c4f775a8ba377488bd085595e0e7fae':
  h264: move intra_pcm_ptr into the per-slice context

Conflicts:
	libavcodec/h264.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-21 15:27:29 +01:00
Michael Niedermayer
cc2cfdc497 Merge commit '95eb35f30513e335990ad0d5dca6ddc318477291'
* commit '95eb35f30513e335990ad0d5dca6ddc318477291':
  h264: move the ref lists variables into the per-slice context

Conflicts:
	libavcodec/h264.c
	libavcodec/h264.h
	libavcodec/h264_cabac.c
	libavcodec/h264_cavlc.c
	libavcodec/h264_direct.c
	libavcodec/h264_mb.c
	libavcodec/h264_picture.c
	libavcodec/h264_refs.c
	libavcodec/h264_slice.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-21 15:18:10 +01:00
Michael Niedermayer
bd76a4822f Merge commit 'ee0d774dfa94655e44707ff3e02f4a4d282c1963'
* commit 'ee0d774dfa94655e44707ff3e02f4a4d282c1963':
  h264: move dist_scale_factor[_field] into the per-slice context

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-21 14:39:49 +01:00
Michael Niedermayer
a8ac4c9b06 Merge commit '066aafced4dc6c7c9e7b37082635472249f1e93e'
* commit '066aafced4dc6c7c9e7b37082635472249f1e93e':
  h264: move direct_spatial_mv_pred into the per-slice context

Conflicts:
	libavcodec/h264_mvpred.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-21 14:38:59 +01:00
Michael Niedermayer
97c8ecaada Merge commit '56febc993b928ccc039a32158ca60b234c311875'
* commit '56febc993b928ccc039a32158ca60b234c311875':
  h264: move the slice type variables into the per-slice context

Conflicts:
	libavcodec/h264.c
	libavcodec/h264_cabac.c
	libavcodec/h264_cavlc.c
	libavcodec/h264_slice.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-21 14:30:19 +01:00
Michael Niedermayer
2cc08cad9e Merge commit '5f390eef8ee2b8adab00c5d2923a52aa261eb999'
* commit '5f390eef8ee2b8adab00c5d2923a52aa261eb999':
  h264: move mb_[uv]linesize into the per-slice context

Conflicts:
	libavcodec/h264.h
	libavcodec/h264_mb.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-21 14:16:29 +01:00
Michael Niedermayer
f1436a7f96 Merge commit 'e6287f077c3e8e4aca11e61dd4bade1351439e6b'
* commit 'e6287f077c3e8e4aca11e61dd4bade1351439e6b':
  h264: move {mv,ref}_cache into the per-slice context

Conflicts:
	libavcodec/h264_cabac.c
	libavcodec/h264_mb.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-21 14:06:30 +01:00
Michael Niedermayer
b7e0356cc3 Merge commit 'f69574cf7aca4fe4d57a2155e925f37fc863474d'
* commit 'f69574cf7aca4fe4d57a2155e925f37fc863474d':
  h264: move non_zero_count_cache into the per-slice context

Conflicts:
	libavcodec/h264.c
	libavcodec/h264_cabac.c
	libavcodec/h264_cavlc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-21 14:02:02 +01:00
Michael Niedermayer
6abd1e901c Merge commit '7d8154edd594981e7891d57de91f2260f8a62939'
* commit '7d8154edd594981e7891d57de91f2260f8a62939':
  h264: move intra4x4_pred_mode[_cache] into the per-slice context

Conflicts:
	libavcodec/h264.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-21 13:44:38 +01:00
Michael Niedermayer
61635c7a88 Merge commit '8b00f4df20f4a8ab0656fdaf7d00233a6515a052'
* commit '8b00f4df20f4a8ab0656fdaf7d00233a6515a052':
  h264: move some neighbour information into the per-slice context

Conflicts:
	libavcodec/h264_cabac.c
	libavcodec/h264_cavlc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-21 13:42:44 +01:00
Michael Niedermayer
acd6b407c3 Merge commit '06789ad3b71296a9e2fbd0278632d97a5d9af8d7'
* commit '06789ad3b71296a9e2fbd0278632d97a5d9af8d7':
  h264: move qp_thresh into the per-slice context

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-21 13:34:33 +01:00
Michael Niedermayer
c27f53b9fb Merge commit 'd231e84b06a9964c840cff4e228509f706165fb6'
* commit 'd231e84b06a9964c840cff4e228509f706165fb6':
  h264: move the quantizers into the per-slice context

Conflicts:
	libavcodec/dxva2_h264.c
	libavcodec/h264_cavlc.c
	libavcodec/h264_loopfilter.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-21 13:24:23 +01:00
Michael Niedermayer
cc31d9ce80 Merge commit 'd40ae0e595fe90b5583b9269f8bb000402bde5a6'
* commit 'd40ae0e595fe90b5583b9269f8bb000402bde5a6':
  h264: do not copy qscale when updating per-thread contexts

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-21 13:20:54 +01:00
Michael Niedermayer
756dc7bd18 Merge commit '92c6c2a605f9b077b8fbc25b7ed6625541232b87'
* commit '92c6c2a605f9b077b8fbc25b7ed6625541232b87':
  h264: split weighted pred-related vars into per-slice context

Conflicts:
	libavcodec/h264.c
	libavcodec/h264.h
	libavcodec/h264_mb.c
	libavcodec/svq3.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-21 13:13:12 +01:00
Anton Khirnov
c28ed1d743 h264: move [uv]linesize to the per-slice context
While it is a per-frame variable, it is only really used in the
low-level decoding code, so it is more efficient to store it in the
slice context.
2015-03-21 11:27:16 +01: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
5bf3c0fa49 h264: drop the now unused per-slice H264Contexts 2015-03-21 11:27:16 +01:00
Anton Khirnov
51d8725a6e 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.
2015-03-21 11:27:15 +01:00
Anton Khirnov
92e0b7342c 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
2015-03-21 11:27:15 +01:00
Anton Khirnov
3178f4d33f h264: move rbsp_buffer into the per-slice context 2015-03-21 11:27:15 +01:00
Anton Khirnov
582683b6ac h264: move remaining ER stuff into the per-slice context 2015-03-21 11:27:15 +01:00
Anton Khirnov
c377e04d8a 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.
2015-03-21 11:27:15 +01:00
Anton Khirnov
36d04801ba 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.
2015-03-21 11:27:15 +01:00