Page MenuHome

Animation player Internal
Open, Confirmed, MediumPublic

Description

Operating system: Windows 7 Pro SP1
Graphics card: GTX-970

Blender Version
v 2.82 Alpha Date : 2019-11-19 18:55 Hash : 9ca2cbdcea6a

Short description of error
Restoring Animation Internal player not OK.

Exact steps for others to reproduce the error
Blender Preferences / File Paths / Applications
I changed the internal player from "Internal" to "Custom" (for MPC = Media Player Classic).
Not satisfied (because MPC doesnt play image sequence), I reverted to "Internal".
Then, I got a MPC window reporting error. (The "Internal" player was thus not restored).
I had to revert once again to "Custom" and delete the MPC path, in order to get "Internal" player back OK.
I did not try in 2.80 or 2.81, but I guess it's the same...

Details

Type
Bug

Event Timeline

Germano Cavalcante (mano-wii) lowered the priority of this task from Needs Triage by Developer to Confirmed, Medium.Tue, Nov 26, 4:08 PM

It seems that presets are ignored when a path is already defined.
I don't know if the prefs.filepaths.animation_player property should be updated when the preset changes. But that seems to solve the problem:

diff --git a/release/scripts/startup/bl_operators/screen_play_rendered_anim.py b/release/scripts/startup/bl_operators/screen_play_rendered_anim.py
index 756d2ff1eeb..673413303a0 100644
--- a/release/scripts/startup/bl_operators/screen_play_rendered_anim.py
+++ b/release/scripts/startup/bl_operators/screen_play_rendered_anim.py
@@ -85,12 +85,12 @@ class PlayRenderedAnim(Operator):
         fps_final = rd.fps / rd.fps_base
 
         preset = prefs.filepaths.animation_player_preset
-        player_path = prefs.filepaths.animation_player
         # file_path = bpy.path.abspath(rd.filepath)  # UNUSED
         is_movie = rd.is_movie_format
 
-        # try and guess a command line if it doesn't exist
-        if player_path == "":
+        if preset == 'CUSTOM':
+            player_path = prefs.filepaths.animation_player
+        else:
             player_path = guess_player_path(preset)
 
         if is_movie is False and preset in {'FRAMECYCLER', 'RV', 'MPLAYER'}: