Commit Graph

341 Commits

Author SHA1 Message Date
Saxon 7181532ccb codec/mjpeg/lex.go changed error checks for io.EOF to positive checks 2019-10-20 09:08:19 +10:30
Saxon 9087f727db codec/h264/extract_test.go: fixed testing for extractor 2019-10-07 16:12:30 +10:30
Saxon fc4e88bce6 fixed bugs causing problems with GeoVision H264 RTMP to youtube streaming.
Two fixes were involved, firstly, access unit delimeters were used to denote access units and the Write timeout on rtmpSender's ringBuffer was
increased to stop the 'unable to dump old write' errors. Also made some small changes elsewhere that should fix future issues, particular with
MTS output.
2019-10-07 14:18:20 +10:30
Saxon 1c9146eec0 codec/mjpeg/lex.go: returning nil error from Lex if we get io.EOF on reading bytes 2019-10-03 00:32:34 +09:30
Saxon 2d5d8f3bdd codec/codecutil/helpers.go: added ADPCM support to SIDToMIMEType 2019-10-01 21:01:45 +09:30
Saxon 2acc729676 codec/codecutil/helpers.go: added helpers.go file with SIDToMIMEType function to provide MIME type given a stream ID 2019-10-01 21:01:45 +09:30
Saxon faf5e2df0f codec/h264/h264dec/fuzz: added fuzzer test for parseLevelPrefix function
The fuzz package has been created, which will house C based helper code and sub-packages dedicated to each fuzz test. A sub packaged called
fuzzParseLevelPrefix has been created to house the fuzz test for parseLevelPrefix. Emeric's C code has been isolated into some C files, and a file
called fuzz.go has been created, which houses the actual fuzz test function. An initial corpus has been added with 3 inputs.
2019-09-23 12:18:14 +09:30
Saxon Milton f8f78947f9 Merged in picture-order-count (pull request )
codec/h264/h264dec/decode.go: decoding process for picture order count

Approved-by: Alan Noble <anoble@gmail.com>
2019-09-20 02:37:33 +00:00
Saxon Milton 1fba7556dd Merged in total-coeff-and-trailing-ones (pull request )
codec/h264/h264dec: parsing process for TotalCoeff and TrailingOnes

Approved-by: Alan Noble <anoble@gmail.com>
2019-09-20 00:38:58 +00:00
Saxon 4c7f36ee36 codec/h264/h264dec/decode.go: slightly simplified if-else statements regarding BottomField and FieldPic 2019-09-18 19:41:32 +09:30
Saxon 117a75ae55 codec/h264/h264dec: simplified logic where there are things applicable to non-IDRs, which we don't handle yet. 2019-09-16 22:07:57 +09:30
Saxon 89452d55d3 codec/h264/h264dec/cavlc.go: simplified logic in loop to count leading zeros in formCoeffTokenMap 2019-09-13 11:21:00 +09:30
Trek H 2c7e28206d Merge branch 'master' into adpcm-mts 2019-09-12 21:11:50 +09:30
Trek H 96035f6d8b adpcm and mts: comments and pid change 2019-09-12 19:16:11 +09:30
Saxon ecdaab175b codec/h264/parse.go: skip over access unit delimiters when getting nalType 2019-09-11 09:47:37 +09:30
Saxon 5939db6f1b codec/h264/h264dec/decode.go: using if else structures for topFieldOrderCnt/bottomFieldOrderCnt value derivations in decodePicOrderCntType2 2019-09-10 12:12:08 +09:30
Saxon 40fa50d4f0 codec/h264/h264dec/decode.go: using if else structure for derivation of topFieldOrderCnt and bottomFieldOrderCnt in decodePicOrderCntType1 function 2019-09-10 12:06:35 +09:30
Saxon 0df182018a codec/h264/h264dec/decode.go: using else if structure instead of switch to derive value of vid.picOrderCntMsb 2019-09-10 11:32:46 +09:30
Saxon 88857ec5b9 codec/h264/h264dec/cavlc.go: fixed error message that's returned on failure to read coeffTokenTable string 2019-09-10 11:22:25 +09:30
Saxon 445649311b codec/h264/h264dec/cavlc.go: added process to comgine level and run information 2019-09-09 17:05:22 +09:30
Saxon 05e16ec260 codec/h264/h2646dec/cavlc.go: fixed build error caused by rebase 2019-09-09 16:48:10 +09:30
Saxon d78ca2d2d2 codec/h264/h264dec/cavlctab.go: commented const string representation of table 9-5. 2019-09-09 16:41:26 +09:30
Saxon 42a1918c0d codec/h264/h264dec: using const string instead of CSV file to hold table 9-5. Also made some other minor improvements 2019-09-09 16:41:26 +09:30
Saxon 92eb3e85a5 codec/h264/h264dec: created tokenMap type to make things more readable 2019-09-09 16:41:26 +09:30
Saxon 8316a621b9 codec/h264/h264dec/cavlc.go: fix comment inside parseTotalCoeffAndTrailingOnes 2019-09-09 16:41:26 +09:30
Saxon 4aa71e901c codec/h264/h264dec: put function parameters on one line for parseTotalCoeffAndTrailingOnes 2019-09-09 16:41:26 +09:30
Saxon 61a5065556 codec/h264/h264dec: added functions to get TrailingOnes and TotalCoeff as well as testing
The functions firstly derive the value of nC and then read the value of coeff_token from the BitReader. The table read prior and loaded into
a 'map' is then used to get the corresponding values of TrailingOnes and TotalCoef.
2019-09-09 16:41:26 +09:30
Saxon ee9281925e codec/h264/h264dec: added functions for loading table 9-5 CSV into [nColumns]map[int]map[int][2]int with testing 2019-09-09 16:41:26 +09:30
Saxon e614633cbd codec/h264/h264dec: added CSV representation of table 9-5 from H.264 specifications 2019-09-09 16:40:42 +09:30
Saxon 245edafa68 codec/h264/h264dec: added binToInt function and test
This function will convert binary provided as a string and return as int.
2019-09-09 16:40:42 +09:30
Saxon Milton 614f42ec2c Merged in level-information (pull request )
codec/h264/h264dec: add function for parsing level information using process in section 9.2.2 of specifications

Approved-by: Alan Noble <anoble@gmail.com>
2019-09-09 06:56:59 +00:00
Saxon 31179205b9 codec/h264/264dec/decode.go: added decodePicOrderCnt to return topFieldOrderCnt and bottomFieldOrderCnt based on picOrderCntType
Also added placeholder for a general 'decode' function.
2019-09-09 16:18:39 +09:30
Saxon c0be9b1910 codec/h264/h264dec/decode.go: added picOrderCntType2 to derive topfieldOrderCnt and bottomFieldOrderCnt for when picOrderCntType == 2 2019-09-09 13:26:46 +09:30
Saxon 43118814fb codec/h264/h264dec/decode.go: added picOrderCntType1 to derive topfieldOrderCnt and bottomFieldOrderCnt for when picOrderCntType == 1 2019-09-09 13:03:11 +09:30
Saxon d92e0bfb5e codec/h264/h264dec/decode.go: wrote function picOrderCntType0 to handle derivation of TopFieldOrderCnt and BottomFieldOrderCnt when pic_order_cnt_type == 0 2019-09-09 11:59:41 +09:30
Saxon fbb98095a0 codec/h264/h264dec: embedded SliceHeader and SliceData into Slice type, and embedded SPS and PPS into VideoStream type 2019-09-09 11:08:48 +09:30
Saxon 46e7f9d303 codec/h264/h264dec/cavlc.go: simplified some logic regarding appending of values onto levelVal based on trailing_ones_sign_flag 2019-09-09 09:11:50 +09:30
Saxon 1eb1d10ac4 codec/h264/h2646dec: added decode.go file to hold slice decoding functionality 2019-09-08 14:09:08 +09:30
Saxon 960d41cb4f codec/h264/h264dec/cavlc.go: removed redundant if checks in parseLevelInformation 2019-09-08 13:31:10 +09:30
Saxon ce803ba488 codec/h264/h264dec: add function for parsing level information using process in section 9.2.2 of specifications 2019-09-06 17:45:23 +09:30
Trek Hopton f537da41f2 Merged in adpcm-chunks (pull request )
Added adpcm chunk length and ability to decode consecutive chunks

Approved-by: kortschak <dan@kortschak.io>
2019-08-28 03:30:02 +00:00
Saxon 838d5dd5d6 codec/h264/h264dec: added level_prefix parsing process and test 2019-08-28 10:09:27 +09:30
Saxon Milton 7f3f1a43f9 Merged in refresh-period (pull request )
revid: now have MinPeriod and ClipDuration params

Approved-by: Alan Noble <anoble@gmail.com>
2019-08-28 00:06:03 +00:00
Saxon 132059d26e codec/h264/h264dec/cabac.go: added binarization process for coded block pattern 2019-08-26 16:35:06 +09:30
Saxon d4fe1498f5 codec/h264/h264dec: moved CABAC encoding related stuff to cabacenc.go and cabacenc_test.go and corrected function names 2019-08-26 16:01:48 +09:30
Saxon b9cd6b3f13 container/mts/encoder.go: using NALTypeSPS from h264dec package 2019-08-26 09:24:18 +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
Trek H 4e48a7aa09 adpcm: updated test file names 2019-08-21 16:20:11 +09:30
Trek H 4b8864ff20 adpcm: better decoding of chunks
added chunk length to chunk header
added to decoder the ability to decode consecutive chunks of variable length.
2019-08-21 15:39:58 +09:30
Saxon Milton 7ab8fd9e87 Merged in nalunit-test (pull request )
codec/h264/h264dec: added NAL unit parsing tests

Approved-by: Alan Noble <anoble@gmail.com>
2019-08-20 03:23:17 +00:00
Saxon Milton 13490e0145 Merged in slice-testing (pull request )
codec/h264/h264dec: added some testing for parsing found in slice.go

Approved-by: Alan Noble <anoble@gmail.com>
2019-08-20 02:53:00 +00:00
Saxon 0f35786d06 codec/h264/h264dec/slice_test.go: added license information to file header 2019-08-20 12:06:11 +09:30
Saxon bdcd340802 codec/h264/h264dec/slice_test.go: removed redundant comment 2019-08-20 12:02:39 +09:30
Saxon 27d8d0992c codec/h264/h264dec/slice.go: made corrections to file header 2019-08-20 11:56:42 +09:30
Saxon dab94f6ae2 codec/h264/h264dec: addressing PR feedback.
Updated comment. Put a space between file header and package declaration. Not dereferencing things
2019-08-20 11:39:12 +09:30
Saxon Milton e7f36162b1 codec/h264/h264dec/cabac_test.go: fixed indentation of Shawn's name in file header 2019-08-19 23:43:28 +00:00
Saxon Milton 2735f99f9c codec/h264/h264dec/cabac.go: fixed indentation of Shawn's name in file header 2019-08-19 23:41:56 +00:00
Saxon 657d62a10b codec/h2646/h264dec: added file headers for cabac.go and cabac_test.go 2019-08-20 09:07:55 +09:30
Saxon 9691b1346c codec/h264/h264dec: removed comment for unexported error message and bettered text 2019-08-20 08:59:18 +09:30
Saxon 04fef9ce1d codec/h264/h264dec: added fixedLenBinarization and testing 2019-08-20 08:58:16 +09:30
Saxon 1a5f07305d codec/h264/h2646dec/cabac.go: runcated=>truncated in truncUnaryBinarization comment 2019-08-20 08:04:17 +09:30
Saxon 4a2c3487c7 codec/h264/h264dec: got rid of unneeded closure and renamed suffix to s 2019-08-20 07:53:31 +09:30
Saxon 08d3f6c3d1 codec/h264/h264dec: made absi faster and more readable 2019-08-20 07:53:31 +09:30
Saxon a7abd76113 codec/h264/h264dec: made mini faster and more readable 2019-08-20 07:53:31 +09:30
Saxon 4e29a70b78 codec/h264/h264dec: made maxi faster and more readable 2019-08-20 07:53:31 +09:30
Saxon a4130404fd codec/h264/h264dec: added truncUnaryBinarization and unaryExpGolombBinarization functions both with testing 2019-08-20 07:53:30 +09:30
Saxon 336aa73107 codec/h264/h264dec: wrote UnaryBinarization function and TestUnaryBinarization 2019-08-20 07:53:30 +09:30
Saxon 806264cd42 codec/h264/h264dec/slice.go: added comment to slice type consts to reference specifications 2019-08-19 16:24:53 +09:30
Saxon 6d06fab39f codec/h264/h264dec: added subMbTypeBinarization and TestSubMbTypeBinarization 2019-08-15 00:31:48 +09:30
Saxon cd83cf9e8e codec/h264/h2646dec: fixed up binarization tables and added mbTypeBinarization function along with test TestMbTypeBinarization. 2019-08-15 00:31:12 +09:30
Saxon ba6ecc2902 codec/h264/h264dec: added tables from reference implementation which are adapted tables from tables 9-12 to 9-33 of specifications for use in CABC initialisation 2019-08-06 14:21:52 +09:30
Saxon 150492a5bd codec/h264/h264dec: merged in master and fixed resultant problems 2019-08-05 14:41:26 +09:30
Saxon 2473b9ee0a codec/h264/h264dec: fixed some bugs found by testing 2019-08-05 13:59:08 +09:30
Saxon Milton 401f75a712 Merged in vui-hrd-parameters-types (pull request )
codec/h264/h264dec: separated VUI and HRD from SPS struct
2019-08-05 04:18:59 +00:00
Saxon 951d9dd244 codec/h264/h264dec: merged in master, fixed conflicts and problems that that resulted 2019-08-05 13:46:02 +09:30
Saxon 95a5ce0ac0 codec/h264/h264dec: wrote TestDecRefPicMarking and fixed bugs 2019-08-05 10:40:20 +09:30
Saxon c2ac8cff24 codec/h264/h264dec: added TestNewPredWeightTable 2019-08-05 01:17:19 +09:30
Saxon b6eb39f4e0 codec/h264/h264dec: started added TestNewPredWeightTable 2019-08-05 00:18:15 +09:30
Saxon 34ce81370d codec/h264/h264dec: added file headers to slice.go and slice_test.go 2019-08-04 13:45:28 +09:30
Saxon 21603750aa codec/h264/h264dec/slice_test.go: added TestNewRefPicListModification with a single test 2019-08-04 13:40:53 +09:30
Saxon a94109e286 codec/h264/h264dec: fixed newRefPicListModification 2019-08-04 12:59:13 +09:30
Trek H 3f29f0c84e Merge branch 'master' into revid-audio 2019-08-02 23:32:21 +09:30
Trek H e63b51e24f codec-util: removed newticker helper 2019-08-02 23:26:15 +09:30
Saxon Milton 3f1c09a671 Merged in slice-modularisation (pull request )
codec/h264/h264dec: SliceHeader modularisation
2019-08-01 11:25:14 +00:00
Saxon 344d37cd29 codec/h264/h264dec/nalunit_test.go: added file header 2019-08-01 02:41:20 +09:30
Saxon 311c44f55c codec/h264/h264dec: fixed problem with test 2019-08-01 02:37:34 +09:30
Saxon 42d57eb044 Merge branch 'master' into nalunit-test 2019-08-01 02:29:08 +09:30
Saxon 5185a70bbe codec/h264/h264dec: added TestNewNALUnit but broken, need to fix 2019-08-01 02:28:29 +09:30
Saxon d5776c4496 codec/h264/h264dec: added TestNewSVCExtension 2019-08-01 01:00:41 +09:30
Saxon aab3473abf codec/h264/h264dec: fixed bug in tests 2019-08-01 01:00:41 +09:30
Saxon 96377f8788 codec/h264/h264dec/nalunit_test.go: added TestNewThreeDAVCExtension 2019-08-01 01:00:41 +09:30
Saxon 48955967e0 codec/h264/h264dec/nalunit_test.go: added TestNewMVCExtension 2019-08-01 01:00:18 +09:30
Saxon 0b21b7a8c4 codec/h264/h264dec/read_test.go: added file header 2019-07-31 22:40:10 +09:30
Saxon 9239676214 codec/h264/h264dec: merged in master and removed additional binToSlice func 2019-07-31 22:39:20 +09:30
Saxon e839a8ae57 Merge branch 'master' into pps-testing 2019-07-31 22:38:43 +09:30
Saxon 547e9f22ae codec/h264/h264dec/helpers.go: added helpers.go file and binToSlice func for converting binary string to a []byte 2019-07-31 22:35:09 +09:30
Saxon 2906e82adc codec/h264/h264dec/pps_test.go: added file header 2019-07-31 22:08:03 +09:30
Saxon 84dfbfa2fd codec/h264/h264dec: merged in master and fixed conflict 2019-07-31 22:05:35 +09:30
Saxon 7a4ee894d4 codec/h264/h264dec/sps.go: commented fields of syntax structures 2019-07-31 20:25:38 +09:30
Saxon 1d6c501bb8 codec/h264/h264dec: fixed field types in sps.go and corrected code after merge of master into branch 2019-07-30 10:16:08 +09:30
Saxon 8e8dbbaec6 Merge branch 'master' into vui-hrd-parameters-types 2019-07-29 14:20:11 +09:30
Saxon 520ead0c6c codec/h264/h264dec/nalunit.go: using consts for NAL unit types check in newNALUnit 2019-07-29 14:08:59 +09:30
Saxon 8e1e84d311 codec/h264/h264dec/bits: removed ReadBitsInt and ReadBool as not required anymore 2019-07-29 13:43:03 +09:30
Saxon 6c69174303 codec/h264/h264dec: change field types to types more consistent with specs and now using fieldReader to read fields of syntax structures 2019-07-29 13:41:40 +09:30
Saxon 23d9f289dd codec/h264/h264dec: fixed field types for NalUnit and now using fieldReader in NewNALUnit 2019-07-29 13:04:59 +09:30
Saxon 03813d5a89 Merge branch 'master' into nal-extension-types 2019-07-29 12:49:54 +09:30
Saxon 430e56e22b codec/h264/h264dec: fixed readBits return type 2019-07-29 12:35:01 +09:30
Saxon 75a6df5da5 codec/h264/h264dec: removed readBitsInt and readBool 2019-07-29 12:33:14 +09:30
Saxon 9f47b22a84 codec/h264/h264dec: moved fieldReader to parse.go and wrote methods for reading other descriptor types like ue and te. 2019-07-27 13:59:12 +09:30
Saxon 404e6493b6 codec/h264/h26dec/read.go: added fieldReader type to provide sticky error and specific methods for bool and int reading 2019-07-27 13:37:57 +09:30
Saxon 6779fa3cb6 codec/h264/h264dec: commenting for NAL uni syntax structure fields 2019-07-27 12:26:30 +09:30
Saxon 513ac67ad9 codec/h264/h264dec: added tests for pps parsing found in pps.go and made necessary changes
Changes to get successful parsing included modification to moreRBSPData, and as a result
the Off function from the bits.BitReader. A couple of basic PPS tests have been added, but
more should be added once we know the scaling list parsing works.
2019-07-23 16:38:35 +09:30
Saxon 0240c4c5f7 codec/h264/h264dec: wrote DecRefPicMarking type with constructor and gave to SliceHeader type 2019-07-22 15:13:18 +09:30
Saxon c193853015 codec/h264/h264dec: wrote PredWeightTable type with constructor and gave to SliceHeader struct 2019-07-22 14:01:23 +09:30
Saxon 47d0c300fc codec/h264/h264dec: created RefPicListModification type with constructors and separated from SliceHeader type 2019-07-22 12:56:37 +09:30
Saxon a755ccfc58 codec/h264/h264dec: separated VUI and HRD from SPS struct
Took out all VUI and HRD parameters from the SPS struct and gave them their own structs - VUIParameters and HRDParameters, along with 'contructors'
NewVUIParameters and NewHRDParameters to parse from a bits.BitReader and populate the fields of the struct.
2019-07-21 22:11:27 +09:30
Saxon 865c1676da codec/h264/h264dec: wrote explantory comment for neglectance of io.EOF error when peeking in RBSP parsing process 2019-07-21 21:22:55 +09:30
Saxon 4d65d0d433 codec/h264/h264dec: fixed random build errors 2019-07-19 20:58:01 +09:30
Saxon 278c6f2ef1 codec/h264/h264dec/nalunit.go: added commenting 2019-07-19 20:51:48 +09:30
Saxon bdf3b37fef codec/h264/h264dec: fixed import path for bits package 2019-07-19 20:23:30 +09:30
Saxon ee12e4e90e codec/h264/h264dec: merged in master an fixed conflicts 2019-07-19 20:22:25 +09:30
Saxon f11ba2b433 codec/h264/h264dec: renamed NalUnit function to NewNALUnit and cleaned it up 2019-07-19 20:20:33 +09:30
Saxon 24f6b2d12f codec/h264/decode: added MVCExtension type and NewMVCExtension func 2019-07-19 18:04:51 +09:30
Saxon e54bc234c8 codec/h264/decode: added ThreeDAVCExtenstion type and NewThreeDAVCExtension function 2019-07-19 17:50:45 +09:30
Saxon 0d9861c49e codec/h264/decode: added SVCExtension struct with NewSVCExtension function 2019-07-19 17:37:54 +09:30
Saxon 16b4d570b6 codec/h264/h264dec/bits/bitreader.go: added ReadBool and ReadBitsInt methods 2019-07-19 17:25:57 +09:30
Saxon 3914bc1422 codec/h264/h264dec: fixed import paths 2019-07-19 15:44:45 +09:30
Saxon 5d31c49360 code/h264/h264dec: removed go module stuff 2019-07-19 15:21:17 +09:30
Saxon ce3d98bd3b codec/h264/h264dec: changed packages from h264 to h264dec 2019-07-19 15:20:39 +09:30
Saxon f7b1f2f7b8 codec/h264: decode pakage renamed to h264dec 2019-07-19 15:19:15 +09:30
Saxon ca717dddaf codec/h264/decode: giving parsing function calls BitReaders instead of nil 2019-07-19 14:36:50 +09:30
Saxon 4a9da74ff0 codec/h264/decode: did not copy over most up to date version from old repo, so fixing that 2019-07-19 13:29:10 +09:30
Saxon 04de967aa8 h264: renamed files to make more go like 2019-07-19 12:09:30 +09:30
Saxon f856671ee7 codec/h264: added mrmod h264decode pkg to our av/codec/h264 dir 2019-07-18 14:02:42 +09:30
Trek H 8518d931c6 codecutil: made zeroTicks global 2019-07-15 17:55:42 +09:30
Trek H eb4a325981 codecutil: removed unused code 2019-07-15 15:32:42 +09:30
Trek H 72d56e31ee codecutil: updated logic for 0 delay lexing 2019-07-15 15:17:16 +09:30
Trek H be389fca6e syntax and style changes 2019-07-11 14:54:06 +09:30
Saxon dae6151bae codec/h264: removed decode folder (shouldn't have been on master branch) 2019-06-27 13:57:30 +09:30
Saxon 611dbd14be codec/h264: added decode folder, decode/parse.go and first function in parse.go.
Added decode folder which will contain the h264 decoder and utilities. Added first file parse.go, which contains parsing
processes for syntax elements.
2019-06-23 23:58:05 +09:30
Trek H 95fc69b3c5 audio: syntax and error checking 2019-06-20 18:04:58 +09:30
Trek H 2d5ba8cd8f audio: added validate functions for device config 2019-06-18 18:35:45 +09:30
Trek H 6dd70639fe audio: removed bufSize arg in Lex funcs and use ByteLexer 2019-06-18 17:24:32 +09:30
Trek H b418944daa codecutil: added ByteLexer struct for configuring buffer size 2019-06-18 14:50:36 +09:30
Trek H fb12a2f69e pcm, audio: style changes 2019-06-17 13:29:01 +09:30
Trek H 01561e363d codecutil and audio: tests written using test tables 2019-06-14 19:49:49 +09:30
Trek H e3ba1e43f3 Merge branch 'master' into revid-audio 2019-06-14 00:15:04 +09:30
Trek H 9fe09255be audio and revid: changes for pr
added license to lex.go
changed pcm functions to return alsa.Buffers
style, syntax and clarification added to audio.go
new method of finding buffersize in audio.go uses a new function called nearestPowerOfTwo
2019-06-13 23:35:52 +09:30
Saxon 2640b1b615 Merge branch 'h264-rtp-lexer' 2019-06-07 02:00:41 +09:30
Saxon ce457e1d95 should have been in last commit 2019-06-07 02:00:31 +09:30