summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJulian Scheel <julian@jusst.de>2010-04-09 18:07:07 +0200
committerJulian Scheel <julian@jusst.de>2010-04-09 18:07:07 +0200
commitfc66d3d7b2375f5c56c7310f04bb941a4bbe1e65 (patch)
tree45fa99bdbb2b4f14e9640c14d631501128d47a7b
parent0fa51028db5e8c119a7f1adf6a32932a0cb7827b (diff)
downloadxine-lib-fc66d3d7b2375f5c56c7310f04bb941a4bbe1e65.tar.gz
xine-lib-fc66d3d7b2375f5c56c7310f04bb941a4bbe1e65.tar.bz2
fix freeze on discontinuities/seeking
completely reinitialise the h264 parser to avoid messup in the dpb which causes unnecessarily long img-locks, that might cause freezes
-rw-r--r--src/video_dec/libvdpau/vdpau_h264.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/video_dec/libvdpau/vdpau_h264.c b/src/video_dec/libvdpau/vdpau_h264.c
index 32821223f..4cda672ec 100644
--- a/src/video_dec/libvdpau/vdpau_h264.c
+++ b/src/video_dec/libvdpau/vdpau_h264.c
@@ -733,7 +733,12 @@ static void vdpau_h264_reset (video_decoder_t *this_gen) {
this->decoder = VDP_INVALID_HANDLE;
}
- reset_parser(this->nal_parser);
+ // Doing a full parser reinit here works more reliable than
+ // resetting
+
+ //reset_parser(this->nal_parser);
+ free_parser(this->nal_parser);
+ this->nal_parser = init_parser(this->xine);
this->color_standard = VDP_COLOR_STANDARD_ITUR_BT_601;
this->wait_for_bottom_field = 0;