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:
parent
3913e3e383
commit
5d517184f5
@ -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,
|
||||
|
4
sub/sd.h
4
sub/sd.h
@ -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;
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user