intel / gstreamer-media-SDK

GNU Lesser General Public License v2.1
90 stars 53 forks source link

HEVC 10-bit decode support for Apollo Lake platforms running Linux, new mfxvpp options and a bunch of important fixes #74

Closed ishmael1985 closed 6 years ago

SiewHoon commented 6 years ago

Go check again for this video - gst-play-1.0 bianxingjinggang.mp4 Before this 74 code changed, the video has slightly stuttered. But with new pull code in, the video playback become worse.

ishmael1985 commented 6 years ago

This branch has not yet dealt with issue #41. Clips like aichong.mp4, ailisi.mp4 and bianxingjinggang.mp4, the playback is pretty bad. I got this for bianxingjinggang.mp4 with gst-play-1.0:

image

I believe the rest should be ok.

SiewHoon commented 6 years ago

Then I will suggest you submit the new issue to track in for topic branch before I will merge in this pull.

ishmael1985 commented 6 years ago

Sure. I still need to investigate exactly the cause why these clips do badly with gst-play-1.0, but with gst-launch-1.0, the decode is fine for those 3 clips.

ishmael1985 commented 6 years ago

Hmm... it works perfectly on GStreamer version 1.13.1 for me with X11 DRI3 rendering, all 3 clips.

image

ishmael1985 commented 6 years ago

It should be noted that gst-play-1.0 playback of clips such as bianxingjinggang.mp4 has been resolved in GStreamer version 1.13.1 with the following patch:

https://cgit.freedesktop.org/gstreamer/gst-plugins-bad/commit/gst/videoparsers/gsth264parse.c?h=1.13.1&id=5ac886d85aab4b919f84fb80e2d1ef36dc8e647d

For Windows, the playback issue still exists as the only readily available latest version of GStreamer build is 1.12.4. The stutter issue is not caused by a regression in any of the patches for the proposed PR, as described in #76.

ishmael1985 commented 6 years ago

Commit https://github.com/intel/gstreamer-media-SDK/pull/74/commits/cfaed11c3d75252604717261395017fb60e7bb9e is quite important as it resolves an outstanding issue for GstGL interop. Prior to this, rendering issues can be seen through the following simple pipeline:

GST_GL_PLATFORM=egl gst-launch-1.0 filesrc location=/path/to/video.mp4 ! qtdemux ! h264parse ! mfxdecode ! 'video/x-raw, format=NV12' ! glimagesink