mirror of
https://github.com/mpv-player/mpv.git
synced 2025-12-28 05:33:14 +00:00
sub: pack libass bitmaps directly in sd_ass.c and osd_libass.c
Change all producer of libass images to packing the bitmaps into a single larger bitmap directly when they're output. This is supposed to help working towards refcounted sub bitmaps. This will reduce performance for VOs like vo_xv, but not for vo_opengl. vo_opengl simply will pick up the pre-packed sub bitmaps, and skip packing them again. vo_xv will copy and pack the sub bitmaps unnecessarily - but if we want sub bitmap refcounting, they'd have to be copied anyway. The packing code cannot be removed yet from vo_opengl, because there are certain corner cases that still produce unpackad other sub bitmaps. Actual refcounting will also require more work.
This commit is contained in:
@@ -57,8 +57,10 @@ struct osd_object {
|
||||
struct mp_osd_res vo_res;
|
||||
|
||||
// Internally used by osd_libass.c
|
||||
struct sub_bitmaps parts_cache;
|
||||
bool changed;
|
||||
struct ass_state ass;
|
||||
struct mp_ass_packer *ass_packer;
|
||||
struct ass_image **ass_imgs;
|
||||
};
|
||||
|
||||
struct osd_external {
|
||||
|
||||
Reference in New Issue
Block a user