summaryrefslogtreecommitdiff
path: root/libavcodec
Commit message (Collapse)AuthorAge
* libopenh264: Add support for decoding of b-framesMartin Storsjö2018-08-01
| | | | | | | The current git master version of libopenh264 supports decoding of b-frames. Signed-off-by: Martin Storsjö <martin@martin.st>
* avcodec/qsv: fix async supportDmitry Rogozhkin2018-07-26
| | | | | | | | | | | Current implementations of qsv components incorrectly work with async level, they actually try to work in async+1 level stepping into MFX_WRN_DEVICE_BUSY and polling loop. This change address this misbehaviour. Signed-off-by: Dmitry Rogozhkin <dmitry.v.rogozhkin@intel.com> Cc: Maxym Dmytrychenko <maxim.d33@gmail.com> Cc: Zhong Li <zhong.li@intel.com> Signed-off-by: Maxym Dmytrychenko <maxim.d33@gmail.com>
* libfdk-aac: Use enum names instead of literal numbers for the output formatMartin Storsjö2018-07-06
| | | | Signed-off-by: Martin Storsjö <martin@martin.st>
* qsvenc: remove vcm option on LinuxZhong Li2018-06-11
| | | | | | | | | 1. vcm mode is only available for H264. 2. vcm is not supported on Linux, but it is shown when run "./avconv -h encoder=h264_qsv |grep vcm". This shouldn't happen. Signed-off-by: Zhong Li <zhong.li@intel.com> Signed-off-by: Maxym Dmytrychenko <maxim.d33@gmail.com>
* qsvenc: use the compression_level to replace private optionZhong Li2018-06-11
| | | | | | | | Use a common way to control target_usage, keeping consistent with vaapi encoders. The private option preset is kept only for compatibility. Signed-off-by: Zhong Li <zhong.li@intel.com> Signed-off-by: Maxym Dmytrychenko <maxim.d33@gmail.com>
* qsvenc: Add an option to disable MFE modeZhong Li2018-05-24
| | | | | | | | | | | | | Provide proper aliases to enable/disable MFE. The numeric values are ambiguous and misleading (e.g: user may misunderstand setting mfmode to 1 is to enable MFE but actually it is to disable MFE, and set it to be 5 or above is meaningless). MFX_MF_MANUAL hasn't been exposed since it is to be implemented. Signed-off-by: Zhong Li <zhong.li@intel.com> Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
* amfenc: Retain a reference to D3D frames used as input during the encoding ↵Alexander Kravchenko2018-04-19
| | | | | | | | | | | | | | | | process This fixes frame corruption issue when decoder started reusing frames while they are still in use of encoding process Issue with frame corruption was reproduced using: avconv.exe -y -hwaccel d3d11va -hwaccel_output_format d3d11 -i input.h264 -an -c:v h264_amf output.mkv It is recommended to use -extra_hw_frames 16 option in case if hw frames number in pool is not enough Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
* x86: Don't declare a non-static function as inlineMartin Storsjö2018-04-15
| | | | | This fixes building with clang in msvc mode, which does support gcc style inline assembly.
* Drop Windows XP support remnantsDiego Biurrun2018-04-09
|
* w32pthreads: always use Vista+ API, drop XP supportwm42018-04-09
| | | | | | | | | | | | This removes the XP compatibility code, and switches entirely to SRW locks, which are available starting at Windows Vista. This removes CRITICAL_SECTION use, which allows us to add PTHREAD_MUTEX_INITIALIZER, which will be useful later. Windows XP is hereby not a supported build target anymore. Signed-off-by: Diego Biurrun <diego@biurrun.de>
* libx265: Support tiny video sizesVittorio Giovara2018-04-09
| | | | | | Where tiny is less than the default CTU size. Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
* lavc/qsvdec: set complete_frame flags for progressive pictureZhong Li2018-04-08
| | | | | | | | | | | | | | | | | | | | | Set the flag MFX_BITSTREAM_COMPLETE_FRAME when it is a progressive picture. This can fix vc1 decoding segment fault issues because can't set the start code correctly. See: ./avconv -hwaccel qsv -c:v vc1_qsv -i /fate-suite/vc1/SA00040.vc1 -vf "hwdownload, format=nv12" -f rawvideo /dev/null v2: fix some h264 interlaced clips regression a. field_order of some h264 interlaced video (e.g: cama3_vtc_b.avc) is marked as AV_FIELD_UNKNOWN in h264_parser.c. This is not a completed frames. So only set the MFX_BITSTREAM_COMPLETE_FRAME when it is progressive. b. some clips have both progressive and interlaced frames (e.g.CAPAMA3_Sand_F.264), the parsed field_order maybe changed druing the decoding progress. This patch has been verified for other codecs(mpeg2/hevc/vp8). Signed-off-by: Zhong Li <zhong.li@intel.com> Signed-off-by: Maxym Dmytrychenko <maxim.d33@gmail.com>
* qsv: adding Multi Frame Encode supportMaxym Dmytrychenko2018-04-08
| | | | | | | | | | | | | | | | Starting from API 1.25 helps to improve performance of the simultaneous encode, 1:N scenario, like: ./avconv -y -hwaccel qsv -c:v h264_qsv -r 30000/1001 -i ~/bbb_sunflower_1080p_60fps_normal.mp4 -vframes 600 -an \ -filter_complex "split=2[s1][s2]; [s1]scale_qsv=1280:720[o1]; [s2]scale_qsv=960:540[o2]" \ -map [o1] -c:v h264_qsv -b:v 3200k -minrate 3200k -maxrate 3200k -f rawvideo /tmp/3200a.264 \ -map [o2] -c:v h264_qsv -b:v 1750k -minrate 1750k -maxrate 1750k -f rawvideo /tmp/1750a.264 Signed-off-by: Maxym Dmytrychenko <maxim.d33@gmail.com>
* lavc/qsvdec: expose frame pic_type and key_frameZhong Li2018-04-08
| | | | | | | | | | | | | Currently pict_type and key_frame are unset. Add an extra param to fetch the picture type from qsv decoder The judgement “key frame is equal to IDR frame” only suitable for H264. For HEVC, all IRAP frames are key frames, and other codecs have no IDR frame. Signed-off-by: ChaoX A Liu <chaox.a.liu@intel.com> Signed-off-by: Zhong Li <zhong.li@intel.com> Signed-off-by: Maxym Dmytrychenko <maxim.d33@gmail.com>
* libaom: remove references to RGB pixfmtsJames Almer2018-04-04
| | | | | | | | | | | Support for it was apparently never in the codebase, and the enum values were recently removed from the public headers [1] Fixes build with latest libaom build. [1] https://aomedia.googlesource.com/aom/+/3f29cc20e3a4c348cb41a797c68de856ddb84e12 Signed-off-by: James Almer <jamrial@gmail.com>
* libaom: remove references to yuv440p pixfmtJames Almer2018-04-01
| | | | | | | | | | | Support for it was apparently never in the codebase, and the enum values were recently removed from the public headers [1] Fixes build with latest libaom build. [1] https://aomedia.googlesource.com/aom/+/2e3cd5c5c30fa02134681cda900c32486807af3f Signed-off-by: James Almer <jamrial@gmail.com>
* arm: vc1dsp: Add commas between macro argumentsMartin Storsjö2018-03-30
| | | | | | | | | | When targeting darwin, clang requires commas between arguments, while the no-comma form is allowed for other targets. Since Xcode 9.3, the bundled clang supports altmacro and doesn't require using gas-preprocessor any longer. Signed-off-by: Martin Storsjö <martin@martin.st>
* libaomenc: fix profile settingJames Almer2018-03-29
| | | | | | | | Main Profile is yuv420p 8 and 10 bit High Profile is yuv444p 8 and 10 bit Professional Profile is yuv422p 8, 10, and 12 bit, plus every other pixfmt at 12 bit Signed-off-by: James Almer <jamrial@gmail.com>
* avcodec: rename the AV1 profilesJames Almer2018-03-29
| | | | | | Use the proper names instead of numbers Signed-off-by: James Almer <jamrial@gmail.com>
* qsvenc: add the Access Unit Delimiter NAL Unit supportZhong Li2018-03-16
| | | | | Signed-off-by: Zhong Li <zhong.li@intel.com> Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
* qsvenc: Fix a typo of FrameRateExtD/FrameRateExtNZhong Li2018-03-16
| | | | | Signed-off-by: Zhong Li <zhong.li@intel.com> Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
* Support AV1 encoding using libaomLuca Barbato2018-03-12
|
* Add AV1 video decoding support through libaomLuca Barbato2018-03-12
| | | | | Signed-off-by: Diego Biurrun <diego@biurrun.de> Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
* amf: Replace writer_id option with LIBAV_AMF_WRITER_ID constantAlexander Kravchenko2018-03-07
| | | | | | | | | | AMFTraceWriter is an abstraction to configure how AMF outputs its logs for the current process and can be configured to output different levels of trace output. If multiple LibavWriter objects are used in one process, there will be duplication of output in av_log. Use a constant writer_id to prevent this scenario. Signed-off-by: Diego Biurrun <diego@biurrun.de>
* qsvenc: Provide a detailed error message if the parameters are invalidZhong Li2018-03-05
| | | | | | | | | Currently it always shows "Selected ratecontrol mode is not supported by the QSV runtime. Choose a different mode", but sometimes it is not accurate. Signed-off-by: Zhong Li <zhong.li@intel.com> Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
* h264_metadata: Add option to delete filler dataMark Thompson2018-02-20
| | | | | Deletes both filler NAL units and filler SEI messages. (Annex B zero_bytes between NAL units are already discarded by the read/write process.)
* cbs_h264: Add support for filler NAL unitsMark Thompson2018-02-20
|
* cbs_h264: Move slice_group_id array out of PPS structureMark Thompson2018-02-20
| | | | It's very large, and is only used in some FMO streams.
* h264_metadata: Always add the SEI user data to the first access unitMark Thompson2018-02-20
| | | | | This should be added even if the first access unit does not contain parameter sets.
* h264_metadata: Use common SEI addition functionMark Thompson2018-02-20
|
* cbs_h264: Add utility functions to insert/delete SEI messagesMark Thompson2018-02-20
|
* cbs: Refcount all the things!Mark Thompson2018-02-20
| | | | | | | | This makes it easier for users of the CBS API to get alloc/free right - all subelements use the buffer API so that it's clear how to free them. It also allows eliding some redundant copies: the packet -> fragment copy disappears after this change if the input packet is refcounted, and more codec-specific cases are now possible (but not included in this patch).
* cbs_h264: Add hack for pic_timing with no active SPSMark Thompson2018-02-20
| | | | | If there is exactly one possible SPS but it is not yet active then just assume that it should be the active one.
* cbs_h2645: Remove active ps references when it is replacedMark Thompson2018-02-20
|
* cbs: Demote the "decomposition unimplemented" warningMark Thompson2018-02-20
| | | | | | This is harmless and should not be a warning - unknown units are passed through to the write functions unchanged, and no other code will interact with them.
* vaapi_h265: Mark unused entries in RefPicList[01] as explicitly invalidMark Thompson2018-02-20
| | | | | The iHD driver looks at entries beyond num_ref_idx_l[01]_active_minus1 for unknown reasons.
* vaapi_encode: Destroy output buffer pool before VA contextMark Thompson2018-02-20
| | | | | The buffers are created associated with the context, so they should be destroyed before the context is. This is enforced by the iHD driver.
* vaapi_encode: Allocate slice structures and parameter buffers dynamicallyJun Zhao2018-02-20
| | | | | | | | | This removes the arbitrary limit on the allowed number of slices and parameter buffers. From ffmpeg commit e4a6eb70f471eda36592078e8fa1bad87fc9df73. Signed-off-by: Mark Thompson <sw@jkqxz.net>
* cbs: Minor comment fixes / cosmeticsMark Thompson2018-02-20
|
* cbs: Add an explicit type for coded bitstream unit typesMark Thompson2018-02-20
| | | | Also fix conversion specifiers used for the unit type.
* cbs: Allocate the context inside the init functionMark Thompson2018-02-20
| | | | | ... instead of making callers allocate it themselves. This is more consistent with other APIs in libav.
* build: Ignore generated mpeg12framerate test binaryDiego Biurrun2018-02-12
|
* avcodec/vc1dec: fix mby_start for interlaced contentMichael Niedermayer2018-02-11
| | | | | | Bug-Id: 1100 Bug-Id: ffmpeg/Ticket2531 Cc: libav-stable@libav.org
* lavc/qsv: default la_ds to MFX_LOOKAHEAD_DS_UNKNOWNRuiling Song2018-02-12
| | | | | | | | MFX_LOOKAHEAD_DS_UNKNOWN means auto. -1 is not a valid value. Signed-off-by: Ruiling Song <ruiling.song@intel.com> Signed-off-by: Maxym Dmytrychenko <maxim.d33@gmail.com>
* qsvenc: AVBR is not supported on non-windows OSZhong Li2018-02-12
| | | | | | | AVBR is supported from API 1.3 but only available for Windows Signed-off-by: Zhong Li <zhong.li@intel.com> Signed-off-by: Maxym Dmytrychenko <maxim.d33@gmail.com>
* lavc: Add per-thread surfaces in get_hw_frame_parameters()Mark Thompson2018-02-11
| | | | | | | | This number is definitely required when frame threading is enabled, so add it here rather than forcing all users to handle it themselves. DXVA2 contained this addition in specific code as well (therefore being added twice in the internal case) - just remove it from there.
* lavc: Add support for increasing hardware frame pool sizesMark Thompson2018-02-11
| | | | | | | | | | 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.
* Drop some unnecessary config.h #includesDiego Biurrun2018-02-06
|
* avpacket: Initialize the allocated padding area in side dataMartin Storsjö2018-02-01
| | | | | | | | This makes sure that consumers of the side data actually can rely on the padding as intended, without having the callers of av_packet_new_side_data to explicitly zero initialize it. Signed-off-by: Martin Storsjö <martin@martin.st>
* vc1: skip motion compensation when data for last picture is invalidSean McGovern2018-01-30
| | | | | Bug-Id: 1101 Cc: libav-stable@libav.org