Commit Graph

48 Commits

Author SHA1 Message Date
Saxon 191be04b11 revid: added support for MJPEG packetisation
Changes included adding support for variable InputCodec that may be set via netreceiver/vidgrind to set to H264/MJPEG. Also setting revid's lexTo
function to mjpeg.Lex in the case of an MJPEG InputCodec. Added options parameter to mts.NewEncoder function so that we can change options of the
encoder, namely whether it bases PSI interval on NAL type, or number of frames - in the case of MJPEG we based PSI interval on number of frames.
2019-09-24 07:42:26 +09:30
Saxon 817cc86a34 revid: now have MinPeriod and ClipDuration params
This change included a rename of IntraRefreshPeriod to MinPeriod, and the addition of the ClipDuration param. PSI are now written before IDR. Clips are no longer outputed
based on PSI but rather a time ClipDuration, where ClipDuration >= MinPeriod, however, PSI must still be at the beginning of each clip. Also created functionality to update
meta time even if we don't have a response to update.
2019-08-25 20:42:01 +09:30
Saxon c9d30ad807 codec/h264/h264dec: added helper function to get first MediaPID found in a stream map 2019-08-07 16:15:50 +09:30
Saxon Milton f6c296de01 Merged in media-pids (pull request #220)
container/mts/mpegts.go: added Programs, Streams and MediaStreams functions

Approved-by: Alan Noble <anoble@gmail.com>
2019-08-06 12:01:11 +00:00
Saxon a19c0f4ec3 container/mts/mpegts.go: fixed nil map bug in FindPSI 2019-08-06 15:40:37 +09:30
Saxon ed11fac655 container/mts/mpegts.go: FindPSI now returns a map[uint16]uint8 containing program PIDs and their types instead of []psi.PmtElementaryStream 2019-08-06 15:38:34 +09:30
Trek H 3f29f0c84e Merge branch 'master' into revid-audio 2019-08-02 23:32:21 +09:30
Saxon c55cd9a64e container/mts: wrote test for FindPSI and corrected bugs
Wrote the FindPSI test which revealed a bug regarding creation of a PMT using comcast gots. This was fixed by writing Payload function and
extracting payload of PMT packet before giving to psi.NewPMT.
2019-07-26 14:16:05 +09:30
Saxon 0825799cfa container/mts/mpegts.go: renamed IndexPid to FindPSIs and change such that only looked for PSI
We have only ever used this function to find PSI so it makes sense to make it exclusive for this. It now also returns the streams found in the PMT. So that
we can actually retrieve the PIDs of the media and their types.
2019-07-24 12:39:18 +09:30
Saxon 4807b4fcb6 container/mts/mpegts.go: added some commenting to MediaStreams 2019-07-24 00:17:57 +09:30
Saxon bdc3b4cfc5 container/mts/mpegts.go: added Programs, Streams and MediaStreams functions 2019-07-24 00:04:10 +09:30
scruzin e76b8b3800 Tidy up errors used by GetPTS(). 2019-07-13 09:17:44 +09:30
scruzin 9e5bc3806f Added GetPTS. 2019-07-12 14:24:30 +09:30
scruzin aa67134969 Added GetPTS() function. 2019-07-12 14:01:49 +09:30
scruzin c717595adc Added length check to IndexPid. 2019-07-11 18:16:33 +09:30
scruzin c8a0b7df07 Fix IndexPid. 2019-07-11 17:33:16 +09:30
scruzin 4b57407e36 Don't wrap error unnecessarily. 2019-07-11 14:57:47 +09:30
scruzin b1e5890554 Update prev in IndexPid. 2019-07-11 14:54:06 +09:30
scruzin feea069758 Factored metaFromPMT out of ExtractMeta and added LastPid and IndexPid. 2019-07-11 14:51:23 +09:30
Saxon 09d772e9c3 container/mts/mpegts.go: equivalent -> identical in TrimToMetaRange error message 2019-07-04 19:47:34 +09:30
Saxon 5bbb8d01f2 container/mts/mpegts.go: added comment for global error vars used by FindPid 2019-07-04 14:34:34 +09:30
Saxon 3696e353f2 container/mts: fixed conflicts 2019-07-04 09:50:46 +09:30
Saxon b017e92185 container/mts: wrote more tests for GetPTSRange 2019-07-01 19:08:20 +09:30
Saxon 7bd885bcfb container/mts: fixed infinite loop 2019-07-01 14:01:49 +09:30
Saxon 0d240fa7ff container/mts: checking index so that we don't go out of bounds 2019-07-01 13:54:18 +09:30
Saxon 0497ee5302 container/mts: GetPTSRange checks for PUSI when looking for first PTS 2019-07-01 12:36:11 +09:30
Saxon ebc72cfbfc container/mts: for GetPTSRange if a second PTS is not found error is no longer returned and pts2=pts1 2019-06-29 14:58:16 +09:30
Saxon 74992aee19 container/mts: added commenting to SegmentForMeta and accompanying testing 2019-06-17 16:34:22 +09:30
Saxon 3eab25e18b container/mts: added SegmentForMeta func and testing
This func will further segment an MTS segment to each series of packets that
correspond to a given key and val of meta. Testing for this func has also been
written.
2019-06-17 04:30:54 +09:30
Saxon 1a233d8576 container/mts: wrote function TrimToMtsRange and added related testing
This function will return a sub slice of MPEG-TS corresponding to an interval of metadata.
Also wrote testing for this function.
2019-06-16 04:08:41 +09:30
Saxon e4bce3bcb3 container/mts: added ExtractMeta function and testing
Added function to extract meta from first PMT found in a mpegts clip. This simply
wraps the logic we've used in vidrecord, i.e. Finding the PMT, converting to a
comcast gots psi.PSIBytesm, using HasDescriptor to get the meta descriptor, and
then mapping metadata. Also added testing.
2019-06-12 01:01:51 +09:30
Trek H 3e2ff49420 revid: mts encoder uses exported pids 2019-06-06 00:28:26 +09:30
Saxon 8081fd48a0 container/mts/mpegts.go: fixed conflict with master 2019-05-13 17:07:53 +09:30
Saxon 51f4d123bf container/mts: using MPEG-TS in comments rather than MPEGTS or mpegts 2019-05-11 21:14:28 +09:30
Saxon 20a5ed5362 container/mts/mpegts.go: renamed pidType to pid in GetPTSRange 2019-05-11 16:30:29 +09:30
Saxon 5652b05c21 container/mts/mpegts.go: added package level doc comment 2019-05-11 16:29:15 +09:30
Saxon 8f8ae7c558 container/mts: using uint16 for PID always 2019-05-11 13:50:40 +09:30
Saxon ebb69ea6aa container/mts/mpegts.go: GetPTSRange now generalised for any PID 2019-05-11 13:04:30 +09:30
Saxon b12a78dad2 container/mts/mpegts.go: corrected comment 2019-05-10 17:45:04 +09:30
Saxon 5179cdaceb container/mts/mpegts_test.go: wrote some helper functions for writing psi and frames and cleaned up commenting 2019-05-10 17:38:22 +09:30
Saxon 868d01527c container/mts/mpegts.go: wrote GetPTSRange func
This func will return the first and last PTS from an MPEGTS clip by finding the first access unit, and then by moving backward from the end of the clip to find the start of the final PES packet.
2019-05-10 14:20:14 +09:30
Saxon bccd7c2762 container/mts/mpegts.go: error test for invalid packet size in FindPid corrected 2019-05-08 00:07:23 +09:30
Saxon 9dcf866162 container/mts/mpegts.go: removed unused const 2019-05-08 00:06:05 +09:30
Saxon 3292ce0506 container/mts: simplified Packet.Bytes(), and tested 2019-05-07 23:10:03 +09:30
Saxon 0e362e6056 container/mts: wrote test TestEncodeVideo
Wrote a test to check mts encoding of video to validate packet creation etc. Test is failing because how I did mts
encoding is interesting, thinking about changing.
2019-05-07 21:22:57 +09:30
Saxon a8aec484df container/mts: wrote test TestFindPid and corrected bug
Completed test TestFindPid to validate function of FindPid func in mpegts.go. Through this
process, it was found that there was a bug in this func, whereby the returned packet was
not complete due to indexing issues. The bug is fixed and the test passes.
2019-05-07 02:20:07 +09:30
Trek H 78447ed495 mts: Added audio mts encoding and test 2019-04-09 13:55:45 +09:30
Saxon 3a736172ee av: restructured directories 2019-03-25 11:34:56 +10:30