mirror of
				https://github.com/TeamPiped/Piped.git
				synced 2024-08-14 23:57:27 +00:00 
			
		
		
		
	Add support for enabling / disabling codecs.
This commit is contained in:
		
							parent
							
								
									e9ee24d4aa
								
							
						
					
					
						commit
						c529b003b2
					
				
					 3 changed files with 26 additions and 5 deletions
				
			
		| 
						 | 
				
			
			@ -56,11 +56,19 @@ export default {
 | 
			
		|||
        },
 | 
			
		||||
        preferredVideoCodecs: _this => {
 | 
			
		||||
            var preferredVideoCodecs = [];
 | 
			
		||||
            const enabledCodecs = _this.getPreferenceString("enabledCodecs", "av1,vp9,avc").split(",");
 | 
			
		||||
 | 
			
		||||
            if (_this.$refs.videoEl.canPlayType('video/mp4; codecs="av01.0.08M.08"') !== "")
 | 
			
		||||
            if (
 | 
			
		||||
                _this.$refs.videoEl.canPlayType('video/mp4; codecs="av01.0.08M.08"') !== "" &&
 | 
			
		||||
                enabledCodecs.includes("av1")
 | 
			
		||||
            )
 | 
			
		||||
                preferredVideoCodecs.push("av01");
 | 
			
		||||
            if (_this.$refs.videoEl.canPlayType('video/webm; codecs="vp9"') !== "") preferredVideoCodecs.push("vp9");
 | 
			
		||||
            if (_this.$refs.videoEl.canPlayType('video/mp4; codecs="avc1.4d401f"') !== "")
 | 
			
		||||
            if (_this.$refs.videoEl.canPlayType('video/webm; codecs="vp9"') !== "" && enabledCodecs.includes("vp9"))
 | 
			
		||||
                preferredVideoCodecs.push("vp9");
 | 
			
		||||
            if (
 | 
			
		||||
                _this.$refs.videoEl.canPlayType('video/mp4; codecs="avc1.4d401f"') !== "" &&
 | 
			
		||||
                enabledCodecs.includes("avc")
 | 
			
		||||
            )
 | 
			
		||||
                preferredVideoCodecs.push("avc1");
 | 
			
		||||
 | 
			
		||||
            return preferredVideoCodecs;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -98,6 +98,14 @@
 | 
			
		|||
    <select class="uk-select uk-width-auto" v-model="selectedLanguage" @change="onChange($event)">
 | 
			
		||||
        <option :key="language.code" v-for="language in languages" :value="language.code">{{ language.name }}</option>
 | 
			
		||||
    </select>
 | 
			
		||||
    <br />
 | 
			
		||||
    <b v-t="'actions.enabled_codecs'" />
 | 
			
		||||
    <br />
 | 
			
		||||
    <select class="uk-select uk-width-auto" v-model="enabledCodecs" @change="onChange($event)" multiple>
 | 
			
		||||
        <option value="av1">AV1</option>
 | 
			
		||||
        <option value="vp9">VP9</option>
 | 
			
		||||
        <option value="avc">AVC (h.264)</option>
 | 
			
		||||
    </select>
 | 
			
		||||
    <h2 v-t="'actions.instances_list'" />
 | 
			
		||||
    <table class="uk-table">
 | 
			
		||||
        <thead>
 | 
			
		||||
| 
						 | 
				
			
			@ -170,6 +178,7 @@ export default {
 | 
			
		|||
                { code: "nb_NO", name: "Norwegian Bokmål" },
 | 
			
		||||
                { code: "tr", name: "Turkish" },
 | 
			
		||||
            ],
 | 
			
		||||
            enabledCodecs: ["av1", "vp9", "avc"],
 | 
			
		||||
        };
 | 
			
		||||
    },
 | 
			
		||||
    activated() {
 | 
			
		||||
| 
						 | 
				
			
			@ -255,6 +264,7 @@ export default {
 | 
			
		|||
            this.minimizeDescription = this.getPreferenceBoolean("minimizeDescription", false);
 | 
			
		||||
            this.watchHistory = this.getPreferenceBoolean("watchHistory", false);
 | 
			
		||||
            this.selectedLanguage = this.getPreferenceString("hl", "en");
 | 
			
		||||
            this.enabledCodecs = this.getPreferenceString("enabledCodecs", "av1,vp9,avc").split(",");
 | 
			
		||||
        }
 | 
			
		||||
    },
 | 
			
		||||
    methods: {
 | 
			
		||||
| 
						 | 
				
			
			@ -265,7 +275,8 @@ export default {
 | 
			
		|||
                if (
 | 
			
		||||
                    this.getPreferenceString("theme", "dark") !== this.selectedTheme ||
 | 
			
		||||
                    this.getPreferenceBoolean("watchHistory", false) != this.watchHistory ||
 | 
			
		||||
                    this.getPreferenceString("hl", "en") !== this.selectedLanguage
 | 
			
		||||
                    this.getPreferenceString("hl", "en") !== this.selectedLanguage ||
 | 
			
		||||
                    this.getPreferenceString("enabledCodecs", "av1,vp9,avc") !== this.enabledCodecs.join(",")
 | 
			
		||||
                )
 | 
			
		||||
                    shouldReload = true;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -293,6 +304,7 @@ export default {
 | 
			
		|||
                localStorage.setItem("minimizeDescription", this.minimizeDescription);
 | 
			
		||||
                localStorage.setItem("watchHistory", this.watchHistory);
 | 
			
		||||
                localStorage.setItem("hl", this.selectedLanguage);
 | 
			
		||||
                localStorage.setItem("enabledCodecs", this.enabledCodecs.join(","));
 | 
			
		||||
 | 
			
		||||
                if (shouldReload) window.location.reload();
 | 
			
		||||
            }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -43,6 +43,7 @@
 | 
			
		|||
        "minimize_description": "Minimize Description by default",
 | 
			
		||||
        "store_watch_history": "Store Watch History",
 | 
			
		||||
        "language_selection": "Language Selection",
 | 
			
		||||
        "instances_list": "Instances List"
 | 
			
		||||
        "instances_list": "Instances List",
 | 
			
		||||
        "enabled_codecs": "Enabled Codecs (Multiple)"
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue