rames, so we can send serveral frames to HW at once to increase
performance. Now I changed them to be called in a
asynchronous way, which will make better use of hardware.
1080p transcoding increases about 17% fps on my environment.
Signed-off-by: Wenbin Chen
---
libavcodec/vaapi_encode.c
;wait=1" means wait until operation ready. "wait=0" means
query operation's status. If ready return 0, if still in progress
return EAGAIN.
Signed-off-by: Wenbin Chen
---
libavcodec/vaapi_encode.c | 47 +--
1 file changed, 40 insertions(+), 7
es) with -async_depth=4 can increase 20%
performance on my environment.
The async increases performance but also introduces frame delay.
Signed-off-by: Wenbin Chen
---
libavcodec/vaapi_encode.c | 20 +++-
libavcodec/vaapi_encode.h | 12 ++--
2 files changed, 25 insertio
Adding nb_surfaces in AVD3D11VAFramesContext in the end of the structure
to support flexible size of this arrays and align to
AVDXVA2FramesContext and AVVAAPIFramesContext.
Signed-off-by Wenbin Chen
---
libavutil/hwcontext_d3d11va.c | 3 +--
libavutil/hwcontext_d3d11va.h | 2 ++
2 files changed
ternal
but handle_pairs_internal is alloced with the size of init_pool_size.
This lead to access to illegal address.
Now change it to use nb_surfaces to allocate handle_pairs_internal and the
core dumped error is unseen. Also change D3D11VA to use nb_surfaces
to align to VAAPI and DXVA2.
Signed-off-by: W
-i input.264 \
-vf "hwmap=derive_device=qsv,format=qsv" -c:v h264_qsv output.264
Signed-off-by: nyanmisaka
Signed-off-by: Wenbin Chen
---
libavutil/hwcontext_qsv.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/libavutil/hwcontext_qsv.c b/libavutil/hwcontex
qsv -hwaccel_output_format qsv -hwaccel_device qs -c:v h264_qsv \
-i input.264 -vf "hwmap=derive_device=opencl,format=opencl,avgblur_opencl, \
hwmap=derive_device=qsv:reverse=1:extra_hw_frames=32,format=qsv" \
-c:v h264_qsv output.264
Signed-off-by: nyanmisaka
Signed-off-by: Wenbin Chen
-
From: Bas Nieuwenhuizen
This way we can pass explicit modifiers in. Sometimes the
modifier matters for the number of memory planes that
libva accepts, in particular when dealing with
driver-compressed textures. Furthermore the driver might
not actually be able to determine the implicit modifier
i
this change will not affect current vulkan behaviour.
Signed-off-by: Wenbin Chen
---
libavutil/hwcontext_vulkan.c | 12 +++-
1 file changed, 11 insertions(+), 1 deletion(-)
diff --git a/libavutil/hwcontext_vulkan.c b/libavutil/hwcontext_vulkan.c
index 6041580117..ccf3e58f49 100644
--- a
Vulkan will map nv12 to R8 and GR88, so add this map to vaapi to support
vulkan frame.
Signed-off-by: Wenbin Chen
---
libavutil/hwcontext_vaapi.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/libavutil/hwcontext_vaapi.c b/libavutil/hwcontext_vaapi.c
index 75acc851d6..994b744e4d 100644
sem_sig_val is wrongly assigned to pWaitSemaphoreValues when export drm. Now fix
it.
Signed-off-by: Wenbin Chen
---
libavutil/hwcontext_vulkan.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/libavutil/hwcontext_vulkan.c b/libavutil/hwcontext_vulkan.c
index b857d1a9ed
offset of each plane.
Signed-off-by: Wenbin Chen
---
libavutil/hwcontext_vulkan.c | 46 +++-
libavutil/hwcontext_vulkan.h | 1 +
2 files changed, 46 insertions(+), 1 deletion(-)
diff --git a/libavutil/hwcontext_vulkan.c b/libavutil/hwcontext_vulkan.c
index
Add hwupload and hwdownload support to vulkan when frames are allocated
in one memory
Signed-off-by: Wenbin Chen
---
libavutil/hwcontext_vulkan.c | 10 --
1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/libavutil/hwcontext_vulkan.c b/libavutil/hwcontext_vulkan.c
index
.264 -vf "hwmap=derive_device=vulkan,format=vulkan, \
scale_vulkan=1920:1080,hwmap=derive_device=vaapi,format=vaapi" -c:v h264_vaapi
output.264
Signed-off-by: Wenbin Chen
---
libavutil/hwcontext_vulkan.c | 76 +---
libavutil/hwcontext_vulkan.h | 5 ++
ces). Now add code to make sure
init_pool_size is only set once. Now the following commandline works:
ffmpeg -hwaccel vaapi -hwaccel_device /dev/dri/renderD128 \
-hwaccel_output_format vaapi -i input.264 \
-vf "hwmap=derive_device=qsv,format=qsv" \
-c:v h264_qsv output.264
Signed-off-by
-i input.264 \
-vf "hwmap=derive_device=qsv,format=qsv" -c:v h264_qsv output.264
Signed-off-by: nyanmisaka
Signed-off-by: Wenbin Chen
---
libavutil/hwcontext_qsv.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/libavutil/hwcontext_qsv.c b/libavutil/hwcontex
qsv -hwaccel_output_format qsv -hwaccel_device qs -c:v h264_qsv \
-i input.264 -vf "hwmap=derive_device=opencl,format=opencl,avgblur_opencl, \
hwmap=derive_device=qsv:reverse=1:extra_hw_frames=32,format=qsv" \
-c:v h264_qsv output.264
Signed-off-by: nyanmisaka
Signed-off-by: Wenbin Chen
-
Vulkan will map nv12 to R8 and GR88, so add this map to vaapi to support
vulkan frame.
Signed-off-by: Wenbin Chen
---
libavutil/hwcontext_vaapi.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/libavutil/hwcontext_vaapi.c b/libavutil/hwcontext_vaapi.c
index 75acc851d6..994b744e4d 100644
A new flag frame_flag is also added to AVVulkanFramesContext. User
can use this flag to force enable or disable this behaviour.
A new variable "offset "is added to AVVKFrame. It describe describe the
offset from the memory currently bound to the VkImage.
Signed-off-by: Wenbin Chen
---
libavuti
From: Bas Nieuwenhuizen
This way we can pass explicit modifiers in. Sometimes the
modifier matters for the number of memory planes that
libva accepts, in particular when dealing with
driver-compressed textures. Furthermore the driver might
not actually be able to determine the implicit modifier
i
Add hwupload and hwdownload support to vulkan when frames are allocated
in one memory
Signed-off-by: Wenbin Chen
---
libavutil/hwcontext_vulkan.c | 12 ++--
1 file changed, 10 insertions(+), 2 deletions(-)
diff --git a/libavutil/hwcontext_vulkan.c b/libavutil/hwcontext_vulkan.c
index
.264 -vf "hwmap=derive_device=vulkan,format=vulkan, \
scale_vulkan=1920:1080,hwmap=derive_device=vaapi,format=vaapi" -c:v h264_vaapi
output.264
Signed-off-by: Wenbin Chen
---
libavutil/hwcontext_vulkan.c | 130 +--
1 file changed, 124 insertions(+), 6
From: Bas Nieuwenhuizen
This way we can pass explicit modifiers in. Sometimes the
modifier matters for the number of memory planes that
libva accepts, in particular when dealing with
driver-compressed textures. Furthermore the driver might
not actually be able to determine the implicit modifier
i
Vulkan will map nv12 to R8 and GR88, so add this map to vaapi to support
vulkan frame.
Signed-off-by: Wenbin Chen
---
libavutil/hwcontext_vaapi.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/libavutil/hwcontext_vaapi.c b/libavutil/hwcontext_vaapi.c
index 75acc851d6..994b744e4d 100644
A new flag frame_flag is also added to AVVulkanFramesContext. User
can use this flag to force enable or disable this behaviour.
A new variable "offset "is added to AVVKFrame. It describe describe the
offset from the memory currently bound to the VkImage.
Signed-off-by: Wenbin Chen
---
libavuti
Add support to map vulkan frames to software frames when
using contiguous_planes flag.
Signed-off-by: Wenbin Chen
---
libavutil/hwcontext_vulkan.c | 11 +--
1 file changed, 9 insertions(+), 2 deletions(-)
diff --git a/libavutil/hwcontext_vulkan.c b/libavutil/hwcontext_vulkan.c
index
.264 -vf "hwmap=derive_device=vulkan,format=vulkan, \
scale_vulkan=1920:1080,hwmap=derive_device=vaapi,format=vaapi" -c:v h264_vaapi
output.264
Signed-off-by: Wenbin Chen
---
libavutil/hwcontext_vulkan.c | 127 +--
1 file changed, 121 insertions(+), 6
From: Bas Nieuwenhuizen
This way we can pass explicit modifiers in. Sometimes the
modifier matters for the number of memory planes that
libva accepts, in particular when dealing with
driver-compressed textures. Furthermore the driver might
not actually be able to determine the implicit modifier
i
Vulkan will map nv12 to R8 and GR88, so add this map to vaapi to support
vulkan frame.
Signed-off-by: Wenbin Chen
---
libavutil/hwcontext_vaapi.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/libavutil/hwcontext_vaapi.c b/libavutil/hwcontext_vaapi.c
index 75acc851d6..994b744e4d 100644
A new flag frame_flag is also added to AVVulkanFramesContext. User
can use this flag to force enable or disable this behaviour.
A new variable "offset "is added to AVVKFrame. It describe describe the
offset from the memory currently bound to the VkImage.
Signed-off-by: Wenbin Chen
---
libavuti
Add support to map vulkan frames to software frames when
using contiguous_planes flag.
Signed-off-by: Wenbin Chen
---
libavutil/hwcontext_vulkan.c | 11 +--
1 file changed, 9 insertions(+), 2 deletions(-)
diff --git a/libavutil/hwcontext_vulkan.c b/libavutil/hwcontext_vulkan.c
index
.264 -vf "hwmap=derive_device=vulkan,format=vulkan, \
scale_vulkan=1920:1080,hwmap=derive_device=vaapi,format=vaapi" -c:v h264_vaapi
output.264
Signed-off-by: Wenbin Chen
---
libavutil/hwcontext_vulkan.c | 127 +--
1 file changed, 121 insertions(+), 6
ces). Now add code to make sure
init_pool_size is only set once. Now the following commandline works:
ffmpeg -hwaccel vaapi -hwaccel_device /dev/dri/renderD128 \
-hwaccel_output_format vaapi -i input.264 \
-vf "hwmap=derive_device=qsv,format=qsv" \
-c:v h264_qsv output.264
Signed-off-by
-i input.264 \
-vf "hwmap=derive_device=qsv,format=qsv" -c:v h264_qsv output.264
Signed-off-by: nyanmisaka
Signed-off-by: Wenbin Chen
---
libavutil/hwcontext_qsv.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/libavutil/hwcontext_qsv.c b/libavutil/hwcontex
qsv -hwaccel_output_format qsv -hwaccel_device qs -c:v h264_qsv \
-i input.264 -vf "hwmap=derive_device=opencl,format=opencl,avgblur_opencl, \
hwmap=derive_device=qsv:reverse=1:extra_hw_frames=32,format=qsv" \
-c:v h264_qsv output.264
Signed-off-by: nyanmisaka
Signed-off-by: Wenbin Chen
-
From: Bas Nieuwenhuizen
This way we can pass explicit modifiers in. Sometimes the
modifier matters for the number of memory planes that
libva accepts, in particular when dealing with
driver-compressed textures. Furthermore the driver might
not actually be able to determine the implicit modifier
i
Vulkan will map nv12 to R8 and GR88, so add this map to vaapi to support
vulkan frame.
Signed-off-by: Wenbin Chen
---
libavutil/hwcontext_vaapi.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/libavutil/hwcontext_vaapi.c b/libavutil/hwcontext_vaapi.c
index 75acc851d6..994b744e4d 100644
A new flag frame_flag is also added to AVVulkanFramesContext. User
can use this flag to force enable or disable this behaviour.
A new variable "offset "is added to AVVKFrame. It describe describe the
offset from the memory currently bound to the VkImage.
Signed-off-by: Wenbin Chen
---
libavuti
Add support to map vulkan frames to software frames when
using contiguous_planes flag.
Signed-off-by: Wenbin Chen
---
libavutil/hwcontext_vulkan.c | 11 +--
1 file changed, 9 insertions(+), 2 deletions(-)
diff --git a/libavutil/hwcontext_vulkan.c b/libavutil/hwcontext_vulkan.c
index
.264 -vf "hwmap=derive_device=vulkan,format=vulkan, \
scale_vulkan=1920:1080,hwmap=derive_device=vaapi,format=vaapi" -c:v h264_vaapi
output.264
Signed-off-by: Wenbin Chen
---
libavutil/hwcontext_vulkan.c | 127 +--
1 file changed, 121 insertions(+), 6
area with border pixel to fix this
run2run problem, and also move the new AVFrame to global structure
to reduce redundant allocation operation to increase preformance.
Signed-off-by: Wenbin Chen
---
libavutil/hwcontext_qsv.c | 96 +--
1 file changed, 83 insert
reading a key frame.
Signed-off-by: Wenbin Chen
---
libavcodec/qsvdec.c | 7 +++
1 file changed, 7 insertions(+)
diff --git a/libavcodec/qsvdec.c b/libavcodec/qsvdec.c
index d10f90a0db..8133406085 100644
--- a/libavcodec/qsvdec.c
+++ b/libavcodec/qsvdec.c
@@ -616,6 +616,13 @@ int ff_qsv_pr
x27;d better specify the bitrate (-b:v XXX).
Signed-off-by: Wenbin CHEN
---
libavcodec/vaapi_encode.c | 42 +--
libavcodec/vaapi_encode.h | 3 +++
2 files changed, 34 insertions(+), 11 deletions(-)
diff --git a/libavcodec/vaapi_encode.c b/libavcodec/vaapi_encod
From: "Chen,Wenbin"
MSDK vc1 and av1 sometimes output frame into the same suface, but
ffmpeg-qsv assume the surface will be used only once, so it will
unref the frame when it receives the outpur surface. Now change
it to unref frame according to queue count.
Signed-off-by W
From: "Chen,Wenbin"
MSDK vc1 and av1 sometimes output frame into the same suface, but
ffmpeg-qsv assume the surface will be used only once, so it will
unref the frame when it receives the output surface. Now change
it to unref frame according to queue count.
Signed-off-by W
From: "Chen,Wenbin"
FFmpeg-qsv decoder reinit codec when width and height change, but there
are not only resolution change need to reinit codec. I change it to use
return value from DecodeFrameAsync() to decide whether decoder need to
be reinitialized.
Signed-off-by Wenbin Chen
---
param from decoderHeader to configure surface.
Signed-off-by Wenbin Chen
---
libavcodec/qsvdec.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/libavcodec/qsvdec.c b/libavcodec/qsvdec.c
index 569ccd4fba..3ab48ea7a2 100644
--- a/libavcodec/qsvdec.c
+++ b/libavcode
From: "Chen,Wenbin"
ChromaForamt for mjpeg-qsv is always set to yuv420, and this will be
wrong when encode other pixel format (for example yuyv422). I change
this assignment to be adaptive to pix_fmt.
Signed-off-by: Wenbin Chen
---
libavcodec/qsvenc.c | 3 ++-
1 file changed, 2
I
assign the out_link's w/h to output
frame to overwrite the w/h got from hw_frame_ctx.
Signed-off-by: Wenbin Chen
---
libavfilter/qsvvpp.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/libavfilter/qsvvpp.c b/libavfilter/qsvvpp.c
index f216b3f248..8658a70083 100644
--- a/libavfilter
From: "Chen,Wenbin"
FFmpeg-qsv decoder reinit codec when width and height change, but there
are not only resolution change need to reinit codec. I change it to use
return value from DecodeFrameAsync() to decide whether decoder need to
be reinitialized.
Signed-off-by Wenbin Chen
---
w I
assign the out_link's w/h to output
frame to overwrite the w/h got from hw_frame_ctx.
Signed-off-by: Wenbin Chen
---
libavfilter/qsvvpp.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/libavfilter/qsvvpp.c b/libavfilter/qsvvpp.c
index f216b3f248..70d6cb49
->height to 1088, which is different from the
height of
encoder (1080) and this will be treated as resolution change. The aligend value
can
be kept in hw_frame_ctx as it is hardware dependent. Now I
assign the out_link's w/h to output
frame to overwrite the w/h got from hw_frame_ctx.
Si
From: "Chen,Wenbin"
Add mbbrc to hevc_qsv
For detailed description, please see "mbbrc" part in:
https://github.com/Intel-Media-SDK/MediaSDK/blob/master/doc/mediasdk-man.md#mfxextcodingoption2
Signed-off-by: Wenbin Chen
---
libavcodec/qsvenc.c | 5 +++--
1 file changed
From: "Chen,Wenbin"
FFmpeg-qsv decoder reinit codec when width and height change, but there
are not only resolution change need to reinit codec. I change it to use
return value from DecodeFrameAsync() to decide whether decoder need to
be reinitialized.
Signed-off-by Wenbin Chen
Sig
er operation.
Remove the buffer_count and use the got_frame to decide whether the
decoder is drain.
Signed-off-by: Wenbin Chen
Signed-off-by Guangxin Xu
---
libavcodec/qsvdec.c | 26 --
1 file changed, 12 insertions(+), 14 deletions(-)
diff --git a/libavcodec/qsvdec.c b
) and max_b_frames is 8 (default) and decoder
may followed by VPP, use NumFrameSuggest + 16 to set init_pool_size.
Sigend-off-by Wenbin Chen
Signed-off-by Guangxin Xu
---
fftools/ffmpeg_qsv.c | 9 -
libavcodec/qsvdec.c | 14 ++
2 files changed, 22 insertions(+), 1 deletion
mjpeg_qsv don't support dynamic resetting, so skip it.
Signed-off-by: Wenbin Chen
---
libavcodec/qsvenc.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/libavcodec/qsvenc.c b/libavcodec/qsvenc.c
index 7ac5390f10..842cfb845e 100644
--- a/libavcodec/qsvenc.c
+++ b/libav
Signed-off-by: Wenbin Chen
---
doc/encoders.texi | 4
libavcodec/qsvenc.c | 20
libavcodec/qsvenc.h | 2 ++
3 files changed, 26 insertions(+)
diff --git a/doc/encoders.texi b/doc/encoders.texi
index d36464d629..aadb6ab9fd 100644
--- a/doc/encoders.texi
+++ b/doc
Signed-off-by: Wenbin Chen
---
doc/encoders.texi | 3 +++
libavcodec/qsvenc.c | 16
libavcodec/qsvenc.h | 2 ++
3 files changed, 21 insertions(+)
diff --git a/doc/encoders.texi b/doc/encoders.texi
index aadb6ab9fd..bc1a4dae38 100644
--- a/doc/encoders.texi
+++ b/doc
Add "slice" intra refresh type to h264_qsv and hevc_qsv. This type means
horizontal refresh by slices without overlapping. Also update the doc.
Signed-off-by: Wenbin Chen
---
doc/encoders.texi| 12
libavcodec/qsvenc_h264.c | 1 +
libavcodec/qsvenc_hevc.c | 1
Signed-off-by: Wenbin Chen
---
doc/encoders.texi | 7 +++
libavcodec/qsvenc.c | 33 +
libavcodec/qsvenc.h | 5 +
3 files changed, 45 insertions(+)
diff --git a/doc/encoders.texi b/doc/encoders.texi
index d5d695d39c..da56159858 100644
--- a/doc
Signed-off-by: Wenbin Chen
---
doc/encoders.texi | 11 +++
libavcodec/qsvenc.c | 78 +
libavcodec/qsvenc.h | 9 ++
3 files changed, 98 insertions(+)
diff --git a/doc/encoders.texi b/doc/encoders.texi
index da56159858..850e3c261c 100644
Signed-off-by: Wenbin Chen
---
doc/encoders.texi | 4
libavcodec/qsvenc.c | 23 ++-
libavcodec/qsvenc.h | 2 ++
3 files changed, 28 insertions(+), 1 deletion(-)
diff --git a/doc/encoders.texi b/doc/encoders.texi
index 850e3c261c..453150f3e7 100644
--- a/doc
will not match the same obu frame. Now size
check is added before parsing obu frame to avoid this error.
Signed-off-by: Wenbin Chen
---
libavcodec/cbs_av1.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/libavcodec/cbs_av1.c b/libavcodec/cbs_av1.c
index 154d9156cf..9c51a8c7c8 100644
--- a
Signed-off-by: Wenbin Chen
---
doc/encoders.texi | 3 +++
libavcodec/qsvenc.c | 26 ++
libavcodec/qsvenc.h | 2 ++
3 files changed, 31 insertions(+)
diff --git a/doc/encoders.texi b/doc/encoders.texi
index ac71f50ad2..4ed7ce1bb0 100644
--- a/doc/encoders.texi
+++ b
Signed-off-by: Wenbin Chen
---
doc/encoders.texi | 6 ++
libavcodec/qsvenc.c | 38 ++
libavcodec/qsvenc.h | 5 +
3 files changed, 49 insertions(+)
diff --git a/doc/encoders.texi b/doc/encoders.texi
index 4ed7ce1bb0..2b6412dbec 100644
--- a/doc
Signed-off-by: Wenbin Chen
---
doc/encoders.texi | 4
libavcodec/qsvenc.c | 21 +
libavcodec/qsvenc.h | 2 ++
3 files changed, 27 insertions(+)
diff --git a/doc/encoders.texi b/doc/encoders.texi
index 2b6412dbec..741d545ea1 100644
--- a/doc/encoders.texi
+++ b/doc
Unset qsv_h264 and qsv_hevc's default settings. Let runtime to decide
these parameters, so that it can choose the best parameter and ffmpeg-qsv
can keep up with runtime's update.
Signed-off-by: Wenbin Chen
---
libavcodec/qsvenc_h264.c | 4 ++--
libavcodec/qsvenc_hevc.c | 2 +-
2 fil
Set preset default value to MFX_TARGETUSAGE_UNKNOWN. Let runtime to
decide the targetUsage, so that ffmpeg-qsv can keep up with runtime's
update.
Signed-off-by: Wenbin Chen
---
libavcodec/qsvenc.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/libavcodec/qsven
Set preset default value to MFX_TARGETUSAGE_UNKNOWN. Let runtime to
decide the targetUsage, so that ffmpeg-qsv can keep up with runtime's
update.
Signed-off-by: Wenbin Chen
---
libavcodec/qsvenc.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/libavcodec/qsven
Unset qsv_h264 and qsv_hevc's default settings. Let runtime to decide
these parameters, so that it can choose the best parameter and ffmpeg-qsv
can keep up with runtime's update.
Signed-off-by: Wenbin Chen
---
libavcodec/qsvenc_h264.c | 5 ++---
libavcodec/qsvenc_hevc.c | 3 +--
2 fil
From: Wenbinc-Bin
The max_frame_size parameter is set only when codec is h264. Now I add hevc
in that conditional statement.
Signed-off-by: Wenbin CHEN
---
libavcodec/qsvenc.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/libavcodec/qsvenc.c b/libavcodec
From: Wenbinc-Bin
The max_frame_size parameter is set only when codec is h264. Now I add
hevc in that conditional statement.
Signed-off-by: Wenbin CHEN
---
libavcodec/qsvenc.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/libavcodec/qsvenc.c b/libavcodec/qsvenc.c
index
From: Wenbinc-Bin
MediaSDK already has a flag to control deblocking (DisableDeblockingIdc). Add
dblk_idc parameter in ffmpeg to expose this flag to user.
Sigend-off-by: Wenbin Chen
---
libavcodec/qsvenc.c | 4
libavcodec/qsvenc.h | 3 +++
2 files changed, 7 insertions(+)
diff --git a
From: Wenbinc-Bin
Add low latency P-pyramid support for qsv, and it relates to a new
command line parameter "-p_strategy". To enable this flag, user also
need to set "-bf" to -1 or 0.
Signed-off-by Wenbin Chen
---
libavcodec/qsvenc.c | 22 ++
libavcodec
From: Wenbinc-Bin
Add low latency P-pyramid support for qsv, and it relates to a new
command line parameter "-p_strategy". To enable this flag, user also
need to set "-bf" to -1 or 0.
Signed-off-by Wenbin Chen
---
libavcodec/qsvenc.c | 23 +++
liba
efers to
https://github.com/Intel-Media-SDK/MediaSDK/blob/master/doc/mediasdk-man.md#PRefType
Signed-off-by Wenbin Chen
---
libavcodec/qsvenc.c | 32
libavcodec/qsvenc.h | 2 ++
2 files changed, 34 insertions(+)
diff --git a/libavcodec/qsvenc.c b/libavcodec/qsve
efers to
https://github.com/Intel-Media-SDK/MediaSDK/blob/master/doc/mediasdk-man.md#PRefType
patch V4: modify the coding style problem.
Signed-off-by Wenbin Chen
---
libavcodec/qsvenc.c | 32
libavcodec/qsvenc.h | 2 ++
2 files changed, 34 insertions(+)
diff
efers to
https://github.com/Intel-Media-SDK/MediaSDK/blob/master/doc/mediasdk-man.md#PRefType
patch V2~V4: modify the coding style problem.
patch V5: forget to change "if" statement's coding style and fix it in V5.
Signed-off-by Wenbin Chen
---
libavcodec/qsvenc.c | 32 +
From: Wenbinc-Bin
Add low latency P-pyramid support for qsv, and it relates to a new
command line parameter "-p_strategy". To enable this flag, user also
need to set "-bf" to 0. P-strategy has two modes "1-simple" and "2-pyramid".
Signed-off-by Wenbin
From: Wenbinc-Bin
The max_frame_size parameter is set only when codec is h264. Now I add hevc in
that conditional statement.
Signed-off-by: Wenbin Chen
---
libavcodec/qsvenc.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/libavcodec/qsvenc.c b/libavcodec/qsvenc.c
index
From: Wenbinc-Bin
MediaSDK already has a flag to control deblocking (DisableDeblockingIdc). Add
dblk_idc parameter in ffmpeg to expose this flag to user.
Sigend-off-by: Wenbin Chen
---
libavcodec/qsvenc.c | 6 ++
libavcodec/qsvenc.h | 3 +++
2 files changed, 9 insertions(+)
diff --git a
models refer to
https://github.com/Intel-Media-SDK/MediaSDK/blob/master/doc/mediasdk-man.md#PRefType
Signed-off-by Wenbin Chen
---
libavcodec/qsvenc.c | 30 ++
libavcodec/qsvenc.h | 2 ++
2 files changed, 32 insertions(+)
diff --git a/libavcodec/qsvenc.c b/libavcod
From: Wenbinc-Bin
Use h264_sei to parse SEI data got from MediaSDK. Extract frame
packing arrangement information from SEI data and config AVStereo3D
side data for decoded frame.
Sigend-off-by: Wenbin Chen
---
libavcodec/qsv_internal.h | 2 +
libavcodec/qsvdec.c | 149
From: Wenbinc-Bin
Add transform skip option for hevc_qsv. Command line option
is "transform_skip". By enabling this option, the
transform_skip_enabled_flag in PPS will be set to 1. This option
is only supported in the platform newer than ICL.
Signed-off-by Wenbin Chen
---
libavcode
A2RGB20 format in MediaSDK, and for
A2RGB10 the two MSBs is A channels while this two bits in X2RGB10Le is
undefined. MediaSDK team is discussing about this, so I leave an interface
here.
Sigend-of-by: Wenbin Chen
---
libavcodec/qsv.c | 16
libavcodec/qsvenc.c | 19
fmpeg-qsv,
so add allocate and free process as well.
Sigend-off-by: Wenbin Chen
---
libavcodec/qsv_internal.h | 3 ++
libavcodec/qsvenc.c | 74 +++
2 files changed, 77 insertions(+)
diff --git a/libavcodec/qsv_internal.h b/libavcodec/qsv_internal.h
From: Wenbinc-Bin
Add an new intra refresh type: "horizontal", and an new param
ref_cycle_dist. This param specify the distance between the
beginnings of the intra-refresh cycles in frames.
Signed-off-by: Wenbin Chen
---
libavcodec/qsvenc.c | 13 +++--
libavcode
) and decoder may followed by VPP,
use NumFrameSuggest + 16 to set init_pool_size.
Sigend-off-by Wenbin Chen
---
fftools/ffmpeg_qsv.c | 9 -
libavcodec/qsvdec.c | 28 +++-
2 files changed, 35 insertions(+), 2 deletions(-)
diff --git a/fftools/ffmpeg_qsv.c b/ff
released, the new one is already created, and somehow the device
memory is stil be taken, even if the destory memory function is called.
Moving unref before creating new context can solve this problem.
Signed-off-by Wenbin Chen
---
libavcodec/qsvdec.c | 2 ++
1 file changed, 2 insertions(+)
diff --git
From: Bas Nieuwenhuizen
This way we can pass explicit modifiers in. Sometimes the
modifier matters for the number of memory planes that
libva accepts, in particular when dealing with
driver-compressed textures. Furthermore the driver might
not actually be able to determine the implicit modifier
i
Vulkan will map nv12 to R8 and GR88, so add this map to vaapi to support
vulkan frame.
Signed-off-by: Wenbin Chen
---
libavutil/hwcontext_vaapi.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/libavutil/hwcontext_vaapi.c b/libavutil/hwcontext_vaapi.c
index 75acc851d6..994b744e4d 100644
A new flag frame_flag is also added to AVVulkanFramesContext. User
can use this flag to force enable or disable this behaviour.
A new variable "offset "is added to AVVKFrame. It describe describe the
offset from the memory currently bound to the VkImage.
Signed-off-by: Wenbin Chen
---
libavuti
Add support to map vulkan frames to software frames when
using contiguous_planes flag.
Signed-off-by: Wenbin Chen
---
libavutil/hwcontext_vulkan.c | 11 +--
1 file changed, 9 insertions(+), 2 deletions(-)
diff --git a/libavutil/hwcontext_vulkan.c b/libavutil/hwcontext_vulkan.c
index
.264 -vf "hwmap=derive_device=vulkan,format=vulkan, \
scale_vulkan=1920:1080,hwmap=derive_device=vaapi,format=vaapi" -c:v h264_vaapi
output.264
Signed-off-by: Wenbin Chen
---
libavutil/hwcontext_vulkan.c | 133 +--
1 file changed, 127 insertions(+), 6
0:y=0:alpha=255, \
hwdownload,format=p010le" -f rawvideo -y output_p010.yuv
Signed-off-by: Wenbin Chen
---
libavfilter/vf_overlay_qsv.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/libavfilter/vf_overlay_qsv.c b/libavfilter/vf_overlay_qsv.c
index 7e76b39aa9..d947a1faa1 100644
--- a/l
ces). Now add code to make sure
init_pool_size is only set once. Now the following commandline works:
ffmpeg -hwaccel vaapi -hwaccel_device /dev/dri/renderD128 \
-hwaccel_output_format vaapi -i input.264 \
-vf "hwmap=derive_device=qsv,format=qsv" \
-c:v h264_qsv output.264
Signed-off-by
qsv -hwaccel_output_format qsv -hwaccel_device qs -c:v h264_qsv \
-i input.264 -vf "hwmap=derive_device=opencl,format=opencl,avgblur_opencl, \
hwmap=derive_device=qsv:reverse=1:extra_hw_frames=32,format=qsv" \
-c:v h264_qsv output.264
Signed-off-by: nyanmisaka
Signed-off-by: Wenbin Chen
-
fill padding area with border pixel to fix this
run2run problem, and also move the new AVFrame to global structure
to reduce redundant allocation operation to increase preformance.
Signed-off-by: Wenbin Chen
---
libavutil/hwcontext_qsv.c | 96 +--
1 file
Add doc for qsv decoder.
Add more option's introduction to qsv encoder.
Signed-off-by: Wenbin Chen
---
doc/decoders.texi | 42
doc/encoders.texi | 253 +-
2 files changed, 292 insertions(+), 3 deletions(-)
diff --git a/doc/decoders.t
1 - 100 of 276 matches
Mail list logo