Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
SDK
/
exoplayer
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Settings
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
53a47524
authored
Apr 11, 2015
by
Oliver Woodman
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
Support non-square pixels in HLS.
Github issue: #375
parent
37d12ff1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
45 additions
and
1 deletions
library/src/main/java/com/google/android/exoplayer/extractor/ts/H264Reader.java
library/src/main/java/com/google/android/exoplayer/extractor/ts/H264Reader.java
View file @
53a47524
...
@@ -24,6 +24,8 @@ import com.google.android.exoplayer.util.MimeTypes;
...
@@ -24,6 +24,8 @@ import com.google.android.exoplayer.util.MimeTypes;
import
com.google.android.exoplayer.util.ParsableBitArray
;
import
com.google.android.exoplayer.util.ParsableBitArray
;
import
com.google.android.exoplayer.util.ParsableByteArray
;
import
com.google.android.exoplayer.util.ParsableByteArray
;
import
android.util.Log
;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
import
java.util.Arrays
;
import
java.util.Arrays
;
import
java.util.List
;
import
java.util.List
;
...
@@ -33,11 +35,33 @@ import java.util.List;
...
@@ -33,11 +35,33 @@ import java.util.List;
*/
*/
/* package */
class
H264Reader
extends
ElementaryStreamReader
{
/* package */
class
H264Reader
extends
ElementaryStreamReader
{
private
static
final
String
TAG
=
"H264Reader"
;
private
static
final
int
NAL_UNIT_TYPE_IDR
=
5
;
private
static
final
int
NAL_UNIT_TYPE_IDR
=
5
;
private
static
final
int
NAL_UNIT_TYPE_SEI
=
6
;
private
static
final
int
NAL_UNIT_TYPE_SEI
=
6
;
private
static
final
int
NAL_UNIT_TYPE_SPS
=
7
;
private
static
final
int
NAL_UNIT_TYPE_SPS
=
7
;
private
static
final
int
NAL_UNIT_TYPE_PPS
=
8
;
private
static
final
int
NAL_UNIT_TYPE_PPS
=
8
;
private
static
final
int
NAL_UNIT_TYPE_AUD
=
9
;
private
static
final
int
NAL_UNIT_TYPE_AUD
=
9
;
private
static
final
int
EXTENDED_SAR
=
0xFF
;
private
static
final
float
[]
ASPECT_RATIO_IDC_VALUES
=
new
float
[]
{
1
f
/* Unspecified. Assume square */
,
1
f
,
12
f
/
11
f
,
10
f
/
11
f
,
16
f
/
11
f
,
40
f
/
33
f
,
24
f
/
11
f
,
20
f
/
11
f
,
32
f
/
11
f
,
80
f
/
33
f
,
18
f
/
11
f
,
15
f
/
11
f
,
64
f
/
33
f
,
160
f
/
99
f
,
4
f
/
3
f
,
3
f
/
2
f
,
2
f
};
private
final
SeiReader
seiReader
;
private
final
SeiReader
seiReader
;
private
final
boolean
[]
prefixFlags
;
private
final
boolean
[]
prefixFlags
;
...
@@ -244,8 +268,28 @@ import java.util.List;
...
@@ -244,8 +268,28 @@ import java.util.List;
frameHeight
-=
(
frameCropTopOffset
+
frameCropBottomOffset
)
*
cropUnitY
;
frameHeight
-=
(
frameCropTopOffset
+
frameCropBottomOffset
)
*
cropUnitY
;
}
}
float
pixelWidthHeightRatio
=
1
;
boolean
vuiParametersPresentFlag
=
bitArray
.
readBit
();
if
(
vuiParametersPresentFlag
)
{
boolean
aspectRatioInfoPresentFlag
=
bitArray
.
readBit
();
if
(
aspectRatioInfoPresentFlag
)
{
int
aspectRatioIdc
=
bitArray
.
readBits
(
8
);
if
(
aspectRatioIdc
==
EXTENDED_SAR
)
{
int
sarWidth
=
bitArray
.
readBits
(
16
);
int
sarHeight
=
bitArray
.
readBits
(
16
);
if
(
sarWidth
!=
0
&&
sarHeight
!=
0
)
{
pixelWidthHeightRatio
=
(
float
)
sarWidth
/
sarHeight
;
}
}
else
if
(
aspectRatioIdc
<
ASPECT_RATIO_IDC_VALUES
.
length
)
{
pixelWidthHeightRatio
=
ASPECT_RATIO_IDC_VALUES
[
aspectRatioIdc
];
}
else
{
Log
.
w
(
TAG
,
"Unexpected aspect_ratio_idc value: "
+
aspectRatioIdc
);
}
}
}
output
.
format
(
MediaFormat
.
createVideoFormat
(
MimeTypes
.
VIDEO_H264
,
MediaFormat
.
NO_VALUE
,
output
.
format
(
MediaFormat
.
createVideoFormat
(
MimeTypes
.
VIDEO_H264
,
MediaFormat
.
NO_VALUE
,
C
.
UNKNOWN_TIME_US
,
frameWidth
,
frameHeight
,
initializationData
));
C
.
UNKNOWN_TIME_US
,
frameWidth
,
frameHeight
,
pixelWidthHeightRatio
,
initializationData
));
hasOutputFormat
=
true
;
hasOutputFormat
=
true
;
}
}
...
...
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