File: y4m.h

package info (click to toggle)
libavif 1.4.0-3
  • links: PTS, VCS
  • area: main
  • in suites:
  • size: 21,500 kB
  • sloc: ansic: 30,721; cpp: 14,588; xml: 1,507; sh: 1,265; java: 307; makefile: 57
file content (32 lines) | stat: -rw-r--r-- 1,035 bytes parent folder | download | duplicates (9)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
// Copyright 2019 Joe Drago. All rights reserved.
// SPDX-License-Identifier: BSD-2-Clause

#ifndef LIBAVIF_APPS_SHARED_Y4M_H
#define LIBAVIF_APPS_SHARED_Y4M_H

#include "avif/avif.h"

#include "avifutil.h"

#ifdef __cplusplus
extern "C" {
#endif

// Optionally pass one of these pointers (set to NULL) on a fresh input. If it successfully reads in
// a frame and sees that there is more data to be read, it will allocate an internal structure remembering
// the y4m header and FILE position and return it. Pass in this pointer to continue reading frames.
// The structure will always be freed upon failure or reaching EOF.
struct y4mFrameIterator;

avifBool y4mRead(const char * inputFilename,
                 uint32_t imageSizeLimit,
                 avifImage * avif,
                 avifAppSourceTiming * sourceTiming,
                 struct y4mFrameIterator ** iter);
avifBool y4mWrite(const char * outputFilename, const avifImage * avif);

#ifdef __cplusplus
} // extern "C"
#endif

#endif // ifndef LIBAVIF_APPS_SHARED_Y4M_H