This commit replaces the 1 microsecond delay by 500 microsecond for the
case when the MFX library does return MFX_WRN_DEVICE_BUSY status.
In general this warning never appears for simple encoding or
transcoding session because the GPU is so fast so it almost always is not busy and
any delay value just does not executes.
But for heavy transcoding tasks for example, when several QSV sessions
are running simultaneously then using a 1-microsecond delay may
result in 1000 iterations per each frame.
So here possible a paradoxical case when GPU loading also loads CPU by dummy tasks.
Official MFX/QSV samples by Intel are using 1 millisecond (i.e. 1000
microseconds) everywhere where MFX_WRN_DEVICE_BUSY does appear.
So 500us is a much more optimal value than 1us.
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
There was fixed number of loops (2048) in preparation for resampler, so
when number of samples is smaller than this, there would be an overflow on
ret_buf.
For some reason this behavior popped out only under valgrind with
--disable-memory-poisoning option.
This is now fixed and number of loops depends on actual number of samples.
Signed-off-by: Nedeljko Babic <nedeljko.babic@rt-rk.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* commit '3ee217853a6741b829a2683f49c590618891b1ab':
Support the Hap chunked frame format
Conflicts:
libavcodec/hap.h
libavcodec/hapdec.c
libavcodec/version.h
See: c7e6443441ed5c1b5f64067dfbf4956bc2c6acbb
Merged-by: Michael Niedermayer <michael@niedermayer.cc>
* commit '43dd004747fa697396b47d034a80e069facbea09':
hap: Move some per-stream setup into decoder init rather than per-frame
Conflicts:
libavcodec/hapdec.c
See: 6074956fa1d2617ac602e49931b06df0a751370e
Merged-by: Michael Niedermayer <michael@niedermayer.cc>
This change will reject frames with a texture type which does not match
the stream description.
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
This option is extremely codec specific and only a few codecs employ it.
Move it to codec private options instead: mpegenc family supports only 3
values, xavs and x264 use 5, and xvid has a different metric entirely.
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
it is not optimal when the buffer size is well known at allocation time
This avoids a memcpy()
about 1% faster
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This parameter can be used to inform the allocation code about how much
downsizing might occur, and can be used to optimize how to allocate the
packet
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Avoid clipping due to quantization noise to produce audible
artifacts, by detecting near-clipping signals and both attenuating
them a little and encoding escape-encoded bands (usually the
loudest) rounding towards zero instead of nearest, which tends to
decrease overall energy and thus clipping.
Currently fate tests measure numerical error so this change makes
tests using asynth (which are near clipping) report higher error
not less, because of window attenuation. Yet, they sound better,
not worse (albeit subtle, other samples aren't subtle at all).
Only measuring psychoacoustically weighted error would make for
a representative test, so that will be left for a future patch.
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* commit '9b4b96c0dee90d260891ec765b28f6ca15594340':
force WINAPI_FAMILY to WINAPI_FAMILY_DESKTOP_APP to be able to use dxva.h
Conflicts:
libavcodec/dxva2_internal.h
See: c5327df838396e7c43a56bdd141c0f01ba3edc94
Merged-by: Michael Niedermayer <michael@niedermayer.cc>
The struct definitions in dxva.h, which are necessary in order to
actually use d3d11va, are hidden when WINAPI_FAMILY targets Windows Phone
or WindowsRT.
Building with WINAPI_FAMILY=WINAPI_FAMILY_DESKTOP_APP is disallowed
when targeting ARM. ("Compiling Desktop applications for the ARM
platform is not supported.") So we set _CRT_BUILD_DESKTOP_APP to 0
to tell the runtime not to detect some issues with this mismatching.
The same tweaks to detect if the API is available is done in dxva2_internal.h
when compiling each DXVA2/D3D11VA decoders.
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
The struct definitions in dxva.h, which are necessary in order to
actually use d3d11va, are hidden when WINAPI_FAMILY targets Windows Phone
or WindowsRT.
Building with WINAPI_FAMILY=WINAPI_FAMILY_DESKTOP_APP is disallowed
when targeting ARM. ("Compiling Desktop applications for the ARM
platform is not supported.") So we set _CRT_BUILD_DESKTOP_APP to 0
to tell the runtime not to detect some issues with this mismatching.
The same tweaks to detect if the API is available is done in dxva2_internal.h
when compiling each DXVA2/D3D11VA decoders.
Signed-off-by: Martin Storsjö <martin@martin.st>
Add support for fontsize in style records. The patch uses reset to
directly change back to default style instead of using closing tags,
since we are not handling the default styles right now.
Signed-off-by: Niklesh <niklesh.lalwani@iitb.ac.in>
This also switches to using a separate AVCodecContext for the inner mjpeg decoder
which is cleaner and avoids fields from being overwritten with wrong values
Fixes Ticket162
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Fixes displaying subtitles before any CLUT has been received
Fixes Ticket153
This will of course not display these initial subtitles in the correct
color (as that is not known at that point) but they should look clean
and not corrupted
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Silences warnings when using -Wshift-overflow (GCC 6+)
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: James Almer <jamrial@gmail.com>
* commit 'bf52f773913cf74bdf0d2c8c2cb4473fa1b7801e':
lavc: add Intel libmfx-based MPEG2 decoder.
Conflicts:
configure
libavcodec/qsvdec_mpeg2.c
Some cosmetics merged, rest is related to the removed parser code and
thus not merged
Merged-by: Michael Niedermayer <michael@niedermayer.cc>