summaryrefslogtreecommitdiffstats
path: root/libhb/enc_qsv.c
Commit message (Collapse)AuthorAgeFilesLines
* 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
* QSV: avoid a hang when GopRefDist 0 is requested by the user.Rodeo2013-12-151-1/+2
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@5932 b64f7644-9d1e-0410-96f1-a4d463321fa5
* QSV: check whether b_pyramid is respected in the non-workaround path too. Rodeo2013-12-151-22/+23
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@5931 b64f7644-9d1e-0410-96f1-a4d463321fa5
* QSV: don't print BPyramid value when it's not supported by the ↵Rodeo2013-12-151-3/+10
| | | | | | | | | implementation used, as it's somewhat pointless (would always say off anyway). This also allows to notice whether b-pyramid is available more quickly when reading the log. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@5930 b64f7644-9d1e-0410-96f1-a4d463321fa5
* QSV: update libhb presets to match a more recent recommendation.Rodeo2013-12-051-1/+29
| | | | | | | Based on a patch by Maxym Dmytrychenko. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@5913 b64f7644-9d1e-0410-96f1-a4d463321fa5
* RB626: return code support addedmaxd2013-11-051-0/+2
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@5876 b64f7644-9d1e-0410-96f1-a4d463321fa5
* QSV: temporarily work around a bug in the Intel 33.x driver series.Rodeo2013-10-221-0/+22
| | | | | | | | Based on a patch by Maxym Dmytrychenko. Thanks! git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@5851 b64f7644-9d1e-0410-96f1-a4d463321fa5
* QSV: move LookAheadDepth miminum to commmon code.Rodeo2013-09-251-3/+0
| | | | | | | | Unlike the maximum limit, which is HandBrake-specific, this is not our bug, and we can't fix it, short of dropping support for all old Haswell drivers. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@5813 b64f7644-9d1e-0410-96f1-a4d463321fa5
* QSV: miscellaneous option-related improvements.Rodeo2013-09-241-1/+2
| | | | | | | | All user-controlled settings except GOP-related ones now have an explicit default value (it's never "unknown"). git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@5812 b64f7644-9d1e-0410-96f1-a4d463321fa5
* QSV: improve ExtBRC workaround.Rodeo2013-09-241-8/+6
| | | | | | | | It doesn't play well with CQP either. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@5811 b64f7644-9d1e-0410-96f1-a4d463321fa5
* QSV: remove RateDistortionOpt control.Rodeo2013-09-241-8/+5
| | | | | | | | The option seems to have no effect in my testing, and is of limited usefulness, so let's leave it unknown (up to the implementation). git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@5810 b64f7644-9d1e-0410-96f1-a4d463321fa5
* QSV: fix a hang with lookahead RC and some graphics drivers.Rodeo2013-09-241-0/+3
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@5809 b64f7644-9d1e-0410-96f1-a4d463321fa5
* QSV: ExtBRC/MBBRC and lookahead are mutually exclusive, plus miscelleanous ↵Rodeo2013-09-241-11/+24
| | | | | | | | | | stuff found in testing. Thanks to gmb for pointing it out, and Nina Kurina for pointing out the ExtBRC/AsyncDepth issue. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@5808 b64f7644-9d1e-0410-96f1-a4d463321fa5
* QSV: libhb-based preset system.Rodeo2013-09-241-20/+5
| | | | | | | | | | | | Modeled after x264's preset system. MMBRC and LookAhead RC are now enabled by default, whereas Trellis is disabled by default. Please note that Windows GUI support will come later, and that preset names are not definitive. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@5806 b64f7644-9d1e-0410-96f1-a4d463321fa5
* QSV: use ifdefs rather than filtering to bypass libmfx references during ↵Rodeo2013-09-241-0/+4
| | | | | | compilation without --enable-qsv. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@5805 b64f7644-9d1e-0410-96f1-a4d463321fa5
* QSV: MBBRC is actually Haswell-only.Rodeo2013-09-241-4/+8
| | | | | | | | This is confirmed by marketing material and testing with the 3257 driver on Ivy Bridge hardware. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@5802 b64f7644-9d1e-0410-96f1-a4d463321fa5
* QSV: re-use the encqsvInit MFX session when using the encode-only path.Rodeo2013-09-241-13/+14
| | | | | | | | This seems to work around a weird and obscure issue on some systems. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@5801 b64f7644-9d1e-0410-96f1-a4d463321fa5
* QSV: adjust trellis logging when B- or P-frames are disabled.Rodeo2013-09-151-3/+5
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@5784 b64f7644-9d1e-0410-96f1-a4d463321fa5
* QSV: minor refactoring.Rodeo2013-09-151-17/+18
| | | | | | | | | | Address the easy issues first. Apologies if I broke HandBrakeInterop. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@5783 b64f7644-9d1e-0410-96f1-a4d463321fa5
* QSV: add an option to control B-pyramid.Rodeo2013-09-051-32/+131
| | | | | | | | | | Since there is no way to control it directly, output settings need to be adjusted a bit. Disabled by default for improved compatibility. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@5768 b64f7644-9d1e-0410-96f1-a4d463321fa5
* QSV: minor cleanup.Rodeo2013-09-011-68/+6
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@5760 b64f7644-9d1e-0410-96f1-a4d463321fa5
* QSV: choose and re-use a "preferred" implementation instead of using ↵Rodeo2013-09-011-22/+21
| | | | | | | | | | MFX_IMPL_AUTO_ANY. This fixes a rare issue where hardware support was detected as available and used in encqsvInit, but MFXInit silently fell back to software in qsv_enc_init (still don't know what that's all about though). git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@5759 b64f7644-9d1e-0410-96f1-a4d463321fa5
* enc_qsv: fix crash.Rodeo2013-08-261-0/+6
| | | | | | | | This was caused by trying to encode even when encoder initialization failed (qsv_enc_init). git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@5752 b64f7644-9d1e-0410-96f1-a4d463321fa5
* QSV: don't use AVBR rate control.Rodeo2013-08-251-40/+18
| | | | | | | | User testing shows it's unreliable, and VBR works just as well for that purpose. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@5749 b64f7644-9d1e-0410-96f1-a4d463321fa5