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_common.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_COMMON_H
24
#define AVCODEC_MEDIACODECDEC_COMMON_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_COMMON_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_common.h:35
MediaCodecDecContext::stride
int stride
Definition:
mediacodecdec_common.h:53
ff_mediacodec_dec_is_flushing
int ff_mediacodec_dec_is_flushing(AVCodecContext *avctx, MediaCodecDecContext *s)
Definition:
mediacodecdec_common.c:751
ff_mediacodec_dec_init
int ff_mediacodec_dec_init(AVCodecContext *avctx, MediaCodecDecContext *s, const char *mime, FFAMediaFormat *format)
Definition:
mediacodecdec_common.c:455
MediaCodecDecContext::eos
int eos
Definition:
mediacodecdec_common.h:49
MediaCodecDecContext::height
int height
Definition:
mediacodecdec_common.h:52
FFAMediaFormat
Definition:
mediacodec_wrapper.c:158
pkt
static AVPacket pkt
Definition:
demuxing_decoding.c:54
MediaCodecDecContext::width
int width
Definition:
mediacodecdec_common.h:51
ff_mediacodec_dec_close
int ff_mediacodec_dec_close(AVCodecContext *avctx, MediaCodecDecContext *s)
Definition:
mediacodecdec_common.c:744
MediaCodecBuffer
Opaque structure representing a MediaCodec buffer to render.
Definition:
mediacodecdec_common.h:86
ff_mediacodec_dec_decode
int ff_mediacodec_dec_decode(AVCodecContext *avctx, MediaCodecDecContext *s, AVFrame *frame, int *got_frame, AVPacket *pkt)
Definition:
mediacodecdec_common.c:541
MediaCodecBuffer::pts
int64_t pts
Definition:
mediacodecdec_common.h:90
MediaCodecBuffer::index
ssize_t index
Definition:
mediacodecdec_common.h:89
frame
static AVFrame * frame
Definition:
demuxing_decoding.c:53
MediaCodecDecContext::crop_right
int crop_right
Definition:
mediacodecdec_common.h:60
MediaCodecDecContext::started
int started
Definition:
mediacodecdec_common.h:46
ff_mediacodec_dec_flush
int ff_mediacodec_dec_flush(AVCodecContext *avctx, MediaCodecDecContext *s)
Definition:
mediacodecdec_common.c:726
MediaCodecDecContext::pix_fmt
enum AVPixelFormat pix_fmt
Definition:
mediacodecdec_common.h:56
MediaCodecDecContext::refcount
volatile int refcount
Definition:
mediacodecdec_common.h:37
MediaCodecDecContext::surface
void * surface
Definition:
mediacodecdec_common.h:44
MediaCodecDecContext::output_buffer_count
uint64_t output_buffer_count
Definition:
mediacodecdec_common.h:62
frame.h
reference-counted frame API
MediaCodecDecContext::color_format
int color_format
Definition:
mediacodecdec_common.h:55
MediaCodecDecContext::crop_bottom
int crop_bottom
Definition:
mediacodecdec_common.h:58
MediaCodecBuffer::ctx
MediaCodecDecContext * ctx
Definition:
mediacodecdec_common.h:88
MediaCodecDecContext::flushing
int flushing
Definition:
mediacodecdec_common.h:48
MediaCodecDecContext::crop_left
int crop_left
Definition:
mediacodecdec_common.h:59
MediaCodecDecContext::draining
int draining
Definition:
mediacodecdec_common.h:47
avcodec.h
Libavcodec external API header.
AVCodecContext
main external API structure.
Definition:
avcodec.h:1676
format
static const char * format
Definition:
movenc.c:47
MediaCodecDecContext::codec
FFAMediaCodec * codec
Definition:
mediacodecdec_common.h:41
MediaCodecDecContext::format
FFAMediaFormat * format
Definition:
mediacodecdec_common.h:42
FFAMediaCodec
Definition:
mediacodec_wrapper.c:270
MediaCodecBuffer::released
volatile int released
Definition:
mediacodecdec_common.h:91
MediaCodecDecContext::crop_top
int crop_top
Definition:
mediacodecdec_common.h:57
pixfmt.h
pixel format definitions
MediaCodecDecContext::slice_height
int slice_height
Definition:
mediacodecdec_common.h:54
AVPixelFormat
AVPixelFormat
Pixel format.
Definition:
pixfmt.h:60
AVPacket
This structure stores compressed data.
Definition:
avcodec.h:1578
MediaCodecDecContext::codec_name
char * codec_name
Definition:
mediacodecdec_common.h:39
Generated on Thu Oct 27 2016 19:33:26 for FFmpeg by
1.8.6