1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2025-03-23 04:24:35 +02:00

346 Commits

Author SHA1 Message Date
Anton Khirnov
e3838b856f lavc: add API for exporting reconstructed frames from encoders 2022-08-02 10:46:11 +02:00
Niklas Haas
e1a0f2df3d avcodec: add API for automatic handling of icc profiles
This functionally already exists, but as pointed out in  and ,
requiring users to manually include filters is clumsy, error-prone and
hard to use together with tools like ffplay.

To streamline ICC profile support, add a new AVCodecContext flag to
globally enable reading and writing ICC profiles, automatically, for all
appropriate media types.

Note that this commit only includes the new API. The implementation is
split off to separate commits for readability.

Signed-off-by: Niklas Haas <git@haasn.dev>
2022-07-30 11:42:06 +02:00
Martin Storsjö
a78f136f3f configure: Use a separate config_components.h header for $ALL_COMPONENTS
This avoids unnecessary rebuilds of most source files if only the
list of enabled components has changed, but not the other properties
of the build, set in config.h.

Signed-off-by: Martin Storsjö <martin@martin.st>
2022-03-16 14:12:49 +02:00
Martin Storsjö
f2da2e1458 libavcodec: Split version.h
This avoids including version.h in all source files, avoiding
unnecessary rebuilds when the version number is bumped. Only
version_major.h is included by the main header, which defines
availability of e.g. FF_API_* macros, and which is bumped much
less often.

This isn't done for libavutil/version.h, because that header needs
to be included essentially everywhere due to LIBAVUTIL_VERSION_INT
being used wherever an AVClass is constructed.

Signed-off-by: Martin Storsjö <martin@martin.st>
2022-03-16 14:04:35 +02:00
Vittorio Giovara
548aeb9383 lavc: switch to the new channel layout API
Since the request_channel_layout is used only by a handful of codecs,
move the option to codec private contexts.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
Signed-off-by: James Almer <jamrial@gmail.com>
2022-03-15 09:42:39 -03:00
Andreas Rheinhardt
176b8d785b avcodec/avcodec, options_table: Deprecate sub_text_format
Unused since 1f63665ca567fbc49fa80166d468a822c2999efa.

Found-by: Soft Works <softworkz@hotmail.com>
Reviewed-by: Soft Works <softworkz@hotmail.com>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-09-20 01:03:48 +02:00
Anton Khirnov
dd846bc4a9 lavc: deprecate AV_CODEC_(FLAG|CAP)_TRUNCATED
It is supported only by a few decoders (h263, h263p, mpeg(1|2|)video
and mpeg4) and is entirely redundant with parsers. Furthermore, using
it leads to missing frames, as flushing the decoder at the end does not
work properly.

Co-authored-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-09-20 00:20:13 +02:00
Andreas Rheinhardt
1cc64146e3 avcodec/options_table: Treat (request_)channel_layout as channel layout
Also adapt some FATE tests to already cover this.

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-08-15 23:19:35 +02:00
Andreas Rheinhardt
7c1f347b18 avcodec: Remove deprecated old encode/decode APIs
Deprecated in commits 7fc329e2dd6226dfecaa4a1d7adf353bf2773726
and 31f6a4b4b83aca1d73f3cfc99ce2b39331970bf3.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2021-04-27 10:43:12 -03:00
Andreas Rheinhardt
1f63665ca5 avcodec: Remove deprecated ASS with inline timing
Deprecated in 22ebbda637257a432c99330ca4c6024665418f0e.

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
d85c41b572 avcodec: Remove private options from AVCodecContext
Several options that were too codec-specific were deprecated between
0e6c8532215790bbe560a9eea4f3cc82bb55cf92 and
0e9c4fe254073b209970df3e3cb84531bc388e99.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2021-04-27 10:43:02 -03:00
Andreas Rheinhardt
78ce00428f avcodec: Remove deprecated coder type options
Deprecated in be00ec832c519427cd92218abac77dafdc1d5487.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2021-04-27 10:43:01 -03:00
Andreas Rheinhardt
6cf0cb8935 avcodec: Remove deprecated stat-bits fields
Deprecated in 16216b713f9a21865cc07993961cf5d0ece24916.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2021-04-27 10:43:00 -03:00
Andreas Rheinhardt
26ca5ebd7b avcodec: Remove sidedata-only-packet cruft
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2021-04-27 10:42:59 -03:00
Jan Ekström
a0eec776b6 avcodec: enable usage of err_recognition for encoders
Enables the usage of such values as AV_EF_EXPLODE in encoders, which
can be useful in cases such as subtitle encoders where they have the
responsibility to validate the correctness of an incoming ASS dialog line.

Signed-off-by: Jan Ekström <jan.ekstrom@24i.com>
2021-03-05 19:45:00 +02:00
Anton Khirnov
9e30859cb6 lavc: shedule old encoding/decoding API for removal
It has been deprecated for 4 years and certain new codecs do not work
with it.

Also include AVCodecContext.refcounted_frames, as it has no effect with
the new API.
2021-01-26 17:05:58 +01:00
James Almer
c3f3b562c9 avcodec: remove long dead debug_mv code
FF_API_DEBUG_MV has been zero since ffmpeg 4.0

Signed-off-by: James Almer <jamrial@gmail.com>
2021-01-25 19:03:22 -03:00
Lynne
d243dd540a
libavcodec: add a new AV_CODEC_EXPORT_DATA_FILM_GRAIN flag and option
This introduces a new field to allow decoders to export their film grain
parameters.
Will be used by the next patch.
2020-11-25 23:06:33 +01:00
Harry Mallon
811514abb7 libavcodec/options_table: Add missing colorspace options
* chroma-derived-nc / chroma-derived-c and ictcp

Signed-off-by: Harry Mallon <harry.mallon@codex.online>
Signed-off-by: Gyan Doshi <ffmpeg@gyani.pro>
2020-09-10 17:22:09 +05:30
James Almer
8a3f561c34 avcodec/options_table: make AVCodecContext->level search for child constants
This change makes it possible for child encoders to define custom level
option names which can be used for setting the AVCodecContext->level.

Based on 337fe4bcc2

Reviewed-by: jkqxz
Signed-off-by: James Almer <jamrial@gmail.com>
2020-07-29 19:34:39 -03:00
Marton Balint
82f9eb6f6c avcodec: move mpeg4 profiles to profiles.h
Also bump micro version after the recent option changes.

Signed-off-by: Marton Balint <cus@passwd.hu>
2020-05-22 22:23:18 +02:00
Marton Balint
ebb770d3ab avcodec: move msbc profile to encoder
Signed-off-by: Marton Balint <cus@passwd.hu>
2020-05-22 22:23:18 +02:00
Marton Balint
d55f1cc58b avcodec/options_table: remove dts profiles
Our encoder (dcaenc) does not use any of these.

Signed-off-by: Marton Balint <cus@passwd.hu>
2020-05-22 22:22:46 +02:00
Marton Balint
aee036cdd0 avcodec: move aacenc profiles to profiles.h
Signed-off-by: Marton Balint <cus@passwd.hu>
2020-05-22 22:16:53 +02:00
Marton Balint
337fe4bcc2 avcodec/options_table: make AVCodecContext->profile search for child constants
This change makes it possible for child encoders to define custom profile
option names which can be used for setting the AVCodecContext->profile.

Also rename unit name to something rather unique, so it won't be used elsewhere.

Signed-off-by: Marton Balint <cus@passwd.hu>
2020-05-22 22:16:53 +02:00
James Almer
b7d89963f0 avcodec/option_table: mark venc_params as a video decoder flag opt type
It's not meant for audio or subtitles, or for encoders of any kind.

Reviewed-by: mypopy@gmail.com <mypopy@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2020-05-14 18:43:29 -03:00
Anton Khirnov
c584409643 lavc: add a flag for exporting AVVideoEncParams from decoders 2020-05-12 09:37:47 +02:00
Paul B Mahol
d64cbd4fda remove CHAR_MIN/CHAR_MAX usage
It is not needed at all.
2020-03-17 22:46:36 +01:00
James Almer
d005a7cdfd avcodec: add an AVCodecContext flag to export PRFT side data on demand
Signed-off-by: James Almer <jamrial@gmail.com>
2020-02-22 23:19:07 -03:00
James Almer
c666689491 avcodec: add an AVCodecContext field to signal types of packet, frame, and coded stream side data to export
Add an initial mvs flag to is, analog to the export_mvs flags2 one.

Signed-off-by: James Almer <jamrial@gmail.com>
2020-02-22 23:19:07 -03:00
Michael Niedermayer
4cfc563c57 avcodec/options_table: err_detect compliant and aggressive should also enable the weaker checks
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-12-31 18:43:50 +01:00
Jun Zhao
d9bb12ee39 lavc/options_table: Correct the flags for AVCodecContext.flags2
Correct the flags for AVCodecContext.flags2.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Jun Zhao <barryjzhao@tencent.com>
2019-10-06 17:31:59 +08:00
Michael Niedermayer
f8406ab4b9 avcodec: add max_samples
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-09-25 17:18:37 +02:00
Raphaël Zumer
a12b629ae1 avcodec: Support EBU Tech. 3213-E primaries values
Signed-off-by: Raphaël Zumer <rzumer@tebako.net>
Signed-off-by: James Almer <jamrial@gmail.com>
2019-09-01 20:00:58 -03:00
Gyan Doshi
3153a6502a avcodec: add AV_CODEC_FLAG_DROPCHANGED to flags
Discard decoded frames which differ from first decoded frame in stream.
2019-04-20 10:38:01 +05:30
Michael Niedermayer
5bcefceec8 avcodec: Add discard_sample_percentage
Suggested-by: BBB
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-01-28 01:09:38 +01:00
Jun Zhao
90c4534206 lavc/options_table: Change some options location in opt table.
Change the some options location in avcodec_options to make code more
readable. And update the fate test with this change.

Signed-off-by: Jun Zhao <mypopydev@gmail.com>
2018-12-20 18:40:41 +08:00
wm4
b7d0d912ef avcodec: add a subcharenc mode that disables UTF-8 check
This is for applications which want to explicitly check for invalid
UTF-8 manually, and take actions that are better than dropping invalid
subtitles silently. (It's pretty much silent because sporadic avcodec
error messages are so common that you can't reasonably display them in a
prominent and meaningful way in a application GUI.)
2018-03-25 19:27:02 +02:00
Aurelien Jacobs
ff4600d954 sbc: implement SBC encoder (low-complexity subband codec)
This was originally based on libsbc, and was fully integrated into ffmpeg.
2018-03-07 22:26:53 +01:00
Mark Thompson
d23fff0d8a Merge commit '5b145290df2998a9836a93eb925289c6c8b63af0'
* commit '5b145290df2998a9836a93eb925289c6c8b63af0':
  lavc: Add support for increasing hardware frame pool sizes

Merged-by: Mark Thompson <sw@jkqxz.net>
2018-02-12 22:19:38 +00:00
Mark Thompson
5b145290df lavc: Add support for increasing hardware frame pool sizes
AVCodecContext.extra_hw_frames is added to the size of hardware frame
pools created by libavcodec for APIs which require fixed-size pools.
This allows the user to keep references to a greater number of frames
after decode, which may be necessary for some use-cases.

It is also added to the initial_pool_size value returned by
avcodec_get_hw_frames_parameters() if a fixed-size pool is required.
2018-02-11 22:00:33 +00:00
James Almer
c17f638565 Merge commit '0648dec19db83bc8c87814d195e32cbad5698a40'
* commit '0648dec19db83bc8c87814d195e32cbad5698a40':
  lavc: Drop deprecated stream codec tag

Merged-by: James Almer <jamrial@gmail.com>
2017-10-23 17:24:34 -03:00
James Almer
bfab430856 Merge commit '94eed68ace9f2416af8457fcbf142b175928c06b'
* commit '94eed68ace9f2416af8457fcbf142b175928c06b':
  lavc: Drop deprecated options moved to private contexts

Merged-by: James Almer <jamrial@gmail.com>
2017-10-23 17:08:32 -03:00
James Almer
eb5f846339 avcodec: drop deprecated vismv option
Deprecated in 08/2014.

Signed-off-by: James Almer <jamrial@gmail.com>
2017-10-23 16:52:24 -03:00
James Almer
2ccd00dabd Merge commit '5182a28b5de060c51c21b36053ab205bfbbbbe31'
* commit '5182a28b5de060c51c21b36053ab205bfbbbbe31':
  lavc: Drop deprecated global afd field

Merged-by: James Almer <jamrial@gmail.com>
2017-10-23 16:31:50 -03:00
James Almer
b79a7da36f Merge commit 'bb45d11282d93af0e8d4c8fd6bc6405f7439a940'
* commit 'bb45d11282d93af0e8d4c8fd6bc6405f7439a940':
  lavc: Drop deprecated codec flags

Merged-by: James Almer <jamrial@gmail.com>
2017-10-23 16:19:38 -03:00
James Almer
6e69525e69 Merge commit '302554835e39b79b977ed60c9afe81b44590dfef'
* commit '302554835e39b79b977ed60c9afe81b44590dfef':
  lavc: Drop deprecated unused public members

Merged-by: James Almer <jamrial@gmail.com>
2017-10-23 16:08:42 -03: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
James Almer
400ecd8e40 Merge commit '72dc7ddd18fe54ee68aec71590c3202ad009a8fc'
* commit '72dc7ddd18fe54ee68aec71590c3202ad009a8fc':
  lavc: Drop deprecated error rate option

Merged-by: James Almer <jamrial@gmail.com>
2017-10-23 15:50:46 -03:00
James Almer
b46613dd9b Merge commit 'dcc39ee10e82833ce24aa57926c00ffeb1948198'
* commit 'dcc39ee10e82833ce24aa57926c00ffeb1948198':
  lavc: Remove deprecated XvMC support hacks

Merged-by: James Almer <jamrial@gmail.com>
2017-10-23 15:20:49 -03:00