Subversion Repositories Kolibri OS

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
6147 serge 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 
27
#include 
28
 
29
#include 
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 */