diff --git a/revid/cmd/fileToMpegTsTest/main.go b/revid/cmd/fileToMpegTsTest/main.go new file mode 100644 index 00000000..5300cab7 --- /dev/null +++ b/revid/cmd/fileToMpegTsTest/main.go @@ -0,0 +1,56 @@ +/* +NAME + main.go + +DESCRIPTION + See Readme.md + +AUTHOR + Saxon Nelson-Milton + +LICENSE + main.go is Copyright (C) 2017 the Australian Ocean Lab (AusOcean) + + It is free software: you can redistribute it and/or modify them + under the terms of the GNU General Public License as published by the + Free Software Foundation, either version 3 of the License, or (at your + option) any later version. + + It is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with revid in gpl.txt. If not, see [GNU licenses](http://www.gnu.org/licenses). +*/ + +package fileToMpegTsTest + +import ( + "testing" + "time" +) + +const ( + runDuration = 100 * time.Second + inputFile = "testInput.h264" + outputFile = "output/TestFileAsInput.ts" +) + +func main(t *testing.T) { + config := Config{ + Input: File, + InputFileName: inputFile, + Output: File, + OutputFileName: outputFile, + } + revidInst, err := NewRevidInstance(config) + if err != nil { + t.Errorf("Should not have got error!: %v\n", err.Error()) + return + } + revidInst.Start() + time.Sleep(runDuration) + revidInst.Stop() +} diff --git a/revid/cmd/h264FileToFLvFileTest/main.go b/revid/cmd/h264FileToFLvFileTest/main.go new file mode 100644 index 00000000..880b0c51 --- /dev/null +++ b/revid/cmd/h264FileToFLvFileTest/main.go @@ -0,0 +1,61 @@ +/* +NAME + main.go + +DESCRIPTION + See Readme.md + +AUTHOR + Saxon Nelson-Milton + +LICENSE + main.go is Copyright (C) 2017 the Australian Ocean Lab (AusOcean) + + It is free software: you can redistribute it and/or modify them + under the terms of the GNU General Public License as published by the + Free Software Foundation, either version 3 of the License, or (at your + option) any later version. + + It is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with revid in gpl.txt. If not, see [GNU licenses](http://www.gnu.org/licenses). +*/ + +package h264FileToFlvFileTest + +import ( + "testing" + "time" +) + +const ( + runDuration = 30 * time.Second + inputFile = "betterInput.h264" + outputFile = "saxonOut.flv" + frameRate = "25" +) + +// Test h264 inputfile to flv output files +func TestFlvOutputFile(t *testing.T) { + config := Config{ + Input: File, + InputFileName: inputFile, + InputCodec: H264, + Output: File, + OutputFileName: outputFile, + Packetization: Flv, + FrameRate: frameRate, + } + revidInst, err := NewRevidInstance(config) + if err != nil { + t.Errorf("Should not of have got an error!: %v\n", err.Error()) + return + } + revidInst.Start() + time.Sleep(runDuration) + revidInst.Stop() +} diff --git a/revid/cmd/h264FileToRtmpTest/main.go b/revid/cmd/h264FileToRtmpTest/main.go new file mode 100644 index 00000000..02c6835b --- /dev/null +++ b/revid/cmd/h264FileToRtmpTest/main.go @@ -0,0 +1,62 @@ +/* +NAME + main.go + +DESCRIPTION + See Readme.md + +AUTHOR + Saxon Nelson-Milton + +LICENSE + main.go is Copyright (C) 2017 the Australian Ocean Lab (AusOcean) + + It is free software: you can redistribute it and/or modify them + under the terms of the GNU General Public License as published by the + Free Software Foundation, either version 3 of the License, or (at your + option) any later version. + + It is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with revid in gpl.txt. If not, see [GNU licenses](http://www.gnu.org/licenses). +*/ + +package h264FileToRtmpTest + +import ( + "testing" + "time" +) + +const ( + inputFile = "input/betterInput.h264" + rtmpUrl = "rtmp://a.rtmp.youtube.com/live2/w44c-mkuu-aezg-ceb1" + frameRate = "25" + runDuration = 120 * time.Second +) + +// Test h264 inputfile to flv format into rtmp using librtmp c wrapper +func TestRtmpOutputUsingLibRtmp(t *testing.T) { + config := Config{ + Input: File, + InputFileName: inputFile, + InputCodec: H264, + Output: Rtmp, + RtmpMethod: LibRtmp, + RtmpUrl: rtmpUrl, + Packetization: Flv, + FrameRate: frameRate, + } + revidInst, err := NewRevidInstance(config) + if err != nil { + t.Errorf("Should not of have got an error!: %v\n", err.Error()) + return + } + revidInst.Start() + time.Sleep(runDuration) + revidInst.Stop() +} diff --git a/revid/cmd/raspividH264ToFlvRtmpTest/main.go b/revid/cmd/raspividH264ToFlvRtmpTest/main.go new file mode 100644 index 00000000..b192ab06 --- /dev/null +++ b/revid/cmd/raspividH264ToFlvRtmpTest/main.go @@ -0,0 +1,62 @@ +/* +NAME + main.go + +DESCRIPTION + See Readme.md + +AUTHOR + Saxon Nelson-Milton + +LICENSE + main.go is Copyright (C) 2017 the Australian Ocean Lab (AusOcean) + + It is free software: you can redistribute it and/or modify them + under the terms of the GNU General Public License as published by the + Free Software Foundation, either version 3 of the License, or (at your + option) any later version. + + It is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with revid in gpl.txt. If not, see [GNU licenses](http://www.gnu.org/licenses). +*/ + +package raspividH264ToFlvRtmpTest + +import ( + "testing" + "time" +) + +const ( + rtmpUrl = "rtmp://a.rtmp.youtube.com/live2/w44c-mkuu-aezg-ceb1" + bitrate = "500000" + frameRate = "25" + runDuration = 43200 * time.Second +) + +// Test revidInst with a Raspivid h264 input +func TestRaspividToRtmp(t *testing.T) { + config := Config{ + Input: Raspivid, + Output: Rtmp, + RtmpMethod: LibRtmp, + QuantizationMode: QuantizationOff, + RtmpUrl: rtmpUrl, + Bitrate: bitrate, + Packetization: Flv, + FrameRate: frameRate, + } + revidInst, err := NewRevid(config) + if err != nil { + t.Errorf("Should not have got an error!") + return + } + revidInst.Start() + time.Sleep(runDuration) + revidInst.Stop() +} diff --git a/revid/cmd/raspividH264ToMpegTsHttpTest/main.go b/revid/cmd/raspividH264ToMpegTsHttpTest/main.go new file mode 100644 index 00000000..7bf2e5b9 --- /dev/null +++ b/revid/cmd/raspividH264ToMpegTsHttpTest/main.go @@ -0,0 +1,37 @@ +/* +NAME + main.go + +DESCRIPTION + See Readme.md + +AUTHOR + Saxon Nelson-Milton + +LICENSE + main.go is Copyright (C) 2017 the Australian Ocean Lab (AusOcean) + + It is free software: you can redistribute it and/or modify them + under the terms of the GNU General Public License as published by the + Free Software Foundation, either version 3 of the License, or (at your + option) any later version. + + It is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with revid in gpl.txt. If not, see [GNU licenses](http://www.gnu.org/licenses). +*/ + +// TODO: create test case for raspivid h264 to mpegts http endpoint testing + +package raspividH264ToMpegTsHttpTest + +/* +import ( + "testing" + "time" +) +*/ diff --git a/revid/cmd/raspividToMjpegTest/main.go b/revid/cmd/raspividToMjpegTest/main.go new file mode 100644 index 00000000..25f24ba9 --- /dev/null +++ b/revid/cmd/raspividToMjpegTest/main.go @@ -0,0 +1,64 @@ +/* +NAME + main.go + +DESCRIPTION + See Readme.md + +AUTHOR + Saxon Nelson-Milton + +LICENSE + main.go is Copyright (C) 2017 the Australian Ocean Lab (AusOcean) + + It is free software: you can redistribute it and/or modify them + under the terms of the GNU General Public License as published by the + Free Software Foundation, either version 3 of the License, or (at your + option) any later version. + + It is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with revid in gpl.txt. If not, see [GNU licenses](http://www.gnu.org/licenses). +*/ + +package raspividToMjpegTest + +import ( + "testing" + "time" +) + +const ( + outputFile = "output/TestMjpeg.mjpeg" + width = "1280" + bitrate = "10000000" + height = "720" + frameRate = "25" + runDuration = 20 * time.Second +) + +// Test revidInst with a raspivid mjpeg input +func TestRaspividMJPEGInput(t *testing.T) { + config := Config{ + Input: Raspivid, + InputCodec: Mjpeg, + Output: File, + OutputFileName: outputFile, + Width: width, + Bitrate: bitrate, + Height: height, + FrameRate: frameRate, + } + revidInst, err := NewRevidInstance(config) + if err != nil { + t.Errorf("Should not of have got an error!: %v\n", err.Error()) + return + } + revidInst.Start() + time.Sleep(runDuration) + revidInst.Stop() +} diff --git a/revid/cmd/raspividToMpegTsTest/main.go b/revid/cmd/raspividToMpegTsTest/main.go new file mode 100644 index 00000000..86c0b36a --- /dev/null +++ b/revid/cmd/raspividToMpegTsTest/main.go @@ -0,0 +1,61 @@ +/* +NAME + main.go + +DESCRIPTION + See Readme.md + +AUTHOR + Saxon Nelson-Milton + +LICENSE + main.go is Copyright (C) 2017 the Australian Ocean Lab (AusOcean) + + It is free software: you can redistribute it and/or modify them + under the terms of the GNU General Public License as published by the + Free Software Foundation, either version 3 of the License, or (at your + option) any later version. + + It is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with revid in gpl.txt. If not, see [GNU licenses](http://www.gnu.org/licenses). +*/ + +package raspividToMpegTsTest + +import ( + "testing" + "time" +) + +const ( + outputFile = "output/TestRaspividOutput.ts" + width = "1280" + height = "720" + frameRate = "25" + runDuration = 100 * time.Second +) + +// Test revidInst with a Raspivid h264 input +func TestRaspividH264Input(t *testing.T) { + config := Config{ + Input: Raspivid, + Output: File, + OutputFileName: outputFile, + Width: width, + Height: height, + FrameRate: frameRate, + } + revidInst, err := NewRevidInstance(config) + if err != nil { + t.Errorf("Should not have got an error!") + return + } + revidInst.Start() + time.Sleep(runDuration) + revidInst.Stop() +}