aux platform
This commit is contained in:
@@ -50,6 +50,7 @@ func (p *Extractor) ExtractOriginalImageData() ([]string, error) {
|
||||
var sData []string
|
||||
name := filepath.Base(p.params.InputData)
|
||||
aosDataFile := filepath.Join(p.params.TempPath, AOSTempDataPrefix+name)
|
||||
nullFrmCnt := 0
|
||||
|
||||
aosData, err := os.ReadFile(aosDataFile)
|
||||
if err != nil {
|
||||
@@ -60,6 +61,9 @@ func (p *Extractor) ExtractOriginalImageData() ([]string, error) {
|
||||
snRange := map[int][]uint32{}
|
||||
datSet := map[int][]byte{}
|
||||
|
||||
fsn, _ := os.Create("demo/temp/tf_sn.txt")
|
||||
defer fsn.Close()
|
||||
|
||||
var i int
|
||||
for i < len(aosData) {
|
||||
if i+4 > len(aosData) {
|
||||
@@ -69,7 +73,7 @@ func (p *Extractor) ExtractOriginalImageData() ([]string, error) {
|
||||
|
||||
if aosData[i] == 0xE7 && aosData[i+1] == 0x7E && aosData[i+2] == 0xE7 && aosData[i+3] == 0x7E {
|
||||
if i+TransImageFrameLength > len(aosData) {
|
||||
log.Println("trans frame length error")
|
||||
log.Println("there are not enough data for a trans frame", len(aosData)-i)
|
||||
break
|
||||
}
|
||||
|
||||
@@ -77,10 +81,13 @@ func (p *Extractor) ExtractOriginalImageData() ([]string, error) {
|
||||
tf.Decode(aosData[i : i+TransImageFrameLength])
|
||||
fileno := int(tf.FileNo)
|
||||
snRange[fileno] = append(snRange[fileno], tf.SNo)
|
||||
fsn.WriteString(fmt.Sprintf("%d %d %d\n", i, tf.SNo, fileno))
|
||||
|
||||
// 只保留非空帧
|
||||
if tf.FrameFlag != 0x55 && fileno != 0 {
|
||||
datSet[fileno] = append(datSet[fileno], tf.Data...)
|
||||
} else {
|
||||
nullFrmCnt++
|
||||
}
|
||||
|
||||
i += TransImageFrameLength
|
||||
@@ -89,6 +96,8 @@ func (p *Extractor) ExtractOriginalImageData() ([]string, error) {
|
||||
i++
|
||||
}
|
||||
|
||||
fmt.Println("nullFrmCnt:", nullFrmCnt)
|
||||
|
||||
for k, v := range snRange {
|
||||
vv := slice.Unique(v)
|
||||
sort.Slice(vv, func(i, j int) bool { return vv[i] < vv[j] })
|
||||
|
||||
Reference in New Issue
Block a user