From e88707ec04655a99d0f298da2e224d9048d75007 Mon Sep 17 00:00:00 2001 From: Alvaro Velad Date: Wed, 11 Dec 2019 14:54:06 +0100 Subject: [PATCH 1/4] Add pixelAspectRatio property --- externs/shaka/manifest.js | 4 ++++ externs/shaka/player.js | 3 +++ lib/dash/dash_parser.js | 8 ++++++++ lib/hls/hls_parser.js | 1 + lib/offline/manifest_converter.js | 1 + lib/player.js | 3 +++ lib/util/stream_utils.js | 5 +++++ test/media/adaptation_set_unit.js | 1 + test/offline/manifest_convert_unit.js | 1 + test/offline/storage_integration.js | 2 ++ test/test/util/manifest_generator.js | 2 ++ 11 files changed, 31 insertions(+) diff --git a/externs/shaka/manifest.js b/externs/shaka/manifest.js index 6cb0990c22..58f22c7124 100644 --- a/externs/shaka/manifest.js +++ b/externs/shaka/manifest.js @@ -255,6 +255,7 @@ shaka.extern.CreateSegmentIndexFunction; * mimeType: string, * codecs: string, * frameRate: (number|undefined), + * pixelAspectRatio: ?string, * bandwidth: (number|undefined), * width: (number|undefined), * height: (number|undefined), @@ -301,6 +302,9 @@ shaka.extern.CreateSegmentIndexFunction; * @property {(number|undefined)} frameRate * Video streams only.
* The Stream's framerate in frames per second + * @property {?string} pixelAspectRatio + * Video streams only.
+ * The Stream's pixel aspect ratio * @property {(number|undefined)} bandwidth * Audio and video streams only.
* The stream's required bandwidth in bits per second. diff --git a/externs/shaka/player.js b/externs/shaka/player.js index 6f537571d7..fb4dd93e9c 100644 --- a/externs/shaka/player.js +++ b/externs/shaka/player.js @@ -176,6 +176,7 @@ shaka.extern.BufferedInfo; * width: ?number, * height: ?number, * frameRate: ?number, + * pixelAspectRatio: ?string, * mimeType: ?string, * codecs: ?string, * audioCodec: ?string, @@ -225,6 +226,8 @@ shaka.extern.BufferedInfo; * The video height provided in the manifest, if present. * @property {?number} frameRate * The video framerate provided in the manifest, if present. + * @property {?string} pixelAspectRatio + * The video pixel aspect ratio provided in the manifest, if present. * @property {?string} mimeType * The MIME type of the content provided in the manifest. * @property {?string} codecs diff --git a/lib/dash/dash_parser.js b/lib/dash/dash_parser.js index 79fb88fc7d..c4b2273e84 100644 --- a/lib/dash/dash_parser.js +++ b/lib/dash/dash_parser.js @@ -1069,6 +1069,7 @@ shaka.dash.DashParser = class { mimeType: context.representation.mimeType, codecs: context.representation.codecs, frameRate: context.representation.frameRate, + pixelAspectRatio: context.representation.pixelAspectRatio, bandwidth: context.bandwidth, width: context.representation.width, height: context.representation.height, @@ -1175,6 +1176,7 @@ shaka.dash.DashParser = class { codecs: '', emsgSchemeIdUris: [], frameRate: undefined, + pixelAspectRatio: null, numChannels: null, audioSamplingRate: null, }); @@ -1190,6 +1192,8 @@ shaka.dash.DashParser = class { const codecs = elem.getAttribute('codecs') || parent.codecs; const frameRate = XmlUtils.parseAttr(elem, 'frameRate', evalDivision) || parent.frameRate; + const pixelAspectRatio = + elem.getAttribute('par') || parent.pixelAspectRatio; const emsgSchemeIdUris = this.emsgSchemeIdUris_( XmlUtils.findChildren(elem, 'InbandEventStream'), parent.emsgSchemeIdUris); @@ -1219,6 +1223,7 @@ shaka.dash.DashParser = class { mimeType: mimeType, codecs: codecs, frameRate: frameRate, + pixelAspectRatio: pixelAspectRatio, emsgSchemeIdUris: emsgSchemeIdUris, id: elem.getAttribute('id'), numChannels: numChannels, @@ -1606,6 +1611,7 @@ shaka.dash.DashParser.RequestInitSegmentCallback; * mimeType: string, * codecs: string, * frameRate: (number|undefined), + * pixelAspectRatio: ?string, * emsgSchemeIdUris: !Array., * id: ?string, * numChannels: ?number, @@ -1636,6 +1642,8 @@ shaka.dash.DashParser.RequestInitSegmentCallback; * The inherited codecs value. * @property {(number|undefined)} frameRate * The inherited framerate value. + * @property {(number|undefined)} pixelAspectRatio + * The inherited pixel aspect ratio value. * @property {!Array.} emsgSchemeIdUris * emsg registered schemeIdUris. * @property {?string} id diff --git a/lib/hls/hls_parser.js b/lib/hls/hls_parser.js index df71c981bc..91c9cc65aa 100644 --- a/lib/hls/hls_parser.js +++ b/lib/hls/hls_parser.js @@ -1194,6 +1194,7 @@ shaka.hls.HlsParser = class { trickModeVideo: null, emsgSchemeIdUris: null, frameRate: undefined, + pixelAspectRatio: null, width: undefined, height: undefined, bandwidth: undefined, diff --git a/lib/offline/manifest_converter.js b/lib/offline/manifest_converter.js index 0bcb5a2046..801da2f9b6 100644 --- a/lib/offline/manifest_converter.js +++ b/lib/offline/manifest_converter.js @@ -205,6 +205,7 @@ shaka.offline.ManifestConverter = class { label: streamDB.label || null, type: streamDB.contentType, primary: streamDB.primary, + pixelAspectRatio: streamDB.pixelAspectRatio || null, trickModeVideo: null, // TODO(modmaker): Store offline? emsgSchemeIdUris: null, diff --git a/lib/player.js b/lib/player.js index a60a25ffa0..902e885433 100644 --- a/lib/player.js +++ b/lib/player.js @@ -1825,6 +1825,7 @@ shaka.Player = class extends shaka.util.FakeEventTarget { label: null, type: ContentType.VIDEO, primary: false, + pixelAspectRatio: null, trickModeVideo: null, emsgSchemeIdUris: null, roles: [], @@ -3529,6 +3530,7 @@ shaka.Player = class extends shaka.util.FakeEventTarget { label: label || null, type: ContentType.TEXT, primary: false, + pixelAspectRatio: null, trickModeVideo: null, emsgSchemeIdUris: null, roles: [], @@ -3719,6 +3721,7 @@ shaka.Player = class extends shaka.util.FakeEventTarget { label: null, type: ContentType.TEXT, primary: false, + pixelAspectRatio: null, trickModeVideo: null, emsgSchemeIdUris: null, roles: video.roles, diff --git a/lib/util/stream_utils.js b/lib/util/stream_utils.js index 264fa02a32..2fa87805fc 100644 --- a/lib/util/stream_utils.js +++ b/lib/util/stream_utils.js @@ -275,6 +275,7 @@ shaka.util.StreamUtils = class { width: null, height: null, frameRate: null, + pixelAspectRatio: null, mimeType: mimeType, codecs: codecs.join(', '), audioCodec: audioCodec, @@ -299,6 +300,7 @@ shaka.util.StreamUtils = class { track.width = video.width || null; track.height = video.height || null; track.frameRate = video.frameRate || null; + track.pixelAspectRatio = video.pixelAspectRatio || null; track.videoBandwidth = video.bandwidth || null; } @@ -335,6 +337,7 @@ shaka.util.StreamUtils = class { width: null, height: null, frameRate: null, + pixelAspectRatio: null, mimeType: stream.mimeType, codecs: stream.codecs || null, audioCodec: null, @@ -440,6 +443,7 @@ shaka.util.StreamUtils = class { width: null, height: null, frameRate: null, + pixelAspectRatio: null, mimeType: null, codecs: null, audioCodec: null, @@ -723,6 +727,7 @@ shaka.util.StreamUtils = class { ' codecs=' + stream.codecs + ' bandwidth=' + stream.bandwidth + ' frameRate=' + stream.frameRate + + ' pixelAspectRatio= ' + stream.pixelAspectRatio + ' width=' + stream.width + ' height=' + stream.height; } diff --git a/test/media/adaptation_set_unit.js b/test/media/adaptation_set_unit.js index c0aa0e1fc4..c911a601c0 100644 --- a/test/media/adaptation_set_unit.js +++ b/test/media/adaptation_set_unit.js @@ -160,6 +160,7 @@ describe('AdaptationSet', () => { function makeStream(id, mimeType, codecs, roles) { return { audioSamplingRate: null, + pixelAspectRatio: null, channelsCount: null, closedCaptions: null, codecs: codecs.join(','), diff --git a/test/offline/manifest_convert_unit.js b/test/offline/manifest_convert_unit.js index 566bbc72b9..eeab860f78 100644 --- a/test/offline/manifest_convert_unit.js +++ b/test/offline/manifest_convert_unit.js @@ -392,6 +392,7 @@ describe('ManifestConverter', () => { mimeType: streamDb.mimeType, codecs: streamDb.codecs, frameRate: streamDb.frameRate, + pixelAspectRatio: streamDb.pixelAspectRatio || null, width: streamDb.width || undefined, height: streamDb.height || undefined, kind: streamDb.kind, diff --git a/test/offline/storage_integration.js b/test/offline/storage_integration.js index 513c383fc5..5a4166c3ab 100644 --- a/test/offline/storage_integration.js +++ b/test/offline/storage_integration.js @@ -1095,6 +1095,7 @@ describe('Storage', () => { width: height * (16 / 9), height: height, frameRate: 30, + pixelAspectRatio: '16:9', mimeType: 'video/mp4,audio/mp4', codecs: 'mp4,mp4', audioCodec: 'mp4', @@ -1131,6 +1132,7 @@ describe('Storage', () => { width: null, height: null, frameRate: null, + pixelAspectRatio: null, mimeType: 'text/vtt', codecs: 'vtt', audioCodec: null, diff --git a/test/test/util/manifest_generator.js b/test/test/util/manifest_generator.js index bcdae4a502..3b2a77b230 100644 --- a/test/test/util/manifest_generator.js +++ b/test/test/util/manifest_generator.js @@ -548,6 +548,8 @@ shaka.test.ManifestGenerator.Stream = class { this.codecs = defaultCodecs; /** @type {(number|undefined)} */ this.frameRate = undefined; + /** @type {?string} */ + this.pixelAspectRatio = null; /** @type {(number|undefined)} */ this.bandwidth = undefined; /** @type {(number|undefined)} */ From 456ac218dafadcfebe075ffbcbcb1db11090ceab Mon Sep 17 00:00:00 2001 From: Alvaro Velad Date: Mon, 30 Dec 2019 16:00:49 +0100 Subject: [PATCH 2/4] Fix previous commit --- externs/shaka/offline.js | 3 +++ lib/offline/indexeddb/v1_storage_cell.js | 2 ++ lib/offline/manifest_converter.js | 2 +- lib/offline/storage.js | 1 + test/offline/manifest_convert_unit.js | 4 ++++ test/player_unit.js | 13 +++++++++++++ test/test/util/offline_utils.js | 1 + 7 files changed, 25 insertions(+), 1 deletion(-) diff --git a/externs/shaka/offline.js b/externs/shaka/offline.js index 3211b438f8..68ae14e4ab 100644 --- a/externs/shaka/offline.js +++ b/externs/shaka/offline.js @@ -114,6 +114,7 @@ shaka.extern.PeriodDB; * mimeType: string, * codecs: string, * frameRate: (number|undefined), + * pixelAspectRatio: ?string, * kind: (string|undefined), * language: string, * label: ?string, @@ -143,6 +144,8 @@ shaka.extern.PeriodDB; * The codecs of the stream. * @property {(number|undefined)} frameRate * The Stream's framerate in frames per second. + * @property {?string} pixelAspectRatio + * The Stream's pixel aspect ratio * @property {(string|undefined)} kind * The kind of text stream; undefined for audio/video. * @property {string} language diff --git a/lib/offline/indexeddb/v1_storage_cell.js b/lib/offline/indexeddb/v1_storage_cell.js index d6bdb622e5..c93a0eea4f 100644 --- a/lib/offline/indexeddb/v1_storage_cell.js +++ b/lib/offline/indexeddb/v1_storage_cell.js @@ -166,6 +166,7 @@ shaka.offline.indexeddb.V1StorageCell = class // mimeType: string, // codecs: string, // frameRate: (number|undefined), + // pixelAspectRatio: ?string, // kind: (string|undefined), // language: string, // label: ?string, @@ -218,6 +219,7 @@ shaka.offline.indexeddb.V1StorageCell = class mimeType: old.mimeType, codecs: old.codecs, frameRate: old.frameRate, + pixelAspectRatio: old.pixelAspectRatio, kind: old.kind, language: old.language, label: old.label, diff --git a/lib/offline/manifest_converter.js b/lib/offline/manifest_converter.js index 801da2f9b6..49bdaffa3f 100644 --- a/lib/offline/manifest_converter.js +++ b/lib/offline/manifest_converter.js @@ -198,6 +198,7 @@ shaka.offline.ManifestConverter = class { width: streamDB.width || undefined, height: streamDB.height || undefined, frameRate: streamDB.frameRate || undefined, + pixelAspectRatio: streamDB.pixelAspectRatio || null, kind: streamDB.kind, encrypted: streamDB.encrypted, keyId: streamDB.keyId, @@ -205,7 +206,6 @@ shaka.offline.ManifestConverter = class { label: streamDB.label || null, type: streamDB.contentType, primary: streamDB.primary, - pixelAspectRatio: streamDB.pixelAspectRatio || null, trickModeVideo: null, // TODO(modmaker): Store offline? emsgSchemeIdUris: null, diff --git a/lib/offline/storage.js b/lib/offline/storage.js index 702cf6db78..b43c5413a4 100644 --- a/lib/offline/storage.js +++ b/lib/offline/storage.js @@ -1015,6 +1015,7 @@ shaka.offline.Storage = class { mimeType: stream.mimeType, codecs: stream.codecs, frameRate: stream.frameRate, + pixelAspectRatio: stream.pixelAspectRatio, kind: stream.kind, language: stream.language, label: stream.label, diff --git a/test/offline/manifest_convert_unit.js b/test/offline/manifest_convert_unit.js index eeab860f78..8c595e823f 100644 --- a/test/offline/manifest_convert_unit.js +++ b/test/offline/manifest_convert_unit.js @@ -222,6 +222,7 @@ describe('ManifestConverter', () => { label: null, width: null, height: null, + pixelAspectRatio: null, initSegmentKey: null, encrypted: false, keyId: null, @@ -265,6 +266,7 @@ describe('ManifestConverter', () => { mimeType: 'video/mp4', codecs: 'avc1.42c01e', frameRate: 22, + pixelAspectRatio: '16:9', kind: undefined, language: '', label: null, @@ -307,6 +309,7 @@ describe('ManifestConverter', () => { mimeType: 'audio/mp4', codecs: 'mp4a.40.2', frameRate: undefined, + pixelAspectRatio: null, kind: undefined, language: 'en', label: null, @@ -348,6 +351,7 @@ describe('ManifestConverter', () => { mimeType: 'text/vtt', codecs: '', frameRate: undefined, + pixelAspectRatio: null, kind: undefined, language: 'en', label: null, diff --git a/test/player_unit.js b/test/player_unit.js index 9c0ce970eb..f9f9ba7b28 100644 --- a/test/player_unit.js +++ b/test/player_unit.js @@ -909,6 +909,7 @@ describe('Player', () => { stream.width = 100; stream.height = 200; stream.frameRate = 1000000 / 42000; + stream.pixelAspectRatio = '16:9'; }); variant.addAudio(3, (stream) => { stream.originalId = 'audio-en-6c'; @@ -925,6 +926,7 @@ describe('Player', () => { stream.originalId = 'video-2kbps'; stream.bandwidth = 2000; stream.frameRate = 24; + stream.pixelAspectRatio = '16:9'; stream.size(200, 400); }); variant.addExistingStream(3); // audio @@ -1050,6 +1052,7 @@ describe('Player', () => { width: 100, height: 200, frameRate: 1000000 / 42000, + pixelAspectRatio: '16:9', mimeType: 'video/mp4', codecs: 'avc1.4d401f, mp4a.40.2', audioCodec: 'mp4a.40.2', @@ -1078,6 +1081,7 @@ describe('Player', () => { width: 200, height: 400, frameRate: 24, + pixelAspectRatio: '16:9', mimeType: 'video/mp4', codecs: 'avc1.4d401f, mp4a.40.2', audioCodec: 'mp4a.40.2', @@ -1106,6 +1110,7 @@ describe('Player', () => { width: 100, height: 200, frameRate: 1000000 / 42000, + pixelAspectRatio: '16:9', mimeType: 'video/mp4', codecs: 'avc1.4d401f, mp4a.40.2', audioCodec: 'mp4a.40.2', @@ -1134,6 +1139,7 @@ describe('Player', () => { width: 200, height: 400, frameRate: 24, + pixelAspectRatio: '16:9', mimeType: 'video/mp4', codecs: 'avc1.4d401f, mp4a.40.2', audioCodec: 'mp4a.40.2', @@ -1162,6 +1168,7 @@ describe('Player', () => { width: 100, height: 200, frameRate: 1000000 / 42000, + pixelAspectRatio: '16:9', mimeType: 'video/mp4', codecs: 'avc1.4d401f, mp4a.40.2', audioCodec: 'mp4a.40.2', @@ -1190,6 +1197,7 @@ describe('Player', () => { width: 200, height: 400, frameRate: 24, + pixelAspectRatio: '16:9', mimeType: 'video/mp4', codecs: 'avc1.4d401f, mp4a.40.2', audioCodec: 'mp4a.40.2', @@ -1218,6 +1226,7 @@ describe('Player', () => { width: 100, height: 200, frameRate: 1000000 / 42000, + pixelAspectRatio: '16:9', mimeType: 'video/mp4', codecs: 'avc1.4d401f, mp4a.40.2', audioCodec: 'mp4a.40.2', @@ -1246,6 +1255,7 @@ describe('Player', () => { width: 200, height: 400, frameRate: 24, + pixelAspectRatio: '16:9', mimeType: 'video/mp4', codecs: 'avc1.4d401f, mp4a.40.2', audioCodec: 'mp4a.40.2', @@ -1288,6 +1298,7 @@ describe('Player', () => { width: null, height: null, frameRate: null, + pixelAspectRatio: null, videoId: null, audioId: null, originalAudioId: null, @@ -1316,6 +1327,7 @@ describe('Player', () => { width: null, height: null, frameRate: null, + pixelAspectRatio: null, videoId: null, audioId: null, originalAudioId: null, @@ -1344,6 +1356,7 @@ describe('Player', () => { width: null, height: null, frameRate: null, + pixelAspectRatio: null, videoId: null, audioId: null, originalAudioId: null, diff --git a/test/test/util/offline_utils.js b/test/test/util/offline_utils.js index 9b3591237a..255ca38459 100644 --- a/test/test/util/offline_utils.js +++ b/test/test/util/offline_utils.js @@ -39,6 +39,7 @@ shaka.test.OfflineUtils = class { mimeType: '', codecs: '', frameRate: undefined, + pixelAspectRatio: null, kind: undefined, language: '', label: null, From 2be5a55a7c28bfd402c4a523e9f5cc4af13cccf8 Mon Sep 17 00:00:00 2001 From: Alvaro Velad Date: Mon, 6 Jan 2020 19:09:04 +0100 Subject: [PATCH 3/4] Fix v1_storage_cell --- lib/offline/indexeddb/v1_storage_cell.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/offline/indexeddb/v1_storage_cell.js b/lib/offline/indexeddb/v1_storage_cell.js index c93a0eea4f..16debbf7a2 100644 --- a/lib/offline/indexeddb/v1_storage_cell.js +++ b/lib/offline/indexeddb/v1_storage_cell.js @@ -219,7 +219,7 @@ shaka.offline.indexeddb.V1StorageCell = class mimeType: old.mimeType, codecs: old.codecs, frameRate: old.frameRate, - pixelAspectRatio: old.pixelAspectRatio, + pixelAspectRatio: null, kind: old.kind, language: old.language, label: old.label, From 872a9a466988bf4149872660481a80506243a634 Mon Sep 17 00:00:00 2001 From: Alvaro Velad Date: Mon, 6 Jan 2020 19:09:38 +0100 Subject: [PATCH 4/4] Change pixelAspectRatio = 16:9 by 59:54 in tests --- test/offline/manifest_convert_unit.js | 2 +- test/offline/storage_integration.js | 2 +- test/player_unit.js | 20 ++++++++++---------- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/test/offline/manifest_convert_unit.js b/test/offline/manifest_convert_unit.js index 8c595e823f..d61400febc 100644 --- a/test/offline/manifest_convert_unit.js +++ b/test/offline/manifest_convert_unit.js @@ -266,7 +266,7 @@ describe('ManifestConverter', () => { mimeType: 'video/mp4', codecs: 'avc1.42c01e', frameRate: 22, - pixelAspectRatio: '16:9', + pixelAspectRatio: '59:54', kind: undefined, language: '', label: null, diff --git a/test/offline/storage_integration.js b/test/offline/storage_integration.js index 5a4166c3ab..80b2ecf9fd 100644 --- a/test/offline/storage_integration.js +++ b/test/offline/storage_integration.js @@ -1095,7 +1095,7 @@ describe('Storage', () => { width: height * (16 / 9), height: height, frameRate: 30, - pixelAspectRatio: '16:9', + pixelAspectRatio: '59:54', mimeType: 'video/mp4,audio/mp4', codecs: 'mp4,mp4', audioCodec: 'mp4', diff --git a/test/player_unit.js b/test/player_unit.js index f9f9ba7b28..bc94b61889 100644 --- a/test/player_unit.js +++ b/test/player_unit.js @@ -909,7 +909,7 @@ describe('Player', () => { stream.width = 100; stream.height = 200; stream.frameRate = 1000000 / 42000; - stream.pixelAspectRatio = '16:9'; + stream.pixelAspectRatio = '59:54'; }); variant.addAudio(3, (stream) => { stream.originalId = 'audio-en-6c'; @@ -926,7 +926,7 @@ describe('Player', () => { stream.originalId = 'video-2kbps'; stream.bandwidth = 2000; stream.frameRate = 24; - stream.pixelAspectRatio = '16:9'; + stream.pixelAspectRatio = '59:54'; stream.size(200, 400); }); variant.addExistingStream(3); // audio @@ -1052,7 +1052,7 @@ describe('Player', () => { width: 100, height: 200, frameRate: 1000000 / 42000, - pixelAspectRatio: '16:9', + pixelAspectRatio: '59:54', mimeType: 'video/mp4', codecs: 'avc1.4d401f, mp4a.40.2', audioCodec: 'mp4a.40.2', @@ -1081,7 +1081,7 @@ describe('Player', () => { width: 200, height: 400, frameRate: 24, - pixelAspectRatio: '16:9', + pixelAspectRatio: '59:54', mimeType: 'video/mp4', codecs: 'avc1.4d401f, mp4a.40.2', audioCodec: 'mp4a.40.2', @@ -1110,7 +1110,7 @@ describe('Player', () => { width: 100, height: 200, frameRate: 1000000 / 42000, - pixelAspectRatio: '16:9', + pixelAspectRatio: '59:54', mimeType: 'video/mp4', codecs: 'avc1.4d401f, mp4a.40.2', audioCodec: 'mp4a.40.2', @@ -1139,7 +1139,7 @@ describe('Player', () => { width: 200, height: 400, frameRate: 24, - pixelAspectRatio: '16:9', + pixelAspectRatio: '59:54', mimeType: 'video/mp4', codecs: 'avc1.4d401f, mp4a.40.2', audioCodec: 'mp4a.40.2', @@ -1168,7 +1168,7 @@ describe('Player', () => { width: 100, height: 200, frameRate: 1000000 / 42000, - pixelAspectRatio: '16:9', + pixelAspectRatio: '59:54', mimeType: 'video/mp4', codecs: 'avc1.4d401f, mp4a.40.2', audioCodec: 'mp4a.40.2', @@ -1197,7 +1197,7 @@ describe('Player', () => { width: 200, height: 400, frameRate: 24, - pixelAspectRatio: '16:9', + pixelAspectRatio: '59:54', mimeType: 'video/mp4', codecs: 'avc1.4d401f, mp4a.40.2', audioCodec: 'mp4a.40.2', @@ -1226,7 +1226,7 @@ describe('Player', () => { width: 100, height: 200, frameRate: 1000000 / 42000, - pixelAspectRatio: '16:9', + pixelAspectRatio: '59:54', mimeType: 'video/mp4', codecs: 'avc1.4d401f, mp4a.40.2', audioCodec: 'mp4a.40.2', @@ -1255,7 +1255,7 @@ describe('Player', () => { width: 200, height: 400, frameRate: 24, - pixelAspectRatio: '16:9', + pixelAspectRatio: '59:54', mimeType: 'video/mp4', codecs: 'avc1.4d401f, mp4a.40.2', audioCodec: 'mp4a.40.2',