Commit Graph
305 Commits
Author SHA1 Message Date
James Almer 0bf3a7361d avutil: remove deprecated AVClass.child_class_next
Signed-off-by: James Almer <jamrial@gmail.com>
2021-04-27 11:48:04 -03:00
Andreas RheinhardtandJames Almer bc9dca5c95 avcodec/options: Remove deprecated avcodec_copy_context
Deprecated in 5f30ac2779.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2021-04-27 10:43:04 -03:00
Andreas RheinhardtandJames Almer ff8f9fcbe5 avcodec: Remove deprecated avcodec_get_context_defaults3
Deprecated in 04fc8e24a0.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2021-04-27 10:43:04 -03:00
Andreas Rheinhardt 9b6ffcf0fd avcodec/options: Remove always-true check
Every codec has a name.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-04-05 18:36:51 +02:00
Andreas Rheinhardt f21b47f38c avcodec/options: Reindent after previous commit
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
2021-03-20 02:56:31 +01:00
Andreas Rheinhardt 784c3c0d85 avcodec/options: Remove always-true check
Added in dc51a72ba4, yet even back then
the check was always true as the AVCodecContext has already been memset
to zero before that.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
2021-03-20 02:45:17 +01:00
James Almer 6e7e3a3820 avcodec: add a get_encode_buffer() callback to AVCodecContext
This callback is functionally the same as get_buffer2() is for decoders, and
implements for the new encode API the functionality of the old encode API had
where the user could provide their own buffers.

Reviewed-by: Lynne <dev@lynne.ee>
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Reviewed-by: Mark Thompson <sw@jkqxz.net>
Signed-off-by: James Almer <jamrial@gmail.com>
2021-03-12 19:49:08 -03:00
James Almer dd9227e48f avcodec/options: deprecate avcodec_get_frame_class()
AVFrame hasn't been a struct defined in libavcodec for a decade now, when
it was moved to libavutil.

Found-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2021-02-27 11:23:42 -03:00
James Almer 7addddd49e Revert "avcodec/options: add missing FF_API_COPY_CONTEXT checks"
This reverts commit 0191f2d29c.

These functions were never deprecated. The merge from commit 6988cf2969
included them by mistake.

Found-by: mkver
Signed-off-by: James Almer <jamrial@gmail.com>
2021-02-25 17:34:44 -03:00
James Almer 0191f2d29c avcodec/options: add missing FF_API_COPY_CONTEXT checks
Signed-off-by: James Almer <jamrial@gmail.com>
2020-10-01 22:43:03 -03:00
Anton Khirnov 851e0dfe29 AVCodecContext: switch to child_class_iterate() 2020-06-10 12:36:44 +02:00
Josh de Kock bd2e7b74e1 lavc: stop using deprecated av_codec_next()
Signed-off-by: Josh de Kock <josh@itanimul.li>
2020-04-20 15:08:20 +00:00
James Almer 3f31726994 avcodec/options: remove dead test code
It's been unused since 5d48e4eafa.

Signed-off-by: James Almer <jamrial@gmail.com>
2019-05-17 12:48:24 -03:00
Derek Buitenhuis 500a9bb5ba lavc/options: Remove unneeded header
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2018-01-03 13:00:06 -05:00
James Almer cac8de2da5 avcodec/options: do a more thorough clean up in avcodec_copy_context()
Free coded_frame, coded_side_data and unref hw_device_ctx to prevent
potential leaks.

Reviewed-by: Aaron Levinson <alevinsn@aracnet.com>
Tested-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: James Almer <jamrial@gmail.com>
2017-04-30 23:18:05 -03:00
James Almer 54a4c9b4e9 avcodec/options: factorize avcodec_copy_context() cleanup code
Reviewed-by: Aaron Levinson <alevinsn@aracnet.com>
Tested-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: James Almer <jamrial@gmail.com>
2017-04-30 23:18:04 -03:00
Clément Bœsch 8d2d817098 Merge commit 'd59641abfd25a1007bdf4723d952887b1e3619c6'
* commit 'd59641abfd25a1007bdf4723d952887b1e3619c6':
  lavc: initialize AVCodecContext.sw_pix_fmt properly

Merged-by: Clément Bœsch <u@pkh.me>
2017-03-12 13:20:57 +01:00
Anton Khirnov d59641abfd lavc: initialize AVCodecContext.sw_pix_fmt properly
Currently it's memset to 0, which is YUV420P. It should be initialized
to none.
2016-07-22 19:08:13 +02:00
Hendrik Leppkes 2c1d0f871f Merge commit '24b5cff01bbac4e08acfd6d19c499e880988f520'
* commit '24b5cff01bbac4e08acfd6d19c499e880988f520':
  lavc: handle hw_frames_ctx where necessary

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2016-06-26 15:20:43 +02:00
Hendrik Leppkes 69c38d64d7 Merge commit '04fc8e24a091ed1d77d7a3c0cbcfe60baec19a9f'
* commit '04fc8e24a091ed1d77d7a3c0cbcfe60baec19a9f':
  lavc: deprecate avcodec_get_context_defaults3()

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2016-06-26 14:34:53 +02:00
Hendrik Leppkes 6988cf2969 Merge commit '5f30ac27795f9f98043e8582ccaad8813104adc4'
* commit '5f30ac27795f9f98043e8582ccaad8813104adc4':
  lavc: deprecate avcodec_copy_context()

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2016-06-26 14:34:02 +02:00
Andrey TurkinandAnton Khirnov 24b5cff01b lavc: handle hw_frames_ctx where necessary
avcodec_copy_context() didn't handle hw_frames_ctx references correctly
which could cause crashes.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2016-05-26 15:40:05 +02:00
Anton Khirnov 04fc8e24a0 lavc: deprecate avcodec_get_context_defaults3()
This function is supposed to "reset" a codec context to a clean state so
that it can be opened again. The only reason it exists is to allow using
AVStream.codec as a decoding context (after it was already
opened/used/closed by avformat_find_stream_info()). Since that behaviour
is now deprecated, there is no reason for this function to exist
anymore.
2016-05-23 06:46:17 +02:00
Anton Khirnov 5f30ac2779 lavc: deprecate avcodec_copy_context()
Since AVCodecContext contains a lot of complex state, copying a codec
context is not a well-defined operation. The purpose for which it is
typically used (which is well-defined) is copying the stream parameters
from one codec context to another. That is now possible with through the
AVCodecParameters API. Therefore, there is no reason for
avcodec_copy_context() to exist.
2016-05-23 06:46:17 +02:00
Michael Niedermayer 845fb3d4a5 avcodec/options: Make dummy_v?_encoder static
It does not need to be non static

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-30 12:02:07 +02:00
Michael Niedermayer a368920eef avcodec/options: Silence deprecated warning about coded_frame
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-06 12:39:37 +02:00
Michael Niedermayer 29d147c94d Merge commit '059a934806d61f7af9ab3fd9f74994b838ea5eba'
* commit '059a934806d61f7af9ab3fd9f74994b838ea5eba':
  lavc: Consistently prefix input buffer defines

Conflicts:
	doc/examples/decoding_encoding.c
	libavcodec/4xm.c
	libavcodec/aac_adtstoasc_bsf.c
	libavcodec/aacdec.c
	libavcodec/aacenc.c
	libavcodec/ac3dec.h
	libavcodec/asvenc.c
	libavcodec/avcodec.h
	libavcodec/avpacket.c
	libavcodec/dvdec.c
	libavcodec/ffv1enc.c
	libavcodec/g2meet.c
	libavcodec/gif.c
	libavcodec/h264.c
	libavcodec/h264_mp4toannexb_bsf.c
	libavcodec/huffyuvdec.c
	libavcodec/huffyuvenc.c
	libavcodec/jpeglsenc.c
	libavcodec/libxvid.c
	libavcodec/mdec.c
	libavcodec/motionpixels.c
	libavcodec/mpeg4videodec.c
	libavcodec/mpegvideo.c
	libavcodec/noise_bsf.c
	libavcodec/nuv.c
	libavcodec/nvenc.c
	libavcodec/options.c
	libavcodec/parser.c
	libavcodec/pngenc.c
	libavcodec/proresenc_kostya.c
	libavcodec/qsvdec.c
	libavcodec/svq1enc.c
	libavcodec/tiffenc.c
	libavcodec/truemotion2.c
	libavcodec/utils.c
	libavcodec/utvideoenc.c
	libavcodec/vc1dec.c
	libavcodec/wmalosslessdec.c
	libavformat/adxdec.c
	libavformat/aiffdec.c
	libavformat/apc.c
	libavformat/apetag.c
	libavformat/avidec.c
	libavformat/bink.c
	libavformat/cafdec.c
	libavformat/flvdec.c
	libavformat/id3v2.c
	libavformat/isom.c
	libavformat/matroskadec.c
	libavformat/mov.c
	libavformat/mpc.c
	libavformat/mpc8.c
	libavformat/mpegts.c
	libavformat/mvi.c
	libavformat/mxfdec.c
	libavformat/mxg.c
	libavformat/nutdec.c
	libavformat/oggdec.c
	libavformat/oggparsecelt.c
	libavformat/oggparseflac.c
	libavformat/oggparseopus.c
	libavformat/oggparsespeex.c
	libavformat/omadec.c
	libavformat/rawdec.c
	libavformat/riffdec.c
	libavformat/rl2.c
	libavformat/rmdec.c
	libavformat/rtpdec_latm.c
	libavformat/rtpdec_mpeg4.c
	libavformat/rtpdec_qdm2.c
	libavformat/rtpdec_svq3.c
	libavformat/sierravmd.c
	libavformat/smacker.c
	libavformat/smush.c
	libavformat/spdifenc.c
	libavformat/takdec.c
	libavformat/tta.c
	libavformat/utils.c
	libavformat/vqf.c
	libavformat/westwood_vqa.c
	libavformat/xmv.c
	libavformat/xwma.c
	libavformat/yop.c

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-27 23:15:19 +02:00
Vittorio Giovara 059a934806 lavc: Consistently prefix input buffer defines
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-07-27 15:24:59 +01:00
James Almer 3e46c7dbbe avcodec/options-test: don't alloc avctx->coded_frame
It's done automatically by avcodec_open2() now.
Fixes memleaks in fate-libavcodec-options.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: James Almer <jamrial@gmail.com>
2015-07-21 13:03:25 -03:00
Vittorio GiovaraandLuca Barbato f046c3b5ac lavc: Move deprecation warning disabling to files including the table
Unbreak build from 7a5902c556.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-07-03 21:02:50 +02:00
Michael Niedermayer 3b03186d56 Merge commit 'f046c3b5ac36848cce824b008e0347c621523041'
* commit 'f046c3b5ac36848cce824b008e0347c621523041':
  lavc: Move deprecation warning disabling to files including the table
  lavc: Disable deprectation warnings coming from options table

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-03 21:40:47 +02:00
Lukasz Marek 72732307d9 lavc/options: add test for avcodec_copy_context
This test doesn't cover every possible issue with this function.
It covers options management only.

Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2014-12-08 23:14:29 +01:00
Lukasz Marek 8616c5b75a lavc/options: fix leaks in avcodec_copy_context
Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2014-12-06 01:01:15 +01:00
Lukasz Marek 53b2809f2c lavc/options: don't copy priv context when it is not AVOption object
This prevents potential crash when opt API is used without a class.

Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2014-12-06 00:05:18 +01:00
Lukasz Marek 345cfd04d0 lavc/options: fix leaks in avcodec_free_context
Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2014-11-26 23:32:33 +01:00
Lukasz Marek 7d75a399a4 lavc/options: fix rc_eq leak
rc_eq is an option, so it is copied by av_opt_copy(dest, src); above.
2014-11-21 01:19:53 +01:00
Vadim KalinskyandMichael Niedermayer d1d3904273 avcodec/options: Set AVCodecContext->codec upon initialization.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-18 18:46:30 +01:00
Lukasz Marek 01974a58df lavc/options: initialize pkt_timebase
It's default in option_table.h is 0, but without this fix it is represented as 0/0.

Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2014-11-16 01:13:38 +01:00
Lukasz Marek 4a30277a59 lavc/options: set timecode_frame_start to -1 as option default
Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2014-11-16 01:13:38 +01:00
Lukasz Marek db2caf0a80 lavc/options: fix shallow copy context
avcodec_copy_context leaves shallow copy of string/binary/dict options.
Double free/accessing freed memory may occur.

Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2014-11-09 17:56:08 +01:00
Michael Niedermayer ec8f56efad Merge commit 'a75c2eb25a62105c09b48521aef429dc8a231637'
* commit 'a75c2eb25a62105c09b48521aef429dc8a231637':
  lavc: make rc_eq into private options of mpegvideo encoders

Conflicts:
	libavcodec/options_table.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-18 14:06:15 +02:00
Anton Khirnov a75c2eb25a lavc: make rc_eq into private options of mpegvideo encoders 2014-10-18 05:23:51 +02:00
Michael Niedermayer 17085a0251 Merge commit '7ea1b3472a61de4aa4d41b571e99418e4997ad41'
* commit '7ea1b3472a61de4aa4d41b571e99418e4997ad41':
  lavc: deprecate the use of AVCodecContext.time_base for decoding

Conflicts:
	libavcodec/avcodec.h
	libavcodec/h264.c
	libavcodec/mpegvideo_parser.c
	libavcodec/utils.c
	libavcodec/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-15 15:49:31 +02:00
Anton Khirnov 7ea1b3472a lavc: deprecate the use of AVCodecContext.time_base for decoding
When decoding, this field holds the inverse of the framerate that can be
written in the headers for some codecs. Using a field called 'time_base'
for this is very misleading, as there are no timestamps associated with
it. Furthermore, this field is used for a very different purpose during
encoding.

Add a new field, called 'framerate', to replace the use of time_base for
decoding.
2014-10-15 06:37:43 +00:00
Michael Niedermayer fb33bff990 Merge commit 'f929ab0569ff31ed5a59b0b0adb7ce09df3fca39'
* commit 'f929ab0569ff31ed5a59b0b0adb7ce09df3fca39':
  cosmetics: Write NULL pointer equality checks more compactly

Conflicts:
	cmdutils.c
	ffmpeg_opt.c
	ffplay.c
	libavcodec/dvbsub.c
	libavcodec/dvdsubdec.c
	libavcodec/dvdsubenc.c
	libavcodec/dxa.c
	libavcodec/libxvid_rc.c
	libavcodec/mpegvideo.c
	libavcodec/mpegvideo_enc.c
	libavcodec/rv10.c
	libavcodec/tiffenc.c
	libavcodec/utils.c
	libavcodec/vc1dec.c
	libavcodec/zmbv.c
	libavdevice/v4l2.c
	libavformat/matroskadec.c
	libavformat/movenc.c
	libavformat/sdp.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-15 21:00:50 +02:00
Gabriel DumeandDiego Biurrun f929ab0569 cosmetics: Write NULL pointer equality checks more compactly
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2014-08-15 03:18:18 -07:00
Michael Niedermayer 8b686c886c avcodec/options: use av_opt_copy() in avcodec_copy_context() to copy priv_data
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-01 20:50:08 +02:00
Michael Niedermayer e0d0745560 avcodec/options: leave priv_data in avcodec_copy_context() intact
previously it was freed but the pointer not cleared

Found-by: ruggles
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-30 21:24:55 +02:00
Michael Niedermayer 68c05185e2 Merge commit 'fd056029f45a9f6d213d9fce8165632042511d4f'
* commit 'fd056029f45a9f6d213d9fce8165632042511d4f':
  lavc: add avcodec_free_context().

Conflicts:
	doc/APIchanges
	libavcodec/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-18 13:00:50 +02:00
Anton Khirnov fd056029f4 lavc: add avcodec_free_context().
Right now, the caller has to manually manage some allocated
AVCodecContext fields, like extradata or subtitle_header. This is
fragile and prone to leaks, especially if we want to add more such
fields in the future.

The only reason for this behaviour is so that the AVStream codec context
can be reused for decoding. Such reuse is discouraged anyway, so this
commit is the first step to deprecating it.
2014-05-18 10:17:41 +02:00