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
qsvdec.h
Go to the documentation of this file.
1
/*
2
* Intel MediaSDK QSV utility functions
3
*
4
* copyright (c) 2013 Luca Barbato
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_QSVDEC_H
24
#define AVCODEC_QSVDEC_H
25
26
#include <stdint.h>
27
#include <sys/types.h>
28
29
#include <mfx/mfxvideo.h>
30
31
#include "
libavutil/fifo.h
"
32
#include "
libavutil/frame.h
"
33
#include "
libavutil/pixfmt.h
"
34
35
#include "
avcodec.h
"
36
#include "
qsv_internal.h
"
37
38
typedef
struct
QSVContext
{
39
// the session used for decoding
40
mfxSession
session
;
41
42
// the session we allocated internally, in case the caller did not provide
43
// one
44
QSVSession
internal_qs
;
45
46
/**
47
* a linked list of frames currently being used by QSV
48
*/
49
QSVFrame
*
work_frames
;
50
51
AVFifoBuffer
*
async_fifo
;
52
AVFifoBuffer
*
input_fifo
;
53
54
// this flag indicates that header parsed,
55
// decoder instance created and ready to general decoding
56
int
engine_ready
;
57
58
// options set by the caller
59
int
async_depth
;
60
int
iopattern
;
61
62
char
*
load_plugins
;
63
64
mfxExtBuffer **
ext_buffers
;
65
int
nb_ext_buffers
;
66
}
QSVContext
;
67
68
int
ff_qsv_map_pixfmt
(
enum
AVPixelFormat
format);
69
70
int
ff_qsv_decode_init
(
AVCodecContext
*
s
,
QSVContext
*q,
AVPacket
*avpkt);
71
72
int
ff_qsv_decode
(
AVCodecContext
*
s
,
QSVContext
*q,
73
AVFrame
*
frame
,
int
*got_frame,
74
AVPacket
*avpkt);
75
76
int
ff_qsv_decode_close
(
QSVContext
*q);
77
78
#endif
/* AVCODEC_QSVDEC_H */
QSVContext::iopattern
int iopattern
Definition:
qsvdec.h:60
s
const char * s
Definition:
avisynth_c.h:631
QSVContext::input_fifo
AVFifoBuffer * input_fifo
Definition:
qsvdec.h:52
AVFrame
This structure describes decoded (raw) audio or video data.
Definition:
frame.h:171
ff_qsv_decode_init
int ff_qsv_decode_init(AVCodecContext *s, QSVContext *q, AVPacket *avpkt)
Definition:
qsvdec.c:52
QSVContext::ext_buffers
mfxExtBuffer ** ext_buffers
Definition:
qsvdec.h:64
QSVContext::internal_qs
QSVSession internal_qs
Definition:
qsvdec.h:44
qsv_internal.h
QSVFrame
Definition:
qsv_internal.h:52
frame
static AVFrame * frame
Definition:
demuxing_decoding.c:53
QSVContext
Definition:
qsvdec.h:38
avcodec.h
Libavcodec external API header.
frame.h
reference-counted frame API
QSVSession
Definition:
qsv_internal.h:63
QSVContext::engine_ready
int engine_ready
Definition:
qsvdec.h:56
AVFifoBuffer
Definition:
fifo.h:31
ff_qsv_map_pixfmt
int ff_qsv_map_pixfmt(enum AVPixelFormat format)
Definition:
qsvdec.c:41
AVCodecContext
main external API structure.
Definition:
avcodec.h:1502
fifo.h
a very simple circular buffer FIFO implementation
QSVContext::load_plugins
char * load_plugins
Definition:
qsvdec.h:62
ff_qsv_decode_close
int ff_qsv_decode_close(QSVContext *q)
Definition:
qsvdec.c:413
ff_qsv_decode
int ff_qsv_decode(AVCodecContext *s, QSVContext *q, AVFrame *frame, int *got_frame, AVPacket *avpkt)
Definition:
qsvdec.c:284
pixfmt.h
pixel format definitions
QSVContext::session
mfxSession session
Definition:
qsvdec.h:40
QSVContext::async_fifo
AVFifoBuffer * async_fifo
Definition:
qsvdec.h:51
QSVContext::async_depth
int async_depth
Definition:
qsvdec.h:59
QSVContext::work_frames
QSVFrame * work_frames
a linked list of frames currently being used by QSV
Definition:
qsvdec.h:49
AVPixelFormat
AVPixelFormat
Pixel format.
Definition:
pixfmt.h:61
AVPacket
This structure stores compressed data.
Definition:
avcodec.h:1400
QSVContext::nb_ext_buffers
int nb_ext_buffers
Definition:
qsvdec.h:65
Generated on Thu Sep 10 2015 11:39:01 for FFmpeg by
1.8.6