Commit graph

275705 commits

Author SHA1 Message Date
Manu Abraham
ba2780c796 [media] DVB: Query DVB frontend delivery capabilities
Currently, for any multi-standard frontend it is assumed that it just
 has a single standard capability. This is fine in some cases, but
 makes things hard when there are incompatible standards in conjuction.
 Eg: DVB-S can be seen as a subset of DVB-S2, but the same doesn't hold
 the same for DSS. This is not specific to any driver as it is, but a
 generic issue. This was handled correctly in the multiproto tree,
 while such functionality is missing from the v5 API update.

 http://www.linuxtv.org/pipermail/vdr/2008-November/018417.html

 Later on a FE_CAN_2G_MODULATION was added as a hack to workaround this
 issue in the v5 API, but that hack is incapable of addressing the
 issue, as it can be used to simply distinguish between DVB-S and
 DVB-S2 alone, or another X vs X2 modulation. If there are more systems,
 then you have a potential issue.

 An application needs to query the device capabilities before requesting
 any operation from the device.

Signed-off-by: Manu Abraham <abraham.manu@gmail.com>
Acked-by: Andreas Oberritter <obi@linuxtv.org>
Acked-by: Oliver Endriss <o.endriss@gmx.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2011-12-12 15:03:32 -02:00
Thomas Meyer
e79c70e6e5 [media] pvrusb2: Use kcalloc instead of kzalloc to allocate array
The advantage of kcalloc is, that will prevent integer overflows which could
result from the multiplication of number of elements and size and it is also
a bit nicer to read.

The semantic patch that makes this change is available
in https://lkml.org/lkml/2011/11/25/107

Signed-off-by: Thomas Meyer <thomas@m3y3r.de>
Acked-By: Mike Isely <isely@pobox.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2011-12-12 14:51:11 -02:00
Mauro Carvalho Chehab
56a8b9f181 [media] tm6000: Fix a warning at tm6000_ir_int_start()
drivers/media/video/tm6000/tm6000-input.c: In function ‘tm6000_ir_int_start’:
drivers/media/video/tm6000/tm6000-input.c:381:3: warning: ‘return’ with no value, in function returning non-void [-Wreturn-type]

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2011-12-11 12:20:49 -02:00
Kamil Debski
a16fa71d6b [media] s5p-g2d: remove two unused variables from the G2D driver
Signed-off-by: Kamil Debski <k.debski@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2011-12-11 12:02:47 -02:00
Haogang Chen
806e23e95f [media] uvcvideo: Fix integer overflow in uvc_ioctl_ctrl_map()
There is a potential integer overflow in uvc_ioctl_ctrl_map(). When a
large xmap->menu_count is passed from the userspace, the subsequent call
to kmalloc() will allocate a buffer smaller than expected.
map->menu_count and map->menu_info would later be used in a loop (e.g.
in uvc_query_v4l2_ctrl), which leads to out-of-bound access.

The patch checks the ioctl argument and returns -EINVAL for zero or too
large values in xmap->menu_count.

Signed-off-by: Haogang Chen <haogangchen@gmail.com>
[laurent.pinchart@ideasonboard.com Prevent excessive memory consumption]
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Cc: stable@kernel.org
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2011-12-11 11:23:54 -02:00
Laurent Pinchart
66847ef013 [media] uvcvideo: Add UVC timestamps support
UVC devices transmit a device timestamp along with video frames. Convert
the timestamp to a host timestamp and use it to fill the V4L2 buffer
timestamp field.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2011-12-11 11:23:30 -02:00
Laurent Pinchart
25738cbd72 [media] uvcvideo: Extract timestamp-related statistics
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2011-12-11 11:22:08 -02:00
Alexey Fisher
7bc5edb00b [media] uvcvideo: Extract video stream statistics
Export the statistics through debugfs.

Signed-off-by: Alexey Fisher <bug-track@fisher-privat.net>
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2011-12-11 11:22:08 -02:00
Alexey Fisher
edbaa39842 [media] uvcvideo: Add debugfs support
Create a debugfs entry per UVC stream. This will be used to export
stream statistics.

Signed-off-by: Alexey Fisher <bug-track@fisher-privat.net>
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
[mchehab@redhat.com: add incude <linux/module.h> to avoid compilation breakage]
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2011-12-11 11:22:07 -02:00
Laurent Pinchart
c4d99f89e2 [media] uvcvideo: Ignore GET_RES error for XU controls
GET_RES request support is mandatory for extension units, but some
cameras still choke on it (one example is the Logitech QuickCam PTZ that
returns a single byte for the PTZ relative control instead of four).

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2011-12-11 11:15:01 -02:00
Laurent Pinchart
3afedb9585 [media] uvcvideo: Don't skip erroneous payloads
Instead of skipping the payload completely, which would make the
resulting image corrupted anyway, store the payload normally and mark
the buffer as erroneous. If the no_drop module parameter is set to 1 the
buffer will then be passed to userspace, and tt will then be up to the
application to decide what to do with the buffer.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2011-12-11 11:14:31 -02:00
Laurent Pinchart
0c6a3b268e [media] uvcvideo: Make uvc_commit_video() static
The function is not used outside of its compilation unit. Make it
static.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2011-12-11 11:14:04 -02:00
Laurent Pinchart
4eb2697e0a [media] uvcvideo: Add support for LogiLink Wireless Webcam
The camera requires the PROBE_MINMAX quirk. Add a corresponding entry in
the device IDs list.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2011-12-11 11:13:52 -02:00
Laurent Pinchart
b10c55d808 [media] uvcvideo: Remove duplicate definitions of UVC_STREAM_* macros
The macros are defined in both drivers/media/video/uvc/uvc_video.c and
include/linux/usb/video.h. Remove definitions from the former.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2011-12-11 11:13:40 -02:00
Laurent Pinchart
24c3aae0c7 [media] uvcvideo: Handle uvc_init_video() failure in uvc_video_enable()
Turn streaming off (by selecting alternate setting 0) and disable the
video buffers queue in the uvc_video_enable() error path.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2011-12-11 11:13:29 -02:00
Laurent Pinchart
6998b6fb4b [media] uvcvideo: Use videobuf2-vmalloc
Replace the current video buffers queue implementation with
videobuf2-vmalloc.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2011-12-11 11:13:06 -02:00
Laurent Pinchart
3d95e93257 [media] uvcvideo: Move fields from uvc_buffer::buf to uvc_buffer
Add mem, length and bytesused fields to the uvc_buffer structure and use
them instead of accessing the uvc_buffer::buf m.offset, length and
bytesused fields directly. This prepares the driver to the conversion to
videobuf2.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2011-12-11 11:12:05 -02:00
Thierry Reding
4be9c8fb58 [media] tm6000: Fix check for interrupt endpoint
Checking for &dev->int_in is useless because it returns the address of
the embedded struct tm6000_endpoint, which will always be positive and
therefore true.

Signed-off-by: Thierry Reding <thierry.reding@avionic-design.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2011-12-11 10:47:37 -02:00
Thierry Reding
875f0e3da1 [media] tm6000: Fix bad indentation
Function parameters on subsequent lines should never be aligned with the
function name but rather be indented.

Signed-off-by: Thierry Reding <thierry.reding@avionic-design.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2011-12-11 10:47:24 -02:00
Thierry Reding
fcd44b9efb [media] tm6000: Fix fast USB access quirk
The original patch used the fast USB quirk to enable fast access to
registers in the tm6000_read_write_usb(). The applied patch moved the
check to the tm6000_reset(), probably due to some merge conflicts.

Signed-off-by: Thierry Reding <thierry.reding@avionic-design.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2011-12-11 10:46:58 -02:00
Guennadi Liakhovetski
1fc2b5f7fb [media] V4L: cosmetic clean up
Improve the use of the WARN_ON() macro and use a local variable, instead
of reduntantly dereferencing a pointer in v4l2-dev.c

Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2011-12-11 09:47:21 -02:00
Jean-François Moine
885f3cad98 [media] gspca - zc3xx: Bad initialization of zc305/gc0303
Signed-off-by: Jean-François Moine <moinejf@free.fr>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2011-12-11 09:27:36 -02:00
Jean-François Moine
b267b73d5a [media] gspca - topro: Lower the frame rate in 640x480 for the tp6800
The topro webcams don't support 30fps in 640x480 mode.

Signed-off-by: Jean-François Moine <moinejf@free.fr>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2011-12-11 09:27:08 -02:00
Jean-François Moine
41f09322e9 [media] gspca - sonixj: Change color control for sensor po2030n
Adjustment of the colors by the po2030n is finer than by the bridge controls.

Signed-off-by: Jean-François Moine <moinejf@free.fr>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2011-12-11 09:26:46 -02:00
Jean-François Moine
b4b0107137 [media] gspca - sonixj: Bad sensor mode at start time
The 'open-drain' mode was not reset when starting the webcams.
This problem was introduced by commit 0e4d413af1 and
its exact effects are unknown.

Signed-off-by: Jean-François Moine <moinejf@free.fr>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2011-12-11 09:26:27 -02:00
Jean-François Moine
6121ca572f [media] gspca: Remove the useless variable 'nbalt'
As the alternate settings are now sorted in gspca main,
the variable 'nbalt' is no more useful.

Signed-off-by: Jean-François Moine <moinejf@free.fr>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2011-12-11 09:26:11 -02:00
Jean-François Moine
a67648797a [media] gspca: Remove the useless variable 'reverse_alts'
The alternate settings are now sorted in gspca main, so the flag
'reverse_alts' is no more useful.

Signed-off-by: Jean-François Moine <moinejf@free.fr>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2011-12-11 09:25:27 -02:00
Malcolm Priestley
50815707ee [media] it913x: multiple devices on system. Copy ite_config to priv area
If there are two or more different it913x devices on the system they share the same
ite_config and over write its settings.

To over come this, the ite_config is copied to the priv area.

Signed-off-by: Malcolm Priestley <tvboxspy@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2011-12-11 09:24:38 -02:00
Sylwester Nawrocki
c6401af669 [media] Remove unneeded comments from the media API DocBook files
This removes comment tags intended for emacs configuration from
67 files in the Media API DocBook. Such comments are not really
helpful and violate  the coding style rules.

Signed-off-by: Sylwester Nawrocki <snjw23@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2011-12-11 09:16:53 -02:00
Malcolm Priestley
15157c506d [media] it913x add retry to USB bulk endpoints and IO
This a bus repeater for it913x devices. Commands usually fail because of other
activity on the USB bus.

Bulk failures that report -ETIMEDOUT or -EBUSY are repeated.

Enpoints that return actlen not equal len request -EAGAIN.

The retry is set at 10.

Signed-off-by: Malcolm Priestley <tvboxspy@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2011-12-11 09:12:21 -02:00
Malcolm Priestley
7330f7c157 [media] dvb_get_firmware: updates for it913x
Changes to extract firmware for it913x devices

./get_dvb_firmware it9135
extracts
dvb-usb-it9135-01.fw
dvb-usb-it9135-02.fw

./get_dvb_firmware it9137
extracts
dvb-usb-it9137-01.fw

Signed-off-by: Malcolm Priestley <tvboxspy@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2011-12-11 09:00:48 -02:00
Malcolm Priestley
5e642c06b5 [media] it9135: add support for IT9135 9005 devices
Support add for IT9135 9005 devices

With this patch IT9135 devices now move to using
dvb-usb-it9135-01.fw firmware
IT9137 remain on previous firmware.

IT9135 devices seem more stable on this firmware.

If the user wishes to remain on it9137 firmware they can change
back using firmware=1 module option.

Signed-off-by: Malcolm Priestley <tvboxspy@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2011-12-11 08:55:29 -02:00
Malcolm Priestley
b699029148 [media] dvb-usb/it913x: multi firmware loader
Multi firmware loader
 This uses scatter write firmware headers
 The firmware must start with 03 XX 00
 and be the extract firmware length.

 I have tried all available firmwares with this loader.

Signed-off-by: Malcolm Priestley <tvboxspy@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2011-12-11 08:55:27 -02:00
Malcolm Priestley
c725ff6973 [media] it913x: support for NEC extended keys
Add support for NEC extended keys.

The default remote has now changed to RC_MAP_MSI_DIGIVOX_III

Signed-off-by: Malcolm Priestley <tvboxspy@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2011-12-11 08:14:52 -02:00
Malcolm Priestley
990f49af3f [media] it913x: support for different tuner regs
There appears to be differences in the tuner registers
on earlier IT9135 devices.

Using the current IT9137 settings cause corruptions on
some channels

This patch is in preparation for multi firmware loading and
current unsupported types.

Signed-off-by: Malcolm Priestley <tvboxspy@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2011-12-11 08:13:27 -02:00
Dan Carpenter
773ddbd228 [media] saa7164: fix endian conversion in saa7164_bus_set()
The msg->command field is 32 bits, and we should fill it with a call
to cpu_to_le32().  The current code is broke on big endian systems.
On little endian systems it truncates the 32 bit value to 16 bits
which probably still works fine.

Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Cc: Steven Toth <stoth@kernellabs.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2011-12-11 08:07:41 -02:00
Malcolm Priestley
ed942c5074 [media] it913x-fe: more user and debugging info
More debugging and user info from it913x-fe.

Signed-off-by: Malcolm Priestley <tvboxspy@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2011-12-11 08:03:29 -02:00
Malcolm Priestley
9c1133c7c8 [media] it913x: endpoint size changes
Previously endpoint had been aligned to packet size (128)

Some early it9135 devices appear to have problems with this.

This patch now aligns with mpeg TS size (188)

With the pid filter off max size is increased to the maxmium
size (348 * 188)

Signed-off-by: Malcolm Priestley <tvboxspy@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2011-12-11 07:58:25 -02:00
Mauro Carvalho Chehab
48763e2c6e [media] drxk: Switch the delivery system on FE_SET_PROPERTY
The DRX-K doesn't change the delivery system at set_properties,
but do it at frontend init. This causes problems on programs like
w_scan that, by default, opens both frontends.

Instead, explicitly set the format when set_parameters callback is
called.

Tested-by: Eddi De Pieri <eddi@depieri.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2011-12-09 20:49:05 -02:00
Mauro Carvalho Chehab
0433cd28f3 [media] xc5000: Add support for 7MHz bandwidth for DVB-C/DVB-T
While xc5000 supports 7MHz bandwidth, the driver were lacking the code
implementing this feature, causing tuning issues with VHF chanels
used in Countries like Italy.

After this patch:

>>> tune to: 177500000:INVERSION_AUTO:BANDWIDTH_7_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_32:HIERARCHY_NONE
0x0000 0x0d49: pmt_pid 0x0102 RAI -- Rai 1 (running)
0x0000 0x0d4a: pmt_pid 0x0101 RAI -- Rai 2 (running)
0x0000 0x0d4b: pmt_pid 0x0100 RAI -- Rai 3 TGR Veneto (running)
0x0000 0x0d53: pmt_pid 0x0118 RAI -- Rai News (running)
0x0000 0x0d54: pmt_pid 0x0119 Rai -- Rai 3 TGR Emilia Romagna (running)
0x0000 0x0d4c: pmt_pid 0x0103 Rai -- Rai Radio1 (running)
0x0000 0x0d4d: pmt_pid 0x0104 Rai -- Rai Radio2 (running)
0x0000 0x0d4e: pmt_pid 0x0105 Rai -- Rai Radio3 (running)
Network Name 'Rai'

Tested-by: Eddi De Pieri <eddi@depieri.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2011-12-09 08:01:01 -02:00
Mauro Carvalho Chehab
78bd3dc8da [media] xc5000,tda18271c2dd: Fix bandwidth calculus
While here, add a debug message, to easy detecting bugs on it.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2011-12-08 17:04:38 -02:00
Mauro Carvalho Chehab
2bf936290b [media] xc5000: Remove the global mutex lock at xc5000 firmware init
As reported by Devin Heitmueller <dheitmueller@kernellabs.com>:

> It seems like a change such as this could significantly change the
> timing of tuner initialization if you have multiple xc5000 based
> products that might have a slow i2c bus.  Was that intentional?

After discussed with Eddi de Pierri <eddi@depieri.net>, it was pointed that
the change was not intentional, and it was just a trial while developing
the patches that add support for HVR-930C.

So, remove this hack.

Reported-by: Devin Heitmueller <dheitmueller@kernellabs.com>
Acked by: Eddi de Pierri <eddi@depieri.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2011-12-07 07:59:14 -02:00
Mauro Carvalho Chehab
2a887d2770 [media] tm6000: fix OOPS at tm6000_ir_int_stop() and tm6000_ir_int_start()
[ 3755.608233] BUG: unable to handle kernel NULL pointer dereference at 0000000000000008
[ 3755.616360] IP: [<ffffffffa03b80b7>] tm6000_ir_int_stop+0x10/0x1b [tm6000]

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2011-11-30 16:49:45 -02:00
Mauro Carvalho Chehab
6740a93288 [media] tm6000: automatically load alsa and dvb modules
All devices should support alsa module. Devices with DVB will
auto-load the dvb module. This way, tm6000-based devices should
now have hot plugin.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2011-11-30 16:49:37 -02:00
Mauro Carvalho Chehab
9f711a80c5 [media] tm6000: Use a 16 scancode bitmask for IR
This should allow using 24 or 32 bits NEC IR decoding tables with
those devices.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2011-11-30 14:58:20 -02:00
Mauro Carvalho Chehab
8afc539c4a [media] tm6000: Allow auto-detecting tm6000 devices
Now that the tm6000 driver is on a good shape, we can enable
device autodetection, based on the USB ID.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2011-11-30 14:54:19 -02:00
Mauro Carvalho Chehab
4a83b01150 [media] tm6000: rewrite IR support
The IR support were broken on my tests with HVR-900H. Also,
there were several issues on the current implementation.
This patch is a major rewrite of the IR support for this
	- Improve debug messages;
	- Don't do polling for interrrupt based IR;
	- Add proper support for RC-5 protocol;
	- Always provide 16 bits for NEC and RC-5;
	- Fix polling code;
	- Split polling functions from URB Interrupt ones;
	- Don't hardcode the XTAL reference for tm6000 IR;
	- If a URB submit fails, retries after 100ms;
	- etc.

Tested on Hauppauge HVR-900H, with RC-5 and NEC remotes.

Issues on IR handling, on this device:
	- Repeat events aren't detected (neither on NEC or RC-5);
	- NEC codes are always provided with 16 bits.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2011-11-30 14:54:11 -02:00
Mauro Carvalho Chehab
f9fa905bde [media] tm6000: add IR support for HVR-900H
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2011-11-30 14:43:45 -02:00
Mauro Carvalho Chehab
884b0515dc [media] tuner-xc2028: Better report signal strength
Fix lock bit to better indicate signal strength, from 4096 to
65535.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2011-11-30 14:43:36 -02:00
Mauro Carvalho Chehab
15a295ec31 [media] tm6000: Fix IR register names
IR registers 0xd9 to 0xdf were badly named, making harder to
check what's the register accessed at the RC code. Fix the
name convention.

No functional changes on this patch.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2011-11-30 14:43:06 -02:00