commit gstreamer-plugins-vaapi for openSUSE:Factory

Hello community, here is the log from the commit of package gstreamer-plugins-vaapi for openSUSE:Factory checked in at 2017-02-21 13:49:44 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/gstreamer-plugins-vaapi (Old) and /work/SRC/openSUSE:Factory/.gstreamer-plugins-vaapi.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "gstreamer-plugins-vaapi" Changes: -------- --- /work/SRC/openSUSE:Factory/gstreamer-plugins-vaapi/gstreamer-plugins-vaapi.changes 2017-02-03 17:42:00.444130359 +0100 +++ /work/SRC/openSUSE:Factory/.gstreamer-plugins-vaapi.new/gstreamer-plugins-vaapi.changes 2017-02-21 13:49:48.600916678 +0100 @@ -1,0 +2,7 @@ +Thu Feb 9 20:08:39 UTC 2017 - zaitor@opensuse.org + +- Add gstreamer-plugins-vaapi-vaapipostproc-set-GST_VAAPI.patch and + gstreamer-plugins-vaapi-h264-reduce-frame-gaps.patch:: Add two + upstream bugfix commits (bgo#777506). + +------------------------------------------------------------------- New: ---- gstreamer-plugins-vaapi-h264-reduce-frame-gaps.patch gstreamer-plugins-vaapi-vaapipostproc-set-GST_VAAPI.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ gstreamer-plugins-vaapi.spec ++++++ --- /var/tmp/diff_new_pack.QiJ4Du/_old 2017-02-21 13:49:49.012858702 +0100 +++ /var/tmp/diff_new_pack.QiJ4Du/_new 2017-02-21 13:49:49.016858139 +0100 @@ -26,6 +26,10 @@ Group: Productivity/Multimedia/Other Url: https://gstreamer.freedesktop.org/ Source0: https://gstreamer.freedesktop.org/src/gstreamer-vaapi/gstreamer-vaapi-%{version}.tar.xz +# PATCH-FIX-UPSTREAM gstreamer-plugins-vaapi-vaapipostproc-set-GST_VAAPI.patch zaitor@opensuse.org -- vaapipostproc: set GST_VAAPI_POSTPROC_FLAG_SIZE according to src caps +Patch0: gstreamer-plugins-vaapi-vaapipostproc-set-GST_VAAPI.patch +# PATCH-FIX-UPSTREAM gstreamer-plugins-vaapi-h264-reduce-frame-gaps.patch bgo#777506 zaitor@opensuse.org -- libs: decoder: h264: reduce frame number of gaps +Patch1: gstreamer-plugins-vaapi-h264-reduce-frame-gaps.patch BuildRequires: Mesa-devel BuildRequires: Mesa-libGLESv3-devel BuildRequires: gtk-doc @@ -87,6 +91,8 @@ %prep %setup -q -n gstreamer-vaapi-%{version} +%patch0 -p1 +%patch1 -p1 %build %configure \ ++++++ gstreamer-plugins-vaapi-h264-reduce-frame-gaps.patch ++++++
Reduce frame num gaps so that we don't have to create unnecessary dummy pictures, just throw them away. Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> https://bugzilla.gnome.org/show_bug.cgi?id=777506 diff --git a/gst-libs/gst/vaapi/gstvaapidecoder_h264.c b/gst-libs/gst/vaapi/gstvaapidecoder_h264.c index 1d33a1f..c349b3f 100644 --- a/gst-libs/gst/vaapi/gstvaapidecoder_h264.c +++ b/gst-libs/gst/vaapi/gstvaapidecoder_h264.c @@ -3116,6 +3116,7 @@ fill_picture_gaps (GstVaapiDecoderH264 * decoder, GstVaapiPictureH264 * picture, GstVaapiDecoderH264Private *const priv = &decoder->priv; GstH264SPS *const sps = get_sps (decoder); const gint32 MaxFrameNum = 1 << (sps->log2_max_frame_num_minus4 + 4); + gint32 prev_frame_num; GstVaapiFrameStore *prev_frame; GstVaapiPicture *base_picture; GstVaapiPictureH264 *lost_picture, *prev_picture; @@ -3143,8 +3144,20 @@ fill_picture_gaps (GstVaapiDecoderH264 * decoder, GstVaapiPictureH264 * picture, lost_slice_hdr.dec_ref_pic_marking.adaptive_ref_pic_marking_mode_flag = 0; /* XXX: this process is incorrect for MVC */ - /* XXX: optimize to reduce the number of dummy pictures created */ - priv->frame_num = priv->prev_ref_frame_num; + /* Reduce frame num gaps so we don't have to create unnecessary + * dummy pictures */ + prev_frame_num = priv->prev_ref_frame_num; + if (prev_frame_num > slice_hdr->frame_num) + prev_frame_num -= MaxFrameNum; + + if ((slice_hdr->frame_num - prev_frame_num) - 1 > sps->num_ref_frames) { + prev_frame_num = (slice_hdr->frame_num - sps->num_ref_frames) - 1; + + if (prev_frame_num < 0) + prev_frame_num += MaxFrameNum; + } + priv->frame_num = prev_frame_num; + for (;;) { priv->prev_ref_frame_num = priv->frame_num; priv->frame_num = (priv->prev_ref_frame_num + 1) % MaxFrameNum; -- cgit v0.10.2 ++++++ gstreamer-plugins-vaapi-vaapipostproc-set-GST_VAAPI.patch ++++++
A value of width/height property should be set to out caps, if negotiation had been going properly. So we can use srcpad_info when making decision of scaling. https://bugzilla.gnome.org/show_bug.cgi?id=778010 diff --git a/gst/vaapi/gstvaapipostproc.c b/gst/vaapi/gstvaapipostproc.c index fb469ac..1bae9e9 100644 --- a/gst/vaapi/gstvaapipostproc.c +++ b/gst/vaapi/gstvaapipostproc.c @@ -981,10 +981,12 @@ gst_vaapipostproc_update_src_caps (GstVaapiPostproc * postproc, GstCaps * caps, postproc->format != DEFAULT_FORMAT) postproc->flags |= GST_VAAPI_POSTPROC_FLAG_FORMAT; - if ((postproc->width || postproc->height) && - postproc->width != GST_VIDEO_INFO_WIDTH (&postproc->sinkpad_info) && - postproc->height != GST_VIDEO_INFO_HEIGHT (&postproc->sinkpad_info)) + if (GST_VIDEO_INFO_WIDTH (&postproc->srcpad_info) != + GST_VIDEO_INFO_WIDTH (&postproc->sinkpad_info) + && GST_VIDEO_INFO_HEIGHT (&postproc->srcpad_info) != + GST_VIDEO_INFO_HEIGHT (&postproc->sinkpad_info)) postproc->flags |= GST_VAAPI_POSTPROC_FLAG_SIZE; + return TRUE; } -- cgit v0.10.2
participants (1)
-
root@hilbertn.suse.de