[FFmpeg-trac] #7030(avcodec:open): qsv in ffmpeg
FFmpeg
trac at avcodec.org
Mon Feb 26 15:07:12 EET 2018
#7030: qsv in ffmpeg
-------------------------------------+-------------------------------------
Reporter: palich2000 | Owner:
Type: defect | Status: open
Priority: important | Component: avcodec
Version: git-master | Resolution:
Keywords: qsv | Blocked By:
regression | Reproduced by developer: 0
Blocking: |
Analyzed by developer: 0 |
-------------------------------------+-------------------------------------
Comment (by palich2000):
This patch solves the problem, but only for qsv.
{{{
diff --git a/libavcodec/qsvenc_h264.c b/libavcodec/qsvenc_h264.c
index 09e4c0e..5f60675 100644
--- a/libavcodec/qsvenc_h264.c
+++ b/libavcodec/qsvenc_h264.c
@@ -34,6 +34,7 @@
#include "qsv.h"
#include "qsv_internal.h"
#include "qsvenc.h"
+#include "hwaccel.h"
typedef struct QSVH264EncContext {
AVClass *class;
@@ -169,6 +170,16 @@ static const AVCodecDefault qsv_enc_defaults[] = {
{ NULL },
};
+#define HWACCEL_QSV(codec) \
+ HW_CONFIG_HWACCEL(1, 1, 1, QSV, QSV, ff_ ## codec
## _qsv_hwaccel)
+
+const AVHWAccel ff_h264_qsv_hwaccel = {
+ .name = "h264_qsv",
+ .type = AVMEDIA_TYPE_VIDEO,
+ .id = AV_CODEC_ID_H264,
+ .pix_fmt = AV_PIX_FMT_QSV
+};
+
AVCodec ff_h264_qsv_encoder = {
.name = "h264_qsv",
.long_name = NULL_IF_CONFIG_SMALL("H.264 / AVC / MPEG-4 AVC /
MPEG-4 part 10 (Intel Quick Sync Video acceleration)"),
@@ -186,5 +197,9 @@ AVCodec ff_h264_qsv_encoder = {
.priv_class = &class,
.defaults = qsv_enc_defaults,
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
+ .hw_configs = (const AVCodecHWConfigInternal*[]) {
+ HWACCEL_QSV(h264),
+ NULL
+ },
.wrapper_name = "qsv",
};
}}}
--
Ticket URL: <https://trac.ffmpeg.org/ticket/7030#comment:7>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker
More information about the FFmpeg-trac
mailing list