summaryrefslogtreecommitdiffstats
path: root/sub
diff options
context:
space:
mode:
Diffstat (limited to 'sub')
-rw-r--r--sub/sd_ass.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/sub/sd_ass.c b/sub/sd_ass.c
index 1f7f33b026..c4373d4511 100644
--- a/sub/sd_ass.c
+++ b/sub/sd_ass.c
@@ -63,25 +63,29 @@ static void free_last_event(ASS_Track *track)
static int init(struct sd *sd)
{
+ struct MPOpts *opts = sd->opts;
if (!sd->ass_library || !sd->ass_renderer)
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) {
ctx->ass_track = sd->ass_track;
- } else if (ass) {
+ } else {
ctx->ass_track = ass_new_track(sd->ass_library);
- } else
- ctx->ass_track = mp_ass_default_track(sd->ass_library, sd->opts);
+ if (!is_converted)
+ ctx->ass_track->track_type = TRACK_TYPE_ASS;
+ }
if (sd->extradata) {
ass_process_codec_private(ctx->ass_track, sd->extradata,
sd->extradata_len);
}
+ mp_ass_add_default_styles(ctx->ass_track, opts);
+
ctx->vsfilter_aspect = !is_converted;
return 0;
}