Andreas Rheinhardt
6770057ac9
avcodec/dvenc: Fix undefined left shift of negative numbers
...
The earlier code was based on the assumption that AVFrame.linesize can
not be negative.
Fixes ticket #8280 .
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
2020-10-04 23:36:50 +02: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
Baptiste Coudurier
a1403032c8
avcodec/dvenc: support encoding dvcprohd
2019-11-13 09:08:43 -08:00
Michael Niedermayer
abaeeb3ce0
avcodec/dvenc: Change quantizer dead zone default to 7
...
This improves the quality and reduces the "blocking" in flat areas
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2017-08-08 19:39:21 +02:00
Michael Niedermayer
fea7bc9e7b
avcodec/dvenc: Support adjusting the quantizer deadzone
...
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2017-08-08 19:39:10 +02:00
Clément Bœsch
e07fa3008b
Merge commit 'de452e503734ebb0fdbce86e9d16693b3530fad3'
...
* commit 'de452e503734ebb0fdbce86e9d16693b3530fad3':
pixblockdsp: Change type of stride parameters to ptrdiff_t
Merged-by: Clément Bœsch <u@pkh.me>
2017-03-20 15:58:32 +01:00
Diego Biurrun
de452e5037
pixblockdsp: Change type of stride parameters to ptrdiff_t
...
This avoids SIMD-optimized functions having to sign-extend their
line size argument manually to be able to do pointer arithmetic.
Also adjust parameter names to be "stride" everywhere.
2016-09-14 14:12:36 +02:00
Clément Bœsch
9b35242370
Merge commit 'b7f98659f21dce438c33b512e25fd64b8d07c347'
...
* commit 'b7f98659f21dce438c33b512e25fd64b8d07c347':
Remove unnecessary get_bits.h #includes
Merged-by: Clément Bœsch <clement@stupeflix.com>
2016-06-29 11:16:01 +02:00
Diego Biurrun
b7f98659f2
Remove unnecessary get_bits.h #includes
2016-06-07 13:09:57 +02: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
94d68a41fa
Merge commit '7c6eb0a1b7bf1aac7f033a7ec6d8cacc3b5c2615'
...
* commit '7c6eb0a1b7bf1aac7f033a7ec6d8cacc3b5c2615':
lavc: AV-prefix all codec flags
Conflicts:
doc/examples/muxing.c
ffmpeg.c
ffmpeg_opt.c
ffplay.c
libavcodec/aacdec.c
libavcodec/aacenc.c
libavcodec/ac3dec.c
libavcodec/ac3enc_float.c
libavcodec/atrac1.c
libavcodec/atrac3.c
libavcodec/atrac3plusdec.c
libavcodec/dcadec.c
libavcodec/ffv1enc.c
libavcodec/h264.c
libavcodec/h264_loopfilter.c
libavcodec/h264_mb.c
libavcodec/imc.c
libavcodec/libmp3lame.c
libavcodec/libtheoraenc.c
libavcodec/libtwolame.c
libavcodec/libvpxenc.c
libavcodec/libxavs.c
libavcodec/libxvid.c
libavcodec/mpeg12dec.c
libavcodec/mpeg12enc.c
libavcodec/mpegaudiodec_template.c
libavcodec/mpegvideo.c
libavcodec/mpegvideo_enc.c
libavcodec/mpegvideo_motion.c
libavcodec/nellymoserdec.c
libavcodec/nellymoserenc.c
libavcodec/nvenc.c
libavcodec/on2avc.c
libavcodec/options_table.h
libavcodec/opus_celt.c
libavcodec/pngenc.c
libavcodec/ra288.c
libavcodec/ratecontrol.c
libavcodec/twinvq.c
libavcodec/vc1_block.c
libavcodec/vc1_loopfilter.c
libavcodec/vc1_mc.c
libavcodec/vc1dec.c
libavcodec/vorbisdec.c
libavcodec/vp3.c
libavcodec/wma.c
libavcodec/wmaprodec.c
libavcodec/x86/hpeldsp_init.c
libavcodec/x86/me_cmp_init.c
Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-27 22:10:35 +02:00
Vittorio Giovara
def97856de
lavc: AV-prefix all codec capabilities
...
Express bitfields more simply.
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-07-27 15:24:58 +01:00
Vittorio Giovara
7c6eb0a1b7
lavc: AV-prefix all codec flags
...
Convert doxygen to multiline and express bitfields more simply.
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-07-27 15:24:58 +01:00
Michael Niedermayer
e36db49b7b
avcodec: Add a min size parameter to ff_alloc_packet2()
...
This parameter can be used to inform the allocation code about how much
downsizing might occur, and can be used to optimize how to allocate the
packet
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-27 19:57:52 +02:00
Michael Niedermayer
495eee0123
Merge commit '40cf1bbacc6220a0aa6bed5c331871d43f9ce370'
...
* commit '40cf1bbacc6220a0aa6bed5c331871d43f9ce370':
Deprecate avctx.coded_frame
Conflicts:
ffmpeg.c
libavcodec/a64multienc.c
libavcodec/asvenc.c
libavcodec/cljrenc.c
libavcodec/dpxenc.c
libavcodec/gif.c
libavcodec/mpegvideo_enc.c
libavcodec/nvenc.c
libavcodec/proresenc_kostya.c
libavcodec/pthread_frame.c
libavcodec/rawenc.c
libavcodec/sunrastenc.c
libavcodec/tiffenc.c
libavcodec/version.h
libavcodec/xbmenc.c
libavcodec/xwdenc.c
libavdevice/v4l2.c
Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-21 01:17:15 +02:00
Michael Niedermayer
b1fad7ac20
Merge commit 'd6604b29ef544793479d7fb4e05ef6622bb3e534'
...
* commit 'd6604b29ef544793479d7fb4e05ef6622bb3e534':
Gather all coded_frame allocations and free functions to a single place
Conflicts:
libavcodec/a64multienc.c
libavcodec/asvenc.c
libavcodec/cljrenc.c
libavcodec/dpxenc.c
libavcodec/dvenc.c
libavcodec/gif.c
libavcodec/huffyuvenc.c
libavcodec/jpeglsenc.c
libavcodec/libopenjpegenc.c
libavcodec/libtheoraenc.c
libavcodec/libvpxenc.c
libavcodec/mpegvideo_enc.c
libavcodec/nvenc.c
libavcodec/pngenc.c
libavcodec/proresenc_kostya.c
libavcodec/sunrastenc.c
libavcodec/tiffenc.c
libavcodec/utils.c
libavcodec/utvideoenc.c
libavcodec/v210enc.c
libavcodec/v410enc.c
libavcodec/xbmenc.c
Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-20 23:43:05 +02:00
Vittorio Giovara
40cf1bbacc
Deprecate avctx.coded_frame
...
The rationale is that coded_frame was only used to communicate key_frame,
pict_type and quality to the caller, as well as a few other random fields,
in a non predictable, let alone consistent way.
There was agreement that there was no use case for coded_frame, as it is
a full-sized AVFrame container used for just 2-3 int-sized properties,
which shouldn't even belong into the AVCodecContext in the first place.
The appropriate AVPacket flag can be used instead of key_frame, while
quality is exported with the new AVPacketSideData quality factor.
There is no replacement for the other fields as they were unreliable,
mishandled or just not used at all.
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-07-20 15:06:50 +01:00
Vittorio Giovara
d6604b29ef
Gather all coded_frame allocations and free functions to a single place
...
Allocating coded_frame is what most encoders do anyway, so it makes
sense to always allocate and free it in a single place. Moreover a lot
of encoders freed the frame with av_freep() instead of the correct API
av_frame_free().
This bring uniformity to encoder behaviour and prevents applications
from erroneusly accessing this field when not allocated. Additionally
this helps isolating encoders that export information with coded_frame,
and heavily simplifies its deprecation.
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-07-20 14:16:15 +01:00
James Almer
ba625dd8a1
avcodec: use av_mod_uintp2() where useful
...
Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: James Almer <jamrial@gmail.com>
2015-04-21 22:41:20 -03:00
Christophe Gisquet
cb335b3af2
dvenc: fix 2x4x8 (interlaced) weight table
...
Since the decoder has been fixed to output something similar to
other implementations, the encoder weight table needed this fix.
Reference PSNR values on a progressive sequence (from tiny_psnr)
from a chained encoding and decoding:
Full progressive: stddev: 0.74 PSNR: 50.69 MAXDIFF: 19
Before: stddev: 1.43 PSNR: 44.97 MAXDIFF: 17
This patch: stddev: 0.76 PSNR: 50.44 MAXDIFF: 14
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-02-01 02:01:55 +01:00
Steve Jiekak
a32c3c2392
replaced av_dv_codec_profile by av_dv_codec_profile2 in encoder and dv muxers
...
Signed-off-by: Steve Jiekak <devaureshy@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-12-04 20:24:00 +01:00
Christophe Gisquet
beb944786e
dvenc: mark encoder as intra
...
And thus allow various multithreading.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-28 12:48:58 +01:00
Michael Niedermayer
96b069450c
Merge commit 'ee0ebd3c1412fdd9d80aa97c98d1a20b893f1f47'
...
* commit 'ee0ebd3c1412fdd9d80aa97c98d1a20b893f1f47':
dv: K&R formatting cosmetics
Conflicts:
libavcodec/dv.c
libavcodec/dv.h
libavcodec/dv_profile.c
libavcodec/dvdec.c
libavcodec/dvenc.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-09 19:30:55 +02:00
Gabriel Dume
ee0ebd3c14
dv: K&R formatting cosmetics
...
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2014-09-09 05:30:28 -07:00
Michael Niedermayer
b7f8d3de2c
Merge commit '7835c24e19d9e1cb43fba5a02ce9d81d518f1300'
...
* commit '7835c24e19d9e1cb43fba5a02ce9d81d518f1300':
dv: Update DV-profile-related functions to current public API
Conflicts:
libavcodec/dvdec.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-03 18:29:38 +02:00
Diego Biurrun
7835c24e19
dv: Update DV-profile-related functions to current public API
2014-08-02 12:54:37 -07:00
Michael Niedermayer
c527c14d63
avcodec/dvenc: clear all dsp contexts
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-18 00:48:34 +02:00
Michael Niedermayer
3a2d1465c8
Merge commit '2d60444331fca1910510038dd3817bea885c2367'
...
* commit '2d60444331fca1910510038dd3817bea885c2367':
dsputil: Split motion estimation compare bits off into their own context
Conflicts:
configure
libavcodec/Makefile
libavcodec/arm/Makefile
libavcodec/dvenc.c
libavcodec/error_resilience.c
libavcodec/h264.h
libavcodec/h264_slice.c
libavcodec/me_cmp.c
libavcodec/me_cmp.h
libavcodec/motion_est.c
libavcodec/motion_est_template.c
libavcodec/mpeg4videoenc.c
libavcodec/mpegvideo.c
libavcodec/mpegvideo_enc.c
libavcodec/x86/Makefile
libavcodec/x86/me_cmp_init.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-17 23:27:40 +02:00
Diego Biurrun
2d60444331
dsputil: Split motion estimation compare bits off into their own context
2014-07-17 09:07:10 -07:00
Michael Niedermayer
2d5e9451de
Merge commit 'f46bb608d9d76c543e4929dc8cffe36b84bd789e'
...
* commit 'f46bb608d9d76c543e4929dc8cffe36b84bd789e':
dsputil: Split off pixel block routines into their own context
Conflicts:
configure
libavcodec/dsputil.c
libavcodec/mpegvideo_enc.c
libavcodec/pixblockdsp_template.c
libavcodec/x86/dsputilenc.asm
libavcodec/x86/dsputilenc_mmx.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-10 01:22:14 +02:00
Michael Niedermayer
1b58f13761
Merge commit 'f6ee61fb05482c617f5deee29a190d8ff483b3d1'
...
* commit 'f6ee61fb05482c617f5deee29a190d8ff483b3d1':
lavc: export DV profile API used by muxer/demuxer as public
Conflicts:
configure
doc/APIchanges
libavcodec/Makefile
libavcodec/dv_profile.c
libavcodec/dv_profile.h
libavcodec/version.h
libavformat/dvenc.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-09 22:27:07 +02:00
Diego Biurrun
f46bb608d9
dsputil: Split off pixel block routines into their own context
2014-07-09 08:05:26 -07:00
Anton Khirnov
f6ee61fb05
lavc: export DV profile API used by muxer/demuxer as public
2014-07-09 13:35:07 +00:00
Michael Niedermayer
14e2406de7
Merge commit 'a9aee08d900f686e966c64afec5d88a7d9d130a3'
...
* commit 'a9aee08d900f686e966c64afec5d88a7d9d130a3':
dsputil: Split off FDCT bits into their own context
Conflicts:
configure
libavcodec/Makefile
libavcodec/asvenc.c
libavcodec/dnxhdenc.c
libavcodec/dsputil.c
libavcodec/mpegvideo.h
libavcodec/mpegvideo_enc.c
libavcodec/x86/Makefile
libavcodec/x86/dsputilenc_mmx.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-08 03:19:06 +02:00
Diego Biurrun
a9aee08d90
dsputil: Split off FDCT bits into their own context
2014-07-07 12:28:45 -07:00
Michael Niedermayer
3ac5114530
Merge commit 'e63b818dbe6060b606ae10eb184859f8b97d2353'
...
* commit 'e63b818dbe6060b606ae10eb184859f8b97d2353':
dv: Properly split decoder and encoder initialization
Conflicts:
libavcodec/dv.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-27 19:13:34 +02:00
Diego Biurrun
e63b818dbe
dv: Properly split decoder and encoder initialization
2014-06-27 05:03:06 -07:00
Michael Niedermayer
b0fdc76600
Merge commit '650dee63c8b1e6693c6cf5983f4a5ed3f571379f'
...
* commit '650dee63c8b1e6693c6cf5983f4a5ed3f571379f':
dv: get rid of global non-const tables
Conflicts:
libavcodec/dv_profile.h
libavcodec/dvdec.c
libavcodec/dvenc.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-20 18:00:42 +02:00
Michael Niedermayer
c2b1225c16
Merge commit '778111592bf5f38630858ee6dfcfd097cd6c6da9'
...
* commit '778111592bf5f38630858ee6dfcfd097cd6c6da9':
dvenc: initialize the profile only once, at init
Conflicts:
libavcodec/dvenc.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-20 17:15:39 +02:00
Anton Khirnov
650dee63c8
dv: get rid of global non-const tables
...
Instead, store them in the context and compute on each parameter change.
2014-06-20 14:15:31 +02:00
Anton Khirnov
778111592b
dvenc: initialize the profile only once, at init
...
We do not allow the frame parameters to change during encoding, so there
is no need to do this for each frame.
2014-06-20 14:15:16 +02:00
Michael Niedermayer
47fc82b5b3
Merge remote-tracking branch 'qatar/master'
...
* qatar/master:
dsputil: Move DV-specific ff_zigzag248_direct table to dvdata
Conflicts:
libavcodec/dv.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-05 19:43:28 +02:00
Diego Biurrun
5f92204370
dsputil: Move DV-specific ff_zigzag248_direct table to dvdata
2014-04-04 19:08:05 +02:00
Michael Niedermayer
add54280bf
Merge commit '984e3398662d460e15904f9e4a6df9ef759070cb'
...
* commit '984e3398662d460e15904f9e4a6df9ef759070cb':
avcodec: Consistently name encoder init functions foo_encode_init
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-20 15:27:03 +01:00
Diego Biurrun
984e339866
avcodec: Consistently name encoder init functions foo_encode_init
2014-02-20 04:16:15 -08:00
Michael Niedermayer
94a849b8b6
Merge commit 'd4f1188d1a662fed5347e70016da49e01563e8a8'
...
* commit 'd4f1188d1a662fed5347e70016da49e01563e8a8':
dv: use AVFrame API properly
Conflicts:
libavcodec/dvdec.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-09 20:10:15 +01:00
Anton Khirnov
d4f1188d1a
dv: use AVFrame API properly
2013-12-09 09:10:14 +01:00
Michael Niedermayer
830be99ae1
Merge remote-tracking branch 'qatar/master'
...
* qatar/master:
dv: Split off DV video encoder into its own file
Conflicts:
libavcodec/dv.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-02 23:04:05 +01:00
Diego Biurrun
97d19c2fec
dv: Split off DV video encoder into its own file
2013-12-02 13:13:09 +01:00