35 lines
776 B
Go
35 lines
776 B
Go
package media
|
|
|
|
// ImageMeta is client-declared image metadata on publish.
|
|
type ImageMeta struct {
|
|
Width int
|
|
Height int
|
|
Size int64
|
|
}
|
|
|
|
// VideoMeta is client-declared video metadata on publish.
|
|
type VideoMeta struct {
|
|
Width int
|
|
Height int
|
|
Size int64
|
|
DurationMS int
|
|
}
|
|
|
|
// CheckPublishImages returns the first image violation, if any.
|
|
func (p Policy) CheckPublishImages(images []ImageMeta) *Violation {
|
|
for _, img := range images {
|
|
if v := p.CheckImageMeta(img.Width, img.Height, img.Size); v != nil {
|
|
return v
|
|
}
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// CheckPublishVideo returns a video violation, if any.
|
|
func (p Policy) CheckPublishVideo(v *VideoMeta) *Violation {
|
|
if v == nil {
|
|
return nil
|
|
}
|
|
return p.CheckVideoMeta(v.Width, v.Height, v.Size, v.DurationMS)
|
|
}
|