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