mirror of
https://github.com/androidx/media.git
synced 2025-05-13 02:29:52 +08:00
Make SsaDecoder robust against absent Format items
Suggested in a comment on PR Issue: #8615 PiperOrigin-RevId: 359522217
This commit is contained in:
parent
4364b9150f
commit
e4d5e07fd3
@ -76,7 +76,9 @@ import com.google.android.exoplayer2.util.Util;
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return (startTimeIndex != C.INDEX_UNSET && endTimeIndex != C.INDEX_UNSET)
|
return (startTimeIndex != C.INDEX_UNSET
|
||||||
|
&& endTimeIndex != C.INDEX_UNSET
|
||||||
|
&& textIndex != C.INDEX_UNSET)
|
||||||
? new SsaDialogueFormat(startTimeIndex, endTimeIndex, styleIndex, textIndex, keys.length)
|
? new SsaDialogueFormat(startTimeIndex, endTimeIndex, styleIndex, textIndex, keys.length)
|
||||||
: null;
|
: null;
|
||||||
}
|
}
|
||||||
|
@ -119,9 +119,15 @@ import java.util.regex.Pattern;
|
|||||||
try {
|
try {
|
||||||
return new SsaStyle(
|
return new SsaStyle(
|
||||||
styleValues[format.nameIndex].trim(),
|
styleValues[format.nameIndex].trim(),
|
||||||
parseAlignment(styleValues[format.alignmentIndex].trim()),
|
format.alignmentIndex != C.INDEX_UNSET
|
||||||
parseColor(styleValues[format.primaryColorIndex].trim()),
|
? parseAlignment(styleValues[format.alignmentIndex].trim())
|
||||||
parseFontSize(styleValues[format.fontSizeIndex].trim()));
|
: SSA_ALIGNMENT_UNKNOWN,
|
||||||
|
format.primaryColorIndex != C.INDEX_UNSET
|
||||||
|
? parseColor(styleValues[format.primaryColorIndex].trim())
|
||||||
|
: null,
|
||||||
|
format.fontSizeIndex != C.INDEX_UNSET
|
||||||
|
? parseFontSize(styleValues[format.fontSizeIndex].trim())
|
||||||
|
: Cue.DIMEN_UNSET);
|
||||||
} catch (RuntimeException e) {
|
} catch (RuntimeException e) {
|
||||||
Log.w(TAG, "Skipping malformed 'Style:' line: '" + styleLine + "'", e);
|
Log.w(TAG, "Skipping malformed 'Style:' line: '" + styleLine + "'", e);
|
||||||
return null;
|
return null;
|
||||||
|
32
testdata/src/test/assets/media/ssa/style_colors
vendored
32
testdata/src/test/assets/media/ssa/style_colors
vendored
@ -5,22 +5,22 @@ PlayResX: 1280
|
|||||||
PlayResY: 720
|
PlayResY: 720
|
||||||
|
|
||||||
[V4+ Styles]
|
[V4+ Styles]
|
||||||
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding
|
Format: Name ,PrimaryColour
|
||||||
Style: PrimaryColourStyleHexRed ,Roboto,50,&H000000FF,&H000000FF,&H00000000,&H00000000,0,0,0,0,100,100,0,0,1,3,0,2,50,50,70,1
|
Style: PrimaryColourStyleHexRed ,&H000000FF
|
||||||
Style: PrimaryColourStyleHexYellow ,Roboto,50,&H0000FFFF,&H000000FF,&H00000000,&H00000000,0,0,0,0,100,100,0,0,1,3,0,2,50,50,70,1
|
Style: PrimaryColourStyleHexYellow ,&H0000FFFF
|
||||||
Style: PrimaryColourStyleHexGreen ,Roboto,50,&HFF00 ,&H000000FF,&H00000000,&H00000000,0,0,0,0,100,100,0,0,1,3,0,2,50,50,70,1
|
Style: PrimaryColourStyleHexGreen ,&HFF00
|
||||||
Style: PrimaryColourStyleHexAlpha ,Roboto,50,&HA00000FF,&H000000FF,&H00000000,&H00000000,0,0,0,0,100,100,0,0,1,3,0,2,50,50,70,1
|
Style: PrimaryColourStyleHexAlpha ,&HA00000FF
|
||||||
Style: PrimaryColourStyleDecimal ,Roboto,50,16711680 ,&H000000FF,&H00000000,&H00000000,0,0,0,0,100,100,0,0,1,3,0,2,50,50,70,1
|
Style: PrimaryColourStyleDecimal ,16711680
|
||||||
Style: PrimaryColourStyleDecimalAlpha ,Roboto,50,2164195328,&H000000FF,&H00000000,&H00000000,0,0,0,0,100,100,0,0,1,3,0,2,50,50,70,1
|
Style: PrimaryColourStyleDecimalAlpha,2164195328
|
||||||
Style: PrimaryColourStyleInvalid ,Roboto,50,blue ,&H000000FF,&H00000000,&H00000000,0,0,0,0,100,100,0,0,1,3,0,2,50,50,70,1
|
Style: PrimaryColourStyleInvalid ,blue
|
||||||
|
|
||||||
|
|
||||||
[Events]
|
[Events]
|
||||||
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
|
Format: Start ,End ,Style ,Text
|
||||||
Dialogue: 0,0:00:01.00,0:00:02.00,PrimaryColourStyleHexRed ,Arnold,0,0,0,,First line in RED (&H000000FF).
|
Dialogue: 0:00:01.00,0:00:02.00,PrimaryColourStyleHexRed ,First line in RED (&H000000FF).
|
||||||
Dialogue: 0,0:00:03.00,0:00:04.00,PrimaryColourStyleHexYellow ,Arnold,0,0,0,,Second line in YELLOW (&H0000FFFF).
|
Dialogue: 0:00:03.00,0:00:04.00,PrimaryColourStyleHexYellow ,Second line in YELLOW (&H0000FFFF).
|
||||||
Dialogue: 0,0:00:05.00,0:00:06.00,PrimaryColourStyleHexGreen ,Arnold,0,0,0,,Third line in GREEN (leading zeros &HFF00).
|
Dialogue: 0:00:05.00,0:00:06.00,PrimaryColourStyleHexGreen ,Third line in GREEN (leading zeros &HFF00).
|
||||||
Dialogue: 0,0:00:07.00,0:00:08.00,PrimaryColourStyleHexAlpha ,Arnold,0,0,0,,Fourth line in RED with alpha (&H400000FF).
|
Dialogue: 0:00:07.00,0:00:08.00,PrimaryColourStyleHexAlpha ,Fourth line in RED with alpha (&H400000FF).
|
||||||
Dialogue: 0,0:00:09.00,0:00:10.00,PrimaryColourStyleDecimal ,Arnold,0,0,0,,Fifth line in BLUE (16711680).
|
Dialogue: 0:00:09.00,0:00:10.00,PrimaryColourStyleDecimal ,Fifth line in BLUE (16711680).
|
||||||
Dialogue: 0,0:00:11.00,0:00:12.00,PrimaryColourStyleDecimalAlpha ,Arnold,0,0,0,,Sixth line in BLUE with alpha (2164195328).
|
Dialogue: 0:00:11.00,0:00:12.00,PrimaryColourStyleDecimalAlpha,Sixth line in BLUE with alpha (2164195328).
|
||||||
Dialogue: 0,0:00:13.00,0:00:14.00,PrimaryColourInvalid ,Arnold,0,0,0,,Seventh line with invalid color .
|
Dialogue: 0:00:13.00,0:00:14.00,PrimaryColourInvalid ,Seventh line with invalid color.
|
||||||
|
@ -6,13 +6,13 @@ PlayResX: 1280
|
|||||||
PlayResY: 720
|
PlayResY: 720
|
||||||
|
|
||||||
[V4+ Styles]
|
[V4+ Styles]
|
||||||
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding
|
Format: Name ,Fontsize
|
||||||
Style: FontSizeSmall ,Roboto,30, &H000000FF,&H000000FF,&H00000000,&H00000000,0,0,0,0,100,100,0,0,1,3,0,2,50,50,70,1
|
Style: FontSizeSmall,30
|
||||||
Style: FontSizeBig ,Roboto,72.2,&H000000FF,&H000000FF,&H00000000,&H00000000,0,0,0,0,100,100,0,0,1,3,0,2,50,50,70,1
|
Style: FontSizeBig ,72.2
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
[Events]
|
[Events]
|
||||||
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
|
Format: Start ,End ,Style ,Text
|
||||||
Dialogue: 0,0:00:00.95,0:00:03.11,FontSizeSmall ,Arnold,0,0,0,,First line with font size 30.
|
Dialogue: 0:00:00.95,0:00:03.11,FontSizeSmall,First line with font size 30.
|
||||||
Dialogue: 0,0:00:08.50,0:00:11.50,FontSizeBig ,Arnold,0,0,0,,Second line with font size 72.2.
|
Dialogue: 0:00:08.50,0:00:11.50,FontSizeBig ,Second line with font size 72.2.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user