Commit graph

1369 commits

Author SHA1 Message Date
Ronald S. Bultje
71e21197d2 ext/ogg/gstogmparse.c: We love wrong commas.
Original commit message from CVS:
* ext/ogg/gstogmparse.c: (gst_ogm_parse_chain):
We love wrong commas.
2004-12-08 22:20:25 +00:00
Ronald S. Bultje
35e094807c gst/matroska/matroska-demux.c: Don't set DEFAULT, unsupported - makes length display incorrectly in some cases.
Original commit message from CVS:
* gst/matroska/matroska-demux.c:
(gst_matroska_demux_handle_src_query):
Don't set DEFAULT, unsupported - makes length display incorrectly
in some cases.
2004-12-08 22:12:13 +00:00
Christian Schaller
4ad298d680 fix licensing of monoscope
Original commit message from CVS:
fix licensing of monoscope
2004-12-07 17:22:18 +00:00
Christian Schaller
f37356022c fix licensing information for monoscope plugin
Original commit message from CVS:
fix licensing information for monoscope plugin
2004-12-07 10:32:11 +00:00
Arwed v. Merkatz
db9e3b6d92 set correct buffer durations in mp3parse, set default_duration in matroskamux for mpeg1 audio
Original commit message from CVS:
set correct buffer durations in mp3parse, set default_duration in matroskamux for mpeg1 audio
2004-12-06 19:32:33 +00:00
Benjamin Otte
ab8e71c93e ext/alsa/gstalsa.*: refactor big chunks of the core caps negotiation code to make it a lot faster, because people cla...
Original commit message from CVS:
* ext/alsa/gstalsa.c: (gst_alsa_get_caps), (gst_alsa_close_audio):
* ext/alsa/gstalsa.h:
refactor big chunks of the core caps negotiation code to make it
a lot faster, because people claim it's really slow
(actually, just cache the getcaps when the device is opened)
2004-12-06 16:10:06 +00:00
Ronald S. Bultje
4daeebd177 ext/a52dec/gsta52dec.*: Do something useful with timestamps. Make chain-based (since there's really no reason to be l...
Original commit message from CVS:
* ext/a52dec/gsta52dec.c: (gst_a52dec_init),
(gst_a52dec_handle_event), (gst_a52dec_update_streaminfo),
(gst_a52dec_handle_frame), (gst_a52dec_chain),
(gst_a52dec_change_state), (plugin_init):
* ext/a52dec/gsta52dec.h:
Do something useful with timestamps. Make chain-based (since
there's really no reason to be loopbased).
* gst/avi/gstavidemux.c: (gst_avi_demux_process_next_entry):
Update current_byte/frame correctly.
2004-12-06 10:28:13 +00:00
Ronald S. Bultje
0c3cca89fc gst/apetag/apedemux.c: Forward tags, too.
Original commit message from CVS:
* gst/apetag/apedemux.c: (gst_ape_demux_parse_tags),
(gst_ape_demux_stream_init):
Forward tags, too.
2004-12-04 12:05:34 +00:00
Ronald S. Bultje
4f3815cb3a gst/apetag/apedemux.c: Let's make sure we're done typefinding when detecting tags.
Original commit message from CVS:
* gst/apetag/apedemux.c: (gst_ape_demux_stream_init):
Let's make sure we're done typefinding when detecting tags.
2004-12-04 11:44:47 +00:00
Ronald S. Bultje
4725ef13cd gst/matroska/: Disgustingly evil hack for working around INTERRUPT events and their extremely annoying habit of being...
Original commit message from CVS:
* gst/matroska/ebml-read.c: (gst_ebml_read_class_init),
(gst_ebml_read_init), (gst_ebml_read_use_event),
(gst_ebml_read_element_id), (gst_ebml_peek_id),
(gst_ebml_read_seek), (gst_ebml_read_skip),
(gst_ebml_read_reserve), (gst_ebml_read_buffer),
(gst_ebml_read_master):
* gst/matroska/ebml-read.h:
* gst/matroska/matroska-demux.c:
(gst_matroska_demux_parse_contents),
(gst_matroska_demux_loop_stream), (gst_matroska_demux_audio_caps):
Disgustingly evil hack for working around INTERRUPT events and
their extremely annoying habit of being a pain in the ass. We
simply peek a cluster before reading any of it.
2004-12-03 21:08:17 +00:00
Ronald S. Bultje
40e9cff5bc ext/musepack/gstmusepackdec.cpp: There's also floating point libmusepacks.
Original commit message from CVS:
* ext/musepack/gstmusepackdec.cpp:
There's also floating point libmusepacks.
2004-12-03 18:13:43 +00:00
Ronald S. Bultje
461861f3de ext/faad/gstfaad.c: Set DURATION even if source buffer didn't. Also use increasing timestamps.
Original commit message from CVS:
* ext/faad/gstfaad.c: (gst_faad_chanpos_from_gst),
(gst_faad_chanpos_to_gst), (gst_faad_chain):
Set DURATION even if source buffer didn't. Also use increasing
timestamps.
* gst-libs/gst/riff/riff-media.c:
(gst_riff_create_audio_caps_with_data):
Block_align can have larger values than 8192.
2004-12-03 15:34:19 +00:00
Ronald S. Bultje
3c99555b67 gst/law/: Fix caps.
Original commit message from CVS:
* gst/law/alaw-decode.c: (alawdec_getcaps), (alawdec_link):
* gst/law/alaw-encode.c: (alawenc_getcaps), (alawenc_link):
* gst/law/mulaw-decode.c: (mulawdec_getcaps), (mulawdec_link):
* gst/law/mulaw-encode.c: (mulawenc_getcaps), (mulawenc_link):
Fix caps.
2004-12-02 17:38:59 +00:00
Ronald S. Bultje
abd7c7a05f sys/v4l/v4l_calls.c: Fix logic bug.
Original commit message from CVS:
* sys/v4l/v4l_calls.c: (gst_v4l_get_chan_names):
Fix logic bug.
2004-12-01 22:47:41 +00:00
Ronald S. Bultje
cb4164a160 ext/ogg/gstoggdemux.c: Yay, another one.
Original commit message from CVS:
* ext/ogg/gstoggdemux.c: (gst_ogg_type_find):
Yay, another one.
2004-12-01 21:45:27 +00:00
Ronald S. Bultje
bf470fb7b3 ext/esd/esdsink.c: Make error actually say something useful (fixes #156798).
Original commit message from CVS:
* ext/esd/esdsink.c: (gst_esdsink_chain):
Make error actually say something useful (fixes #156798).
* gst-libs/gst/riff/riff-media.c:
(gst_riff_create_video_caps_with_data),
(gst_riff_create_video_template_caps):
Add Intel Video 5.0 fourcc (IV50).
2004-12-01 20:42:01 +00:00
Christophe Fergeau
35a2c36ec4 ext/mad/gstmad.c: fix xing header detection on mono and stereo mp3 files.
Original commit message from CVS:
2004-12-01  Christophe Fergeau  <teuf@gnome.org>

* ext/mad/gstmad.c: (mpg123_parse_xing_header): fix xing header
detection on mono and stereo mp3 files.
2004-12-01 20:07:24 +00:00
Ronald S. Bultje
ac7b5a35d7 gst/playback/gstplaybasebin.c: Don't crash on EMPTY caps (e.g. when the demuxer didn't recognize the contained stream).
Original commit message from CVS:
* gst/playback/gstplaybasebin.c: (gst_play_base_bin_change_state):
Don't crash on EMPTY caps (e.g. when the demuxer didn't recognize
the contained stream).
2004-12-01 17:58:19 +00:00
Ronald S. Bultje
6184e5e3fd ext/faad/gstfaad.c: Oops, remove debug.
Original commit message from CVS:
* ext/faad/gstfaad.c: (gst_faad_srcconnect), (gst_faad_chain):
Oops, remove debug.
2004-12-01 16:07:43 +00:00
Ronald S. Bultje
a1c9362f69 gst/law/: Prevent warnings when negotiating caps (fixes #159338).
Original commit message from CVS:
Reviewed by:  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>
* gst/law/alaw-decode.c: (alawdec_getcaps):
* gst/law/mulaw-decode.c: (mulawdec_getcaps):
Prevent warnings when negotiating caps (fixes #159338).
2004-12-01 15:18:34 +00:00
Ronald S. Bultje
a418de662f gst/ffmpegcolorspace/gstffmpegcolorspace.c: Remove old leftover that shouldn't be there...
Original commit message from CVS:
* gst/ffmpegcolorspace/gstffmpegcolorspace.c:
(gst_ffmpegcsp_chain):
Remove old leftover that shouldn't be there...
2004-12-01 15:13:46 +00:00
Ronald S. Bultje
a91586eee0 gst-libs/gst/riff/riff-read.c: Don't forward DISCONT events (fixes #159684).
Original commit message from CVS:
Reviewed by:  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>
* gst-libs/gst/riff/riff-read.c: (gst_riff_read_use_event):
Don't forward DISCONT events (fixes #159684).
2004-12-01 13:23:39 +00:00
Ronald S. Bultje
5a9abb37d5 gst/playback/gstplaybin.c: Unlink manually since sometimes bin disposal (and therefore pad unlinking) is delayed, whi...
Original commit message from CVS:
* gst/playback/gstplaybin.c: (remove_sinks), (setup_sinks):
Unlink manually since sometimes bin disposal (and therefore
pad unlinking) is delayed, which will cause a new media file
to not be able to start playing instantly.
2004-12-01 13:14:56 +00:00
Ronald S. Bultje
bab43efcae gst/playback/gststreaminfo.c: On mute of an unlinked stream, check for pad availability so we don't crash on unlinked...
Original commit message from CVS:
* gst/playback/gststreaminfo.c: (stream_info_mute_pad):
On mute of an unlinked stream, check for pad availability so
we don't crash on unlinked pad.
2004-11-29 17:01:34 +00:00
Ronald S. Bultje
739c4f4724 gst/avi/gstavidemux.c: Fix quite humiliating bug in omitting 0-sized index chunks but forgetting to count them for ti...
Original commit message from CVS:
* gst/avi/gstavidemux.c: (gst_avi_demux_stream_index),
(gst_avi_demux_massage_index):
Fix quite humiliating bug in omitting 0-sized index chunks but
forgetting to count them for timestamps.
2004-11-29 12:41:03 +00:00
Ronald S. Bultje
7a8e6c5705 ext/a52dec/gsta52dec.c: Actually leave the loop if we failed to sync. Don't crash.
Original commit message from CVS:
* ext/a52dec/gsta52dec.c: (gst_a52dec_loop):
Actually leave the loop if we failed to sync. Don't crash.
2004-11-29 11:16:47 +00:00
Ronald S. Bultje
2dd43dc2b0 gst/mpegstream/gstdvddemux.*: Fix crash (#159759). Doesn't work, though. :-(.
Original commit message from CVS:
* gst/mpegstream/gstdvddemux.c: (gst_dvd_demux_get_audio_stream),
(gst_dvd_demux_process_private):
* gst/mpegstream/gstdvddemux.h:
Fix crash (#159759). Doesn't work, though. :-(.
2004-11-28 21:18:18 +00:00
Benjamin Otte
ae85b19551 gst/audioconvert/gstchannelmix.c: more overwriting protection due to modifying channels one by one instead of all at ...
Original commit message from CVS:
* gst/audioconvert/gstchannelmix.c: (gst_audio_convert_mix):
more overwriting protection due to modifying channels one by one
instead of all at once
2004-11-28 20:41:23 +00:00
Ronald S. Bultje
6776243eb6 gst/audioconvert/gstchannelmix.c: Normalize using absolute values.
Original commit message from CVS:
* gst/audioconvert/gstchannelmix.c:
(gst_audio_convert_fill_normalize):
Normalize using absolute values.
2004-11-28 19:22:07 +00:00
Julien Moutte
82aaadb598 Adding a first version of directfbvideosink.
Original commit message from CVS:
2004-11-28  Julien MOUTTE  <julien@moutte.net>

* configure.ac:
* ext/Makefile.am:
* ext/directfb/Makefile.am:
* ext/directfb/directfbvideosink.c: (gst_directfbvideosink_create),
(gst_directfbvideosink_get_pixel_format),
(gst_directfbvideosink_get_format_from_fourcc),
(gst_directfbvideosink_fixate), (gst_directfbvideosink_getcaps),
(gst_directfbvideosink_sink_link),
(gst_directfbvideosink_change_state),
(gst_directfbvideosink_chain), (gst_directfbvideosink_buffer_free),
(gst_directfbvideosink_buffer_alloc),
(gst_directfbvideosink_interface_supported),
(gst_directfbvideosink_interface_init),
(gst_directfbvideosink_navigation_send_event),
(gst_directfbvideosink_navigation_init),
(gst_directfbvideosink_set_property),
(gst_directfbvideosink_get_property),
(gst_directfbvideosink_finalize), (gst_directfbvideosink_init),
(gst_directfbvideosink_base_init),
(gst_directfbvideosink_class_init),
(gst_directfbvideosink_get_type), (plugin_init):
* ext/directfb/directfbvideosink.h: Adding a first version of
directfbvideosink.
* sys/xvimage/xvimagesink.c: (gst_xvimagesink_init): Initializing some
more.
2004-11-28 19:08:45 +00:00
Benjamin Otte
0bc45bd2e6 gst/audioconvert/gstchannelmix.c: walk the samples backwards if out_channels > in_channels so we don't overwrite data
Original commit message from CVS:
* gst/audioconvert/gstchannelmix.c: (gst_audio_convert_mix):
walk the samples backwards if out_channels > in_channels so we don't
overwrite data
2004-11-28 18:26:36 +00:00
Ronald S. Bultje
aa609beb62 gst/audioconvert/: Implement a channel mixer.
Original commit message from CVS:
* gst/audioconvert/Makefile.am:
* gst/audioconvert/gstaudioconvert.c: (gst_audio_convert_init),
(gst_audio_convert_link), (gst_audio_convert_change_state),
(gst_audio_convert_channels):
* gst/audioconvert/gstchannelmix.c:
(gst_audio_convert_unset_matrix),
(gst_audio_convert_fill_identical),
(gst_audio_convert_fill_compatible),
(gst_audio_convert_detect_pos), (gst_audio_convert_fill_one_other),
(gst_audio_convert_fill_others),
(gst_audio_convert_fill_normalize),
(gst_audio_convert_fill_matrix), (gst_audio_convert_setup_matrix),
(gst_audio_convert_passthrough), (gst_audio_convert_mix):
* gst/audioconvert/gstchannelmix.h:
Implement a channel mixer.
2004-11-28 16:09:13 +00:00
Martin Soto
9f1809e728 ext/alsa/: Make alsasink actually honor gst_element_set_clock and use that clock instead of ist internal one.
Original commit message from CVS:
2004-11-28  Martin Soto  <martinsoto@users.sourceforge.net>

* ext/alsa/gstalsasink.c (gst_alsa_sink_loop):
* ext/alsa/gstalsa.h:
* ext/alsa/gstalsa.c (gst_alsa_set_clock):
Make alsasink actually honor gst_element_set_clock and use that
clock instead of ist internal one.
2004-11-28 13:35:43 +00:00
Christophe Fergeau
47ce36a793 gst/playback/gstplaybasebin.c: fixed a caps leak nullify source and decoder when going from READY to NULL so that we ...
Original commit message from CVS:
2004-11-27  Christophe Fergeau  <teuf@gnome.org>

* gst/playback/gstplaybasebin.c: (setup_source): fixed a caps leak
(gst_play_base_bin_change_state): nullify source and decoder when
going from READY to NULL so that we don't try to do weird stuff with
them when going from NULL to READY
* gst/playback/gstplaybin.c: (gst_play_bin_init): use gst_object_unref
instead of g_object_unref
(gen_video_element), (gen_audio_element): more refcounting fixes, now
it should be correct
(gst_play_bin_change_state): don't call remove_sinks if we are
currently disposing the object
2004-11-27 20:28:27 +00:00
Ronald S. Bultje
9081912af1 ext/a52dec/gsta52dec.c: Don't forget bass if it's there. Else left channel is silent...
Original commit message from CVS:
* ext/a52dec/gsta52dec.c: (gst_a52dec_loop):
Don't forget bass if it's there. Else left channel is silent...
2004-11-27 20:27:18 +00:00
Ronald S. Bultje
824bdcfdee ext/a52dec/gsta52dec.c: Don't do sample adjusting anymore, we use float audio now.
Original commit message from CVS:
* ext/a52dec/gsta52dec.c: (gst_a52dec_loop),
(gst_a52dec_change_state):
Don't do sample adjusting anymore, we use float audio now.
* gst/audioconvert/gstaudioconvert.c: (gst_audio_convert_fixate):
Don't fixate to non-existing properties.
2004-11-27 20:22:42 +00:00
Ronald S. Bultje
caedcd667e ext/a52dec/gsta52dec.c: Advertise that we can do surround sound.
Original commit message from CVS:
* ext/a52dec/gsta52dec.c: (gst_a52dec_channels),
(gst_a52dec_change_state):
Advertise that we can do surround sound.
2004-11-27 19:41:26 +00:00
Ronald S. Bultje
9ad47e4257 ext/a52dec/gsta52dec.c: Add buffer-frames=0.
Original commit message from CVS:
* ext/a52dec/gsta52dec.c: (gst_a52dec_reneg):
Add buffer-frames=0.
* ext/dvdread/dvdreadsrc.c: (dvdreadsrc_get_type),
(dvdreadsrc_init), (dvdreadsrc_get_event_mask),
(dvdreadsrc_get_query_types), (dvdreadsrc_get_formats),
(dvdreadsrc_srcpad_event), (dvdreadsrc_srcpad_query),
(_seek_title), (_seek_chapter), (get_next_cell_for), (_read),
(seek_sector), (dvdreadsrc_get), (dvdreadsrc_open_file),
(dvdreadsrc_change_state), (dvdreadsrc_uri_get_type),
(dvdreadsrc_uri_get_protocols), (dvdreadsrc_uri_get_uri),
(dvdreadsrc_uri_set_uri), (dvdreadsrc_uri_handler_init):
* ext/dvdread/dvdreadsrc.h:
Add seeking, querying for bytes, sectors, title, angle and
chapter. Handle multiple chapters. Relicense to LGPL because
Billy agreed on that (thanks Billy!).
2004-11-27 17:20:26 +00:00
Christophe Fergeau
5c6c70a449 gst/audioconvert/gstaudioconvert.c: call parent dispose method
Original commit message from CVS:
2004-11-27  Christophe Fergeau  <teuf@gnome.org>

* gst/audioconvert/gstaudioconvert.c: (gst_audio_convert_dispose):
call parent dispose method
2004-11-27 14:41:51 +00:00
Martin Soto
3b48708b77 gst-libs/gst/audio/audioclock.c (gst_audio_clock_set_active)
Original commit message from CVS:
2004-11-27  Martin Soto  <martinsoto@users.sourceforge.net>

* gst-libs/gst/audio/audioclock.c (gst_audio_clock_set_active)
(gst_audio_clock_get_internal_time):
Fix active <-> inactive transitions: ensure time value always
grows and avoid abrupt value changes.
2004-11-27 09:37:20 +00:00
Arwed v. Merkatz
aeb09d35ab added TTA parser and decoder
Original commit message from CVS:
added TTA parser and decoder
2004-11-26 23:10:28 +00:00
Ronald S. Bultje
90bf594c66 gst/playback/gstplaybasebin.*: Implement buffering. Needs some more work.
Original commit message from CVS:
* gst/playback/gstplaybasebin.c: (gst_play_base_bin_class_init),
(probe_triggered), (check_queue), (buffer_underrun),
(buffer_running), (buffer_overrun), (gen_source_element),
(setup_source):
* gst/playback/gstplaybasebin.h:
Implement buffering. Needs some more work.
2004-11-26 12:31:04 +00:00
Ronald S. Bultje
15e377a7e1 ext/theora/theoradec.c: Fix ilog mask range overflow.
Original commit message from CVS:
* ext/theora/theoradec.c: (theora_dec_chain):
Fix ilog mask range overflow.
2004-11-26 12:25:43 +00:00
Ronald S. Bultje
e97130d4c2 ext/alsa/gstalsa.c: Don't omit the last (which incase of dmix is the only :) ) channel count. Don't set channels if <...
Original commit message from CVS:
* ext/alsa/gstalsa.c: (gst_alsa_get_caps):
Don't omit the last (which incase of dmix is the only :) )
channel count. Don't set channels if <= 2.
2004-11-26 11:47:24 +00:00
Christophe Fergeau
c4f9089dad gst/playback/gstplaybin.c: Removed 2 obsolete comments
Original commit message from CVS:
2004-11-26  Christophe Fergeau  <teuf@gnome.org>

* gst/playback/gstplaybin.c: (gen_video_element),
(gen_audio_element): Removed 2 obsolete comments
2004-11-26 11:35:47 +00:00
Stéphane Loeuillet
c56a556867 ext/vorbis/oggvorbisenc.c
Original commit message from CVS:
* ext/vorbis/oggvorbisenc.c
* ext/vorbis/vorbisenc.c :
change description fields of those plugins to differentiate them
(pitivi show Encoders by description, they had the same one)
2004-11-26 11:28:11 +00:00
Ronald S. Bultje
9e2507ad6a gst/playback/gstplaybin.c: Refcounting fixes for provided audio-/videosinks.
Original commit message from CVS:
Reviewed by:  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>
* gst/playback/gstplaybin.c: (gst_play_bin_dispose),
(gst_play_bin_set_property), (gen_video_element),
(gen_audio_element):
Refcounting fixes for provided audio-/videosinks.
2004-11-25 20:52:14 +00:00
Ronald S. Bultje
1b8c0ec329 gst/playback/gstplaybin.c: Don't reference all sinks, but only the video- and audiosinks.
Original commit message from CVS:
* gst/playback/gstplaybin.c: (gen_video_element),
(gen_audio_element), (setup_sinks), (gst_play_bin_change_state):
Don't reference all sinks, but only the video- and audiosinks.
The vis. element should be disposed when we're done with it.
We don't have any reason to keep it around. This fixes warnings
when reusing playbin for playing multiple audio files with
vis. enabled. Also release audio device on pause - idea stolen
from Rhythmbox.
2004-11-25 20:46:55 +00:00
Ronald S. Bultje
bf45760b33 Surround sound support.
Original commit message from CVS:
* ext/a52dec/gsta52dec.c: (gst_a52dec_channels), (gst_a52dec_push),
(gst_a52dec_reneg), (gst_a52dec_loop), (plugin_init):
* ext/alsa/gstalsa.c: (gst_alsa_get_caps):
* ext/alsa/gstalsaplugin.c: (plugin_init):
* ext/dts/gstdtsdec.c: (gst_dtsdec_channels),
(gst_dtsdec_renegotiate), (gst_dtsdec_loop), (plugin_init):
* ext/faad/gstfaad.c: (gst_faad_init), (gst_faad_chanpos_from_gst),
(gst_faad_chanpos_to_gst), (gst_faad_sinkconnect),
(gst_faad_srcgetcaps), (gst_faad_srcconnect), (gst_faad_chain),
(gst_faad_change_state), (plugin_init):
* ext/faad/gstfaad.h:
* ext/vorbis/vorbis.c: (plugin_init):
* ext/vorbis/vorbisdec.c: (vorbis_dec_chain):
* gst-libs/gst/audio/Makefile.am:
* gst-libs/gst/audio/audio.c: (plugin_init):
* gst-libs/gst/audio/multichannel.c:
(gst_audio_check_channel_positions),
(gst_audio_get_channel_positions),
(gst_audio_set_channel_positions),
(gst_audio_set_structure_channel_positions_list),
(add_list_to_struct), (gst_audio_set_caps_channel_positions_list),
(gst_audio_fixate_channel_positions):
* gst-libs/gst/audio/multichannel.h:
* gst-libs/gst/audio/testchannels.c: (main):
* gst/audioconvert/gstaudioconvert.c:
(gst_audio_convert_class_init), (gst_audio_convert_init),
(gst_audio_convert_dispose), (gst_audio_convert_getcaps),
(gst_audio_convert_parse_caps), (gst_audio_convert_link),
(gst_audio_convert_fixate), (gst_audio_convert_channels):
* gst/audioconvert/plugin.c: (plugin_init):
Surround sound support.
2004-11-25 20:36:29 +00:00
Ronald S. Bultje
af874a090d ext/ogg/gstoggdemux.c: Fix position for discont if we're close as well. Nitpicking, but saves a few milliseconds of e...
Original commit message from CVS:
* ext/ogg/gstoggdemux.c: (gst_ogg_demux_push):
Fix position for discont if we're close as well. Nitpicking, but
saves a few milliseconds of extra waiting or skipping.
2004-11-25 20:31:22 +00:00