Commit Graph

40157 Commits

Author SHA1 Message Date
James Almer
25abaf3545 avcodec/libaomenc: minor cosmetics
Signed-off-by: James Almer <jamrial@gmail.com>
2018-03-29 16:18:27 -03:00
Paul B Mahol
2974b2556b avcodec: add eac3_core bitstream filter
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2018-03-29 10:24:00 +02:00
Paul B Mahol
ae92970976 avcodec/eac3: add support for dependent stream
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2018-03-29 10:19:03 +02:00
James Almer
e5819fa629 libavcodec/libaomenc: add support for transfer characteristics and color primaries
Signed-off-by: James Almer <jamrial@gmail.com>
2018-03-29 01:03:24 -03:00
James Almer
97de37da9c libavcodec/libaomdec: add support for transfer characteristics and color primaries
Signed-off-by: James Almer <jamrial@gmail.com>
2018-03-29 01:03:14 -03:00
James Almer
416d354a57 libavcodec/libaomenc: fix size specifier in an av_log call
Signed-off-by: James Almer <jamrial@gmail.com>
2018-03-29 00:51:48 -03:00
James Almer
88e9b616b9 libavcodec/libaomdec: use the matrix coefficients value from aom_image
"color_space" is no longer a sytax element in libaom.

Signed-off-by: James Almer <jamrial@gmail.com>
2018-03-29 00:37:00 -03:00
James Almer
c0f0c9f531 avcode/profiles: add AV1 profiles
Signed-off-by: James Almer <jamrial@gmail.com>
2018-03-29 00:05:52 -03:00
James Almer
99cc3cf7a2 Merge commit '43778a501f1bfbceeddc8eaeea2ea2b3506beeda'
* commit '43778a501f1bfbceeddc8eaeea2ea2b3506beeda':
  Support AV1 encoding using libaom

This contains some extra changes taken from the libvpx encoder
wrapper, most of them contained in the set_pix_fmt() function.

Merged-by: James Almer <jamrial@gmail.com>
2018-03-29 00:05:45 -03:00
James Almer
d039d7d4a4 avcodec/libaomdec: remove references to yuv440p pixfmt
While the enums are defined in the libaom headers, it's not officially
supported.

Signed-off-by: James Almer <jamrial@gmail.com>
2018-03-28 21:29:15 -03:00
Michael Niedermayer
5c75438b89 avcodec/tableprint_vlc: Fix build failure with --enable-hardcoded-tables
Found-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2018-03-29 01:11:45 +02:00
James Almer
0dc11d8bbd Merge commit 'c438899a706422b8362a13714580e988be4d638b'
* commit 'c438899a706422b8362a13714580e988be4d638b':
  Add AV1 video decoding support through libaom

This contains some extra changes taken from the libvpx decoder
wrapper, most of them contained in the set_pix_fmt() function.

Merged-by: James Almer <jamrial@gmail.com>
2018-03-28 18:09:46 -03:00
James Almer
d205c8f3bb avcodec/avpacket: remove unnecessary check in av_packet_make_writable()
Zero sized packets are already handled below in the function.
This is more in line with av_packet_ref().

Signed-off-by: James Almer <jamrial@gmail.com>
2018-03-27 11:25:57 -03:00
James Almer
3c245707bd avcodec/avdct: use the proper function to free AVCodecContext
Fixes ticket #7074

Signed-off-by: James Almer <jamrial@gmail.com>
2018-03-26 12:51:25 -03:00
Michael Niedermayer
db77230894 avcodec/mpeg4videodec: Use more specific error codes
Forward error codes where possible.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2018-03-26 02:17:13 +02:00
Michael Niedermayer
e529fe7633 avcodec/get_bits: Make sure the input bitstream with padding can be addressed
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2018-03-26 02:12:15 +02:00
wm4
b0644c3e1a movtextdec: fix handling of UTF-8 subtitles
Subtitles which contained styled UTF-8 subtitles (i.e. not just 7 bit
ASCII characters) were not handled correctly. The spec mandates that
styling start/end ranges are in "characters". It's not quite clear what
a "character" is supposed to be, but maybe they mean unicode codepoints.

FFmpeg's decoder treated the style ranges as byte idexes, which could
lead to UTF-8 sequences being broken, and the common code dropping the
whole subtitle line.

Change this and count the codepoint instead. This also means that even
if this is somehow wrong, the decoder won't break UTF-8 sequences
anymore. The sample which led me to investigate this now appears to work
correctly.
2018-03-25 19:27:02 +02: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
James Almer
823362782c Revert "avcodec/vp9_superframe_bsf: cache packets by creating new references rather than moving them"
This reverts commit 7a02b364b6.

The packet fetched by ff_bsf_get_packet() and ff_bsf_get_packet_ref()
is now guaranteed to be reference counted.

Reviewed-by: wm4 <nfxjfg@googlemail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2018-03-24 11:17:55 -03:00
Jacob Trimble
db2a7c947e avcodec/avcodec.h: Add encryption info side data.
This new side-data will contain info on how a packet is encrypted.
This allows the app to handle packet decryption.

Signed-off-by: Jacob Trimble <modmaker@google.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2018-03-24 03:11:08 +01:00
James Almer
dc99ee6b08 avcodec/noise_bsf: move the reference in the bsf internal buffer
There's no need to allocate a new packet for it.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: James Almer <jamrial@gmail.com>
2018-03-23 22:28:27 -03:00
James Almer
ed1f08bfb5 avcodec/bsf: make sure the AVBSFInternal stored packet is reference counted
Some bitstream filters may buffer said packet in their own contexts
for latter use. The documentation for av_bsf_send_packet() doesn't
forbid feeding it non-reference counted packets, which depending on
the way said packets were internally buffered by the bsf it may
result in the data described in them becoming invalid or unavailable
at any time.
This was the case with vp9_superframe after commit e1bc3f4396, which
was then promptly fixed in 37f4a093f7 and 7a02b364b6. It is still the
case even today with vp9_reorder_raw.

With this change the bitstream filters will not have to worry how to
store or consume the packets fed to them.

Reviewed-by: wm4 <nfxjfg@googlemail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2018-03-23 22:10:39 -03:00
James Almer
016d40011a avcodec/extract_extradata: don't uninitialize the H2645Packet on every processed packet
Based on hevc_parser code. This prevents repeated unnecessary allocations
and frees on every packet processed by the bsf.

Reviewed-by: Jun Zhao <mypopydev@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2018-03-22 17:13:56 -03:00
James Almer
4f2ff3a53e avcodec/mpeg4_unpack_bframes: make sure the packet is writable when data needs to be changed
Nothing currently guarantees that the packet passed to the bsf will
be writable.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: James Almer <jamrial@gmail.com>
2018-03-22 16:41:10 -03:00
Gagandeep Singh
c64c97b972 lavc/cfhd: add alpha decompanding in rgba12
Alpha decompanding curve added to post process the decoded alpha channel.
Fixes ticket #6265.
2018-03-22 19:27:22 +01:00
James Almer
59347c2474 avcodec/dxva2_vc1: add missing frame_params callback to vc1_d3d11va2 hwaccel
Fixes ticket #7096

Reviewed-by: wm4 <nfxjfg@googlemail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2018-03-22 11:46:32 -03:00
James Almer
f14ca60001 avcodec/avpacket: add av_packet_make_writable()
Useful as well to quickly make a packet reference counted when it
isn't already so.

Signed-off-by: James Almer <jamrial@gmail.com>
2018-03-21 22:17:40 -03:00
Jun Zhao
28aaed7737 lavc/remove_extradata_bsf: support dump options.
support dump bit stream filter options

Signed-off-by: Jun Zhao <mypopydev@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2018-03-21 22:00:36 -03:00
Jun Zhao
b8e406c01a lavc/noise_bsf: support dump options.
support dump bit stream filter options.

Signed-off-by: Jun Zhao <mypopydev@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2018-03-21 22:00:32 -03:00
Jun Zhao
a4726288f8 lavc/dump_extradata_bsf: support dump options.
support dump bit stream filter options

Signed-off-by: Jun Zhao <mypopydev@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2018-03-21 22:00:28 -03:00
James Almer
7e0dc7210b avcodec/vp9_superframe_split: fix memory leak in case of output packet creation failure
Some function calls may fail after the output packet is initialized.

Signed-off-by: James Almer <jamrial@gmail.com>
2018-03-21 01:38:34 -03:00
Aman Gupta
2ddc6b4392 avcodec/mediacodecdec: propagate SAR to h/w frames
Allows consumers who are converting hardware buffers
to OpenGL textures to render the frames at the intended
display resolution.

Signed-off-by: Aman Gupta <aman@tmm1.net>
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2018-03-20 15:52:23 -07:00
James Almer
2aac5ad2f7 avcodec/mpeg2_metadata: unref output packet on failure
Move the check and unref call to the end to be consistent with other
bsfs.

Reviewed-by: jkqxz
Signed-off-by: James Almer <jamrial@gmail.com>
2018-03-20 18:26:38 -03:00
James Almer
ae36d6cdde avcodec/h265_metadata: fix memory leak in case of output packet creation failure
Some function calls may fail after the output packet is initialized.

Reviewed-by: jkqxz
Signed-off-by: James Almer <jamrial@gmail.com>
2018-03-20 18:20:29 -03:00
James Almer
039be6a23f avcodec/h264_metadata: fix memory leak in case of output packet creation failure
Some function calls may fail after the output packet is initialized.

Reviewed-by: jkqxz
Signed-off-by: James Almer <jamrial@gmail.com>
2018-03-20 18:19:20 -03:00
James Almer
bd60116794 avcodec/mpeg4_unpack_bframes: reduce code duplication
Also fixes one potential leak of side data in out if
the av_packet_from_data() call fails.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: James Almer <jamrial@gmail.com>
2018-03-20 17:39:04 -03:00
James Almer
f18f973469 avcodec/mp3_header_decompress: don't free the user provided packet on error
It's owned by the caller.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: James Almer <jamrial@gmail.com>
2018-03-20 17:39:00 -03:00
James Almer
e4eaaf7bf6 avcodec/vp9_superframe_split: move the reference in the bsf internal buffer
There's no need to allocate a new packet for it.

Signed-off-by: James Almer <jamrial@gmail.com>
2018-03-19 22:26:54 -03:00
Mark Thompson
1c49365c62 h264_metadata: Fix memory leak on multiple display orientation messages
Fixes CID #1430176.
2018-03-19 23:12:01 +00:00
Jun Zhao
dd21f02a04 lavc/mpeg2_metadata_bsf: support dump options.
Signed-off-by: Jun Zhao <mypopydev@gmail.com>
Signed-off-by: Mark Thompson <sw@jkqxz.net>
2018-03-18 20:32:45 +00:00
Jun Zhao
2a103e12ba lavc/h265_metadata_bsf: support dump options.
Signed-off-by: Jun Zhao <mypopydev@gmail.com>
Signed-off-by: Mark Thompson <sw@jkqxz.net>
2018-03-18 20:32:45 +00:00
Jun Zhao
840f5b3e5b lavc/h264_metadata_bsf: support dump options.
Signed-off-by: Jun Zhao <mypopydev@gmail.com>
Signed-off-by: Mark Thompson <sw@jkqxz.net>
2018-03-18 20:32:45 +00:00
James Almer
a094e7f16a avcodec/aac_adtstoasc: move the reference in the bsf internal buffer
There's no need to allocate a new packet for it.

Signed-off-by: James Almer <jamrial@gmail.com>
2018-03-18 17:30:59 -03:00
Mark Thompson
c99f837dde lavc: Add filter_units bitstream filter
This can remove units with types in or not in a given set from a stream.
For example, it can be used to remove all non-VCL NAL units from an H.264 or
H.265 stream.
2018-03-18 18:23:18 +00:00
Mark Thompson
84bb8327f5 cbs: Add a table of all supported codec IDs
Use it as the set of codec IDs supported by the trace_headers BSF.
2018-03-18 17:55:00 +00:00
Mark Thompson
94d42cb4cc h264_metadata: Remove unused fields
The SEI NAL is unused since 69062d0f9b,
while the AUD NAL is small and would more sensibly be on the stack.
2018-03-18 17:55:00 +00:00
Mark Thompson
84c3c766d8 h264_metadata: Add support for display orientation SEI messages 2018-03-18 17:55:00 +00:00
Mark Thompson
c4eeea7633 cbs_h265: Use helper macro for maximum values of fixed-width elements
Apply the same logic as the previous patch to H.265.  There are no cases
which currently overflow here, but this is still more consistent.
2018-03-18 17:55:00 +00:00
Mark Thompson
0e782661d6 cbs_h264: Fix overflow in shifts
The type of the result of a shift operation is unaffected by the type of
the right operand, so some existing code overflows with undefined behaviour
when the element length is 32.  Add a helper macro to calculate the maximum
value correctly and then use it everywhere this pattern appears.

Found-by: Andreas Rheinhardt <andreas.rheinhardt@googlemail.com>
2018-03-18 17:54:55 +00:00
James Almer
86c7d8df95 avformat/codec2: don't include avcodec objects
They belong in avcodec.

Signed-off-by: James Almer <jamrial@gmail.com>
2018-03-17 17:20:25 -03:00