FFmpeg
1.2.12
Main Page
Related Pages
Modules
Data Structures
Files
Examples
File List
Globals
libavcodec
libschroedinger.h
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2008 BBC, Anuradha Suraparaju <asuraparaju at gmail dot com >
3
*
4
* This file is part of FFmpeg.
5
*
6
* FFmpeg is free software; you can redistribute it and/or
7
* modify it under the terms of the GNU Lesser General Public
8
* License as published by the Free Software Foundation; either
9
* version 2.1 of the License, or (at your option) any later version.
10
*
11
* FFmpeg is distributed in the hope that it will be useful,
12
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14
* Lesser General Public License for more details.
15
*
16
* You should have received a copy of the GNU Lesser General Public
17
* License along with FFmpeg; if not, write to the Free Software
18
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
19
*/
20
26
#ifndef AVCODEC_LIBSCHROEDINGER_H
27
#define AVCODEC_LIBSCHROEDINGER_H
28
29
#include <schroedinger/schrobitstream.h>
30
#include <schroedinger/schroframe.h>
31
32
#include "
avcodec.h
"
33
34
typedef
struct
SchroVideoFormatInfo
{
35
uint16_t
width
;
36
uint16_t
height
;
37
uint16_t
frame_rate_num
;
38
uint16_t
frame_rate_denom
;
39
}
SchroVideoFormatInfo
;
40
44
typedef
struct
FFSchroEncodedFrame
{
46
uint8_t
*
p_encbuf
;
47
49
uint32_t
size
;
50
52
uint32_t
frame_num
;
53
55
uint16_t
key_frame
;
56
}
FFSchroEncodedFrame
;
57
61
typedef
struct
FFSchroQueueElement
{
63
void
*
data
;
65
struct
FFSchroQueueElement
*
next
;
66
}
FFSchroQueueElement
;
67
68
72
typedef
struct
FFSchroQueue
{
74
FFSchroQueueElement
*
p_head
;
76
FFSchroQueueElement
*
p_tail
;
78
int
size
;
79
}
FFSchroQueue
;
80
84
void
ff_schro_queue_init
(
FFSchroQueue
*queue);
85
89
int
ff_schro_queue_push_back
(
FFSchroQueue
*queue,
void
*p_data);
90
94
void
*
ff_schro_queue_pop
(
FFSchroQueue
*queue);
95
101
void
ff_schro_queue_free
(
FFSchroQueue
*queue,
void
(*free_func)(
void
*));
102
103
static
const
struct
{
104
enum
AVPixelFormat
ff_pix_fmt
;
105
SchroChromaFormat
schro_pix_fmt
;
106
SchroFrameFormat
schro_frame_fmt
;
107
}
schro_pixel_format_map
[] = {
108
{
AV_PIX_FMT_YUV420P
, SCHRO_CHROMA_420, SCHRO_FRAME_FORMAT_U8_420 },
109
{
AV_PIX_FMT_YUV422P
, SCHRO_CHROMA_422, SCHRO_FRAME_FORMAT_U8_422 },
110
{
AV_PIX_FMT_YUV444P
, SCHRO_CHROMA_444, SCHRO_FRAME_FORMAT_U8_444 },
111
};
112
117
SchroVideoFormatEnum
ff_get_schro_video_format_preset
(
AVCodecContext
*avctx);
118
123
int
ff_get_schro_frame_format
(SchroChromaFormat schro_chroma_fmt,
124
SchroFrameFormat *
schro_frame_fmt
);
125
130
SchroFrame *
ff_create_schro_frame
(
AVCodecContext
*avctx,
131
SchroFrameFormat
schro_frame_fmt
);
132
133
#endif
/* AVCODEC_LIBSCHROEDINGER_H */
Generated on Thu Feb 12 2015 17:56:55 for FFmpeg by
1.8.1.2