Pattern matching and defaults for structs
[panamaz] / test-ffmpeg / src / proto / ffmpeg / AVPixelReader.java
1 /*
2  * Copyright (C) 2017 Michael Zucchi
3  *
4  * This file is part of jjmpeg <https://www.zedzone.space/software/jjmpeg.html>
5  *
6  * This program is free software: you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation, either version 3 of the License, or
9  * (at your option) any later version.
10  *
11  * This program 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
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
18  */
19 package proto.ffmpeg;
20
21 import java.nio.ByteBuffer;
22
23 /**
24  * AVPixelReader is a high level interface to SwsContext.
25  * <p>
26  * This interface allows one to retrieve pixels by bands to a specific format.
27  *
28  * @see AVFrame#getPixelReader
29  */
30 public interface AVPixelReader {
31
32         /**
33          * Read pixels into a Buffer. The buffer must be a Direct*Buffer.
34          *
35          * @param <T>
36          * @param y Start scanline. Currently only 0 works.
37          * @param h End scanline output. Currently only the output height works.
38          * @param fmt Pixel format to write to.
39          * @param buffer Target for pixels.
40          * @param scanlineStride Should match the output width and may be ignored.
41          */
42         public void getPixels(int y, int h, int fmt, ByteBuffer buffer, int scanlineStride);
43
44         public void getPixels(int y, int h, int fmt, byte[] buffer, int offset, int scanlineStride);
45
46         public void getPixels(int y, int h, int fmt, short[] buffer, int offset, int scanlineStride);
47
48         public void getPixels(int y, int h, int fmt, int[] buffer, int offset, int scanlineStride);
49
50         public long bufferSize(int h, int fmt);
51
52         public void release();
53 }