Commit Graph

142 Commits

Author SHA1 Message Date
Limin Wang
467d9e27e0 avcodec: Add FF_CODEC_CAP_INIT_CLEANUP
then ff_mpv_encode_end() will be unnecessary in ff_mpv_encode_init()
if it's failed.

The FF_CODEC_CAP_INIT_CLEANUP flag is need for single thread, For multithread,
it'll be cleanup still by AV_CODEC_CAP_FRAME_THREADS flag if have.

Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
2020-05-27 21:59:51 +08:00
James Almer
13b1bbff0b avcodec: deprecate Lossless and Intra Only encoder capabilites
Both are codec properties and not encoder capabilities. The relevant
AVCodecDescriptor.props flags exist for this purpose.

Signed-off-by: James Almer <jamrial@gmail.com>
2020-05-21 12:32:15 -03:00
Vittorio Giovara
d37faad0cd mjpeg: Use profile names in the encoder and decoder 2018-11-05 12:39:23 -05:00
James Almer
7b550c5f84 Merge commit 'b3739599bda740ac12d3dde31a331b744df99123'
* commit 'b3739599bda740ac12d3dde31a331b744df99123':
  lavc: Drop deprecated emu edge functionality

Merged-by: James Almer <jamrial@gmail.com>
2017-10-23 16:04:31 -03:00
Davinder Singh
4116b2b136 avcodec/mjpegenc: cosmetic changes
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2017-08-11 04:28:52 +02:00
Davinder Singh
1939b90306 avcodec/mjpegenc: disable unused code with AMV
disable unused amv_encode_picture() when AMV encoder is not configured.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2017-08-11 04:28:52 +02:00
James Almer
2cb656ad11 avcodec/mjpegenc: move ff_mjpeg_encode_picture_frame to mjpegenc_common
Fixes compilation of ljpeg encoder if mjpeg and amv encoders are disabled
2017-05-08 11:33:57 -03:00
Rostislav Pehlivanov
45eeb1f785 mjpegenc: enable optimal huffman coding by default
As it gives excellent encoding gains at an insignificant speed increase
and passes fate without problems, it should now be safe to enable by
default.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2017-04-09 00:00:39 +01:00
Michael Niedermayer
3e1507a954 avcodec/mjpegenc: Bypass the 2 pass encoding when optimal tables are not requested
This limits the bugs, speedloss and extra memory allocation to the case when
optimal tables are needed.
Fixes regressions with slice multi-threading

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2017-02-10 00:12:01 +01:00
Michael Niedermayer
f57665b318 avcodec/mjpegenc: Revert some differences in ff_mjpeg_encode_mb() relative to pre optimal huffman
The changes are not needed anymore and the return code was never used

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2017-02-10 00:12:01 +01:00
Michael Niedermayer
daccbe81a2 avcodec/mjpegenc: Drop i_tex misuse, set itex/header bits correctly, fix 2pass encoding
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2017-02-10 00:12:01 +01:00
Michael Niedermayer
e10bd12c25 avcodec/mjpegenc: Remove non functional huffman reallocation and error handling
If this is wanted iam not against it but it must be designed to work with all cases
like slice threads, and a single growing buffer does not work very well with slices.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2017-02-10 00:12:01 +01:00
Rostislav Pehlivanov
a70f0927ea mjpegenc: use s->avctx as a context for av_log rather than NULL
Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2017-02-09 03:01:58 +00:00
Rostislav Pehlivanov
d164ef6589 mjpegenc_common: add missing ff_ prefix to init_uni_ac_vlc
Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2017-02-09 02:56:13 +00:00
Jerry Jiang
884506dfe2 Implement optimal huffman encoding for (M)JPEG.
> seems to break
> make fate-vsynth1-mjpeg-444

Fixed.
2017-02-08 13:59:53 +00:00
Diego Biurrun
0f40c90984 Drop pointless assert.h #includes 2016-05-03 15:45:10 +02:00
Derek Buitenhuis
c4ef6c883b mjpegenc: Remove duplicate initializer
This was causing c99conv to crash.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-02-03 22:14:27 +00:00
Derek Buitenhuis
f3af379b5c Merge commit '2862b63783b5556f7f3fb2d097629bc6879f833a'
* commit '2862b63783b5556f7f3fb2d097629bc6879f833a':
  lavc: Move prediction_method to codec private options

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-02-03 16:49:19 +00:00
Vittorio Giovara
2862b63783 lavc: Move prediction_method to codec private options
This options is only used by huffyuv, ffvhuv, jpegls, mjpeg,
mpegvideoenc, png, utvideo.
It is a very codec-specific options, so deprecate the global variant.
Set proper limits to the maximum allowed values, and update utvideoenc
tests to use the new option name.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2016-01-21 15:33:19 -05:00
Ronald S. Bultje
2fb593dcb9 Put remaining pieces of CODEC_FLAG_EMU_EDGE under FF_API_EMU_EDGE.
The amv one probably looks suspicious, but since it's an intra-only
codec, I couldn't possibly imagine what it would use the edge for,
and the vsynth fate result doesn't change, so it's probably OK.
2015-08-28 14:40:59 -04:00
Michael Niedermayer
444e9874a7 Merge commit 'def97856de6021965db86c25a732d78689bd6bb0'
* commit 'def97856de6021965db86c25a732d78689bd6bb0':
  lavc: AV-prefix all codec capabilities

Conflicts:
	cmdutils.c
	ffmpeg.c
	ffplay.c
	libavcodec/8svx.c
	libavcodec/aacenc.c
	libavcodec/ac3dec.c
	libavcodec/adpcm.c
	libavcodec/alac.c
	libavcodec/atrac3plusdec.c
	libavcodec/bink.c
	libavcodec/dnxhddec.c
	libavcodec/dvdec.c
	libavcodec/dvenc.c
	libavcodec/ffv1dec.c
	libavcodec/ffv1enc.c
	libavcodec/fic.c
	libavcodec/flacdec.c
	libavcodec/flacenc.c
	libavcodec/flvdec.c
	libavcodec/fraps.c
	libavcodec/frwu.c
	libavcodec/gifdec.c
	libavcodec/h261dec.c
	libavcodec/hevc.c
	libavcodec/iff.c
	libavcodec/imc.c
	libavcodec/libopenjpegdec.c
	libavcodec/libvo-aacenc.c
	libavcodec/libvorbisenc.c
	libavcodec/libvpxdec.c
	libavcodec/libvpxenc.c
	libavcodec/libx264.c
	libavcodec/mjpegbdec.c
	libavcodec/mjpegdec.c
	libavcodec/mpegaudiodec_float.c
	libavcodec/msmpeg4dec.c
	libavcodec/mxpegdec.c
	libavcodec/nvenc_h264.c
	libavcodec/nvenc_hevc.c
	libavcodec/pngdec.c
	libavcodec/qpeg.c
	libavcodec/ra288.c
	libavcodec/rv10.c
	libavcodec/s302m.c
	libavcodec/sp5xdec.c
	libavcodec/takdec.c
	libavcodec/tiff.c
	libavcodec/tta.c
	libavcodec/utils.c
	libavcodec/v210dec.c
	libavcodec/vp6.c
	libavcodec/vp9.c
	libavcodec/wavpack.c
	libavcodec/yop.c

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-27 22:50:18 +02:00
Michael Niedermayer
dbf172e6f4 Merge commit 'f1fa1eed2abdc8dfb0af318a43f5d293b81141bd'
* commit 'f1fa1eed2abdc8dfb0af318a43f5d293b81141bd':
  mpegvideo: Expand macro

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-12 21:25:21 +02:00
Michael Niedermayer
a105931d3e Merge commit '4978850ca2cb1ec6908f5bc79cc592ca454d11e8'
* commit '4978850ca2cb1ec6908f5bc79cc592ca454d11e8':
  build: Split JPEG-related tables off into a separate component

Conflicts:
	configure

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-31 01:11:02 +02:00
Diego Biurrun
4978850ca2 build: Split JPEG-related tables off into a separate component 2015-03-30 17:51:21 +02:00
Michael Niedermayer
f8b743b9e6 avcodec/mjpegenc: Mark ff_mjpeg_encode_close() as av_cold
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-02-27 16:53:25 +01:00
Michael Niedermayer
7cac568b39 avcodec/mjpegenc: support trellis quantization
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-02-11 21:52:55 +01:00
Vittorio Giovara
db71c4926d mjpegenc: fix argument size in encode_mb
CC: libav-stable@libav.org
Bug-Id: CID 1047235
2014-11-11 11:41:49 +01:00
Michael Niedermayer
0c6c5d7bcb avcodec/mjpegenc: use av_freep(), avoid leaving stale pointers in memory
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-31 13:36:19 +01:00
Michael Niedermayer
ae6ba2db8f avcodec/mjpegenc: add priv_class to encoders
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-18 19:13:20 +02:00
Michael Niedermayer
b227be34db avcodec/mjpegenc: the AMV encoder doesnt support yuv422
Fixes Ticket3883

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-14 17:09:38 +02:00
Michael Niedermayer
c1df467d73 Merge commit '835f798c7d20bca89eb4f3593846251ad0d84e4b'
* commit '835f798c7d20bca89eb4f3593846251ad0d84e4b':
  mpegvideo: cosmetics: Lowercase ugly uppercase MPV_ function name prefixes

Conflicts:
	libavcodec/h261dec.c
	libavcodec/intrax8.c
	libavcodec/mjpegenc.c
	libavcodec/mpeg12dec.c
	libavcodec/mpeg12enc.c
	libavcodec/mpeg4videoenc.c
	libavcodec/mpegvideo.c
	libavcodec/mpegvideo.h
	libavcodec/mpegvideo_enc.c
	libavcodec/rv10.c
	libavcodec/x86/mpegvideoenc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-15 20:11:56 +02:00
Diego Biurrun
835f798c7d mpegvideo: cosmetics: Lowercase ugly uppercase MPV_ function name prefixes 2014-08-15 01:26:33 -07:00
Nidhi Makhijani
c3ec963d0d mjpeg: return proper error code
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2014-07-21 01:25:33 -07:00
Michael Niedermayer
909f53f2b2 Merge commit 'adcb8392c9b185fd8a91a95fa256d15ab1432a30'
* commit 'adcb8392c9b185fd8a91a95fa256d15ab1432a30':
  mjpeg: Split off bits shared by MJPEG and LJPEG encoders

Conflicts:
	libavcodec/mjpegenc.c
	libavcodec/mjpegenc.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-01 13:33:11 +02:00
Diego Biurrun
adcb8392c9 mjpeg: Split off bits shared by MJPEG and LJPEG encoders
This obviates a dependency of the LJPEG encoder on mpegvideo.
2014-06-30 07:53:40 -07:00
Michael Niedermayer
d41a4a765b avcodec/mjpegenc: allow encoding amv with height % 16 != 0 when strict -1 is set
This should make it simpler for users to test if such videos work

Suggested-by: carl
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-01 20:04:54 +02:00
Reimar Döffinger
6d695d7acc Fix nonsense non-mod16 AMV flipping code.
It is obviously nonsense since it produces wrong results
or even crashes (crashes should be encode-only though).
Fixes trac issue #1092.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-01 19:47:07 +02:00
Michael Niedermayer
181b2c3724 avcodec/mjpegenc: disallow encoding amv with height%16!=0
I do not know on which side to place the padding to encode with 16x16 MBs
If someone knows or has a known to be correct sample, please contact me

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-01 04:00:47 +02:00
Michael Niedermayer
256f530603 avcodec/mjpegen: Fix declared argument size
Fixes part of Ticket3466
Found-by: Andrey_Karpov / PVS-Studio
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-16 02:14:14 +02:00
Michael Niedermayer
a26e9c1040 avcodec/mjpegenc: Use av_frame_clone() instead of av_frame_ref()
This avoids the need for double error checking
Fixes CID1163843

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-24 03:24:55 +01:00
Michael Niedermayer
7dc0aba3fb avcodec/mjpegenc: use a seperate chroma matrix when luma and chroma differ
drop hardcoded TWOMATRIX code

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-11 21:45:41 +01:00
Michael Niedermayer
859d74040e avcodec/mjpegenc: pass chroma quantization matrix through as well, not just luma
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-11 21:26:51 +01:00
Nicolas George
2ebaadf35c lavc/mjpegenc: use proper error codes. 2013-12-30 10:58:02 +01:00
Nicolas George
19a2d101ac lavc/mjpegenc: check av_frame_alloc() failure. 2013-12-30 10:58:02 +01:00
Michael Niedermayer
5b3f4b3ef5 avcodec/mjpegenc: drop dependancy on sizeof(AVFrame)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-17 16:32:09 +01:00
Michael Niedermayer
2b215f3939 mjpeg/ljpegenc: factor ff_mjpeg_init_hvsample() out
This reduces the amount of duplicated code

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-06 14:31:23 +01:00
Michael Niedermayer
9a0d719b10 avcodec/mjpegenc/ff_mjpeg_escape_FF: remove unused variable
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-06 14:19:11 +01:00
Michael Niedermayer
fb98ca575d Merge commit 'daffed3b173c59d64907747bf3309e98a8974f4e'
* commit 'daffed3b173c59d64907747bf3309e98a8974f4e':
  ljpegenc: accept bgr24 instead of bgra

Conflicts:
	libavcodec/ljpegenc.c
	libavcodec/mjpegenc.c

Only whitespace merged, we continue to support both formats

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-06 13:48:20 +01:00
Michael Niedermayer
0ebdf8d9ec avcodec/mjpegenc: fix and use lossless flag in ff_mjpeg_encode_picture_header()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-06 13:31:14 +01:00
Michael Niedermayer
93947d88f2 Merge commit '24abd806ea0cfb0d988d2f0044eac79cff12918c'
* commit '24abd806ea0cfb0d988d2f0044eac79cff12918c':
  ljpegenc: deMpegEncContextize

Conflicts:
	libavcodec/ljpegenc.c
	libavcodec/mpegvideo.h
	libavcodec/mpegvideo_enc.c
	tests/ref/vsynth/vsynth1-ljpeg
	tests/ref/vsynth/vsynth2-ljpeg

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-06 13:30:23 +01:00