1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2025-03-28 12:32:17 +02:00

2508 Commits

Author SHA1 Message Date
wm4
8f9024f2ca lavc: remove uneffective attribute_deprecated on enum
Does not work. Even emits a warning with some compilers that the
attribute does not work on enums. It's likely that there is way to make
it work, but not worth the trouble.
2017-12-27 03:47:28 +01:00
wm4
a04c2c707d lavc: replace and deprecate the lock manager
Use static mutexes instead of requiring a lock manager. The behavior
should be roughly the same before and after this change for API users
which did not set the lock manager at all (except that a minor memory
leak disappears).
2017-12-26 02:50:00 +01:00
Mark Thompson
2117725dc5 lavc: Mark all AVHWAccel structures as const 2017-12-19 23:24:24 +00:00
Mark Thompson
e2d575543c lavc: Deprecate av_hwaccel_next() and av_register_hwaccel() 2017-12-19 23:22:31 +00:00
Mark Thompson
720cf4e6e7 lavc: Add codec metadata to indicate hardware support 2017-12-19 23:21:53 +00:00
wm4
b945fed629 avcodec: add metadata to identify wrappers and hardware decoders
Explicitly identify decoder/encoder wrappers with a common name. This
saves API users from guessing by the name suffix. For example, they
don't have to guess that "h264_qsv" is the h264 QSV implementation, and
instead they can just check the AVCodec .codec and .wrapper_name fields.

Explicitly mark AVCodec entries that are hardware decoders or most
likely hardware decoders with new AV_CODEC_CAPs. The purpose is allowing
API users listing hardware decoders in a more generic way. The proposed
AVCodecHWConfig does not provide this information fully, because it's
concerned with decoder configuration, not information about the fact
whether the hardware is used or not.

AV_CODEC_CAP_HYBRID exists specifically for QSV, which can have software
implementations in case the hardware is not capable.

Based on a patch by Philip Langdale <philipl@overt.org>.

Merges Libav commit 47687a2f8aca3f65b6fdd117b1cb66a7409a7fd1.
2017-12-14 19:37:56 +01:00
wm4
47687a2f8a avcodec: add metadata to identify wrappers and hardware decoders
Explicitly identify decoder/encoder wrappers with a common name. This
saves API users from guessing by the name suffix. For example, they
don't have to guess that "h264_qsv" is the h264 QSV implementation, and
instead they can just check the AVCodec .codec and .wrapper_name fields.

Explicitly mark AVCodec entries that are hardware decoders or most
likely hardware decoders with new AV_CODEC_CAPs. The purpose is allowing
API users listing hardware decoders in a more generic way. The proposed
AVCodecHWConfig does not provide this information fully, because it's
concerned with decoder configuration, not information about the fact
whether the hardware is used or not.

AV_CODEC_CAP_HYBRID exists specifically for QSV, which can have software
implementations in case the hardware is not capable.

Based on a patch by Philip Langdale <philipl@overt.org>.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2017-12-14 16:58:45 +01:00
John Stebbins
00d454ed2c lavf/movenc: add sdtp (sample dependency) box
The sdtp is required by the AppleTV 4K in order to play 2160p60 video.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2017-12-02 19:14:34 +01:00
Mark Thompson
3a71bcc213 lavc: Mark all AVHWAccel structures as const 2017-11-26 21:41:19 +00:00
Mark Thompson
3536a3efb9 lavc: Deprecate av_hwaccel_next() and av_register_hwaccel() 2017-11-26 21:36:31 +00:00
Mark Thompson
67e81d79cc lavc: Use hardware config information in ff_get_format()
This removes the dependency that hardware pixel formats previously had on
AVHWAccel instances, meaning only those which actually do something need
exist after this patch.

Also updates avcodec_default_get_format() to be able to choose hardware
formats if either a matching device has been supplied or no additional
external configuration is required, and avcodec_get_hw_frames_parameters()
to use the hardware config rather than searching the old hwaccel list.

The FF_CODEC_CAP_HWACCEL_REQUIRE_CLASS mechanism is deleted because it
no longer does anything (the codec already contains the pointers to the
matching hwaccels).
2017-11-26 21:35:53 +00:00
Mark Thompson
24cc0a53e9 lavc: Add codec metadata to indicate hardware support 2017-11-26 21:35:49 +00:00
James Almer
54486e3f09 avcodec: remove unnecessary AVPacketSideDataType enum offset
Signed-off-by: James Almer <jamrial@gmail.com>
2017-11-19 22:07:48 -03:00
James Almer
c4131a0613 avcodec: deprecate getters and setters for AVCodecContext and AVCodec fields
The fields can be accessed directly, so these are not needed anymore.

Signed-off-by: James Almer <jamrial@gmail.com>
2017-11-15 01:14:22 -03:00
Aman Gupta
034e1f82d9 avcodec: fix whitespace on AVPanScan struct definition 2017-11-14 10:25:29 -08:00
Aman Gupta
76f169368d avcodec: add decode_params callback to AVHWAccel struct
Signed-off-by: Aman Gupta <aman@tmm1.net>
2017-11-13 14:32:48 -08:00
James Almer
48e4eda11d Merge commit 'b46a77f19ddc4b2b5fa3187835ceb602a5244e24'
* commit 'b46a77f19ddc4b2b5fa3187835ceb602a5244e24':
  lavc: external hardware frame pool initialization

Includes the fix from e724bdfffbd3c27aac53d1f32f20f105f37caef0

Merged-by: James Almer <jamrial@gmail.com>
2017-11-11 20:33:26 -03:00
wm4
ae5046e492 avcodec: allow multiple hwaccels for the same codec/pixfmt
Currently, AVHWAccels are looked up using a (codec_id, pixfmt) tuple.
This means it's impossible to have 2 decoders for the same codec and
using the same opaque hardware pixel format.

This breaks merging Libav's CUVID hwaccel. FFmpeg has its own CUVID
support, but it's a full stream decoder, using NVIDIA's codec parser.
The Libav one is a true hwaccel, which is based on the builtin software
decoders.

Fix this by introducing another field to disambiguate AVHWAccels, and
use it for our CUVID decoders. FF_CODEC_CAP_HWACCEL_REQUIRE_CLASS makes
this mechanism backwards compatible and optional.
2017-11-10 22:48:34 +01:00
Aurelien Jacobs
a337b36b8b aptx: implement the aptX bluetooth codec
The encoder was reverse engineered from binary library and from
EP0398973B1 patent (long expired).
The decoder was simply deduced from the encoder.
2017-11-10 21:32:06 +00:00
James Almer
39e9a7a80f avcodec/avcodec.h: remove doxy from the old bsf API functions
Make it clear that these are deprecated and the new API should be
used instead.

As a side effect, this slightly reduces differences with libav.

Reviewed-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2017-10-30 14:40:27 -03:00
Carl Eugen Hoyos
f2c867051c lavc/avcodec: Constify the return value of av_bitstream_filter_next().
Fixes the following gcc warning:
libavcodec/bitstream_filter.c:39:12: warning: return discards 'const' qualifier from pointer target type
2017-10-26 18:29:02 +02: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
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
5a2e581879 Merge commit '4476027d93680cd88d2f75ef1cef5b0c276a8704'
* commit '4476027d93680cd88d2f75ef1cef5b0c276a8704':
  lavc: Drop deprecated avctx codec name

Merged-by: James Almer <jamrial@gmail.com>
2017-10-23 16:28:38 -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
f7eb1c9ac5 Merge commit 'da5ba26b9e25f408e8d2f9428c9eca699f11a7db'
* commit 'da5ba26b9e25f408e8d2f9428c9eca699f11a7db':
  lavc: Drop deprecated macroblock type symbols

Merged-by: James Almer <jamrial@gmail.com>
2017-10-23 15:59:02 -03:00
James Almer
0b79fdeb9a Merge commit 'cbebc3251bc2544b469e0dcb176bc04779d8866c'
* commit 'cbebc3251bc2544b469e0dcb176bc04779d8866c':
  lavc: Drop deprecated public symbols

Merged-by: James Almer <jamrial@gmail.com>
2017-10-23 15:56:29 -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
James Almer
c381f6a483 Merge commit '0871e2337777d9161e7f3554bcad19dabc9e15e1'
* commit '0871e2337777d9161e7f3554bcad19dabc9e15e1':
  lavc: Drop deprecated architectures symbols

Merged-by: James Almer <jamrial@gmail.com>
2017-10-23 15:05:12 -03:00
James Almer
b13e61d629 Merge commit 'c06e73929199c4bdbb32ffb3d81c27ea57dd1458'
* commit 'c06e73929199c4bdbb32ffb3d81c27ea57dd1458':
  lavc: Drop deprecated extended aspect ratio symbol

Merged-by: James Almer <jamrial@gmail.com>
2017-10-23 15:02:25 -03:00
James Almer
51b88c3d4e Merge commit '0c7986df444273b0e53d3992ba9cc1108bd6a386'
* commit '0c7986df444273b0e53d3992ba9cc1108bd6a386':
  lavc: Drop deprecated workaround bugs options

Merged-by: James Almer <jamrial@gmail.com>
2017-10-23 14:59:23 -03:00
James Almer
90000f15ec Merge commit '6dca24cd1d570b806b5a3fdaef9d3c8608942a81'
* commit '6dca24cd1d570b806b5a3fdaef9d3c8608942a81':
  lavc: Drop deprecated way of setting codec dimensions

Merged-by: James Almer <jamrial@gmail.com>
2017-10-21 23:59:53 -03:00
James Almer
898349d702 Merge commit '1146bb3babca3973e88005d267cd06210d6ac075'
* commit '1146bb3babca3973e88005d267cd06210d6ac075':
  lavc: Drop deprecated voxware codec entry

Merged-by: James Almer <jamrial@gmail.com>
2017-10-21 23:56:51 -03:00
James Almer
5ad1a989b6 avcodec: Drop deprecated VIMA codecid
Deprecated in 02/2015.

Signed-off-by: James Almer <jamrial@gmail.com>
2017-10-21 23:55:48 -03:00
James Almer
c68a3ab96e Merge commit '7b917041184874e7d7cba4450813de7e0bb28a33'
* commit '7b917041184874e7d7cba4450813de7e0bb28a33':
  lavc: Drop deprecated VDPAU codec capability

Merged-by: James Almer <jamrial@gmail.com>
2017-10-21 23:40:03 -03:00
James Almer
8f483108b5 avcodec: Drop deprecated audio resample API
Deprecated in 03/2013.
2017-10-21 23:15:19 -03:00
James Almer
24a8603a8e Merge commit '0337adfab5d14a17bf4d5060aa0425e4049a9862'
* commit '0337adfab5d14a17bf4d5060aa0425e4049a9862':
  lavc: Drop deprecated missing sample log function

Merged-by: James Almer <jamrial@gmail.com>
2017-10-21 22:53:41 -03:00
wm4
b46a77f19d lavc: external hardware frame pool initialization
This adds a new API, which allows the API user to query the required
AVHWFramesContext parameters. This also reduces code duplication across
the hwaccels by introducing ff_decode_get_hw_frames_ctx(), which uses
the new API function. It takes care of initializing the hw_frames_ctx
if needed, and does additional error handling and API usage checking.

Support for VDA and Cuvid missing.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2017-10-19 17:10:59 +02:00
Ivan Kalvachev
9054439bad Fix visual glitch with XvMC, caused by wrong idct permutation.
In the past XvMC forced simple_idct since
it was using FF_IDCT_PERM_NONE.
However now we have SIMD variants of simple_idct that
are using FF_IDCT_PERM_TRANSPOSE and if they are selected
XvMC would get coefficients in the wrong order.

The patch creates new FF_IDCT_NONE that
is used only for this kind of hardware decoding
and that fallbacks to the old C only simple idct.

Signed-off-by: Ivan Kalvachev <ikalvachev@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2017-10-12 01:27:52 +02:00
James Almer
cf3d2d52b5 avcodec/avpacket: deprecate av_copy_packet_side_data()
It leaks memory and destroys the dst packet in case of failure, and it
ultimately duplicates functionality already existing in the saner
av_packet_copy_props().

Reviewed-by: wm4
Signed-off-by: James Almer <jamrial@gmail.com>
2017-10-01 19:19:22 -03:00
Karthick J
b6cf66ae1c avdevice/decklink_dec: Added Closed caption decode from VANC
Signed-off-by: Karthick J <kjeyapal@akamai.com>
Signed-off-by: Marton Balint <cus@passwd.hu>
2017-09-28 21:06:12 +02:00
James Almer
b1cf151c4d Merge commit '577326d430593a25456393a75212b95d1cd94131'
* commit '577326d430593a25456393a75212b95d1cd94131':
  lavc: deprecate refcounted_frames field

Merged-by: James Almer <jamrial@gmail.com>
2017-09-26 16:42:18 -03:00
James Almer
ecb9741ba2 avcodec/avpacket: deprecate av_copy_packet()
It does the same thing as av_packet_ref().

Signed-off-by: James Almer <jamrial@gmail.com>
2017-09-25 21:22:06 -03:00
James Almer
6561cdd70c avcodec.h: fix doxygen comment 2017-09-14 01:43:52 -03:00
Mark Thompson
82342cead1 lavc: Add flag to mark packets containing trusted input 2017-09-13 22:25:29 +01:00
James Almer
6cadbb16e9 avcodec: add AV_HWACCEL_CODEC_CAP_EXPERIMENTAL flag
This flag replaces the deprecated, non-prefixed HWACCEL_CODEC_CAP_EXPERIMENTAL
one.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: James Almer <jamrial@gmail.com>
2017-09-04 17:48:41 -03:00