Commit Graph

58 Commits

Author SHA1 Message Date
Reimar Döffinger
6724254118 ffv1enc: reduce stack usage.
A bit more complex than e.g. adding it to the context, but
using the context for something that will be used only during
initialization seemed a bit wasteful.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-09-03 21:22:58 +02:00
Michael Niedermayer
947ed8f292 avcodec/ffv1enc: allocate padding for extradata
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-18 15:58:41 +02:00
Lukasz Marek
a91d9e4b63 lavc/ffv1enc: add const to silent warning
Signed-off-by: Lukasz Marek <lukasz.m.luki@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-15 01:50:47 +01:00
Michael Niedermayer
9e7b477c8c avcodec/ffv1enc: choose 1.2 by default for higher resolutions to ensure multi-threaded decodability
Reviewed-by: "Peter B." <pb@das-werkstatt.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-08 13:24:37 +01:00
Michael Niedermayer
0e575c24d6 ffv1.4: use 2 coefficients for calculating the Y plane in the RCT
0-0.7% improved compression

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-10 03:16:58 +01:00
Michael Niedermayer
2bdda9a15c avcodec/ffv1enc: fix use of uninitalized variable in choose_rct_params()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-10 02:53:04 +01:00
Michael Niedermayer
b07da13ac0 avcodec/ffv1enc: support forcing experimental 1.4 version
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-09 00:39:02 +01:00
Michael Niedermayer
7854d2d251 avcodec/ffv1: support adjusting the g vs r + b coefficient in the RCT
about 1% better compression

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-09 00:37:38 +01:00
Michael Niedermayer
be1e6e7503 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  mpegvideo_enc: use the AVFrame API properly.
  ffv1: use the AVFrame API properly.
  jpegls: use the AVFrame API properly.
  huffyuv: use the AVFrame API properly.

Conflicts:
	libavcodec/ffv1.c
	libavcodec/ffv1.h
	libavcodec/ffv1dec.c
	libavcodec/ffv1enc.c

Changes to ffv1 are more redone than merged due to them being based on
an ancient codebase and a good part of that having being done already
as well.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-17 13:55:50 +01:00
Anton Khirnov
a6064b12b4 ffv1: use the AVFrame API properly. 2013-11-16 17:50:51 +01:00
Michael Niedermayer
336a1902d6 avcodec/ffv1enc: Check high bpp RGB against coder type too
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-03 22:18:47 +01:00
Michael Niedermayer
1fb3b494fa ffv1enc: store 2pass statistics at the end
This reduces their size from O(n) to O(1)

Fixes Ticket3078

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-02 22:52:52 +01:00
Michael Niedermayer
8d88ed9a1f avcodec/ffv1enc: pass through pts
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-02 22:52:52 +01:00
Michael Niedermayer
62533eab6f ffv1enc: use 64bit in maxsize calculation
This isnt needed but it cant hurt, its also more consistent with
how its calculated a few lines before.

See: CID1108593
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-19 23:36:35 +02:00
Michael Niedermayer
ee77140afa Merge commit 'b2bed9325dbd6be0da1d91ffed3f513c40274fd2'
* commit 'b2bed9325dbd6be0da1d91ffed3f513c40274fd2':
  cosmetics: Group .name and .long_name together in codec/format declarations

Conflicts:
	libavcodec/8svx.c
	libavcodec/alac.c
	libavcodec/cljr.c
	libavcodec/dnxhddec.c
	libavcodec/dnxhdenc.c
	libavcodec/dpxenc.c
	libavcodec/dvdec.c
	libavcodec/dvdsubdec.c
	libavcodec/dvdsubenc.c
	libavcodec/ffv1dec.c
	libavcodec/flacdec.c
	libavcodec/flvdec.c
	libavcodec/fraps.c
	libavcodec/frwu.c
	libavcodec/g726.c
	libavcodec/gif.c
	libavcodec/gifdec.c
	libavcodec/h261dec.c
	libavcodec/h263dec.c
	libavcodec/iff.c
	libavcodec/imc.c
	libavcodec/libopencore-amr.c
	libavcodec/libopenjpegdec.c
	libavcodec/libopenjpegenc.c
	libavcodec/libspeexenc.c
	libavcodec/libvo-amrwbenc.c
	libavcodec/libvorbisenc.c
	libavcodec/libvpxenc.c
	libavcodec/libx264.c
	libavcodec/libxavs.c
	libavcodec/libxvid.c
	libavcodec/ljpegenc.c
	libavcodec/mjpegbdec.c
	libavcodec/mjpegdec.c
	libavcodec/mpeg12dec.c
	libavcodec/mpeg4videodec.c
	libavcodec/msmpeg4dec.c
	libavcodec/pgssubdec.c
	libavcodec/pngdec.c
	libavcodec/pngenc.c
	libavcodec/proresdec_lgpl.c
	libavcodec/proresenc_kostya.c
	libavcodec/ra144enc.c
	libavcodec/rawdec.c
	libavcodec/rv10.c
	libavcodec/sp5xdec.c
	libavcodec/takdec.c
	libavcodec/tta.c
	libavcodec/v210dec.c
	libavcodec/vp6.c
	libavcodec/wavpack.c
	libavcodec/xbmenc.c
	libavcodec/yop.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-04 12:34:23 +02:00
Diego Biurrun
b2bed9325d cosmetics: Group .name and .long_name together in codec/format declarations 2013-10-03 23:32:01 +02:00
Paul B Mahol
d1a16564a2 avcodec/ffv1: YUVA(444,422,420) 9, 10 and 16 bit support
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-09-09 19:49:37 +00:00
Michael Niedermayer
3576b564ec avcodec/ffv1enc: encode slice as raw PCM in 1.4 when the buffer is too small.
This limits the maximum size of encoded slices more tightly

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-09-09 20:20:21 +02:00
Michael Niedermayer
77f521d9e5 avcodec/ffv1enc: check encode_line()s return code
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-09-09 20:19:24 +02:00
Michael Niedermayer
3728603f18 avcodec/ffv1enc: update buffer check for 16bps
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-09-09 20:19:17 +02:00
Michael Niedermayer
904a2864bd avcodec/ffv1enc: fix size used for ff_alloc_packet2()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-09-09 20:19:08 +02:00
Michael Niedermayer
abe76b851c ffv1enc: Make ffv1.3 non experimental
The fate tests change as they used 1.2 previously
The increased size is due to:
32bit CRCs per slice by default (can be disabled),
it adds slice headers to allow decoding one slice without the others
an additional slice size field is added to make it possible to find
slices within corrupted surroundings.

these add up to about 57bit per slice more
at 50 frames and 4 slices thats 1425 byte

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-08-26 17:33:53 +02:00
Michael Niedermayer
d9b0b54a5f ffv1: rename minor to micro version
the version is 1.3.4 which makes 4 micro and not minor

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-08-20 03:30:36 +02:00
Michael Niedermayer
2c1a215ddb ffv1: update years in header
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-08-17 01:43:30 +02:00
Michael Niedermayer
c8d89be477 ffv1enc: propagate error code from write_extradata()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-08-17 01:43:30 +02:00
Michael Niedermayer
eeb3fb9e62 ffv1enc: check for malloc failure
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-08-17 01:43:30 +02:00
Michael Niedermayer
23606f27f0 avcodec/ffv1enc: bump minor_version for the chroma_plane fix
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-08-15 13:49:21 +02:00
Michael Niedermayer
1a01147d7a avcodec/ffv1enc: fix chroma_plane for rgb/rgba
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-08-15 13:27:29 +02:00
Michael Niedermayer
c387c45e83 ffv1: fix plane_count at version 1.4
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-08-15 13:03:53 +02:00
Carl Eugen Hoyos
0915b531bc Rename "AVClass class" as "AVClass component_class".
The aix header math.h defines "extern int class()" for C.
2013-06-30 13:47:45 +02:00
Michael Niedermayer
7e99d528f9 ffv1enc: Check return value of av_frame_ref()
Fixes CID1026740
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-06-03 14:06:25 +02:00
Anton Khirnov
e6c4ac7b5f pixdesc: rename PIX_FMT_* flags to AV_PIX_FMT_FLAG_* 2013-05-15 07:46:51 +02:00
Michael Niedermayer
9a2153894f ffv1enc: fix 1000l typo
Thanks to ubitux for spotting that
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-05-11 21:33:03 +02:00
Michael Niedermayer
bd63f8f657 ffv1enc: Fix memleak
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-05-11 21:03:54 +02:00
Michael Niedermayer
19411d32d4 ffv1enc: dont set coded_frame
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-05-11 20:37:20 +02:00
Michael Niedermayer
54602590d9 ffv1enc: Check the return value of ffv1_common_init()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-05-11 20:17:09 +02:00
Michael Niedermayer
69cfe63a43 ffv1: Switch to ThreadFrame
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-05-11 20:16:49 +02:00
Clément Bœsch
570d63eef3 lavu: add FF_CEIL_RSHIFT and use it in various places. 2013-05-09 16:59:42 +02:00
Michael Niedermayer
0aa095483d Merge commit '6fee1b90ce3bf4fbdfde7016e0890057c9000487'
* commit '6fee1b90ce3bf4fbdfde7016e0890057c9000487':
  avcodec: Add av_cold attributes to init functions missing them

Conflicts:
	libavcodec/aacpsy.c
	libavcodec/atrac3.c
	libavcodec/dvdsubdec.c
	libavcodec/ffv1.c
	libavcodec/ffv1enc.c
	libavcodec/h261enc.c
	libavcodec/h264_parser.c
	libavcodec/h264dsp.c
	libavcodec/h264pred.c
	libavcodec/libschroedingerenc.c
	libavcodec/libxvid_rc.c
	libavcodec/mpeg12.c
	libavcodec/mpeg12enc.c
	libavcodec/proresdsp.c
	libavcodec/rangecoder.c
	libavcodec/videodsp.c
	libavcodec/x86/proresdsp_init.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-05-05 11:34:29 +02:00
Diego Biurrun
6fee1b90ce avcodec: Add av_cold attributes to init functions missing them 2013-05-04 21:09:45 +02:00
Michael Niedermayer
7f138310fb ffv1enc: favor version 3 over 2 unless -strict -2 is set
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-04-27 22:48:13 +02:00
Michael Niedermayer
1a392fc550 ffv1: Store a flag in the global header that indicates if all frames are keyframes
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-04-27 16:17:29 +02:00
Michael Niedermayer
a984efd104 Merge commit 'c242bbd8b6939507a1a6fb64101b0553d92d303f'
* commit 'c242bbd8b6939507a1a6fb64101b0553d92d303f':
  Remove unnecessary dsputil.h #includes

Conflicts:
	libavcodec/ffv1.c
	libavcodec/h261dec.c
	libavcodec/h261enc.c
	libavcodec/h264pred.c
	libavcodec/lpc.h
	libavcodec/mjpegdec.c
	libavcodec/rectangle.h
	libavcodec/x86/idct_sse2_xvid.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-26 13:05:10 +01:00
Diego Biurrun
c242bbd8b6 Remove unnecessary dsputil.h #includes 2013-02-26 00:51:34 +01:00
Michael Niedermayer
0aa1d848ec ffv1enc: better heuristic to calculate initial states
Slightly improves compression of 2pass files

Tested-by: "Peter B." <pb@das-werkstatt.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-11 19:25:41 +01:00
Michael Niedermayer
b77d94dc6c ffv1enc: check for malloc failure
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-05 00:37:20 +01:00
Michael Niedermayer
c6ef7641fc ffv1enc: fix gbrp>8bit
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-25 23:34:36 +01:00
Paul B Mahol
be38aaba4a ffv1enc: include correct header
Encoder needs put_bits.h, not get_bits.h

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-01-23 11:21:09 +00:00
Michael Niedermayer
8bf16e677f ffv1enc: allow encoding with 1 slice for CIF and smaller in version 3
the default is still 4 slices for any resolution, this just allows the user
to force 1 slice.
This in my quick test improves compression by 1% for a 320x240 sample

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-05 01:22:43 +01:00
Michael Niedermayer
c2cbc80ae9 ffv1enc: consider 2pass float rounding, fix loop
Found-by: "Peter B." <pb@das-werkstatt.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-16 17:01:13 +01:00