summaryrefslogtreecommitdiffstats
path: root/video/decode
diff options
context:
space:
mode:
Diffstat (limited to 'video/decode')
-rw-r--r--video/decode/dec_video.c2
-rw-r--r--video/decode/dec_video.h3
2 files changed, 5 insertions, 0 deletions
diff --git a/video/decode/dec_video.c b/video/decode/dec_video.c
index 02e52368de..db9c318847 100644
--- a/video/decode/dec_video.c
+++ b/video/decode/dec_video.c
@@ -61,6 +61,7 @@ void video_reset_decoding(struct dec_video *d_video)
video_vd_control(d_video, VDCTRL_RESET, NULL);
if (d_video->vfilter && d_video->vfilter->initialized == 1)
vf_seek_reset(d_video->vfilter);
+ mp_image_unrefp(&d_video->waiting_decoded_mpi);
d_video->num_buffered_pts = 0;
d_video->last_pts = MP_NOPTS_VALUE;
d_video->last_packet_pdts = MP_NOPTS_VALUE;
@@ -116,6 +117,7 @@ int video_get_colors(struct dec_video *d_video, const char *item, int *value)
void video_uninit(struct dec_video *d_video)
{
+ mp_image_unrefp(&d_video->waiting_decoded_mpi);
if (d_video->vd_driver) {
mp_tmsg(MSGT_DECVIDEO, MSGL_V, "Uninit video.\n");
d_video->vd_driver->uninit(d_video);
diff --git a/video/decode/dec_video.h b/video/decode/dec_video.h
index c15f0d9aba..c0a8fcffe1 100644
--- a/video/decode/dec_video.h
+++ b/video/decode/dec_video.h
@@ -41,6 +41,9 @@ struct dec_video {
struct mp_image_params decoder_output; // last output of the decoder
struct mp_image_params vf_input; // video filter input params
+ // Used temporarily during format changes
+ struct mp_image *waiting_decoded_mpi;
+
void *priv; // for free use by vd_driver
// Last PTS from decoder (set with each vd_driver->decode() call)