svg: Report frame info

Part-of: <https://gitlab.gnome.org/GNOME/loupe/-/merge_requests/442>
This commit is contained in:
Sophie Herold 2024-08-05 19:02:33 +02:00
parent 1ea4a3ad5d
commit e61b3357ea

View file

@ -84,6 +84,8 @@ impl Svg {
tiles.set_original_dimensions((image.info().width, image.info().height)); tiles.set_original_dimensions((image.info().width, image.info().height));
let mut is_first_frame = true;
loop { loop {
let tile_request = { let tile_request = {
let mut request = request_store.write().unwrap(); let mut request = request_store.write().unwrap();
@ -138,6 +140,15 @@ impl Svg {
match image.specific_frame(frame_request).await { match image.specific_frame(frame_request).await {
Ok(frame) => { Ok(frame) => {
if is_first_frame {
is_first_frame = false;
let mut metadata: Metadata = Metadata::default();
metadata.set_frame_metadata(&frame);
updater.send(DecoderUpdate::Metadata(Box::new(metadata)));
}
let position = ( let position = (
tile_instructions.area.x() as u32, tile_instructions.area.x() as u32,
tile_instructions.area.y() as u32, tile_instructions.area.y() as u32,