summaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
2004-10-06bump for prereleaseThomas Vander Stichele2-1/+6
Original commit message from CVS: bump for prerelease
2004-10-06add mng plugin to spec fileChristian Schaller1-0/+8
Original commit message from CVS: add mng plugin to spec file
2004-10-06gst/wavparse/gstwavparse.c: add ATRAC3 to STATIC CAPS to fix a warningStéphane Loeuillet2-1/+10
Original commit message from CVS: * gst/wavparse/gstwavparse.c: add ATRAC3 to STATIC CAPS to fix a warning * gst/matroska/ebml-read.c: * gst-libs/gst/riff/riff-read.c: fix typos
2004-10-06gst-libs/gst/riff/riff-media.c: generate caps for ATRAC3 audio streamsStéphane Loeuillet2-0/+14
Original commit message from CVS: * gst-libs/gst/riff/riff-media.c: generate caps for ATRAC3 audio streams * gst/realmedia/rmdemux.c: generate caps for ATRAC3 audio streams
2004-10-06gst/wavparse/Makefile.am gst/wavparse/riff.h gst/wavparse/wavparse.vcproj ↵Stéphane Loeuillet1-0/+7
riff.h removal (unused and duplication with... Original commit message from CVS: * gst/wavparse/Makefile.am * gst/wavparse/riff.h * gst/wavparse/wavparse.vcproj riff.h removal (unused and duplication with riff-ids.h)
2004-10-06gst/wavparse/gstwavparse.h remove duplicated defines for audio codec codes ↵Stéphane Loeuillet2-1/+13
gst-libs/gst/riff/riff-ids.h Original commit message from CVS: * gst/wavparse/gstwavparse.h remove duplicated defines for audio codec codes * gst-libs/gst/riff/riff-ids.h * gst/wavenc/riff.h: add "4CC" code for ATRAC3 audio streams add "4CC" code for ITU_G721_ADPCM (unused for now)
2004-10-06gst/flx/gstflxdec.c: Actually _do_ negotiation. Pass gdouble as arg instead ↵Wim Taymans2-1/+11
of guint64 for the framerate. Original commit message from CVS: * gst/flx/gstflxdec.c: (gst_flxdec_init), (gst_flxdec_loop): Actually _do_ negotiation. Pass gdouble as arg instead of guint64 for the framerate.
2004-10-06gst/playback/: Set state on newly added element to READY so that negotiation ↵Wim Taymans1-0/+15
can happen ASAP. Original commit message from CVS: * gst/playback/gstdecodebin.c: (gst_decode_bin_init), (find_compatibles), (close_pad_link), (try_to_link_1), (no_more_pads), (close_link), (type_found): * gst/playback/gstplaybasebin.c: (new_decoded_pad): * gst/playback/gstplaybin.c: (gen_video_element), (gen_audio_element): Set state on newly added element to READY so that negotiation can happen ASAP. Addes some more debug info. Do not try to plug pads with multiple caps structures or ANY because it is too dangerous since we do not do dynamic replugging.
2004-10-06add Oriya translation, yippeeThomas Vander Stichele3-1/+296
Original commit message from CVS: add Oriya translation, yippee
2004-10-05remove unused KIO_DIRThomas Vander Stichele1-1/+0
Original commit message from CVS: remove unused KIO_DIR
2004-10-05fixing libmng buildThomas Vander Stichele2-1/+9
Original commit message from CVS: fixing libmng build
2004-10-05gst/avi/gstavidemux.c: Prevent overwrite of size member. Makes audio sound ↵Ronald S. Bultje1-0/+5
crappy. Original commit message from CVS: * gst/avi/gstavidemux.c: (gst_avi_demux_massage_index): Prevent overwrite of size member. Makes audio sound crappy.
2004-10-05- add .rmvb to the list of RealMedia known file extensionsStéphane Loeuillet1-0/+5
Original commit message from CVS: - add .rmvb to the list of RealMedia known file extensions
2004-10-05ext/libmng/gstmngdec.c: Set the framerate correctly.Wim Taymans1-0/+10
Original commit message from CVS: * ext/libmng/gstmngdec.c: (gst_mngdec_loop), (mngdec_error), (mngdec_openstream), (mngdec_closestream), (mngdec_handle_sink_event), (mngdec_readdata), (mngdec_gettickcount), (mngdec_settimer), (mngdec_processheader), (mngdec_getcanvasline), (mngdec_refresh), (gst_mngdec_change_state): Set the framerate correctly.
2004-10-04gst/avi/gstavidemux.c: There was something wrong with the index massaging.Ronald S. Bultje1-0/+5
Original commit message from CVS: * gst/avi/gstavidemux.c: (gst_avi_demux_massage_index): There was something wrong with the index massaging.
2004-10-04ext/jpeg/: Updated smoke, new bitstream, allows embedding in ogg.Wim Taymans1-0/+21
Original commit message from CVS: * ext/jpeg/gstjpeg.c: (smoke_type_find), (plugin_init): * ext/jpeg/gstsmokedec.c: (gst_smokedec_init), (gst_smokedec_chain): * ext/jpeg/gstsmokedec.h: * ext/jpeg/gstsmokeenc.c: (gst_smokeenc_class_init), (gst_smokeenc_init), (gst_smokeenc_resync), (gst_smokeenc_chain): * ext/jpeg/gstsmokeenc.h: * ext/jpeg/smokecodec.c: (smokecodec_encode_new), (smokecodec_decode_new), (smokecodec_info_free), (smokecodec_set_quality), (smokecodec_get_quality), (smokecodec_set_threshold), (smokecodec_get_threshold), (smokecodec_set_bitrate), (smokecodec_get_bitrate), (find_best_size), (abs_diff), (put), (smokecodec_encode_id), (smokecodec_encode), (smokecodec_parse_id), (smokecodec_parse_header), (smokecodec_decode): * ext/jpeg/smokecodec.h: * ext/jpeg/smokeformat.h: Updated smoke, new bitstream, allows embedding in ogg.
2004-10-04gst/avi/gstavidemux.c: Fix seeking in some files. All this code is no longer ↵Ronald S. Bultje1-0/+7
needed (and actually breaks stuff) becau... Original commit message from CVS: * gst/avi/gstavidemux.c: (gst_avi_demux_handle_src_event): Fix seeking in some files. All this code is no longer needed (and actually breaks stuff) because we now synchronize the full index right when reading the header.
2004-10-04configure.ac: configure update for libmng.Wim Taymans2-0/+13
Original commit message from CVS: * configure.ac: configure update for libmng.
2004-10-04ext/libmng/: Added basic MNG decoder. Needs more work. The encoder does not ↵Wim Taymans1-0/+24
work yet. Original commit message from CVS: * ext/libmng/Makefile.am: * ext/libmng/gstmng.c: (plugin_init): * ext/libmng/gstmng.h: * ext/libmng/gstmngdec.c: (gst_mngdec_get_type), (gst_mngdec_base_init), (gst_mngdec_class_init), (gst_mngdec_sinklink), (gst_mngdec_init), (gst_mngdec_src_getcaps), (gst_mngdec_loop), (gst_mngdec_get_property), (gst_mngdec_set_property), (mngdec_error), (mngdec_openstream), (mngdec_closestream), (mngdec_handle_sink_event), (mngdec_readdata), (mngdec_gettickcount), (mngdec_settimer), (mngdec_processheader), (mngdec_getcanvasline), (mngdec_refresh), (gst_mngdec_change_state): * ext/libmng/gstmngdec.h: * ext/libmng/gstmngenc.c: (gst_mngenc_get_type), (mng_caps_factory), (raw_caps_factory), (gst_mngenc_base_init), (gst_mngenc_class_init), (gst_mngenc_sinklink), (gst_mngenc_init), (gst_mngenc_chain), (gst_mngenc_get_property), (gst_mngenc_set_property): * ext/libmng/gstmngenc.h: Added basic MNG decoder. Needs more work. The encoder does not work yet.
2004-10-04gst/realmedia/rmdemux.c: Don't hang on length=0 chunks. Some negotiation ↵Ronald S. Bultje1-0/+8
fixes. Signal no-more-pads. Original commit message from CVS: * gst/realmedia/rmdemux.c: (gst_rmdemux_handle_sink_event), (gst_rmdemux_loop), (gst_rmdemux_add_stream), (gst_rmdemux_parse_mdpr), (gst_rmdemux_dump_mdpr): Don't hang on length=0 chunks. Some negotiation fixes. Signal no-more-pads.
2004-10-04and this one tooThomas Vander Stichele1-0/+1
Original commit message from CVS: and this one too
2004-10-04you need 1.0.4 of speexThomas Vander Stichele2-6/+16
Original commit message from CVS: you need 1.0.4 of speex
2004-10-04Revert the changes to the speex include file locations.Iain Holmes1-0/+12
Original commit message from CVS: Revert the changes to the speex include file locations.
2004-10-04gst/realmedia/rmdemux.c: Use debug category, fix EOS handling. filesrc ! ↵Ronald S. Bultje1-0/+12
rmdemux now works. Original commit message from CVS: * gst/realmedia/rmdemux.c: (gst_rmdemux_class_init), (gst_rmdemux_init), (gst_rmdemux_handle_sink_event), (gst_rmdemux_loop), (gst_rmdemux_add_stream), (re_hexdump_bytes), (re_dump_pascal_string), (gst_rmdemux_dump__rmf), (gst_rmdemux_dump_prop), (gst_rmdemux_parse_mdpr), (gst_rmdemux_dump_mdpr), (gst_rmdemux_dump_indx), (gst_rmdemux_dump_data): Use debug category, fix EOS handling. filesrc ! rmdemux now works.
2004-10-04gst/avi/gstavidemux.c: Improve allocation, cutting and sorting of the index. ↵Ronald S. Bultje1-0/+8
How takes a few seconds instead of minutes. Original commit message from CVS: * gst/avi/gstavidemux.c: (gst_avi_demux_stream_index), (gst_avi_demux_stream_scan), (sort), (gst_avi_demux_massage_index), (gst_avi_demux_stream_header), (gst_avi_demux_stream_data): Improve allocation, cutting and sorting of the index. How takes a few seconds instead of minutes.
2004-10-03gst/realmedia/rmdemux.c: fixed compilationChristophe Fergeau1-0/+5
Original commit message from CVS: 2004-10-03 Christophe Fergeau <teuf@gnome.org> * gst/realmedia/rmdemux.c: (gst_rmdemux_parse_mdpr): fixed compilation
2004-10-02gst-libs/gst/riff/riff-media.c: Add wing commander format mimetype/fourccs.Ronald S. Bultje2-1/+18
Original commit message from CVS: * gst-libs/gst/riff/riff-media.c: (gst_riff_create_video_caps_with_data), (gst_riff_create_video_template_caps): Add wing commander format mimetype/fourccs. * gst/avi/gstavidemux.c: (gst_avi_demux_massage_index): Don't crash if some value is 0.
2004-10-02gst-libs/gst/riff/riff-media.c: Add DIB fourcc (raw, palettized 8-bit RGB).Ronald S. Bultje4-23/+71
Original commit message from CVS: * gst-libs/gst/riff/riff-media.c: (gst_riff_create_video_caps_with_data), (gst_riff_create_video_template_caps): Add DIB fourcc (raw, palettized 8-bit RGB). * gst-libs/gst/riff/riff-read.c: (gst_riff_read_strf_vids_with_data): Oops, fix strf_data reading bug. * gst/avi/gstavidemux.c: (gst_avi_demux_add_stream): Use a non-NULL tag. * gst/qtdemux/qtdemux.c: (qtdemux_parse_trak): Time for hacks. Sorry Dave. At least one quicktime movie (a trailer) that I've encountered contains multiple video tracks. One of those is the actual video track, the other are one-frame tracks (images). Unfortunately, the number of frames according to the trak header is 1 for each, so that doesn't help. So instead, I look at the duration and discard tracks with a duration shorter than 20% of the length of the stream. Better than nothing.
2004-10-01some cleanups in regards to requirementsChristian Schaller2-35/+4
Original commit message from CVS: some cleanups in regards to requirements
2004-10-01commiting patch from Phil BlundellPhil Blundell2-1/+8
Original commit message from CVS: commiting patch from Phil Blundell
2004-10-01ext/speex/gstspeexdec.c: Small cleanups.Wim Taymans1-0/+9
Original commit message from CVS: * ext/speex/gstspeexdec.c: (gst_speex_dec_class_init), (speex_dec_get_formats), (speex_dec_convert), (speex_dec_src_query), (speex_dec_src_event), (speex_dec_event), (speex_dec_chain), (gst_speexdec_get_property), (gst_speexdec_set_property): Small cleanups.
2004-10-01gst/wavparse/gstwavparse.*: Added some more debugging info.Wim Taymans1-0/+12
Original commit message from CVS: * gst/wavparse/gstwavparse.c: (gst_wavparse_class_init), (gst_wavparse_stream_init), (gst_wavparse_fmt), (gst_wavparse_other), (gst_wavparse_loop), (gst_wavparse_pad_convert), (gst_wavparse_pad_query), (gst_wavparse_srcpad_event): * gst/wavparse/gstwavparse.h: Added some more debugging info. Fix the case where the length of the file is 0. Make sure we seek to sample borders.
2004-10-01gst/playback/: Add some debug info to decodebin, update READMEWim Taymans1-0/+8
Original commit message from CVS: * gst/playback/README: * gst/playback/gstdecodebin.c: (gst_decode_bin_factory_filter), (gst_decode_bin_init), (find_compatibles), (close_pad_link), (try_to_link_1), (no_more_pads), (close_link), (type_found): Add some debug info to decodebin, update README
2004-10-01ext/dvdnav/dvdnavsrc.c: Don't use g_print(); use GST_DEBUG().Ronald S. Bultje1-0/+5
Original commit message from CVS: * ext/dvdnav/dvdnavsrc.c: (dvdnav_handle_navigation_event): Don't use g_print(); use GST_DEBUG().
2004-10-01ext/ogg/gstoggmux.c: Handle EOS properly.Ronald S. Bultje1-0/+6
Original commit message from CVS: * ext/ogg/gstoggmux.c: (gst_ogg_mux_next_buffer), (gst_ogg_mux_queue_pads): Handle EOS properly.
2004-10-01ext/faad/gstfaad.*: Allow playback of raw (unframed) MPEG AAC files (#148993).Ronald S. Bultje3-33/+92
Original commit message from CVS: Reviewed by: Ronald S. Bultje <rbultje@ronald.bitfreak.net> * ext/faad/gstfaad.c: (gst_faad_init), (gst_faad_sinkconnect), (gst_faad_chain), (gst_faad_change_state): * ext/faad/gstfaad.h: Allow playback of raw (unframed) MPEG AAC files (#148993).
2004-10-01gst/wavparse/gstwavparse.c: Throw error if we didn't recognize the stream. ↵Ronald S. Bultje1-0/+7
Fixes #152289. Original commit message from CVS: Reviewed by: Ronald S. Bultje <rbultje@ronald.bitfreak.net> * gst/wavparse/gstwavparse.c: (gst_wavparse_fmt): Throw error if we didn't recognize the stream. Fixes #152289.
2004-10-01gst/videoscale/gstvideoscale.c: Fix negotiation.Ronald S. Bultje1-0/+5
Original commit message from CVS: * gst/videoscale/gstvideoscale.c: (gst_videoscale_link): Fix negotiation.
2004-10-01gst/wavparse/gstwavparse.c: Fix memleak.Ronald S. Bultje1-0/+7
Original commit message from CVS: Reviewed by: Ronald S. Bultje <rbultje@ronald.bitfreak.net> * gst/wavparse/gstwavparse.c: (gst_wavparse_fmt): Fix memleak.
2004-10-01sys/sunaudio/gstsunaudio.c: Solve #152805.Ronald S. Bultje3-6/+24
Original commit message from CVS: Reviewed by: Ronald S. Bultje <rbultje@ronald.bitfreak.net> * sys/sunaudio/gstsunaudio.c: (gst_sunaudiosink_setparams): Solve #152805. * sys/sunaudio/gstsunmixer.c: (gst_sunaudiomixer_set_mute): Solve 152806.
2004-10-01gst-libs/gst/riff/riff-media.c: Add codec_data handling (like asfdemux used ↵Ronald S. Bultje2-5/+28
to do). Original commit message from CVS: * gst-libs/gst/riff/riff-media.c: (gst_riff_create_video_caps_with_data), (gst_riff_create_audio_caps_with_data): Add codec_data handling (like asfdemux used to do). * gst/asfdemux/gstasf.c: (plugin_init): * gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init), (gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream): Use riff-media for caps creation instead of our own (mostly broken) copy of its functions.
2004-10-01sys/v4l/v4lsrc_calls.c: Don't actually error out if we get another return ↵Ronald S. Bultje1-0/+9
value than Original commit message from CVS: * sys/v4l/v4lsrc_calls.c: (gst_v4lsrc_try_capture): Don't actually error out if we get another return value than -EINVAL. Opposite to what I first thought, drivers have random return values for this, although -EINVAL is the expected return value. Since this is not fatal, we shouldn't use GST_ELEMENT_ERROR() but just GST_ERROR_OBJECT().
2004-10-01ext/dvdread/dvdreadsrc.c: Fix. Don't do one big huge loop around the whole ↵Ronald S. Bultje2-0/+41
DVD, that will cache all data and thus eat... Original commit message from CVS: * ext/dvdread/dvdreadsrc.c: (dvdreadsrc_class_init), (dvdreadsrc_init), (dvdreadsrc_dispose), (dvdreadsrc_set_property), (dvdreadsrc_get_property), (_open), (_seek), (_read), (dvdreadsrc_get), (dvdreadsrc_open_file), (dvdreadsrc_change_state): Fix. Don't do one big huge loop around the whole DVD, that will cache all data and thus eat sizeof(dvd) (several GB) before we see something. * gst-libs/gst/riff/riff-read.c: (gst_riff_read_seek): Actually NULL'ify event after using it. * gst/matroska/ebml-read.c: (gst_ebml_read_use_event), (gst_ebml_read_handle_event), (gst_ebml_read_element_id), (gst_ebml_read_element_length), (gst_ebml_read_element_data), (gst_ebml_read_seek), (gst_ebml_read_skip): Handle events. * gst/mpegstream/gstdvddemux.c: (gst_dvd_demux_base_init), (gst_dvd_demux_init), (gst_dvd_demux_get_audio_stream), (gst_dvd_demux_get_subpicture_stream), (gst_dvd_demux_plugin_init): Fix timing (this will probably break if I seek using menus, but I didn't get there yet). VOBs and normal DVDs should now work. Add a mpeg2-only pad with high rank so this get autoplugged for MPEG-2 movies. * gst/mpegstream/gstmpegdemux.c: (gst_mpeg_demux_base_init), (gst_mpeg_demux_class_init), (gst_mpeg_demux_init), (gst_mpeg_demux_new_output_pad), (gst_mpeg_demux_get_video_stream), (gst_mpeg_demux_get_audio_stream), (gst_mpeg_demux_get_private_stream), (gst_mpeg_demux_parse_packet), (gst_mpeg_demux_parse_pes), (gst_mpeg_demux_plugin_init): Use this as second rank for MPEG-1 and MPEG-2. Still use this for MPEG-1 but use dvddemux for MPEG-2. * gst/mpegstream/gstmpegparse.c: (gst_mpeg_parse_class_init), (gst_mpeg_parse_init), (gst_mpeg_parse_new_pad), (gst_mpeg_parse_parse_packhead): Timing. Only add pad template if it exists. Add sink template from class and not from ourselves. This means we will always use the correct sink template even if it is not the one defined in this file.
2004-09-29gst/mpegstream/: Fix playback of mpeg again, timestamps where screwed up by ↵Wim Taymans1-0/+8
patch 1.61. Original commit message from CVS: * gst/mpegstream/gstmpegdemux.c: (gst_mpeg_demux_parse_packet), (gst_mpeg_demux_parse_pes): * gst/mpegstream/gstmpegparse.c: (gst_mpeg_parse_parse_packhead): Fix playback of mpeg again, timestamps where screwed up by patch 1.61.
2004-09-29fix V4L2 spec entryChristian Schaller1-19/+22
Original commit message from CVS: fix V4L2 spec entry
2004-09-29ext/flac/gstflacdec.c: Only return true if we actually filled something in. ↵Ronald S. Bultje4-72/+149
Prevents player applications from showing... Original commit message from CVS: * ext/flac/gstflacdec.c: (gst_flacdec_src_query): Only return true if we actually filled something in. Prevents player applications from showing a random length for flac files. * gst-libs/gst/riff/riff-read.c: (gst_riff_read_class_init), (gst_riff_read_use_event), (gst_riff_read_handle_event), (gst_riff_read_seek), (gst_riff_read_skip), (gst_riff_read_strh), (gst_riff_read_strf_vids_with_data), (gst_riff_read_strf_auds_with_data), (gst_riff_read_strf_iavs): OK, ok, so I implemented event handling. Apparently it's normal that we receive random events at random points without asking for it. * gst/avi/gstavidemux.c: (gst_avi_demux_reset), (gst_avi_demux_src_convert), (gst_avi_demux_handle_src_query), (gst_avi_demux_handle_src_event), (gst_avi_demux_stream_index), (gst_avi_demux_sync), (gst_avi_demux_stream_scan), (gst_avi_demux_massage_index), (gst_avi_demux_stream_header), (gst_avi_demux_handle_seek), (gst_avi_demux_process_next_entry), (gst_avi_demux_stream_data), (gst_avi_demux_loop): * gst/avi/gstavidemux.h: Implement non-lineair chunk handling and subchunk processing. The first solves playback of AVI files where the audio and video data of individual buffers that we read are not synchronized. This should not happen according to the wonderful AVI specs, but of course it does happen in reality. It is also a prerequisite for the second. Subchunk processing allows us to cut chunks in small pieces and process each of these pieces separately. This is required because I've seen several AVI files with incredibly large audio chunks, even some files with only one audio chunk for the whole file. This allows for proper playback including seeking. This patch is supposed to fix all AVI A/V sync issues. * gst/flx/gstflxdec.c: (gst_flxdec_class_init), (flx_decode_chunks), (flx_decode_color), (gst_flxdec_loop): Work. * gst/modplug/gstmodplug.cc: Proper return value setting for the query() function. * gst/playback/gstplaybasebin.c: (setup_source): Being in non-playing state (after, e.g., EOS) is not necessarily a bad thing. Allow for that. This fixes playback of short files. They don't actually playback fully now, because the clock already runs. This means that small files (<500kB) with a small length (<2sec) will still not or barely play. Other files, such as mod or flx, will work correctly, however.
2004-09-28remove last mention of kio plugin (in the dist section)Christian Schaller1-1/+0
Original commit message from CVS: remove last mention of kio plugin (in the dist section)
2004-09-28ext/speex/: Rewrote speex encoder, make sure it can be embedded in ogg.Wim Taymans1-0/+27
Original commit message from CVS: * ext/speex/gstspeex.c: (plugin_init): * ext/speex/gstspeexdec.c: (gst_speex_dec_base_init), (gst_speex_dec_class_init), (speex_dec_get_formats), (speex_get_event_masks), (speex_get_query_types), (gst_speex_dec_init), (speex_dec_convert), (speex_dec_src_query), (speex_dec_src_event), (speex_dec_event), (speex_dec_chain), (gst_speexdec_get_property), (gst_speexdec_set_property), (speex_dec_change_state): * ext/speex/gstspeexdec.h: * ext/speex/gstspeexenc.c: (gst_speexenc_get_formats), (gst_speexenc_get_type), (speex_caps_factory), (raw_caps_factory), (gst_speexenc_base_init), (gst_speexenc_class_init), (gst_speexenc_sinkconnect), (gst_speexenc_convert_src), (gst_speexenc_convert_sink), (gst_speexenc_get_query_types), (gst_speexenc_src_query), (gst_speexenc_init), (gst_speexenc_get_tag_value), (comment_init), (comment_add), (gst_speexenc_metadata_set1), (gst_speexenc_set_metadata), (gst_speexenc_setup), (gst_speexenc_buffer_from_data), (gst_speexenc_push_buffer), (gst_speexenc_set_header_on_caps), (gst_speexenc_chain), (gst_speexenc_get_property), (gst_speexenc_set_property), (gst_speexenc_change_state): * ext/speex/gstspeexenc.h: Rewrote speex encoder, make sure it can be embedded in ogg. Implemented speex decoder.
2004-09-28remove kio from specChristian Schaller2-1/+4
Original commit message from CVS: remove kio from spec
2004-09-28Remove non-working ugly kioplugin Markey has new and much improved one in ↵Christian Schaller3-72/+7
Amarok which he will send upstream Original commit message from CVS: Remove non-working ugly kioplugin Markey has new and much improved one in Amarok which he will send upstream