Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8187695

Remove deprecated VP6/FXM/FLV code from JavaFX

XMLWordPrintable

    • Icon: CSR CSR
    • Resolution: Approved
    • Icon: P2 P2
    • 10
    • javafx
    • None
    • behavioral
    • low
    • Hide
      Some developers may still be using VP6 for reasons unknown, against recommendations over the last several years to switch to H.264. Workaround will be to re-encode VP6 to H.264. However, there is no workaround for alpha channel. If developers require such functionality, they will need to figure out alternative solution for problem they trying to solve with alpha channel. As far as I know alpha channel is not being widely used. I do not remember seeing any bugs filed for it or any questions asked on OpenJFX mailing list, so most likely no one using it.
      Show
      Some developers may still be using VP6 for reasons unknown, against recommendations over the last several years to switch to H.264. Workaround will be to re-encode VP6 to H.264. However, there is no workaround for alpha channel. If developers require such functionality, they will need to figure out alternative solution for problem they trying to solve with alpha channel. As far as I know alpha channel is not being widely used. I do not remember seeing any bugs filed for it or any questions asked on OpenJFX mailing list, so most likely no one using it.
    • Other
    • JDK

      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

            almatvee Alexander Matveev
            kcr Kevin Rushforth
            David Dehaven (Inactive), Kevin Rushforth
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: