1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2025-01-08 13:22:53 +02:00
Commit Graph

2462 Commits

Author SHA1 Message Date
Anton Khirnov
0946c754d9 examples/decode_audio: use a parser for splitting the input
Do not rely on the decoder handling this, as it's not guaranteed to
work.
2016-11-23 13:09:41 +01:00
Anton Khirnov
f27e262dbd examples/encode_audio: switch to the new audio encoding API 2016-11-23 13:08:50 +01:00
Anton Khirnov
44c9f374f1 examples/qsvdec: convert to the new decoding API 2016-11-23 13:08:43 +01:00
Anton Khirnov
1dd2b6c91c examples/qsvdec: switch to the hwcontext API
The code now does not depend on VA and will work on windows as well.
2016-11-23 13:08:33 +01:00
Diego Biurrun
bdbb8c6866 doc: Add libxavs section 2016-11-21 15:08:50 +01:00
Luca Barbato
0a4b9d0ccd hlsenc: Add encryption support
Partially based on Christian Suloway <csuloway@globaleagleent.com> work.
2016-11-17 19:19:55 +01:00
Diego Biurrun
bb265b764a examples/transcode_aac: Drop pointless return value const qualifier
doc/examples/transcode_aac.c:52:20: warning: type qualifiers ignored on function return type [-Wignored-qualifiers]
2016-11-17 16:53:47 +01:00
Diego Biurrun
bfe92dfe60 Ignore all generated example binaries 2016-11-17 10:35:27 +01:00
Stephen Hutchinson
bf8646274b doc: Add note about recent regression in AviSynth+
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2016-11-17 09:44:26 +01:00
Diego Biurrun
905cdcaa9d examples/decode_audio: Add missing header for av_free() 2016-11-10 10:33:19 +01:00
Luca Barbato
7471352f19 pixfmt: Add GRAY12 2016-11-07 22:42:00 +01:00
Mark Thompson
d06aa24ba5 hwcontext: Hardware frame mapping
Adds the new av_hwframe_map() function, which allows mapping between
hardware frames and normal memory, along with internal support for
implementing it.

Also adds av_hwframe_ctx_create_derived(), for creating a hardware
frames context associated with one device using frames mapped from
another by some hardware-specific means.
2016-11-03 23:49:01 +00:00
Diego Biurrun
2025d37871 doc: Turn off noisy deprecation warnings in the option printer 2016-11-02 10:33:39 +01:00
Anton Khirnov
636515c324 examples/decode_video: remove a stray unrelated comment 2016-11-02 10:20:41 +01:00
Anton Khirnov
8191f960a6 examples/decode_video: constify the AVCodec instance 2016-11-02 10:20:25 +01:00
Anton Khirnov
5b4d7ac7ae examples/encode_video: use the AVFrame API for allocating the frame
It is more efficient and so preferred over allocating the buffers
manually.
2016-11-02 10:20:01 +01:00
Anton Khirnov
d0a603a534 examples/encode_video: set the framerate 2016-11-02 10:19:37 +01:00
Anton Khirnov
e02524025b examples/encode_video: constify the AVCodec instance 2016-11-02 10:18:34 +01:00
Anton Khirnov
7b1f03477f examples/avcodec: split the remaining two examples into separate files 2016-11-02 10:16:04 +01:00
Anton Khirnov
90265814f9 examples/decode_audio: constify the AVCodec instance 2016-11-02 10:13:37 +01:00
Anton Khirnov
f5df897c4b examples/avcodec: split audio decoding into a separate example
The four examples (audio/video encoding/decoding) are completely
independent so it makes little sense to have them all in one file.
2016-11-02 10:13:27 +01:00
Anton Khirnov
f76698e759 examples/encode_audio: use the AVFrame API for allocating the data
It is simpler and more efficient.
2016-11-02 10:12:39 +01:00
Anton Khirnov
c00a11ab38 examples/encode_audio: constify AVCodec instances 2016-11-02 10:11:48 +01:00
Anton Khirnov
40aaa8dadf examples/avcodec: split audio encoding into a separate example
The four examples (audio/video encoding/decoding) are completely
independent so it makes little sense to have them all in one file.
2016-11-02 10:11:46 +01:00
Diego Biurrun
043b0b9fb1 Replace leftover uses of -aframes|-dframes|-vframes with -frames:a|d|v 2016-10-22 16:50:41 +02:00
Anton Khirnov
89b35a139e lavc: add a bitstream filter for extracting extradata from packets
This is intended as a replacement for the 'split' function exported by
some parsers.
2016-10-16 20:27:16 +02:00
Kieran Kunhya
81f1f6c3f6 Add GBRAP12 pixel format support
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2016-10-12 21:33:34 +02:00
Michael Niedermayer
1e93aa69a6 Add GBRP12 pixel format support
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2016-10-12 17:39:30 +02:00
Vittorio Giovara
e7e5be8635 APIchanges: Expand the name of recently added pixel formats
This makes them easier to search for.
2016-10-12 11:13:02 -04:00
Anton Khirnov
2124711b95 hwcontext_vaapi: add a quirk for the missing MemoryType attribute
The Intel binary iHD driver does not support the
VASurfaceAttribMemoryType, so surface allocation will fail when using
it.
2016-10-02 11:41:45 +02:00
Anton Khirnov
8ea35af762 avio: add a new flag for marking streams seekable by timestamp 2016-09-30 16:55:45 +02:00
Diego Biurrun
2ec9fa5ec6 idct: Change type of array stride parameters to ptrdiff_t
ptrdiff_t is the correct type for array strides and similar.
2016-09-29 14:48:03 +02:00
Anton Khirnov
67d28f4a0f examples/output: switch to the new encoding API 2016-09-28 10:01:52 +02:00
Anton Khirnov
6c09af7e46 APIchanges: fix a typo in the version number 2016-09-28 10:01:51 +02:00
Luca Barbato
0e8d1fc1f0 lavu: Bump version for the 12bit Planar YUV support 2016-09-27 18:48:30 +02:00
Yogender Gupta
de64dd13cb avcodec: Add the extended pixel format profile for HEVC
It is supported by the NVIDIA video SDK 7.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2016-09-19 10:02:43 +02:00
Diego Biurrun
8c201dde0a build: doc: more fine-grained dependencies for generated texi files 2016-09-15 21:37:16 +02:00
Anton Khirnov
d7bc52bf45 imgutils: add a function for copying image data from GPU mapped memory
See https://software.intel.com/en-us/articles/copying-accelerated-video-decode-frame-buffers
2016-08-31 08:15:47 +02:00
Mark Thompson
851960f6f8 lavc: Remove old vaapi decode infrastructure
Deprecates struct vaapi_context and the installed header vaapi.h,
to be removed at the next version bump.
2016-08-30 22:16:01 +01:00
Burt P
728e80cd2e High Definition Compatible Digital (HDCD) decoder filter, using libhdcd
Signed-off-by: Burt P <pburt0@gmail.com>
Signed-off-by: Diego Biurrun <diego@biurrun.de>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2016-08-29 19:09:59 +02:00
Luca Barbato
963b3ab11f doc: Document FATE option HWACCEL 2016-08-26 09:21:59 +02:00
Diego Biurrun
7d7355aa92 x86: Add SSSE3_SLOW CPU flag and related convenience macros 2016-07-20 18:43:28 +02:00
Vittorio Giovara
9833a406d3 examples: Properly free AVCodecContext 2016-07-20 17:13:53 +02:00
Diego Biurrun
5ece691101 apichanges: Fill in missing hashes and dates 2016-07-16 17:38:37 +02:00
Janne Grunau
fc5cdc0d53 doc: escape left brace in texi2pod.pl regex
Unescaped literal left braces are deprecated and a warning was added in
Perl 5.22.
2016-07-10 13:34:57 +02:00
Mark Thompson
4926fa9a4a hwcontext_vaapi: Add driver quirks to the hwdevice
The driver being used is detected inside av_hwdevice_ctx_init() and
the quirks field then set from a table of known device.  If this
behaviour is unwanted, the user can also set the quirks field
manually.

Also adds the Intel i965 driver quirk (it does not destroy parameter
buffers used in a call to vaRenderPicture()) and detects that driver
to set it.
2016-07-02 14:09:54 +01:00
Hendrik Leppkes
b7c5f88523 pixfmt: add P010 pixel format
P010 is the 10-bit variant of NV12 (planar luma, packed chroma), using two
bytes per component to store 10-bit data plus 6-bit zeroes in the LSBs.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2016-07-02 09:35:23 +02:00
Martin Storsjö
82b7525173 Add an OpenH264 decoder wrapper
While it is less featureful (and slower) than the built-in H264
decoder, one could potentially want to use it to take advantage
of the cisco patent license offer.

Signed-off-by: Martin Storsjö <martin@martin.st>
2016-06-28 14:17:43 +03:00
Anton Khirnov
398f015f07 avconv: buffer the packets written while the muxer is not initialized 2016-06-25 11:15:54 +02:00
Anton Khirnov
32c8359093 lavc: export the timestamps when decoding in AVFrame.pts
Currently it's exported as AVFrame.pkt_pts, which is also the only use
for that field. The reason it is done like this is that lavc used to
export various codec-specific "timing" information in AVFrame.pts, which
is not done anymore.

Since it is confusing to the callers to have a separate field which is
used only for decoder timestamps and nothing else, deprecate pkt_pts and
use just AVFrame.pts everywhere.
2016-06-21 19:54:42 +02:00
Anton Khirnov
59e7361cc7 hwcontext: add a QSV implementation 2016-06-21 19:53:37 +02:00
Anton Khirnov
e85f6f7f8d lavc: allow using AVCodecContext.hw_frames_ctx for decoding
For now it will only be used by the default get_buffer2 callback for
allocating hw frames.
2016-06-21 19:52:17 +02:00
Paul B Mahol
470cd0c5fe Add TrueMotion 2.0 Real Time decoder
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2016-06-20 15:48:12 -04:00
Paul B Mahol
d78fd2fa21 Add MagicYUV decoder
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2016-06-20 15:45:51 -04:00
Anton Khirnov
90f469aa2b lavc: add H.264 MVC profiles 2016-06-12 20:27:53 +02:00
Anton Khirnov
1c9e8616c5 hwcontext: add a function for opening devices 2016-05-26 15:40:32 +02:00
Diego Biurrun
e47b8bbf0b avcodec: Bump micro version after changing public JPEG 2000 defines 2016-05-24 15:47:15 +02:00
Anton Khirnov
65dc7ca4c8 Add release notes for 12. 2016-05-19 13:44:41 +02:00
Martin Storsjö
db7968bff4 avio: Allow custom IO users to get labels for the output bytestream
This allows callers with avio write callbacks to get the bytestream
positions that correspond to keyframes, suitable for live streaming.

In the simplest form, a caller could expect that a header is written
to the bytestream during the avformat_write_header, and the data
output to the avio context during e.g. av_write_frame corresponds
exactly to the current packet passed in.

When combined with av_interleaved_write_frame, and with muxers that
do buffering (most muxers that do some sort of fragmenting or
clustering), the mapping from input data to bytestream positions
is nontrivial.

This allows callers to get directly information about what part
of the bytestream is what, without having to resort to assumptions
about the muxer behaviour.

One keyframe/fragment/block can still be split into multiple (if
they are larger than the aviocontext buffer), which would call
the callback with e.g. AVIO_DATA_MARKER_SYNC_POINT, followed by
AVIO_DATA_MARKER_UNKNOWN for the second time it is called with
the following data.

Signed-off-by: Martin Storsjö <martin@martin.st>
2016-05-18 10:36:45 +03:00
Vittorio Giovara
0c4468dc18 stereo3d: Add API to get name from value or value from name
Use it in av_dump_format() instead of a huge switch case.
2016-05-17 12:25:27 -04:00
Anton Khirnov
c46db38cde hwcontext: add a dxva2 implementation 2016-05-17 09:11:25 +02:00
Diego Biurrun
257f00ec1a Split global .gitignore file into per-directory files 2016-05-13 14:55:56 +02:00
Vittorio Giovara
41ed7ab45f cosmetics: Fix spelling mistakes
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2016-05-04 18:16:21 +02:00
Michael Niedermayer
564b4591bb opt: Add av_opt_copy()
This includes documentation and other modifications by
Lukasz Marek and Martin Storsjö.

Signed-off-by: Martin Storsjö <martin@martin.st>
2016-03-24 10:34:15 +02:00
Martin Storsjö
933dec0e29 file: Add an option for following a file that is being written
Using this requires setting the rw_timeout option to make it
terminate, alternatively using the interrupt callback (if used via
the API).

Signed-off-by: Martin Storsjö <martin@martin.st>
2016-03-24 10:33:59 +02:00
Andrey Utkin
ccea588f83 avio: Add an option 'rw_timeout'
If set non-zero, this limits duration of the retry_transfer_wrapper()
loop, thus affecting ffurl_read*(), ffurl_write(). As soon as
one single byte is successfully received/transmitted, the timer
restarts.

This has further changes by Michael Niedermayer and Martin Storsjö.

Signed-off-by: Martin Storsjö <martin@martin.st>
2016-03-24 10:33:50 +02:00
Anton Khirnov
8a02a8031e lavfi: add an NVIDIA NPP-based scaling filter 2016-03-23 19:55:34 +01:00
wm4
05f66706d1 lavc: introduce a new decoding/encoding API with decoupled input/output
Until now, the decoding API was restricted to outputting 0 or 1 frames
per input packet. It also enforces a somewhat rigid dataflow in general.

This new API seeks to relax these restrictions by decoupling input and
output. Instead of doing a single call on each decode step, which may
consume the packet and may produce output, the new API requires the user
to send input first, and then ask for output.

For now, there are no codecs supporting this API. The API can work with
codecs using the old API, and most code added here is to make them
interoperate. The reverse is not possible, although for audio it might.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2016-03-23 19:31:23 +01:00
Diego Biurrun
48362ceade doc: Update paths to match new examples location 2016-03-23 09:35:40 +01:00
Anton Khirnov
33d18982fa lavc: add a new bitstream filtering API
Deprecate the current bitstream filtering API.
2016-03-20 08:15:01 +01:00
Mark Thompson
07a844f32e lavfi: generic hardware surface upload and download filters
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2016-03-19 15:41:04 +01:00
Mark Thompson
551c6775ab lavu: VAAPI hwcontext implementation
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2016-03-19 15:40:22 +01:00
Mark Thompson
d264c720f7 lavu: deprecate AV_PIX_FMT_VAAPI_*, replace with AV_PIX_FMT_VAAPI
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2016-03-19 15:40:22 +01:00
Mark Thompson
b1f01e85a9 lavu: add a way to query hwcontext frame constraints
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2016-03-19 15:38:00 +01:00
Anton Khirnov
dc4983d78a APIchanges: add missing hashes and dates
Also, remove a stray line (apparently fallout from conflict resolution).
2016-02-26 09:14:13 +01:00
Anton Khirnov
3e8fd93b6a lavf: add a missing bump and APIchanges for the codecpar switch 2016-02-26 09:14:13 +01:00
Anton Khirnov
ac6d53589f examples/transcode_aac: convert to codecpar 2016-02-24 10:08:34 +01:00
Anton Khirnov
a9e1f2cc61 examples/qsvdec: convert to codecpar 2016-02-24 10:08:30 +01:00
Anton Khirnov
9897d9f4e0 examples/output: convert to codecpar 2016-02-24 10:08:24 +01:00
Anton Khirnov
a8068346e4 lavc: add a variant of av_get_audio_frame_duration working with AVCodecParameters 2016-02-23 17:01:58 +01:00
Anton Khirnov
998e1b8f52 lavc: add codec parameters API
This API is intended to allow passing around codec parameters without
using full AVCodecContext (which also contains codec options and
encoder/decoder state).
2016-02-23 17:01:58 +01:00
Anton Khirnov
ec4c483976 lavf: add a protocol whitelist/blacklist for file opened internally
Should make the default behaviour safer for careless callers that open
random untrusted files.

Bug-Id: CVE-2016-1897
Bug-Id: CVE-2016-1898
2016-02-22 11:48:30 +01:00
Anton Khirnov
7b3214d005 lavc: add a field for passing AVHWFramesContext to encoders 2016-02-14 22:29:52 +01:00
Anton Khirnov
21f7cd4acd lavfi: add a filter for uploading normal frames to CUDA 2016-02-14 22:25:38 +01:00
Anton Khirnov
b3dd30db0b lavfi: pass the hw frames context through the filter chain 2016-02-14 22:21:00 +01:00
Anton Khirnov
ad884d1002 hwcontext: add a CUDA implementation 2016-02-14 22:08:33 +01:00
Anton Khirnov
7bc780cd44 pixfmt: add a CUDA hwaccelled format 2016-02-14 22:08:22 +01:00
Anton Khirnov
a001ce31bc hwcontext: add a VDPAU implementation 2016-02-14 22:06:04 +01:00
Anton Khirnov
89923e418b lavu: add a framework for handling hwaccel frames 2016-02-14 21:36:59 +01:00
Anton Khirnov
721a4efc05 buffer: add support for pools using caller data in allocation
This should allow using more complex allocators than simple malloc
wrappers.
2016-02-14 21:24:39 +01:00
Vicente Jimenez Aguilar
f428893c17 doc: Improve the channelsplit example
Expand LFE acronym (lfe.wav -> low_frecuency_effects.wav) as with others filenames

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2016-02-06 13:19:25 +01:00
Anton Khirnov
9f61abc811 lavf: allow custom IO for all files
Some (de)muxers open additional files beyond the main IO context.
Currently, they call avio_open() directly, which prevents the caller
from using custom IO for such streams.

This commit adds callbacks to AVFormatContext that default to
avio_open2()/avio_close(), but can be overridden by the caller. All
muxers and demuxers using AVIO are switched to using those callbacks
instead of calling avio_open()/avio_close() directly.

(de)muxers that use the URLProtocol layer directly instead of AVIO
remain unconverted for now. This should be fixed in later commits.
2016-01-24 16:45:32 +01:00
Luca Barbato
40d43d25e7 APIchanges: Add missing av_pix_fmt_get_chroma_sub_sample entry 2016-01-11 20:53:12 +01:00
Anton Khirnov
2c6811397b lavc: add profiles to AVCodecDescriptor
The profiles are a property of the codec, so it makes sense to export
them through AVCodecDescriptors, not just the codec implementations.
2015-12-12 21:22:49 +01:00
Anton Khirnov
e02de9df4b lavc: export Dirac parsing API used by the ogg demuxer as public
Also, stop using AVCodecContext for storing the stream parameters.
2015-12-06 10:28:04 +01:00
Anton Khirnov
f0b769c16d lavc: add a packet side data type for VBV-like parameters 2015-12-06 10:23:45 +01:00
Anton Khirnov
84adab333c lavc: add stream-global packet side data
This is similar to what is done for AVStream.
2015-12-06 10:22:43 +01:00
Anton Khirnov
31c51f7441 avpacket: add a function for wrapping existing data as side data 2015-12-06 10:22:18 +01:00
Mohamed Naufal
f023d57d35 lavc: G.723.1 encoder
Additional improvements by Michael Niedermayer <michaelni@gmx.at>.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-11-30 10:58:46 -05:00
Luca Barbato
b0e8651a2a doc: Amend the MSYS2 Documentation
Explain better which environment is discouraged and mention the
shortcuts names.
2015-11-26 10:55:35 +01:00