summaryrefslogtreecommitdiff
path: root/gst-libs/gst
diff options
context:
space:
mode:
authorSreerenj Balachandran <sreerenj.balachandran@intel.com>2015-09-04 22:11:10 +0300
committerSreerenj Balachandran <sreerenj.balachandran@intel.com>2015-09-04 22:11:10 +0300
commite90ea99df1044c371060f18101f11e17fac3ec10 (patch)
treeaa0031ccf2e366e8ccaf56b295c4e9d6d66ee31b /gst-libs/gst
parent8799a8044d0f0dae1c8f61310990b1222d1d5366 (diff)
downloadgst-vaapi-e90ea99df1044c371060f18101f11e17fac3ec10.tar.gz
decoder: hevc: Fix the dpb_add() based on C.5.2.3
Follow the spec as it is in C.5.2.3, add the decoded frame to dpb just after the PicLatencyCnt setting of existing dpb frames. https://bugzilla.gnome.org/show_bug.cgi?id=754010
Diffstat (limited to 'gst-libs/gst')
-rw-r--r--gst-libs/gst/vaapi/gstvaapidecoder_h265.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/gst-libs/gst/vaapi/gstvaapidecoder_h265.c b/gst-libs/gst/vaapi/gstvaapidecoder_h265.c
index ba2ab395..460c8301 100644
--- a/gst-libs/gst/vaapi/gstvaapidecoder_h265.c
+++ b/gst-libs/gst/vaapi/gstvaapidecoder_h265.c
@@ -826,6 +826,13 @@ dpb_add (GstVaapiDecoderH265 * decoder, GstVaapiPictureH265 * picture)
}
}
+ /* Create new frame store */
+ fs = gst_vaapi_frame_store_new (picture);
+ if (!fs)
+ return FALSE;
+ gst_vaapi_frame_store_replace (&priv->dpb[priv->dpb_count++], fs);
+ gst_vaapi_frame_store_unref (fs);
+
if (picture->output_flag) {
picture->output_needed = 1;
picture->pic_latency_cnt = 0;
@@ -843,13 +850,6 @@ dpb_add (GstVaapiDecoderH265 * decoder, GstVaapiPictureH265 * picture)
&& check_latency_cnt (decoder)))
dpb_bump (decoder, picture);
- /* Create new frame store */
- fs = gst_vaapi_frame_store_new (picture);
- if (!fs)
- return FALSE;
- gst_vaapi_frame_store_replace (&priv->dpb[priv->dpb_count++], fs);
- gst_vaapi_frame_store_unref (fs);
-
return TRUE;
}