1
mirror of https://github.com/mpv-player/mpv synced 2024-08-24 07:21:49 +02:00

sub: never set VSFilter aspect if the ASS subtitle is converted

When e.g. converting SRT to ASS, we certainly don't want them stretched
by video aspect ratio, even if that's necessary for native ASS
subtitles.

Annoying weird details...
This commit is contained in:
wm4 2013-06-02 23:01:37 +02:00
parent 3913e3e383
commit 5d517184f5
3 changed files with 7 additions and 1 deletions

View File

@ -224,6 +224,7 @@ void sub_init_from_sh(struct dec_sub *sub, struct sh_sub *sh)
}
init_sd = (struct sd) {
.codec = sd->output_codec,
.converted_from = sd->codec,
.extradata = sd->output_extradata,
.extradata_len = sd->output_extradata_len,
.ass_library = sub->init_sd.ass_library,

View File

@ -16,6 +16,10 @@ struct sd {
char *extradata;
int extradata_len;
// Set to !=NULL if the input packets are being converted from another
// format.
const char *converted_from;
// Video resolution used for subtitle decoding. Doesn't necessarily match
// the resolution of the VO, nor does it have to be the OSD resolution.
int sub_video_w, sub_video_h;

View File

@ -67,6 +67,7 @@ static int init(struct sd *sd)
return -1;
bool ass = is_native_ass(sd->codec);
bool is_converted = sd->converted_from != NULL;
struct sd_ass_priv *ctx = talloc_zero(NULL, struct sd_ass_priv);
sd->priv = ctx;
if (sd->ass_track) {
@ -81,7 +82,7 @@ static int init(struct sd *sd)
sd->extradata_len);
}
ctx->vsfilter_aspect = ass;
ctx->vsfilter_aspect = !is_converted;
return 0;
}