summaryrefslogtreecommitdiffstats
path: root/libhb/enc_qsv.c
Commit message (Collapse)AuthorAgeFilesLines
* qsv: hevc10 fix for correct declaration of data/zero bitsmaxd2017-04-071-1/+1
|
* qsv: adding hevc10 support starting from KBL platformmaxd2017-03-051-11/+42
|
* qsv: fix init_delay referenceJohn Stebbins2017-02-151-1/+1
| | | | Missed changing this when moving init_delay out of esconfig union
* qsv: Allocate planes contiguously.maxd2017-02-021-6/+4
| | | | | | Better performance and less prone to crashing. Fixes #540 and closes #558.
* qsv: Fix a memory leak in enc_qsv.c Patch by maxim_d33sr552016-12-231-1/+1
|
* libhb: add new color tags for Bt 2020 and SMPTE ST 2084Damiano Galassi2016-12-211-1/+7
|
* qsv: rename av_qsv* to hb_qsv*John Stebbins2016-12-171-66/+66
|
* decavcodec: enable QSV-accelerated H.264 decoding with libavcodec.Tim Walker2016-12-171-1/+1
| | | | | | Videos get decoded to NV12 in system memory and converted to our internal colorspace via libswscale. It should be noted that QSV- accelerated decoding now works with all our videos encoders :-)
* libhb: add a missing argument to a hb_sws_get_context.Damiano Galassi2016-11-121-1/+2
|
* enc_qsv: flag all HEVC random access points as keyframes.Tim Walker2016-09-171-7/+17
|
* libhb: send initial chapter through pipelineJohn Stebbins2016-05-171-110/+28
| | | | | Eliminate the need for everyone to assume that the first chapter starts at the first frame.
* qsv: fix access to freed memory when interrupting encodeJohn Stebbins2016-04-131-39/+39
|
* libhb: fix incorrect assumption that video quality is always positive.Tim Walker2016-03-311-3/+3
|
* QSV: better compatibility with recent SW libmaxd2016-03-301-1/+2
| | | | | | To avoid having max_async_depth == 0 with recent MSDK SW library, this would help to allocate properly internal resources and to avoid crash during encode
* sync: gut and rewriteJohn Stebbins2016-01-211-0/+3
| | | | | | | | | | | sync.c was difficult to read, fragile, and prone to difficult to diagnose bugs (see https://forum.handbrake.fr/viewtopic.php?f=12&t=33147) This rewrite simplifies the code, removes signals, locking and yield that probably cause the above problem and is much more flexible. It fixes a wider variety of timestamp issues than before and is much easier to extend if other timestamp analysis is desired.
* libhb: make muxer, sync, and reader behave like other work objectsJohn Stebbins2015-11-091-1/+1
| | | | | | | | | | | | | simplify job initialization sequence, clean up code, and document dependencies in the sequence better. Make hb_add set job->sequence_id. It is no longer necessary for the frontend to do this. If the frontend needs the sequence_id, it is returned by hb_add(). Clean up use of interjob. do_job() now uses sequence_id to detect when a new sequence of related jobs is running and automatically clears interjob.
* libhb: add hb_buffer_listJohn Stebbins2015-09-241-63/+32
| | | | | This brings together several independent implementations of a simple buffer list manager.
* qsv: HEVC encoding support.Tim Walker2015-09-201-56/+289
|
* QSV: load required plug-ins before encoding, too.Rodeo2015-06-271-13/+57
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@7327 b64f7644-9d1e-0410-96f1-a4d463321fa5
* QSV: add new capability guards for some extended video parameter buffers.Rodeo2015-06-271-6/+14
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@7326 b64f7644-9d1e-0410-96f1-a4d463321fa5
* QSV: parse and print profile & level in a codec-agnostic way.Rodeo2015-06-271-87/+18
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@7325 b64f7644-9d1e-0410-96f1-a4d463321fa5
* QSV: cleanup LookAheadDepth handling.Rodeo2015-06-271-1/+6
| | | | | | | When possible, allow a value of 100 for users that might want it. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@7323 b64f7644-9d1e-0410-96f1-a4d463321fa5
* libhb: Use a buffer flat to indicate EOFjstebbins2015-05-011-1/+1
| | | | | | | | | | | | ... instead of a 0 length buffer. This fixes this issue: https://forum.handbrake.fr/viewtopic.php?f=12&t=31959 Theora can create 0 length output. These 0 length frames indicate duplicate frames. So we can't use 0 length buffers to indicate the end of the stream. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@7143 b64f7644-9d1e-0410-96f1-a4d463321fa5
* libhb: fix building with QSV enabled.Rodeo2015-03-131-2/+2
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6985 b64f7644-9d1e-0410-96f1-a4d463321fa5
* libhb: use jansson for hb_dictjstebbins2015-03-091-8/+14
| | | | | | | | This paves the way to doing preset processing in libhb. Initially for the CLI but other frontends may benefit eventually. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6981 b64f7644-9d1e-0410-96f1-a4d463321fa5
* QSV: reduce logging in encqsvInitRodeo2015-02-011-23/+27
| | | | | | | Only log non-essential parameters when their values differ from our global default; this avoids tempting users with options they know nothing about. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6850 b64f7644-9d1e-0410-96f1-a4d463321fa5
* QSV: improve ICQ and LA handlingRodeo2015-02-011-2/+2
| | | | | | | ICQ is incompatible with ABR encoding; LA is incompatible with CQP. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6848 b64f7644-9d1e-0410-96f1-a4d463321fa5
* QSV: improve B-Pyramid handling.Rodeo2015-02-011-110/+139
| | | | | | | Newer drivers support enabling/disabling it via a dedicated option without having to modify other GOP parameters. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6847 b64f7644-9d1e-0410-96f1-a4d463321fa5
* json: fix building with qsv enabled.jstebbins2014-12-161-21/+17
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6603 b64f7644-9d1e-0410-96f1-a4d463321fa5
* json: add json APIsjstebbins2014-12-161-10/+11
| | | | | | | | | | There are several changes to job and title structs that break current windows interop code. The interop code should be changed such that it only uses json APIs. So if there is any missing features (or bugs) in these APIs, please let me know. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6602 b64f7644-9d1e-0410-96f1-a4d463321fa5
* QSV: always use our own DTS.Rodeo2014-04-081-58/+40
| | | | | | | | | | | | | Previously, the DTS provided by MSDK was used if it was available and the frame rate was constant. Our own DTS is indentical to MSDK's (when the frame rate is constant), but MSDK will sometimes provide 1 or 2 bogus DTS over the duration of a file, causing the encode to abort (lavf is picky). git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6158 b64f7644-9d1e-0410-96f1-a4d463321fa5
* QSV: fix logging of whether B-frames are enabled.Rodeo2014-04-071-7/+7
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6157 b64f7644-9d1e-0410-96f1-a4d463321fa5
* libhb: add generic code for converting NALRodeo2014-04-071-89/+8
| | | | | | | | | | | | | | unit bitstreams (H.264, HEVC) to and from Annex B format. Only used by QSV for now, but could always come in handy down the road. May also fix an issue introduced by the recent QSV cleanup patchset. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6156 b64f7644-9d1e-0410-96f1-a4d463321fa5
* QSV: fix previous commit (outdated version of the same patch, sorry9.Rodeo2014-04-061-16/+7
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6154 b64f7644-9d1e-0410-96f1-a4d463321fa5
* QSV: reset the encoder at chapter points to force a keyframeRodeo2014-04-061-13/+37
| | | | | | | | This replaces the mfxEncodeCtrl-based solution used up to this point, as it's not guaranteed to work with some parameter combinations. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6153 b64f7644-9d1e-0410-96f1-a4d463321fa5
* enc_qsv: cleanup encoding loop, part 3.Rodeo2014-04-051-158/+169
| | | | | | | Move encoding loop to its own function and simplify encqsvWork. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6150 b64f7644-9d1e-0410-96f1-a4d463321fa5
* enc_qsv: cleanup encoding loop, part 2.Rodeo2014-04-051-231/+369
| | | | | | | | Move related code to separate functions whenever possible; simplify or improve the code where applicable. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6149 b64f7644-9d1e-0410-96f1-a4d463321fa5
* enc_qsv: cleanup encoding loop, part 1.Rodeo2014-04-051-214/+172
| | | | | | | | | | | | Mainly: - allocate frame surface data in qsv_enc_init - setup input frame surface outside the loop - remove unnecessary variable - handle errors via a common path git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6148 b64f7644-9d1e-0410-96f1-a4d463321fa5
* enc_qsv: simplify qsv_enc_init.Rodeo2014-04-051-19/+10
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6147 b64f7644-9d1e-0410-96f1-a4d463321fa5
* enc_qsv: simplify encqsvClose.Rodeo2014-04-051-53/+43
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6146 b64f7644-9d1e-0410-96f1-a4d463321fa5
* enc_qsv: general cleanup.Rodeo2014-04-051-300/+369
| | | | | | | | | | | | | | | | | Mainly: - coding style - formatting - indentation Also: - fix two warnings - remove unnecessary header - remove unused parameter in parse_nalus git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6145 b64f7644-9d1e-0410-96f1-a4d463321fa5
* QSV: alternate workaround for B-pyramid + keyframe insertion issue.Rodeo2014-03-041-10/+10
| | | | | | | | | | The original workaround (SVN 6016) got rid of the invalid timestamps, but did nothing to prevent visual artifacts. Since it doesn't look like I'll be fixing the underlying cause right away, this will avoid broken output for our users in the meantime. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6098 b64f7644-9d1e-0410-96f1-a4d463321fa5
* QSV: API 1.8 support and related improvementsRodeo2014-02-181-60/+151
| | | | | | | | | Optional feature detection now done via MFXVideoENCODE_Query. This should work better with future hardware and encoder implementations. Optional API 1.8 features are not tested (not supported by the software implementation, and no drivers with API 1.8 support available yet). git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6041 b64f7644-9d1e-0410-96f1-a4d463321fa5
* libhb: make encoder options less x264-centric.Rodeo2014-02-131-15/+15
| | | | | | | | profile/level control and, to a lesser extent, encoder presets and tunes are becoming more common. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6031 b64f7644-9d1e-0410-96f1-a4d463321fa5
* QSV: fix compiler warning.Rodeo2014-02-121-6/+7
| | | | | | | Was fixed for encx264 in SVN revision 5999. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6028 b64f7644-9d1e-0410-96f1-a4d463321fa5
* QSV: work around an issue where two consecutive IDR frames cause Media SDK ↵Rodeo2014-02-071-0/+10
| | | | | | to use one more consecutive reference B-frame than accounted for by the initial PTS-DTS delay. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6016 b64f7644-9d1e-0410-96f1-a4d463321fa5
* QSV: base the B-pyramid check on the presence of B-references, rather than ↵Rodeo2014-01-121-7/+9
| | | | | | | | | the initial delay. This is potentially more accurate. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@5963 b64f7644-9d1e-0410-96f1-a4d463321fa5
* encoders: save chapter markers in a list.Rodeo2014-01-071-17/+59
| | | | | | | If chapters were a few seconds apart or less, we would encounter a new marker before the previous one had been placed in an output buffer. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@5956 b64f7644-9d1e-0410-96f1-a4d463321fa5
* qsv: log occurrences of invalid DTS (i.e. DTS > PTS) in the encoder.Rodeo2014-01-021-0/+9
| | | | | | | The muxer is not verbose enough, plus we have access to some additional info not available downstream. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@5951 b64f7644-9d1e-0410-96f1-a4d463321fa5
* qsv: add some frame type helper functions.Rodeo2014-01-021-11/+3
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@5950 b64f7644-9d1e-0410-96f1-a4d463321fa5