import { SelectOptionsItem } from 'src/types/select-options-item.model'
-import { Component, Input, OnInit } from '@angular/core'
+import { Component, Input, OnChanges, OnInit, SimpleChanges } from '@angular/core'
import { FormGroup } from '@angular/forms'
-import { ServerConfig } from '@shared/models'
+import { HTMLServerConfig } from '@shared/models'
import { ConfigService } from '../shared/config.service'
import { EditConfigurationService, ResolutionOption } from './edit-configuration.service'
templateUrl: './edit-live-configuration.component.html',
styleUrls: [ './edit-custom-config.component.scss' ]
})
-export class EditLiveConfigurationComponent implements OnInit {
+export class EditLiveConfigurationComponent implements OnInit, OnChanges {
@Input() form: FormGroup
@Input() formErrors: any
- @Input() serverConfig: ServerConfig
+ @Input() serverConfig: HTMLServerConfig
transcodingThreadOptions: SelectOptionsItem[] = []
+ transcodingProfiles: SelectOptionsItem[] = []
+
liveMaxDurationOptions: SelectOptionsItem[] = []
liveResolutions: ResolutionOption[] = []
this.liveResolutions = this.editConfigurationService.getLiveResolutions()
}
- getAvailableTranscodingProfile () {
+ ngOnChanges (changes: SimpleChanges) {
+ if (changes['serverConfig']) {
+ this.transcodingProfiles = this.buildAvailableTranscodingProfile()
+ }
+ }
+
+ buildAvailableTranscodingProfile () {
const profiles = this.serverConfig.live.transcoding.availableProfiles
- return profiles.map(p => ({ id: p, label: p }))
+ return profiles.map(p => {
+ const description = p === 'default'
+ ? $localize`x264, targeting maximum device compatibility`
+ : ''
+
+ return { id: p, label: p, description }
+ })
}
getResolutionKey (resolution: string) {
return this.editConfigurationService.isLiveEnabled(this.form)
}
+ getDisabledLiveClass () {
+ return { 'disabled-checkbox-extra': !this.isLiveEnabled() }
+ }
+
+ getDisabledLiveTranscodingClass () {
+ return { 'disabled-checkbox-extra': !this.isLiveEnabled() || !this.isLiveTranscodingEnabled() }
+ }
+
isLiveTranscodingEnabled () {
return this.editConfigurationService.isLiveTranscodingEnabled(this.form)
}