• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

Eyevinn / mp4ff / 16985656442

15 Aug 2025 07:52AM UTC coverage: 81.361%. Remained the same
16985656442

push

github

tobbee
non-sync sample

0 of 2 new or added lines in 1 file covered. (0.0%)

16880 of 20747 relevant lines covered (81.36%)

0.9 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

73.53
/mp4/sampleflags.go
1
package mp4
2

3
import "fmt"
4

5
// SampleFlags according to 14496-12 Sec. 8.8.3.1
6
type SampleFlags struct {
7
        IsLeading                 byte
8
        SampleDependsOn           byte
9
        SampleIsDependedOn        byte
10
        SampleHasRedundancy       byte
11
        SamplePaddingValue        byte
12
        SampleIsNonSync           bool
13
        SampleDegradationPriority uint16
14
}
15

16
func (sf SampleFlags) String() string {
1✔
17
        return fmt.Sprintf("isLeading=%d dependsOn=%d isDependedOn=%d hasRedundancy=%d padding=%d isNonSync=%t degradationPriority=%d",
1✔
18
                sf.IsLeading, sf.SampleDependsOn, sf.SampleIsDependedOn, sf.SampleHasRedundancy, sf.SamplePaddingValue,
1✔
19
                sf.SampleIsNonSync, sf.SampleDegradationPriority)
1✔
20
}
1✔
21

22
// Encode - convert sampleflags to uint32 bit pattern
23
func (sf SampleFlags) Encode() uint32 {
1✔
24
        sfBin := uint32(sf.IsLeading)<<26 | uint32(sf.SampleDependsOn)<<24 | uint32(sf.SampleIsDependedOn)<<22
1✔
25
        sfBin |= uint32(sf.SampleHasRedundancy)<<20 | uint32(sf.SamplePaddingValue)<<17
1✔
26
        if sf.SampleIsNonSync {
2✔
27
                sfBin |= 1 << 16
1✔
28
        }
1✔
29
        sfBin |= uint32(sf.SampleDegradationPriority)
1✔
30
        return sfBin
1✔
31
}
32

33
// SyncSampleFlags - flags for I-frame or other sync sample
34
const SyncSampleFlags uint32 = 0x02000000
35

36
// NonSyncSampleFlags - flags for non-sync sample
37
const NonSyncSampleFlags uint32 = 0x00010000
38

39
// SampleDependsOn1 - flags for non-sync sample
40
const SampleDependsOn1 uint32 = 0x01000000
41

42
// IsSyncSampleFlags - flags is set correctly for sync sample
43
func IsSyncSampleFlags(flags uint32) bool {
×
44
        return flags&SyncSampleFlags == SyncSampleFlags
×
45
}
×
46

47
// SetSyncSampleFlags - return flags with syncsample pattern
48
func SetSyncSampleFlags(flags uint32) uint32 {
×
NEW
49
        return flags & ^NonSyncSampleFlags | SyncSampleFlags
×
50
}
×
51

52
// SetNonSyncSampleFlags - return flags with nonsyncsample pattern
53
func SetNonSyncSampleFlags(flags uint32) uint32 {
×
NEW
54
        return flags & ^SyncSampleFlags | NonSyncSampleFlags | SampleDependsOn1
×
55
}
×
56

57
// DecodeSampleFlags - decode a uint32 flags field
58
func DecodeSampleFlags(u uint32) SampleFlags {
1✔
59
        sf := SampleFlags{
1✔
60
                IsLeading:                 byte((u >> 26) & 0x3),
1✔
61
                SampleDependsOn:           byte((u >> 24) & 0x3),
1✔
62
                SampleIsDependedOn:        byte((u >> 22) & 0x3),
1✔
63
                SampleHasRedundancy:       byte((u >> 20) & 0x3),
1✔
64
                SamplePaddingValue:        byte((u >> 17) & 0x7),
1✔
65
                SampleIsNonSync:           (u>>16)&0x1 == 1,
1✔
66
                SampleDegradationPriority: uint16(u & 0xffff),
1✔
67
        }
1✔
68
        return sf
1✔
69
}
1✔
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc