Commit Graph

814 Commits

Author SHA1 Message Date
Reimar Döffinger
8d8409ca9f Fix nalsize check to avoid an integer overflow that made the check
incorrect for nalsize > INT_MAX - buf_index

Originally committed as revision 19307 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-06-30 12:11:29 +00:00
Haruhiko Yamagata
c173a0881f Improve wording: s/reseted/reset
Patch by Haruhiko Yamagata, h D yamagata A nifty D com

Originally committed as revision 19266 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-06-24 12:10:20 +00:00
Haruhiko Yamagata
2722c3a30d Fix H.264 picture reordering, 2nd try.
First, reverted one was r19239.

Patch by Haruhiko Yamagata, h D yamagata A nifty D com

Originally committed as revision 19258 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-06-23 21:03:35 +00:00
Carl Eugen Hoyos
df028e8c6a Revert r19239: It broke four conformance tests.
Originally committed as revision 19241 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-06-20 14:47:38 +00:00
Haruhiko Yamagata
6ee0eb38c0 Fix H.264 picture reordering.
Patch by Haruhiko Yamagata, h D yamagata A nifty D com

Originally committed as revision 19239 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-06-20 13:16:07 +00:00
Alexander Strange
d2d5e06735 H.264: Fix memory leaks with multithreading.
The threads' contexts and rbsp_buffers were not freed at the end
of decoding.

Fixes issue 1581

Originally committed as revision 19207 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-06-16 21:50:36 +00:00
Haruhiko Yamagata
b19d493f2b Add field prev_interlaced_frame to H264Context to be able to flag soft telecine
progressive.

Patch by Haruhiko Yamagata, h D yamagata A nifty D com

Originally committed as revision 19141 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-06-09 21:16:40 +00:00
Michael Niedermayer
f4ebb334be Fix sei_ct_type check so it does not mistreat ct_type= unknown.
Originally committed as revision 19082 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-06-03 19:24:51 +00:00
Michael Niedermayer
4d95ae1882 Print ct_type and pic_struct.
Originally committed as revision 19081 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-06-03 19:23:34 +00:00
Baptiste Coudurier
87e302bfd8 remove unused hack which set AVCodecContext frame_number to pic timestamp
Originally committed as revision 18988 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-05-30 00:24:20 +00:00
Haruhiko Yamagata
86b0e9948b H264: Don't deblock if alpha or beta is 0.
This ensures that the MMX loop filter is always bitexact with the C version.
Patch by Haruhiko Yamagata <h.yamagata _a_ nifty com>

Originally committed as revision 18923 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-05-24 03:39:20 +00:00
David Conrad
580a7465fb Add a chroma_sample_location field to define positioning of chroma samples
Originally committed as revision 18795 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-05-11 04:34:23 +00:00
Michael Niedermayer
74b14aacfa Support broken avc nal encapsulation.
Fixes issue987.

Originally committed as revision 18533 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-04-16 04:46:44 +00:00
Michael Niedermayer
d225a1e248 Fix 2 access units in a packet mp4s.
Fixes issue944 and possibly others.

Originally committed as revision 18474 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-04-12 20:43:52 +00:00
Michael Niedermayer
ead793358a Get rid of the non sensical idea of using the current picture for missing
reference pictures.

Originally committed as revision 18473 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-04-12 20:40:18 +00:00
Michael Niedermayer
256299d302 Factorize field_end() out.
Originally committed as revision 18472 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-04-12 20:21:23 +00:00
Michael Niedermayer
7824b129a0 Assert that the first list1 entry is a reference frame.
Originally committed as revision 18471 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-04-12 13:58:03 +00:00
Reimar Döffinger
238ef6dadd Add a av_fast_malloc function and replace several uses of av_fast_realloc,
thus avoiding potential memleaks and pointless memcpys.

Originally committed as revision 18470 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-04-12 13:17:37 +00:00
Reimar Döffinger
6752dd5aee Loop up to MAX_THREADS instead of h->s.avctx->thread_count to free the thread
contexts, this avoids a crash when freeing the H.264 parser context introduced in
r18406, since h->s.avctx is NULL there.

Originally committed as revision 18418 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-04-10 14:30:04 +00:00
Reimar Döffinger
cbf1eae9a5 Add forgotten void return type to ff_h264_free_context
Originally committed as revision 18411 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-04-10 11:31:55 +00:00
Reimar Döffinger
15861962a7 Add a ff_h264_free_context function and call it from the H.264 parser.
This ensures that the parser will no longer leak memory for all SPS/PPS it encounters.

Originally committed as revision 18406 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-04-10 07:01:55 +00:00
Thilo Borgmann
7a00bbad21 Implement avcodec_decode_video2(), _audio3() and _subtitle2() which takes an
AVPacket argument rather than a const uint8_t *buf + int buf_size. This allows
passing of packet-specific flags from demuxer to decoder, such as the keyframe
flag, which appears necessary to playback corePNG P-frames.

Patch by Thilo Borgmann thilo.borgmann googlemail com, see also the thread
"Google Summer of Code participation" on the mailinglist.

Originally committed as revision 18351 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-04-07 15:59:50 +00:00
Michael Niedermayer
7ed673af71 Print timing_info on -debug 1.
Originally committed as revision 17949 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-13 14:10:49 +00:00
Diego Biurrun
1b0f4920b8 Mark variables "j" and "structure" in execute_ref_pic_marking() as av_uninit
to work around false positive 'may be used uninitialized' warnings.

Originally committed as revision 17837 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-05 23:38:52 +00:00
Ivan Schreter
70e01da3bf Add support for ct_type to correctly detect interlaced flag
Originally committed as revision 17811 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-04 19:37:19 +00:00
Vitor Sessak
a66430c0d0 Add more correct bound checking in filter_mb().
Should fix decoding of CVMAPAQP3_Sony_E.jsv in MinGW

Originally committed as revision 17806 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-04 16:56:55 +00:00
Panagiotis Issaris
a0f8005079 When a H.264 stream references a PPS or SPS id which doesn't exist, instead of
just saying that a non-existing id is referenced, show the value of the id.

Originally committed as revision 17771 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-03 14:32:24 +00:00
Alex Converse
09a64ee614 H.264: Simplify decode_residual()
Originally committed as revision 17750 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-03 05:26:39 +00:00
Michael Niedermayer
47cd974ae5 Do not set low_delay if has_b_frames has been set before init()
this will be needed once the parser can figure out has_b_frames
in av_find_stream_info().

Originally committed as revision 17673 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-01 03:13:04 +00:00
Michael Niedermayer
efd8c1f64d Adjust time_base exactly when changing ticks_per_frame to 2 this is safer
and for some raw h264 we managed to change the timebase twice before.

Originally committed as revision 17669 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-02-28 20:58:07 +00:00
Ivan Schreter
03831f462e Correctly reset SEI variables.
Patch by Ivan Schreter, schreter gmx net

Originally committed as revision 17651 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-02-27 21:28:41 +00:00
Gwenole Beauchesne
6026a0968a Add hardware acceleration hooks to H.264.
Patch by Gwenolé Beauchesne.

Originally committed as revision 17644 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-02-27 15:45:55 +00:00
Michael Niedermayer
19df37a8a6 Fix SVQ3 regression since ticks_per_frame=2.
Originally committed as revision 17640 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-02-27 14:01:32 +00:00
Michael Niedermayer
3797c74ba5 Add ticks_per_frame, this should hopefully fix the regressions caused
by the time_base change.

Originally committed as revision 17630 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-02-26 23:47:32 +00:00
Michael Niedermayer
f56995b4a6 Half user provided time_base once during the first frame when there is no
timebase stored in the h264 stream.
This should fix fate. (ffmpeg.c used pict_repeat with its default 1/25 timebase)

Originally committed as revision 17622 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-02-26 21:09:24 +00:00
Michael Niedermayer
d404b3edb3 Add hwaccel->decode_slice() call for avhwaccel by Gwenole Beauchesne.
Originally committed as revision 17591 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-02-25 19:39:42 +00:00
Ivan Schreter
fc9fe42833 Correct time_base of H.264 and repeat_pict.
Patch by Ivan Schreter, schreter gmx net

Originally committed as revision 17571 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-02-24 20:19:59 +00:00
Michael Niedermayer
a05aa821b6 add ff_find_hwaccel() by Gwenole Beauchesne
Originally committed as revision 17569 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-02-24 19:04:43 +00:00
Michael Niedermayer
09a9b45e4f Add and use ff_pixfmt_list_420.
Originally committed as revision 17564 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-02-24 18:27:52 +00:00
Diego Biurrun
acced32d08 Mark two variables with av_uninit to avoid false positive gcc warnings.
Originally committed as revision 17552 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-02-24 14:13:46 +00:00
Gwenole Beauchesne
40e5d31b57 More approved hunks for VAAPI & our new and cleaner hwaccel API.
patch by Gwenole Beauchesne gbeauchesne splitted-desktop com

Originally committed as revision 17540 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-02-23 13:44:51 +00:00
Reimar Döffinger
66e6038cf1 Check return value of frame_start(), this avoids a crash if AVCodecContext::get_buffer failed.
Not sure if returning -1 is the best possible solution but at least avoids the crash.

Originally committed as revision 17520 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-02-22 09:51:58 +00:00
Ivan Schreter
1790a5e908 Make the following H264 functions available to the parser:
ff_h264_decode_sei, ff_h264_decode_seq_parameter_set,
ff_h264_decode_picture_parameter_set, ff_h264_decode_nal,
ff_h264_decode_rbsp_trailing

Patch by Ivan Schreter, schreter gmx net

Originally committed as revision 17487 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-02-21 19:54:14 +00:00
Ivan Schreter
ebb61f834a Use last decoded SPS as current SPS in order to parse picture timing SEI
correctly. This works around an apparent H.264 standard deficiency.

Patch by Ivan Schreter, schreter gmx net

Originally committed as revision 17471 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-02-20 16:20:01 +00:00
Ivan Schreter
3878be318b Silence two warnings:
cast discards qualifiers from pointer target type

Patch by Ivan Schreter, schreter gmx net

Originally committed as revision 17463 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-02-19 23:01:13 +00:00
Ivan Schreter
2ea89d9274 Parse buffering period (H.264, D.1.1).
Patch by Ivan Schreter, schreter gmx net

Originally committed as revision 17441 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-02-18 23:33:30 +00:00
Ivan Schreter
24a414e0fa Store CPB count in the context.
Patch by Ivan Schreter, schreter gmx net

Originally committed as revision 17439 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-02-18 23:25:59 +00:00
Ivan Schreter
cf6065ca6b Parse cbp_removal_delay in SEI picture structure.
Patch by Ivan Schreter, schreter gmx net

Originally committed as revision 17413 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-02-18 00:38:10 +00:00
Ivan Schreter
ff594f81df Parse dpb_output_delay in SEI picture structure.
Patch by Ivan Schreter, schreter gmx net

Originally committed as revision 17412 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-02-18 00:36:07 +00:00
Ivan Schreter
82e38c2952 Parse initial_cpb_removal_delay_length.
Patch by Ivan Schreter, schreter gmx net

Originally committed as revision 17411 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-02-18 00:33:33 +00:00
Gwenole Beauchesne
ce09f9270a Move initialization of {luma,chroma}_weight_flag[] up,
to make sure they are always initialized.
Patch by Gwenole Beauchesne g${name} splitted-desktop com

Originally committed as revision 17393 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-02-17 13:41:27 +00:00
Diego Biurrun
de86157836 cosmetics: 'void/int inline' --> 'inline void/int' to avoid warnings of the type
"'inline' is not at beginning of declaration" with -Wextra.

Originally committed as revision 17392 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-02-17 12:11:46 +00:00
Carl Eugen Hoyos
c99a35768f Silence following warning if only zeros were not consumed:
AVC: Consumed only m bytes instead of n

Originally committed as revision 17327 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-02-15 15:23:02 +00:00
Alexander Strange
898189880b H264: Change left_block_options to uint8_t from int, saving a little space.
Originally committed as revision 17147 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-02-11 06:03:18 +00:00
Ivan Schreter
37a558fe51 Add SEI recovery point frame counter to H264Context and use it when
setting key_frame.

Patch by Ivan Schreter schreter A gmx D net

Originally committed as revision 17109 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-02-09 23:04:16 +00:00
Ivan Schreter
dd02ea118b Replace hard-coded SEI type constants with symbolic names
Patch by Ivan Schreter ( schreter gmx net )

Originally committed as revision 17064 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-02-08 20:28:12 +00:00
Måns Rullgård
5317c95b75 Remove CONFIG_H264_ENCODER references
Originally committed as revision 16996 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-02-04 21:28:58 +00:00
Gwenole Beauchesne
cb99c652eb Add fields to H264Context and SPS for upcoming VA API support.
Patch by Gwenole Beauchesne gbeauchesne A splitted-desktop dotcom

Originally committed as revision 16976 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-02-03 20:49:02 +00:00
Diego Biurrun
6bf959fee5 Add av_unused to conditionally used variable, fixes the warning:
h264.c:6464: warning: unused variable 'dir'

Originally committed as revision 16925 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-02-02 00:35:25 +00:00
Diego Biurrun
bad5537e2c Use full internal pathname in doxygen @file directives.
Otherwise doxygen complains about ambiguous filenames when files exist
under the same name in different subdirectories.

Originally committed as revision 16912 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-02-01 02:00:19 +00:00
Gwenole Beauchesne
2e584eea4b cosmetics: Add empty line for consistent formatting.
patch by Gwenolé Beauchesne, gbeauchesne splitted-desktop com

Originally committed as revision 16852 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-01-29 22:08:32 +00:00
Stefan Gehrer
45beb850de remove zigzag_scan8x8, it is the same as ff_zigzag_direct
Originally committed as revision 16744 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-01-24 14:30:15 +00:00
Aurelien Jacobs
199436b952 moves mid_pred() into mathops.h (with arch specific code split by directory)
Originally committed as revision 16681 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-01-18 22:57:40 +00:00
Carl Eugen Hoyos
0d3d172f32 Remove CODEC_ID_H264_VDPAU.
Originally committed as revision 16649 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-01-17 01:17:04 +00:00
Aurelien Jacobs
49fb20cb8a replace all occurrence of ENABLE_ by the corresponding CONFIG_, HAVE_ or ARCH_
and remove all ENABLE_ definitions.

Originally committed as revision 16600 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-01-14 17:19:17 +00:00
Aurelien Jacobs
b250f9c66d Change semantic of CONFIG_*, HAVE_* and ARCH_*.
They are now always defined to either 0 or 1.

Originally committed as revision 16590 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-01-13 23:44:16 +00:00
Carl Eugen Hoyos
1717031362 Remove H264Context from vdpau_internal.h.
Originally committed as revision 16524 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-01-11 00:48:20 +00:00
Carl Eugen Hoyos
c639fc7213 Cosmetics: Rename ff_vdpau_h264_add_data_chunk as ff_vdpau_add_data_chunk.
Originally committed as revision 16521 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-01-10 23:00:48 +00:00
Carl Eugen Hoyos
1968e438d0 Use only MpegEncContext in ff_vdpau_h264_add_data_chunk.
Originally committed as revision 16520 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-01-10 22:57:51 +00:00
Carl Eugen Hoyos
7fd3c09e0f Move vdpau_h264_set_reference_frames() call from vdpauvideo.c into h264.c.
Originally committed as revision 16513 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-01-10 02:45:07 +00:00
Carl Eugen Hoyos
7eb6ed78ea Move VDPAU check, make future VDPAU patches smaller.
Originally committed as revision 16508 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-01-09 22:22:40 +00:00
Carl Eugen Hoyos
090846f3b9 Rename ff_VDPAU as ff_vdpau.
Originally committed as revision 16492 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-01-07 23:48:32 +00:00
Diego Biurrun
218a6022e7 Only #include svq3.c if the SVQ3 decoder is enabled.
Originally committed as revision 16487 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-01-07 23:03:04 +00:00
Diego Biurrun
8b6871ed4d Disable SVQ3 checks if SVQ3 support is not compiled in.
Originally committed as revision 16462 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-01-07 01:58:04 +00:00
Jason Garrett-Glaser
26ef65daf3 50l: Reenable error resilience for H264 (Patch by Dark Shikari).
Originally committed as revision 16434 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-01-05 08:46:59 +00:00
Carl Eugen Hoyos
f2c214a1ec Cosmetics: Fix indentation.
Originally committed as revision 16433 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-01-05 00:48:44 +00:00
NVIDIA Corporation
369122dd77 Add VDPAU hardware accelerated decoding for H264 which can be used by
video players.

Original patch by NVIDIA corporation.

Originally committed as revision 16431 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-01-04 23:55:27 +00:00
Michael Niedermayer
802e91466d export refs
Originally committed as revision 16306 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-12-24 18:39:23 +00:00
Michael Niedermayer
62ea19c061 Optimize pred_pskip_motion()
7 cpu cycles faster on pentium dual.

Originally committed as revision 16304 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-12-24 03:23:38 +00:00
Michael Niedermayer
ebfb0449d3 Indent
Originally committed as revision 16302 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-12-23 22:06:16 +00:00
Michael Niedermayer
05d3fd44d7 Integrate get_te0_golomb() calls into the code, this allows some checks
to be avoided and the function is pretty small.
3% speedup, though this is probably due to changed inlining and not directly
this change.

Originally committed as revision 16301 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-12-23 22:04:34 +00:00
Michael Niedermayer
9963b332d1 Use get_ue_golomb_31() where possible, almost all are just in headers
though.

Originally committed as revision 16300 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-12-23 21:12:19 +00:00
Michael Niedermayer
2f2893ce9b indent
Originally committed as revision 16296 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-12-23 19:12:50 +00:00
Michael Niedermayer
d42fc4a8ca Use the new VLC table for the first non trailing coeff too.
Sadly only 5 cycles faster here on pentium dual. So maybe the
complexity is not worth it and this should be reverted ...

Originally committed as revision 16295 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-12-23 19:10:46 +00:00
Michael Niedermayer
593af7cdda Optimize esc removal code.
Originally committed as revision 16294 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-12-23 18:31:44 +00:00
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