summaryrefslogtreecommitdiffstats
path: root/spudec.c
diff options
context:
space:
mode:
Diffstat (limited to 'spudec.c')
-rw-r--r--spudec.c14
1 files changed, 9 insertions, 5 deletions
diff --git a/spudec.c b/spudec.c
index aedc1c04a9..0031e224b3 100644
--- a/spudec.c
+++ b/spudec.c
@@ -1202,11 +1202,15 @@ void *spudec_new_scaled(unsigned int *palette, unsigned int frame_width, unsigne
spudec_parse_extradata(this, extradata, extradata_len);
/* XXX Although the video frame is some size, the SPU frame is
always maximum size i.e. 720 wide and 576 or 480 high */
- this->orig_frame_width = 720;
- if (this->orig_frame_height == 480 || this->orig_frame_height == 240)
- this->orig_frame_height = 480;
- else
- this->orig_frame_height = 576;
+ // For HD files in MKV the VobSub resolution can be higher though,
+ // see largeres_vobsub.mkv
+ if (this->orig_frame_width <= 720 && this->orig_frame_height <= 576) {
+ this->orig_frame_width = 720;
+ if (this->orig_frame_height == 480 || this->orig_frame_height == 240)
+ this->orig_frame_height = 480;
+ else
+ this->orig_frame_height = 576;
+ }
}
else
mp_msg(MSGT_SPUDEC,MSGL_FATAL, "FATAL: spudec_init: calloc");