2 * This file is part of MPlayer.
4 * MPlayer is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or
7 * (at your option) any later version.
9 * MPlayer is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
14 * You should have received a copy of the GNU General Public License along
15 * with MPlayer; if not, write to the Free Software Foundation, Inc.,
16 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
24 #include "libmpdemux/stheader.h"
29 extern const struct sd_functions sd_ass
;
31 void sub_init(struct sh_sub
*sh
, struct osd_state
*osd
)
33 struct MPOpts
*opts
= sh
->opts
;
36 if (opts
->ass_enabled
&& is_text_sub(sh
->type
))
37 sh
->sd_driver
= &sd_ass
;
40 sh
->sd_driver
->init(sh
, osd
);
41 sh
->initialized
= true;
46 void sub_decode(struct sh_sub
*sh
, struct osd_state
*osd
, void *data
,
47 int data_len
, double pts
, double duration
)
49 if (sh
->active
&& sh
->sd_driver
->decode
)
50 sh
->sd_driver
->decode(sh
, osd
, data
, data_len
, pts
, duration
);
53 void sub_reset(struct sh_sub
*sh
, struct osd_state
*osd
)
55 if (sh
->active
&& sh
->sd_driver
->reset
)
56 sh
->sd_driver
->reset(sh
, osd
);
59 void sub_switchoff(struct sh_sub
*sh
, struct osd_state
*osd
)
61 if (sh
->active
&& sh
->sd_driver
->switch_off
)
62 sh
->sd_driver
->switch_off(sh
, osd
);
66 void sub_uninit(struct sh_sub
*sh
)
69 if (sh
->initialized
&& sh
->sd_driver
->uninit
)
70 sh
->sd_driver
->uninit(sh
);
71 sh
->initialized
= false;