-
Notifications
You must be signed in to change notification settings - Fork 25
Expand file tree
/
Copy pathMediaAPI.java
More file actions
86 lines (73 loc) · 3.44 KB
/
Copy pathMediaAPI.java
File metadata and controls
86 lines (73 loc) · 3.44 KB
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
package javaforce.api;
import javaforce.media.*;
import javaforce.ffm.*;
/** Media API
*
* @author pquiring
*/
@NativeLibrary("avcodec,avdevice,avfilter,avformat,avutil,swscale,swresample")
public interface MediaAPI {
public static MediaAPI getInstance() {
return MediaFFM.getInstance();
}
//MediaCoder
public void mediaSetLogging(boolean state);
//MediaFormat
public int getVideoStream(long ctx);
public int getAudioStream(long ctx);
public int getVideoCodecID(long ctx);
public int getAudioCodecID(long ctx);
public int getVideoBitRate(long ctx);
public int getAudioBitRate(long ctx);
//MediaInput
public long inputOpenFile(String file, String format);
public long inputOpenIO(MediaIO io);
public long getDuration(long ctx);
public int getVideoWidth(long ctx);
public int getVideoHeight(long ctx);
public float getVideoFrameRate(long ctx);
public int getVideoKeyFrameInterval(long ctx);
public int getAudioChannels(long ctx);
public int getAudioSampleRate(long ctx);
public boolean inputClose(long ctx, MediaIO io);
public boolean inputOpenVideo(long ctx, MediaIO io, int width, int height);
public boolean inputOpenAudio(long ctx, MediaIO io, int chs, int freq);
public int inputRead(long ctx, MediaIO io);
public boolean getPacketKeyFrame(long ctx);
public int getPacketData(long ctx, byte[] data, int offset, int length);
public boolean inputSeek(long ctx, MediaIO io, long seconds);
//MediaOutput
public long outputCreateFile(String file, String format);
public long outputCreateIO(MediaIO io, String format);
public int addVideoStream(long ctx, MediaIO io, int codec_id, int bit_rate, int width, int height, float fps, int keyFrameInterval);
public int addAudioStream(long ctx, MediaIO io, int codec_id, int bit_rate, int chs, int freq);
public boolean outputClose(long ctx, MediaIO io);
public boolean writeHeader(long ctx, MediaIO io);
public boolean writePacket(long ctx, MediaIO io, int stream, byte[] data, int offset, int length, boolean keyFrame);
//MediaAudioDecoder
public long audioDecoderStart(int codec_id, int new_chs, int new_freq);
public void audioDecoderStop(long ctx);
public short[] audioDecoderDecode(long ctx, byte[] data, int offset, int length);
public int audioDecoderGetChannels(long ctx);
public int audioDecoderGetSampleRate(long ctx);
public boolean audioDecoderChange(long ctx, int chs, int freq);
//MediaAudioEncoder
public long audioEncoderStart(int codec_id, int bit_rate, int chs, int freq);
public void audioEncoderStop(long ctx);
public byte[] audioEncoderEncode(long ctx, short[] samples, int offset, int length);
public int audioEncoderGetAudioFramesize(long ctx);
//MediaVideoDecoder
public long videoDecoderStart(int codec_id, int new_width, int new_height);
public void videoDecoderStop(long ctx);
public int[] videoDecoderDecode(long ctx, byte[] data, int offset, int length);
public int videoDecoderGetWidth(long ctx);
public int videoDecoderGetHeight(long ctx);
public float videoDecoderGetFrameRate(long ctx);
public boolean videoDecoderChange(long ctx, int width, int height);
//MediaVideoEncoder
public long videoEncoderStart(int codec_id, int bit_rate, int width, int height, float fps, int keyFrameInterval);
public void videoEncoderStop(long ctx);
public byte[] videoEncoderEncode(long ctx, int[] px, int offset, int length);
//VideoBuffer
public float compareFrames(int[] frame1, int[] frame2, int width, int height);
}