FFmpeg
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
Examples
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
libavcodec
mediacodecdec.h
Go to the documentation of this file.
1
/*
2
* Android MediaCodec decoder
3
*
4
* Copyright (c) 2015-2016 Matthieu Bouron <matthieu.bouron stupeflix.com>
5
*
6
* This file is part of FFmpeg.
7
*
8
* FFmpeg is free software; you can redistribute it and/or
9
* modify it under the terms of the GNU Lesser General Public
10
* License as published by the Free Software Foundation; either
11
* version 2.1 of the License, or (at your option) any later version.
12
*
13
* FFmpeg is distributed in the hope that it will be useful,
14
* but WITHOUT ANY WARRANTY; without even the implied warranty of
15
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16
* Lesser General Public License for more details.
17
*
18
* You should have received a copy of the GNU Lesser General Public
19
* License along with FFmpeg; if not, write to the Free Software
20
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
21
*/
22
23
#ifndef AVCODEC_MEDIACODECDEC_H
24
#define AVCODEC_MEDIACODECDEC_H
25
26
#include <stdint.h>
27
#include <sys/types.h>
28
29
#include "
libavutil/frame.h
"
30
#include "
libavutil/pixfmt.h
"
31
32
#include "
avcodec.h
"
33
#include "
mediacodec_wrapper.h
"
34
35
typedef
struct
MediaCodecDecContext
{
36
37
volatile
int
refcount
;
38
39
char
*
codec_name
;
40
41
FFAMediaCodec
*
codec
;
42
FFAMediaFormat
*
format
;
43
44
void
*
surface
;
45
46
int
started
;
47
int
draining
;
48
int
flushing
;
49
int
eos
;
50
51
int
width
;
52
int
height
;
53
int
stride
;
54
int
slice_height
;
55
int
color_format
;
56
enum
AVPixelFormat
pix_fmt
;
57
int
crop_top
;
58
int
crop_bottom
;
59
int
crop_left
;
60
int
crop_right
;
61
62
uint64_t
output_buffer_count
;
63
64
}
MediaCodecDecContext
;
65
66
int
ff_mediacodec_dec_init
(
AVCodecContext
*avctx,
67
MediaCodecDecContext
*
s
,
68
const
char
*mime,
69
FFAMediaFormat
*
format
);
70
71
int
ff_mediacodec_dec_decode
(
AVCodecContext
*avctx,
72
MediaCodecDecContext
*
s
,
73
AVFrame
*
frame
,
74
int
*got_frame,
75
AVPacket
*
pkt
);
76
77
int
ff_mediacodec_dec_flush
(
AVCodecContext
*avctx,
78
MediaCodecDecContext
*
s
);
79
80
int
ff_mediacodec_dec_close
(
AVCodecContext
*avctx,
81
MediaCodecDecContext
*
s
);
82
83
int
ff_mediacodec_dec_is_flushing
(
AVCodecContext
*avctx,
84
MediaCodecDecContext
*
s
);
85
86
typedef
struct
MediaCodecBuffer
{
87
88
MediaCodecDecContext
*
ctx
;
89
ssize_t
index
;
90
int64_t
pts
;
91
volatile
int
released
;
92
93
}
MediaCodecBuffer
;
94
95
#endif
/* AVCODEC_MEDIACODECDEC_H */
mediacodec_wrapper.h
s
const char * s
Definition:
avisynth_c.h:768
AVFrame
This structure describes decoded (raw) audio or video data.
Definition:
frame.h:184
MediaCodecDecContext
Definition:
mediacodecdec.h:35
MediaCodecDecContext::stride
int stride
Definition:
mediacodecdec.h:53
MediaCodecDecContext::eos
int eos
Definition:
mediacodecdec.h:49
MediaCodecDecContext::height
int height
Definition:
mediacodecdec.h:52
FFAMediaFormat
Definition:
mediacodec_wrapper.c:158
ff_mediacodec_dec_flush
int ff_mediacodec_dec_flush(AVCodecContext *avctx, MediaCodecDecContext *s)
Definition:
mediacodecdec.c:726
pkt
static AVPacket pkt
Definition:
demuxing_decoding.c:54
ff_mediacodec_dec_init
int ff_mediacodec_dec_init(AVCodecContext *avctx, MediaCodecDecContext *s, const char *mime, FFAMediaFormat *format)
Definition:
mediacodecdec.c:455
MediaCodecDecContext::width
int width
Definition:
mediacodecdec.h:51
MediaCodecBuffer
Opaque structure representing a MediaCodec buffer to render.
Definition:
mediacodecdec.h:86
MediaCodecBuffer::pts
int64_t pts
Definition:
mediacodecdec.h:90
MediaCodecBuffer::index
ssize_t index
Definition:
mediacodecdec.h:89
frame
static AVFrame * frame
Definition:
demuxing_decoding.c:53
MediaCodecDecContext::crop_right
int crop_right
Definition:
mediacodecdec.h:60
MediaCodecDecContext::started
int started
Definition:
mediacodecdec.h:46
ff_mediacodec_dec_close
int ff_mediacodec_dec_close(AVCodecContext *avctx, MediaCodecDecContext *s)
Definition:
mediacodecdec.c:744
MediaCodecDecContext::pix_fmt
enum AVPixelFormat pix_fmt
Definition:
mediacodecdec.h:56
MediaCodecDecContext::refcount
volatile int refcount
Definition:
mediacodecdec.h:37
MediaCodecDecContext::surface
void * surface
Definition:
mediacodecdec.h:44
MediaCodecDecContext::output_buffer_count
uint64_t output_buffer_count
Definition:
mediacodecdec.h:62
frame.h
reference-counted frame API
MediaCodecDecContext::color_format
int color_format
Definition:
mediacodecdec.h:55
MediaCodecDecContext::crop_bottom
int crop_bottom
Definition:
mediacodecdec.h:58
MediaCodecBuffer::ctx
MediaCodecDecContext * ctx
Definition:
mediacodecdec.h:88
MediaCodecDecContext::flushing
int flushing
Definition:
mediacodecdec.h:48
MediaCodecDecContext::crop_left
int crop_left
Definition:
mediacodecdec.h:59
MediaCodecDecContext::draining
int draining
Definition:
mediacodecdec.h:47
ff_mediacodec_dec_is_flushing
int ff_mediacodec_dec_is_flushing(AVCodecContext *avctx, MediaCodecDecContext *s)
Definition:
mediacodecdec.c:751
avcodec.h
Libavcodec external API header.
AVCodecContext
main external API structure.
Definition:
avcodec.h:1675
ff_mediacodec_dec_decode
int ff_mediacodec_dec_decode(AVCodecContext *avctx, MediaCodecDecContext *s, AVFrame *frame, int *got_frame, AVPacket *pkt)
Definition:
mediacodecdec.c:541
format
static const char * format
Definition:
movenc.c:47
MediaCodecDecContext::codec
FFAMediaCodec * codec
Definition:
mediacodecdec.h:41
MediaCodecDecContext::format
FFAMediaFormat * format
Definition:
mediacodecdec.h:42
FFAMediaCodec
Definition:
mediacodec_wrapper.c:270
MediaCodecBuffer::released
volatile int released
Definition:
mediacodecdec.h:91
MediaCodecDecContext::crop_top
int crop_top
Definition:
mediacodecdec.h:57
pixfmt.h
pixel format definitions
MediaCodecDecContext::slice_height
int slice_height
Definition:
mediacodecdec.h:54
AVPixelFormat
AVPixelFormat
Pixel format.
Definition:
pixfmt.h:60
AVPacket
This structure stores compressed data.
Definition:
avcodec.h:1577
MediaCodecDecContext::codec_name
char * codec_name
Definition:
mediacodecdec.h:39
Generated on Tue Oct 18 2016 19:20:54 for FFmpeg by
1.8.6