JDK-8187695 : Remove deprecated VP6/FXM/FLV code from JavaFX
  • Type: CSR
  • Component: javafx
  • Sub-Component: media
  • Priority: P2
  • Status: Closed
  • Resolution: Approved
  • Fix Versions: 10
  • Submitted: 2017-09-19
  • Updated: 2017-10-09
  • Resolved: 2017-10-02
Related Reports
CSR :  
Description
Summary
-------

Remove deprecated support for VP6 video encoding and FLV/FXM file container.

Problem
-------

The VP6 video encoding format was introduced with Adobe Flash 8 and subsequently replaced with H.264/AVC1 in Flash 9. Adobe themselves, who championed widespread adoption of VP6 in Flash, now strongly discourages use and the format is no longer directly supported in modern tools from Adobe. Tools to produce VP6 video content are becoming more and more scarce and typically at an additional cost or by use of more third party tools, meaning it's more cost effective and productive to use a more modern format. H.264/AVC has long since replaced it for use on the web and we already support H.264 in JFXMedia. It does not make sense for us to maintain something when it's no longer used. We've been promoting the use of H.264 over VP6 since it was implemented in FX 2.1 more then 5 years ago. VP6 and FLV/FXM were deprecated since Java 9.

The FXM and FLV file formats are effectively the same thing, they use the same code to parse. The only use of FLV/FXM now is to deliver VP6 video.

Additionally, the VP6 codec code is the last piece of closed source code in JFXMedia. Removing this would make future maintainability of JFXMedia much easier as the codebase would not be split between repositories, and all the build system nightmares that that entails.

Solution
--------

We will document the removal of VP6 and FLV/FXM via release note, updating the JavaDocs to remove VP6/FLV/FXM from list of supported formats, add logger messages (if enabled) to the code that will be emitted when either the video codec or the file format is provided by user and return MEDIA_UNSUPPORTED error code when such format is provided.

AlphaMediaPlayerApp sample will removed from Ensemble8. This sample uses alpha channel support in VP6 video encoding. Other media formats currently supported by JavaFX Media do not support alpha channel and thus we do not have alternative solution for this sample.

Specification
-------------

The JavaDoc is as close to a specification as we have for JFXMedia:

https://docs.oracle.com/javase/8/javafx/api/javafx/scene/media/package-summary.html#SupportedMediaTypes
Comments
Moved to approved conditional on a release note being written for the change.
02-10-2017

Moving to provisional.
02-10-2017