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
qsvenc.h
Go to the documentation of this file.
1
/*
2
* Intel MediaSDK QSV encoder utility functions
3
*
4
* copyright (c) 2013 Yukinori Yamazoe
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_QSVENC_H
24
#define AVCODEC_QSVENC_H
25
26
#include <stdint.h>
27
#include <sys/types.h>
28
29
#include <mfx/mfxvideo.h>
30
31
#include "
libavutil/avutil.h
"
32
#include "
libavutil/fifo.h
"
33
34
#include "
avcodec.h
"
35
#include "
qsv_internal.h
"
36
37
typedef
struct
QSVEncContext
{
38
AVCodecContext
*
avctx
;
39
40
QSVFrame
*
work_frames
;
41
42
mfxSession
session
;
43
QSVSession
internal_qs
;
44
45
int
packet_size
;
46
int
width_align
;
47
int
height_align
;
48
49
mfxVideoParam
param
;
50
mfxFrameAllocRequest
req
;
51
52
mfxExtCodingOption
extco
;
53
#if QSV_VERSION_ATLEAST(1,6)
54
mfxExtCodingOption2 extco2;
55
mfxExtBuffer *
extparam
[2];
56
#else
57
mfxExtBuffer *
extparam
[1];
58
#endif
59
60
AVFifoBuffer
*
async_fifo
;
61
62
// options set by the caller
63
int
async_depth
;
64
int
idr_interval
;
65
int
profile
;
66
int
preset
;
67
int
avbr_accuracy
;
68
int
avbr_convergence
;
69
int
pic_timing_sei
;
70
int
look_ahead
;
71
int
look_ahead_depth
;
72
int
look_ahead_downsampling
;
73
74
char
*
load_plugins
;
75
}
QSVEncContext
;
76
77
int
ff_qsv_enc_init
(
AVCodecContext
*avctx,
QSVEncContext
*q);
78
79
int
ff_qsv_encode
(
AVCodecContext
*avctx,
QSVEncContext
*q,
80
AVPacket
*
pkt
,
const
AVFrame
*
frame
,
int
*got_packet);
81
82
int
ff_qsv_enc_close
(
AVCodecContext
*avctx,
QSVEncContext
*q);
83
84
#endif
/* AVCODEC_QSVENC_H */
AVFrame
This structure describes decoded (raw) audio or video data.
Definition:
frame.h:171
QSVEncContext::req
mfxFrameAllocRequest req
Definition:
qsvenc.h:50
QSVEncContext::avbr_accuracy
int avbr_accuracy
Definition:
qsvenc.h:67
QSVEncContext::work_frames
QSVFrame * work_frames
Definition:
qsvenc.h:40
QSVEncContext::look_ahead_depth
int look_ahead_depth
Definition:
qsvenc.h:71
avutil.h
external API header
QSVEncContext::packet_size
int packet_size
Definition:
qsvenc.h:45
pkt
static AVPacket pkt
Definition:
demuxing_decoding.c:54
qsv_internal.h
QSVEncContext::look_ahead
int look_ahead
Definition:
qsvenc.h:70
QSVEncContext::param
mfxVideoParam param
Definition:
qsvenc.h:49
QSVEncContext::async_fifo
AVFifoBuffer * async_fifo
Definition:
qsvenc.h:60
QSVEncContext::extco
mfxExtCodingOption extco
Definition:
qsvenc.h:52
QSVFrame
Definition:
qsv_internal.h:52
frame
static AVFrame * frame
Definition:
demuxing_decoding.c:53
ff_qsv_encode
int ff_qsv_encode(AVCodecContext *avctx, QSVEncContext *q, AVPacket *pkt, const AVFrame *frame, int *got_packet)
Definition:
qsvenc.c:417
QSVEncContext::load_plugins
char * load_plugins
Definition:
qsvenc.h:74
avcodec.h
Libavcodec external API header.
ff_qsv_enc_close
int ff_qsv_enc_close(AVCodecContext *avctx, QSVEncContext *q)
Definition:
qsvenc.c:536
QSVEncContext::avctx
AVCodecContext * avctx
Definition:
qsvenc.h:38
QSVEncContext::idr_interval
int idr_interval
Definition:
qsvenc.h:64
QSVEncContext::preset
int preset
Definition:
qsvenc.h:66
QSVSession
Definition:
qsv_internal.h:63
ff_qsv_enc_init
int ff_qsv_enc_init(AVCodecContext *avctx, QSVEncContext *q)
Definition:
qsvenc.c:235
QSVEncContext::async_depth
int async_depth
Definition:
qsvenc.h:63
QSVEncContext::width_align
int width_align
Definition:
qsvenc.h:46
AVFifoBuffer
Definition:
fifo.h:31
AVCodecContext
main external API structure.
Definition:
avcodec.h:1502
QSVEncContext::profile
int profile
Definition:
qsvenc.h:65
QSVEncContext
Definition:
qsvenc.h:37
fifo.h
a very simple circular buffer FIFO implementation
QSVEncContext::height_align
int height_align
Definition:
qsvenc.h:47
QSVEncContext::internal_qs
QSVSession internal_qs
Definition:
qsvenc.h:43
QSVEncContext::avbr_convergence
int avbr_convergence
Definition:
qsvenc.h:68
QSVEncContext::look_ahead_downsampling
int look_ahead_downsampling
Definition:
qsvenc.h:72
QSVEncContext::extparam
mfxExtBuffer * extparam[1]
Definition:
qsvenc.h:57
AVPacket
This structure stores compressed data.
Definition:
avcodec.h:1400
QSVEncContext::session
mfxSession session
Definition:
qsvenc.h:42
QSVEncContext::pic_timing_sei
int pic_timing_sei
Definition:
qsvenc.h:69
Generated on Thu Sep 10 2015 11:39:01 for FFmpeg by
1.8.6