Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
F
ffmpeg.wasm-core
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Linshizhi
ffmpeg.wasm-core
Commits
70feca92
Commit
70feca92
authored
Apr 07, 2013
by
Nicolas George
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
lavc: check decoded subtitles encoding.
Address trac ticket #2431.
parent
29ebb7ba
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
36 additions
and
7 deletions
+36
-7
utils.c
libavcodec/utils.c
+30
-1
subtitles.mak
tests/fate/subtitles.mak
+4
-4
sub-aqtitle
tests/ref/fate/sub-aqtitle
+1
-1
sub-subviewer1
tests/ref/fate/sub-subviewer1
+1
-1
No files found.
libavcodec/utils.c
View file @
70feca92
...
...
@@ -2206,11 +2206,30 @@ end:
#endif
}
static
int
utf8_check
(
const
uint8_t
*
str
)
{
const
uint8_t
*
byte
;
uint32_t
codepoint
,
min
;
while
(
*
str
)
{
byte
=
str
;
GET_UTF8
(
codepoint
,
*
(
byte
++
),
return
0
;);
min
=
byte
-
str
==
1
?
0
:
byte
-
str
==
2
?
0x80
:
1
<<
(
5
*
(
byte
-
str
)
-
4
);
if
(
codepoint
<
min
||
codepoint
>=
0x110000
||
codepoint
==
0xFFFE
/* BOM */
||
codepoint
>=
0xD800
&&
codepoint
<=
0xDFFF
/* surrogates */
)
return
0
;
str
=
byte
;
}
return
1
;
}
int
avcodec_decode_subtitle2
(
AVCodecContext
*
avctx
,
AVSubtitle
*
sub
,
int
*
got_sub_ptr
,
AVPacket
*
avpkt
)
{
int
ret
=
0
;
int
i
,
ret
=
0
;
if
(
avctx
->
codec
->
type
!=
AVMEDIA_TYPE_SUBTITLE
)
{
av_log
(
avctx
,
AV_LOG_ERROR
,
"Invalid media type for subtitles
\n
"
);
...
...
@@ -2247,6 +2266,16 @@ int avcodec_decode_subtitle2(AVCodecContext *avctx, AVSubtitle *sub,
avctx
->
pkt_timebase
,
ms
);
}
for
(
i
=
0
;
i
<
sub
->
num_rects
;
i
++
)
{
if
(
sub
->
rects
[
i
]
->
ass
&&
!
utf8_check
(
sub
->
rects
[
i
]
->
ass
))
{
av_log
(
avctx
,
AV_LOG_ERROR
,
"Invalid UTF-8 in decoded subtitles text; "
"maybe missing -sub_charenc option
\n
"
);
avsubtitle_free
(
sub
);
return
AVERROR_INVALIDDATA
;
}
}
if
(
tmp
.
data
!=
pkt_recoded
.
data
)
{
// did we recode?
/* prevent from destroying side data from original packet */
pkt_recoded
.
side_data
=
NULL
;
...
...
tests/fate/subtitles.mak
View file @
70feca92
FATE_SUBTITLES_ASS-$(call
DEMDEC, AQTITLE, TEXT
) += fate-sub-aqtitle
fate-sub-aqtitle: CMD = md5 -i $(SAMPLES)/sub/AQTitle_capability_tester.aqt -f ass
FATE_SUBTITLES_ASS-$(call
ALLYES, AQTITLE_DEMUXER TEXT_DECODER ICONV
) += fate-sub-aqtitle
fate-sub-aqtitle: CMD = md5 -
sub_charenc windows-1250 -
i $(SAMPLES)/sub/AQTitle_capability_tester.aqt -f ass
FATE_SUBTITLES_ASS-$(call DEMDEC, JACOSUB, JACOSUB) += fate-sub-jacosub
fate-sub-jacosub: CMD = md5 -i $(SAMPLES)/sub/JACOsub_capability_tester.jss -f ass
...
...
@@ -40,8 +40,8 @@ fate-sub-srt: CMD = md5 -i $(SAMPLES)/sub/SubRip_capability_tester.srt -f ass
FATE_SUBTITLES-$(call ALLYES, MOV_DEMUXER MOVTEXT_DECODER SUBRIP_ENCODER) += fate-sub-subripenc
fate-sub-subripenc: CMD = md5 -i $(SAMPLES)/sub/MovText_capability_tester.mp4 -scodec subrip -f srt
FATE_SUBTITLES_ASS-$(call
DEMDEC, SUBVIEWER1, SUBVIEWER1
) += fate-sub-subviewer1
fate-sub-subviewer1: CMD = md5 -i $(SAMPLES)/sub/SubViewer1_capability_tester.sub -f ass
FATE_SUBTITLES_ASS-$(call
ALLYES, SUBVIEWER1_DEMUXER SUBVIEWER1_DECODER ICONV
) += fate-sub-subviewer1
fate-sub-subviewer1: CMD = md5 -
sub_charenc windows-1250 -
i $(SAMPLES)/sub/SubViewer1_capability_tester.sub -f ass
FATE_SUBTITLES_ASS-$(call DEMDEC, SUBVIEWER, SUBVIEWER) += fate-sub-subviewer
fate-sub-subviewer: CMD = md5 -i $(SAMPLES)/sub/SubViewer_capability_tester.sub -f ass
...
...
tests/ref/fate/sub-aqtitle
View file @
70feca92
e888e1354cd0968895ab89cb169fec31
1c68def68db6536c235819cbe0638e00
tests/ref/fate/sub-subviewer1
View file @
70feca92
0c2096fedf7c971742b2e879bb303ce9
cbeb015b1125757eed814f212cfc6c9c
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