FFmpeg
prores_raw.h
Go to the documentation of this file.
1 /*
2  * ProRes RAW decoder
3  * Copyright (c) 2025 Lynne
4  *
5  * This file is part of FFmpeg.
6  *
7  * FFmpeg is free software; you can redistribute it and/or
8  * modify it under the terms of the GNU Lesser General Public
9  * License as published by the Free Software Foundation; either
10  * version 2.1 of the License, or (at your option) any later version.
11  *
12  * FFmpeg is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15  * Lesser General Public License for more details.
16  *
17  * You should have received a copy of the GNU Lesser General Public
18  * License along with FFmpeg; if not, write to the Free Software
19  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20  */
21 
22 #ifndef AVCODEC_PRORES_RAW_H
23 #define AVCODEC_PRORES_RAW_H
24 
25 #include "libavutil/mem_internal.h"
26 
27 #include "bytestream.h"
28 #include "blockdsp.h"
29 #include "proresdsp.h"
30 
31 typedef struct TileContext {
33  unsigned x, y;
34 } TileContext;
35 
36 typedef struct ProResRAWContext {
39 
41  unsigned int tiles_size;
42  int nb_tiles;
43  int tw, th;
44  int nb_tw, nb_th;
45 
49 
50  int version;
51 
52  DECLARE_ALIGNED(32, uint8_t, scan)[64];
53  DECLARE_ALIGNED(32, uint8_t, qmat)[64];
55 
56 extern const uint8_t ff_prores_raw_dc_cb[13];
57 extern const int16_t ff_prores_raw_ac_cb[95];
58 extern const int16_t ff_prores_raw_rn_cb[28];
59 extern const int16_t ff_prores_raw_ln_cb[15];
60 
61 #endif /* AVCODEC_PRORES_RAW_H */
AVPixelFormat
AVPixelFormat
Pixel format.
Definition: pixfmt.h:71
blockdsp.h
mem_internal.h
GetByteContext
Definition: bytestream.h:33
AVFrame
This structure describes decoded (raw) audio or video data.
Definition: frame.h:421
ProResRAWContext::prodsp
ProresDSPContext prodsp
Definition: prores_raw.h:37
TileContext::y
unsigned y
Definition: prores_raw.h:33
ProResRAWContext::tw
int tw
Definition: prores_raw.h:43
ProResRAWContext::version
int version
Definition: prores_raw.h:50
BlockDSPContext
Definition: blockdsp.h:32
ProresDSPContext
Definition: proresdsp.h:29
ProResRAWContext::nb_tiles
int nb_tiles
Definition: prores_raw.h:42
ff_prores_raw_ac_cb
const int16_t ff_prores_raw_ac_cb[95]
Definition: prores_raw.c:108
ProResRAWContext::tiles
TileContext * tiles
Definition: prores_raw.h:40
ff_prores_raw_ln_cb
const int16_t ff_prores_raw_ln_cb[15]
Definition: prores_raw.c:126
ff_prores_raw_rn_cb
const int16_t ff_prores_raw_rn_cb[28]
Definition: prores_raw.c:120
ProResRAWContext
Definition: prores_raw.h:36
ProResRAWContext::th
int th
Definition: prores_raw.h:43
ProResRAWContext::scan
uint8_t scan[64]
Definition: prores_raw.h:52
DECLARE_ALIGNED
#define DECLARE_ALIGNED(n, t, v)
Definition: mem_internal.h:104
ProResRAWContext::nb_tw
int nb_tw
Definition: prores_raw.h:44
proresdsp.h
ProResRAWContext::pix_fmt
enum AVPixelFormat pix_fmt
Definition: prores_raw.h:46
ProResRAWContext::frame
AVFrame * frame
Definition: prores_raw.h:47
TileContext::gb
GetByteContext gb
Definition: prores_raw.h:32
ProResRAWContext::bdsp
BlockDSPContext bdsp
Definition: prores_raw.h:38
ProResRAWContext::nb_th
int nb_th
Definition: prores_raw.h:44
TileContext::x
unsigned x
Definition: prores_raw.h:33
bytestream.h
TileContext
Definition: prores_raw.h:31
ProResRAWContext::hwaccel_picture_private
void * hwaccel_picture_private
Definition: prores_raw.h:48
ff_prores_raw_dc_cb
const uint8_t ff_prores_raw_dc_cb[13]
Definition: prores_raw.c:103
ProResRAWContext::tiles_size
unsigned int tiles_size
Definition: prores_raw.h:41
ProResRAWContext::qmat
uint8_t qmat[64]
Definition: prores_raw.h:53