Commit Graph

1729 Commits

Author SHA1 Message Date
Michael Niedermayer
d17e7070a0 Merge remote-tracking branch 'qatar/master'
* qatar/master: (51 commits)
  cin audio: use sign_extend() instead of casting to int16_t
  cin audio: restructure decoding loop to avoid a separate counter variable
  cin audio: use local variable for delta value
  cin audio: remove unneeded cast from void*
  cin audio: validate the channel count
  cin audio: remove unneeded AVCodecContext pointer from CinAudioContext
  dsicin: fix several audio-related fields in the CIN demuxer
  flacdec: use av_get_bytes_per_sample() to get sample size
  dca: handle errors from dca_decode_block()
  dca: return error if the frame header is invalid
  dca: return proper error codes instead of -1
  utvideo: handle empty Huffman trees
  binkaudio: change short to int16_t
  binkaudio: only decode one block at a time.
  binkaudio: store interleaved overlap samples in BinkAudioContext.
  binkaudio: pre-calculate quantization factors
  binkaudio: add some buffer overread checks.
  atrac3: support float or int16 output using request_sample_fmt
  atrac3: add CODEC_CAP_SUBFRAMES capability
  atrac3: return appropriate error codes instead of -1
  ...

Conflicts:
	libavcodec/atrac1.c
	libavcodec/dca.c
	libavformat/mov.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2011-10-30 01:33:41 +02:00
Carl Eugen Hoyos
0387ad892c Be more verbose about unsupported H.264 bit-depths. 2011-10-29 23:41:05 +02:00
Carl Eugen Hoyos
7afa6b4458 Warn if YCgCo colourspace is detected in H.264. 2011-10-29 13:16:47 +02:00
Anton Mitrofanov
640d5f1c80 Fix decoding of lossless 4:2:2 H.264
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2011-10-28 23:37:30 -07:00
Anton Mitrofanov
fdb5314ea7 Fix decoding of lossless 10-bit 4:4:4 H.264
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2011-10-28 23:37:30 -07:00
Michael Niedermayer
23040e2e3d h264: use long reading for first_mb_in_slice
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-10-27 17:53:08 +02:00
Michael Niedermayer
e403a97aac h264: 10l fix, missing () after replacing % by &
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-10-25 20:34:51 +02:00
Michael Niedermayer
35075dc650 h264: Calculate a tighter recovery_frame.
Reduces delay with mplayers TS demuxer.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-10-24 12:17:24 +02:00
Michael Niedermayer
63f0708478 h264: Support invalid output by mplayers TS demuxer.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-10-24 12:16:03 +02:00
Michael Niedermayer
2b0cdb7364 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  Move id3v2 tag writing to a separate file.
  swscale: add missing colons to x86 assembly yuv2planeX.
  g722: split decoder and encoder into separate files
  cosmetics: remove extra spaces before end-of-statement semi-colons
  vorbisdec: check output buffer size before writing output
  wavpack: calculate bpp using av_get_bytes_per_sample()
  ac3enc: Set max value for mode options correctly
  lavc: move get_b_cbp() from h263.h to mpeg4videoenc.c
  mpeg12: move closed_gop from MpegEncContext to Mpeg1Context
  mpeg12: move full_pel from MpegEncContext to Mpeg1Context
  mpeg12: move Mpeg1Context from mpeg12.c to mpeg12.h
  mpegvideo: remove some unused variables from MpegEncContext.

Conflicts:
	libavcodec/mpeg12.c
	libavformat/mp3enc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2011-10-24 01:01:21 +02:00
Anton Khirnov
acffe45732 mpegvideo: remove some unused variables from MpegEncContext. 2011-10-23 14:13:40 +02:00
Michael Niedermayer
f97faf6751 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  id3v2: fix doxy comment - 'machine byte order' makes no sense on char arrays
  VC1: restore mistakenly removed code
  twinvq: check output buffer size before decoding
  twinvq: return an error when the packet size is too small
  lavf: export some forgotten symbols with non-av prefixes.
  swscale: update altivec yuv2planeX asm to new per-plane API.
  swscale: make yuv2yuvX_10_sse2/avx 8/9/16-bits aware.
  yuv2planeX10 SIMD
  swscale: decide whether to use yuv2plane1/X on a per-plane basis.
  swscale: reintroduce full precision in 16-bit output.
  Split up yuv2yuvX functions
  Split out yuv2yuv1 luma and chroma in order to make them generic DSP functions
  lavc: replace references to deprecated AVCodecContext.error_recognition to use AVCodecContext.err_recognition
  lavc: translate non-flag-based er options into flag-based ef options at codec open
  add -err_filter AVOptions to access flag-based error recognition
  h264_weight: initialize "height" function argument properly.
  presets: spelling error in libvpx 1080p50_60
  avplay: fix fullscreen behaviour with SDL 1.2.14 on Mac OS X

Conflicts:
	ffplay.c
	libavformat/libavformat.v
	libswscale/swscale.c
	libswscale/x86/swscale_template.c
	tests/ref/lavfi/pixfmts_scale

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2011-10-23 05:13:56 +02:00
Dustin Brody
9abc98737f lavc: replace references to deprecated AVCodecContext.error_recognition to use AVCodecContext.err_recognition
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2011-10-22 14:49:55 +02:00
Michael Niedermayer
aedc908601 Merge remote-tracking branch 'qatar/master'
* qatar/master: (35 commits)
  flvdec: Do not call parse_keyframes_index with a NULL stream
  libspeexdec: include system headers before local headers
  libspeexdec: return meaningful error codes
  libspeexdec: cosmetics: reindent
  libspeexdec: decode one frame at a time.
  swscale: fix signed shift overflows in ff_yuv2rgb_c_init_tables()
  Move timefilter code from lavf to lavd.
  mov: add support for hdvd and pgapmetadata atoms
  mov: rename function _stik, some indentation cosmetics
  mov: rename function _int8 to remove ambiguity, some indentation cosmetics
  mov: parse the gnre atom
  mp3on4: check for allocation failures in decode_init_mp3on4()
  mp3on4: create a separate flush function for MP3onMP4.
  mp3on4: ensure that the frame channel count does not exceed the codec channel count.
  mp3on4: set channel layout
  mp3on4: fix the output channel order
  mp3on4: allocate temp buffer with av_malloc() instead of on the stack.
  mp3on4: copy MPADSPContext from first context to all contexts.
  fmtconvert: port float_to_int16_interleave() 2-channel x86 inline asm to yasm
  fmtconvert: port int32_to_float_fmul_scalar() x86 inline asm to yasm
  ...

Conflicts:
	libavcodec/arm/h264dsp_init_arm.c
	libavcodec/h264.c
	libavcodec/h264.h
	libavcodec/h264_cabac.c
	libavcodec/h264_cavlc.c
	libavcodec/h264_ps.c
	libavcodec/h264dsp_template.c
	libavcodec/h264idct_template.c
	libavcodec/h264pred.c
	libavcodec/h264pred_template.c
	libavcodec/x86/h264dsp_mmx.c
	libavdevice/Makefile
	libavdevice/jack_audio.c
	libavformat/Makefile
	libavformat/flvdec.c
	libavformat/flvenc.c
	libavutil/pixfmt.h
	libswscale/utils.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2011-10-22 01:16:41 +02:00
Ronald S. Bultje
27209bb108 h264: mark some MC functions with av_always_inline instead of inline.
This actually causes them to be inlined, leading to a significant
speedup (1-1.5% in my measurements).
2011-10-21 01:05:10 -07:00
Ronald S. Bultje
05fb63f5a0 H264: have hl_motion() and its callees take a chroma_idc argument. 2011-10-21 01:05:07 -07:00
Ronald S. Bultje
c2d337429c H264: change weight/biweight functions to take a height argument.
Neon parts by Mans Rullgard <mans@mansr.com>.
2011-10-21 01:00:45 -07:00
Ronald S. Bultje
229d263cc9 Support for lossless and inter H264 4:2:2. 2011-10-21 01:00:45 -07:00
Baptiste Coudurier
76741b0e56 h264: 4:2:2 intra decoding support
Signed-off-by: Diego Biurrun <diego@biurrun.de>
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2011-10-21 01:00:41 -07:00
Michael Niedermayer
266172aaf9 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  w32threads: support for frame multithreading
  avcodec: remove stray @deprecated comment

Conflicts:
	libavcodec/utils.c
	libavcodec/w32thread.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2011-10-17 02:29:40 +02: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
Michael Niedermayer
2ed7e353bd h264: Workaround invalid flag combinations of 8x8 inference.
Fixes Ticket555

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-10-15 15:38:10 +02:00
Mans Rullgard
318efbfc10 h264: change unsupported bit depth message to error level
Unsupported bit depth is certainly an error the user will
want to know about.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-10-12 12:39:52 +01:00
Laurent Aimar
4c7a232fc8 h264: reset h->ref_count in case of errors in ff_h264_decode_ref_pic_list_reordering()
Signed-off-by: Janne Grunau <janne-libav@jannau.net>
2011-10-10 21:37:36 +02:00
Michael Niedermayer
0a23067ab4 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  mpeg4dec: use unsigned type for startcode in ff_mpeg4_decode_picture_header
  mpeg124: use sign_extend() function
  ac3dec: use get_sbits() instead of manually sign-extending
  4xm: fix signed overflow
  wmavoice: fix a signed overflow
  mpegvideo_enc: fix a signed overflow
  crc: fix signed overflow
  fate: run avconv with -nostats flag
  avtools: add -v as alias for -loglevel
  avconv: always print stats with AV_LOG_INFO
  doc/avconv: add forgotten output/per-stream info to -filter
  avconv: add -stats option to enable/disable printing encoding progress
  avconv: in output_packet() don't set decoded_data_size for video.
  avconv: remove pointless always true condition
  avconv: factorize common code in transcode_init()
  zmbv: remove memcpy() of decoded frame
  mpeg12enc: use sign_extend() function
  h264pred: use unsigned types for pixel values, fix signed overflows
  h264: fix signed overflows in x*0x01010101 expressions
  h264pred: remove unused variables

Conflicts:
	avconv.c
	tests/fate-run.sh

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2011-10-10 03:50:58 +02:00
Mans Rullgard
4d1418cd4f h264: fix signed overflows in x*0x01010101 expressions
Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-10-09 12:27:19 +01:00
Themaister
a3e11fa43c Start adding pixel definitions for planar rgb. 2011-10-08 23:19:14 +02:00
Michael Niedermayer
9b47173545 Merge remote-tracking branch 'qatar/master'
* qatar/master: (24 commits)
  mpegps: Use av_get_packet() instead of poorly emulating it.
  motionpixels: decode only the 111 complete frames for fate
  mpc8: Check out of bound bands limit
  xan: Prevent NULL dereference with missing palette
  xan: Check for out of bound reads in xan_huffman_decode()
  xan: Fixed out of bound accesses in xan_unpack()
  motionpixels: Prevent calling init_vlc() with invalid parameters
  shorten: Fix out of bound writes in fix_bitshift()
  dsicinav: Check for out of bounds writes
  tiertexseqv: Check for out of bound reads
  quickdraw: Check for out of bound reads
  dsicinav: Check for out of bounds reads
  motionpixels: Fix the size of workspace buffers
  motionpixels: Clear FF_INPUT_BUFFER_PADDING_SIZE bytes at the end of the temporary buffer
  wmavoice: Check for corrupted extra data
  wmavoice: Check for out of bound writes
  xan: Prevent NULL dereferences with missing reference frame
  bink: Prevent NULL dereferences with missing reference frame
  wavpack: Reset internal state on corrupted blocks
  wmapro: Validate the number of audio channels before using it
  ...

Conflicts:
	libavcodec/h264.c
	libavcodec/xan.c
	tests/ref/fate/motionpixels

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2011-10-08 03:39:01 +02:00
Michael Niedermayer
74f77eb048 H264: set colorspace and full range to values indicating unspecified by default
Code based on ffdshow
Author unknown

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-10-08 03:13:21 +02:00
Michael Niedermayer
14c21c1ff5 H264: Only wait before triggering ff_thread_setup_complete() until the next slice that contains a start-of-field/frame macroblock
This allows concurrent decoding of the last field/frame, rather than
only the last slice, of data packets with multiple NAL units packed
together.

This will fix the slowdown reported in e.g. bug 52.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2011-10-07 14:23:26 +02:00
Michael Niedermayer
86602d1c79 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  vp6: Reset the internal state when aborting key frames header parsing
  vp56: Release old pictures after a resolution changes
  vp6: Check for huffman tree build errors
  vp56: Check for missing reference frame data
  cinepak: Fix invalid read access on extra data
  vmd: fix segfaults on corruped streams
  cook: Fix js_vlc_bits value validation for joint stereo
  segafilm: Check for memory allocation failures in segafilm demuxer.
  segafilm: Fix potential division by 0 on corrupted streams in the demuxer
  Fixed segfault on corrupted sega streams in the demuxer.
  Fixed deference of NULL pointer in motionpixels decoder.
  libx264: support 9- and 10-bit output.
  h264: correct implicit_weight for field-interlaced pictures.
  mpegvideo: set correct offset for edge emulation buffer.
  mpegvideo: fix position of bottom edge.

Conflicts:
	libavcodec/motionpixels.c
	libavcodec/mpegvideo.c
	libavcodec/version.h
	libavcodec/vmdav.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2011-10-07 03:38:50 +02:00
Laurent Aimar
5ec55d216e h264: reject unsupported 422 9 bit streams
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-10-07 00:57:05 +02:00
Ronald S. Bultje
4418aa9cb3 h264: correct implicit_weight for field-interlaced pictures. 2011-10-05 04:01:23 -07:00
Laurent Aimar
0333d234b0 h264: do not let invalid values in h->ref_count after a decoder reset.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-10-05 00:07:39 +02:00
Laurent Aimar
253d18b352 h264: bit depth/chroma idc changes must go through a full format negociation.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-10-05 00:07:39 +02:00
Laurent Aimar
a51fbb56bb h254: explicitly initialize bit depth/chroma idc
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-10-05 00:07:39 +02:00
Michael Niedermayer
eaa21b6870 H264: hotfix for speedloss on frame threading and h264 files with slices.
This fix is not ideal as it still limits the multithreading on field pictures
to the 2nd field only.
Ill try to fix it properly to allow both fields to decode concurrently but this
needs more work.

This bug exists since and was caused by:
commit ea6331f8bb
Author: Ronald S. Bultje <rsbultje@gmail.com>
Date:   Mon Jun 20 10:24:33 2011 -0400

    h264-mt: fix deadlock in packets with multiple slices (e.g. MP4).
2011-10-04 00:26:18 +02:00
Laurent Aimar
a4fd95b5d5 h264: fix intra 16x16 mode check when using mbaff and constrained_intra_pred.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-10-02 21:20:57 +02:00
Laurent Aimar
2428b53f6d h264: do not let invalid values in h->ref_count on ff_h264_decode_ref_pic_list_reordering() errors.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-10-02 16:48:58 +02:00
Michael Niedermayer
3af2de76ac h264: set unused ref_counts to 0 as a precautionary meassure.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-10-02 00:45:41 +02:00
Michael Niedermayer
c9c7a776db h264: try reading SPS with wrong escaping, it sometimes works better
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-10-01 17:59:27 +02:00
Michael Niedermayer
dc9ce40069 h264: More correct ref_count check in decode_slice_header()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-09-28 22:28:47 +02:00
Michael Niedermayer
5a6e7771ed h264: dont set key_frame when the frame is not a real keyframe.
Fixes Ticket514

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-09-28 03:47:39 +02:00
Michael Niedermayer
f85c9b7771 h264dec: fix decoding problems introduced with baad01d8b4.
This affected cases where extradata was not set.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-09-25 23:51:32 +02:00
Alexander Strasser
baad01d8b4 h264: improve checks before calling ff_h264_decode_extradata
The ff_h264_decode_extradata routine now checks for the buffer size
and pointer internally. This makes it possible to remove the external
checks in ff_h264_decode_init.

  In decode_frame there was a size check missing because the buffer
gets tested prior to the invocation of ff_h264_decode_extradata().

Signed-off-by: Alexander Strasser <eclipse7@gmx.net>
2011-09-25 17:16:44 +02:00
Alexander Strasser
715f259bf9 h264: ff_h264_decode_extradata: check buffer args
The buffer size and pointer were not checked prior to testing the first
byte of the buffer. These were sometimes checked before calling, but it is
better to add it inside the function as it takes buf and size arguments.

Signed-off-by: Alexander Strasser <eclipse7@gmx.net>
2011-09-25 17:16:44 +02:00
Laurent Aimar
d1186ff72d h264: check for out of bounds reads in ff_h264_decode_extradata().
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2011-09-25 15:04:58 +02:00
Laurent Aimar
57764c6996 h264: Check for out of bounds reads in ff_h264_decode_extradata().
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-09-24 16:54:16 +02:00
Michael Niedermayer
9b73fbcff6 h264dec: Decode in stream avc extradata.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-09-23 06:01:45 +02:00
Michael Niedermayer
4ba396834d h264: pass buffer & size to ff_h264_decode_extradata()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-09-23 06:01:45 +02:00
Michael Niedermayer
3e1a7ae44a Merge remote-tracking branch 'qatar/master'
* qatar/master:
  swfdec: Add support for sample_rate_code 0 (5512 Hz)
  dct-test: factor out some common code and do whas was likely intended
  doc: library versions need to be bumped in version.h
  Revert "ffmpeg: get rid of useless AVInputStream.nb_streams."
  Remove some forgotten AVCodecContext.palctrl usage.
  lavc/utils: move avcodec_init() higher in the file.
  lavc: replace some deprecated FF_*_TYPE with AV_PICTURE_TYPE_*
  ac3dec: actually use drc_scale private option
  lavc: undeprecate AVPALETTE_SIZE and AVPALETTE_COUNT macros
  alsa: add missing header
  msmpeg4: remove leftover unused debug variable declaration
  Fix assert() calls that need updates after FF_COMMON_FRAME macro elimination.
  Fix av_dlog invocations with wrong or missing logging context.
  vf_yadif: add support to yuva420p
  vf_yadif: correct documentation on the parity parameter
  vf_yadif: copy buffer properties like aspect for second frame as well
  oma: support for encrypted files
  id3v2: add support for non-text and GEOB type tag frames
  des: add possibility to calculate DES-CBC-MAC with small buffer

Conflicts:
	ffmpeg.c
	libavcodec/dct-test.c
	libavformat/mpegts.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2011-09-21 21:25:43 +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
Michael Niedermayer
4832ed4c62 h264: do not increase recovery frame which would lead to endless moving away of the recovery point.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-09-20 02:52:17 +02:00
Michael Niedermayer
a8a9844a3c h264: reset recovery frame on seeks.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-09-20 02:52:17 +02:00
John Stebbins
53e37840bf calculate frame_num for recovery point "keyframe"
recovery points that have non-zero recovery_frame_cnt resulted in
flagging incomplete frames as keyframes. This delays setting the
keyframe flag till the frame has been fully constructed.
2011-09-18 23:13:50 +02:00
Michael Niedermayer
ba5ff1b31e h264dec: add forgotten copying of h->sync
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-09-18 21:53:30 +02:00
Michael Niedermayer
0812ad01c8 h264dec: Support CODEC_FLAG2_SHOW_ALL.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-09-18 15:33:50 +02:00
Michael Niedermayer
a64b028aeb h264dec: Dont display trash before a keyframe.
Fixes Ticket472
This may (or may not) cause problems with files that have no keyframes.
Plese open a bugreport or mail me if you have a file for which this fails.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-09-17 21:20:44 +02:00
Michael Niedermayer
205c13685f h264: allow disabling bitstream overread protection by using the fast flag.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-09-14 20:48:00 +02:00
Michael Niedermayer
716c1f7b2a h264: improve MAX_SLICES too small check so it gives less false positives.
Fixes Ticket273

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-09-12 06:07:58 +02:00
Michael Niedermayer
ea0ac11e52 h264: prevent an out of array read in decode_nal_units()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-09-11 07:23:00 +02:00
Michael Niedermayer
23f5cff92c h264dec: Prevent CABAC and CAVLC bitsteram overreading
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-09-11 04:57:46 +02:00
Michael Niedermayer
66ce282df5 h264: clean all non null elements of delayed_pic[]
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-08-31 05:04:14 +02:00
Michael Niedermayer
b955ab2f49 h264: change MAX_DELAYED_PIC_COUNT check to av_assert0
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-08-31 05:00:39 +02:00
Michael Niedermayer
db5effe1a4 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  Revert "h264: Properly set coded_{width, height} when parsing H.264."
  isom: add missing AVC-Intra tags, rearrange list and update comments
  avconv: remove stubs of crop* and pad* options
  avconv: re-add nb_streams to InputFile.

Conflicts:
	avconv.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2011-08-29 22:24:01 +02:00
Luca Barbato
22141917a9 Revert "h264: Properly set coded_{width, height} when parsing H.264."
This reverts commit b47904d158.

coded_{width, height} overwrites width and height in avcodec_open and
it currently just report the non-lowres size.
2011-08-29 18:32:31 +02:00
Michael Niedermayer
13e9a0fbfb h264: fixup indention
issue spoted in last merge (probably indention fixed there by diego)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-08-20 00:38:26 +02:00
Jeff Downs
6581e161c5 h264: fix PCM intra-coded blocks in monochrome case
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2011-08-19 16:02:33 +02:00
Michael Niedermayer
ada49f936e Merge remote-tracking branch 'qatar/master'
* qatar/master:
  h264: correct implicit weight table computation for long ref pics
  h264: correct the check for invalid long term frame index in MMCO decode

Conflicts:
	libavcodec/h264.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2011-08-19 15:07:12 +02:00
Jeff Downs
87cf70eb23 h264: correct implicit weight table computation for long ref pics
Correct computation of implicit weight tables when referencing pictures
that are marked for long reference.

Signed-off-by: Diego Biurrun <diego@biurrun.de>
2011-08-19 14:36:52 +02:00
Baptiste Coudurier
231a6df9ea h264dec: h264: 4:2:2 intra decoding
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-08-15 00:39:55 +02:00
Michael Niedermayer
0cb233cf46 Merge commit 'b2c087871dafc7d030b2d48457ddff597dfd4925'
* commit 'b2c087871dafc7d030b2d48457ddff597dfd4925':
  Move x86util.asm from libavcodec/ to libavutil/.
  Move x86inc.asm to libavutil/.
  APIchanges: note error_recognition in lavf
  lavf: add support for error_recognition, use it in avidec, and bump minor API version
  avconv: change semantics of -map
  avconv: get rid of new* options.
  cmdutils: allow precisely specifying a stream for AVOptions.
  configure: add missing CFLAGS to fix building on the HURD
  libx264: Include hint for possible values for configuring libx264
  cmdutils: allow ':'-separated modifiers in option names.
  avconv: make -map_metadata work consistently with the other options
  avconv: remove deprecated options.
  avconv: make -map_chapters accept only the input file index.
  Make a copy of ffmpeg under a new name -- avconv.
  ffmpeg: add a warning stating that the program is deprecated.
  Add weighted motion compensation for RV40 B-frames
  RV3/4: calculate B-frame motion weights once per frame
  Move RV3/4-specific DSP functions into their own context
  mjpeg: propagate decode errors from ff_mjpeg_decode_sos and ff_mjpeg_decode_dqt
  h264: notice memory allocation failure

Conflicts:
	.gitignore
	Makefile
	cmdutils.c
	configure
	doc/ffplay.texi
	doc/ffprobe.texi
	doc/ffserver.texi
	libavcodec/libx264.c
	libavformat/avformat.h
	libavformat/avidec.c
	libavformat/version.h
	tests/lavf-regression.sh
	tests/lavfi-regression.sh

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2011-08-13 02:56:08 +02:00
Dustin Brody
bac3ab13ea h264: notice memory allocation failure
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2011-08-11 15:59:07 -07:00
Michael Niedermayer
a9aa88df1d Merge remote-tracking branch 'qatar/master'
* qatar/master:
  lavc: make avcodec_init() static on next bump.
  ac3enc: remove unneeded #include
  ac3enc: restructure coupling coordinate reuse calculation
  ac3enc: allow new coupling coordinates to be sent independently for each channel.
  ac3enc: separate exponent bit counting from exponent grouping.
  h264: propagate error return values for AV_LOG_ERROR-triggering events
  aac: Don't attempt to output configure an invalid channel configuration.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2011-08-10 16:29:51 +02:00
Dustin Brody
12fe759423 h264: propagate error return values for AV_LOG_ERROR-triggering events
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2011-08-09 12:29:13 -07:00
Michael Niedermayer
faba79e080 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  mxfdec: Include FF_INPUT_BUFFER_PADDING_SIZE when allocating extradata.
  H.264: tweak some other x86 asm for Atom
  probe: Fix insane flow control.
  mpegts: remove invalid error check
  s302m: use nondeprecated audio sample format API
  lavc: use designated initialisers for all codecs.
  x86: cabac: add operand size suffixes missing from 6c32576

Conflicts:
	libavcodec/ac3enc_float.c
	libavcodec/flacenc.c
	libavcodec/frwu.c
	libavcodec/pictordec.c
	libavcodec/qtrleenc.c
	libavcodec/v210enc.c
	libavcodec/wmv2dec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2011-07-30 06:46:08 +02:00
Anton Khirnov
ec6402b7c5 lavc: use designated initialisers for all codecs.
It's more readable and less prone to breakage.
2011-07-29 08:42:34 +02:00
Jeff Downs
4105443872 h264 - Correct implicit weight table computation for long ref pics
Correct computation of implicit weight tables when referencing pictures
that are marked for long reference.
2011-07-28 15:11:16 -04:00
Jeff Downs
188694b2f5 h264 - Fix PCM intra coded blocks in monochrome case 2011-07-28 15:11:16 -04:00
Michael Niedermayer
2fb9fc0f6c h264: improve max slices error message
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-07-28 11:50:02 +02:00
Michael Niedermayer
4095fa9038 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  dnxhddec: optimise dnxhd_decode_dct_block()
  rtp: remove disabled code
  eac3enc: use different numbers of blocks per frame to allow higher bitrates
  dnxhd: add regression test for 10-bit
  dnxhd: 10-bit support
  dsputil: update per-arch init funcs for non-h264 high bit depth
  dsputil: template get_pixels() for different bit depths
  dsputil: create 16/32-bit dctcoef versions of some functions
  jfdctint: add 10-bit version
  mov: add clcp type track as Subtitle stream.
  mpeg4: add Mpeg4 Profiles names.
  mpeg4: decode Level Profile for MPEG4 Part 2.
  ffprobe: display bitstream level.
  imgconvert: remove unused glue and xglue macros

Conflicts:
	libavcodec/dsputil_template.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2011-07-22 12:08:52 +02:00
Mans Rullgard
5cc2600964 dsputil: create 16/32-bit dctcoef versions of some functions
High bitdepth H.264 needs 32-bit transform coefficients, whereas
dnxhd does not.  This creates a conflict with the templated
functions operating on DCTELEM data.  This patch adds a field
allowing the caller to choose the element size in dsputil_init()
and adds the required functions.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-07-21 18:10:58 +01:00
Michael Niedermayer
ba99474b1d h264: fix h264-test
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-07-21 16:53:24 +02:00
Michael Niedermayer
7c6c4cf2fb Merge remote-tracking branch 'qatar/master'
* qatar/master:
  Remove h264_lowres_idct_put/add functions
  Remove snow/dwt test program
  h264: remove some disabled code
  Fix incorrect max_lowres values
  matroskadec: fix integer underflow if header length < probe length.
  cosmetics: indentation
  eac3enc: use frame exponent strategy when applicable.
  cosmetics: rename eac3dec_data.c/h to eac3_data.c/h since the tables will also be used in the E-AC-3 encoder.
  dsputil: fix ff_check_alignment()

Conflicts:
	libavcodec/Makefile
	libavcodec/h264idct_template.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2011-07-20 18:31:45 +02:00
Diego Biurrun
1b4a17094e h264: remove some disabled code 2011-07-20 15:04:51 +02:00
Michael Niedermayer
e10979ff56 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  changelog: misc typo and wording fixes
  H.264: add filter_mb_fast support for >8-bit decoding
  doc: Remove outdated comments about gcc 2.95 and gcc 3.3 support.
  lls: use av_lfg instead of rand() in test program
  build: remove unnecessary dependency on libs from 'all' target
  H.264: avoid redundant alpha/beta calculations in loopfilter
  H.264: optimize intra/inter loopfilter decision
  mpegts: fix Continuity Counter error detection
  build: remove unnecessary FFLDFLAGS variable
  vp8/mt: flush worker thread, not application thread context, on seek.
  mt: proper locking around release_buffer calls.
  DxVA2: unbreak build after [657ccb5ac7]
  hwaccel: unbreak build
  Eliminate FF_COMMON_FRAME macro.

Conflicts:
	Changelog
	Makefile
	doc/developer.texi
	libavcodec/avcodec.h
	libavcodec/h264.c
	libavcodec/mpeg4videodec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2011-07-12 01:42: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
Michael Niedermayer
2f56a97f24 Merge remote-tracking branch 'qatar/master'
* qatar/master: (22 commits)
  H.264: fix filter_mb_fast with 4:4:4 + 8x8dct
  alsa: limit buffer_size to 32768 frames.
  alsa: fallback to buffer_size/4 for period_size.
  doc: replace @pxref by @ref where appropriate
  mpeg1video: don't abort if thread_count is too high.
  segafilm: add support for videos with cri adx adpcm
  gxf: Fix 25 fps DV material in GXF being misdetected as 50 fps
  libxvid: Add const qualifier to silence compiler warning.
  H.264: improve qp_thresh check
  H.264: use fill_rectangle in CABAC decoding
  H.264: Remove redundant hl_motion_16/8 code
  H.264: merge fill_rectangle into P-SKIP MV prediction, to match B-SKIP
  H.264: faster P-SKIP decoding
  H.264: av_always_inline some more functions
  H.264: Add x86 assembly for 10-bit H.264 predict functions
  swscale: rename uv_off/uv_off2 to uv_off_px/byte.
  swscale: implement error dithering in planarCopyWrapper.
  swscale: error dithering for 16/9/10-bit to 8-bit.
  swscale: fix overflow in 16-bit vertical scaling.
  swscale: fix crash in 8-bpc bilinear output without alpha.
  ...

Conflicts:
	doc/developer.texi
	libavdevice/alsa-audio.h
	libavformat/gxf.c
	libswscale/swscale.c
	libswscale/swscale_internal.h
	libswscale/swscale_unscaled.c
	libswscale/x86/swscale_template.c
	tests/ref/lavfi/pixdesc
	tests/ref/lavfi/pixfmts_copy
	tests/ref/lavfi/pixfmts_crop
	tests/ref/lavfi/pixfmts_hflip
	tests/ref/lavfi/pixfmts_null
	tests/ref/lavfi/pixfmts_scale
	tests/ref/lavfi/pixfmts_vflip

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2011-07-10 04:28:50 +02:00
Jason Garrett-Glaser
6a2176aac0 H.264: improve qp_thresh check
Eliminate redundant check in filter_mb_fast, consider bit depth in calculating qp_thresh.
2011-07-08 16:12:42 -07:00
Jason Garrett-Glaser
298e52c99c H.264: Remove redundant hl_motion_16/8 code 2011-07-08 16:12:36 -07:00
Jason Garrett-Glaser
bbdd52ed34 H.264: av_always_inline some more functions
These weren't getting inlined all the time in all gcc versions.
2011-07-08 16:09:35 -07:00
Michael Niedermayer
976a8b2179 Merge remote-tracking branch 'qatar/master'
* qatar/master: (40 commits)
  H.264: template left MB handling
  H.264: faster fill_decode_caches
  H.264: faster write_back_*
  H.264: faster fill_filter_caches
  H.264: make filter_mb_fast support the case of unavailable top mb
  Do not include log.h in avutil.h
  Do not include pixfmt.h in avutil.h
  Do not include rational.h in avutil.h
  Do not include mathematics.h in avutil.h
  Do not include intfloat_readwrite.h in avutil.h
  Remove return statements following infinite loops without break
  RTSP: Doxygen comment cleanup
  doxygen: Escape '\' in Doxygen documentation.
  md5: cosmetics
  md5: use AV_WL32 to write result
  md5: add fate test
  md5: include correct headers
  md5: fix test program
  doxygen: Drop array size declarations from Doxygen parameter names.
  doxygen: Fix parameter names to match the function prototypes.
  ...

Conflicts:
	libavcodec/x86/dsputil_mmx.c
	libavformat/flvenc.c
	libavformat/oggenc.c
	libavformat/wtv.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2011-07-04 00:45:21 +02:00
Jason Garrett-Glaser
556f8a066c H.264: template left MB handling
Faster H.264 decoding with ALLOW_INTERLACE off.
2011-07-03 15:06:00 -07:00
Jason Garrett-Glaser
3b7ebeb4d5 H.264: faster write_back_*
Avoid aliasing, unroll loops, and inline more functions.
2011-07-03 15:05:55 -07:00
Jason Garrett-Glaser
cb5469462d H.264: faster fill_filter_caches
Reduce aliasing problems and unroll mv/ref loop.
2011-07-03 15:05:52 -07:00
Mans Rullgard
add41decd9 Remove return statements following infinite loops without break
These statements cannot be reached and are thus not needed.
This removes a number of compiler warnings.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-07-03 21:39:07 +01:00
Michael Niedermayer
f211d9d839 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  build: improve rules for test programs
  build: factor out the .c and .S compile commands as a macro
  swscale: remove unused xInc/srcW arguments from hScale().
  H.264: disable 2tap qpel with CODEC_FLAG2_FAST and >8-bit
  H.264: make filter_mb_fast support 4:4:4
  mpeg4videoenc: Remove disabled variant of mpeg4_encode_block().
  configure: allow post-fixed cpu strings for athlon64, k8, and opteron when setting the -march flag.
  Move some variable declarations below the proper #ifdefs.

Conflicts:
	Makefile
	ffplay.c
	libswscale/swscale.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2011-06-27 03:32:45 +02:00
Jason Garrett-Glaser
9a0dda8b3a H.264: disable 2tap qpel with CODEC_FLAG2_FAST and >8-bit
2tap qpel isn't implemented yet for high bit depth, so it just breaks decoding.
2011-06-26 14:35:39 -07:00
Michael Niedermayer
4b87a088bf Merge remote-tracking branch 'qatar/master'
* qatar/master:
  configure: add --optflags option
  build: move documentation rules to doc/Makefile
  build: move test rules to tests/Makefile
  ac3enc: remove unneeded local variable in asym_quant()
  ac3enc: remove a branch in asym_quant() by doing 2 shifts
  ac3enc: avoid masking output in asym_quant() by using signed values for quantized mantissas.
  H.264: fix 4:4:4 + deblocking + 8x8dct + cavlc + MBAFF
  H.264: fix 4:4:4 + deblocking + MBAFF
  H.264: fix 4:4:4 cropping warning
  H.264: reference the correct SPS in decode_scaling_matrices
  H.264: fix bug in lossless 4:4:4 decoding

Conflicts:
	Makefile

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2011-06-23 04:49:04 +02:00
Jason Garrett-Glaser
7c9079ab4c H.264: fix 4:4:4 + deblocking + MBAFF 2011-06-22 02:39:17 -07:00
Jason Garrett-Glaser
3b79f2e2e9 H.264: fix bug in lossless 4:4:4 decoding
Coefficient test for i16x16 add_pixels4 assumed luma plane.
2011-06-22 02:39:09 -07:00
Michael Niedermayer
043d2affbb Merge remote-tracking branch 'qatar/master'
* qatar/master:
  rawdec: Fix decoding of QT WRAW files.
  configure: report optimization for size separately
  mov: Support Digital Voodoo SD 8 Bit and DTS codec identifiers.
  mov: Support R10g codec identifier.
  riff/img2: Add JPEG 2000 codec IDs.
  riff: Add DAVC fourcc.
  riff: Add M263, XVIX, MMJP, CDV5 fourccs.
  rawvideo: Support auv2 fourcc.
  swscale: Remove unused variable from ff_bfin_get_unscaled_swscale().
  h264: Fix assert that failed to compile with -DDEBUG.
  h264: Add x86 assembly for 10-bit weight/biweight H.264 functions.
  fate: remove output redirections from old regtest scripts

Conflicts:
	configure
	libavcodec/rawdec.c
	libavformat/isom.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2011-06-22 05:16:40 +02:00
Diego Biurrun
6371ce4b0f h264: Fix assert that failed to compile with -DDEBUG.
The assert referenced a variable that no longer exists since 4:4:4 support.
2011-06-21 20:52:45 +02:00
Jason Garrett-Glaser
da0dadb936 Fix H.264 4:4:4 lossless decoding.
The coefficient test for i16x16 add_pixels4 assumed luma plane.
2011-06-21 10:45:22 +02:00
Michael Niedermayer
6cbe81999b Merge remote-tracking branch 'qatar/master'
* qatar/master: (28 commits)
  Replace usages of av_get_bits_per_sample_fmt() with av_get_bytes_per_sample().
  x86: cabac: fix register constraints for 32-bit mode
  cabac: move x86 asm to libavcodec/x86/cabac.h
  x86: h264: cast pointers to intptr_t rather than int
  x86: h264: remove hardcoded edi in decode_significance_8x8_x86()
  x86: h264: remove hardcoded esi in decode_significance[_8x8]_x86()
  x86: h264: remove hardcoded edx in decode_significance[_8x8]_x86()
  x86: h264: remove hardcoded eax in decode_significance[_8x8]_x86()
  x86: cabac: change 'a' constraint to 'r' in get_cabac_inline()
  x86: cabac: remove hardcoded esi in get_cabac_inline()
  x86: cabac: remove hardcoded edx in get_cabac_inline()
  x86: cabac: remove unused macro parameter
  x86: cabac: remove hardcoded ebx in inline asm
  x86: cabac: remove hardcoded struct offsets from inline asm
  cabac: remove inline asm under #if 0
  cabac: remove BRANCHLESS_CABAC_DECODER switch
  cabac: remove #if 0 cascade under never-set #ifdef ARCH_X86_DISABLED
  document libswscale bump
  error_resilience: skip last-MV predictor step if MVs are not available.
  error_resilience: actually add counter when adding a MV predictor.
  ...

Conflicts:
	Changelog
	libavcodec/error_resilience.c
	libavfilter/defaults.c
	libavfilter/vf_drawtext.c
	libswscale/swscale.h
	tests/ref/vsynth1/error
	tests/ref/vsynth2/error

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2011-06-21 03:38:25 +02:00
Ronald S. Bultje
ea6331f8bb h264-mt: fix deadlock in packets with multiple slices (e.g. MP4). 2011-06-20 10:24:33 -04:00
Michael Niedermayer
56e11d2305 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  Drop git- prefix from version labels
  Use the contents of RELEASE as version fallback instead of 'UNKNOWN'
  path64/open64: filter out unsupported flags
  Add Release Notes
  sipr: Drop unused DSPContext
  sipr: include string.h for mem*()
  sipr: Use memmove() to copy overlapped buffers.
  h264: drop some ugly casts

Conflicts:
	version.sh

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2011-06-20 04:07:34 +02:00
Alex Converse
0c17beba97 h264: drop some ugly casts 2011-06-18 22:11:55 -07:00
Michael Niedermayer
a4233d1f95 h264: print actual slice number in "Too many slices" warning
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-06-19 03:54:16 +02:00
Michael Niedermayer
2905e3ff64 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  lavc: add opt_find to AVCodecContext class.
  h264: Complexify frame num gap shortening code
  intreadwrite.h: fix AV_RL32/AV_RB32 signedness.
  Fix decoding of mpegts streams with h264 video that does *NOT* have b frames
  Add minor bumps and APIChanges entries for lavf private options.
  ffmpeg: deprecate -vc and -tvstd
  ffmpeg: use new avformat_open_* API.
  ffserver: use new avformat_open_* API.
  ffprobe: use new avformat_open_* API.
  ffplay: use new avformat_open_* API.
  cmdutils: add opt_default2().
  dict: add AV_DICT_APPEND flag.
  lavf: add avformat_write_header() as a replacement for av_write_header().
  Deprecate av_open_input_* and remove their uses.
  lavf: add avformat_open_input() as a replacement for av_open_input_*
  AVOptions: add av_opt_find() as a replacement for av_find_opt.
  AVOptions: add av_opt_set_dict() mapping a dictionary struct to a context.
  ffmpeg: don't abuse a global for passing frame size from input to output
  ffmpeg: don't abuse a global for passing pixel format from input to output
  ffmpeg: initialise encoders earlier.

Conflicts:
	cmdutils.c
	doc/APIchanges
	ffmpeg.c
	ffplay.c
	ffprobe.c
	libavcodec/h264.c
	libavformat/avformat.h
	libavformat/utils.c
	libavformat/version.h
	libavutil/avutil.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2011-06-18 05:10:38 +02:00
Alexander Strange
3803af22d8 h264: Complexify frame num gap shortening code
By observation it did not seem to handle prev_frame_num > frame_num.
This does not affect any files I have.

Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2011-06-16 20:51:51 +02:00
Mike Scheutzow
aa15e68721 Fix decoding of mpegts streams with h264 video that does *NOT* have b frames
One of the causes of this bug is that the h264 parser defaults low_delay
to 1, but the h264 codec defaults low_delay to 0. Really Ugly.

After many hours of looking at this, I'm still not sure how has_b_frames
is *intended* to behave, but to me the implementation appears way more
complicated than it ought to be.

My patch relies on the encoder to set an optional field in the SPS. This
works for libx264 streams, but I'm not sure that all h264 encoders will
set it.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2011-06-16 20:24:58 +02:00
Michael Niedermayer
c137fdd778 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  swscale: remove misplaced comment.
  ffmpeg: fix streaming to ffserver.
  swscale: split out RGB48 output functions from yuv2packed[12X]_c().
  build: move vpath directives to main Makefile
  swscale: fix JPEG-range YUV scaling artifacts.
  build: move ALLFFLIBS to a more logical place
  ARM: factor some repetitive code into macros
  Fix SVQ3 after adding 4:4:4 H.264 support
  H.264: fix CODEC_FLAG_GRAY
  4:4:4 H.264 decoding support
  ac3enc: fix allocation of floating point samples.

Conflicts:
	ffmpeg.c
	libavcodec/dsputil_template.c
	libavcodec/h264.c
	libavcodec/mpegvideo.c
	libavcodec/snow.c
	libswscale/swscale.c
	libswscale/swscale_internal.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2011-06-15 02:15:25 +02:00
Jason Garrett-Glaser
7b442ad918 H.264: fix CODEC_FLAG_GRAY
It was broken in 4:4:4, and still did chroma deblocking for no reason in 4:2:0.
2011-06-13 21:16:33 -07:00
Jason Garrett-Glaser
c90b94424c 4:4:4 H.264 decoding support
Note: this is 4:4:4 from the 2007 spec revision, not the previous (now deprecated) 4:4:4 mode in H.264.
2011-06-13 21:16:30 -07:00
Michael Niedermayer
173cd695cb Merge remote-tracking branch 'qatar/master'
* qatar/master: (24 commits)
  utils: Drop pointless '#if 1' preprocessor directive.
  ac3enc: remove empty ac3_float function that is never called
  ac3enc: split templated float vs. fixed functions into a separate file.
  ac3enc: dynamically allocate AC3EncodeContext fields windowed_samples and mdct
  ac3enc: use function pointer to choose between AC-3 and E-AC-3 header output functions.
  Roll back 4:4:4 H.264 for now Needs some ARM/PPC asm modifications.
  Fix SVQ3 after adding 4:4:4 H.264 support
  H.264: fix CODEC_FLAG_GRAY
  4:4:4 H.264 decoding support
  h264_parser: Fix whitespace after previous change.
  h264_parser: Fix behaviour when PARSER_FLAG_COMPLETE_FRAMES is set.
  wav: remove an invalid free().
  lavf: initialise reference_dts in av_estimate_timings_from_pts.
  h264: don't be so picky on decoding pps in extradata.
  avcodec.h: add or elaborate on some documentation comments.
  h264: change a few comments into error messages
  ac3dec: fix doxy-style for comment ("///>" should be "///<" instead).
  img2: add .dpx to the list of supported file extensions.
  ffv1: fix undefined behavior with insane widths.
  ARM: jrevdct_arm: simplify stack usage
  ...

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2011-06-14 04:56:26 +02:00
Jason Garrett-Glaser
504811baea Roll back 4:4:4 H.264 for now
Needs some ARM/PPC asm modifications.
2011-06-13 13:38:46 -07:00
Jason Garrett-Glaser
c177cfb4fb H.264: fix CODEC_FLAG_GRAY
It was broken in 4:4:4, and still did chroma deblocking for no reason in 4:2:0.
2011-06-13 12:21:49 -07:00
Jason Garrett-Glaser
c9c493872c 4:4:4 H.264 decoding support
Note: this is 4:4:4 from the 2007 spec revision, not the previous (now deprecated) 4:4:4 mode in H.264.
2011-06-13 12:21:39 -07:00
Michael Niedermayer
108f318d90 h264: don't be so picky on decoding pps in extradata.
Fixes issue2517

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2011-06-13 20:45:09 +02:00
Michael Niedermayer
33aec3f402 h264: change a few comments into error messages
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2011-06-13 20:44:14 +02:00
Michael Niedermayer
21d5de9303 H264: Reduce pointless diffs to qatar
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-06-13 03:51:59 +02:00
Michael Niedermayer
f0e9ee8d94 Revert "H264: Split out hl_motion and template it, this seems a bit faster"
This reverts commit a50f0bea25.

This has been implemented differently in qatar and its better they
maintain it for me instead of me having to spend an average 5sec more
per merge

Conflicts:

	libavcodec/h264.c

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-06-13 03:49:36 +02:00
Alexander Strange
33eac92a3c h264: Complexify frame num gap shortening code
By observation it did not seem to handle prev_frame_num > frame_num.
This does not affect any files I have.
(cherry picked from commit 43c0092a80f8212cbb783260bafa157f7b85126e)
2011-06-12 18:02:24 +02:00
Michael Niedermayer
99eb31e263 Merge remote-tracking branch 'qatar/master'
* qatar/master: (25 commits)
  Replace custom DEBUG preprocessor trickery by the standard one.
  vorbis: Remove non-compiling debug statement.
  vorbis: Remove pointless DEBUG #ifdef around debug output macros.
  cook: Remove non-compiling debug output.
  Remove pointless #ifdefs around function declarations in a header.
  Replace #ifdef + av_log() combinations by av_dlog().
  Replace custom debug output functions by av_dlog().
  cook: Remove unused debug functions.
  Remove stray extra arguments from av_dlog() invocations.
  targa: fix big-endian build
  v4l2: remove one forgotten use of AVFormatParameters.pix_fmt.
  vfwcap: add a framerate private option.
  v4l2: add a framerate private option.
  libdc1394: add a framerate private option.
  fbdev: add a framerate private option.
  bktr: add a framerate private option.
  oma: check avio_read() return value
  nutdec: remove unused variable
  Remove unused variables
  swscale: allocate larger buffer to handle altivec overreads.
  ...

Conflicts:
	ffmpeg.c
	libavcodec/dca.c
	libavcodec/dirac.c
	libavcodec/error_resilience.c
	libavcodec/h264.c
	libavcodec/mpeg12.c
	libavcodec/mpeg4videodec.c
	libavcodec/mpegvideo.c
	libavcodec/mpegvideo_enc.c
	libavcodec/pthread.c
	libavcodec/rv10.c
	libavcodec/s302m.c
	libavcodec/shorten.c
	libavcodec/truemotion2.c
	libavcodec/utils.c
	libavdevice/dv1394.c
	libavdevice/fbdev.c
	libavdevice/libdc1394.c
	libavdevice/v4l2.c
	libavformat/4xm.c
	libavformat/apetag.c
	libavformat/asfdec.c
	libavformat/avidec.c
	libavformat/mmf.c
	libavformat/mpeg.c
	libavformat/mpegenc.c
	libavformat/mpegts.c
	libavformat/oggdec.c
	libavformat/oggparseogm.c
	libavformat/rl2.c
	libavformat/rmdec.c
	libavformat/rpl.c
	libavformat/rtpdec_latm.c
	libavformat/sauce.c
	libavformat/sol.c
	libswscale/utils.c
	tests/ref/vsynth1/error
	tests/ref/vsynth2/error

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2011-06-03 05:19:30 +02:00
Michael Niedermayer
9034001b17 h264 fill_filter_caches: Dont init chroma nnz_cache.
Found-by: Dark Shikari
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-06-03 03:46:13 +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
Michael Niedermayer
26ed595bd0 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  configure: Add -U__STRICT_ANSI__ to CPPFLAGS on Cygwin and DOS.
  aacdec: fix typo in scalefactor clipping check
  fate: fix fate-h264-conformance-frext-pph10i4-panasonic-a crcs.
  fate: update 9/10bit refs.
  h264: Properly set coded_{width, height} when parsing H.264.
  x86 asm: Add SECTION_TEXT to dct32_sse.asm.
  Fix 9/10 bit in swscale.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2011-05-24 04:35:08 +02:00
Felipe Contreras
b47904d158 h264: Properly set coded_{width, height} when parsing H.264.
Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2011-05-23 13:15:55 +02:00
Michael Niedermayer
0424e052f8 Merge remote-tracking branch 'ffmpeg-mt/master'
* ffmpeg-mt/master:
      Update todo.
      h264: add an assert that copied pictures are valid picture pointers
      valgrind-check: run with 1 and 3 threads
      h264: When decoding a packet with multiple PPS/SPS, don't start the next thread until all of them have been read
      Allow some pictures to be released earlier after 51ead6d2c40c5defdd211f435aec49b19f5f6a18
      h264: fix slice threading MC reading uninitialized frame edges.

    Please see ffmpeg-mt for a list of authors of these changes.

    Conflicts:
        libavcodec/h264.c
        mt-work/valgrind-check.sh

    Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-05-21 03:11:50 +02:00
Michael Niedermayer
80d156d7fd Merge remote-tracking branch 'qatar/master'
* qatar/master:
  qdm2: Use floating point synthesis filter.
  h264: correct border check.
  h264: fix loopfilter with threading at slice boundaries.
  Fix ff_mpa_synth_filter_fixed() prototype
  Rename costablegen.c ---> cos_tablegen.c.
  Collapse tableprint.c into tableprint.h.
  Simplify trig table rules
  Remove potentially unstable filenames from comments in generated files.
  Ignore generated tables and generated table generator programs.
  Simplify CLEANFILES make variable by using wildcards.
  Remove silly insults from avformat_version() Doxygen documentation.
  mpegaudiodsp: fix x86 and ppc makefiles
  configure: Adjust AVX assembler check.
  mpegaudio: remove unused version of SAME_HEADER_MASK
  mpegaudio: remove useless #undef at end of file
  asfdec: add missing #include for av_bswap32()
  mpegaudio: merge two #if CONFIG_FLOAT blocks
  mpegaudio: move some struct definitions from mpegaudio.h
  Move some mpegaudio functions to new mpegaudiodsp subsystem

Conflicts:
	libavcodec/h264.c
	libavcodec/x86/Makefile

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2011-05-20 05:48:22 +02:00
Ronald S. Bultje
4e987f8282 h264: correct border check.
When backing up the top-left border, check that the top-left
(rather than left) MB indeed does belong to our slice. If it
doesn't, backing up has no positive effect but may accidentally
interfere with other threads writing in the same space.

Fixes occasional one-off effects when enabling slice-MT.
2011-05-19 20:32:18 -04:00
Ronald S. Bultje
0ffc841505 h264: fix loopfilter with threading at slice boundaries. 2011-05-19 20:32:17 -04:00
Michael Niedermayer
75a37b57a5 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  APIchanges: fill in date and commit for request_sample_fmt
  Add floating-point sample format support to the ac3, eac3, dca, aac, and vorbis decoders.
  Add support for request_sample_format in ffmpeg and ffplay.
  Add APIchanges entry for request_sample_fmt.
  Add request_sample_fmt field to AVCodecContext.
  Add float_interleave() to FmtConvertContext with x86-optimized versions.
  Remove unused make variable SEEK_REFFILE
  fate: remove redundant aref and vref references
  fate: remove do_ffmpeg_nocheck function
  fate: do not collect -benchmark output
  mpegaudiodec: remove decode_end() function
  fate: run aref and vref as regular tests
  mpegaudio: sanitise compute_antialias_* names
  mpeg12: add slice-threading checks to slice-threading initializers.
  h264: copy pixel_shift between slice threading contexts.
  mdec: enable frame-level multithreading.
  mdec.c: fix overread.

Conflicts:
	libavcodec/aacdec.c
	libavcodec/ac3dec.c
	libavcodec/avcodec.h
	libavcodec/dca.c
	libavcodec/h264.c
	libavcodec/mdec.c
	libavcodec/mpeg12.c
	libavcodec/options.c
	libavcodec/version.h
	libavcodec/vorbisdec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2011-05-19 06:00:31 +02:00
Ronald S. Bultje
8d44cd2cd8 h264: copy pixel_shift between slice threading contexts.
Fixes "make THREADS=2 THREAD_TYPE=2
fate-h264-conformance-frext-pph10i3_panasonic_a".
2011-05-18 06:54:15 -04:00
Michael Niedermayer
59eb12faff Merge remote branch 'qatar/master'
* qatar/master: (30 commits)
  AVOptions: make default_val a union, as proposed in AVOption2.
  arm/h264pred: add missing argument type.
  h264dsp_mmx: place bracket outside #if/#endif block.
  lavf/utils: fix ff_interleave_compare_dts corner case.
  fate: add 10-bit H264 tests.
  h264: do not print "too many references" warning for intra-only.
  Enable decoding of high bit depth h264.
  Adds 8-, 9- and 10-bit versions of some of the functions used by the h264 decoder.
  Add support for higher QP values in h264.
  Add the notion of pixel size in h264 related functions.
  Make the h264 loop filter bit depth aware.
  Template dsputil_template.c with respect to pixel size, etc.
  Template h264idct_template.c with respect to pixel size, etc.
  Preparatory patch for high bit depth h264 decoding support.
  Move some functions in dsputil.c into a new file dsputil_template.c.
  Move the functions in h264idct into a new file h264idct_template.c.
  Move the functions in h264pred.c into a new file h264pred_template.c.
  Preparatory patch for high bit depth h264 decoding support.
  Add pixel formats for 9- and 10-bit yuv420p.
  Choose h264 chroma dc dequant function dynamically.
  ...

Conflicts:
	doc/APIchanges
	ffmpeg.c
	ffplay.c
	libavcodec/alpha/dsputil_alpha.c
	libavcodec/arm/dsputil_init_arm.c
	libavcodec/arm/dsputil_init_armv6.c
	libavcodec/arm/dsputil_init_neon.c
	libavcodec/arm/dsputil_iwmmxt.c
	libavcodec/arm/h264pred_init_arm.c
	libavcodec/bfin/dsputil_bfin.c
	libavcodec/dsputil.c
	libavcodec/h264.c
	libavcodec/h264.h
	libavcodec/h264_cabac.c
	libavcodec/h264_cavlc.c
	libavcodec/h264_loopfilter.c
	libavcodec/h264_ps.c
	libavcodec/h264_refs.c
	libavcodec/h264dsp.c
	libavcodec/h264idct.c
	libavcodec/h264pred.c
	libavcodec/mlib/dsputil_mlib.c
	libavcodec/options.c
	libavcodec/ppc/dsputil_altivec.c
	libavcodec/ppc/dsputil_ppc.c
	libavcodec/ppc/h264_altivec.c
	libavcodec/ps2/dsputil_mmi.c
	libavcodec/sh4/dsputil_align.c
	libavcodec/sh4/dsputil_sh4.c
	libavcodec/sparc/dsputil_vis.c
	libavcodec/utils.c
	libavcodec/version.h
	libavcodec/x86/dsputil_mmx.c
	libavformat/options.c
	libavformat/utils.c
	libavutil/pixfmt.h
	libswscale/swscale.c
	libswscale/swscale_internal.h
	libswscale/swscale_template.c
	tests/ref/seek/lavf_avi

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2011-05-11 05:47:02 +02:00
Oskar Arvidsson
d545cf804c Enable decoding of high bit depth h264.
This patch completes the high bit depth h264 decoding support.

Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2011-05-10 07:24:38 -04:00
Oskar Arvidsson
19a0729b4c Adds 8-, 9- and 10-bit versions of some of the functions used by the h264 decoder.
This patch lets e.g. dsputil_init chose dsp functions with respect to
the bit depth to decode. The naming scheme of bit depth dependent
functions is <base name>_<bit depth>[_<prefix>] (i.e. the old
clear_blocks_c is now named clear_blocks_8_c).

Note: Some of the functions for high bit depth is not dependent on the
bit depth, but only on the pixel size. This leaves some room for
optimizing binary size.

Preparatory patch for high bit depth h264 decoding support.

Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2011-05-10 07:24:36 -04:00
Oskar Arvidsson
fcc0224e4f Add support for higher QP values in h264.
In high bit depth, the QP values may now be up to (51 + 6*(bit_depth-8)).

Preparatory patch for high bit depth h264 decoding support.

Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2011-05-10 07:24:35 -04:00
Oskar Arvidsson
6e3ef511d7 Add the notion of pixel size in h264 related functions.
In high bit depth the pixels will not be stored in uint8_t like in the
normal case, but in uint16_t. The pixel size is thus 1 in normal bit
depth and 2 in high bit depth.

Preparatory patch for high bit depth h264 decoding support.

Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2011-05-10 07:24:33 -04:00
Oskar Arvidsson
e39e3abad4 Choose h264 chroma dc dequant function dynamically.
Needed for high bit depth h264 decoding.

Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2011-05-10 07:24:17 -04:00
Stefano Sabatini
ce5e49b0c2 replace deprecated FF_*_TYPE symbols with AV_PICTURE_TYPE_* 2011-05-02 16:41:41 +02:00
Stefano Sabatini
301183d9be replace deprecated av_get_pict_type_char() with av_get_picture_type_char() 2011-05-02 16:41:35 +02: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
Stefano Sabatini
6209669de4 Replace deprecated av_get_pict_type_char() with av_get_picture_type_char().
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2011-05-02 11:24:45 +02:00
Michael Niedermayer
0e5758d101 H264: print nal_ref_idc too for debug
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-05-01 02:38:29 +02:00
Mike Scheutzow
e12926393b Fix decoding of mpegts streams with h264 video that does *NOT* have b frames
One of the causes of this bug is that the h264 parser defaults low_delay
to 1, but the h264 codec defaults low_delay to 0. Really Ugly.

After many hours of looking at this, I'm still not sure how has_b_frames
is *intended* to behave, but to me the implementation appears way more
complicated than it ought to be.

My patch relies on the encoder to set an optional field in the SPS. This
works for libx264 streams, but I'm not sure that all h264 encoders will
set it.
2011-05-01 01:47:35 +02:00
Michael Niedermayer
be315a3232 Merge remote branch 'qatar/master'
* qatar/master:
Duplicate  AMV: disable DR1 and don't override EMU_EDGE
Duplicate  lavf: inspect more frames for fps when container time base is coarse
Wrong and we have correct fix: Fix races in default av_log handler
  vorbis: Replace sized int_fast integer types with plain int/unsigned.
  Remove disabled non-optimized code variants.
NO  bswap.h: Remove disabled code.
  Remove some disabled printf debug cruft.
  Replace more disabled printf() calls by av_dlog().
NO  tests: Remove disabled code.
NO  Replace some commented-out debug printf() / av_log() messages with av_dlog().
  vorbisdec: Replace some sizeof(type) by sizeof(*variable).
NO  vf_fieldorder: Replace FFmpeg by Libav in license boilerplate.

Conflicts:
	libavcodec/h264.c
	libavcodec/vorbisdec.c
	libavutil/log.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2011-04-30 01:58:26 +02:00
Diego Biurrun
2e15305b70 Remove some disabled printf debug cruft. 2011-04-29 20:00:53 +02:00
Michael Niedermayer
d7e5aebae7 Merge remote branch 'qatar/master'
* qatar/master: (23 commits)
  ac3enc: correct the flipped sign in the ac3_fixed encoder
  Eliminate pointless '#if 1' statements without matching '#else'.
  Add AVX FFT implementation.
  Increase alignment of av_malloc() as needed by AVX ASM.
  Update x86inc.asm from x264 to allow AVX emulation using SSE and MMX.
  mjpeg: Detect overreads in mjpeg_decode_scan() and error out.
  documentation: extend documentation for ffmpeg -aspect option
  APIChanges: update commit hashes for recent additions.
  lavc: deprecate FF_*_TYPE macros in favor of AV_PICTURE_TYPE_* enums
  aac: add headers needed for log2f()
  lavc: remove FF_API_MB_Q cruft
  lavc: remove FF_API_RATE_EMU cruft
  lavc: remove FF_API_HURRY_UP cruft
  pad: make the filter parametric
  vsrc_movie: add key_frame and pict_type.
  vsrc_movie: fix leak in request_frame()
  lavfi: add key_frame and pict_type to AVFilterBufferRefVideo.
  vsrc_buffer: add sample_aspect_ratio fields to arguments.
  lavfi: add fieldorder filter
  scale: make the filter parametric
  ...

Conflicts:
	Changelog
	doc/filters.texi
	ffmpeg.c
	libavcodec/ac3dec.h
	libavcodec/dsputil.c
	libavfilter/avfilter.h
	libavfilter/vf_scale.c
	libavfilter/vf_yadif.c
	libavfilter/vsrc_buffer.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2011-04-27 03:51:04 +02:00
Anton Khirnov
e7021c0ed5 lavc: remove FF_API_HURRY_UP cruft 2011-04-26 08:16:05 +02:00
Michael Niedermayer
8772156be0 Merge remote branch 'qatar/master'
* qatar/master:
  APIChanges: document git revision for CODEC_CAP_SLICE_THREADS addition.
  Introduce slice threads flag.
  FATE: allow forcing thread-type when doing threaded fate runs.
  Use av_log_ask_for_sample() where appropriate.
  error: sort, pack, and align error code and string definitions
  The stabilization period after version bumps should be one month, not one week.
  applehttp: Expose the stream bitrate via metadata
  doc: Add some initial docs on the applehttp demuxer
  Provide a fallback version of the libm function trunc
  libavdevice: Define _XOPEN_SOURCE for usleep
  lavc: provide deprecated avcodec_thread_init until next major version
  lavc: provide the opt.h header until the next bump
  error: change AVERROR_EOF value
  error: remove AVERROR_NUMEXPECTED
  error: add error code AVERROR_OPTION_NOT_FOUND, and use it in opt.c

Conflicts:
	libavcodec/h264.c
	libavutil/error.c
	libavutil/error.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2011-04-22 03:54:30 +02:00
Ronald S. Bultje
94f7451a3a Introduce slice threads flag.
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2011-04-21 19:42:19 -04:00
Alexander Strange
7e2eb4bacd Merge remote-tracking branch 'ffmpeg-mt/master'
* ffmpeg-mt/master:
      Release unused pictures even when not calling ff_h264_frame_start()
      h264: Fix decoding race condition with PAFF
      h264: cosmetic whitespace change
    Duplicate  Fix REBASE_PICTURE with h.264
    Not pulled  Update test scripts to use ffmpeg instead of ffmpeg_g
    Duplicate  Fix ffmpeg-mt fixme in h264

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-04-18 00:47:35 +02:00
Michael Niedermayer
df2d5b16ef H264: Allow templating hl_decode_mb based on pixel_size.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-04-10 22:33:42 +02:00
Michael Niedermayer
a50f0bea25 H264: Split out hl_motion and template it, this seems a bit faster
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-04-10 22:33:42 +02:00
Michael Niedermayer
e7077f5e7b H264: replace pixel_size by pixel_shift
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-04-10 22:33:42 +02:00
Oskar Arvidsson
5e85298cb5 Enable decoding of high bit depth h264.
This patch completes the high bit depth h264 decoding support.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-04-10 22:33:42 +02:00
Oskar Arvidsson
8dbe585641 Adds 8-, 9- and 10-bit versions of some of the functions used by the h264 decoder.
This patch lets e.g. dsputil_init chose dsp functions with respect to
the bit depth to decode. The naming scheme of bit depth dependent
functions is <base name>_<bit depth>[_<prefix>] (i.e. the old
clear_blocks_c is now named clear_blocks_8_c).

Note: Some of the functions for high bit depth is not dependent on the
bit depth, but only on the pixel size. This leaves some room for
optimizing binary size.

Preparatory patch for high bit depth h264 decoding support.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-04-10 22:33:42 +02:00
Oskar Arvidsson
d268bed209 Add support for higher QP values in h264.
In high bit depth, the QP values may now be up to (51 + 6*(bit_depth-8)).

Preparatory patch for high bit depth h264 decoding support.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-04-10 22:33:42 +02:00
Michael Niedermayer
436c4523ed H264: fix prefetch
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-04-10 22:33:41 +02:00
Oskar Arvidsson
dc172ecc6e Add the notion of pixel size in h264 related functions.
In high bit depth the pixels will not be stored in uint8_t like in the
normal case, but in uint16_t. The pixel size is thus 1 in normal bit
depth and 2 in high bit depth.

Preparatory patch for high bit depth h264 decoding support.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-04-10 22:33:41 +02:00
Oskar Arvidsson
af0b2d6736 Choose h264 chroma dc dequant function dynamically.
Needed for high bit depth h264 decoding.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-04-10 22:33:41 +02:00
Michael Niedermayer
488efb33a7 H264: Fix slice threads
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-04-10 22:28:34 +02:00
Michael Niedermayer
ffb61814a0 Fix deblocking with thread_slices
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-04-08 00:20:18 +02:00
Michael Niedermayer
ee6db0de37 Fix ffmpeg-mt fixme in h264.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-04-06 01:09:04 +02:00
Michael Niedermayer
6e77feb201 Dont be so picky on decoding pps in extradata.
Fixes issue2517

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-04-03 16:40:11 +02:00
Michael Niedermayer
f35439699f Merge remote branch 'qatar/master'
* qatar/master:
  Fixed-point MDCT with 32-bit unscaled output
  lavc: deprecate rate_emu
  lavc: mark hurry_up for removal on next major bump
  parser: mark av_parser_parse() for removal on next major bump
  lavc: add missing audioconvert includes
  jvdec: don't use deprecated CODEC_TYPE_*/PKT_FLAG_KEY

Conflicts:
	libavcodec/h264.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2011-04-03 02:28:01 +02:00
Michael Niedermayer
4ce776d636 H264: fix slice end error detection
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-04-02 17:59:10 +02:00
Michael Niedermayer
0d5e6843b4 h264: change a few comments into error messages
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-04-02 17:57:53 +02:00
Anton Khirnov
8ed2ae09a2 lavc: mark hurry_up for removal on next major bump
It has been deprecated for about five years, skip_idct/skip_frame should
be used instead.
2011-04-02 16:17:24 +02:00
Peter Ross
007b1f04d7 h264: permit h264 decoder to be compiled when svq3 decoder is disabled
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-03-30 16:33:25 +02:00
Michael Niedermayer
d375c10400 Fake-Merge remote-tracking branch 'ffmpeg-mt/master' 2011-03-22 22:36:57 +01: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
Reinhard Tartler
7ffe76e540 Merge libavcore into libavutil
Done to keep ABI compatible. Otherwise this is just silly
2011-02-16 23:00:30 +01:00
Reinhard Tartler
737eb5976f Merge libavcore into libavutil
It is pretty hopeless that other considerable projects will adopt
libavutil alone in other projects. Projects that need small footprint
are better off with more specialized libraries such as gnulib or rather
just copy the necessary parts that they need. With this in mind, nobody
is helped by having libavutil and libavcore split. In order to ease
maintenance inside and around FFmpeg and to reduce confusion where to
put common code, avcore's functionality is merged (back) to avutil.

Signed-off-by: Reinhard Tartler <siretart@tauware.de>
2011-02-15 16:18:21 +01:00
Janne Grunau
154f7bb062 h264: define FF_PROFILE_H264_HIGH_444 to the correct value
It was removed in fe9a3fb since it had the wrong value. Add profile name
for it.
(cherry picked from commit 440b61691d)
2011-02-09 03:33:54 +01:00
Janne Grunau
440b61691d h264: define FF_PROFILE_H264_HIGH_444 to the correct value
It was removed in fe9a3fb since it had the wrong value. Add profile name
for it.
2011-02-08 13:20:56 +01:00
Anssi Hannula
45eaec3029 h264: add profile names for the existing defines
Signed-off-by: Janne Grunau <janne-ffmpeg@jannau.net>
(cherry picked from commit 71e0bee9ea)
2011-02-02 03:40:50 +01:00
Janne Grunau
94e3e83f13 h264: Add Intra and Constrained Baseline profiles to avctx.profile
(cherry picked from commit fe9a3fbe42)
2011-02-02 03:40:50 +01:00
Anssi Hannula
71e0bee9ea h264: add profile names for the existing defines
Signed-off-by: Janne Grunau <janne-ffmpeg@jannau.net>
2011-02-01 20:37:02 +01:00
Janne Grunau
fe9a3fbe42 h264: Add Intra and Constrained Baseline profiles to avctx.profile 2011-02-01 20:37:02 +01:00
Ronald S. Bultje
d23e3e5fea Move ff_emulated_edge_mc() into DSPContext.
(cherry picked from commit 2e27959879)
2011-01-30 03:41:01 +01:00
Ronald S. Bultje
2e27959879 Move ff_emulated_edge_mc() into DSPContext. 2011-01-28 22:13:26 -05:00
Diego Elio Pettenò
e7e2df27f8 Add ff_ prefix to data symbols of encoders, decoders, hwaccel, parsers, bsf.
None of these symbols should be accessed directly, so declare them as
hidden.

Signed-off-by: Mans Rullgard <mans@mansr.com>
(cherry picked from commit d36beb3f69)
2011-01-28 03:15:34 +01:00
Diego Elio Pettenò
d36beb3f69 Add ff_ prefix to data symbols of encoders, decoders, hwaccel, parsers, bsf.
None of these symbols should be accessed directly, so declare them as
hidden.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-01-26 16:08:45 +00:00
Diego Elio Pettenò
877937b382 Make ff_h264_find_frame_end static to h264.c; delete h264_parser.h
The header is empty after making the function static, so delete it and
drop its usage.

Signed-off-by: Janne Grunau <janne-ffmpeg@jannau.net>
(cherry picked from commit 13eb6b9097)
2011-01-26 03:43:32 +01:00
Diego Elio Pettenò
123241214c Make ff_h264_decode_rbsp_trailing static to h264.c
Signed-off-by: Janne Grunau <janne-ffmpeg@jannau.net>
(cherry picked from commit 8529731961)
2011-01-26 03:43:31 +01:00
Diego Elio Pettenò
13eb6b9097 Make ff_h264_find_frame_end static to h264.c; delete h264_parser.h
The header is empty after making the function static, so delete it and
drop its usage.

Signed-off-by: Janne Grunau <janne-ffmpeg@jannau.net>
2011-01-25 22:07:29 +01:00
Diego Elio Pettenò
8529731961 Make ff_h264_decode_rbsp_trailing static to h264.c
Signed-off-by: Janne Grunau <janne-ffmpeg@jannau.net>
2011-01-25 21:48:03 +01:00
Ronald S. Bultje
fb397b1a19 Reindent.
Signed-off-by: Janne Grunau <janne-ffmpeg@jannau.net>
(cherry picked from commit fcb7e535dd)
2011-01-23 19:32:08 +01:00
Ronald S. Bultje
2ed0f76655 Fix crash on resolution change (issue 2393).
Don't free RBSP tables (containing decoded NAL units) on resolution
change, because we actually need this data to decode the frame after
reiniting (with new resolution). Fixed issue 2393.

Signed-off-by: Janne Grunau <janne-ffmpeg@jannau.net>
(cherry picked from commit 9107892624)
2011-01-23 19:32:08 +01:00
Alex Converse
d5ec00ba57 Remove H.264 encoder fragments
It's incomplete, no one is working on it, and when someone asks about
working on it we advise them not to.

Signed-off-by: Mans Rullgard <mans@mansr.com>
(cherry picked from commit ff3d43104f)
2011-01-23 19:32:08 +01:00
Ronald S. Bultje
fcb7e535dd Reindent.
Signed-off-by: Janne Grunau <janne-ffmpeg@jannau.net>
2011-01-22 18:22:03 +01:00
Ronald S. Bultje
9107892624 Fix crash on resolution change (issue 2393).
Don't free RBSP tables (containing decoded NAL units) on resolution
change, because we actually need this data to decode the frame after
reiniting (with new resolution). Fixed issue 2393.

Signed-off-by: Janne Grunau <janne-ffmpeg@jannau.net>
2011-01-22 18:21:59 +01:00
Alex Converse
ff3d43104f Remove H.264 encoder fragments
It's incomplete, no one is working on it, and when someone asks about
working on it we advise them not to.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-01-22 16:15:53 +00:00
Ronald S. Bultje
772225c041 Revert 2a1f431d38, it broke H264 lossless.
(cherry picked from commit 66c6b5e2a5)
2011-01-21 20:36:01 +01:00
Ronald S. Bultje
66c6b5e2a5 Revert 2a1f431d38, it broke H264 lossless. 2011-01-20 17:24:44 -05:00
Jason Garrett-Glaser
2a1f431d38 H.264/SVQ3: make chroma DC work the same way as luma DC
No speed improvement, but necessary for some future stuff.
Also opens up the possibility of asm chroma dc idct/dequant.

Originally committed as revision 26349 to svn://svn.ffmpeg.org/ffmpeg/trunk
2011-01-15 01:10:46 +00:00
Jason Garrett-Glaser
290fabc684 Port SVQ3 to use the new mb_luma_dc method of storing luma DC coefficients.
Doesn't help speed as there isn't an asm implementation yet, but consistency
is a good thing.

Originally committed as revision 26348 to svn://svn.ffmpeg.org/ffmpeg/trunk
2011-01-15 00:41:18 +00:00
Jason Garrett-Glaser
65344775b8 H.264: Remove useless arg to chroma_dc_dequant_idct_c
Originally committed as revision 26345 to svn://svn.ffmpeg.org/ffmpeg/trunk
2011-01-14 23:46:55 +00:00
Jason Garrett-Glaser
2e18660115 Fix SVQ3
Regression in r26336-7.

Originally committed as revision 26341 to svn://svn.ffmpeg.org/ffmpeg/trunk
2011-01-14 22:23:42 +00:00
Jason Garrett-Glaser
0d1d01cf70 Reindent after r26337.
Originally committed as revision 26338 to svn://svn.ffmpeg.org/ffmpeg/trunk
2011-01-14 21:36:45 +00:00
Jason Garrett-Glaser
5657d14094 H.264: switch to x264-style tracking of luma/chroma DC NNZ
Useful so that we don't have to run the hierarchical DC iDCT if there aren't
any coefficients.  Opens up some future opportunities for optimization as well.

Originally committed as revision 26337 to svn://svn.ffmpeg.org/ffmpeg/trunk
2011-01-14 21:36:16 +00:00
Jason Garrett-Glaser
19fb234e4a H.264: split luma dc idct out and implement MMX/SSE2 versions
About 2.5x the speed.

NOTE: the way that the asm code handles large qmuls is a bit suboptimal.
If x264-style dequant was used (separate shift and qmul values), it might
be possible to get some extra speed.

Originally committed as revision 26336 to svn://svn.ffmpeg.org/ffmpeg/trunk
2011-01-14 21:34:25 +00:00
Jason Garrett-Glaser
ca32f7f208 H.264: eliminate non-transposed scantable support.
It was an ugly hack to begin with and didn't give any performance.

NOTE: this patch opens up some future simplifications to be made (such as
removing some of the scantables from H264Context) but doesn't take advantage
of them yet.

Originally committed as revision 26329 to svn://svn.ffmpeg.org/ffmpeg/trunk
2011-01-14 19:04:59 +00:00
Jason Garrett-Glaser
09fffe9bd4 H.264: fix grayscale decoding with explicit wpred
Originally committed as revision 26306 to svn://svn.ffmpeg.org/ffmpeg/trunk
2011-01-10 23:42:45 +00:00
Alexander Strange
0f01602362 SVQ3: Allow decoding if thread_count is > 1
svq3 still doesn't support multithreading, but it's simpler for clients if
they can enable threading for all codecs by default.

Originally committed as revision 26015 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-12-15 00:22:47 +00:00
Baptiste Coudurier
9d252137e5 In h264 decoder, fix decoding when nal end sequence is present
Originally committed as revision 25809 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-11-23 01:16:37 +00:00
Reimar Döffinger
00d1e96bf4 H.264 decode: support cropping up to 28 pixels in interlaced mode.
Contrary to progressive, just being able to crop up to 14/15 pixels
is not enough to encode all supported resolutions, and the new
behaviour is also consistent with e.g. MPEG-2 etc.

Originally committed as revision 25669 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-11-03 20:52:28 +00:00
Carl Eugen Hoyos
5dd7f994c6 Do not assume PIX_FMT_YUV420P will remain the only supported output format for H264.
Originally committed as revision 25352 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-10-05 17:24:18 +00:00
Michael Niedermayer
cfa5a81ea6 Move aspect ratio 0/0 avoidance code so the values in the sps struct are not missed.
This preempts issues with av_cmp_q(0/0, X)

Originally committed as revision 25337 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-10-05 01:43:25 +00:00
Jason Garrett-Glaser
4dece8c7f8 Try to fix crashes introduced by r25218
r25218 made assumptions about the existence of past reference frames that
weren't necessarily true.

Originally committed as revision 25243 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-09-28 09:06:22 +00:00
Jason Garrett-Glaser
e2983d6eac Improve error concealment of lost frames
If a frame is lost, replace it with data from the previous valid frame.

Originally committed as revision 25218 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-09-27 04:43:41 +00:00
Ronald S. Bultje
1d16a1cf99 Rename h264_idct_sse2.asm to h264_idct.asm; move inline IDCT asm from
h264dsp_mmx.c to h264_idct.asm (as yasm code). Because the loops are now
coded in asm instead of C, this is (depending on the function) up to 50%
faster for cases where gcc didn't do a great job at looping.

Since h264_idct_add8() is now faster than the manual loop setup in h264.c,
in-asm idct calling can now be enabled for chroma as well (see r16207). For
MMX, this is 5% faster. For SSE2 (which isn't done for chroma if h264.c does
the looping), this makes it up to 50% faster. Speed gain overall is ~0.5-1.0%.

Originally committed as revision 25119 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-09-14 13:36:26 +00:00
Michael Niedermayer
3d5421201b Perform sliding window operation during frame gap handling.
This avoids some warnings about too many reference frames.

Originally committed as revision 24057 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-05 14:36:03 +00:00
Baptiste Coudurier
bb943bb8fc Give context to av_log
Originally committed as revision 24018 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-03 04:40:12 +00:00
Diego Biurrun
6da88bd389 Fix typo in Doxygen function parameter name.
Originally committed as revision 23983 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-02 11:54:34 +00:00
Måns Rullgård
49bd8e4b84 Fix grammar errors in documentation
Originally committed as revision 23904 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-06-30 15:38:06 +00:00
Baptiste Coudurier
9ad7dfc110 Pass codec pixel format list to get_format, if present, fix vdpau decoding
Originally committed as revision 23396 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-05-31 22:01:31 +00:00
Baptiste Coudurier
0435fb16d7 In h264 decoder, use jpeg yuv pixel format when full range is set in vui
Originally committed as revision 23369 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-05-28 23:15:30 +00:00
Howard Chu
05e953193d Factorize ff_h264_decode_extradata().
Patch by Howard Chu, hyc highlandsun com

Originally committed as revision 23340 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-05-26 19:00:59 +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
Gwenole Beauchesne
6752a3cc6c H.264: cosmetics (vertical align).
Originally committed as revision 22885 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-04-15 13:16:37 +00:00
Gwenole Beauchesne
fa37cf0db3 H.264: move avctx->{profile,level} init before AVCodecContext.get_format().
Originally committed as revision 22884 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-04-15 08:30:48 +00:00
Gwenole Beauchesne
b08e38e8c3 H.264: move avctx->refs init before AVCodecContext.get_format().
Originally committed as revision 22883 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-04-15 08:27:06 +00:00
Diego Biurrun
d02bb3ecf1 Move static function fill_filter_caches() from h264.h to h264.c.
The function is only used within that file, so it makes sense to place
it there. This fixes many warnings of the type:
h264.h:1170: warning: ‘fill_filter_caches’ defined but not used

Originally committed as revision 22876 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-04-13 22:15:49 +00:00
Alexander Strange
7a5c850be9 H264: Copy h264dsp when creating new slice threads
Fixes slice multithreading (broken in r22565)
Fixes issue1815

Originally committed as revision 22740 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-31 03:55:42 +00:00
Stefano Sabatini
72415b2adb Define AVMediaType enum, and use it instead of enum CodecType, which
is deprecated and will be dropped at the next major bump.

Originally committed as revision 22735 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-30 23:30:55 +00:00
Michael Niedermayer
1052b76f0f Fix implicit weight for b frames in mbaff.
Originally committed as revision 22733 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-30 21:05:11 +00:00
Stephen Warren
3bccd93ac0 Set VDPAU H264 picture parameter field_order_cnt and frame_num at the
start of decoding a picture instead of at the end.
Fixes mmco01.264

Patch by Stephen Warren

Originally committed as revision 22728 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-30 08:10:29 +00:00
Diego Biurrun
6f2c72c126 Remove unused variable, fixes the warning:
libavcodec/h264.c:1562: warning: unused variable `s'

Originally committed as revision 22647 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-23 17:55:08 +00:00
Janusz Krzysztofik
5388f0b479 Reinitialize the h264 decoder context on every valid aspect ratio
change, not only size changes.

Patch by Janusz Krzysztofik foo=zyszt <jkr$foo@tis.icnet.pl>.

Originally committed as revision 22597 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-18 23:36:54 +00:00
Måns Rullgård
4693b031a3 Move H264 dsputil functions into their own struct
This moves the H264-specific functions from DSPContext to the new
H264DSPContext.  The code is made conditional on CONFIG_H264DSP
which is set by the codecs requiring it.

The qpel and chroma MC functions are not moved as these are used by
non-h264 code.

Originally committed as revision 22565 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-16 01:17:00 +00:00
Michael Niedermayer
5820b90da0 Fix indention
Originally committed as revision 22484 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-12 15:23:26 +00:00
Michael Niedermayer
2ce1c2e063 Always reset slice_table.
Previously, the area of a lost slice would be left at the slice number of the previous
frame which could occasionally match the number of the next slice and thus a non existing
slice could have been used for prediction leading to additional decoding errors in otherwise
undamaged slices.

Originally committed as revision 22483 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-12 15:21:45 +00:00
Michael Niedermayer
3d9137c883 Reorder indexes in weight tables.
5 cpu cycles faster.

Originally committed as revision 22183 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-03 21:10:08 +00:00
Michael Niedermayer
1a29c6a0bb cosmetic addition of {}
Originally committed as revision 22178 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-03 19:32:50 +00:00
Michael Niedermayer
70118abd68 Merge weight & offset tables, 15 cpu cycles faster.
Originally committed as revision 22169 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-03 14:41:43 +00:00
Michael Niedermayer
72f86ec013 Simplify implicit_weight table init.
Originally committed as revision 22168 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-03 10:57:38 +00:00
Michael Niedermayer
145061a176 Fix a bunch of bugs ive introduced recently that broke threaded decoding.
might also fix issue1788

Originally committed as revision 22141 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-02 02:24:37 +00:00
Aurelien Jacobs
bc99737689 revert r22112 which broke playback of cathedral-beta2-400extra-crop-avc.mp4
Originally committed as revision 22125 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-01 00:22:43 +00:00
Janusz Krzysztofik
7c994c366c Process picture aspect ratio changes in H.264.
This fixes playback of such streams with ffplay (but does not affect
current ffmpeg).

Patch by Janusz Krzysztofik, jkrzyszt A tis D icnet D pl

Originally committed as revision 22112 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-28 18:33:33 +00:00
Michael Niedermayer
747db4e31a Move init of right side of ref_cache from fill_caches() to init_the_darn_decoder().
Originally committed as revision 22071 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-26 03:27:52 +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
Michael Niedermayer
36b54927fd Dont allocate direct_table 8 times too large.
Originally committed as revision 22056 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-25 15:29:12 +00:00
Michael Niedermayer
662a5b2370 Reorder intra4x4_pred_mode so that we can read/write 4 values at once.
3-7 cpu cycles faster

Originally committed as revision 22053 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-25 14:26:12 +00:00
Michael Niedermayer
5b0fb5244d Store intra4x4_pred_mode per row only.
about 5 cpu cycles slower in the local code but should be overall faster
due to reduced cache use. (my sample though has too few intra4x4 blocks
for this to be meassureable easily either way)

Originally committed as revision 22052 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-25 14:02:39 +00:00
Michael Niedermayer
e1c88a2138 Cut the size of mvd_table by yet another factor of 2.
The code read/write code itself was 1 cycle faster, overall its
likely more due to cache effects

Originally committed as revision 22048 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-25 04:11:33 +00:00
Michael Niedermayer
d43c192236 Keep mvd_table values of only 2 mb rows.
Originally committed as revision 22047 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-25 02:42:25 +00:00
Michael Niedermayer
b5bd070029 Change mvd_cache & mvd_table to 8bit, this is overall a bit faster
for high resolution videos.
about 20cycles faster per MB for cathederal.

Originally committed as revision 22038 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-24 20:43:06 +00:00
Michael Niedermayer
db8cb47d15 Try to set has_b_frames in codec init if we know everything alraedy.
This fixes some issues with the first few timestamps.

Originally committed as revision 21976 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-23 01:08:54 +00:00
Michael Niedermayer
9855b2e3c8 Move extradata reading code into codec init instead of doing it
in read frame.

Originally committed as revision 21975 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-23 01:07:39 +00:00
avcoder
0cb17649d8 Remove unused variable mb_xy.
Patch by avcoder, ffmpeg gmail

Originally committed as revision 21945 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-21 19:32:47 +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
024bf79fe0 Simplify deblock_left/top condition for deblocking_filter=2
Originally committed as revision 21876 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-18 12:37:43 +00:00
Michael Niedermayer
69a28f3e2b Move predict_field_decoding_flag() from h264.h to .c as its only used there and belongs
there as well.

Originally committed as revision 21861 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-17 02:25:05 +00:00
Michael Niedermayer
69cc31832f Move check for and call of predict_field_decoding_flag() from the mb code to
the row code. This function would only be needed on a MB basis for MBAFF+FMO

Originally committed as revision 21860 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-17 02:14:02 +00:00
Michael Niedermayer
f4b8b82514 Merge decode_cabac_mb_dqp() with surronding code.
~20 cpu cycles faster

Originally committed as revision 21826 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-14 23:06:25 +00:00
Michael Niedermayer
94cb599443 Drop if(0) code.
Originally committed as revision 21825 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-14 22:59:19 +00:00
Alexander Strange
78998bf217 h264: Remove unused variables.
Originally committed as revision 21815 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-13 21:09:38 +00:00
Michael Niedermayer
02e8c5f0a5 Dont drop B frames without last_picture.
Fixes issue1722

Originally committed as revision 21783 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-12 23:28:33 +00:00
Michael Niedermayer
3566042a0d Try to support truncated h264 frames mixed with mpeg pes headers in mkv.
Fixes issue1585

Originally committed as revision 21772 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-12 19:25:23 +00:00
Michael Niedermayer
055a6aa76a Set x264_build so that checks are simpler.
Originally committed as revision 21681 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-08 00:08:05 +00:00
Michael Niedermayer
3102d180bb Fix large timebases.
Fixed issue1633

Originally committed as revision 21636 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-04 15:30:37 +00:00
Rafaël Carré
dd0cd3d273 Export H264 profile and level in AVCodecContext.
Patch by Rafaël Carré, rafael D carre A gmail

Originally committed as revision 21517 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-28 20:57:29 +00:00
Rafaël Carré
881b5b80da Fix svq3_* function declarations.
Patch by Rafaël Carré, rafael D carre A gmail

Originally committed as revision 21489 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-27 22:22:01 +00:00
Michael Niedermayer
aaa995d7f2 100l typo fix, mixed up +-1 forcing the loop filter skip to never skip.
Originally committed as revision 21455 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-26 13:30:33 +00:00
Alexander Strange
1e4f1c56d7 100l, correct wrong H.264+adaptive MBAFF decoding
Fixes several FATE tests.

Originally committed as revision 21445 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-25 01:56:13 +00:00
Alexander Strange
0b69d6254f H.264: Use 64-/128-bit write-combining macros for copies
2-3% faster decode on x86-32 core2.

Originally committed as revision 21440 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-25 00:30:44 +00:00
Michael Niedermayer
77d40dce93 Remove is_complex from loop_filter() its useless there in its current form.
Originally committed as revision 21423 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-24 17:02:44 +00:00
Laurent Aimar
0dc343d4cb Added a missing const to ff_h264_get_slice_type().
Originally committed as revision 21421 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-24 16:37:12 +00:00
Michael Niedermayer
50eb40a799 Remove all uses of slice_type* from the loop filter, also remove its
initialization befre the loop filter.

Originally committed as revision 21416 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-24 13:20:17 +00:00
Michael Niedermayer
0c32e19d58 Move +52 from the loop filter to the alpha/beta offsets in the context.
This should fix a segfault, also it might be faster on systems where the
+52 wasnt free.

Originally committed as revision 21406 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-23 18:05:30 +00:00
Michael Niedermayer
7231ccf4d5 Cosmetic, get rid of &x[0]
Originally committed as revision 21309 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-18 23:55:19 +00:00
Michael Niedermayer
2b3649f656 Fix compilation with -O0.
Originally committed as revision 21308 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-18 23:41:12 +00:00
Michael Niedermayer
fb823b7791 Fix 10l segfault with threads.
Originally committed as revision 21293 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-18 20:19:19 +00:00
Michael Niedermayer
6d7e6b2657 Perform reference remapping at fill_cache() time instead of in the
loop filter. This removes one obstacle of getting ff_h264_filter_mb_fast()
bitexact. code is maybe 0.1% faster

Originally committed as revision 21280 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-18 05:15:31 +00:00
Michael Niedermayer
44a5e7b64c Move the qp check to skip the loop filter up.
Originally committed as revision 21274 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-18 00:20:44 +00:00
Michael Niedermayer
f432b43b08 Split fill_caches() between filter and decoder.
Originally committed as revision 21271 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-17 21:43:08 +00:00
Michael Niedermayer
c988f97566 Rearchitecturing the stiched up goose part 1
Run loop filter per row instead of per MB, this also should make it
much easier to switch to per frame filtering and also doing so in a
seperate thread in the future if some volunteer wants to try.
Overall decoding speedup of 1.7% (single thread on pentium dual / cathedral sample)
This change also allows some optimizations to be tried that would not have
been possible before.

Originally committed as revision 21270 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-17 20:35:55 +00:00
Michael Niedermayer
4c568cbcac Consider slice_beta_offet in qp_thresh.
Originally committed as revision 21244 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-16 13:12:11 +00:00
Michael Niedermayer
2e36c931f0 Avoid wasting 4 cpu cycles per MB in redundantly calculating qp_thresh.
Originally committed as revision 21243 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-16 11:55:35 +00:00
Michael Niedermayer
0cd73b6c30 remove unused variable
Originally committed as revision 21182 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-13 02:44:38 +00:00
Michael Niedermayer
cc51b28299 Split cabac decoding code out of h264.c.
not slower according to benchmarks.

Originally committed as revision 21181 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-13 02:35:36 +00:00
Michael Niedermayer
e1e949026e Split cavlc out of h264.c.
Seems to speed the code up a little...
The placement of many generic functions between h264.c and h264.h is still open
Currently they are a little randomly placed between them.

Originally committed as revision 21178 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-13 01:59:19 +00:00
Michael Niedermayer
188d3c510d Split motion vector prediction off h264.c/h.
Originally committed as revision 21174 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-12 21:36:26 +00:00
Michael Niedermayer
2bedc0e854 Move check_intra4x4_pred_mode() back from h264.h to h264.c, the function is just
called once per MB in worst case and doesnt seem to benefit from static inline.
Actually the code might be a hair faster now (0.1% according to my benchmark but
this could be random noise)

Originally committed as revision 21173 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-12 21:17:26 +00:00
Michael Niedermayer
ea6f00c448 Split all the reference picture handling off h264.c.
Originally committed as revision 21172 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-12 20:59:00 +00:00
Michael Niedermayer
889fce8e30 Split (picture|seq) parameter set decoding out of h264.c.
no speedloss meassured, also its really not touching anything that is speed relevant.

Originally committed as revision 21169 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-12 19:33:45 +00:00
Michael Niedermayer
9c09546352 Split SEI code off h264.c.
Originally committed as revision 21168 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-12 18:54:40 +00:00
Michael Niedermayer
943f69a6ea Split direct mode (macro)block decoding off h264.c.
No speedloss meassured (its slightly faster here but that may be random fluctuations)

Originally committed as revision 21165 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-12 14:32:58 +00:00
Michael Niedermayer
082cf97106 Split h264 loop filter off h264.c.
No meassureable speed difference on pentium dual & cathedral sample.

Originally committed as revision 21159 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-12 06:01:55 +00:00
Michael Niedermayer
903d58f631 Get rid of #include "svq3.c"
functions called more than per mb are moved into the header, scan8 is also
as it must be known at compiletime.
The code after this patch duplicates h264data.h, this has been done to minimize
the changes in this step and allow more fine grained benchmarking.
Speedwise this is 1% faster on my pentium dual core with diegos cursed cathedral
sample.

Originally committed as revision 21157 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-12 05:30:31 +00:00
David Conrad
c4dffe7e36 Export fullrange flag and color information for h.264
Originally committed as revision 21126 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-11 00:31:39 +00:00
Laurent Aimar
75dd693840 Export get_slice_type() as ff_h264_get_slice_type().
Patch by Laurent Aimar <fenrir at videolan dot org>.

Originally committed as revision 21110 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-09 16:20:41 +00:00
Laurent Aimar
b090930d43 Always initialize bit_depth_luma and bit_depth_chroma in the H264
decoder which allows their usage without checking profile_idc.

Patch by Laurent Aimar (fenrir (AT) videolan org)

Originally committed as revision 21107 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-09 07:57:26 +00:00
Andreas Öman
4ad04da214 Log unknown NAL code from correct context
Originally committed as revision 21090 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-08 15:50:26 +00:00
Michael Niedermayer
52255d1746 End startcode prefix search at the end of a AVC unit.
Fixes issue1550.

Originally committed as revision 20784 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-12-09 12:49:59 +00:00
Michael Niedermayer
e262365d7c Reduce warnings about too few consumed bytes to debug level.
Fixes issue1061.

Originally committed as revision 20772 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-12-08 17:38:02 +00:00
Reimar Döffinger
f3bdc3da15 Call ff_find_hwaccel() after calling avcodec_set_dimensions().
Patch by Reimar

Originally committed as revision 20599 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-11-24 15:13:47 +00:00
Michael Niedermayer
4c66e8849b Use avcodec_set_dimensions()
Originally committed as revision 20591 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-11-23 19:45:40 +00:00
Ronald S. Bultje
6e44ba1550 Use get_bits_left() instead of size_in_bits - get_bits_count().
Originally committed as revision 20543 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-11-16 17:42:43 +00:00
Mike Scheutzow
eda4ea4e2e Reset rbsp buffer size when freeing its data buffer.
Patch by Mike Scheutzow $(name) AT alcatel 'minus' lucent com

Originally committed as revision 20531 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-11-13 18:33:28 +00:00
Michael Niedermayer
67e362ca45 indent
Originally committed as revision 20507 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-11-10 21:00:46 +00:00
Carl Eugen Hoyos
de9bc64df4 Cosmetics: Fix indentation after r20505.
Originally committed as revision 20506 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-11-10 20:55:45 +00:00
Carl Eugen Hoyos
602dd2d359 Add .pix_fmts to H264 VDPAU decoder declaration and remove obsolete test
for codec->capabilities.

Originally committed as revision 20505 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-11-10 20:55:00 +00:00
Michael Niedermayer
44be1d6478 Try to fix has_b_frame calculation for open gop files.
Fixes issue1523

Originally committed as revision 20504 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-11-10 20:24:41 +00:00
Reimar Döffinger
01418506a2 Remove casts that are useless since the argument is void *.
Originally committed as revision 20177 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-10-06 06:33:18 +00:00
Carl Eugen Hoyos
14600807bb Cosmetics: Fix typo.
Originally committed as revision 19980 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-09-23 10:07:29 +00:00
Michael Niedermayer
7bf3d0c44e Check num_units_in_tick/time_scale to be valid and within the range we support.
based on a patch by chrome

Originally committed as revision 19979 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-09-23 09:58:44 +00:00
Ramiro Polla
d31dbec374 Rename CHECKED_ALLOC(Z) to FF_ALLOC(Z)_OR_GOTO and add context and label
parameters.

Originally committed as revision 19776 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-09-06 00:08:19 +00:00
Måns Rullgård
63613fe615 Replace WORDS_BIGENDIAN with HAVE_BIGENDIAN
Originally committed as revision 19508 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-07-26 12:20:04 +00:00
Alexander Strange
e5f61b94a1 H.264: Check the return value of decode_vui_parameters()
Files with invalid VUI are now rejected like
other invalid SPS are.

Fixes issue1231.

Originally committed as revision 19335 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-07-04 07:46:58 +00:00
Alexander Strange
0410ee8f86 H.264: Don't set data_partitioning for invalid NAL_DPA.
Before, the decoder could interpret a corrupt frame
as a NAL_DPA and NAL_DPC, and then start decoding
even if decode_slice_header() returned an error.
This frequently caused crashes.

Fixes issue1228, issue1229, and partially issue1238.

Originally committed as revision 19328 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-07-03 05:52:00 +00:00
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
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
Michael Niedermayer
d9fe1749fc Make sure mmco index is 0 (instead of uninitialized) in all error returns.
Originally committed as revision 14383 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-07-25 11:48:32 +00:00
Michael Niedermayer
9296f5d81a Simplify strange obfuscated code in MMCO_LONG handling.
Note, this might change behavior for invalid bitstreams.

Originally committed as revision 14381 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-07-25 00:13:02 +00:00
Michael Niedermayer
357282c6f3 Set field_poc (it was half uninitialized before) and use it
instead of the fragile first_field check to determine if we have
2 fields at the end.

Originally committed as revision 14380 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-07-24 23:43:44 +00:00
Michael Niedermayer
b78a6baaf1 Minor simplification of code in init_poc().
Originally committed as revision 14379 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-07-24 22:29:38 +00:00
Michael Niedermayer
5710b37160 cosmetics (indent and 2 empty lines)
Originally committed as revision 14378 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-07-24 22:05:58 +00:00
Michael Niedermayer
80f8e035ba init_poc() vs. idr() cleanup
Originally committed as revision 14377 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-07-24 22:04:29 +00:00
Michael Niedermayer
ac5057c2de Fix loop filter with CAVLC 8x8dct.
Fixes at least:
FRExt/HPCV_BRCM_A.264
FRExt/HVLCFI0_Sony_B.264
FRExt/HVLCPFF0_Sony_B.264
H264_artifacts_motion.h264

Originally committed as revision 14373 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-07-24 17:13:37 +00:00
Diego Biurrun
1412060e78 misc spelling/grammar fixes
Originally committed as revision 14367 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-07-24 10:55:36 +00:00
Michael Niedermayer
a149c1a59f Reset prev_frame_num for idr frames as required by the spec.
Originally committed as revision 14354 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-07-24 00:45:18 +00:00
Michael Niedermayer
b4cf222870 Better explanation for buf_size==0 code.
Originally committed as revision 14353 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-07-23 17:24:11 +00:00
Michael Niedermayer
cf67f1655c 100l cross_idr simplification had a typo
Originally committed as revision 14351 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-07-23 14:59:55 +00:00
Michael Niedermayer
f3ba9db42d Remove truncated support, use an AVParser if you used that, it is the same.
Originally committed as revision 14350 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-07-23 14:44:07 +00:00
Michael Niedermayer
617e42e2c4 Simplify cross_idr calculation.
Originally committed as revision 14349 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-07-23 14:37:15 +00:00
Michael Niedermayer
55f22dd473 Remove redundant keyframe checks.
Originally committed as revision 14347 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-07-23 11:24:04 +00:00
Michael Niedermayer
26b86e47c0 Support gaps in the frame num.
Fixes at least:
MR3_TANDBERG_B.264
MR4_TANDBERG_C.264
MR5_TANDBERG_C.264

Originally committed as revision 14339 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-07-23 02:12:54 +00:00
Michael Niedermayer
e44e48372b Reset frame_num for MMCO 5.
Fixes at least
MR2_TANDBERG_E.264

Originally committed as revision 14338 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-07-22 19:30:45 +00:00
Michael Niedermayer
2e916cb392 3rd try to get the loop filter ref/mv check working correctly.
Fixes at least:
src19td.IBP.264
CVWP3_TOSHIBA_E.264
cvmp_mot_picaff0_full_B.26l
CVMP_MOT_FRM_L31_B.26l
cvmp_mot_frm0_full_B.26l
CVMP_MOT_FLD_L30_B.26l
cvmp_mot_fld0_full_B.26l

Originally committed as revision 14337 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-07-22 17:44:36 +00:00
Michael Niedermayer
5a78bfbde7 qscale has a range of 0..51 we thus do not need a 256 entry table and neither need
to and it with 0xFF.

Originally committed as revision 14336 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-07-22 13:01:10 +00:00
Michael Niedermayer
a82688b003 Setting chroma_qp to 0 for PCM blocks is really an interesting minor
optimization, more interresting would it have been had the author
thought about what value chroma_qp would have for the following MB.
Or failing that, had actually tested the code.
So this reverts this non-functional optimization, and makes the code work.
Fixes at least CAPM3_Sony_D.jsv

Originally committed as revision 14335 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-07-22 12:31:48 +00:00
Michael Niedermayer
3a75616940 Deobfusate chroma_qp_table[1] init code.
Originally committed as revision 14334 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-07-22 11:56:56 +00:00
Carl Eugen Hoyos
6aaff88fd9 Revert r13542: Spatial direct mode probably also works with PAFF.
Originally committed as revision 14332 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-07-21 22:46:47 +00:00
Michael Niedermayer
c32867b5b6 Loop filtering with multiple slice types fix.
Fixes at least:
CABAST3_Sony_E.jsv
CABASTBR3_Sony_A.jsv
CABASTBR3_Sony_B.jsv

Originally committed as revision 14331 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-07-21 22:19:06 +00:00
Michael Niedermayer
9f5c1037b1 Use slice_type_nos instead of slice_type where it makes no difference.
This way we use slice_type_nos almost everywhere which means 1 variable less
for gcc to put in a register.

Originally committed as revision 14326 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-07-21 19:11:41 +00:00
Michael Niedermayer
4b30289ec9 SI/SP slice support. (not bitexact)
SI untested as I did not find any samples.

Originally committed as revision 14325 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-07-21 18:44:57 +00:00
Michael Niedermayer
932f396f50 Remove superfluous ().
Originally committed as revision 14324 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-07-21 18:26:11 +00:00
Michael Niedermayer
e3e6f18f16 Simplify slice type checks.
Originally committed as revision 14323 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-07-21 18:24:45 +00:00
Michael Niedermayer
72caa912f2 More correct ref comparison in the loop filter.
Originally committed as revision 14322 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-07-21 18:06:23 +00:00
Michael Niedermayer
29d05ebc7a Simplify spatial direct ref selection with FFMIN3()
Originally committed as revision 14319 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-07-21 01:41:56 +00:00
Michael Niedermayer
41f5c62f5c Fix used references indexes in the loop filter.
Disable filter_mb_fast() as it optimized the incorrect code.
Fixes at least:
BA3_SVA_C.264
CABA3_SVA_B.264
CABACI3_Sony_B.jsv
CAFI1_SVA_C.264
camp_mot_frm0_full.26l
CAWP5_TOSHIBA_E.264
CVFI2_SVA_C.264
CVSE3_Sony_H.jsv
CVWP2_TOSHIBA_E.264
CVWP5_TOSHIBA_E.264
SL1_SVA_B.264

Originally committed as revision 14315 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-07-20 18:06:41 +00:00
Michael Niedermayer
4f20b45fbe Fix h264_loop_filter_strength_mmx2() so it works with PAFF.
fixed at least:
CVFI1_Sony_D.jsv
CVFI1_SVA_C.264
MR6_BT_B.h264

Originally committed as revision 14310 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-07-19 21:53:54 +00:00
Michael Niedermayer
fb19e1443b Take the brain amputated spec literally if the user asks for it (-strict 1).
That is, add 16 frames delay, cache trashing and av desync.
fixes at least the following reference bitstreams:
CABA3_Sony_C.jsv
CACQP3_Sony_D.jsv
CAMANL1_TOSHIBA_B.264
CANL3_Sony_C.jsv
CVBS3_Sony_C.jsv
CVMANL1_TOSHIBA_B.264

Originally committed as revision 14308 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-07-19 16:16:00 +00:00
Michael Niedermayer
2a811db238 Make the automatic has_b_frames increasing code increase it up to the
same maximum that can be achieved by specifying the value in the bitstream.

Originally committed as revision 14302 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-07-19 15:37:52 +00:00
Michael Niedermayer
28bb9eb24b Try to fix my latest 100l fate SVQ3 breakage.
Originally committed as revision 14300 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-07-19 12:21:09 +00:00
Michael Niedermayer
801b27fa7c Remove apparently unneeded out!=NULL check.
Originally committed as revision 14299 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-07-19 11:57:29 +00:00
Michael Niedermayer
3eaa6d0e56 Simplify picture output code.
Originally committed as revision 14298 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-07-19 11:11:48 +00:00
Michael Niedermayer
6b476f05e3 Remove useless #if 0 code.
Originally committed as revision 14297 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-07-19 10:47:25 +00:00
Michael Niedermayer
7c0efeccfa Do not forget marking disposed delayed pics as unused.
Fixes issue335

Originally committed as revision 14296 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-07-19 03:33:42 +00:00
Michael Niedermayer
79f4494a04 indent
Originally committed as revision 14292 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-07-19 03:17:44 +00:00
Michael Niedermayer
0ab515e935 simplify
Originally committed as revision 14291 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-07-19 03:13:11 +00:00
Michael Niedermayer
df8a7dff29 Remove delayed_output_pic, I do not understand what this variable was good for.
It is simpler and might be faster now.

Originally committed as revision 14289 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-07-19 02:53:57 +00:00
Michael Niedermayer
1b547abaa3 Drop out of order pics even if bitstream_restriction_flag is set.
Originally committed as revision 14288 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-07-19 02:44:17 +00:00
Michael Niedermayer
197ea52443 Make frames non reference by default, so they are disposed of automatically
in MPV_frame_start() if we break out due to an error at a random place.
Fixes issue334

Originally committed as revision 14283 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-07-18 20:59:17 +00:00
Michael Niedermayer
1d42f41091 indent
Originally committed as revision 14258 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-07-16 17:51:24 +00:00
Michael Niedermayer
7a9dba3cd6 SVQ3 uses the JPEG variant of YUV 4:2:0.
Fixes issue256

Originally committed as revision 14257 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-07-16 17:48:47 +00:00
Alexander Strange
64b9d48f76 Move the size of the H264Context delayed_pic array into a #define.
This improves readability by getting rid of some magic numbers.

Originally committed as revision 14248 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-07-15 21:30:04 +00:00
Måns Rullgård
e1f15d3836 H264: fix index range assert() in remove_short_at_index()
Originally committed as revision 14233 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-07-14 19:17:13 +00:00
Jason Garrett-Glaser
3a8322b133 H264: Fix decoding with CABAC/delta_qp/PCM macroblocks.
Patch by Jason Garrett-Glaser (darkshikari gmail com)

Originally committed as revision 14160 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-07-11 02:07:57 +00:00
Michael Niedermayer
7445f9cc67 fix IPCM_decode_error.h264
Originally committed as revision 14135 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-07-09 06:03:59 +00:00
Alexander Strange
58cc7dd9fc Cosmetics: split a long line.
Originally committed as revision 14055 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-07-02 22:28:47 +00:00
Alexander Strange
92ed1ec957 Use get_cabac_bypass_sign instead of an if/else.
Originally committed as revision 14054 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-07-02 22:25:17 +00:00
Alexander Strange
142ee5d73d Reorder the if/else for residual cats to match gcc's branch prediction.
Originally committed as revision 14053 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-07-02 22:20:06 +00:00
Alexander Strange
47775cb8de Simplify loop condition for readability.
Originally committed as revision 14052 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-07-02 22:15:05 +00:00
Alexander Strange
9f734c3b57 Reindent.
Originally committed as revision 14051 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-07-02 22:12:01 +00:00
Alexander Strange
9588ec340c Clone decode_cabac_residual() for DC residuals, to get rid of a bunch of branches in the main loop.
Originally committed as revision 14050 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-07-02 22:08:12 +00:00
Alexander Strange
2e254bc583 Don't generate two copies of hl_decode_mb() under ENABLE_SMALL.
(assuming your compiler removes unused static functions)

Originally committed as revision 14049 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-07-02 22:03:53 +00:00
Alexander Strange
fedec603db Don't test for H264 encoding unless an encoder exists.
Originally committed as revision 14048 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-07-02 21:46:18 +00:00
Stefano Sabatini
fe4bf37455 Make AVCodec long_names definition conditional depending on CONFIG_SMALL.
Originally committed as revision 13759 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-06-12 21:50:13 +00:00
Carl Eugen Hoyos
7e14f14584 Warn about unimplemented H264 feature.
Originally committed as revision 13542 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-05-29 23:16:12 +00:00
Pascal Massimino
ae899d12ae in TRUNCATED mode, use residual fragments in ParseContext
for decoding the very last frame.

Originally committed as revision 13538 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-05-29 20:09:45 +00:00
Diego Biurrun
9c852bcf58 cosmetics: spelling typo fixes
Originally committed as revision 13489 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-05-28 09:20:59 +00:00
Diego Biurrun
f4433de9ef consistency cosmetics: indices --> indexes
Originally committed as revision 13444 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-05-26 23:14:25 +00:00
Michael Niedermayer
4806b9226c print direct_spatial_mv_pred
Originally committed as revision 13409 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-05-26 01:06:15 +00:00
Alexander Strange
bff2266a7f Remove newly unused variables.
Originally committed as revision 13127 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-05-11 19:22:28 +00:00
Alexander Strange
d2b54ec801 Use h->mb_xy directly in decode_cabac_residual().
Originally committed as revision 13126 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-05-11 19:18:39 +00:00
Alexander Strange
64514ee8de Store mb_xy in H264Context and only calculate it once per MB.
Originally committed as revision 13125 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-05-11 19:16:21 +00:00
Carl Eugen Hoyos
e0a0c85dbd One const per declaration is enough.
Originally committed as revision 13079 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-05-08 14:01:44 +00:00
Jason Garrett-Glaser
144783887c Use a state machine to reduce branching logic in decode_cabac_residual.
Patch by Jason Garrett-Glaser (darkshikari gmail com)

Originally committed as revision 13060 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-05-04 22:39:12 +00:00
Stefano Sabatini
6140271f54 Add some long names to AVCodec declarations.
patch by Stefano Sabatini, stefano.sabatini-lala poste it

Originally committed as revision 13017 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-04-29 07:24:44 +00:00
Vladimir Voroshilov
159ef4b02a Implement FFMAX3(a,b,c) - maximum over three arguments.
Originally committed as revision 12910 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-04-19 17:07:58 +00:00
Jeff Downs
52cb7981e2 Redo r12838, this time using svn copy to create h264_i386.h from cabac.h.
Move decode_significance_x86() and decode_significance_8x8_x86() to
i386-specific file from cabac.h.
New file is h264-oriented and only included from h264.c
Resolves compilation when configured with --disable-optimizations due to
decode_significance_8x8_x86 using last_coeff_flag_offset_8x8, which is
only defined in h264.c

Originally committed as revision 12846 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-04-16 04:40:21 +00:00
Jeff Downs
3aa9ede400 Revert 12838 to redo it the right way (use svn copy to create new
file based on old).

Originally committed as revision 12845 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-04-16 04:26:52 +00:00
Jeff Downs
e6cfd8fffb Move decode_significance_x86() and decode_significance_8x8_x86() to
i386-specific file from cabac.h.
New file is h264-oriented and only included from h264.c
Resolves compilation when configured with --disable-optimizations due to
decode_significance_8x8_x86 using last_coeff_flag_offset_8x8, which is
only defined in h264.c

Originally committed as revision 12838 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-04-15 13:51:41 +00:00
Michael Niedermayer
faf3dfb94b Avoid crash with idiotic cropping. Fixes crash with CVFC1_Sony_C.jsv
and closes issue333.

Originally committed as revision 12788 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-04-11 12:55:21 +00:00
Diego Biurrun
d952638699 typo: occured --> occurred
Originally committed as revision 12549 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-03-22 01:06:57 +00:00
Zuxy Meng
98a6fff98c Apply 'cold' attribute to init/uninit functions in libavcodec
Originally committed as revision 12525 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-03-21 03:11:20 +00:00
Michael Niedermayer
9d2cc8c1ee If consumed does not match nalsize, favor nalsize.
Fixes issue385.

Originally committed as revision 12430 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-03-13 01:49:19 +00:00
Diego Biurrun
2cab640129 typo fixes
Originally committed as revision 12428 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-03-12 23:58:46 +00:00
Aurelien Jacobs
9701840bb5 add FF_ prefix to all (frame)_TYPE usage
Originally committed as revision 12399 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-03-09 23:31:02 +00:00
Loren Merritt
be0995b166 more aspect ratios added in one of the ammendments
Originally committed as revision 12282 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-03-01 01:58:25 +00:00
Michael Niedermayer
cea9642014 Fix ;;
Originally committed as revision 12153 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-02-19 22:09:08 +00:00
Loren Merritt
ffbc5e04ce "swap first two elements of L1 if L0 and L1 are identical" applies after splitting the lists into fields
Originally committed as revision 11808 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-02-02 10:54:20 +00:00
Loren Merritt
02f7695b0b fix mbaff diagonal neighbor mv
Originally committed as revision 11807 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-02-02 10:53:15 +00:00
Loren Merritt
50b3ab0fa5 mbaff spatial direct
Originally committed as revision 11806 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-02-02 10:51:56 +00:00
Michael Niedermayer
30317501a0 consts
Originally committed as revision 11705 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-02-01 02:35:11 +00:00
Michael Niedermayer
7526ade238 Indention, it seems i have forgotton to commit this.
Originally committed as revision 11702 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-02-01 01:35:31 +00:00
Andreas Öman
1710856cb1 Fix the following warnings:
h264.c:2093: warning: unused variable 's'
h264.c:2406: warning: suggest parentheses around arithmetic in operand of ^
h264.c:2412: warning: suggest parentheses around arithmetic in operand of ^

Originally committed as revision 11680 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-01-31 00:15:24 +00:00
Jeff Downs
79db7ac6ef Fix memory leak in h264 decoder. allocated_edge_emu_buffer was being allocated
in both mpegvideo and h264 decoder. Fixed by allowing all (master and duplicate)
contexts to fully initialize in MPV_frame_start and copying these into
H264Contexts.

Mailing list discussion:
[FFmpeg-devel] Memory leak in h264
Tue, 22 Jan 2008 15:22:55

Originally committed as revision 11657 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-01-28 21:12:38 +00:00
Reimar Döffinger
766324fc49 Add and use DECLARE_ASM_CONST for constants used in assembler code.
Should make it easier to work around compilation problems with e.g. ICC.

Originally committed as revision 11641 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-01-27 20:50:16 +00:00
Michael Niedermayer
cb077b7aa3 Fix crash for CAVLC->CABAC switch caused by writing into NULL tables.
(iam not sure if this might have been exploitable)
fixes issue332 / CVCANLMA2_Sony_C.jsv
Other solutions which waste a few bytes less are welcome ...

Originally committed as revision 11605 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-01-24 19:31:59 +00:00
Diego Biurrun
6bf398a030 Add #undef printf and disable non-functional code to make test program compile.
Originally committed as revision 11604 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-01-23 21:27:07 +00:00
Diego Biurrun
07e4e3ea8b Consistently use TEST as the preprocessor condition to enable test code.
Originally committed as revision 11581 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-01-20 23:53:51 +00:00
Reinhard Nissl
8293fea57e Fix problem with multithreaded decoding, introduced by r11214.
Patch by Reinhard Nissl: rnissl gmx de

Originally committed as revision 11275 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-12-19 23:03:52 +00:00
Diego Biurrun
5d81d64175 cosmetics: comment typo fixes
Originally committed as revision 11232 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-12-16 17:22:09 +00:00
Kostya Shishkov
626464fb53 Make fill_rectangle() available for other decoders
Originally committed as revision 11219 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-12-15 06:06:16 +00:00
Jeff Downs
9a1feb8608 Fix brain-dead parts of r11216, specifically:
Actually unreference removed pics
And check for too many reference frames as originally intended, not equal
to max reference frames.

Originally committed as revision 11218 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-12-14 22:49:30 +00:00
Jeff Downs
aeb59e839f Ensure that our total reference frame count does not exceed the SPS
max frame count, which is limited to less than the size of the
reference buffers, thereby preventing overflow.
Part of fix for issue 281.

Originally committed as revision 11216 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-12-14 06:25:23 +00:00
Jeff Downs
41f7e2d11d Actually return with an error condition if we're being asked to deal with too
many reference frames. Also check max num ref frames against our internal
ref buffer sizes.
Part of fix for roundup issue 281

Originally committed as revision 11215 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-12-14 05:48:27 +00:00
Jeff Downs
33e0073129 Make h264 decoder conform to requirements of mpegvideo's MPV_frame_start.
Namely, that it should not be called if you are starting to decode a B
frame without any reference pictures.
Prevents an endless allocation cycle in MPV_frame_start that will end in
picture buffer overflow and abort.
Fixes roundup issue 216.

Originally committed as revision 11214 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-12-14 05:37:23 +00:00
Jeff Downs
36e097bce4 Fix non_zero_count_cache for deblocking in field pictures.
Based on original patch by Martin Zlomek martin.zlomek a email D cz
ffmpeg-devel thread: H264: Fix non_zero_count_cache for deblocking in fields
Fri, 30 Nov 2007 9:58:23

Originally committed as revision 11212 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-12-13 00:50:47 +00:00
Panagiotis Issaris
b17270878e Verify long_ref_count!=0. Fix issue 281.
Originally committed as revision 11171 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-12-05 18:02:48 +00:00
Jeff Downs
cf653d0811 Initialize function pointers used by error resilience code before any
potential error return from decode_slice_header.

Fixes issue 284.

Originally committed as revision 11168 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-12-05 05:24:54 +00:00
Vitor Sessak
52b541ad79 spelling
Originally committed as revision 11122 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-12-01 22:21:04 +00:00
Diego Biurrun
f8a80fd69d main() --> main(void)
Originally committed as revision 11079 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-11-23 00:52:56 +00:00
Jeff Downs
e240f898ff Call mpegvideo flush routine on h264 flush. Needed in particular
to clear last_picture_ptr, next_picture_ptr for proper picture
management. Prevents crashes in error concealer following seeks.
Fixes Roundup issue 189.

Originally committed as revision 11049 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-11-17 03:04:21 +00:00
Reinhard Nissl
ce5d17f590 Provide top_field_first logic for h264
patch by: Reinhard Nissl rnissl a gmx d de

Originally committed as revision 10989 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-11-10 06:10:46 +00:00
Jeff Downs
ad426590d8 Fix deblocking filter for field pictures by properly looking for first
row in bottom fields and preventing the use of "fast" deblocking for such.

Originally committed as revision 10950 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-11-07 23:35:48 +00:00
Jeff Downs
c0a8500015 Fix poc for field pictures. Prior to this, the poc of the second field
in decoding order would always be assigned to a field pair's poc.

Original thread: H.264: Fix poc for field pairs, 6 Nov 2007 17:41:02

Originally committed as revision 10937 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-11-06 18:48:18 +00:00
Jeff Downs
84a8596d23 Correct assignment of interlaced_frame; was being set on output frames,
in display order, based on decoding information in decoding order. Now
set properly, immediately upon completion of decode.

Based on original patch from Reinhard Nissl,  rnisssl % gmx , de
Original Thread: [FFmpeg-devel] H.264 + PAFF: BBC HD recording shows
extreme interlacing artefacts, Thu, 01 Nov 2007 22:43:09

Originally committed as revision 10931 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-11-05 18:16:42 +00:00
Jeff Downs
2143b11853 Fix chroma mv offsets for PAFF in a way that is compatible with MBAFF by
setting Picture.reference to indicate parity for all Pictures in
reference list.

Patch by Jeff Downs, heydowns T borg O com

Originally committed as revision 10744 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-10-15 22:17:39 +00:00
Martin Zlomek
44a7e65a51 Fix mix-up of values in r10690 (deblocking for PAFF).
Patch by Martin Zlomek, martin d zlomek a email d cz

Originally committed as revision 10738 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-10-15 06:23:02 +00:00
Jeff Downs
0d43dd8c2d Simplify tests for field macroblocks
patch by Jeff Downs, heydowns a borg d com

Originally committed as revision 10721 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-10-13 05:50:11 +00:00
Jeff Downs
5e832bc28f Interlaced pictures (not just MBAFF) + spatial direct mode is not
implemented.

Patch by Jeff Downs, heydowns . borg @ com
Original thread: Enable PAFF decoding, 2007-10-09 11:04

Originally committed as revision 10714 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-10-12 09:10:07 +00:00
Carl Eugen Hoyos
2fe279f9f9 Set pict->interlaced_frame if returned frame is MBAFF or PAFF.
Originally committed as revision 10703 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-10-10 20:31:42 +00:00
Jeff Downs
03d3cab876 fix incorrect check for abs_diff_pic_num overflow
patch by Jeff Downs, heydowns a borg d com

Originally committed as revision 10700 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-10-09 17:45:34 +00:00
Andreas Öman
f6e3c4603d reindent
Originally committed as revision 10698 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-10-09 15:09:51 +00:00
Carl Eugen Hoyos
d6c52130f7 Enable PAFF decoding
Originally committed as revision 10696 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-10-09 12:28:17 +00:00
Jeff Downs
12d96de3ac Manage Picture buffers for fields as well as frames. Pair complementary fields into one MPV Picture.
Part of PAFF implementation.

patch by Jeff Downs, heydowns a borg d com
original thread:
Subject: [FFmpeg-devel] [PATCH] Implement PAFF in H.264
Date: 18/09/07 20:30

Originally committed as revision 10691 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-10-08 17:44:38 +00:00
Martin Zlomek
ac6b423b0c Fix deblocking for PAFF content
Patch by Martin Zlomek, martin d zlomek a email d cz

Originally committed as revision 10690 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-10-08 17:39:34 +00:00
Jeff Downs
5a421d538e Re-indent after PAFF MMCO implementation patch.
patch by Jeff Downs, heydowns a borg d com
original thread:
Subject: [FFmpeg-devel] [PATCH] Implement PAFF in H.264
Date: 18/09/07 20:30

Originally committed as revision 10679 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-10-07 23:46:51 +00:00
Jeff Downs
0ae969faed Augment MMCO execution to work with both fields and frames. Part of PAFF
implementation.

patch by Jeff Downs, heydowns a borg d com
original thread:
Subject: [FFmpeg-devel] [PATCH] Implement PAFF in H.264
Date: 18/09/07 20:30

Originally committed as revision 10678 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-10-07 23:32:42 +00:00
Jeff Downs
d3d8c02b78 Cosmetic renaming variable so that it makes more sense for forthcoming PAFF mmco patches.
patch by Jeff Downs, heydowns a borg d com
original thread:
Subject: [FFmpeg-devel] [PATCH] Implement PAFF in H.264
Date: 18/09/07 20:30

Originally committed as revision 10676 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-10-06 15:50:55 +00:00
Jeff Downs
12a09bfa39 Augment mmcodecoding process to work properly with fields. Part of PAFF implementation.
patch by Jeff Downs, heydowns a borg d com
original thread:
Subject: [FFmpeg-devel] [PATCH] Implement PAFF in H.264
Date: 18/09/07 20:30

Originally committed as revision 10675 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-10-06 15:49:13 +00:00
Jeff Downs
8a11a96987 Edge emulation for fields. Part of PAFF implementation
patch by Jeff Downs, heydowns a borg d com
original thread:
Subject: [FFmpeg-devel] [PATCH] Implement PAFF in H.264
Date: 18/09/07 20:30

Originally committed as revision 10674 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-10-06 15:47:02 +00:00
Jeff Downs
fa178ed2a4 Set Picture.poc for fields and field pairs. Part of PAFF implementation.
patch by Jeff Downs, heydowns a borg d com
original thread:
Subject: [FFmpeg-devel] [PATCH] Implement PAFF in H.264
Date: 18/09/07 20:30

Originally committed as revision 10673 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-10-06 15:44:58 +00:00
Jeff Downs
f3e53d9fcd Modifies macroblock addressing and current macroblock y-position for field decoding.
Adds convenience definition for pictures that are field or mbaff based. Part of PAFF implementation.

patch by Jeff Downs, heydowns a borg d com
original thread:
Subject: [FFmpeg-devel] [PATCH] Implement PAFF in H.264
Date: 18/09/07 20:30

Originally committed as revision 10672 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-10-06 05:59:14 +00:00
Jeff Downs
949da388de Support function and changes to reference picture reordering for PAFF.
patch by Jeff Downs, heydowns a borg d com
original thread:
Subject: [FFmpeg-devel] [PATCH] Implement PAFF in H.264
Date: 18/09/07 20:30

Originally committed as revision 10671 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-10-05 13:54:11 +00:00
Jeff Downs
086acdd54b Reindent fill_default_ref_list after changes for PAFF
patch by Jeff Downs, heydowns a borg d com
original thread:
Subject: [FFmpeg-devel] [PATCH] Implement PAFF in H.264
Date: 18/09/07 20:30

Originally committed as revision 10670 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-10-05 13:47:46 +00:00
Jeff Downs
11cc1d8c12 Support functions and changes to default reference list creation for PAFF.
patch by Jeff Downs, heydowns a borg d com
original thread:
Subject: [FFmpeg-devel] [PATCH] Implement PAFF in H.264
Date: 18/09/07 20:30

Originally committed as revision 10669 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-10-05 13:41:27 +00:00
Jeff Downs
24231e4cf6 Reorganize long reference management to minimize code duplication in upcoming PAFF implementation.
patch by Jeff Downs, heydowns a borg d com
original thread:
Subject: [FFmpeg-devel] [PATCH] Implement PAFF in H.264
Date: 18/09/07 20:30

Originally committed as revision 10665 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-10-04 06:53:12 +00:00
Jeff Downs
3a22d7fa1f Fix Picture.key_frame setting to be compatible with frame and field contexts. Part of PAFF implementation.
Contributed in part by Neil Brown.
patch by Jeff Downs, heydowns a borg d com
original thread:
Subject: [FFmpeg-devel] [PATCH] Implement PAFF in H.264
Date: 18/09/07 20:30

Originally committed as revision 10664 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-10-04 06:50:44 +00:00
Jeff Downs
f57e2af68b Fix h->curr_pic_num for field pictures. Necessary for proper PAFF support.
patch by Jeff Downs, heydowns a borg d com
original thread:
Subject: [FFmpeg-devel] [PATCH] Implement PAFF in H.264
Date: 18/09/07 20:30

Originally committed as revision 10663 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-10-04 06:43:58 +00:00
Jeff Downs
c58b747153 Rename variable to make sense in both field and frame contexts (support of PAFF implementation).
patch by Jeff Downs, heydowns a borg d com
original thread:
Subject: [FFmpeg-devel] [PATCH] Implement PAFF in H.264
Date: 18/09/07 20:30

Originally committed as revision 10662 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-10-04 06:41:49 +00:00
Jeff Downs
47e112f872 Further modularize short reference list management for upcoming PAFF implementation.
patch by Jeff Downs, heydowns a borg d com
original thread:
Subject: [FFmpeg-devel] [PATCH] Implement PAFF in H.264
Date: 18/09/07 20:30

Originally committed as revision 10661 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-10-04 06:38:58 +00:00
Jeff Downs
5a7b254c75 Re-indent unreference_pic.
patch by Jeff Downs, heydowns a borg d com
original thread:
Subject: [FFmpeg-devel] [PATCH] Implement PAFF in H.264
Date: 18/09/07 20:30

Originally committed as revision 10660 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-10-04 06:37:04 +00:00
Jeff Downs
8fd57a667b Modify unreference_pic implementation with PAFF in mind.
patch by Jeff Downs, heydowns a borg d com
original thread:
Subject: [FFmpeg-devel] [PATCH] Implement PAFF in H.264
Date: 18/09/07 20:30

Originally committed as revision 10659 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-10-04 06:35:46 +00:00
Jeff Downs
bbb3edb827 Partial PAFF implementation at macroblock level.
PAFF support disabled until implementation complete.
patch by Jeff Downs, heydowns a borg d com
original thread:
Subject: [FFmpeg-devel] [PATCH] Implement PAFF in H.264
Date: 18/09/07 20:30

Originally committed as revision 10658 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-10-04 06:33:26 +00:00
Andreas Öman
9dceaa923e remove unused code, spotted by Jeff Downs, heydowns a borg d com
Originally committed as revision 10650 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-10-02 20:04:39 +00:00
Jeff Downs
0d0447eae0 Rename MMCO stuff to prepare for h264/PAFF implementation.
patch by Jeff Downs, heydowns a borg d com
original thread:
Subject: [FFmpeg-devel] [PATCH] Implement PAFF in H.264
Date: 18/09/07 20:30

Originally committed as revision 10646 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-10-02 14:35:20 +00:00
Panagiotis Issaris
93f0c0a4ca Remove redundant test.
Originally committed as revision 10601 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-09-27 10:45:16 +00:00
Jeff Downs
2ddcf84bb7 h264/PAFF preparation: use DELAYED_PIC_REF to mark non-refs frames as held for delayed output
patch by Jeff Downs, heydowns a borg d com
original thread:
Subject: [FFmpeg-devel] [PATCH] Implement PAFF in H.264
Date: 18/09/07 20:30

Originally committed as revision 10592 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-09-26 13:28:13 +00:00
Andreas Öman
58f66029b6 reindent
Originally committed as revision 10573 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-09-25 08:43:49 +00:00
Andreas Öman
1136d34a44 factor out dequant table lookup outside loops, gives a 1-2% speed-up
patch by Andreas Öman %andreas A olebyn P nu%
original thread:
Date: Sep 24, 2007 12:59 PM
Subject: [FFmpeg-devel] [PATCH] h264: factor out dequant table lookup outside loops

Originally committed as revision 10564 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-09-24 13:01:15 +00:00
Reimar Döffinger
61858a76f2 Apply skip_loop_filter before checking if we can parallelize with the selected
loop filter

Originally committed as revision 10549 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-09-22 10:28:22 +00:00
Andreas Öman
a27d6e714f Simplify H.264 decode_cabac_mb_cbp_luma(), giving a ~0.5% speedup.
patch by Andreas Öman, andreas olebyn nu
Date: Thu, 20 Sep 2007 12:59:19 +0200
Subject: [FFmpeg-devel] [PATCH] simplify h264's decode_cabac_mb_cbp_luma()

Originally committed as revision 10537 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-09-21 00:26:31 +00:00
Andreas Öman
50c21814b9 fix image corruption when with multi-threaded decoding.
dequant-tables were not correctly reinitialized in the slave
contexts when a PPS came with updated matrices.
Patch by Andreas Öman %andreas A olebyn P nu%
Original thread:
date: Sep 16, 2007 6:14 AM
subject: [FFmpeg-devel] Parallelized h264 image corruption bug

Originally committed as revision 10505 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-09-16 10:37:07 +00:00
Andreas Öman
7ae94d525c Indentation
patch by Andreas Öman

Originally committed as revision 10432 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-09-07 19:19:49 +00:00
Andreas Öman
ec970c2187 Let H.264 decoder skip deblocking across slices
if running with multiple threads and CODEC_FLAGS2_FAST is set.
Thus, it may decode the slices in parallel to gain speed.

Patch by Andreas Öman: [andreas olebyn nu]

Originally committed as revision 10431 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-09-07 18:27:13 +00:00
Jeff Downs
088ed4d636 Avoid a crash when H264 MMC operation causes the short term reference
list to be emptied.
Patch by Jeff Downs: [heydowns borg com]

Originally committed as revision 10416 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-09-05 20:04:09 +00:00
Andreas Öman
afebe2f7ca Add slice-based parallel H.264 decoding
Patch by Andreas Öman % andreas A olebyn P nu %
NB: depends on having a thread library activated at config time, and on
having a source encoded with multiple slices
Original threads:
date: May 18, 2007 11:00 PM
subject: [FFmpeg-devel] Parallelized h264 proof-of-concept
date: Jun 15, 2007 10:10 PM
subject: [FFmpeg-devel] [PATCH] h264 parallelized, (was: Parallelized h264 proof-of-concept)
date: Jun 25, 2007 7:02 PM
subject: Re: [FFmpeg-devel] [PATCH] h264 parallelized

Originally committed as revision 10407 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-09-05 16:18:15 +00:00
Kostya Shishkov
c92a30bb06 Move H.264 intra prediction functions into their own context
Originally committed as revision 10397 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-09-05 05:30:08 +00:00
Carl Eugen Hoyos
5d3de5ad22 Silence warnings about NAL_SVC_NON_IDR in H.264.
patch by Carl Eugen Hoyos, cehoyos ag.or at

Originally committed as revision 10289 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-09-04 14:48:39 +00:00
Carl Eugen Hoyos
1c746a490d Remove error raising when explicitely skipping frame
patch by Carl Eugen Hoyos: [cehoyos ag or at]
original thread:
[FFmpeg-devel] [PATCH] Don't let ctx->skip_frame>0 produce errors
date: 08/30/2007 01:30 PM

Originally committed as revision 10286 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-09-03 08:46:24 +00:00
Ramiro Polla
c8f9ef613e CONFIG_7REGS -> HAVE_7REGS
Originally committed as revision 10121 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-08-15 21:19:13 +00:00
Alexander Strange
6d324c813f Statements like a = b = c = d = e; store from right-to-left, so if
you write them in the right order it comes out backwards.
This removes them from fill_rectangle().
patch by Alexander Strange %astrange A ithinksw P com%
Original thread:
Date: Aug 14, 2007 5:36 AM
Subject: [FFmpeg-devel] [PATCH] two small h264 optimizations

Originally committed as revision 10118 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-08-14 22:28:09 +00:00
Alexander Strange
880003bbb9 Don't check the return value of decode_cabac_residual since it always
returns 0. This leads to a 0.4% speed-up.
Patch by Alexander Strange  astrange at_ ithinksw dot com
Original thread:
Date: Aug 11, 2007 11:44 PM
Subject: [FFmpeg-devel] [PATCH] h264: don't check decode_cabac_residual return

Originally committed as revision 10084 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-08-12 00:07:29 +00:00
Alex Beregszaszi
ec5dc2c1af debug: tell how much bits are skipped with unknown nal code
Originally committed as revision 9993 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-08-08 20:27:18 +00:00
Michael Niedermayer
873525491e use ENABLE_GRAY
Originally committed as revision 9847 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-08-01 01:01:03 +00:00
Andreas Öman
d4a688d029 fix cabac decoding with some Blue-Ray sources
Patch by Andreas Öman %andreas A olebyn P nu%
Original thread:
Date: Jul 7, 2007 1:23 AM
Subject: [FFmpeg-devel] Corrupted blocks and seeking issues in H264 disc sources

Originally committed as revision 9836 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-07-30 21:19:36 +00:00
Panagiotis Issaris
d04d5bcd0e Fix the self tests which are contained in some codecs and are using random().
Originally committed as revision 9755 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-07-19 08:47:07 +00:00
Andreas Öman
9a5a05d0b3 fix visual painting of MVs from h264: they are painted twice too long
since the MVs are in qpel res.
Patch by Andreas Öman % andreas A olebyn P nu %
Date: Jul 14, 2007 12:40 PM
Subject: [FFmpeg-devel] [PATCH] h264 mv visualization

Originally committed as revision 9688 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-07-15 19:03:12 +00:00
Benoit Fouet
93f4823935 bring back h264 build
Originally committed as revision 9555 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-07-09 07:51:54 +00:00
Måns Rullgård
bad700e346 trivial warning fixes
Originally committed as revision 9547 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-07-08 23:14:54 +00:00
Andreas Öman
4691a77db4 Add support for streams with different chroma_qp_index_offset
for Cr and Cb
Patch by Andreas Öman % andreas A olebyn P nu %
Original thread:
Date: Jun 26, 2007 8:48 PM
subject: [FFmpeg-devel] Color corruption and seeking errors with H264 disc sources

Originally committed as revision 9505 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-07-06 14:21:37 +00:00
Andreas Öman
042ef4b720 Precompute a chroma_qp table with index offset for each pps,
this saves speed for the upcoming secondqp fix.
Patch by Andreas Öman % andreas A olebyn P nu %
Original thread:
Date: Jun 26, 2007 8:48 PM
subject: [FFmpeg-devel] Color corruption and seeking errors with H264 disc sources

Originally committed as revision 9498 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-07-06 07:58:08 +00:00
Andreas Öman
4bbdf13f9e Compute the dequant coefficient table ptr outside the loop,
this saves speed for the upcoming secondqp fix.
Patch by Andreas Öman % andreas A olebyn P nu %
Original thread:
Date: Jun 26, 2007 8:48 PM
subject: [FFmpeg-devel] Color corruption and seeking errors with H264 disc sources

Originally committed as revision 9497 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-07-06 07:55:37 +00:00
Diego Biurrun
e5a389a1b7 license header consistency cosmetics
Originally committed as revision 9484 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-07-05 10:40:25 +00:00
Andreas Öman
b69378e295 Don't swap back un-deblocked lines for intra prediction when
at slice boundaries for deblocking-type 2 content.

This is needed for slice based threading only and doesn't do much
good or bad otherwise.
Patch by Andreas Oman %andreas A olebyn P nu%
Original thread:
date: Jun 18, 2007 1:21 PM
subject: Re: [FFmpeg-devel] [PATCH] h264 parallelized,

Originally committed as revision 9380 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-06-21 07:52:06 +00:00
Andreas Öman
24456882f3 Do not reuse the rbsp de-escape buffer if both
the intra and inter -nal units are escaped
patch by Andreas Öman: \andreas olebyn nu/
original thread:
[FFmpeg-devel] [PATCH] h264: rbsp de-escape and data partitioning..
date: 06/20/2007 09:32 AM

Originally committed as revision 9374 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-06-20 08:53:53 +00:00
Andreas Öman
995a30c06b Decouple bit context from h264 context in decode_ref_pic_marking()
(done in order to implement slice-level parallel decoding)
Patch by Andreas Öman % andreas olebyn nu %
Original thread:
Date: Jun 15, 2007 10:10 PM
Subject: [FFmpeg-devel] [PATCH] h264 parallelized, (was: Parallelized h264 proof-of-concept)

Originally committed as revision 9371 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-06-19 21:34:04 +00:00
Andreas Öman
1c48415bb9 indentation
patch by Andreas Öman: [andreas olebyn nu]

Originally committed as revision 9360 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-06-18 08:48:26 +00:00
Andreas Öman
b41c1db38d Factor out init_scan_tables(), patch by Andreas Öman %andreas A olebyn.nu%
original thread:
Date: Jun 15, 2007 10:10 PM
Subject: [FFmpeg-devel] [PATCH] h264 parallelized, (was: Parallelized h264 proof-of-concept)

Originally committed as revision 9341 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-06-16 19:54:04 +00:00
Måns Rullgård
706da4af32 fix some printf format specifiers
Originally committed as revision 9334 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-06-16 14:52:05 +00:00
Diego Biurrun
90b5b51eab misc typo fixes
Originally committed as revision 9291 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-06-12 18:50:50 +00:00
Diego Biurrun
755bfeabcc misc spelling fixes
Originally committed as revision 9289 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-06-12 09:29:25 +00:00
Andreas Öman
93cc10fa9c h264: use 'simple' in border backup / xchg
patch by Andreas Öman: [andreas olebyn nu]
original thread:
subject: [FFmpeg-devel] [patch] h264: use 'simple' in border backup / xchg
date: 06/07/2007 03:24 PM

Originally committed as revision 9237 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-06-07 13:51:06 +00:00
Andreas Öman
83b3401731 filter_mb_fast() doesn't handle h->deblocking_filter==2 (skip slice edges), so delegate that case to filter_mb().
Patch by Andreas Öman [andreas at olebyn dot nu].

Originally committed as revision 9180 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-06-03 11:44:43 +00:00
Carl Eugen Hoyos
154e30f6c2 rename attribute_unused to av_unused and moves its declaration to common.h
patch by Carl Eugen Hoyos cehoyos chez ag or at
original thread: [FFmpeg-devel] [PATCH] attribute_unused -> av_unused
date: 05/29/2007 01:23 PM

Originally committed as revision 9155 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-05-30 09:32:25 +00:00
Andreas Öman
7978debdc2 allocate PPS and SPS dynamically
patch by Andreas Öman andreas ta olebyn tod nu
reference thread:
subject: [FFmpeg-devel] [PATCH] h264: allocate PPS and SPS dynamically
date: 05/28/2007 03:00 PM

Originally committed as revision 9148 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-05-29 14:35:29 +00:00
Panagiotis Issaris
cb1a74cf8c Export the four remaining H.264 decoder intra prediction functions for reuse in
the H.264 encoder. These functions are: pred8x8_left_dc_c, pred8x8_top_dc_c,
pred16x16_left_dc_c and pred16x16_top_dc_c.

Originally committed as revision 9107 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-05-23 13:46:11 +00:00
Reimar Döffinger
2c32b173d9 Move attribute_unused to variable declarations in macros instead of
introducing a useless extra variable.

Originally committed as revision 9052 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-05-17 20:18:46 +00:00
Reimar Döffinger
e36d79c837 Change some leftover __attribute__((unused)) and __attribute__((used)) to
attribute_unused and attribute_used respectively to ease compiling on non-gcc.

Originally committed as revision 9024 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-05-14 14:07:50 +00:00
Diego Biurrun
a2e4c0ddae Remove duplicate #includes, avcodec.h #includes common.h.
Originally committed as revision 8995 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-05-11 07:21:14 +00:00
Aurelien Jacobs
26b4fe821c split h264.c to move parser in its own file
Originally committed as revision 8985 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-05-10 22:26:44 +00:00
Aurelien Jacobs
c53d2d9042 make some parser parameters const to avoid casting const to non-const
Originally committed as revision 8921 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-05-07 00:47:03 +00:00
Diego Biurrun
5a6a6cc7dc Fix multiple "‘inline/static’ is not at beginning of declaration" warnings.
Originally committed as revision 8894 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-05-05 12:18:14 +00:00
Diego Biurrun
e24465962d Remove unused variable.
Originally committed as revision 8878 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-05-02 23:11:23 +00:00
Mean
dcc3a30b58 prevent going out of the buffer if the nal size does not fit in the buffer.
Patch by Mean % fixounet A free P fr %
Original thread:
Date: Apr 29, 2007 2:00 PM
Subject: Re: [Ffmpeg-devel] [patch] h264.c, dont go beyond buffer in h264_decode_nal_unit

Originally committed as revision 8858 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-04-29 23:18:39 +00:00
Diego Biurrun
e69364b700 Mark code parts that cannot work on AMD64 due to broken relocations as such.
This allows building shared libraries on AMD64 again.
based on a patch by Diego 'Flameeyes' Pettenò and suggestions by Michael
original thread:
Date: Wed, 18 Apr 2007 11:26:12 +0200
Subject: [Ffmpeg-devel] [PATCH] (try 2) Build shared libraries on AMD64 again

Originally committed as revision 8849 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-04-27 09:32:31 +00:00
Diego Biurrun
784b7f77c8 10l: Rename missed occurrences of CONFIG_EBX_AVAILABLE to HAVE_EBX_AVAILABLE.
Originally committed as revision 8821 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-04-26 00:32:31 +00:00
Limin Wang
3b77e48f0a add a check before find_frame_end call
Patch by Limin Wang % lance P lmwang A gmail P com %
Original thread:
date: 04/09/2007 03:54 PM
subject: [Ffmpeg-devel] [PATCH] fix segment fault in h264_parse if buf_size is zero

Originally committed as revision 8714 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-04-11 14:04:47 +00:00
Reinhard Nissl
ad1ea1f155 When dst_length == 0 bit_length has to be 0, too, but the current code still
calls decode_rbsp_trailing() and therefore bit_length might get negative.
Although the remaining code is able to handle a negative bit_length, avoid
the calculation at all by setting bit_length to 0 for dst_length == 0.
patch by Reinhard Nissl, rnissl gmx de

Originally committed as revision 8690 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-04-09 14:10:07 +00:00
Reinhard Nissl
6ac9696e77 Remove a NAL unit's trailing zero bytes even when dst_length is 1.
Consider the following byte sequence

    00 00 01 0a 00 00 00 01 09 ...
               ^  ^
               A  B

decode_nal() determines dst_length to be 1 (i. e. the byte between label
A and B above). However, this byte is a trailing zero byte as the spec
says the the current NAL unit is terminated by a byte sequence 00 00 00.

The current code used a loop to decrement dst_length accordingly. But the
loop doesn't start as the loop condition checks for dst_length > 1, which
should read dst_length > 0.
patch by Reinhard Nissl, rnissl gmx de

Originally committed as revision 8689 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-04-09 13:39:35 +00:00
Reinhard Nissl
ff82e429cb scenario: A properly coded frame is followed by an end of sequence NAL unit,
i.e. the four bytes 00 00 01 0a.
When decode_nal() decodes the end of sequence NAL unit, it returns with
dst_length == 0. The original code leads to a return -1 which discards
the current properly decoded frame.
patch by Reinhard Nissl, rnissl gmx de

Originally committed as revision 8688 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-04-09 12:55:07 +00:00
Diego Biurrun
e42dba481f typos/grammar
Originally committed as revision 8641 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-04-07 14:09:20 +00:00
Stefan Huehner
2b100ab2bf changes some function declarations from () to (void) as per ansi c.
Patch by Stefan Huehner % stefan A huehner P org %

Originally committed as revision 8625 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-04-04 11:51:08 +00:00
Panagiotis Issaris
449659919c Fix compilation when using the --disable-opts parameter. This to help those
interested in using a debugger to debug FFmpeg.

Original thread:
Subject: [PATCH] Fix compilation when using --disable-opts
Date: 2007-03-15 16:58:35 GMT

Originally committed as revision 8549 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-03-29 14:20:30 +00:00
Baptiste Coudurier
b21c9af936 reindent after last commit
Originally committed as revision 8399 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-03-14 11:13:17 +00:00
Baptiste Coudurier
1153be3be1 h264 complete frames parsing support
Originally committed as revision 8398 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-03-14 11:12:02 +00:00
Michael Niedermayer
56c70e1d3a check for no frame and prevent segfault
Originally committed as revision 8211 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-03-03 21:33:33 +00:00
Michael Niedermayer
66a4b2c179 support feeding individual NAL units to the decoder instead of just complete frames
Originally committed as revision 8197 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-03-02 23:35:26 +00:00