Skip to content

Commit 6084246

Browse files
Attempt to stabilise time code test.
1 parent 9c575bc commit 6084246

File tree

1 file changed

+65
-66
lines changed

1 file changed

+65
-66
lines changed

test/org/freedesktop/gstreamer/video/VideoTimeCodeMetaTest.java

Lines changed: 65 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,6 @@
3333
import static org.junit.Assert.assertNotNull;
3434
import static org.junit.Assert.assertTrue;
3535

36-
3736
public class VideoTimeCodeMetaTest {
3837

3938
@BeforeClass
@@ -59,29 +58,29 @@ public void testVideoWithoutTimeCodeMeta() {
5958
@Test
6059
public void testVideoTimeCodeMetaPal() {
6160
// timecodestamper is available since 1.10
62-
TestAssumptions.requireGstVersion(1,10);
61+
TestAssumptions.requireGstVersion(1, 10);
6362
TestAssumptions.requireElement("timecodestamper");
6463
SampleTester.test(sample -> {
6564
Buffer buffer = sample.getBuffer();
6665
if (Gst.testVersion(1, 14)) {
6766
assertTrue("Video should contains timecode meta", buffer.hasMeta(VideoTimeCodeMeta.API));
6867
}
69-
VideoTimeCodeMeta meta = buffer.getMeta(VideoTimeCodeMeta.API);
70-
assertNotNull(meta);
71-
VideoTimeCode timeCode = meta.getTimeCode();
72-
73-
//first frame 00:00:00:00
74-
assertEquals(0, timeCode.getHours());
75-
assertEquals(0, timeCode.getMinutes());
76-
assertEquals(0, timeCode.getSeconds());
77-
assertEquals(0, timeCode.getFrames());
78-
79-
VideoTimeCodeConfig timeCodeConfig = timeCode.getConfig();
80-
// PAL standard 25/1
81-
assertEquals(25, timeCodeConfig.getNumerator());
82-
assertEquals(1, timeCodeConfig.getDenominator());
83-
assertTrue(timeCodeConfig.getFlags().isEmpty());
84-
68+
try (VideoTimeCodeMeta meta = buffer.getMeta(VideoTimeCodeMeta.API)) {
69+
assertNotNull(meta);
70+
VideoTimeCode timeCode = meta.getTimeCode();
71+
72+
//first frame 00:00:00:00
73+
assertEquals(0, timeCode.getHours());
74+
assertEquals(0, timeCode.getMinutes());
75+
assertEquals(0, timeCode.getSeconds());
76+
assertEquals(0, timeCode.getFrames());
77+
78+
VideoTimeCodeConfig timeCodeConfig = timeCode.getConfig();
79+
// PAL standard 25/1
80+
assertEquals(25, timeCodeConfig.getNumerator());
81+
assertEquals(1, timeCodeConfig.getDenominator());
82+
assertTrue(timeCodeConfig.getFlags().isEmpty());
83+
}
8584
}, "videotestsrc ! video/x-raw,framerate=25/1 ! timecodestamper ! videoconvert ! appsink name=myappsink");
8685
}
8786

@@ -95,22 +94,22 @@ public void testVideoTimeCodeNTSCDrop() {
9594
if (Gst.testVersion(1, 14)) {
9695
assertTrue("Video should contains timecode meta", buffer.hasMeta(VideoTimeCodeMeta.API));
9796
}
98-
VideoTimeCodeMeta meta = buffer.getMeta(VideoTimeCodeMeta.API);
99-
assertNotNull(meta);
100-
VideoTimeCode timeCode = meta.getTimeCode();
101-
102-
//first frame 00:00:00;00
103-
assertEquals(0, timeCode.getHours());
104-
assertEquals(0, timeCode.getMinutes());
105-
assertEquals(0, timeCode.getSeconds());
106-
assertEquals(0, timeCode.getFrames());
107-
108-
VideoTimeCodeConfig timeCodeConfig = timeCode.getConfig();
109-
// NTSC drop standard 30000/1001
110-
assertEquals(30000, timeCodeConfig.getNumerator());
111-
assertEquals(1001, timeCodeConfig.getDenominator());
112-
assertTrue(timeCodeConfig.getFlags().contains(GST_VIDEO_TIME_CODE_FLAGS_DROP_FRAME));
113-
97+
try (VideoTimeCodeMeta meta = buffer.getMeta(VideoTimeCodeMeta.API)) {
98+
assertNotNull(meta);
99+
VideoTimeCode timeCode = meta.getTimeCode();
100+
101+
//first frame 00:00:00;00
102+
assertEquals(0, timeCode.getHours());
103+
assertEquals(0, timeCode.getMinutes());
104+
assertEquals(0, timeCode.getSeconds());
105+
assertEquals(0, timeCode.getFrames());
106+
107+
VideoTimeCodeConfig timeCodeConfig = timeCode.getConfig();
108+
// NTSC drop standard 30000/1001
109+
assertEquals(30000, timeCodeConfig.getNumerator());
110+
assertEquals(1001, timeCodeConfig.getDenominator());
111+
assertTrue(timeCodeConfig.getFlags().contains(GST_VIDEO_TIME_CODE_FLAGS_DROP_FRAME));
112+
}
114113
}, "videotestsrc ! video/x-raw,framerate=30000/1001 ! timecodestamper drop-frame=true ! videoconvert ! appsink name=myappsink");
115114
}
116115

@@ -127,22 +126,22 @@ public void testVideoTimeCodeNTSCDropFrame() {
127126
if (Gst.testVersion(1, 14)) {
128127
assertTrue("Video should contains timecode meta", buffer.hasMeta(VideoTimeCodeMeta.API));
129128
}
130-
VideoTimeCodeMeta meta = buffer.getMeta(VideoTimeCodeMeta.API);
131-
assertNotNull(meta);
132-
VideoTimeCode timeCode = meta.getTimeCode();
133-
134-
//first frame 00:00:00;29
135-
assertEquals(0, timeCode.getHours());
136-
assertEquals(0, timeCode.getMinutes());
137-
assertEquals(0, timeCode.getSeconds());
138-
assertEquals(29, timeCode.getFrames());
139-
140-
VideoTimeCodeConfig timeCodeConfig = timeCode.getConfig();
141-
// NTSC drop standard 30000/1001
142-
assertEquals(30000, timeCodeConfig.getNumerator());
143-
assertEquals(1001, timeCodeConfig.getDenominator());
144-
assertTrue(timeCodeConfig.getFlags().contains(GST_VIDEO_TIME_CODE_FLAGS_DROP_FRAME));
145-
129+
try (VideoTimeCodeMeta meta = buffer.getMeta(VideoTimeCodeMeta.API)) {
130+
assertNotNull(meta);
131+
VideoTimeCode timeCode = meta.getTimeCode();
132+
133+
//first frame 00:00:00;29
134+
assertEquals(0, timeCode.getHours());
135+
assertEquals(0, timeCode.getMinutes());
136+
assertEquals(0, timeCode.getSeconds());
137+
assertEquals(29, timeCode.getFrames());
138+
139+
VideoTimeCodeConfig timeCodeConfig = timeCode.getConfig();
140+
// NTSC drop standard 30000/1001
141+
assertEquals(30000, timeCodeConfig.getNumerator());
142+
assertEquals(1001, timeCodeConfig.getDenominator());
143+
assertTrue(timeCodeConfig.getFlags().contains(GST_VIDEO_TIME_CODE_FLAGS_DROP_FRAME));
144+
}
146145
}, "videotestsrc ! video/x-raw,framerate=30000/1001 ! videoconvert ! timecodestamper drop-frame=true ! videoconvert ! appsink name=myappsink", 29);
147146
}
148147

@@ -156,22 +155,22 @@ public void testVideoTimeCodeNTSCNonDrop() {
156155
if (Gst.testVersion(1, 14)) {
157156
assertTrue("Video should contains timecode meta", buffer.hasMeta(VideoTimeCodeMeta.API));
158157
}
159-
VideoTimeCodeMeta meta = buffer.getMeta(VideoTimeCodeMeta.API);
160-
assertNotNull(meta);
161-
VideoTimeCode timeCode = meta.getTimeCode();
162-
163-
//first frame 00:00:00:00
164-
assertEquals(0, timeCode.getHours());
165-
assertEquals(0, timeCode.getMinutes());
166-
assertEquals(0, timeCode.getSeconds());
167-
assertEquals(0, timeCode.getFrames());
168-
169-
VideoTimeCodeConfig timeCodeConfig = timeCode.getConfig();
170-
// NTSC drop standard 30/1
171-
assertEquals(30, timeCodeConfig.getNumerator());
172-
assertEquals(1, timeCodeConfig.getDenominator());
173-
assertTrue(timeCodeConfig.getFlags().isEmpty());
174-
158+
try (VideoTimeCodeMeta meta = buffer.getMeta(VideoTimeCodeMeta.API)) {
159+
assertNotNull(meta);
160+
VideoTimeCode timeCode = meta.getTimeCode();
161+
162+
//first frame 00:00:00:00
163+
assertEquals(0, timeCode.getHours());
164+
assertEquals(0, timeCode.getMinutes());
165+
assertEquals(0, timeCode.getSeconds());
166+
assertEquals(0, timeCode.getFrames());
167+
168+
VideoTimeCodeConfig timeCodeConfig = timeCode.getConfig();
169+
// NTSC drop standard 30/1
170+
assertEquals(30, timeCodeConfig.getNumerator());
171+
assertEquals(1, timeCodeConfig.getDenominator());
172+
assertTrue(timeCodeConfig.getFlags().isEmpty());
173+
}
175174
}, "videotestsrc ! video/x-raw,framerate=30/1 ! timecodestamper ! videoconvert ! appsink name=myappsink");
176175
}
177176
}

0 commit comments

Comments
 (0)