Commit graph

12413 commits

Author SHA1 Message Date
Ronald S. Bultje
294f780cff sys/oss/gstosselement.c: Kick the hell out of gcc for not warning me about a symbol conflict.
Original commit message from CVS:
* sys/oss/gstosselement.c: (gst_osselement_class_probe_devices):
Kick the hell out of gcc for not warning me about a symbol conflict.
2005-02-22 15:23:05 +00:00
Tim-Philipp Müller
0c606747f1 ext/gdk_pixbuf/pixbufscale.c: Don't leak caps string (fixes #168134)
Original commit message from CVS:
* ext/gdk_pixbuf/pixbufscale.c: (gst_pixbufscale_link):
Don't leak caps string (fixes #168134)

* ext/jpeg/gstjpegenc.c: (gst_jpegenc_class_init),
(gst_jpegenc_init), (gst_jpegenc_finalize),
(gst_jpegenc_change_state):
Don't leak line buffers and context struct (fixes #168133).
2005-02-22 12:04:16 +00:00
Tim-Philipp Müller
c76c257f4a Since dirac 0.5.0 the framerate in dirac is expressed as a rational number. Fix build and up requirement to 0.5.0, an...
Original commit message from CVS:
Since dirac 0.5.0 the framerate in dirac is expressed as a rational number. Fix build and up requirement to 0.5.0, and also pass parameters to gst_diracdec_link in the right order. (fixes #167959)
2005-02-21 23:41:23 +00:00
Maciej Katafiasz
fab20b9337 Whoops.
Original commit message from CVS:
Whoops.
2005-02-21 19:01:58 +00:00
Maciej Katafiasz
f8eaf56320 Fix playback of certain invalid muxed streams. Partial fix for #149158
Original commit message from CVS:
Fix playback of certain invalid muxed streams. Partial fix for #149158
2005-02-21 18:58:46 +00:00
Jan Schmidt
66bd030823 gst/dvdlpcmdec/gstdvdlpcmdec.c: Make sure we only write to writable buffers
Original commit message from CVS:
* gst/dvdlpcmdec/gstdvdlpcmdec.c: (gst_dvdlpcmdec_chain):
Make sure we only write to writable buffers
2005-02-20 15:26:04 +00:00
Tim-Philipp Müller
7448ede81d gst-libs/gst/riff/riff-media.c: Do actually fix invalid RIFF fmt header values for alaw and mulaw audio instead of ju...
Original commit message from CVS:
* gst-libs/gst/riff/riff-media.c:
(gst_riff_create_audio_caps_with_data):
Do actually fix invalid RIFF fmt header values for alaw
and mulaw audio instead of just saying so.

* gst/wavparse/gstwavparse.c: (gst_wavparse_fmt):
Give gst_riff_create_audio_caps_with_data() a chance to
fix up broken format header fields before extracting any
parameters from the header. (fixes #167633)
2005-02-20 12:49:19 +00:00
Tim-Philipp Müller
60dd9fbc4d Don't leak othercaps in link function (fixes #167878)
Original commit message from CVS:
Don't leak othercaps in link function (fixes #167878)
2005-02-19 20:01:36 +00:00
Arwed v. Merkatz
e3d01e9d19 support libvisual 0.2.0
Original commit message from CVS:
support libvisual 0.2.0
2005-02-19 17:08:27 +00:00
Tim-Philipp Müller
db93fd53ad Fix rowstrides
Original commit message from CVS:
Fix rowstrides
2005-02-18 10:38:34 +00:00
Gergely Nagy
ae541a6e16 gst/avi/gstavidemux.c: Declare variables at beginning of block and make gcc-2.95 happy
Original commit message from CVS:

* gst/avi/gstavidemux.c: (gst_avi_demux_invert):
Declare variables at beginning of block and make gcc-2.95 happy
(fixes # 167482, patch by Gergely Nagy).

* gst/tcp/gsttcpclientsrc.c:
* gst/tcp/gsttcpclientsrc.h:
Move some includes into the header, so that struct sockaddr_in is
defined when it should be defined on FreeBSD as well (fixes
#167483).

* gst/tcp/gsttcpserversrc.c: (gst_tcpserversrc_init_receive):
Don't pass uninitialised values to setsockopt() here either.
2005-02-17 19:21:42 +00:00
Tim-Philipp Müller
2ec02a4399 Do not pass uninitialised values to setsockopt(). (fixes #167704)
Original commit message from CVS:
Do not pass uninitialised values to setsockopt(). (fixes #167704)
2005-02-17 17:56:38 +00:00
Ronald S. Bultje
5ee26e2b8b gst/playback/gstplaybin.c: Invert bin_add/link order to workaround deadlock in opt.
Original commit message from CVS:
* gst/playback/gstplaybin.c: (add_sink):
Invert bin_add/link order to workaround deadlock in opt.
2005-02-16 13:33:12 +00:00
Ronald S. Bultje
f5827f801d gst/modplug/gstmodplug.cc: Add missing break causing position queries to fail.
Original commit message from CVS:
* gst/modplug/gstmodplug.cc:
Add missing break causing position queries to fail.
2005-02-15 16:25:48 +00:00
Ronald S. Bultje
12d09ef327 ext/ogg/gstoggdemux.c: Granpos can apparently be -1, which screws up calculations...
Original commit message from CVS:
* ext/ogg/gstoggdemux.c: (gst_ogg_pad_populate):
Granpos can apparently be -1, which screws up calculations...
2005-02-15 15:58:14 +00:00
Jan Schmidt
eac54687f5 sys/: Use a mutex protected list to marshal navigation events into the stream thread from whichever thread sends them.
Original commit message from CVS:
* sys/ximage/ximagesink.c: (gst_ximagesink_chain),
(gst_ximagesink_send_pending_navigation),
(gst_ximagesink_navigation_send_event), (gst_ximagesink_finalize),
(gst_ximagesink_init):
* sys/ximage/ximagesink.h:
* sys/xvimage/xvimagesink.c: (gst_xvimagesink_chain),
(gst_xvimagesink_send_pending_navigation),
(gst_xvimagesink_navigation_send_event),
(gst_xvimagesink_finalize), (gst_xvimagesink_init):
* sys/xvimage/xvimagesink.h:
Use a mutex protected list to marshal navigation
events into the stream thread from whichever thread
sends them.
2005-02-15 14:12:11 +00:00
Tim-Philipp Müller
e4c561d9ce Add query function to GstSpeed, so that the stream length and current position get adjusted when queried (note that c...
Original commit message from CVS:
Add query function to GstSpeed, so that the stream length and current position get adjusted when queried (note that current position queries may still be wrong if the audio sink returns values based on buffer timestamps instead of passing on the query
2005-02-15 11:05:34 +00:00
Benjamin Otte
27520b1e53 gst/audioconvert/gstaudioconvert.c: create channel conversion matrix when linking
Original commit message from CVS:
* gst/audioconvert/gstaudioconvert.c: (gst_audio_convert_link),
(gst_audio_convert_channels):
create channel conversion matrix when linking
* gst/audioconvert/.cvsignore:
* gst/audioconvert/Makefile.am:
* gst/audioconvert/channelmixtest.c: (main):
add (ugly) test that ensures stereo <=> mono conversion works
correctly
2005-02-13 17:39:22 +00:00
Benjamin Otte
2c2205e518 gst/audioconvert/gstchannelmix.h: include missing header file
Original commit message from CVS:
* gst/audioconvert/gstchannelmix.h:
include missing header file
* gst/audioconvert/gstchannelmix.c:
(gst_audio_convert_fill_compatible):
use same sign for both channels when converting to/from compatible
channel. Previously used different signs made the signals cancel
each other out and appear like silence. (fixes #167269)
2005-02-13 16:10:15 +00:00
Tim-Philipp Müller
1035891ecd Convert to and from YV12 (fixes #156379)
Original commit message from CVS:
Convert to and from YV12 (fixes #156379)
2005-02-12 22:28:58 +00:00
Julien Moutte
3d4ffeb6a2 sys/ximage/ximagesink.c: Protect interface methods from chain and negotiation and vice versa (Fixes #166142).
Original commit message from CVS:
2005-02-12  Julien MOUTTE  <julien@moutte.net>

* sys/ximage/ximagesink.c: (gst_ximagesink_xwindow_new),
(gst_ximagesink_sink_link), (gst_ximagesink_change_state),
(gst_ximagesink_chain), (gst_ximagesink_set_xwindow_id),
(gst_ximagesink_expose), (gst_ximagesink_set_property),
(gst_ximagesink_finalize), (gst_ximagesink_init): Protect interface
methods from chain and negotiation and vice versa (Fixes #166142).
* sys/ximage/ximagesink.h: Add stream_lock.
* sys/xvimage/xvimagesink.c: (gst_xvimagesink_sink_link),
(gst_xvimagesink_chain), (gst_xvimagesink_buffer_free),
(gst_xvimagesink_buffer_alloc), (gst_xvimagesink_set_xwindow_id),
(gst_xvimagesink_expose): Check for xcontext before trying to link.
2005-02-12 18:41:48 +00:00
Tim-Philipp Müller
593c2a8f2d Don't send 'Hey! You gave me a NULL pointer yo naughty person' as error message when we can't open the DVD device; se...
Original commit message from CVS:
Don't send 'Hey! You gave me a NULL pointer yo naughty person' as error message when we can't open the DVD device; send something more useful instead (fixes #167117)
2005-02-12 17:37:37 +00:00
Julien Moutte
d9d764c0f3 sys/xvimage/xvimagesink.c: Protect interface methods from chain and negotiation and vice versa (Fixes #166142).
Original commit message from CVS:
2005-02-11  Julien MOUTTE  <julien@moutte.net>

* sys/xvimage/xvimagesink.c: (gst_xvimagesink_xvimage_put),
(gst_xvimagesink_sink_link), (gst_xvimagesink_change_state),
(gst_xvimagesink_chain), (gst_xvimagesink_buffer_free),
(gst_xvimagesink_buffer_alloc), (gst_xvimagesink_set_xwindow_id),
(gst_xvimagesink_expose), (gst_xvimagesink_set_property),
(gst_xvimagesink_finalize), (gst_xvimagesink_init): Protect interface
methods from chain and negotiation and vice versa (Fixes #166142).
Fix a possible bug of images in the buffer pool being discarded because
we are looking at the wrong geometry.
* sys/xvimage/xvimagesink.h: Add stream_lock.
2005-02-11 22:49:23 +00:00
David Schleef
b2717905eb ext/mpeg2dec/gstmpeg2dec.c: Change uint to unsigned int. (fixes #167128)
Original commit message from CVS:
* ext/mpeg2dec/gstmpeg2dec.c: (crop_buffer): Change uint to
unsigned int. (fixes #167128)
2005-02-11 22:25:33 +00:00
David Schleef
d40b9d8409 gst/librfb/Makefile.am: Testing stuff before committing is for wimps... and people with fast machines. Fix stupid mi...
Original commit message from CVS:
* gst/librfb/Makefile.am: Testing stuff before committing is
for wimps... and people with fast machines.  Fix stupid
mistake.
2005-02-11 22:16:02 +00:00
David Schleef
01c2c8923f configure.ac: Pull in librfb from my CVS tree, because it is too small and annoying to be separate. Move rfbsrc plug...
Original commit message from CVS:
* configure.ac: Pull in librfb from my CVS tree, because it is
too small and annoying to be separate.  Move rfbsrc plugin
to gst/.
* ext/Makefile.am:
* ext/librfb/Makefile.am:
* ext/librfb/gstrfbsrc.c:
* gst/librfb/Makefile.am:
* gst/librfb/gstrfbsrc.c:
* gst/librfb/rfb.c:
* gst/librfb/rfb.h:
* gst/librfb/rfbbuffer.c:
* gst/librfb/rfbbuffer.h:
* gst/librfb/rfbbytestream.c:
* gst/librfb/rfbbytestream.h:
* gst/librfb/rfbcontext.h:
* gst/librfb/rfbdecoder.c:
* gst/librfb/rfbdecoder.h:
* gst/librfb/rfbutil.h:
2005-02-11 22:01:19 +00:00
Tim-Philipp Müller
6acf284310 and make it handle more than one channel.
Original commit message from CVS:
Fix speed element and make it chain-based (fixes #156467), and make it handle more than one channel.
2005-02-10 15:06:12 +00:00
Jan Schmidt
074f554cd3 ext/dts/gstdtsdec.*: Don't clobber the stack constructing the channels array.
Original commit message from CVS:
* ext/dts/gstdtsdec.c: (gst_dtsdec_init), (gst_dtsdec_channels),
(gst_dtsdec_handle_event), (gst_dtsdec_handle_frame),
(gst_dtsdec_chain), (gst_dtsdec_change_state):
* ext/dts/gstdtsdec.h:
Don't clobber the stack constructing the channels array.
Make the element chain-based. DTS tracks can now be played.
2005-02-10 06:46:14 +00:00
Tim-Philipp Müller
81e9c23358 Add G_BEGIN_DECLS and G_END_DECLS around headers where missing, so that they work when included from C++ code
Original commit message from CVS:
Add G_BEGIN_DECLS and G_END_DECLS around headers where missing, so that they work when included from C++ code
2005-02-09 22:31:04 +00:00
David Schleef
9e291801e4 testsuite/gst-lint: Check for non-statically scoped parent_class variables. This won't be a problem once plugins are...
Original commit message from CVS:
* testsuite/gst-lint: Check for non-statically scoped
parent_class variables.  This won't be a problem once
plugins are loaded with RTLD_LOCAL.
2005-02-09 20:50:35 +00:00
Ronald S. Bultje
09d71ea0e5 ext/mplex/gstmplexibitstream.cc: gcc madness.
Original commit message from CVS:
* ext/mplex/gstmplexibitstream.cc:
gcc madness.
2005-02-09 14:27:08 +00:00
Ronald S. Bultje
2d3bd9471a Die, thou faulty symbol pollutors (non-static parent_class).
Original commit message from CVS:
* ext/ogg/gstogmparse.c:
* gst/debug/gstnavigationtest.c:
Die, thou faulty symbol pollutors (non-static parent_class).
2005-02-09 14:19:33 +00:00
Ronald S. Bultje
499a645766 ext/mplex/gstmplexibitstream.cc: Fix event handling (#165525).
Original commit message from CVS:
* ext/mplex/gstmplexibitstream.cc:
Fix event handling (#165525).
2005-02-08 18:51:24 +00:00
Ronald S. Bultje
8e9fce6095 Add missing endianness to template (fixes #165509).
Original commit message from CVS:
* ext/mikmod/gstmikmod.c:
* gst/modplug/gstmodplug.cc:
Add missing endianness to template (fixes #165509).
2005-02-08 15:03:41 +00:00
Ronald S. Bultje
b3f1498579 gst/asfdemux/gstasfdemux.c: Fix wrong order of reading of optional bytes (#165290).
Original commit message from CVS:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_handle_data):
Fix wrong order of reading of optional bytes (#165290).
2005-02-08 13:38:11 +00:00
Ronald S. Bultje
b1699021f2 ext/alsa/gstalsasink.c: Implement FILLER event awareness.
Original commit message from CVS:
* ext/alsa/gstalsasink.c: (gst_alsa_sink_check_event):
Implement FILLER event awareness.
2005-02-08 13:06:40 +00:00
Ronald S. Bultje
d8c9dbb869 ext/cdparanoia/gstcdparanoia.c: Fix track calculations (#166208).
Original commit message from CVS:
* ext/cdparanoia/gstcdparanoia.c: (cdparanoia_convert):
Fix track calculations (#166208).
2005-02-08 11:28:53 +00:00
Ronald S. Bultje
840c55ebd1 ext/libpng/: Fix byte-order, use proper fixed caps. Fixes #164197.
Original commit message from CVS:
Reviewed by:  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>
* ext/libpng/gstpngdec.c: (gst_pngdec_init), (gst_pngdec_chain):
* ext/libpng/gstpngenc.c:
Fix byte-order, use proper fixed caps. Fixes #164197.
2005-02-08 11:11:21 +00:00
Jan Schmidt
5ab3df2846 configure.ac: Add dvdlpcmdec
Original commit message from CVS:

* configure.ac:
Add dvdlpcmdec

* ext/mpeg2dec/gstmpeg2dec.c: (gst_mpeg2dec_reset),
(free_all_buffers), (gst_mpeg2dec_alloc_buffer):
Don't push buffers if the src pad isn't negotiated yet.

* gst/audioconvert/gstaudioconvert.c:
(gst_audio_convert_buffer_to_default_format),
(gst_audio_convert_buffer_from_default_format):
Add support for 24-bit width.

* gst/dvdlpcmdec/.cvsignore:
* gst/dvdlpcmdec/Makefile.am:
* gst/dvdlpcmdec/gstdvdlpcmdec.c: (gst_dvdlpcmdec_get_type),
(gst_dvdlpcmdec_base_init), (gst_dvdlpcmdec_class_init),
(gst_dvdlpcm_reset), (gst_dvdlpcmdec_init), (gst_dvdlpcmdec_link),
(gst_dvdlpcmdec_chain), (gst_dvdlpcmdec_change_state),
(plugin_init):
* gst/dvdlpcmdec/gstdvdlpcmdec.h:
New decoder for rearranging DVD LPCM into our audio/x-raw-int
format. Needs support for the channels maps if someone can find
a DVD LPCM track with > 2 channels.

* gst/mpegstream/gstdvddemux.c: (gst_dvd_demux_handle_dvd_event),
(gst_dvd_demux_send_discont), (gst_dvd_demux_handle_discont),
(gst_dvd_demux_get_audio_stream), (gst_dvd_demux_process_private):
* gst/mpegstream/gstdvddemux.h:
* gst/mpegstream/gstmpegdemux.c: (gst_mpeg_demux_send_discont),
(gst_mpeg_demux_new_output_pad), (gst_mpeg_demux_init_stream),
(gst_mpeg_demux_send_subbuffer), (gst_mpeg_demux_handle_src_query):
* gst/mpegstream/gstmpegdemux.h:
* gst/mpegstream/gstmpegparse.c: (gst_mpeg_parse_reset),
(gst_mpeg_parse_parse_packhead), (gst_mpeg_parse_loop),
(gst_mpeg_parse_get_rate), (gst_mpeg_parse_convert_src),
(gst_mpeg_parse_handle_src_query),
(gst_mpeg_parse_handle_src_event):
Use audio/x-dvd-lpcm for LPCM output.
Add DTS output.
2005-02-08 11:08:15 +00:00
Ronald S. Bultje
883da03b7c gst/alpha/gstalphacolor.c: Add BGRA handling (#165736).
Original commit message from CVS:
Reviewed by:  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>
* gst/alpha/gstalphacolor.c: (gst_alpha_color_sink_link),
(transform_rgb), (transform_bgr), (gst_alpha_color_chain):
Add BGRA handling (#165736).
2005-02-08 11:02:58 +00:00
Ronald S. Bultje
e23f9bb4e9 gst/law/: Fix caps memleaks (#166600).
Original commit message from CVS:
Reviewed by:  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>
* gst/law/alaw-decode.c: (alawdec_link):
* gst/law/alaw-encode.c: (alawenc_link):
* gst/law/mulaw-decode.c: (mulawdec_link):
* gst/law/mulaw-encode.c: (mulawenc_link):
Fix caps memleaks (#166600).
2005-02-08 10:58:13 +00:00
Tim-Philipp Müller
b2a741ec31 Include "_stdint.h" instead of <stdint.h>. Fixes build on systems that do not have stdint.h, like Solaris 9 (fixes #1...
Original commit message from CVS:
Include "_stdint.h" instead of <stdint.h>. Fixes build on systems that do not have stdint.h, like Solaris 9 (fixes #166631).
2005-02-08 10:37:43 +00:00
Ronald S. Bultje
3cd3a4269c sys/: Clear window on PAUSED->READY instead of READY->PAUSED. Stop
Original commit message from CVS:
* sys/ximage/ximagesink.c: (gst_ximagesink_change_state):
* sys/xvimage/xvimagesink.c: (gst_xvimagesink_xwindow_clear),
(gst_xvimagesink_change_state):
Clear window on PAUSED->READY instead of READY->PAUSED. Stop
Xv video (and thereby regenerate Xv colourkey) in clear() so
that PLAY -> READY -> PLAY works (fixes #162504).
2005-02-05 23:01:59 +00:00
Ronald S. Bultje
37541541d2 sys/v4l/gstv4lmjpegsrc.c: Switch to list instead of range, since MJPEG-devices really just support decimations, not a...
Original commit message from CVS:
* sys/v4l/gstv4lmjpegsrc.c: (gst_v4lmjpegsrc_getcaps):
Switch to list instead of range, since MJPEG-devices really just
support decimations, not any size.
2005-02-05 16:18:15 +00:00
Jan Schmidt
d255c23470 ext/mpeg2dec/gstmpeg2dec.*: The libmpeg2 user-allocated buffer management is awkward, to say the least. Hopefully thi...
Original commit message from CVS:
* ext/mpeg2dec/gstmpeg2dec.c: (gst_mpeg2dec_open_decoder),
(gst_mpeg2dec_reset), (free_all_buffers),
(gst_mpeg2dec_alloc_buffer), (handle_sequence):
* ext/mpeg2dec/gstmpeg2dec.h:
The libmpeg2 user-allocated buffer management is awkward,
to say the least. Hopefully this fixes things.
2005-02-05 07:36:01 +00:00
Andy Wingo
00e24dc560 gst/audioconvert/bufferframesconvert.c
Original commit message from CVS:
2005-02-04  Andy Wingo  <wingo@pobox.com>

* gst/audioconvert/bufferframesconvert.c
(buffer_frames_convert_fixate): New function, fixates to 256
frames per buffer by default. (Much better than 1.)
(buffer_frames_convert_init): Set the fixate function for both src
and sink pad.
(buffer_frames_convert_link): After success setting nonfixed caps,
get the negotiated caps so we can know how many buffer-frames it
will be. No idea how this worked at all before.
2005-02-04 15:40:37 +00:00
Jan Schmidt
7f2e88753b ext/mpeg2dec/gstmpeg2dec.*: Rearrange buffer tracking and refcounting and refactor a little for readability.
Original commit message from CVS:
* ext/mpeg2dec/gstmpeg2dec.c: (gst_mpeg2dec_init),
(gst_mpeg2dec_close_decoder), (put_buffer), (check_buffer),
(free_buffer), (free_all_buffers), (gst_mpeg2dec_alloc_buffer),
(handle_sequence), (handle_picture):
* ext/mpeg2dec/gstmpeg2dec.h:
Rearrange buffer tracking and refcounting and refactor
a little for readability.
2005-02-04 13:43:27 +00:00
Jan Schmidt
4a7ba44698 sys/v4l/: Add new v4ljpegsrc for handling the ov51x hacky "I'll give you jpeg inside rgb frames" driver.
Original commit message from CVS:
* sys/v4l/gstv4l.c: (plugin_init):
* sys/v4l/gstv4ljpegsrc.c: (gst_v4ljpegsrc_get_type),
(gst_v4ljpegsrc_base_init), (gst_v4ljpegsrc_class_init),
(gst_v4ljpegsrc_init), (gst_v4ljpegsrc_src_link),
(gst_v4ljpegsrc_getcaps), (gst_v4ljpegsrc_get):
* sys/v4l/gstv4ljpegsrc.h:
* sys/v4l/gstv4lsrc.c: (gst_v4lsrc_open), (gst_v4lsrc_src_link):
* sys/v4l/v4l_calls.h:
* sys/v4l/v4lsrc_calls.c: (gst_v4lsrc_palette_name),
(gst_v4lsrc_get_fps):
* sys/v4l/v4lsrc_calls.h:
Add new v4ljpegsrc for handling the ov51x hacky "I'll give
you jpeg inside rgb frames" driver.
Don't error in the v4lsrc link function, just return
REFUSED.
2005-02-03 18:23:17 +00:00
Ronald S. Bultje
8d98df04c3 sys/qcam/gstqcamsrc.c: Use GST_ELEMENT_ERROR, not g_warning, if open failed.
Original commit message from CVS:
* sys/qcam/gstqcamsrc.c: (gst_qcamsrc_change_state),
(gst_qcamsrc_open):
Use GST_ELEMENT_ERROR, not g_warning, if open failed.
2005-02-03 12:15:59 +00:00
Ronald S. Bultje
d99719d80a gst/qtdemux/qtdemux.c: Change caps on MJPEG-B so it doesn't interfere with MJPEG/JPEG.
Original commit message from CVS:
* gst/qtdemux/qtdemux.c: (qtdemux_video_caps):
Change caps on MJPEG-B so it doesn't interfere with MJPEG/JPEG.
2005-02-02 17:22:59 +00:00