Ronald S. Bultje
a4edaa0270
vp9: add mxext versions of the single-block (w=8,npx=8) h/v loopfilters.
...
Each takes about 0.1% of runtime in my profiles, and they didn't have
any SIMD yet so far (we only had simd for npx=16 double-block versions).
2016-07-26 15:59:07 -04:00
Ronald S. Bultje
7ca422bb1b
vp9: add mxext versions of the single-block (w=4,npx=8) h/v loopfilters.
...
Each takes about 0.5% of runtime in my profiles, and they didn't have
any SIMD yet so far (we only had simd for npx=16 double-block versions).
2016-07-26 15:59:07 -04:00
Ronald S. Bultje
726501a34e
vp9: add 32x32 idct AVX2 implementation.
...
About 1.8x speedup compared to AVX version for full IDCT. Other
sub-IDCT scenarios also see speedups. Full --bench output for
idct_32x32_add_{bpp}_${subidct}_${opt} (50k cycles):
nop: 16.5
vp9_inv_dct_dct_32x32_add_8_1_c: 2284.4
vp9_inv_dct_dct_32x32_add_8_1_sse2: 145.0
vp9_inv_dct_dct_32x32_add_8_1_ssse3: 137.4
vp9_inv_dct_dct_32x32_add_8_1_avx: 137.1
vp9_inv_dct_dct_32x32_add_8_1_avx2: 73.2
vp9_inv_dct_dct_32x32_add_8_2_c: 14680.8
vp9_inv_dct_dct_32x32_add_8_2_sse2: 2617.2
vp9_inv_dct_dct_32x32_add_8_2_ssse3: 982.9
vp9_inv_dct_dct_32x32_add_8_2_avx: 958.5
vp9_inv_dct_dct_32x32_add_8_2_avx2: 704.2
vp9_inv_dct_dct_32x32_add_8_4_c: 14443.1
vp9_inv_dct_dct_32x32_add_8_4_sse2: 2717.1
vp9_inv_dct_dct_32x32_add_8_4_ssse3: 965.7
vp9_inv_dct_dct_32x32_add_8_4_avx: 1000.7
vp9_inv_dct_dct_32x32_add_8_4_avx2: 717.1
vp9_inv_dct_dct_32x32_add_8_8_c: 14436.4
vp9_inv_dct_dct_32x32_add_8_8_sse2: 2671.8
vp9_inv_dct_dct_32x32_add_8_8_ssse3: 1038.5
vp9_inv_dct_dct_32x32_add_8_8_avx: 983.0
vp9_inv_dct_dct_32x32_add_8_8_avx2: 729.4
vp9_inv_dct_dct_32x32_add_8_16_c: 14614.7
vp9_inv_dct_dct_32x32_add_8_16_sse2: 2701.7
vp9_inv_dct_dct_32x32_add_8_16_ssse3: 1334.4
vp9_inv_dct_dct_32x32_add_8_16_avx: 1276.7
vp9_inv_dct_dct_32x32_add_8_16_avx2: 719.5
vp9_inv_dct_dct_32x32_add_8_32_c: 14363.6
vp9_inv_dct_dct_32x32_add_8_32_sse2: 2575.6
vp9_inv_dct_dct_32x32_add_8_32_ssse3: 2633.9
vp9_inv_dct_dct_32x32_add_8_32_avx: 2539.6
vp9_inv_dct_dct_32x32_add_8_32_avx2: 1395.0
2016-07-26 15:59:07 -04:00
Ronald S. Bultje
70d418c7e6
Revert "PPC64: Add versions of functions in libswscale/input.c optimized for POWER8 VSX SIMD."
...
This reverts commit 1df908f33f . The expected
performance improvements are essentially non-existent.
2016-07-11 10:15:05 -04:00
Ronald S. Bultje
f0a2b6249b
vp9: add 16x16 idct avx2 (8-bit).
...
checkasm --bench, 10k runs, for *_add_${bpc}_${sub_idct}_${opt}, shows
that it's about 1.65x as fast as the AVX version for the full IDCT, and
similar speedups for the sub-IDCTs:
nop: 24.6
vp9_inv_dct_dct_16x16_add_8_1_c: 6444.8
vp9_inv_dct_dct_16x16_add_8_1_sse2: 638.6
vp9_inv_dct_dct_16x16_add_8_1_ssse3: 484.4
vp9_inv_dct_dct_16x16_add_8_1_avx: 661.2
vp9_inv_dct_dct_16x16_add_8_1_avx2: 311.5
vp9_inv_dct_dct_16x16_add_8_2_c: 6665.7
vp9_inv_dct_dct_16x16_add_8_2_sse2: 646.9
vp9_inv_dct_dct_16x16_add_8_2_ssse3: 455.2
vp9_inv_dct_dct_16x16_add_8_2_avx: 521.9
vp9_inv_dct_dct_16x16_add_8_2_avx2: 304.3
vp9_inv_dct_dct_16x16_add_8_4_c: 7022.7
vp9_inv_dct_dct_16x16_add_8_4_sse2: 647.4
vp9_inv_dct_dct_16x16_add_8_4_ssse3: 467.1
vp9_inv_dct_dct_16x16_add_8_4_avx: 446.1
vp9_inv_dct_dct_16x16_add_8_4_avx2: 297.0
vp9_inv_dct_dct_16x16_add_8_8_c: 6800.4
vp9_inv_dct_dct_16x16_add_8_8_sse2: 598.6
vp9_inv_dct_dct_16x16_add_8_8_ssse3: 465.7
vp9_inv_dct_dct_16x16_add_8_8_avx: 440.9
vp9_inv_dct_dct_16x16_add_8_8_avx2: 290.2
vp9_inv_dct_dct_16x16_add_8_16_c: 6626.6
vp9_inv_dct_dct_16x16_add_8_16_sse2: 599.5
vp9_inv_dct_dct_16x16_add_8_16_ssse3: 475.0
vp9_inv_dct_dct_16x16_add_8_16_avx: 469.9
vp9_inv_dct_dct_16x16_add_8_16_avx2: 286.4
2016-07-11 10:14:58 -04:00
Ronald S. Bultje
531ff7161d
vf_colorspace: don't enable passthrough if bitdepth doesn't match.
...
Also check return value of av_frame_copy() in passthrough mode, so that
if a copy fails (as it did here, because bitdepth didn't match), the filter
doesn't return success, which would mean sending an uninitialized framebuffer
further down the filtergraph.
2016-05-10 09:26:17 -04:00
Ronald S. Bultje
356c116536
vf_colorspace: fix range order.
2016-05-10 09:26:17 -04:00
Ronald S. Bultje
9bbed8645a
vf_colorspace: make whitepoint adaptation mode configurable.
...
Also add von kries whitepoint adaptation, and add 'identity' to turn
whitepoint adaptation off.
2016-05-10 09:26:16 -04:00
Ronald S. Bultje
3ed5218bd3
fate: add matroska-remux test.
...
This tests automatic insertion of the vp9_superframe BSF as well as
ensuring that the colorspace properties in the video header can be
modified when remuxing (-c:v copy).
2016-05-10 09:26:12 -04:00
Ronald S. Bultje
9c4943e671
ffmpeg: copy color properties in case of -c:v copy.
...
I have no idea why the first hunk uses ost->enc_ctx, because as far as
I understand, that is never used in case of -c:v copy, but this code
block is only entered if encoding_needed=0, which means stream_copy=1.
My point being: review from someone that knows this really well would
be appreciated.
2016-05-10 08:37:56 -04:00
Ronald S. Bultje
f4075767b2
vf_colorspace: use enums for bpp/subsampling array indices.
...
Also add some documentation for each function to colorspacedsp.h.
2016-05-10 08:37:56 -04:00
Ronald S. Bultje
9b26a8077f
vf_colorspace: add const to yuv_stride[] argument in DSP functions.
2016-05-10 08:37:55 -04:00
Ronald S. Bultje
431117dcb5
vf_colorspace: add floyd-steinberg dithering option to full conversion.
2016-05-10 08:37:55 -04:00
Ronald S. Bultje
ee729cc0ed
vp9: ignore frame_context_index field in key-/intraonly-frames.
...
Reproduces a bug to remain consistent with libvpx' behaviour.
2016-04-17 09:28:56 -04:00
Ronald S. Bultje
6135aed0d2
vf_scale: support bt2020 in in/out_color_matrix properties.
2016-04-17 09:28:30 -04:00
Ronald S. Bultje
5ce703a6bf
vf_colorspace: x86-64 SIMD (SSE2) optimizations.
2016-04-12 16:42:48 -04:00
Ronald S. Bultje
2e2e08a35b
lavfi: new colorspace conversion filter.
...
The intent here is similar to colormatrix, but it's LGPLv2.1-or-later
(instead of GPLv2.0) and supports gamma/chromaticity correction.
2016-04-12 16:42:45 -04:00
Ronald S. Bultje
b3eda69490
swscale: add bt2020 yuv2rgb coefficients.
2016-04-01 15:39:48 -04:00
Ronald S. Bultje
98038e2ee0
swscale: fix bt709 yuv2rgb coefficients.
...
They were derived from incorrect values cr=0.2125 (should be cr=0.2126)
and cb=0.0721 (should be cb=0.0722).
2016-04-01 15:39:47 -04:00
Ronald S. Bultje
b86339a9f8
vp9: fix a few signed integer left-shifts.
...
Fixes trac tickets 5127, 5129, 5130.
2016-03-11 16:06:29 -05:00
Ronald S. Bultje
abedde65d1
vp9_superframe: fix endianness of size markers.
2016-03-11 14:23:46 -05:00
Ronald S. Bultje
2e6636aa87
vp9: add superframe merging bitstream filter.
...
Fixes ticket 4313.
2016-03-11 11:19:14 -05:00
Ronald S. Bultje
6d8ab358a3
lavf: allow BSFs to drop packets.
...
If pkt->size == 0 && pkt->side_data_elems == 0 after bsf->filter()
returns, the packet is considered dropped.
2016-03-11 11:19:10 -05:00
Ronald S. Bultje and Michael Niedermayer
5307adadeb
vp9: only call ff_get_format on stream format changes.
...
In practice, this means we don't call it N times for N-threaded decoding.
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2016-02-13 19:49:34 +01:00
Ronald S. Bultje
9cf81e573c
lavfi: recognize GBR9-14P as RGB in ff_fill_rgba_map().
2016-01-24 11:45:53 -05:00
Ronald S. Bultje
8c9103c4af
checkasm: add videodsp emulated_edge_mc test.
2016-01-21 10:25:27 -05:00
Ronald S. Bultje
0f88b3f82f
videodsp: fix 1-byte overread in top/bottom READ_NUM_BYTES iterations.
...
This can overread (either before start or beyond end) of the buffer in
Nx1 (i.e. height=1) images.
Fixes mozilla bug 1240080.
2016-01-18 11:12:47 -05:00
Ronald S. Bultje
1ac89869db
vp9: always keep s->bytesperpixel and ctx->pix_fmt in sync.
...
Fixes mozilla bug 1229128.
2015-12-02 14:53:46 -05:00
Ronald S. Bultje
20db54906f
vp9_parser: allow superframes with a single frame.
2015-11-06 17:12:03 -05:00
Ronald S. Bultje
c048303823
vp9: update timestamps in ref files using multiple invisible frames.
...
For the 10-show-existing-frame, the source file indeed has a timestamp
of 3 (or 100/33) for the second visible frame, so the fix appears to
work correctly. For the other, only the timebase is fixed, but again
appears to be correct now.
2015-10-29 07:55:12 -04:00
Ronald S. Bultje
63fca9df9c
vp9_parser: don't overwrite cached timestamps with nopts.
2015-10-28 22:15:36 -04:00
Ronald S. Bultje
49d8a70dc5
vp9: uses ff_set_dimensions (which sets coded_width/height).
...
Fixes ticket 4935.
2015-10-24 15:11:59 -04:00
Ronald S. Bultje
52f84d82bd
videodsp: don't overread edges in vfix3 emu_edge.
...
Fixes trac ticket 3226. Also see Andreas' analysis in
https://bugs.debian.org/801745 , which was very helpful.
2015-10-24 14:34:50 -04:00
Ronald S. Bultje
0c7b44a01c
vf_psnr/ssim: don't crash if stats_file is NULL.
2015-10-23 06:38:30 -04:00
Ronald S. Bultje
e7d9061d4f
vf_ssim: print per-channel dB values.
2015-10-22 17:18:40 -04:00
Ronald S. Bultje
81d7f118e2
vf_psnr: remove %0.2f format specifiers for stream summary line.
...
This makes output equally precise as vf_ssim.
2015-10-22 17:18:15 -04:00
Ronald S. Bultje and Hendrik Leppkes
b95f241b6e
vp9: split header into separate struct and expose in vp9.h
...
This allows hwaccels to access the bitstream header information.
2015-10-15 13:02:20 +02:00
Ronald S. Bultje
e578638382
vp9: use registers for constant loading where possible.
2015-10-13 11:06:01 -04:00
Ronald S. Bultje
408bb8556f
vp9: refactor itx coefficients and share between 8 and 10/12bpp.
2015-10-13 11:06:01 -04:00
Ronald S. Bultje
eb4b5ff738
vp9: add itxfm_add eob shortcuts to 10/12bpp functions.
...
These aren't quite as helpful as the ones in 8bpp, since over there,
we can use pmulhrsw, but here the coefficients have too many bits to
be able to take advantage of pmulhrsw. However, we can still skip
cols for which all coefs are 0, and instead just zero the input data
for the row itx. This helps a few % on overall decoding speed.
2015-10-13 11:06:01 -04:00
Ronald S. Bultje
488fadebbc
vp9: add 10/12bpp idct_idct_32x32 sse2 SIMD version.
2015-10-13 11:06:00 -04:00
Ronald S. Bultje
3d0ca2fe89
vp9: 10/12bpp sse2 SIMD for iadst16.
2015-10-13 11:06:00 -04:00
Ronald S. Bultje
0e80265b0a
vp9: refactor 10/12bpp dc-only code in 4x4/8x8 and add to 16x16.
2015-10-13 11:06:00 -04:00
Ronald S. Bultje
1338fb79d4
vp9: add 10/12bpp sse2 SIMD version for idct_idct_16x16.
2015-10-13 11:06:00 -04:00
Ronald S. Bultje
cb054d061a
vp9: add 10/12bpp sse2 SIMD versions of iadst8x8.
2015-10-13 11:05:59 -04:00
Ronald S. Bultje
e0610787b2
vp9: add 10/12bpp sse2 SIMD for idct_idct_8x8.
2015-10-13 11:05:59 -04:00
Ronald S. Bultje
a35f6bdb38
vp9: add 12bpp sse2 versions of iadst4.
2015-10-13 11:05:59 -04:00
Ronald S. Bultje
235e76aeb8
vp9: initial attempt at a idct_idct_4x4 12bpp x86 simd (sse2) impl.
...
The trouble with this function is that intermediates overflow 31+sign
bits, so I've added some helpers (that will also be used in 10/12bpp
8x8, 16x16 and 32x32) to make that easier, basically emulating a half-
assed pmaddqd using 2xpmaddwd. It's currently sse2-only, if anyone sees
potential in adding ssse3, I'd love to hear it.
2015-10-13 11:05:58 -04:00
Ronald S. Bultje
f76423d097
vp9: add x86 simd (sse2/ssse3) for iadst4 10bpp functions.
2015-10-13 11:05:58 -04:00
Ronald S. Bultje
6b579cf547
vp9: add 10bpp simd (mmxext/ssse3) for idct_idct_4x4.
2015-10-13 11:05:58 -04:00
Ronald S. Bultje
1c3be32533
vp9: add 10/12bpp mmxext-optimized iwht_iwht_4x4 function.
2015-10-13 11:05:57 -04:00
Ronald S. Bultje
93866c2aa2
intmath: remove av_ctz.
...
It's a non-installed header and only used in one place (flacenc).
Since ff_ctz is static inline, it's fine to use that instead.
2015-10-11 18:03:10 -04:00
Ronald S. Bultje
ce78729033
vp9: don't keep a stack pointer if we don't need it.
...
This saves one register in a few cases on 32bit builds with unaligned
stack (e.g. MSVC), making the code slightly easier to maintain.
(Can someone please test this on 32bit+msvc and confirm make fate-vp9
and tests/checkasm/checkasm still work after this patch?)
2015-10-07 08:55:19 -04:00
Ronald S. Bultje
cb912b4521
vp9: fix msvc build by using 6 GPRs on 32bit if stack!=aligned.
2015-10-05 16:51:05 -04:00
Ronald S. Bultje
061b67fb50
vp9: 10/12bpp SIMD (sse2/ssse3/avx) for directional intra prediction.
2015-10-03 14:42:39 -04:00
Ronald S. Bultje
26ece7a511
vp9: 16bpp tm/dc/h/v intra pred simd (mostly sse2) functions.
2015-10-03 14:42:39 -04:00
Ronald S. Bultje
db7786e8ff
vp9: sse2/ssse3/avx 16bpp loopfilter x86 simd.
2015-10-03 14:42:39 -04:00
Ronald S. Bultje
0b227c6d47
checkasm: add vp9dsp.itxfm_add tests.
2015-09-28 10:51:53 -04:00
Ronald S. Bultje
7a4b97e946
checkasm: clip vp9 loopfilter test pixels inside allowed bitdepth range.
2015-09-26 06:42:33 -04:00
Ronald S. Bultje
74e4948235
hevc: fix wpp threading deadlock.
...
Fixes ticket 4258.
2015-09-21 20:44:14 -04:00
Ronald S. Bultje
350e9c6765
vp9: fix loopfilter test code to address Hendrik's comments.
...
(I forgot to actually merge them into the patch I just pushed.)
2015-09-21 20:44:14 -04:00
Ronald S. Bultje
b074367405
checkasm: add VP9 loopfilter tests.
...
The randomize_buffer() implementation assures that "most of the time",
we'll do a good mix of wide16/wide8/hev/regular/no filters for complete
code coverage. However, this is not mathematically assured because that
would make the code either much more complex, or much less random.
2015-09-20 10:33:04 +02:00
Ronald S. Bultje
344d519040
vp9: add subpel MC SIMD for 10/12bpp.
2015-09-16 21:11:34 -04:00
Ronald S. Bultje
77f359670f
vp9: add fullpel (avg) MC SIMD for 10/12bpp.
2015-09-16 21:11:34 -04:00
Ronald S. Bultje
6354ff0383
vp9: add fullpel (put) MC SIMD for 10/12bpp.
2015-09-16 21:11:34 -04:00
Ronald S. Bultje
bbd44e124a
checkasm: add vp9 intra pred tests.
2015-09-15 16:43:29 -04:00
Ronald S. Bultje
084451e1e4
checkasm: add vp9 MC tests.
2015-09-15 16:43:28 -04:00
Ronald S. Bultje
a0d8a81075
vp9: switch min_tile_cols location so it shifts up instead of down.
...
This fixes cases where the shifted number is 64, but we shifted non-
zero numbers away in the shift. The change makes behaviour consistent
with libvpx.
2015-09-15 09:20:34 -04:00
Ronald S. Bultje
a30a8beeb3
vp9: Fix emu[] edge overflow conditions for >8bpp/non-420.
2015-09-12 07:01:48 -04:00
Ronald S. Bultje
2563a33856
vp9: re-initialize internal buffers on bpp change also.
2015-09-12 07:01:47 -04:00
Ronald S. Bultje
4b66274a86
vp9: save one (PSIGNW) instruction in iadst16_1d sse2/ssse3.
2015-09-11 20:36:51 -04:00
Ronald S. Bultje
02064d6b7b
libvpxdec: apply RGB to 444P16 instead of 422P16.
2015-09-11 19:35:22 -04:00
Ronald S. Bultje
fd8b90f5f6
vp9: fix overflow in 8x8 topleft 32x32 idct ssse3 version.
...
Also disable the mmx/iwht optimization when the bitexact flag is set.
With synthetically coded coefficients (i.e. these that lead to a
residual well outside the [-255,255] range), our optimizations will
overflow. It doesn't make sense to fix the overflows, since they can
only occur on synthetic input, not on real fwht-generated input. Thus,
add a bitexact flag that disables this optimization.
2015-09-10 07:51:16 -04:00
Ronald S. Bultje
4bb9dbe4d7
vp9: permanently delete segmentation refmap on any size change.
2015-09-10 07:51:16 -04:00
Ronald S. Bultje
e855ed17a7
Update md5 muxer docs to indicate that it ignores timestamps.
2015-09-06 15:07:19 -04:00
Ronald S. Bultje
f12093fffd
vp9: fix integer overflows in sse2 version of iadst4.
2015-09-06 15:07:19 -04:00
Ronald S. Bultje
a02e27c03d
md5: change flags to match framemd5.
...
This prevents the following warning: "Application provided invalid, non
monotonically increasing dts to muxer in stream 0: 9 >= 9".
2015-09-06 15:07:19 -04:00
Ronald S. Bultje
086c9b78d4
vp9: fix rounding error in idct_8x8_ssse3.
2015-09-05 15:50:02 -04:00
Ronald S. Bultje
ae9344cb9f
vp9: check return value of ff_thread_ref_frame().
...
Fixes CID 1322309.
2015-09-05 15:50:01 -04:00
Ronald S. Bultje
ef8740d8e5
vp9: fix type of iadst4_1d intermediates.
...
Fixes integer overflows for extreme coefficient values in 10/12bpp content.
2015-09-05 15:50:01 -04:00
Ronald S. Bultje
342bca7f02
vp9: fix integer overflow in 10/12bpp DC-only calculation.
2015-09-05 15:50:01 -04:00
Ronald S. Bultje
1f7871ec42
vp9: fix edge copy for 10/12bpp frames.
2015-09-05 15:50:01 -04:00
Ronald S. Bultje
9cdeb105a6
vp9: do unscaled MC in scaled path if size of this reference matches.
...
This can happen if we do bidirectional MC, where one reference has the
same size as the current frame, but the other one doesn't.
2015-09-05 15:50:01 -04:00
Ronald S. Bultje
873dbc6758
vp9: sync segmentation.absolute_vals between threads.
2015-09-05 15:50:00 -04:00
Ronald S. Bultje
3d7173b509
vp9: always sync segmentation.feat between threads.
2015-09-05 15:50:00 -04:00
Ronald S. Bultje
9ee2ddd773
vp9_parse: fix parsing of pskip and profile 2/3.
...
The fate results change because we now correctly timestamp the pskip
frames, which means the results are now identical to -vsync 0.
2015-09-04 09:59:17 -04:00
Ronald S. Bultje
10142f994a
libvpxdec: explicitly signal RGB.
2015-09-04 09:33:46 -04:00
Ronald S. Bultje
4ecb8b4191
vp9: don't erase values for {lf,ref,skip,q}_enabled if segmentation=0.
...
Instead, use segmentation.enabled before accessing each of these values.
2015-09-04 09:33:45 -04:00
Ronald S. Bultje
8b45e87f64
vp9: fix segmentation map retention across keyframe boundaries.
2015-09-04 09:33:45 -04:00
Ronald S. Bultje
7cc7d13fe3
vp9: fix RGB chroma subsampling.
2015-09-04 09:33:45 -04:00
Ronald S. Bultje
ecd9f57edc
vp9: read reserved bit in RGB header.
2015-09-04 09:33:45 -04:00
Ronald S. Bultje
48f641a18b
vp9: clip intermediates in dequant calculations.
...
This makes values consistent with libvpx.
2015-09-04 09:33:45 -04:00
Ronald S. Bultje
eaff36c973
vp9: fix segmentation map retention if segmentation is turned off.
2015-09-04 09:33:44 -04:00
Ronald S. Bultje
8d25a11dc7
vp9: use resetctx in the same way as libvpx.
2015-09-04 09:33:44 -04:00
Ronald S. Bultje
cc9d3a3e36
vp9: fix indentation.
2015-09-04 09:33:44 -04:00
Ronald S. Bultje
caf6512ac4
vp9: deal with the case where update_map=0 but we're key/intraonly.
2015-09-04 09:33:44 -04:00
Ronald S. Bultje
339550e7c8
vp9: reset segmentation information on context reset.
2015-09-04 09:33:43 -04:00
Ronald S. Bultje
7e12a54251
ffserver: use -b instead of -ab for setting audio bitrate.
2015-08-28 14:59:58 -04:00
Ronald S. Bultje
2fb593dcb9
Put remaining pieces of CODEC_FLAG_EMU_EDGE under FF_API_EMU_EDGE.
...
The amv one probably looks suspicious, but since it's an intra-only
codec, I couldn't possibly imagine what it would use the edge for,
and the vsynth fate result doesn't change, so it's probably OK.
2015-08-28 14:40:59 -04:00
Ronald S. Bultje
99b9f0136c
fate: rename -error option to -error_rate.
...
This fixes fate when FF_API_ERROR_RATE=0.
2015-08-19 10:01:42 -04:00