structlock_end time_node* next 三個(gè)成員組成;
當(dāng)同一時(shí)間點(diǎn)存在多個(gè)加鎖錄像信息時(shí),相應(yīng)的加鎖錄像信息lock_info被插入到所述lock_end time_node節(jié)點(diǎn)的指向加鎖錄像信息的鏈表struct lock_info* lock info指向的加鎖信息子鏈表中,所述加鎖信息子鏈表的各個(gè)節(jié)點(diǎn)lock_info包括錄像通道號(hào)int came rid、錄像加鎖編號(hào)int lock seq、錄像加鎖結(jié)束時(shí)間time_t lock end time、指向下一個(gè)節(jié)點(diǎn)struct lock_info* next四個(gè)成員,該結(jié)構(gòu)對(duì)應(yīng)數(shù)據(jù)庫(kù)表中相應(yīng)記錄項(xiàng)。
[0016]所述錄像加鎖原語(yǔ)為先對(duì)用戶要加鎖錄像信息進(jìn)行驗(yàn)證,并獲取錄像數(shù)據(jù)在存儲(chǔ)介質(zhì)上的各chunk塊的位置,然后添加相應(yīng)記錄到lock info表和lock chunk庫(kù)表中;同時(shí)還要判斷該加鎖錄像的加鎖結(jié)束時(shí)間是否在近期,如果條件成立則將相應(yīng)信息插入到近期失效加鎖鏈表相應(yīng)節(jié)點(diǎn)的子鏈表中;
所述加鎖錄像信息檢索原語(yǔ)為根據(jù)用戶輸入的錄像通道號(hào)和檢索時(shí)間區(qū)間,從lockinfo表中獲取相應(yīng)加鎖錄像信息返回給用戶使用;
所述更新加鎖信息原語(yǔ)為先對(duì)用戶要更新錄像加鎖信息進(jìn)行驗(yàn)證,從數(shù)據(jù)庫(kù)表lockinfo表和lock chunk表中檢索匹配的記錄項(xiàng),然后對(duì)記錄項(xiàng)進(jìn)行更新,最后根據(jù)更新后的錄像加鎖結(jié)束時(shí)間對(duì)近期失效加鎖鏈表的相應(yīng)加鎖信息進(jìn)行更新; 所述錄像解鎖原語(yǔ)為先對(duì)用戶的解鎖請(qǐng)求進(jìn)行驗(yàn)證,然后在lock info表和lockchunk表中進(jìn)行檢索并刪除相應(yīng)記錄;當(dāng)該加鎖錄像的加鎖結(jié)束時(shí)間在近期時(shí),則從近期失效加鎖鏈表的相應(yīng)節(jié)點(diǎn)子鏈上刪除相應(yīng)加鎖數(shù)據(jù);
所述自動(dòng)解鎖原語(yǔ)通過(guò)后臺(tái)線程對(duì)近期失效加鎖鏈表的管理來(lái)實(shí)現(xiàn),后臺(tái)線程定時(shí)啟動(dòng)對(duì)近期失效加鎖鏈表頭結(jié)點(diǎn)的檢查,當(dāng)頭結(jié)點(diǎn)的加鎖結(jié)束時(shí)間lock end time不晚于當(dāng)前的系統(tǒng)時(shí)間時(shí),分別對(duì)數(shù)據(jù)庫(kù)lock chunk表和lock info表的相應(yīng)記錄進(jìn)行刪除操作,然后刪除所述加鎖信息子鏈表的各個(gè)節(jié)點(diǎn),所述lock_end time_node頭結(jié)點(diǎn)指向當(dāng)前節(jié)點(diǎn)的下一個(gè)節(jié)點(diǎn)并刪除當(dāng)前節(jié)點(diǎn);隨后,對(duì)新的頭結(jié)點(diǎn)做相同檢驗(yàn)和操作,直到條件不再成立,線程睡眠,等待下一時(shí)間點(diǎn)的檢查;當(dāng)近期失效加鎖鏈表內(nèi)容為空時(shí),程序從數(shù)據(jù)庫(kù)表中檢索符合在下一段近期時(shí)間區(qū)間內(nèi)加鎖失效條件的記錄,并按錄像加鎖失效時(shí)間字段值進(jìn)行排序,添加到近期失效加鎖鏈表相應(yīng)節(jié)點(diǎn)指向的加鎖信息子鏈表上。
[0017]當(dāng)存儲(chǔ)介質(zhì)剩余空間不足,需要循環(huán)覆蓋掉已有視頻錄像數(shù)據(jù)時(shí),首先檢查chunk編號(hào)在數(shù)據(jù)庫(kù)lock chunk表中是否有相應(yīng)記錄項(xiàng)命中并且處于加鎖的有效時(shí)間區(qū)間內(nèi),即是否被鎖定,如果該chunk塊被鎖定,則跳過(guò)該chunk塊不做覆蓋操作,然后對(duì)下一個(gè)chunk塊進(jìn)行上述檢查,直到找到未加鎖的chunk塊執(zhí)行覆蓋操作。
【主權(quán)項(xiàng)】
1.一種視頻監(jiān)控錄像數(shù)據(jù)加鎖的方法,其特征在于:將需要著重保護(hù)的錄像加鎖,并通過(guò)數(shù)據(jù)庫(kù)記錄加鎖錄像的基本描述信息和加鎖錄像數(shù)據(jù)在介質(zhì)上存儲(chǔ)的位置以及該段錄像加鎖生效的時(shí)間區(qū)間信息;當(dāng)剩余磁盤(pán)空間不足時(shí),對(duì)數(shù)據(jù)庫(kù)中加鎖錄像數(shù)據(jù)信息進(jìn)行檢索,跳過(guò)相應(yīng)加鎖磁盤(pán)Chunk塊位置不做覆蓋以此保護(hù)加鎖錄像數(shù)據(jù);同時(shí)不斷更新加鎖信息,根據(jù)對(duì)加鎖錄像數(shù)據(jù)設(shè)置的加鎖生效和結(jié)束加鎖時(shí)間,在到達(dá)指定時(shí)間后加鎖生效和自動(dòng)解鎖功能;另外根據(jù)用戶的解鎖請(qǐng)求還能進(jìn)行錄像解鎖。
2.根據(jù)權(quán)利要求1所述的視頻監(jiān)控錄像數(shù)據(jù)加鎖的方法,其特征在于: 所述加鎖錄像的基本描述信息記錄在lock info表中,所述lock info表包括錄像加鎖編號(hào)lock seq、錄像通道號(hào)came rid、錄像開(kāi)始時(shí)間begin time、錄像結(jié)束時(shí)間endtime、加鎖生效時(shí)間lock begin time、加鎖結(jié)束時(shí)間lock end time六個(gè)字段的數(shù)據(jù);所述加鎖錄像數(shù)據(jù)在介質(zhì)上存儲(chǔ)的位置以及該段錄像加鎖生效的時(shí)間區(qū)間信息記錄在lock chunk表中,所述lock chunk表包括自增編號(hào)lock id、錄像加鎖編號(hào)lock seq、存儲(chǔ)錄像的chunk編號(hào)chunk index、加鎖生效時(shí)間lock begin time、加鎖結(jié)束時(shí)間lockend time五個(gè)字段的數(shù)據(jù); 同時(shí),還要維護(hù)近期失效加鎖鏈表,所述近期失效加鎖鏈表的各個(gè)節(jié)點(diǎn)lock_endtime_node按錄像加鎖的失效時(shí)間進(jìn)行排序,每個(gè)節(jié)點(diǎn)包括錄像結(jié)束時(shí)間time_t lock endtime、指向加鎖錄像信息的鏈表struct lock_info* lock info、指向下一個(gè)節(jié)點(diǎn)structlock_end time_node* next 三個(gè)成員組成; 當(dāng)同一時(shí)間點(diǎn)存在多個(gè)加鎖錄像信息時(shí),相應(yīng)的加鎖錄像信息lock_info被插入到所述lock_end time_node節(jié)點(diǎn)的指向加鎖錄像信息的鏈表struct lock_info* lock info指向的加鎖信息子鏈表中,所述加鎖信息子鏈表的各個(gè)節(jié)點(diǎn)lock_info包括錄像通道號(hào)int came rid、錄像加鎖編號(hào)int lock seq、錄像加鎖結(jié)束時(shí)間time_t lock end time、指向下一個(gè)節(jié)點(diǎn)struct lock_info* next四個(gè)成員,該結(jié)構(gòu)對(duì)應(yīng)數(shù)據(jù)庫(kù)表中相應(yīng)記錄項(xiàng)。
3.根據(jù)權(quán)利要求1或2所述的視頻監(jiān)控錄像數(shù)據(jù)加鎖的方法,其特征在于: 所述錄像加鎖原語(yǔ)為先對(duì)用戶要加鎖錄像信息進(jìn)行驗(yàn)證,并獲取錄像數(shù)據(jù)在存儲(chǔ)介質(zhì)上的各chunk塊的位置,然后添加相應(yīng)記錄到lock info表和lock chunk庫(kù)表中;同時(shí)還要判斷該加鎖錄像的加鎖結(jié)束時(shí)間是否在近期,如果條件成立則將相應(yīng)信息插入到近期失效加鎖鏈表相應(yīng)節(jié)點(diǎn)的子鏈表中; 所述加鎖錄像信息檢索原語(yǔ)為根據(jù)用戶輸入的錄像通道號(hào)和檢索時(shí)間區(qū)間,從lockinfo表中獲取相應(yīng)加鎖錄像信息返回給用戶使用; 所述更新加鎖信息原語(yǔ)為先對(duì)用戶要更新錄像加鎖信息進(jìn)行驗(yàn)證,從數(shù)據(jù)庫(kù)表lockinfo表和lock chunk表中檢索匹配的記錄項(xiàng),然后對(duì)記錄項(xiàng)進(jìn)行更新,最后根據(jù)更新后的錄像加鎖結(jié)束時(shí)間對(duì)近期失效加鎖鏈表的相應(yīng)加鎖信息進(jìn)行更新; 所述錄像解鎖原語(yǔ)為先對(duì)用戶的解鎖請(qǐng)求進(jìn)行驗(yàn)證,然后在lock info表和lockchunk表中進(jìn)行檢索并刪除相應(yīng)記錄;當(dāng)該加鎖錄像的加鎖結(jié)束時(shí)間在近期時(shí),則從近期失效加鎖鏈表的相應(yīng)節(jié)點(diǎn)子鏈上刪除相應(yīng)加鎖數(shù)據(jù); 所述自動(dòng)解鎖原語(yǔ)通過(guò)后臺(tái)線程對(duì)近期失效加鎖鏈表的管理來(lái)實(shí)現(xiàn),后臺(tái)線程定時(shí)啟動(dòng)對(duì)近期失效加鎖鏈表頭結(jié)點(diǎn)的檢查,當(dāng)頭結(jié)點(diǎn)的加鎖結(jié)束時(shí)間lock end time不晚于當(dāng)前的系統(tǒng)時(shí)間時(shí),分別對(duì)數(shù)據(jù)庫(kù)lock chunk表和lock info表的相應(yīng)記錄進(jìn)行刪除操作,然后刪除所述加鎖信息子鏈表的各個(gè)節(jié)點(diǎn),所述lock_end time_node頭結(jié)點(diǎn)指向當(dāng)前節(jié)點(diǎn)的下一個(gè)節(jié)點(diǎn)并刪除當(dāng)前節(jié)點(diǎn);隨后,對(duì)新的頭結(jié)點(diǎn)做相同檢驗(yàn)和操作,直到條件不再成立,線程睡眠,等待下一時(shí)間點(diǎn)的檢查;當(dāng)近期失效加鎖鏈表內(nèi)容為空時(shí),程序從數(shù)據(jù)庫(kù)表中檢索符合在下一段近期時(shí)間區(qū)間內(nèi)加鎖失效條件的記錄,并按錄像加鎖失效時(shí)間字段值進(jìn)行排序,添加到近期失效加鎖鏈表相應(yīng)節(jié)點(diǎn)指向的加鎖信息子鏈表上。
4.根據(jù)權(quán)利要求1所述的視頻監(jiān)控錄像數(shù)據(jù)加鎖的方法,其特征在于:當(dāng)存儲(chǔ)介質(zhì)剩余空間不足,需要循環(huán)覆蓋掉已有視頻錄像數(shù)據(jù)時(shí),首先檢查chunk編號(hào)在數(shù)據(jù)庫(kù)lockchunk表中是否有相應(yīng)記錄項(xiàng)命中并且處于加鎖的有效時(shí)間區(qū)間內(nèi),即是否被鎖定,如果該chunk塊被鎖定,則跳過(guò)該chunk塊不做覆蓋操作,然后對(duì)下一個(gè)chunk塊進(jìn)行上述檢查,直到找到未加鎖的chunk塊執(zhí)行覆蓋操作。
【專(zhuān)利摘要】本發(fā)明特別涉及一種視頻監(jiān)控錄像數(shù)據(jù)加鎖的方法。該視頻監(jiān)控錄像數(shù)據(jù)加鎖的方法,將需要著重保護(hù)的錄像加鎖,當(dāng)剩余磁盤(pán)空間不足時(shí),對(duì)數(shù)據(jù)庫(kù)中加鎖錄像數(shù)據(jù)信息進(jìn)行檢索,跳過(guò)相應(yīng)加鎖磁盤(pán)chunk塊位置不做覆蓋以此保護(hù)加鎖錄像數(shù)據(jù)。該視頻監(jiān)控錄像數(shù)據(jù)加鎖的方法,當(dāng)存儲(chǔ)介質(zhì)剩余空間不足,需要循環(huán)覆蓋掉已有視頻錄像數(shù)據(jù)時(shí),采用將制定錄像數(shù)據(jù)加鎖的方式,通過(guò)對(duì)數(shù)據(jù)庫(kù)中已加鎖錄像數(shù)據(jù)信息的記錄進(jìn)行檢索,跳過(guò)相應(yīng)加鎖磁盤(pán)chunk位置不做覆蓋,實(shí)現(xiàn)了對(duì)加鎖錄像數(shù)據(jù)的保護(hù);另外,根據(jù)加鎖生效和結(jié)束加鎖時(shí)間,還可以實(shí)現(xiàn)在到達(dá)指定時(shí)間后加鎖生效和自動(dòng)解鎖的功能。
【IPC分類(lèi)】H04N5-91, H04N5-76
【公開(kāi)號(hào)】CN104702873
【申請(qǐng)?zhí)枴緾N201510126767
【發(fā)明人】苑忠科, 肖健明, 張會(huì)健
【申請(qǐng)人】浪潮集團(tuán)有限公司
【公開(kāi)日】2015年6月10日
【申請(qǐng)日】2015年3月23日