Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
F
ffmpeg.wasm-core
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Linshizhi
ffmpeg.wasm-core
Commits
59e7361c
Commit
59e7361c
authored
Jan 13, 2016
by
Anton Khirnov
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
hwcontext: add a QSV implementation
parent
6f19bbcf
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
857 additions
and
1 deletion
+857
-1
APIchanges
doc/APIchanges
+4
-0
Makefile
libavutil/Makefile
+3
-0
hwcontext.c
libavutil/hwcontext.c
+3
-0
hwcontext.h
libavutil/hwcontext.h
+1
-0
hwcontext_internal.h
libavutil/hwcontext_internal.h
+1
-0
hwcontext_qsv.c
libavutil/hwcontext_qsv.c
+791
-0
hwcontext_qsv.h
libavutil/hwcontext_qsv.h
+53
-0
version.h
libavutil/version.h
+1
-1
No files found.
doc/APIchanges
View file @
59e7361c
...
...
@@ -13,6 +13,10 @@ libavutil: 2015-08-28
API changes, most recent first:
2016-xx-xx - xxxxxxx - lavu 55.16.0 - hwcontext.h hwcontext_qsv.h
Add AV_HWDEVICE_TYPE_QSV and a new installed header with QSV-specific
hwcontext definitions.
2016-xx-xx - xxxxxxx - lavc 57.23.0 - avcodec.h
AVCodecContext.hw_frames_ctx now may be used by decoders.
...
...
libavutil/Makefile
View file @
59e7361c
...
...
@@ -27,6 +27,7 @@ HEADERS = adler32.h \
hwcontext.h
\
hwcontext_cuda.h
\
hwcontext_dxva2.h
\
hwcontext_qsv.h
\
hwcontext_vaapi.h
\
hwcontext_vdpau.h
\
imgutils.h
\
...
...
@@ -110,6 +111,7 @@ OBJS = adler32.o \
OBJS-$(CONFIG_CUDA)
+=
hwcontext_cuda.o
OBJS-$(CONFIG_DXVA2)
+=
hwcontext_dxva2.o
OBJS-$(CONFIG_LIBMFX)
+=
hwcontext_qsv.o
OBJS-$(CONFIG_LZO)
+=
lzo.o
OBJS-$(CONFIG_VAAPI)
+=
hwcontext_vaapi.o
OBJS-$(CONFIG_VDPAU)
+=
hwcontext_vdpau.o
...
...
@@ -118,6 +120,7 @@ OBJS += $(COMPAT_OBJS:%=../compat/%)
SKIPHEADERS-$(CONFIG_CUDA)
+=
hwcontext_cuda.h
SKIPHEADERS-$(CONFIG_DXVA2)
+=
hwcontext_dxva2.h
SKIPHEADERS-$(CONFIG_LIBMFX)
+=
hwcontext_qsv.h
SKIPHEADERS-$(CONFIG_VAAPI)
+=
hwcontext_vaapi.h
SKIPHEADERS-$(CONFIG_VDPAU)
+=
hwcontext_vdpau.h
SKIPHEADERS-$(HAVE_ATOMICS_GCC)
+=
atomic_gcc.h
...
...
libavutil/hwcontext.c
View file @
59e7361c
...
...
@@ -35,6 +35,9 @@ static const HWContextType *hw_table[] = {
#if CONFIG_DXVA2
&
ff_hwcontext_type_dxva2
,
#endif
#if CONFIG_LIBMFX
&
ff_hwcontext_type_qsv
,
#endif
#if CONFIG_VAAPI
&
ff_hwcontext_type_vaapi
,
#endif
...
...
libavutil/hwcontext.h
View file @
59e7361c
...
...
@@ -29,6 +29,7 @@ enum AVHWDeviceType {
AV_HWDEVICE_TYPE_CUDA
,
AV_HWDEVICE_TYPE_VAAPI
,
AV_HWDEVICE_TYPE_DXVA2
,
AV_HWDEVICE_TYPE_QSV
,
};
typedef
struct
AVHWDeviceInternal
AVHWDeviceInternal
;
...
...
libavutil/hwcontext_internal.h
View file @
59e7361c
...
...
@@ -101,6 +101,7 @@ struct AVHWFramesInternal {
extern
const
HWContextType
ff_hwcontext_type_cuda
;
extern
const
HWContextType
ff_hwcontext_type_dxva2
;
extern
const
HWContextType
ff_hwcontext_type_qsv
;
extern
const
HWContextType
ff_hwcontext_type_vaapi
;
extern
const
HWContextType
ff_hwcontext_type_vdpau
;
...
...
libavutil/hwcontext_qsv.c
0 → 100644
View file @
59e7361c
This diff is collapsed.
Click to expand it.
libavutil/hwcontext_qsv.h
0 → 100644
View file @
59e7361c
/*
* This file is part of Libav.
*
* Libav is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* Libav is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with Libav; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
#ifndef AVUTIL_HWCONTEXT_QSV_H
#define AVUTIL_HWCONTEXT_QSV_H
#include <mfx/mfxvideo.h>
/**
* @file
* An API-specific header for AV_HWDEVICE_TYPE_QSV.
*
* This API does not support dynamic frame pools. AVHWFramesContext.pool must
* contain AVBufferRefs whose data pointer points to an mfxFrameSurface1 struct.
*/
/**
* This struct is allocated as AVHWDeviceContext.hwctx
*/
typedef
struct
AVQSVDeviceContext
{
mfxSession
session
;
}
AVQSVDeviceContext
;
/**
* This struct is allocated as AVHWFramesContext.hwctx
*/
typedef
struct
AVQSVFramesContext
{
mfxFrameSurface1
*
surfaces
;
int
nb_surfaces
;
/**
* A combination of MFX_MEMTYPE_* describing the frame pool.
*/
int
frame_type
;
}
AVQSVFramesContext
;
#endif
/* AVUTIL_HWCONTEXT_QSV_H */
libavutil/version.h
View file @
59e7361c
...
...
@@ -54,7 +54,7 @@
*/
#define LIBAVUTIL_VERSION_MAJOR 55
#define LIBAVUTIL_VERSION_MINOR 1
5
#define LIBAVUTIL_VERSION_MINOR 1
6
#define LIBAVUTIL_VERSION_MICRO 0
#define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment