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
e4d9f05c
Commit
e4d9f05c
authored
Dec 04, 2017
by
Aman Gupta
Committed by
Matthieu Bouron
Dec 15, 2017
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
lavu/hwcontext: add AV_HWDEVICE_TYPE_MEDIACODEC
Signed-off-by:
Matthieu Bouron
<
matthieu.bouron@gmail.com
>
parent
5450972b
Show whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
99 additions
and
1 deletion
+99
-1
APIchanges
doc/APIchanges
+4
-0
Makefile
libavutil/Makefile
+2
-0
hwcontext.c
libavutil/hwcontext.c
+4
-0
hwcontext.h
libavutil/hwcontext.h
+1
-0
hwcontext_internal.h
libavutil/hwcontext_internal.h
+1
-0
hwcontext_mediacodec.c
libavutil/hwcontext_mediacodec.c
+50
-0
hwcontext_mediacodec.h
libavutil/hwcontext_mediacodec.h
+36
-0
version.h
libavutil/version.h
+1
-1
No files found.
doc/APIchanges
View file @
e4d9f05c
...
@@ -15,6 +15,10 @@ libavutil: 2017-10-21
...
@@ -15,6 +15,10 @@ libavutil: 2017-10-21
API changes, most recent first:
API changes, most recent first:
2017-xx-xx - xxxxxxx - lavu 56.6.100 - hwcontext.h hwcontext_mediacodec.h
Add AV_HWDEVICE_TYPE_MEDIACODEC and a new installed header with
MediaCodec-specific hwcontext definitions.
2017-xx-xx - xxxxxxc - lavc 58.7.100 - avcodec.h
2017-xx-xx - xxxxxxc - lavc 58.7.100 - avcodec.h
Add AV_CODEC_CAP_HARDWARE, AV_CODEC_CAP_HYBRID, and AVCodec.wrapper_name,
Add AV_CODEC_CAP_HARDWARE, AV_CODEC_CAP_HYBRID, and AVCodec.wrapper_name,
and mark all AVCodecs accordingly.
and mark all AVCodecs accordingly.
...
...
libavutil/Makefile
View file @
e4d9f05c
...
@@ -37,6 +37,7 @@ HEADERS = adler32.h \
...
@@ -37,6 +37,7 @@ HEADERS = adler32.h \
hwcontext_drm.h
\
hwcontext_drm.h
\
hwcontext_dxva2.h
\
hwcontext_dxva2.h
\
hwcontext_qsv.h
\
hwcontext_qsv.h
\
hwcontext_mediacodec.h
\
hwcontext_vaapi.h
\
hwcontext_vaapi.h
\
hwcontext_videotoolbox.h
\
hwcontext_videotoolbox.h
\
hwcontext_vdpau.h
\
hwcontext_vdpau.h
\
...
@@ -166,6 +167,7 @@ OBJS-$(CONFIG_OPENCL) += hwcontext_opencl.o
...
@@ -166,6 +167,7 @@ OBJS-$(CONFIG_OPENCL) += hwcontext_opencl.o
OBJS-$(CONFIG_VAAPI)
+=
hwcontext_vaapi.o
OBJS-$(CONFIG_VAAPI)
+=
hwcontext_vaapi.o
OBJS-$(CONFIG_VIDEOTOOLBOX)
+=
hwcontext_videotoolbox.o
OBJS-$(CONFIG_VIDEOTOOLBOX)
+=
hwcontext_videotoolbox.o
OBJS-$(CONFIG_VDPAU)
+=
hwcontext_vdpau.o
OBJS-$(CONFIG_VDPAU)
+=
hwcontext_vdpau.o
OBJS-$(CONFIG_MEDIACODEC)
+=
hwcontext_mediacodec.o
OBJS
+=
$
(
COMPAT_OBJS:%
=
../compat/%
)
OBJS
+=
$
(
COMPAT_OBJS:%
=
../compat/%
)
...
...
libavutil/hwcontext.c
View file @
e4d9f05c
...
@@ -55,6 +55,9 @@ static const HWContextType * const hw_table[] = {
...
@@ -55,6 +55,9 @@ static const HWContextType * const hw_table[] = {
#endif
#endif
#if CONFIG_VIDEOTOOLBOX
#if CONFIG_VIDEOTOOLBOX
&
ff_hwcontext_type_videotoolbox
,
&
ff_hwcontext_type_videotoolbox
,
#endif
#if CONFIG_MEDIACODEC
&
ff_hwcontext_type_mediacodec
,
#endif
#endif
NULL
,
NULL
,
};
};
...
@@ -69,6 +72,7 @@ static const char *const hw_type_names[] = {
...
@@ -69,6 +72,7 @@ static const char *const hw_type_names[] = {
[
AV_HWDEVICE_TYPE_VAAPI
]
=
"vaapi"
,
[
AV_HWDEVICE_TYPE_VAAPI
]
=
"vaapi"
,
[
AV_HWDEVICE_TYPE_VDPAU
]
=
"vdpau"
,
[
AV_HWDEVICE_TYPE_VDPAU
]
=
"vdpau"
,
[
AV_HWDEVICE_TYPE_VIDEOTOOLBOX
]
=
"videotoolbox"
,
[
AV_HWDEVICE_TYPE_VIDEOTOOLBOX
]
=
"videotoolbox"
,
[
AV_HWDEVICE_TYPE_MEDIACODEC
]
=
"mediacodec"
,
};
};
enum
AVHWDeviceType
av_hwdevice_find_type_by_name
(
const
char
*
name
)
enum
AVHWDeviceType
av_hwdevice_find_type_by_name
(
const
char
*
name
)
...
...
libavutil/hwcontext.h
View file @
e4d9f05c
...
@@ -35,6 +35,7 @@ enum AVHWDeviceType {
...
@@ -35,6 +35,7 @@ enum AVHWDeviceType {
AV_HWDEVICE_TYPE_D3D11VA
,
AV_HWDEVICE_TYPE_D3D11VA
,
AV_HWDEVICE_TYPE_DRM
,
AV_HWDEVICE_TYPE_DRM
,
AV_HWDEVICE_TYPE_OPENCL
,
AV_HWDEVICE_TYPE_OPENCL
,
AV_HWDEVICE_TYPE_MEDIACODEC
,
};
};
typedef
struct
AVHWDeviceInternal
AVHWDeviceInternal
;
typedef
struct
AVHWDeviceInternal
AVHWDeviceInternal
;
...
...
libavutil/hwcontext_internal.h
View file @
e4d9f05c
...
@@ -166,5 +166,6 @@ extern const HWContextType ff_hwcontext_type_qsv;
...
@@ -166,5 +166,6 @@ extern const HWContextType ff_hwcontext_type_qsv;
extern
const
HWContextType
ff_hwcontext_type_vaapi
;
extern
const
HWContextType
ff_hwcontext_type_vaapi
;
extern
const
HWContextType
ff_hwcontext_type_vdpau
;
extern
const
HWContextType
ff_hwcontext_type_vdpau
;
extern
const
HWContextType
ff_hwcontext_type_videotoolbox
;
extern
const
HWContextType
ff_hwcontext_type_videotoolbox
;
extern
const
HWContextType
ff_hwcontext_type_mediacodec
;
#endif
/* AVUTIL_HWCONTEXT_INTERNAL_H */
#endif
/* AVUTIL_HWCONTEXT_INTERNAL_H */
libavutil/hwcontext_mediacodec.c
0 → 100644
View file @
e4d9f05c
/*
* This file is part of FFmpeg.
*
* FFmpeg 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.
*
* FFmpeg 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 FFmpeg; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
#include "config.h"
#include "buffer.h"
#include "common.h"
#include "hwcontext.h"
#include "hwcontext_internal.h"
#include "hwcontext_mediacodec.h"
static
int
mc_device_create
(
AVHWDeviceContext
*
ctx
,
const
char
*
device
,
AVDictionary
*
opts
,
int
flags
)
{
if
(
device
&&
device
[
0
])
{
av_log
(
ctx
,
AV_LOG_ERROR
,
"Device selection unsupported.
\n
"
);
return
AVERROR_UNKNOWN
;
}
return
0
;
}
const
HWContextType
ff_hwcontext_type_mediacodec
=
{
.
type
=
AV_HWDEVICE_TYPE_MEDIACODEC
,
.
name
=
"mediacodec"
,
.
device_hwctx_size
=
sizeof
(
AVMediaCodecDeviceContext
),
.
device_create
=
mc_device_create
,
.
pix_fmts
=
(
const
enum
AVPixelFormat
[]){
AV_PIX_FMT_MEDIACODEC
,
AV_PIX_FMT_NONE
},
};
libavutil/hwcontext_mediacodec.h
0 → 100644
View file @
e4d9f05c
/*
* This file is part of FFmpeg.
*
* FFmpeg 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.
*
* FFmpeg 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 FFmpeg; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
#ifndef AVUTIL_HWCONTEXT_MEDIACODEC_H
#define AVUTIL_HWCONTEXT_MEDIACODEC_H
/**
* MediaCodec details.
*
* Allocated as AVHWDeviceContext.hwctx
*/
typedef
struct
AVMediaCodecDeviceContext
{
/**
* android/view/Surface handle, to be filled by the user.
*
* This is the default surface used by decoders on this device.
*/
void
*
surface
;
}
AVMediaCodecDeviceContext
;
#endif
/* AVUTIL_HWCONTEXT_MEDIACODEC_H */
libavutil/version.h
View file @
e4d9f05c
...
@@ -79,7 +79,7 @@
...
@@ -79,7 +79,7 @@
*/
*/
#define LIBAVUTIL_VERSION_MAJOR 56
#define LIBAVUTIL_VERSION_MAJOR 56
#define LIBAVUTIL_VERSION_MINOR
5
#define LIBAVUTIL_VERSION_MINOR
6
#define LIBAVUTIL_VERSION_MICRO 100
#define LIBAVUTIL_VERSION_MICRO 100
#define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \
#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