JDK-8133841 : Full HD video can not be played on standard 1080p screen in portrait mode
  • Type: Bug
  • Component: javafx
  • Sub-Component: media
  • Affected Version: 8u51
  • Priority: P3
  • Status: Resolved
  • Resolution: Fixed
  • OS: windows
  • CPU: x86_64
  • Submitted: 2015-08-17
  • Updated: 2020-01-31
  • Resolved: 2019-04-08
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 8 Other
8u221Fixed openjfx11.0.4Fixed
Related Reports
Duplicate :  
Relates :  
Relates :  
Relates :  
Relates :  
Description
FULL PRODUCT VERSION :


ADDITIONAL OS VERSION INFORMATION :
Windows 7 64

A DESCRIPTION OF THE PROBLEM :
Hi, I would like to add a comment to  JDK-8091277 which may be helpful (or may spawn different ticket).

In addiitonal to high resolution videos, there is also a problem with videos which are NOT high resolution total but are just high resolution vertically. For example a vertical video with 1080x1920 will not play and will produce ERROR_MEDIA_INVALID.

Note this is important issue because vertical full HD video can not be played on standard 1080p screen in portrait mode!


Another suggestion is to improve media layer error messages to save users and developers time. ERROR_MEDIA_INVALID is returned is such broad range of cases, it is just impossible to know what happened without manually analyzing video file or burning time while debugging native source code. 


STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
open 1080x1920 file with MediaPlayer (actually 1080x1100 was sufficient)

EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
1080x1920 playing
ACTUAL -
UNKNOWN ERROR_MEDIA_INVALID from mediaPlayer.getError()

[com.sun.media.jfxmediaimpl.platform.gstreamer.GSTMediaPlayer@195bccfc] ERROR_MEDIA_INVALID: ERROR_MEDIA_INVALID
MediaException: UNKNOWN : [com.sun.media.jfxmediaimpl.platform.gstreamer.GSTMediaPlayer@195bccfc] ERROR_MEDIA_INVALID: ERROR_MEDIA_INVALID
	at javafx.scene.media.MediaException.getMediaException(MediaException.java:160)


REPRODUCIBILITY :
This bug can be reproduced always.


Comments
http://hg.openjdk.java.net/openjfx/jfx-dev/rt/rev/06543fe1b967
08-04-2019

Looks good. +1
08-04-2019

http://cr.openjdk.java.net/~almatvee/8133841/webrev.01/ - Dynamic format change will be enabled for portrait video and anything larger then 1920x1080.
04-04-2019

http://cr.openjdk.java.net/~almatvee/8133841/webrev.00/ - Added support for dynamic format change via ReceiveConnection(). For portrait video MS Decoder calls this method with new format. Since it was not implemented properly MD Decoder did not output any frames. - For HLS we using QueryAccept() approach to change resolution. - New dynamic format change is enabled for portrait video only and disabled for HLS to avoid regressions. - See https://docs.microsoft.com/en-us/windows/desktop/directshow/dynamic-format-changes for how format change works in DS. - Fixed regression in avcdecoder on OS X left from GStreamer update. In latest GStreamer (1.x) we cannot update caps in-place and we need send new event. Without fix some video did not displayed correctly due to wrong line stride. - Fixed gstregistry.c not to use value context.changed, since code which sets value is disabled. - Updated prefix in debug messages from AMDEBUG -> JFXMEDIA.
04-04-2019

the root cause and this enhancement implementation will be similar to 4k support. This is really an enhancement.
18-03-2019

Clarification from the submitter through JDK-8136523. ---------------------------------------------------------------------------------- Clarification regarding that I don't see limitation on Windows 7 to play full HD in portrait mode 1080x1920: The bug JDK-8133841 was marked as a duplicate of JDK-8091277. JDK-8091277 is for ultra HD res support and a comment states: "We using DirectShow H.264 decoder to decode H.264 video This decoder only supports resolution up-to 1920x1088, so anything larger will not play". This seems unrelated to portrait resolution problem. May be I miss something, but dshowwrapper.cpp uses "Microsoft DTV-DVD Video Decoder" clsid 212690FB-83E5-4526-8FD7-74478B7939CD. I don't observe any limitation in directshow or this microsoft decoder to play portrait 1080x1920 mp4 video on Win 7 64bit machines. So it is different bug, unrelated to ultra HD support. Simplest direct show graph [lav splitter source] -> [CLSID_CMPEG2VidDecoderDS= 212690FB-83E5-4526-8FD7-74478B7939CD] -> [any video renderer ] seems to play 1080x1920 mp4 file just fine on WIndows 7, so there is no limitation in the decoder itself. The same file on the same machine gives ERROR_MEDIA_INVALID in JavaFX 8u60. (btw. it may be also good idea to implement an option to use system preferred filters and codecs, instead of hard coded clsids) _________________________________
15-09-2015

Reopened after additional information from the submitter through JDK-8135144, but it is confusing. According to this bug: full HD video can not be played on standard 1080p screen in portrait mode According to JDK-8135144 : I don't see any limitation on Windows 7 to play full HD in portrait mode 1080x1920. Need to get the clarification. Making this Resolved/Incomplete. This bug can be reopened once the issue is clarified.
07-09-2015

Closing this bug as duplicate of https://bugs.openjdk.java.net/browse/JDK-8091277 after linking two bugs together.
18-08-2015