Commit Graph

217 Commits

Author SHA1 Message Date
Michael Niedermayer
b45a313e97 ffv1dec: fix error concealment for gop>1
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-16 16:48:09 +02:00
Michael Niedermayer
ac9389a663 ffv1dec: detect errors in bytestream end mismatches for EC
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-16 15:48:04 +02:00
Michael Niedermayer
b0d674ec10 ffv1dec: set the first slices bytestream end correctly
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-16 15:48:04 +02:00
Michael Niedermayer
f5af3568f6 ffv1dec: keep track of errors in slice headers for EC
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-16 15:48:04 +02:00
Michael Niedermayer
094845aad8 ffv1dec: add simple error concealment in case of CRC errors on slices.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-16 15:48:04 +02:00
Michael Niedermayer
371d37fcf5 ffv1: keep last_frame (to be used for error concealment)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-16 15:38:27 +02:00
Michael Niedermayer
af285072b5 ffv1enc: use default number of slices if unspecified
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-13 22:08:27 +02:00
Michael Niedermayer
051dd2eea6 ffv1dec: print timestamp at which a CRC mismatch happened
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-13 22:08:27 +02:00
Carl Eugen Hoyos
acf0283925 Set default ffv1 coder to -1.
Autoselect coder 1 instead of default coder if bits_per_raw_sample > 8.

Fixes ticket #1519.
2012-07-10 14:32:55 +02:00
Carl Eugen Hoyos
4c4e125695 Cosmetics: Return AVERROR_INVALIDDATA from ffv1 encoder initialisation if invalid data was provided. 2012-07-10 14:32:55 +02:00
Carl Eugen Hoyos
08ed3e8bf4 Cosmetics: Move ffv1 encoder initialisation code. 2012-07-10 14:32:54 +02:00
Paul B Mahol
f06269dda5 cosmetics: align more codecs declarations
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-06-12 20:47:38 +00:00
Paul B Mahol
8554e21f79 ffv1enc: add yuva422p to .pix_fmts
This was forgotten in 4e4634aa16.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-06-09 18:15:50 +00:00
Michael Niedermayer
38c9ebd2a9 ffv1dec: print more information for -debug 1
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-04 01:04:03 +02:00
Michael Niedermayer
730d079bf7 ffv1: fix log level of FF_DEBUG_PICT_INFO
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-04 01:04:03 +02:00
Michael Niedermayer
9ebe6e3910 ffv1: fix integer overflow in quant table initialization
Fixes part of Ticket1372

Found-by: Piotr Bandurski <ami_stuff@o2.pl>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-02 02:37:36 +02:00
Michael Niedermayer
97c281d5b7 ffv1: fix crash caused by version becoming inconsistent
Fixes part of Ticket1372

Found-by: Piotr Bandurski <ami_stuff@o2.pl>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-02 02:30:55 +02:00
Michael Niedermayer
21fdf1ccf0 ffv1: fix reading global header with CRC
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-31 00:47:36 +02:00
Michael Niedermayer
e15f1286e6 ffv1: fix decoder state_transition table
This fixes a regression with ffv1.1 coder=1 decoding

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-23 12:04:10 +02:00
Carl Eugen Hoyos
4e4634aa16 Support yuva422p in ffv1. 2012-05-08 08:49:36 +02:00
Carl Eugen Hoyos
23fba3ed5c Remove unused variable from ffv1 decoder. 2012-05-05 14:54:57 +02:00
Michael Niedermayer
fd6eba428e ffv1: 10l add forgotten avclass
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-30 18:31:07 +02:00
Michael Niedermayer
123dd9346b ffv1: add slicecrc option
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-30 15:00:10 +02:00
Michael Niedermayer
a4b58fd9e8 ffv1: add examples of supported slices counts
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-26 04:35:30 +02:00
Michael Niedermayer
cab15f9db4 ffv1: remove clear_state(), it has become unused
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-25 18:05:40 +02:00
Michael Niedermayer
83bf9fb6ec ffv1: move clear_state() to clear_slice_state() in encoding threads
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-25 18:05:29 +02:00
Michael Niedermayer
68a9194bb6 ffv1: indent
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-25 17:51:17 +02:00
Michael Niedermayer
3f4c0dad16 ffv1: move init_slice_state() into the decoder threads.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-25 17:50:55 +02:00
Michael Niedermayer
60217b5b9c ffv1: Remove slice count field with 1.3 and just count slices.
This field was problematic because in case of damaged slices it can be
lost

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-25 15:01:32 +02:00
Michael Niedermayer
3ed6917ab8 ffv1: store slice size with all slices in 1.3
This simplifies handling by removing a special case.
Its also needed to make the next change possible.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-25 14:59:15 +02:00
Michael Niedermayer
c24ca7b88e ffv1: add 1 status byte to slices in in case crcs are stored too.
This will allow storing of information about corrected and uncorrectable
errors.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-25 12:05:06 +02:00
Michael Niedermayer
0c27854532 ffv1: Always store slice size when error reobustness is enabled.
This simplifies finding slices within a damaged bitstream.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-25 12:01:44 +02:00
Michael Niedermayer
16524d1be0 ffv1: include solution hint in the slice error message
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-25 11:21:30 +02:00
Michael Niedermayer
fe5bc46f60 ffv1: support vlc mode in 1.3
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-24 23:29:09 +02:00
Michael Niedermayer
3158160334 ffv1: move the decoder side ac->vlc switch to decode_slice()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-24 23:29:09 +02:00
Michael Niedermayer
44f789c092 ffv1: allow selecting 1.3 by using -level
Note, 1.3 is not finalized and the bitstream will still change
do not use it yet. This option is just to make playing with it
easier, otherwise one would have to edit the source

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-24 23:29:09 +02:00
Michael Niedermayer
e37419a806 ffv1: move ac->vlc switch to encode_slice()
This will allow us to use vlc coding in 1.3 too

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-24 23:29:09 +02:00
Michael Niedermayer
abec6549ae ffv1dec: Require a valid keyframe for decoding non keyframes.
Before this the context could become inconsistent, this lead to a null ptr
dereference.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-22 14:58:28 +02:00
Michael Niedermayer
044f7275d3 ffv1: add optional per slice CRCs to detect undamaged slices.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-20 15:37:23 +02:00
Michael Niedermayer
b4fc53856d ffv1: move most fields from the frame header to the slice headers with ffv1.3
This will allow decoding a single undamaged slice even if all others are lost

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-20 15:37:23 +02:00
Michael Niedermayer
9408316a85 ffv1: refactor slice decoding init loop so that the first is less a special case
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-20 15:37:23 +02:00
Michael Niedermayer
8456089f50 ffv1: clear slice state in decode_slice()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-20 15:37:23 +02:00
Michael Niedermayer
c7a435aab2 ffv1: split clear_slice_state() out so individual slices can be cleared.
This allows us to clear outside of the main thread for example.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-20 15:37:23 +02:00
Michael Niedermayer
32883c0667 ffv1: split init_slice_state() out so individual slices can be inited
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-20 15:37:23 +02:00
Michael Niedermayer
d7a4c43f18 ffv1: Add a CRC check to the global header with version 1.3
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-20 15:37:23 +02:00
Michael Niedermayer
fa1b2c8e18 ffv1: attempt to workaround intel CC fate issue.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-16 12:01:46 +02:00
Michael Niedermayer
367d9b2957 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  swscale: K&R formatting cosmetics (part II)
  tiffdec: Add a malloc check and refactor another.
  faxcompr: Check malloc results and unify return path
  configure: escape colons in values written to config.fate
  ac3dsp: call femms/emms at the end of float_to_fixed24() for 3DNow and SSE
  matroska: Fix leaking memory allocated for laces.
  pthread: Fix crash due to fctx->delaying not being cleared.
  vp3: Assert on invalid filter_limit values.
  h264: fix 10bit biweight functions after recent x86inc.asm fixes.
  ffv1: Fix size mismatch in encode_line.
  movenc: Remove a dead initialization
  git-howto: Explain how to avoid Windows line endings in git checkouts.
  build: Move all arch OBJS declarations into arch subdirectory Makefiles.

Conflicts:
	configure
	libavcodec/vp3.c
	libavformat/matroskadec.c
	libavutil/Makefile
	libswscale/Makefile
	libswscale/swscale.c
	libswscale/swscale_internal.h
	libswscale/utils.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-13 21:50:37 +02:00
Alex Converse
2b8374e920 ffv1: Fix size mismatch in encode_line. 2012-04-12 18:34:45 -07:00
Michael Niedermayer
1d80c8db27 ffv1: set slice geometry based on user specified slices.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-08 17:03:38 +02:00
Michael Niedermayer
8dfbc1c5cf ffv1: allow enabling of version 2 by using some of its features.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-08 16:48:34 +02:00