Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
V
vlc-2-2
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Redmine
Redmine
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
videolan
vlc-2-2
Commits
1685c923
Commit
1685c923
authored
Jul 19, 2006
by
Olivier Aubert
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
modules/misc/svg.c: fix SVG rendering
parent
5ca8805a
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
26 additions
and
9 deletions
+26
-9
modules/misc/svg.c
modules/misc/svg.c
+26
-9
No files found.
modules/misc/svg.c
View file @
1685c923
...
...
@@ -36,7 +36,6 @@
#ifdef HAVE_SYS_TYPES_H
# include <sys/types.h>
#endif
#include <sys/stat.h>
#ifdef HAVE_UNISTD_H
# include <unistd.h>
...
...
@@ -44,6 +43,8 @@
# include <io.h>
#endif
#include <glib.h>
#include <glib/gstdio.h>
#include <glib-object.h>
/* g_object_unref( ) */
#include <librsvg-2/librsvg/rsvg.h>
...
...
@@ -146,7 +147,7 @@ static int Create( vlc_object_t *p_this )
p_filter
->
p_sys
=
p_sys
;
/* MUST call this before any RSVG funcs */
g_type_init
(
);
rsvg_init
(
);
return
VLC_SUCCESS
;
}
...
...
@@ -234,6 +235,7 @@ static void Destroy( vlc_object_t *p_this )
free
(
p_sys
->
psz_template
);
free
(
p_sys
);
rsvg_term
(
);
}
/*****************************************************************************
...
...
@@ -261,7 +263,7 @@ static int Render( filter_t *p_filter, subpicture_region_t *p_region,
if
(
p_svg
->
p_rendition
==
NULL
)
{
svg_RenderPicture
(
p_filter
,
p_svg
);
if
(
!
p_svg
)
if
(
!
p_svg
->
p_rendition
)
{
msg_Err
(
p_filter
,
"Cannot render SVG"
);
return
VLC_EGENERIC
;
...
...
@@ -397,22 +399,37 @@ static void svg_RenderPicture( filter_t *p_filter,
RsvgHandle
*
p_handle
;
GError
*
error
=
NULL
;
p_svg
->
p_rendition
=
NULL
;
p_handle
=
rsvg_handle_new
();
if
(
!
p_handle
)
{
msg_Err
(
p_filter
,
"Error creating SVG reader: %s"
,
error
->
message
);
return
;
}
rsvg_handle_set_size_callback
(
p_handle
,
svg_SizeCallback
,
p_filter
,
NULL
);
rsvg_handle_write
(
p_handle
,
(
guchar
*
)
p_svg
->
psz_text
,
strlen
(
p_svg
->
psz_text
)
+
1
,
&
error
);
if
(
error
!=
NULL
)
if
(
!
rsvg_handle_write
(
p_handle
,
(
guchar
*
)
p_svg
->
psz_text
,
strlen
(
p_svg
->
psz_text
),
&
error
)
)
{
msg_Err
(
p_filter
,
"error while rendering SVG: %s
\n
"
,
error
->
message
);
g_object_unref
(
G_OBJECT
(
p_handle
)
);
return
;
}
if
(
!
rsvg_handle_close
(
p_handle
,
&
error
)
)
{
msg_Err
(
p_filter
,
"error while rendering SVG (close): %s
\n
"
,
error
->
message
);
g_object_unref
(
G_OBJECT
(
p_handle
)
);
return
;
}
rsvg_handle_close
(
p_handle
,
&
error
);
p_svg
->
p_rendition
=
rsvg_handle_get_pixbuf
(
p_handle
);
rsvg_handle_free
(
p_handle
);
g_object_unref
(
G_OBJECT
(
p_handle
)
);
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment