Commit Graph

9905 Commits

Author SHA1 Message Date
5a71f03f8b Deactivate the audio session after a call ends using the AVAudioSessionSetActiveOptionNotifyOthersOnDeactivation constant
since it is recommended for VoIP apps.

BUG=b/23356406
R=tkchin@webrtc.org

Review URL: https://codereview.webrtc.org/1418483004 .

Cr-Commit-Position: refs/heads/master@{#10673}
2015-11-17 13:54:58 +00:00
45e998d958 Roll chromium_revision a2e8a40..04756fa (359987:360053)
Change log: a2e8a40..04756fa
Full diff: a2e8a40..04756fa

No dependencies changed.
No update to Clang.

TBR=
CQ_EXTRA_TRYBOTS=tryserver.webrtc:win_baremetal,mac_baremetal,linux_baremetal

Review URL: https://codereview.webrtc.org/1456493002

Cr-Commit-Position: refs/heads/master@{#10672}
2015-11-17 13:09:13 +00:00
fd614c2149 Adding thread timeout for audio recorer thread in Java
BUG=NONE

Review URL: https://codereview.webrtc.org/1444313002

Cr-Commit-Position: refs/heads/master@{#10671}
2015-11-17 12:28:33 +00:00
e66339296b Add OpenSL ES enable setting to AppRTCDemo.
Disable OpenSL ES by default.
Plus remove no longer used CPU overuse detection option.

Review URL: https://codereview.webrtc.org/1449083002

Cr-Commit-Position: refs/heads/master@{#10670}
2015-11-17 12:05:35 +00:00
3c12f4dadb Revert of Create rtc::AtomicInt POD struct. (patchset #12 id:220001 of https://codereview.webrtc.org/1420043008/ )
Reason for revert:
Caused static initializers.

BUG=chromium:556866
TBR=tommi@webrtc.org

Original issue's description:
> Create rtc::AtomicInt POD struct.
>
> Prevents accidental non-atomic reads, increments and stores since
> "volatile int" doesn't enforce atomic usage.
>
> BUG=
> R=kwiberg@webrtc.org, tommi@webrtc.org
>
> Committed: https://crrev.com/b27f590ece487819c3d1fda400315e582fb975b6
> Cr-Commit-Position: refs/heads/master@{#10657}

TBR=kwiberg@webrtc.org,tommi@webrtc.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=

Review URL: https://codereview.webrtc.org/1453093002

Cr-Commit-Position: refs/heads/master@{#10669}
2015-11-17 11:21:07 +00:00
192164eebc Preparational work before introducing the locks in order to harmonize the code:
-Moved the initialize function
-Moved api_format into the shared state

BUG=

Review URL: https://codereview.webrtc.org/1413093002

Cr-Commit-Position: refs/heads/master@{#10668}
2015-11-17 10:16:51 +00:00
4d291f7d5e Applied the render queueing to the agc.
BUG=webrtc:5099

Review URL: https://codereview.webrtc.org/1416583003

Cr-Commit-Position: refs/heads/master@{#10667}
2015-11-17 07:52:32 +00:00
03179cd850 Roll chromium_revision 6fd4bdd..a2e8a40 (359891:359987)
Change log: 6fd4bdd..a2e8a40
Full diff: 6fd4bdd..a2e8a40

Changed dependencies:
* src/buildtools: 3ba3ca2..277db93
* src/third_party/libyuv: 6100f50..1019e45
DEPS diff: 6fd4bdd..a2e8a40/DEPS

No update to Clang.

TBR=
CQ_EXTRA_TRYBOTS=tryserver.webrtc:win_baremetal,mac_baremetal,linux_baremetal

Review URL: https://codereview.webrtc.org/1454593002

Cr-Commit-Position: refs/heads/master@{#10666}
2015-11-17 03:57:34 +00:00
740c4f11e0 Remove packet initializer in RtpRtcpRtxNackTest.
Fixes RtpRtcpRtxNackTest to not use uninitialized data when not sending
RTX.

BUG=webrtc:3183
R=stefan@webrtc.org

Review URL: https://codereview.webrtc.org/1427653007

Cr-Commit-Position: refs/heads/master@{#10665}
2015-11-17 01:19:39 +00:00
854e84c7fb Use webrtc/base/logging.h for video coding/processing.
Replaces system_wrappers' logging.h in video_coding and
video_processing.

BUG=webrtc:5118
R=stefan@webrtc.org

Review URL: https://codereview.webrtc.org/1435873003

Cr-Commit-Position: refs/heads/master@{#10664}
2015-11-17 00:39:10 +00:00
c91d173870 Revert of Several Tick counter improvements. (patchset #8 id:140001 of https://codereview.webrtc.org/1415923010/ )
Reason for revert:
Potentially breaks a threading test under DrMemory.  Rolling back while I investigate.

Original issue's description:
> Several Tick counter improvements.
>
> Move logic into cc file
> Simplify interval calculation
> Remove unused QUERY_PERFORMANCE_COUNTER windows implementation
> Remove double divide on each ::Now() invocation on mac
>
> Move TickTime and TickInterval funcitons to cc file in prep for refactoring.
>
> BUG=
> R=mflodman@webrtc.org, pbos@webrtc.org
>
> Committed: https://crrev.com/4c27e4b62da2047063d88eedfeec3e939fea7843
> Cr-Commit-Position: refs/heads/master@{#10661}

TBR=pbos@webrtc.org,mflodman@webrtc.org,noahric@chromium.org,thaloun@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=

Review URL: https://codereview.webrtc.org/1450203002

Cr-Commit-Position: refs/heads/master@{#10663}
2015-11-17 00:28:56 +00:00
fa6228e221 Introduced the render sample queue for the aec and aecm.
BUG=webrtc:5099

Review URL: https://codereview.webrtc.org/1410833002

Cr-Commit-Position: refs/heads/master@{#10662}
2015-11-17 00:27:50 +00:00
4c27e4b62d Several Tick counter improvements.
Move logic into cc file
Simplify interval calculation
Remove unused QUERY_PERFORMANCE_COUNTER windows implementation
Remove double divide on each ::Now() invocation on mac

Move TickTime and TickInterval funcitons to cc file in prep for refactoring.

BUG=
R=mflodman@webrtc.org, pbos@webrtc.org

Review URL: https://codereview.webrtc.org/1415923010 .

Cr-Commit-Position: refs/heads/master@{#10661}
2015-11-16 22:37:59 +00:00
eb8b388273 Fix VP9 support in AppRTCDemo.
Default VP9 selection is no longer triggered by field trial string
after https://codereview.webrtc.org/1432673002, so VP9 need to
be selected now through SDP mangling.

R=wzh@webrtc.org

Review URL: https://codereview.webrtc.org/1452783002 .

Cr-Commit-Position: refs/heads/master@{#10660}
2015-11-16 22:12:01 +00:00
6f8ce060a2 common_video: rename interface -> include
To avoid breaking downstream, the "interface" directories were copied
into a new "common_video/include" dir. The old headers got pragma
warnings added about deprecation (a very short deprecation since I plan
to remove them as soon downstream is updated).
The header guards are also identical to avoid mixing them up in the transition.

BUG=webrtc:5095
TESTED=Passing compile-trybots with --clobber flag:
git cl try --clobber --bot=win_compile_rel --bot=linux_compile_rel --bot=android_compile_rel --bot=mac_compile_rel --bot=ios_rel --bot=linux_gn_rel --bot=win_x64_gn_rel --bot=mac_x64_gn_rel --bot=android_gn_rel -m tryserver.webrtc

Review URL: https://codereview.webrtc.org/1418913006

Cr-Commit-Position: refs/heads/master@{#10659}
2015-11-16 21:52:31 +00:00
591cb1fea4 Roll chromium_revision c958aa7..6fd4bdd (359816:359891)
Change log: c958aa7..6fd4bdd
Full diff: c958aa7..6fd4bdd

No dependencies changed.
No update to Clang.

TBR=
CQ_EXTRA_TRYBOTS=tryserver.webrtc:win_baremetal,mac_baremetal,linux_baremetal

Review URL: https://codereview.webrtc.org/1453443002

Cr-Commit-Position: refs/heads/master@{#10658}
2015-11-16 20:34:07 +00:00
b27f590ece Create rtc::AtomicInt POD struct.
Prevents accidental non-atomic reads, increments and stores since
"volatile int" doesn't enforce atomic usage.

BUG=
R=kwiberg@webrtc.org, tommi@webrtc.org

Review URL: https://codereview.webrtc.org/1420043008

Cr-Commit-Position: refs/heads/master@{#10657}
2015-11-16 19:03:06 +00:00
3528a27b1b Flesh out webrtc/.gitignore
Chromium only checks out the webrtc directory so it misses the root
level .gitignore file which leads to messy "git status" reports inside
third_party/webrtc. This copies the root level .gitignore so that
.vcxproj files, the OSX equivalent, and other files will be ignored.

Some of the entries are irrelevant, but it is better too have a few
irrelevant entries than to be missing some, and the simplicity of
copying is valuable.

NOTRY=True
TBR=henrika@webrtc.org

Review URL: https://codereview.webrtc.org/1432413002

Cr-Commit-Position: refs/heads/master@{#10656}
2015-11-16 19:02:02 +00:00
482b12e2c3 Remove BundleFilter filtering of RTCP.
BundleFilter may not know the remote SSRC for all incoming RTCP packets,
so there's no point in filtering them.

BUG=webrtc:4740
R=hta@webrtc.org, juberti@webrtc.org, pthatcher@webrtc.org

Review URL: https://codereview.webrtc.org/1437683005

Cr-Commit-Position: refs/heads/master@{#10655}
2015-11-16 18:20:03 +00:00
8b85de2ba1 Converted a bunch of error checking in Audio[Receive|Send]Stream to RTC_CHECKs instead. They should never fail.
BUG=webrtc:4690

Review URL: https://codereview.webrtc.org/1442483003

Cr-Commit-Position: refs/heads/master@{#10654}
2015-11-16 17:48:12 +00:00
9a7c838ec4 Adding stddef.h to opus_inst.h.
This is to prevent size_t from undefined. This does not happen in current WebRTC since the sources that opus_inst.h gets used have proper definitions. But it would be good to add the definition in itself.

Review URL: https://codereview.webrtc.org/1446093003

Cr-Commit-Position: refs/heads/master@{#10653}
2015-11-16 16:07:04 +00:00
3a94154035 Move some send stream configuration into webrtc::AudioSendStream.
BUG=webrtc:4690

Review URL: https://codereview.webrtc.org/1418503010

Cr-Commit-Position: refs/heads/master@{#10652}
2015-11-16 15:34:59 +00:00
633a3aa26f ThreadUtils: Add joinUninterruptibly() with timeout
This is similar to com.google.common.util.concurrent.Uninterruptibles.joinUninterruptibly().
http://docs.guava-libraries.googlecode.com/git/javadoc/com/google/common/util/concurrent/Uninterruptibles.html#joinUninterruptibly(java.lang.Thread,%20long,%20java.util.concurrent.TimeUnit)

Review URL: https://codereview.webrtc.org/1444273002

Cr-Commit-Position: refs/heads/master@{#10651}
2015-11-16 13:12:36 +00:00
e155ae671c Move CNG and RED management into the Rent-A-Codec
This leaves CodecOwner without a job, so we eliminate it.

BUG=webrtc:5028

Review URL: https://codereview.webrtc.org/1443653004

Cr-Commit-Position: refs/heads/master@{#10650}
2015-11-16 12:50:02 +00:00
54e92326af Revert of Do not delete the turn port entry right away when the respective connection is deleted. (patchset #5 id:260001 of https://codereview.webrtc.org/1426673007/ )
Reason for revert:
I have to revert this unfortunately because it adds a dependency on AsyncInvoker, which is not included when building libjingle_nacl in Chromium.
AsyncInvoker needs to first be added to the list of sources in Chromium.

Original issue's description:
> Do not delete the turn port entry right away when the respective connection is deleted.
> BUG=webrtc:5120
>
> Committed: https://crrev.com/e58fe8ef0e6d959f54adee3ed77764927d3845cc
> Cr-Commit-Position: refs/heads/master@{#10641}

TBR=pthatcher@webrtc.org,honghaiz@webrtc.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:5120

Review URL: https://codereview.webrtc.org/1449863002

Cr-Commit-Position: refs/heads/master@{#10649}
2015-11-16 12:13:02 +00:00
2a654fa55c Roll chromium_revision cad2987..c958aa7 (359796:359816)
Change log: cad2987..c958aa7
Full diff: cad2987..c958aa7

No dependencies changed.
No update to Clang.

TBR=
CQ_EXTRA_TRYBOTS=tryserver.webrtc:win_baremetal,mac_baremetal,linux_baremetal

Review URL: https://codereview.webrtc.org/1445063002

Cr-Commit-Position: refs/heads/master@{#10648}
2015-11-16 12:09:05 +00:00
0b9e29c87d Remove include dirs from modules/{media_file,pacing}
Also move files out of media_file/source.

BUG=webrtc:5095
TESTED=git cl try -c --bot=android_compile_rel --bot=linux_compile_rel --bot=win_compile_rel --bot=mac_compile_rel --bot=ios_rel --bot=linux_gn_rel --bot=win_x64_gn_rel --bot=mac_x64_gn_rel --bot=android_gn_rel -m tryserver.webrtc
R=asapersson@webrtc.org, perkj@webrtc.org, tommi@webrtc.org

Review URL: https://codereview.webrtc.org/1435093002 .

Cr-Commit-Position: refs/heads/master@{#10647}
2015-11-16 10:12:32 +00:00
3e0f602055 Android EglBase: Add support for creating EGLSurface from Surface, not SurfaceHolder
Review URL: https://codereview.webrtc.org/1438223003

Cr-Commit-Position: refs/heads/master@{#10646}
2015-11-16 10:04:57 +00:00
d9b75bef5d Fix a data race in the thread unit tests.
The flag used in thread_unittest.cc:FunctorB is subject to a (mostly
harmless) data race. In a tsan build, reproduce using

  out/Release/rtc_unittests --gtest_filter=AsyncInvokeTest.FireAndForget

There are additional tsan warnings, not all deterministic, when
running all the rtc_unittets: Some data races related to destructors,
and a locking-order-inversion warning. Hence applying this patch does
not make the unit tests tsan-clean.

I should also add that this is my very first cl, so I'm not at all
familiar with the process.

Review URL: https://codereview.webrtc.org/1439613004

Cr-Commit-Position: refs/heads/master@{#10645}
2015-11-16 08:54:10 +00:00
6f14be8df8 Add limit for minimum number of required samples before recording input and sent framerate stats.
BUG=

Review URL: https://codereview.webrtc.org/1446443002

Cr-Commit-Position: refs/heads/master@{#10644}
2015-11-16 08:40:57 +00:00
3c735f4505 Roll chromium_revision b77e5bb..cad2987 (359767:359796)
Change log: b77e5bb..cad2987
Full diff: b77e5bb..cad2987

No dependencies changed.
No update to Clang.

TBR=
CQ_EXTRA_TRYBOTS=tryserver.webrtc:win_baremetal,mac_baremetal,linux_baremetal

Review URL: https://codereview.webrtc.org/1444223002

Cr-Commit-Position: refs/heads/master@{#10643}
2015-11-16 03:54:17 +00:00
8c64860129 Roll chromium_revision 3b7968d..b77e5bb (359482:359767)
Change log: 3b7968d..b77e5bb
Full diff: 3b7968d..b77e5bb

Changed dependencies:
* src/tools/gyp: 2c1e6cc..33b351b
DEPS diff: 3b7968d..b77e5bb/DEPS

No update to Clang.

TBR=
CQ_EXTRA_TRYBOTS=tryserver.webrtc:win_baremetal,mac_baremetal,linux_baremetal

Review URL: https://codereview.webrtc.org/1449783002

Cr-Commit-Position: refs/heads/master@{#10642}
2015-11-15 19:07:50 +00:00
e58fe8ef0e Do not delete the turn port entry right away when the respective connection is deleted.
BUG=webrtc:5120

Review URL: https://codereview.webrtc.org/1426673007

Cr-Commit-Position: refs/heads/master@{#10641}
2015-11-14 01:54:47 +00:00
fa5d0dbd1e cleanup: get rid of basicdefs.h include
The ARRAY_SIZE macro it defines is not used anymore, as all the usages
were converted to arraysize macro from arraysize.h.

BUG=None
R=tommi@webrtc.org

Review URL: https://codereview.webrtc.org/1443273002

Cr-Commit-Position: refs/heads/master@{#10640}
2015-11-13 22:37:43 +00:00
a4845efe14 Fix flaky tests
BUG=webrtc:5190,webrtc:5136

Review URL: https://codereview.webrtc.org/1405103006

Cr-Commit-Position: refs/heads/master@{#10639}
2015-11-13 17:53:01 +00:00
4a41361f98 Android SurfaceViewRenderer: Never hold a pending frame indefinitely
The original purpose with keeping one pending frame in SurfaceViewRenderer was to reduce latency for the first rendered frame when we are waiting for the Surface to be created. However, it is very dangerous to hold a pending frame indefinitely when used with a SurfaceTexture, because the SurfaceTexture only has one frame and thus holding a frame in the renderer will freeze everything and typically cause timeout crashes.

Review URL: https://codereview.webrtc.org/1435413006

Cr-Commit-Position: refs/heads/master@{#10638}
2015-11-13 16:48:06 +00:00
Per
c01c25434b Revert of Android MediaCodecVideoDecoder: Manage lifetime of texture frames (patchset #12 id:320001 of https://codereview.webrtc.org/1422963003/ )
Reason for revert:
Causes fallback to SW decoder if a renderer is put in the background.

Original issue's description:
> Patchset 1 is a pure
> revert of "Revert of "Android MediaCodecVideoDecoder: Manage lifetime of texture frames" https://codereview.webrtc.org/1378033003/
>
> Following patchsets move the responsibility of calculating the decode time to Java.
>
> TESTED= Apprtc loopback using H264 and VP8 on N5, N6, N7, S5
>
> Committed: https://crrev.com/9cb8982e64f08d3d630bf7c3d2bcc78c10db88e2
> Cr-Commit-Position: refs/heads/master@{#10597}

TBR=magjed@webrtc.org,glaznev@webrtc.org
NOPRESUBMIT=true
NOTREECHECKS=true

Review URL: https://codereview.webrtc.org/1441363002 .

Cr-Commit-Position: refs/heads/master@{#10637}
2015-11-13 15:58:37 +00:00
f8506cbdd8 rtcp::Ij renamed to rtcp::ExtendedJitterReport
to match name given in the RFC5450
  private member renamed to inter_arrival_jitters_ for the same reason.
rtcp::ExtendedJitterReport moved into own file
accessors and Parse function added
  to make class usable for parsing packet

Review URL: https://codereview.webrtc.org/1434213004

Cr-Commit-Position: refs/heads/master@{#10636}
2015-11-13 15:33:26 +00:00
cbe9f51cf8 Revert of Remove global list of SRTP sessions. (patchset #4 id:60001 of https://codereview.webrtc.org/1416093010/ )
Reason for revert:
Unfortunately this breaks an internal downstream project since we have an ancient libsrtp. Reverting until we can figure out how to update our libsrtp.

Original issue's description:
> Remove global list of SRTP sessions.
> Instead save a reference to the SrtpSession inside the srtp_ctx_t.
>
> BUG=webrtc:5133
>
> Committed: https://crrev.com/9cafd972779ed7b25886ab276e0ede7b7a8b76a1
> Cr-Commit-Position: refs/heads/master@{#10591}

TBR=juberti@google.com,juberti@webrtc.org,jbauch@webrtc.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:5133

Review URL: https://codereview.webrtc.org/1442863003

Cr-Commit-Position: refs/heads/master@{#10635}
2015-11-13 14:55:17 +00:00
0fa9b22789 Remove scoped_ptrs for VCM sender_ and receiver_.
Put VideoSender/VideoReceiver flat within the object, not as
scoped_ptrs, giving fewer allocations and looking a bit nicer.

BUG=
R=tommi@webrtc.org

Review URL: https://codereview.webrtc.org/1443613002

Cr-Commit-Position: refs/heads/master@{#10634}
2015-11-13 13:59:59 +00:00
df948f03b3 rtcp::ReportBlock refactored to contain parsing
Review URL: https://codereview.webrtc.org/1420283022

Cr-Commit-Position: refs/heads/master@{#10633}
2015-11-13 11:03:18 +00:00
0a41893e36 Remove BitrateController dependency fromVideoReceiveStream.
I have another CL moving REMB from CongestonController to Call, then
I'll remove CongestoinController from this class too.

R=stefan@webrtc.org

Review URL: https://codereview.webrtc.org/1442003002 .

Cr-Commit-Position: refs/heads/master@{#10632}
2015-11-13 10:12:16 +00:00
464c0878d9 Rename screenshare test.
Renamed the test to reflect what is actually tested. What the old test
did I don't know since there has never been possible to use screenshare
with two temporal layers in VP9.

BUG=chromium:554515

Review URL: https://codereview.webrtc.org/1441693002

Cr-Commit-Position: refs/heads/master@{#10631}
2015-11-13 10:08:11 +00:00
0e7e259ebd Move BitrateAllocator from BitrateController logic to Call.
This is a step on the way to have variable bitrate for audio and is
intended to be as much of a no-op as possible.

BUG=webrtc:5079

Review URL: https://codereview.webrtc.org/1441673002

Cr-Commit-Position: refs/heads/master@{#10630}
2015-11-13 05:02:46 +00:00
69191ed845 Roll chromium_revision 4771dd5..3b7968d (359351:359482)
Change log: 4771dd5..3b7968d
Full diff: 4771dd5..3b7968d

Changed dependencies:
* src/buildtools: 4a95614..3ba3ca2
* src/third_party/libvpx_new/source/libvpx: 9ecb99a..0941ff7
DEPS diff: 4771dd5..3b7968d/DEPS

No update to Clang.

TBR=marpan@webrtc.org, stefan@webrtc.org,
CQ_EXTRA_TRYBOTS=tryserver.webrtc:win_baremetal,mac_baremetal,linux_baremetal

Review URL: https://codereview.webrtc.org/1442883002

Cr-Commit-Position: refs/heads/master@{#10629}
2015-11-13 03:57:08 +00:00
faac497af5 Fix for scenario where m-line is revived after being set to port 0.
When this is detected, we'll now "reconfigure" the senders and
receivers, which will reconnect the capturers/renderers to the
underlying streams which have been recreated.

BUG=webrtc:2136

Review URL: https://codereview.webrtc.org/1428243005

Cr-Commit-Position: refs/heads/master@{#10628}
2015-11-12 23:33:14 +00:00
69d0d46c25 Roll chromium_revision e658ee0..4771dd5 (359300:359351)
Change log: e658ee0..4771dd5
Full diff: e658ee0..4771dd5

No dependencies changed.
No update to Clang.

TBR=
CQ_EXTRA_TRYBOTS=tryserver.webrtc:win_baremetal,mac_baremetal,linux_baremetal

Review URL: https://codereview.webrtc.org/1438993004

Cr-Commit-Position: refs/heads/master@{#10627}
2015-11-12 21:01:19 +00:00
2cd7afe7e2 Do not delete a connection until it has not received anything for 30 seconds.
BUG=
R=pthatcher@webrtc.org

Review URL: https://codereview.webrtc.org/1422623015 .

Cr-Commit-Position: refs/heads/master@{#10626}
2015-11-12 19:14:38 +00:00
8597543ae8 Schedule a CreatePermissionRequest after the success of a previous request
unless a channel binding request is already scheduled.

BUG=5178
R=pthatcher@webrtc.org

Review URL: https://codereview.webrtc.org/1434603002 .

Cr-Commit-Position: refs/heads/master@{#10625}
2015-11-12 19:07:25 +00:00
68876f990e Introduces Android API level linting, fixes all current API lint errors.
This CL attempts to annotate accesses on >16 API levels using as
small scopes as possible. The TargetApi notations mean "yes, I know
I'm accessing a higher API and I take responsibility for gating the
call on Android API level". The Encoder/Decoder classes are annotated
on the whole class, but they're only accessed through JNI; we should
annotate on method level otherwise and preferably on private methods.

This patch also fixes some compiler-level deprecation warnings (i.e.
-Xlint:deprecation), but probably not all of them.

BUG=webrtc:5063
R=henrika@webrtc.org, kjellander@webrtc.org, magjed@webrtc.org

Review URL: https://codereview.webrtc.org/1412673008 .

Cr-Commit-Position: refs/heads/master@{#10624}
2015-11-12 16:37:01 +00:00