Mercurial > hg > nginx-quic
annotate docs/xslt/changes.xslt @ 8669:f17ba8ecaaf0
Mp4: mp4_start_key_frame directive.
The directive enables including all frames from start time to the most recent
key frame in the result. Those frames are removed from presentation timeline
using mp4 edit lists.
Edit lists are currently supported by popular players and browsers such as
Chrome, Safari, QuickTime and ffmpeg. Among those not supporting them properly
is Firefox[1].
Based on a patch by Tracey Jaquith, Internet Archive.
[1] https://bugzilla.mozilla.org/show_bug.cgi?id=1735300
author | Roman Arutyunyan <arut@nginx.com> |
---|---|
date | Thu, 28 Oct 2021 14:14:25 +0300 |
parents | b7e02f47a339 |
children |
rev | line source |
---|---|
450 | 1 <?xml version="1.0" encoding="utf-8"?> |
2 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> | |
3 | |
5586 | 4 <xsl:output method="text"/> |
4014 | 5 |
5586 | 6 <xsl:param select="'en'" name="lang"/> |
7 <xsl:param select="'../xml/change_log_conf.xml'" name="configuration"/> | |
4014 | 8 |
5586 | 9 <xsl:variable select="document($configuration)/configuration" name="conf"/> |
10 <xsl:variable select="$conf/start" name="start"/> | |
11 <xsl:variable select="$conf/indent" name="indent"/> | |
12 <xsl:variable select="$conf/length" name="max"/> | |
13 <xsl:variable name="br"><br></xsl:variable> | |
4014 | 14 |
15 | |
5586 | 16 <xsl:template match="/"> <xsl:apply-templates select="change_log"/> </xsl:template> |
17 <xsl:template match="change_log"> <xsl:apply-templates select="changes"/> </xsl:template> | |
4014 | 18 |
19 | |
5586 | 20 <xsl:template match="changes"> |
21 <xsl:text> </xsl:text> | |
450 | 22 |
5586 | 23 <xsl:value-of select="substring(concat($conf/changes[@lang=$lang]/title, |
24 //change_log/@title, | |
25 ' ', @ver, | |
26 ' '), | |
27 1, $conf/changes[@lang=$lang]/length)"/> | |
450 | 28 |
6915
b7e02f47a339
Docs: changes.xslt regenerated.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5586
diff
changeset
|
29 <xsl:if test="$lang='ru'"> |
b7e02f47a339
Docs: changes.xslt regenerated.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5586
diff
changeset
|
30 <xsl:value-of select="substring(@date, 9, 2)"/> |
b7e02f47a339
Docs: changes.xslt regenerated.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5586
diff
changeset
|
31 <xsl:text>.</xsl:text> |
b7e02f47a339
Docs: changes.xslt regenerated.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5586
diff
changeset
|
32 <xsl:value-of select="substring(@date, 6, 2)"/> |
b7e02f47a339
Docs: changes.xslt regenerated.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5586
diff
changeset
|
33 <xsl:text>.</xsl:text> |
b7e02f47a339
Docs: changes.xslt regenerated.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5586
diff
changeset
|
34 <xsl:value-of select="substring(@date, 1, 4)"/> |
b7e02f47a339
Docs: changes.xslt regenerated.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5586
diff
changeset
|
35 </xsl:if> |
4014 | 36 |
5586 | 37 <xsl:if test="$lang='en'"> |
6915
b7e02f47a339
Docs: changes.xslt regenerated.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5586
diff
changeset
|
38 <xsl:value-of select="substring(@date, 9, 2)"/> |
5586 | 39 <xsl:value-of select="$conf/changes[@lang=$lang]/month[number(substring(current()/@date, |
6915
b7e02f47a339
Docs: changes.xslt regenerated.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5586
diff
changeset
|
40 6, 2))]"/> |
b7e02f47a339
Docs: changes.xslt regenerated.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5586
diff
changeset
|
41 <xsl:value-of select="substring(@date, 1, 4)"/> |
5586 | 42 </xsl:if> |
450 | 43 |
5586 | 44 <xsl:text> </xsl:text> |
45 | |
46 <xsl:apply-templates select="change"/> | |
450 | 47 |
5586 | 48 <xsl:text> </xsl:text> |
49 </xsl:template> | |
4014 | 50 |
450 | 51 |
5586 | 52 <xsl:template match="change"> |
53 <xsl:variable select="$conf/changes[@lang=$lang]/*[local-name(.)=current()/@type]" name="prefix"/> | |
450 | 54 |
5586 | 55 <xsl:variable name="postfix"> <xsl:if test="$prefix"> <xsl:text>: </xsl:text> </xsl:if> </xsl:variable> |
56 | |
57 <xsl:apply-templates select="para[@lang=$lang]"><xsl:with-param select="concat($start, $prefix, $postfix)" name="prefix"/></xsl:apply-templates> | |
58 </xsl:template> | |
450 | 59 |
4014 | 60 |
5586 | 61 <xsl:template name="para" match="para"><xsl:param name="prefix"/> |
62 <xsl:variable name="text"> <xsl:apply-templates/> </xsl:variable> | |
450 | 63 |
5586 | 64 <xsl:text> </xsl:text> |
450 | 65 |
5586 | 66 <xsl:call-template name="wrap"><xsl:with-param select="normalize-space($text)" name="text"/><xsl:with-param name="prefix"> <xsl:choose><xsl:when test="position() = 1"> <xsl:value-of select="$prefix"/> </xsl:when><xsl:otherwise> <xsl:value-of select="$indent"/> </xsl:otherwise></xsl:choose> </xsl:with-param></xsl:call-template></xsl:template> |
67 | |
4014 | 68 |
5586 | 69 <xsl:template name="wrap"><xsl:param name="text"/><xsl:param name="prefix"/> |
70 <xsl:if test="$text"> | |
71 <xsl:variable name="offset"> | |
450 | 72 <xsl:choose> |
5586 | 73 <xsl:when test="starts-with($text, concat($br, ' '))"> |
74 <xsl:value-of select="string-length($br) + 2"/> | |
75 </xsl:when> | |
76 <xsl:when test="starts-with($text, $br)"> | |
77 <xsl:value-of select="string-length($br) + 1"/> | |
78 </xsl:when> | |
79 <xsl:otherwise> | |
80 1 | |
81 </xsl:otherwise> | |
450 | 82 </xsl:choose> |
5586 | 83 </xsl:variable> |
4014 | 84 |
5586 | 85 <xsl:variable name="length"> |
86 <xsl:call-template name="length"><xsl:with-param select="substring($text, $offset)" name="text"/><xsl:with-param select="string-length($prefix)" name="prefix"/><xsl:with-param select="$max" name="length"/></xsl:call-template></xsl:variable> | |
87 | |
88 <xsl:value-of select="$prefix"/> | |
4014 | 89 |
5586 | 90 <xsl:value-of select="normalize-space(translate(substring($text, $offset, $length), |
91 ' ', ' '))"/> | |
450 | 92 |
5586 | 93 <xsl:text> </xsl:text> |
450 | 94 |
5586 | 95 <xsl:call-template name="wrap"><xsl:with-param select="substring($text, $length + $offset)" name="text"/><xsl:with-param select="$indent" name="prefix"/></xsl:call-template></xsl:if> |
96 </xsl:template> | |
450 | 97 |
5586 | 98 |
99 <xsl:template name="length"><xsl:param name="text"/><xsl:param name="prefix"/><xsl:param name="length"/> | |
100 <xsl:variable select="substring-before(substring($text, 1, | |
101 $length - $prefix + string-length($br)), | |
102 $br)" name="break"/> | |
4014 | 103 |
5586 | 104 <xsl:choose> |
105 <xsl:when test="$break"> <xsl:value-of select="string-length($break)"/> </xsl:when> | |
4014 | 106 |
5586 | 107 <xsl:when test="$length = 0"> <xsl:value-of select="$max - $prefix"/> </xsl:when> |
108 | |
109 <xsl:when test="string-length($text) + $prefix <= $length"> | |
450 | 110 <xsl:value-of select="$length - $prefix"/> |
5586 | 111 </xsl:when> |
112 | |
113 <xsl:when test="substring($text, $length - $prefix + 1, 1) = ' '"> | |
4024 | 114 <xsl:value-of select="$length - $prefix + 1"/> |
5586 | 115 </xsl:when> |
4024 | 116 |
5586 | 117 <xsl:otherwise> |
118 <xsl:call-template name="length"><xsl:with-param select="$text" name="text"/><xsl:with-param select="$prefix" name="prefix"/><xsl:with-param select="$length - 1" name="length"/></xsl:call-template></xsl:otherwise> | |
119 </xsl:choose> | |
120 </xsl:template> | |
450 | 121 |
4014 | 122 |
5586 | 123 <xsl:template match="at">@</xsl:template> |
124 <xsl:template match="br"> <xsl:value-of select="$br"/> </xsl:template> | |
125 <xsl:template match="nobr"> <xsl:value-of select="translate(., ' ', ' ')"/> </xsl:template> | |
4014 | 126 |
127 | |
128 </xsl:stylesheet> |