1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-11-26 19:01:44 +02:00
Commit Graph

33111 Commits

Author SHA1 Message Date
Michael Niedermayer
15eda746e7 avcodec/proresenc_anatoliy: remove coded_frame use
coded_frame.key_frame should be set by the core already

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-29 01:37:43 +02:00
Michael Niedermayer
47424b865a avcodec/avcodec: define CODEC_FLAG based on AV_CODEC_FLAG instead of duplicating the numbers and comments
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-28 22:59:59 +02:00
Michael Niedermayer
77c3908d5c Merge commit 'd75b55635a02444c2f188c26e431a1cec992babe'
* commit 'd75b55635a02444c2f188c26e431a1cec992babe':
  dxva2/d3d11va: Set _WIN32_WINNT to 0x0602 instead of 0x0600

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-28 22:22:10 +02:00
Ivan Uskov
9f543e01af libavcodec/qsvdec.c delay in 1 microsecond replaced to more appropriate 500 microseconds
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-28 20:55:17 +02:00
Ivan Uskov
947c2aa456 libavcodec/qsvenc.c delay in 1 microsecond replaced to more appropriate 500 microseconds
This commit replaces the 1 microsecond delay by 500 microsecond for the
case when the MFX library does return MFX_WRN_DEVICE_BUSY status.
In general this warning never appears for simple encoding or
transcoding session because the GPU is so fast so it almost always is not busy and
any delay value just does not executes.
But for heavy transcoding tasks for example, when several QSV sessions
are running simultaneously then using a 1-microsecond delay may
result in 1000 iterations per each frame.
So here possible a paradoxical case when GPU loading also loads CPU by dummy tasks.
Official MFX/QSV samples by Intel are using 1 millisecond (i.e. 1000
microseconds) everywhere where MFX_WRN_DEVICE_BUSY does appear.
So 500us is a much more optimal value than 1us.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-28 20:37:38 +02:00
Nedeljko Babic
fee7c42bf4 avcodec/aac_fixed: Fix a bug in spectral_to_sample()
There was fixed number of loops (2048) in preparation for resampler, so
when number of samples is smaller than this, there would be an overflow on
ret_buf.

For some reason this behavior popped out only under valgrind with
--disable-memory-poisoning option.

This is now fixed and number of loops depends on actual number of samples.

Signed-off-by: Nedeljko Babic <nedeljko.babic@rt-rk.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-28 20:13:07 +02:00
Martin Storsjö
d75b55635a dxva2/d3d11va: Set _WIN32_WINNT to 0x0602 instead of 0x0600
If _WIN32_WINNT is unset, we force it to a new enough value to
make sure the necessary definitions are visible.

When targeting Windows Phone or Windows RT, _WIN32_WINNT should
be at least 0x0602 - otherwise the windows headers themselves
can cause errors (which technically are bugs in the headers).

Raising this value here shouldn't hurt; the alternative would
be to not touch it at all if WINAPI_FAMILY is set to phone/app,
or to force setting it to 0x0602 in configure if unset (for phone/app).

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-07-28 19:37:47 +03:00
Ivan Uskov
0b8b18b4fb libavcodec/hevc_mp4toannexb_bsf.c: Optional argument "private_spspps_buf" to avoid extradata modification.
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-28 16:22:00 +02:00
Michael Niedermayer
07558ad582 avcodec/libdcadec: exss is used only under ifdef, thus mark it as potentially unused
avoids a compiler warning

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-28 13:35:47 +02:00
Michael Niedermayer
c3fdf536f6 avcodec/h264_slice: Also check sei_recovery_frame_cnt for skip_frame nokey
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-28 13:27:16 +02:00
Michael Niedermayer
accc91642b avcodec/h264_slice: do not skip 2nd field if first was not skipped
Found-by: John Högberg <john.hogberg@ericsson.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-28 11:40:57 +02:00
Michael Niedermayer
1ca042a14b avcodec/snowenc: Export quality/pict_type/PSNR stats through side data
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-28 02:22:23 +02:00
Michael Niedermayer
27294bc203 avcodec/mpegvideo_enc: export per frame PSNR through side data
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-28 02:22:22 +02:00
James Almer
5d95f32bff avocdec/mpeg12dec: fix mpeg_xvmc hwaccel flag
The flag is deprecated and as such didn't get a new AV_ prefixed version

Signed-off-by: James Almer <jamrial@gmail.com>
2015-07-27 21:09:53 -03:00
Michael Niedermayer
360cebc9c8 avcodec/mpegvideo_enc: move ff_side_data_set_encoder_stats() call to after the vbv retry code
This ensures the data matches the final values

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-28 01:14:02 +02:00
Michael Niedermayer
4be1b6bef0 Merge commit '3ee217853a6741b829a2683f49c590618891b1ab'
* commit '3ee217853a6741b829a2683f49c590618891b1ab':
  Support the Hap chunked frame format

Conflicts:
	libavcodec/hap.h
	libavcodec/hapdec.c
	libavcodec/version.h

See: c7e6443441
Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-27 23:53:55 +02:00
Michael Niedermayer
f01e3c5d00 Merge commit '43dd004747fa697396b47d034a80e069facbea09'
* commit '43dd004747fa697396b47d034a80e069facbea09':
  hap: Move some per-stream setup into decoder init rather than per-frame

Conflicts:
	libavcodec/hapdec.c

See: 6074956fa1
Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-27 23:37:19 +02:00
Michael Niedermayer
e3ec2cde2c Merge commit 'b94ec30428b9696f99b08055735689623fe63954'
* commit 'b94ec30428b9696f99b08055735689623fe63954':
  lavc: Update version and APIchanges

Conflicts:
	doc/APIchanges
	libavcodec/avcodec.h
	libavcodec/version.h

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-27 23:21:23 +02:00
Michael Niedermayer
29d147c94d Merge commit '059a934806d61f7af9ab3fd9f74994b838ea5eba'
* commit '059a934806d61f7af9ab3fd9f74994b838ea5eba':
  lavc: Consistently prefix input buffer defines

Conflicts:
	doc/examples/decoding_encoding.c
	libavcodec/4xm.c
	libavcodec/aac_adtstoasc_bsf.c
	libavcodec/aacdec.c
	libavcodec/aacenc.c
	libavcodec/ac3dec.h
	libavcodec/asvenc.c
	libavcodec/avcodec.h
	libavcodec/avpacket.c
	libavcodec/dvdec.c
	libavcodec/ffv1enc.c
	libavcodec/g2meet.c
	libavcodec/gif.c
	libavcodec/h264.c
	libavcodec/h264_mp4toannexb_bsf.c
	libavcodec/huffyuvdec.c
	libavcodec/huffyuvenc.c
	libavcodec/jpeglsenc.c
	libavcodec/libxvid.c
	libavcodec/mdec.c
	libavcodec/motionpixels.c
	libavcodec/mpeg4videodec.c
	libavcodec/mpegvideo.c
	libavcodec/noise_bsf.c
	libavcodec/nuv.c
	libavcodec/nvenc.c
	libavcodec/options.c
	libavcodec/parser.c
	libavcodec/pngenc.c
	libavcodec/proresenc_kostya.c
	libavcodec/qsvdec.c
	libavcodec/svq1enc.c
	libavcodec/tiffenc.c
	libavcodec/truemotion2.c
	libavcodec/utils.c
	libavcodec/utvideoenc.c
	libavcodec/vc1dec.c
	libavcodec/wmalosslessdec.c
	libavformat/adxdec.c
	libavformat/aiffdec.c
	libavformat/apc.c
	libavformat/apetag.c
	libavformat/avidec.c
	libavformat/bink.c
	libavformat/cafdec.c
	libavformat/flvdec.c
	libavformat/id3v2.c
	libavformat/isom.c
	libavformat/matroskadec.c
	libavformat/mov.c
	libavformat/mpc.c
	libavformat/mpc8.c
	libavformat/mpegts.c
	libavformat/mvi.c
	libavformat/mxfdec.c
	libavformat/mxg.c
	libavformat/nutdec.c
	libavformat/oggdec.c
	libavformat/oggparsecelt.c
	libavformat/oggparseflac.c
	libavformat/oggparseopus.c
	libavformat/oggparsespeex.c
	libavformat/omadec.c
	libavformat/rawdec.c
	libavformat/riffdec.c
	libavformat/rl2.c
	libavformat/rmdec.c
	libavformat/rtpdec_latm.c
	libavformat/rtpdec_mpeg4.c
	libavformat/rtpdec_qdm2.c
	libavformat/rtpdec_svq3.c
	libavformat/sierravmd.c
	libavformat/smacker.c
	libavformat/smush.c
	libavformat/spdifenc.c
	libavformat/takdec.c
	libavformat/tta.c
	libavformat/utils.c
	libavformat/vqf.c
	libavformat/westwood_vqa.c
	libavformat/xmv.c
	libavformat/xwma.c
	libavformat/yop.c

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-27 23:15:19 +02:00
Michael Niedermayer
444e9874a7 Merge commit 'def97856de6021965db86c25a732d78689bd6bb0'
* commit 'def97856de6021965db86c25a732d78689bd6bb0':
  lavc: AV-prefix all codec capabilities

Conflicts:
	cmdutils.c
	ffmpeg.c
	ffplay.c
	libavcodec/8svx.c
	libavcodec/aacenc.c
	libavcodec/ac3dec.c
	libavcodec/adpcm.c
	libavcodec/alac.c
	libavcodec/atrac3plusdec.c
	libavcodec/bink.c
	libavcodec/dnxhddec.c
	libavcodec/dvdec.c
	libavcodec/dvenc.c
	libavcodec/ffv1dec.c
	libavcodec/ffv1enc.c
	libavcodec/fic.c
	libavcodec/flacdec.c
	libavcodec/flacenc.c
	libavcodec/flvdec.c
	libavcodec/fraps.c
	libavcodec/frwu.c
	libavcodec/gifdec.c
	libavcodec/h261dec.c
	libavcodec/hevc.c
	libavcodec/iff.c
	libavcodec/imc.c
	libavcodec/libopenjpegdec.c
	libavcodec/libvo-aacenc.c
	libavcodec/libvorbisenc.c
	libavcodec/libvpxdec.c
	libavcodec/libvpxenc.c
	libavcodec/libx264.c
	libavcodec/mjpegbdec.c
	libavcodec/mjpegdec.c
	libavcodec/mpegaudiodec_float.c
	libavcodec/msmpeg4dec.c
	libavcodec/mxpegdec.c
	libavcodec/nvenc_h264.c
	libavcodec/nvenc_hevc.c
	libavcodec/pngdec.c
	libavcodec/qpeg.c
	libavcodec/ra288.c
	libavcodec/rv10.c
	libavcodec/s302m.c
	libavcodec/sp5xdec.c
	libavcodec/takdec.c
	libavcodec/tiff.c
	libavcodec/tta.c
	libavcodec/utils.c
	libavcodec/v210dec.c
	libavcodec/vp6.c
	libavcodec/vp9.c
	libavcodec/wavpack.c
	libavcodec/yop.c

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-27 22:50:18 +02:00
Michael Niedermayer
94d68a41fa Merge commit '7c6eb0a1b7bf1aac7f033a7ec6d8cacc3b5c2615'
* commit '7c6eb0a1b7bf1aac7f033a7ec6d8cacc3b5c2615':
  lavc: AV-prefix all codec flags

Conflicts:
	doc/examples/muxing.c
	ffmpeg.c
	ffmpeg_opt.c
	ffplay.c
	libavcodec/aacdec.c
	libavcodec/aacenc.c
	libavcodec/ac3dec.c
	libavcodec/ac3enc_float.c
	libavcodec/atrac1.c
	libavcodec/atrac3.c
	libavcodec/atrac3plusdec.c
	libavcodec/dcadec.c
	libavcodec/ffv1enc.c
	libavcodec/h264.c
	libavcodec/h264_loopfilter.c
	libavcodec/h264_mb.c
	libavcodec/imc.c
	libavcodec/libmp3lame.c
	libavcodec/libtheoraenc.c
	libavcodec/libtwolame.c
	libavcodec/libvpxenc.c
	libavcodec/libxavs.c
	libavcodec/libxvid.c
	libavcodec/mpeg12dec.c
	libavcodec/mpeg12enc.c
	libavcodec/mpegaudiodec_template.c
	libavcodec/mpegvideo.c
	libavcodec/mpegvideo_enc.c
	libavcodec/mpegvideo_motion.c
	libavcodec/nellymoserdec.c
	libavcodec/nellymoserenc.c
	libavcodec/nvenc.c
	libavcodec/on2avc.c
	libavcodec/options_table.h
	libavcodec/opus_celt.c
	libavcodec/pngenc.c
	libavcodec/ra288.c
	libavcodec/ratecontrol.c
	libavcodec/twinvq.c
	libavcodec/vc1_block.c
	libavcodec/vc1_loopfilter.c
	libavcodec/vc1_mc.c
	libavcodec/vc1dec.c
	libavcodec/vorbisdec.c
	libavcodec/vp3.c
	libavcodec/wma.c
	libavcodec/wmaprodec.c
	libavcodec/x86/hpeldsp_init.c
	libavcodec/x86/me_cmp_init.c

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-27 22:10:35 +02:00
John Högberg
b7040e67ec h264: fix AVDISCARD_NONKEY for some interlaced content
When skip_frame is set to _NONKEY the decoder skips everything except intra
slices, which breaks frames that consist of an intra field together with any
other field type; half the frame becomes garbage. This patch fixes the issue by
letting non-intra slices through if they're part of a keyframe.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2015-07-27 18:11:00 +02:00
Anton Khirnov
db21dde3f7 qsvdec_mpeg2: drop an incorrect comment
It got copypasted from the h264 decoder, but it does not apply to mpeg2.
2015-07-27 18:09:30 +02:00
Vittorio Giovara
aaf937ee35 hap: Add utility functions file
Missing from the push of 3ee217853a.
2015-07-27 16:21:14 +01:00
Tom Butterworth
3ee217853a Support the Hap chunked frame format
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-07-27 16:00:22 +01:00
Tom Butterworth
43dd004747 hap: Move some per-stream setup into decoder init rather than per-frame
This change will reject frames with a texture type which does not match
the stream description.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-07-27 15:53:03 +01:00
Vittorio Giovara
b94ec30428 lavc: Update version and APIchanges
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-07-27 15:26:57 +01:00
Vittorio Giovara
059a934806 lavc: Consistently prefix input buffer defines
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-07-27 15:24:59 +01:00
Vittorio Giovara
def97856de lavc: AV-prefix all codec capabilities
Express bitfields more simply.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-07-27 15:24:58 +01:00
Vittorio Giovara
7c6eb0a1b7 lavc: AV-prefix all codec flags
Convert doxygen to multiline and express bitfields more simply.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-07-27 15:24:58 +01:00
Vittorio Giovara
4b6b1082a7 lavc: Deprecate avctx.me_method
This option is extremely codec specific and only a few codecs employ it.
Move it to codec private options instead: mpegenc family supports only 3
values, xavs and x264 use 5, and xvid has a different metric entirely.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-07-27 15:24:56 +01:00
Vittorio Giovara
03eb557414 wmv2enc: Check memory allocation 2015-07-27 14:44:07 +01:00
Vittorio Giovara
a67b67944a ac3enc_template: Use the correct context field
For audio encoders, delay has no effect, use the appropriate one,
initial_padding (see 2df0c32).
2015-07-27 14:44:07 +01:00
Anton Khirnov
f3bd3810d2 qsvdec_*: add missing CODEC_CAP_DR1 2015-07-27 07:44:34 +02:00
Michael Niedermayer
0b6f092ed3 Merge commit '4b6b1082a73907c7c3de2646c6398bc61320f2c6'
* commit '4b6b1082a73907c7c3de2646c6398bc61320f2c6':
  lavc: Deprecate avctx.me_method

Conflicts:
	doc/encoders.texi
	libavcodec/avcodec.h
	libavcodec/libx264.c
	libavcodec/motion_est.c
	libavcodec/options_table.h
	libavcodec/version.h

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-27 21:03:20 +02:00
Michael Niedermayer
59b009411f Merge commit '03eb55741427c6608f63972c105e565ca0ba4f15'
* commit '03eb55741427c6608f63972c105e565ca0ba4f15':
  wmv2enc: Check memory allocation

Conflicts:
	libavcodec/wmv2enc.c

See: 6e8fe44815
Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-27 20:43:25 +02:00
Michael Niedermayer
af5f707e46 avcodec/v410enc: do not use internal->byte_buffer
it is not optimal when the buffer size is well known at allocation time

This avoids a memcpy()

about 1% faster

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-27 20:03:02 +02:00
Michael Niedermayer
9fe873bec8 avcodec/utils: do not use internal->byte_buffer when little downsizing is expected
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-27 20:03:02 +02:00
Michael Niedermayer
0dbfb5386f avcodec/internal: Deprecate ff_alloc_packet() in favor of ff_alloc_packet2()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-27 19:58:36 +02:00
Michael Niedermayer
e36db49b7b avcodec: Add a min size parameter to ff_alloc_packet2()
This parameter can be used to inform the allocation code about how much
downsizing might occur, and can be used to optimize how to allocate the
packet

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-27 19:57:52 +02:00
Claudio Freire
59216e0525 AAC Encoder: clipping avoidance
Avoid clipping due to quantization noise to produce audible
artifacts, by detecting near-clipping signals and both attenuating
them a little and encoding escape-encoded bands (usually the
loudest) rounding towards zero instead of nearest, which tends to
decrease overall energy and thus clipping.

Currently fate tests measure numerical error so this change makes
tests using asynth (which are near clipping) report higher error
not less, because of window attenuation. Yet, they sound better,
not worse (albeit subtle, other samples aren't subtle at all).
Only measuring psychoacoustically weighted error would make for
a representative test, so that will be left for a future patch.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-27 19:13:48 +02:00
Shivraj Patil
71aede3ced avcodec/mips: MSA (MIPS-SIMD-Arch) optimizations for VP9 bilinear functions
Signed-off-by: Shivraj Patil <shivraj.patil@imgtec.com>
Reviewed-by: "Ronald S. Bultje" <rsbultje@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-27 17:13:24 +02:00
Michael Niedermayer
d12be9ed70 Merge commit 'f3bd3810d274a7f51b5925fc3d2fc33e8043a5d4'
* commit 'f3bd3810d274a7f51b5925fc3d2fc33e8043a5d4':
  qsvdec_*: add missing CODEC_CAP_DR1

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-27 11:50:17 +02:00
Michael Niedermayer
d41dceb14e avcodec/dvbsubdec: Add option to select when to computer clut (always/never/"if needed")
Reviewed-by: Anshul <anshul.ffmpeg@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-27 00:02:48 +02:00
Michael Niedermayer
508c815d4d Merge commit '9b4b96c0dee90d260891ec765b28f6ca15594340'
* commit '9b4b96c0dee90d260891ec765b28f6ca15594340':
  force WINAPI_FAMILY to WINAPI_FAMILY_DESKTOP_APP to be able to use dxva.h

Conflicts:
	libavcodec/dxva2_internal.h

See: c5327df838
Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-26 22:41:18 +02:00
Steve Lhomme
c5327df838 force WINAPI_FAMILY to WINAPI_FAMILY_DESKTOP_APP to use DVXA
The struct definitions in dxva.h, which are necessary in order to
actually use d3d11va, are hidden when WINAPI_FAMILY targets Windows Phone
or WindowsRT.

Building with WINAPI_FAMILY=WINAPI_FAMILY_DESKTOP_APP is disallowed
when targeting ARM. ("Compiling Desktop applications for the ARM
platform is not supported.") So we set _CRT_BUILD_DESKTOP_APP to 0
to tell the runtime not to detect some issues with this mismatching.

The same tweaks to detect if the API is available is done in dxva2_internal.h
when compiling each DXVA2/D3D11VA decoders.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-26 22:02:20 +02:00
Steve Lhomme
9b4b96c0de force WINAPI_FAMILY to WINAPI_FAMILY_DESKTOP_APP to be able to use dxva.h
The struct definitions in dxva.h, which are necessary in order to
actually use d3d11va, are hidden when WINAPI_FAMILY targets Windows Phone
or WindowsRT.

Building with WINAPI_FAMILY=WINAPI_FAMILY_DESKTOP_APP is disallowed
when targeting ARM. ("Compiling Desktop applications for the ARM
platform is not supported.") So we set _CRT_BUILD_DESKTOP_APP to 0
to tell the runtime not to detect some issues with this mismatching.

The same tweaks to detect if the API is available is done in dxva2_internal.h
when compiling each DXVA2/D3D11VA decoders.

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-07-26 20:18:03 +03:00
Niklesh
f21fcf60ec movtextdec.c: Add support for fontsize
Add support for fontsize in style records. The patch uses reset to
directly change back to default style instead of using closing tags,
since we are not handling the default styles right now.

Signed-off-by: Niklesh <niklesh.lalwani@iitb.ac.in>
2015-07-26 09:35:20 -07:00
WereCatf
7106dfd945 avcodec/nvenc: 2-pass mode works even with non-low latency presets now
Github: Closes #140

Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
2015-07-26 17:40:56 +02:00
Michael Niedermayer
e0031ca29a avcodec/avrndec: Fix cropping
This also switches to using a separate AVCodecContext for the inner mjpeg decoder
which is cleaner and avoids fields from being overwritten with wrong values

Fixes Ticket162

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-26 17:18:35 +02:00