Michael Niedermayer
2d76bf391a
Indent
...
Originally committed as revision 16292 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-12-23 17:50:36 +00:00
Michael Niedermayer
8140955d39
unified CAVLC level decoding LUT.
...
Quite a bit faster (HPCVMOLQ_BRCM_B.264 was 3% faster here)
Originally committed as revision 16291 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-12-23 17:49:38 +00:00
Michael Niedermayer
abb27cfb24
100l, I broke H.264 again, forgot one hunk.
...
Thanks to FATE for finding it.
Originally committed as revision 16285 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-12-23 01:11:56 +00:00
Michael Niedermayer
e08715d391
Optimize 0 0 0-3 search, 45% faster on pentium dual.
...
Originally committed as revision 16284 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-12-23 00:38:45 +00:00
Michael Niedermayer
ec3686e889
Simplify decode_cabac_mb_ref() a little bit, 2 cpu cycles faster on
...
pentium dual.
Originally committed as revision 16279 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-12-22 17:14:13 +00:00
Michael Niedermayer
26695973c7
Indent
...
Originally committed as revision 16278 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-12-22 16:56:05 +00:00
Michael Niedermayer
b68a455313
inline decode_cabac_mb_type for I & P frames, 9 cycles faster on pentium dual.
...
Originally committed as revision 16277 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-12-22 16:46:17 +00:00
Michael Niedermayer
1952ac3713
Negate 2 more variables, 1 cpu cycle faster on pentium dual.
...
Originally committed as revision 16276 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-12-22 16:20:13 +00:00
Michael Niedermayer
03a035e059
Simplify if/else, no speed change
...
Originally committed as revision 16275 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-12-22 16:14:06 +00:00
Michael Niedermayer
6f3c50f2f9
Negate a few variables, this simplifies the code and makes it 5 cycles faster
...
on pentium dual.
Originally committed as revision 16274 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-12-22 16:10:35 +00:00
Michael Niedermayer
60c6ba7aea
Simplify ifs(), 8 cpu cycles faster on pentium dual
...
Originally committed as revision 16273 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-12-22 15:54:27 +00:00
Michael Niedermayer
127a20e3b8
Simplify if(), 3 cpu cycles faster in pentium dual.
...
Originally committed as revision 16272 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-12-22 15:53:00 +00:00
Diego Biurrun
a6493a8fbd
Rename libavcodec/i386/ --> libavcodec/x86/.
...
It contains optimizations that are not specific to i386 and
libavutil uses this naming scheme already.
Originally committed as revision 16270 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-12-22 09:12:42 +00:00
Diego Biurrun
bef05f05e4
Remove a bunch of unused variables.
...
Originally committed as revision 16263 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-12-22 00:10:36 +00:00
Michael Niedermayer
befc8fe086
Remove useless code.
...
Originally committed as revision 16253 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-12-21 17:49:40 +00:00
Michael Niedermayer
c212fb0cb1
Only execute clear_blocks() when needed.
...
+0.3% speedup for both aladin & cathedral.
Originally committed as revision 16252 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-12-21 15:58:42 +00:00
Michael Niedermayer
66c07ca96f
Optimize get_dct8x8_allowed().
...
30 cpu cycles faster on pentium dual.
Originally committed as revision 16248 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-12-20 23:11:30 +00:00
Jason Garrett-Glaser
aac8b76983
H.264 loopfilter speed tweaks
...
Originally committed as revision 16240 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-12-19 14:49:17 +00:00
Michael Niedermayer
a5805aa9d1
Fix decoding with the plain C idcts of
...
FRExt/HPCAMOLQ_BRCM_B
FRExt/HPCAQ2LQ_BRCM_B
FRExt/HPCVMOLQ_BRCM_B
Originally committed as revision 16236 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-12-19 09:21:54 +00:00
Michael Niedermayer
a5b807a6c1
Replace /2 by >>1 in decode_cabac_mb_dqp()
...
3 cpu cycles speed up on pentium dual.
Originally committed as revision 16233 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-12-19 02:28:51 +00:00
Michael Niedermayer
1aea5d35e5
Simplify ctx update in decode_cabac_mb_dqp().
...
no speed change
Originally committed as revision 16232 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-12-19 02:00:33 +00:00
Michael Niedermayer
7cfca0dfd8
Simplify ctx calculation in decode_cabac_mb_dqp()
...
no speed change
Originally committed as revision 16231 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-12-19 01:50:20 +00:00
Alexander Strange
d43696309a
Clear FF_INPUT_BUFFER_PADDING_SIZE bytes at the end of NALs in rbsp_buffer.
...
Fixes valgrind uninitialized value warnings at the end of decoding H.264
frames.
Originally committed as revision 16230 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-12-19 01:11:52 +00:00
Jason Garrett-Glaser
712ca84c21
Move filter_luma_intra into dsputil for later addition of asm.
...
Originally committed as revision 16228 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-12-19 00:44:51 +00:00
Jason Garrett-Glaser
b9fe706305
Simplify chroma AC in CABAC residual decoding.
...
Originally committed as revision 16227 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-12-19 00:43:30 +00:00
Michael Niedermayer
8955b66950
Optimize ctx calculation in decode_cabac_mb_mvd(), code by dark shikari.
...
The case for 16x16 blocks becomes 10 cpu cycles faster on pentium dual,
i could not find a speed difference in the case of subblocks though.
Originally committed as revision 16226 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-12-19 00:05:39 +00:00
Michael Niedermayer
17779f39b6
Remove unacceptable NULL pointer hack from mc code.
...
Originally committed as revision 16225 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-12-18 23:52:32 +00:00
Michael Niedermayer
04618b98e3
Check ref values in CABAC H.264 for validity.
...
Originally committed as revision 16224 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-12-18 23:31:10 +00:00
Michael Niedermayer
c25ac15a07
Move idct_(dc)add closer to where it is needed.
...
Originally committed as revision 16223 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-12-18 18:25:11 +00:00
Michael Niedermayer
aebb5d6d96
indent
...
Originally committed as revision 16222 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-12-18 18:14:38 +00:00
Michael Niedermayer
96465b90a1
Reorder ifs in chroma hl_decode_mb to avoid a duplicate transform_bypass
...
check.
14 cpu cycles speedup on Pentium Dual
Originally committed as revision 16221 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-12-18 18:12:59 +00:00
Michael Niedermayer
6456d6d87c
s/h->cbp_table[mb_xy]/h->cbp/
...
Originally committed as revision 16220 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-12-18 17:42:44 +00:00
Michael Niedermayer
04824298a9
Faster CAVLC decoding of trailing_ones. Based on a patch by dark shikari.
...
decode_residual is about 3.3% faster.
Originally committed as revision 16219 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-12-18 16:11:19 +00:00
Jason Garrett-Glaser
93445d1617
Replace i by trailing_ones, part of a patch by dark shikari.
...
No speed change meassureable with START/STOP_TIMER, but this is needed
for future optimizations.
Originally committed as revision 16218 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-12-18 15:51:32 +00:00
Michael Niedermayer
c375d87f6f
Remove if() surrounding decode_cabac_mb_type() that can never be true.
...
Originally committed as revision 16217 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-12-18 15:32:07 +00:00
Michael Niedermayer
c325b5054f
Remove unreachable else clause, found by dark shikari.
...
Originally committed as revision 16216 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-12-18 15:21:15 +00:00
Michael Niedermayer
dae006d7d7
Remove useless IS_8x8DCT check i forgot, spotted by dark shikari.
...
Originally committed as revision 16215 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-12-18 11:17:12 +00:00
Michael Niedermayer
1eb960352b
Do not calculate idct_dc_add/idct_add when the variables are unused.
...
Originally committed as revision 16210 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-12-18 04:13:02 +00:00
Michael Niedermayer
62bc966f8f
Remove redundant nnz variable.
...
Originally committed as revision 16209 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-12-18 03:04:53 +00:00
Michael Niedermayer
0a8ca22f4e
indent
...
Originally committed as revision 16208 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-12-18 02:56:44 +00:00
Michael Niedermayer
2fd1f0e026
Use the new idct functions (except chroma as it was slower in benchmarks)
...
cathedral +0.5% speed
aladin +0.6% speed [note aladin has been cat-ed 10 times to reduce the influence
of init time]
Speedup also verified via START/STOP_TIMER (difference was very significant
for the changed parts)
Originally committed as revision 16207 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-12-18 02:53:18 +00:00
Michael Niedermayer
49c084a745
Skip non intra luma code when there is no coded luma.
...
0.7% speedup for the cathedral sample.
Originally committed as revision 16203 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-12-18 01:10:51 +00:00
Michael Niedermayer
621561cdf3
Skip chroma handling when there is no coded chroma.
...
0.5% overall speedup for the cathedral sample.
Originally committed as revision 16201 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-12-18 00:46:54 +00:00
Michael Niedermayer
4080e67c8e
Replace != 0 || check by |
...
3 cpu cycles faster
Originally committed as revision 16183 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-12-17 02:53:03 +00:00
Michael Niedermayer
ad9ca7e720
Split filter_mb_dir() out of filter_mb().
...
1% overall decoding speed up for cathedral-beta2-400extra-crop-avc.mp4
no speed change for Aladin.mpg
Benchmarks done on Pentium dual
Originally committed as revision 16182 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-12-17 02:35:14 +00:00
Michael Niedermayer
ac0623b23c
Fix indention, also do a little vertical alignment of changed lines.
...
Originally committed as revision 16176 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-12-16 22:16:11 +00:00
Michael Niedermayer
6120a343aa
Factorize 3 multiplications out, code becomes 3 cpu cycles faster.
...
(not significant as thats just per MB)
Originally committed as revision 16174 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-12-16 21:08:16 +00:00
Michael Niedermayer
1dd488e955
Move ENABLE_SMALL back to the per MB check, as otherwise gcc wont remove
...
the code.
Originally committed as revision 16173 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-12-16 20:43:39 +00:00
Michael Niedermayer
89db0bae26
Do not recalculate constant part of is_complex for every MB.
...
Originally committed as revision 16172 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-12-16 20:26:22 +00:00
Michael Niedermayer
41e4055b63
Support the new lossless mode.
...
Originally committed as revision 16171 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-12-16 20:09:09 +00:00
Michael Niedermayer
40f0624121
Enable filter_mb_fast if CODEC_FLAG2_FAST is set.
...
Originally committed as revision 16141 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-12-15 01:24:04 +00:00
Anders Grönberg
cac55c9196
Add a few const qualifiers in appropriate places.
...
patch by Anders Grönberg, galileo.m2 gmail com
Originally committed as revision 16120 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-12-14 12:24:50 +00:00
Michael Niedermayer
d23b28c78b
Check that cpb_count is within the allowed range.
...
Originally committed as revision 16010 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-12-05 21:44:18 +00:00
Michael Niedermayer
c9c16cacb5
Get rid of now unneeded pps/sps correctness code as pps/sps will not
...
be used at all when anything fails sanity checks.
Originally committed as revision 15972 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-12-01 16:24:19 +00:00
Michael Niedermayer
255d4e717f
Allocate parameter sets sanely instead of using alloc_parameter_set().
...
Avoids ending up with half initialized parameter sets.
Fixes issue282.
Originally committed as revision 15971 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-12-01 16:04:03 +00:00
Michael Niedermayer
ff7f75e185
Fix segfault due to deallocated entries in delayed_pic after size change.
...
Fixes issue714.
Originally committed as revision 15965 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-11-30 23:51:02 +00:00
Diego Biurrun
f107a02d4e
Move encoder-specific quantize_c and related tables to the H.264 encoder.
...
Originally committed as revision 15937 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-11-26 10:22:55 +00:00
Diego Biurrun
ee2a957fbd
Use golomb_to_pict_type instead of its duplicate, slice_type_map.
...
Originally committed as revision 15926 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-11-24 15:53:16 +00:00
Carl Eugen Hoyos
74e8b78b20
Fix H.264 decoding.
...
(Problem analyzed by Uoti Urpala)
Originally committed as revision 15816 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-11-13 11:33:26 +00:00
Roman Shaposhnik
3a84713aaa
Making it easier to send arbitrary structures as work orders to MT workers
...
Originally committed as revision 15804 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-11-12 17:47:23 +00:00
Andreas Öman
b09a7c05f6
h264: Implement decoding of picture timing SEI message.
...
Now correct values are propagated to interlaced_frame, top_field_first
and repeat_pict in AVFrame structure.
patch by ffdshow tryouts
Originally committed as revision 15773 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-11-04 18:31:48 +00:00
Michael Niedermayer
b735aeead8
Replace literally hardcoded max slice number by named constant.
...
Originally committed as revision 15736 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-10-28 22:50:16 +00:00
Aurelien Jacobs
37d3e0667a
uses FF_ARRAY_ELEMS() where appropriate
...
Originally committed as revision 15662 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-10-21 21:40:24 +00:00
Diego Pettenò
d9ec210baa
Mark ff_div6 and ff_rem6 static in h264.c. Patch by Diego Pettenò
...
Originally committed as revision 15549 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-10-04 09:36:35 +00:00
Carl Eugen Hoyos
8d2fc163ce
Rename copy_picture to ff_copy_picture.
...
Originally committed as revision 15508 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-10-02 00:27:09 +00:00
Diego Biurrun
bbc78fb4b4
Remove unused variable.
...
Originally committed as revision 15427 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-09-26 18:11:41 +00:00
Michael Niedermayer
6c8050078e
Avoid out of picture accesses when CODEC_FLAG_EMU_EDGE is set.
...
Fixes issue427.
Originally committed as revision 15418 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-09-25 21:44:07 +00:00
Michael Niedermayer
5f129a05bf
Do not free sps & pps on width/height changes.
...
Fixes issue557.
Originally committed as revision 15414 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-09-25 19:01:39 +00:00
Michael Niedermayer
07dff5c7a4
Initialize next/last_picture* as the generic code does not always
...
set them to sane values.
Originally committed as revision 15412 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-09-25 14:29:35 +00:00
Michael Niedermayer
49573a87c9
Print which slices are IDR not just the slice type.
...
Originally committed as revision 15411 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-09-25 12:04:25 +00:00
Michael Niedermayer
cf8bb33428
Fix CAVLC+8x8+MBAFF loop filter.
...
Fixes FREXT02_JVC_C.
Originally committed as revision 15410 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-09-25 00:41:49 +00:00
Michael Niedermayer
60c9b24df0
Field -> MBAFF direct mode can use data from fields that are not
...
in the reference list. Follow the spec and no comment on the sanity of this
design ...
Fixes HPCAMAPALQ_BRCM_B
Originally committed as revision 15407 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-09-24 23:24:24 +00:00
Michael Niedermayer
aa617518b9
A few empty lines for readability.
...
Originally committed as revision 15385 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-09-22 20:46:52 +00:00
Michael Niedermayer
f4d3382da2
Another try to fix temporal direct mode references.
...
Fixes at least
CAPAMA3_Sand_F.264
CVMAPAQP3_Sony_E.jsv
Originally committed as revision 15384 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-09-22 20:43:35 +00:00
Michael Niedermayer
48e025e5b6
Fix ref_shift so that it is correct for more/all? MBAFF/PAFF mixes.
...
Fixes at least MR9_BT_B.
Originally committed as revision 15380 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-09-22 02:32:22 +00:00
Michael Niedermayer
471341a7f3
indent
...
Originally committed as revision 15379 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-09-21 23:51:36 +00:00
Michael Niedermayer
53c193a9b0
Correct comment in the direct mode code.
...
(note, yes this is unrelated to the previous simplification, the
code always behaved like it is documented now.)
Originally committed as revision 15378 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-09-21 23:49:53 +00:00
Michael Niedermayer
a0ad40832f
Simplify initialization of a few direct mode related variables.
...
Originally committed as revision 15377 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-09-21 23:46:59 +00:00
Michael Niedermayer
8b1fd554e1
Make MBAFF temporal direct mode closer to the spec.
...
Fixes at least:
CAMANL2_TOSHIBA_B
CVMANL2_TOSHIBA_B
camp_mot_mbaff0_full
Originally committed as revision 15375 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-09-21 02:39:09 +00:00
Michael Niedermayer
8f56e219b2
Move direct_dist_scale_factor() and direct_ref_list_init() after fill_mbaff_ref_list()
...
as future changes will need the mbaff lists inited.
Originally committed as revision 15374 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-09-21 02:23:51 +00:00
Michael Niedermayer
078f42ddae
Set poc for field references in MBAFF.
...
Originally committed as revision 15373 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-09-21 02:19:45 +00:00
Michael Niedermayer
a85d0c84a4
Remove fixme that is based on the assumption of !direct_8x8_inference && MBAFF.
...
Originally committed as revision 15370 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-09-19 18:53:31 +00:00
Michael Niedermayer
6a855aae94
Remove check and error message for "MBAFF + !direct_8x8_inference is not implemented"
...
because this mode does not exist, H.264-2007 says "When frame_mbs_only_flag is
equal to 0, direct_8x8_inference_flag shall be equal to 1."
Originally committed as revision 15369 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-09-19 18:49:17 +00:00
Michael Niedermayer
96b52f9e04
Make pps/sps scaling_matrix initialization closer to the spec.
...
This does not affect any of the conformance streams.
Originally committed as revision 15365 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-09-18 16:36:19 +00:00
Michael Niedermayer
d464bceff2
Ensure that extradata is not parsed twice.
...
Fixes FRExt1_Panasonic.
Originally committed as revision 15361 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-09-18 15:13:15 +00:00
Jason Garrett-Glaser
67ce33162a
Fix incorrect printing of brainfart cropping error in some cases in progressive mode.
...
Originally committed as revision 15293 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-09-11 00:34:39 +00:00
Michael Niedermayer
047599a4ba
Rename error_resilience to error_recognition.
...
Originally committed as revision 15270 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-09-08 18:18:49 +00:00
Michael Niedermayer
e4b8f1fa77
Fix artifacts of MPEG4-720I-DN-SV8K.trp caused by lack of IDR pictures and
...
subsequent zero POC value.
Originally committed as revision 15194 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-09-04 12:21:06 +00:00
Michael Niedermayer
d0b41d8931
Try to support invalid h264 that does not mark IDR with POC=0.
...
Fixes issue576.
Originally committed as revision 15153 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-09-02 16:31:18 +00:00
Diego Biurrun
e7327dbba7
Remove unused variable.
...
Originally committed as revision 14732 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-13 18:33:25 +00:00
Michael Niedermayer
2967101173
The deblock filter does not need all the intra availability stuff so do
...
not recalculate it.
Originally committed as revision 14689 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-11 03:08:02 +00:00
Michael Niedermayer
faa7e39466
Simplify constrained_intra_pred code in fill_caches().
...
Originally committed as revision 14688 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-11 02:52:14 +00:00
Michael Niedermayer
d1d10e9125
Support MBAFF + constrained intra prediction.
...
(no i would not have tried to implement this had i known what mess it is)
fixes at least:
CAMACI3_Sony_C
Originally committed as revision 14687 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-11 02:21:33 +00:00
Michael Niedermayer
beca9a286c
Mask bits of reference indexes properly to avoid negative numbers entangling
...
each other.
Fixes at least:
CAMA1_TOSHIBA_B
cama1_vtc_c
CAMA3_Sand_E
cama3_vtc_b
CAMASL3_Sony_B
CVMA1_TOSHIBA_B
CVMAQP3_Sony_D
cvmp_mot_mbaff0_full_B
FRExt/HCAMFF1_HHI
FRExt/HCHP3_HHI_A
FRExt/HVLCMFF0_Sony_B
Originally committed as revision 14683 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-10 16:10:39 +00:00
Michael Niedermayer
e248cb601e
Remove a few more lines of unneeded code in fill_caches() for MBAFF.
...
Also document why the remaining related part is apparently needed.
Originally committed as revision 14682 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-10 15:39:46 +00:00
Michael Niedermayer
d50cdd82de
Use the correct reference tables for interlaced MBAFF MBs in the loop filter.
...
Fixes at least
CAMP_MOT_MBAFF_L30
CAMP_MOT_MBAFF_L31
FRExt/FREXT01_JVC_D
Originally committed as revision 14680 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-10 02:38:51 +00:00
Michael Niedermayer
0281d32550
Do not execute the part of fill_caches() for the loopfilter that overwrites
...
reference indexes and motion vectors.
Fixes at least:
CVMAQP2_Sony_G
Originally committed as revision 14678 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-10 00:38:41 +00:00
Michael Niedermayer
3d11b8ce13
Remove more code that has become useless after the pairless MBAFF loop
...
filter cleanup.
Originally committed as revision 14676 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-09 18:11:25 +00:00
Michael Niedermayer
5f7f9719ac
Remove odd pairwise deblock filtering applied to MBAFF MBs.
...
Originally committed as revision 14673 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-09 01:17:34 +00:00
Michael Niedermayer
2ccd25d02b
Use local variabes for *stride, where local variables exist.
...
Originally committed as revision 14623 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-05 12:06:30 +00:00
Michael Niedermayer
7d54ecc9cb
indent
...
Originally committed as revision 14622 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-05 11:34:46 +00:00
Michael Niedermayer
9b5fab918b
Simplify l1mv/l1ref calculation.
...
Originally committed as revision 14621 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-05 11:33:40 +00:00
Michael Niedermayer
c210fa61cf
simplify y_shift/ref_shift code
...
Originally committed as revision 14620 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-05 11:17:23 +00:00
Michael Niedermayer
cc615d2ce8
indent
...
Originally committed as revision 14619 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-05 11:04:49 +00:00
Michael Niedermayer
d00eac6c96
Factorize some code between temporal and spatial direct mode.
...
Originally committed as revision 14618 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-05 11:00:17 +00:00
Michael Niedermayer
8354477edc
Port b4/b8_stride code from spatial direct mode to temporal.
...
Fixes at least:
CAMANL3_Sand_E.264
camp_mot_picaff0_full.26l
CAPA1_TOSHIBA_B.264
CVPA1_TOSHIBA_B.264
Originally committed as revision 14546 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-05 00:15:15 +00:00
Michael Niedermayer
42de393dcb
Use frame_num and reference instead of poc for matching frames for direct
...
mode MBs, this seems to work better with field/frame mixes. POC of both
can be the same and can be different that makes its use tricky.
Originally committed as revision 14545 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-05 00:08:32 +00:00
Michael Niedermayer
6c86c44b83
*2 /2 is wrong for PAFF references, so do not do it.
...
Originally committed as revision 14544 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-04 23:29:34 +00:00
Michael Niedermayer
f0538030da
Port col_parity code from spatial mode to temporal mode,
...
I also love it if people duplicate code and fix one but not the other.
Originally committed as revision 14543 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-04 23:06:45 +00:00
Michael Niedermayer
301e1057b8
The code under FRAME_MBAFF for temporal direct mode MBs is needed for PAFF as well.
...
Originally committed as revision 14542 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-04 22:59:53 +00:00
Michael Niedermayer
fa6a6c59e0
Remove redundant code.
...
Originally committed as revision 14541 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-04 22:52:54 +00:00
Michael Niedermayer
7762cc3dd4
Fill ref_count/ref_poc for both fields of frames.
...
Originally committed as revision 14540 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-04 22:32:41 +00:00
Art Clarke
910e366817
Fix static leaks in h264.c.
...
Patch by Art Clarke aclarke A vlideshow D com
Originally committed as revision 14538 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-04 21:45:05 +00:00
Michael Niedermayer
45260d4faa
Use ref_poc and ref_count from the correct field.
...
Fixes at least
MR8_BT_B.h264
Originally committed as revision 14537 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-04 11:19:54 +00:00
Michael Niedermayer
4c0d57bdef
Fix dist_scale_factor for long term reference pictures.
...
Originally committed as revision 14536 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-04 11:17:22 +00:00
Michael Niedermayer
71041842ec
Use the correct collocated field in pred_direct_motion() when it differs in parity.
...
Fixes at least:
FRExt/HPCAFL_BRCM_C.264
FRExt/HPCAFLNL_BRCM_C.264
FRExt/HPCVFL_BRCM_A.264
FRExt/HPCVFLNL_BRCM_A.264
Originally committed as revision 14529 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-04 02:41:19 +00:00
Michael Niedermayer
aa6de49e95
Remove useless mb_field_decoding_flag setting code that was at the wrong spot.
...
Originally committed as revision 14519 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-03 13:11:14 +00:00
Michael Niedermayer
44e9dcf13a
mb_field_decoding_flag was not initialized
...
Fixes at least:
MR7_BT_B.h264
Sharp_MP_PAFF_1r2.jvt
Sharp_MP_PAFF_2.jvt
Originally committed as revision 14518 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-03 13:00:39 +00:00
Michael Niedermayer
2879c75ff3
Picture.ref_count/ref_poc have to be stored per field (actually also per
...
slice but thats a seperate bug)
Fixes at least:
CABREF3_Sand_D.264
camp_mot_fld0_full.26l
CVFI2_Sony_H.jsv
CVNLFI2_Sony_H.jsv
Originally committed as revision 14511 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-02 23:13:27 +00:00
Michael Niedermayer
c1708e8dc8
Simplify intra PCM MB handling.
...
Originally committed as revision 14476 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-07-30 18:21:51 +00:00
Paul Kendall
9bec77fe8d
Use #define instead of a constant. Patch by Paul Kendall.
...
Originally committed as revision 14463 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-07-29 05:39:33 +00:00
Jason Garrett-Glaser
aa6a89aa79
Small h264 decoding speed optimization: while->do/while
...
Originally committed as revision 14459 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-07-28 15:42:49 +00:00
Jeff Downs
18c7be6501
Initialize outputed_poc to INT_MIN at decoder initialization.
...
Fixes issue 560
Originally committed as revision 14428 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-07-27 13:49:04 +00:00
Paul Kendall
143d7f1443
left_block intialisation optimisation.
...
This patch changes the left_block initialisation code in the fill_caches
function from individual array element setters to a simple pointer to a
pre-initialised array.
Patch by (Paul Kendall ! paul X kcbbs knodel gen knodel nz)
Date: Sun, 27 Jul 2008 11:40:18 +1200
Subject: [FFmpeg-devel] [PATCH] h264 fill_caches left_block intialisation optimisation
Originally committed as revision 14427 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-07-27 13:01:17 +00:00
Jeff Downs
e791eb1ed4
And.... Fix another spec reference to be more specific and correct.
...
Originally committed as revision 14423 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-07-26 18:38:30 +00:00
Jeff Downs
25f8bceb1c
Fix reference to spec to be more specific and correct.
...
Originally committed as revision 14422 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-07-26 18:34:34 +00:00
Paul Kendall
4a1aa38bda
Simple refactoring to resolve a FIXME. Patch by Paul Kendall.
...
Originally committed as revision 14419 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-07-26 15:07:04 +00:00
Michael Niedermayer
fef744d404
indent
...
Originally committed as revision 14408 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-07-26 02:31:19 +00:00
Michael Niedermayer
0af6967ee7
chroma_format_idc=0 aka grayscale support.
...
Can be disabled by removing #define ALLOW_NOCHROMA in case the extra if()
slow the code down measurably.
Fixes at least
FRExt/HPCAMOLQ_BRCM_B.264
FRExt/HPCVMOLQ_BRCM_B.264
Originally committed as revision 14407 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-07-26 02:27:14 +00:00
Michael Niedermayer
af8c5e08d7
Revert r14404
...
Remove another 2 incorrect checks.
These would ignore fields of different parity.
I was wrong, i thought pic_stricture is the current pic structure.
But it does not make a difference either way on the reference bitstreams.
Originally committed as revision 14405 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-07-25 23:55:31 +00:00
Michael Niedermayer
d9022d38fb
Remove another 2 incorrect checks.
...
These would ignore fields of different parity.
Originally committed as revision 14404 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-07-25 23:49:01 +00:00
Michael Niedermayer
79b5c77692
Print an error if a reference picture is missing.
...
Originally committed as revision 14403 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-07-25 23:39:43 +00:00
Michael Niedermayer
6edac8e104
Remove mysterious ref->data[0] check.
...
What the standard calls non-existent is not related to the
value of the data[0] pointer.
Originally committed as revision 14402 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-07-25 23:36:48 +00:00
Michael Niedermayer
99157e499c
10l typo, fix compilation
...
Originally committed as revision 14401 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-07-25 22:42:49 +00:00
Michael Niedermayer
91ea868eeb
Remove another stupidity, long_ref==0 check 4 lines after assert(long_ref==0).
...
Originally committed as revision 14400 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-07-25 22:39:43 +00:00
Michael Niedermayer
b3e93fd408
indent
...
Originally committed as revision 14399 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-07-25 21:51:50 +00:00
Michael Niedermayer
d4f7d83866
Rewrite fill_default_ref_list(), the old code was obfuscated beyond
...
repair with hacks.
new code is ~60lines old was ~200
Fixes at least:
FRExt/HCHP2_HHI_A.264
one sample also get decoded much better:
FRExt/FRExt1_Panasonic.avc (PSNR 11 -> 80)
(no i do not know why, the old code was too a big mess to figure out
what it did)
Originally committed as revision 14398 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-07-25 21:46:15 +00:00
Michael Niedermayer
37dcf83077
Do not scare the user with error messages when everything is ok.
...
Originally committed as revision 14396 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-07-25 14:52:58 +00:00
Michael Niedermayer
d9e3242213
Make remove_short() match remove_long() in that it calls unreference_pic().
...
Originally committed as revision 14395 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-07-25 14:00:01 +00:00
Michael Niedermayer
472c9a58a8
Removing yet another weird field pic special case,
...
now related to SHORT2LONG MMCOs.
Originally committed as revision 14394 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-07-25 13:40:13 +00:00
Michael Niedermayer
9c0e46242f
Make remove_long() call unreference_pic() internally.
...
Originally committed as revision 14393 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-07-25 13:09:06 +00:00
Michael Niedermayer
1cea5d0d03
Merge oddly duplicated remove_long/remove_long_at_index() function.
...
Originally committed as revision 14392 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-07-25 12:56:58 +00:00
Michael Niedermayer
6f45060851
Remove strange long_ref=0.
...
Originally committed as revision 14391 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-07-25 12:34:39 +00:00
Michael Niedermayer
4f10312c19
indent
...
Originally committed as revision 14390 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-07-25 12:26:24 +00:00
Michael Niedermayer
3f1e179747
10000l, forgotton }
...
Originally committed as revision 14389 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-07-25 12:25:28 +00:00
Michael Niedermayer
c29e05e60d
Remove another of these obfuscated special cases for field pictures
...
that does not do anything.
Originally committed as revision 14388 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-07-25 12:23:41 +00:00
Michael Niedermayer
c725090004
Simplify mmco setup code used in IDR pictures.
...
Originally committed as revision 14387 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-07-25 12:12:25 +00:00
Michael Niedermayer
57288c4a06
Remove redundant h->mmco_index= 0.
...
Originally committed as revision 14386 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-07-25 12:02:45 +00:00
Michael Niedermayer
5118c6c771
Assert that long_ref has been cleared for released pics.
...
Originally committed as revision 14385 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-07-25 11:54:03 +00:00
Michael Niedermayer
849b9cef32
Clear long_ref when a frame is no longer a long_ref.
...
Originally committed as revision 14384 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-07-25 11:52:40 +00:00