Changeset 5efb1f0118bdd2bc7f1836476b02b52dda468c6c
- Timestamp:
- 11/08/07 07:57:28
(1 year ago)
- Author:
- Bernie Purcell <bitmap@videolan.org>
- git-committer:
- Bernie Purcell <bitmap@videolan.org> 1186811848 +0000
- git-parent:
[7b246662a8b51c5e10676b4010865cdc26fa163e]
- git-author:
- Bernie Purcell <bitmap@videolan.org> 1186811848 +0000
- Message:
Prescaled output support
-
Files:
-
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
| r6df5e4e |
r5efb1f0 |
|
| 965 | 965 | vlc_iconv_t iconv_handle = (vlc_iconv_t)(-1); |
|---|
| 966 | 966 | int i_font_color, i_font_alpha, i_font_size, i_red, i_green, i_blue; |
|---|
| | 967 | vlc_value_t val; |
|---|
| | 968 | int i_scale = 1000; |
|---|
| 967 | 969 | |
|---|
| 968 | 970 | FT_BBox line; |
|---|
| … | … | |
| 976 | 978 | if( !psz_string || !*psz_string ) return VLC_EGENERIC; |
|---|
| 977 | 979 | |
|---|
| | 980 | if( VLC_SUCCESS == var_Get( p_filter, "scale", &val )) |
|---|
| | 981 | i_scale = val.i_int; |
|---|
| | 982 | |
|---|
| 978 | 983 | if( p_region_in->p_style ) |
|---|
| 979 | 984 | { |
|---|
| 980 | 985 | i_font_color = __MAX( __MIN( p_region_in->p_style->i_font_color, 0xFFFFFF ), 0 ); |
|---|
| 981 | 986 | i_font_alpha = __MAX( __MIN( p_region_in->p_style->i_font_alpha, 255 ), 0 ); |
|---|
| 982 | | i_font_size = __MAX( __MIN( p_region_in->p_style->i_font_size, 255 ), 0 ); |
|---|
| | 987 | i_font_size = __MAX( __MIN( p_region_in->p_style->i_font_size, 255 ), 0 ) * i_scale / 1000; |
|---|
| 983 | 988 | } |
|---|
| 984 | 989 | else |
|---|
| … | … | |
| 986 | 991 | i_font_color = p_sys->i_font_color; |
|---|
| 987 | 992 | i_font_alpha = 255 - p_sys->i_font_opacity; |
|---|
| 988 | | i_font_size = p_sys->i_default_font_size; |
|---|
| | 993 | i_font_size = p_sys->i_default_font_size * i_scale / 1000; |
|---|
| 989 | 994 | } |
|---|
| 990 | 995 | |
|---|
| … | … | |
| 1634 | 1639 | |
|---|
| 1635 | 1640 | static int HandleFontAttributes( xml_reader_t *p_xml_reader, |
|---|
| 1636 | | font_stack_t **p_fonts ) |
|---|
| | 1641 | font_stack_t **p_fonts, int i_scale ) |
|---|
| 1637 | 1642 | { |
|---|
| 1638 | 1643 | int rv; |
|---|
| … | … | |
| 1653 | 1658 | { |
|---|
| 1654 | 1659 | psz_fontname = strdup( psz_fontname ); |
|---|
| | 1660 | i_font_size = i_font_size * 1000 / i_scale; |
|---|
| 1655 | 1661 | } |
|---|
| 1656 | 1662 | i_font_alpha = (i_font_color >> 24) & 0xff; |
|---|
| … | … | |
| 1703 | 1709 | rv = PushFont( p_fonts, |
|---|
| 1704 | 1710 | psz_fontname, |
|---|
| 1705 | | i_font_size, |
|---|
| | 1711 | i_font_size * i_scale / 1000, |
|---|
| 1706 | 1712 | (i_font_color & 0xffffff) | ((i_font_alpha & 0xff) << 24), |
|---|
| 1707 | 1713 | i_karaoke_bg_color ); |
|---|
| … | … | |
| 1865 | 1871 | uint32_t *psz_text_orig = psz_text; |
|---|
| 1866 | 1872 | font_stack_t *p_fonts = NULL; |
|---|
| | 1873 | vlc_value_t val; |
|---|
| | 1874 | int i_scale = 1000; |
|---|
| 1867 | 1875 | |
|---|
| 1868 | 1876 | char *psz_node = NULL; |
|---|
| … | … | |
| 1872 | 1880 | vlc_bool_t b_uline = VLC_FALSE; |
|---|
| 1873 | 1881 | |
|---|
| | 1882 | if( VLC_SUCCESS == var_Get( p_filter, "scale", &val )) |
|---|
| | 1883 | i_scale = val.i_int; |
|---|
| | 1884 | |
|---|
| 1874 | 1885 | if( p_font_style ) |
|---|
| 1875 | 1886 | { |
|---|
| 1876 | 1887 | rv = PushFont( &p_fonts, |
|---|
| 1877 | 1888 | p_font_style->psz_fontname, |
|---|
| 1878 | | p_font_style->i_font_size, |
|---|
| | 1889 | p_font_style->i_font_size * i_scale / 1000, |
|---|
| 1879 | 1890 | (p_font_style->i_font_color & 0xffffff) | |
|---|
| 1880 | 1891 | ((p_font_style->i_font_alpha & 0xff) << 24), |
|---|
| … | … | |
| 1893 | 1904 | rv = PushFont( &p_fonts, |
|---|
| 1894 | 1905 | FC_DEFAULT_FONT, |
|---|
| 1895 | | p_sys->i_font_size, |
|---|
| | 1906 | p_sys->i_font_size * i_scale / 1000, |
|---|
| 1896 | 1907 | 0x00ffffff, |
|---|
| 1897 | 1908 | 0x00ffffff ); |
|---|
| … | … | |
| 1928 | 1939 | { |
|---|
| 1929 | 1940 | if( !strcasecmp( "font", psz_node ) ) |
|---|
| 1930 | | rv = HandleFontAttributes( p_xml_reader, &p_fonts ); |
|---|
| | 1941 | rv = HandleFontAttributes( p_xml_reader, &p_fonts, i_scale ); |
|---|
| 1931 | 1942 | else if( !strcasecmp( "b", psz_node ) ) |
|---|
| 1932 | 1943 | b_bold = VLC_TRUE; |
|---|
| … | … | |
| 2737 | 2748 | if( p_sys->i_default_font_size ) |
|---|
| 2738 | 2749 | { |
|---|
| 2739 | | i_size = p_sys->i_default_font_size; |
|---|
| | 2750 | if( VLC_SUCCESS == var_Get( p_filter, "scale", &val )) |
|---|
| | 2751 | i_size = p_sys->i_default_font_size * val.i_int / 1000; |
|---|
| | 2752 | else |
|---|
| | 2753 | i_size = p_sys->i_default_font_size; |
|---|
| 2740 | 2754 | } |
|---|
| 2741 | 2755 | else |
|---|
| … | … | |
| 2749 | 2763 | { |
|---|
| 2750 | 2764 | msg_Warn( p_filter, "invalid fontsize, using 12" ); |
|---|
| 2751 | | i_size = 12; |
|---|
| | 2765 | if( VLC_SUCCESS == var_Get( p_filter, "scale", &val )) |
|---|
| | 2766 | i_size = 12 * val.i_int / 1000; |
|---|
| | 2767 | else |
|---|
| | 2768 | i_size = 12; |
|---|
| 2752 | 2769 | } |
|---|
| 2753 | 2770 | |
|---|