summaryrefslogtreecommitdiffstats
path: root/gst/matroska
Commit message (Collapse)AuthorAgeFilesLines
...
* gst/matroska/matroska-demux.c: Fix buggy format strings in macros. (makes it ↵Julien Moutte2008-06-231-4/+4
| | | | | | | | | | | | build on OS X again...) Original commit message from CVS: 2008-06-23 Julien Moutte <julien@fluendo.com> * gst/matroska/matroska-demux.c: (gst_matroska_demux_read_track_encoding), (gst_matroska_demux_parse_blockgroup_or_simpleblock): Fix buggy format strings in macros. (makes it build on OS X again...)
* gst/matroska/: Fix demuxing of WavPack files. Muxing is still broken.Sebastian Dröge2008-06-192-37/+127
| | | | | | | | | Original commit message from CVS: * gst/matroska/matroska-demux.c: (gst_matroska_demux_add_wvpk_header), (gst_matroska_demux_audio_caps): * gst/matroska/matroska-ids.h: Fix demuxing of WavPack files. Muxing is still broken.
* gst/matroska/: Add a "vfunc" to the track context for postprocessing frames ↵Sebastian Dröge2008-06-192-40/+121
| | | | | | | | | | | | | | | | | | | | | and convert the wavpack and subtitle post... Original commit message from CVS: * gst/matroska/matroska-demux.c: (gst_matroska_track_free), (gst_matroska_demux_add_mpeg_seq_header), (gst_matroska_demux_add_wvpk_header), (gst_matroska_demux_check_subtitle_buffer), (gst_matroska_demux_parse_blockgroup_or_simpleblock), (gst_matroska_demux_video_caps), (gst_matroska_demux_audio_caps), (gst_matroska_demux_subtitle_caps): * gst/matroska/matroska-ids.h: Add a "vfunc" to the track context for postprocessing frames and convert the wavpack and subtitle postprocessing to this vfunc. Copy buffer flags in those functions to the new buffers too. Parse CodecState elements of Blocks. Add a postprocessing function for MPEG video that adds the sequence header from the codec private data or codec state to the frames if it's not already there.
* gst/matroska/matroska-demux.c: If a gap of more than 1/2 second is found in ↵Sebastian Dröge2008-06-191-9/+21
| | | | | | | | | | | | | | | | one stream send a Original commit message from CVS: * gst/matroska/matroska-demux.c: (gst_matroska_demux_parse_blockgroup_or_simpleblock): If a gap of more than 1/2 second is found in one stream send a NEWSEGMENT event to not stall the pipeline if the gap is too large. This also fixes Matroska files where the first buffer doesn't start at timestamp 0. Fixes bug #429322. The duration of a block is the default duration multiplied with the number of laces. Every lace is one frame and the default duration is the duration of one frame. This fixes playback of files that use lacing for some tracks.
* gst/matroska/matroska-demux.c: Update FIXME/TODOs and only ignore EOS at the ↵Sebastian Dröge2008-06-181-16/+5
| | | | | | | | | | central, important place instead of seve... Original commit message from CVS: * gst/matroska/matroska-demux.c: (gst_matroska_demux_parse_contents_seekentry): Update FIXME/TODOs and only ignore EOS at the central, important place instead of several places.
* gst/matroska/matroska-demux.c: Improve debug output everywhere and fix the ↵Sebastian Dröge2008-06-185-574/+743
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | EOS logic. Original commit message from CVS: * gst/matroska/matroska-demux.c: (gst_matroska_demux_reset), (gst_matroska_demux_stream_from_num), (gst_matroska_demux_encoding_cmp), (gst_matroska_demux_encoding_order_unique), (gst_matroska_demux_read_track_encoding), (gst_matroska_demux_read_track_encodings), (gst_matroska_demux_tracknumber_unique), (gst_matroska_demux_add_stream), (gst_matroska_demux_init_stream), (gst_matroska_demux_parse_tracks), (gst_matroska_demux_parse_index_cuetrack), (gst_matroska_demux_parse_index_pointentry), (gst_matroska_demux_parse_index), (gst_matroska_demux_parse_info), (gst_matroska_demux_parse_metadata_id_simple_tag), (gst_matroska_demux_parse_metadata_id_tag), (gst_matroska_demux_parse_metadata), (gst_matroska_demux_parse_attached_file), (gst_matroska_demux_parse_attachments), (gst_matroska_demux_parse_chapters), (gst_matroska_demux_sync_streams), (gst_matroska_decode_buffer), (gst_matroska_demux_parse_blockgroup_or_simpleblock), (gst_matroska_demux_parse_cluster), (gst_matroska_demux_parse_contents_seekentry), (gst_matroska_demux_parse_contents), (gst_matroska_demux_loop_stream_parse_id), (gst_matroska_demux_loop): Improve debug output everywhere and fix the EOS logic. Check the values of the ContentEncoding elements more strictly and don't use tracks for which it's invalid. Check that the track number is unique for this stream. Check that seek positions are below G_MAXINT64 as our seeks are int64-based and overflows will fail badly. After seeks also don't push SimpleBlocks until the first one containing a keyframe is found. Before this was done only for normal Blocks. Update some FIXME/TODOs. * gst/matroska/ebml-read.c: (gst_ebml_read_peek_bytes), (gst_ebml_read_utf8), (gst_ebml_read_header): Improve debug output. * gst/matroska/matroska-ids.c: (gst_matroska_track_init_video_context): * gst/matroska/matroska-ids.h: * gst/matroska/matroska-mux.c: (gst_matroska_mux_video_pad_setcaps): Remove eye mode and don't parse it anymore. We can't use that information in GStreamer yet so it's useless.
* gst/matroska/matroska-demux.c: When comparing index elements with the same ↵Sebastian Dröge2008-06-161-0/+7
| | | | | | | | | time compare their block number. Original commit message from CVS: * gst/matroska/matroska-demux.c: (gst_matroska_index_compare): When comparing index elements with the same time compare their block number.
* gst/matroska/matroska-demux.c: (gst_matroska_demux_parse_attached_file)Tim-Philipp Müller2008-06-161-5/+2
| | | | | | | Original commit message from CVS: * gst/matroska/matroska-demux.c: (gst_matroska_demux_parse_attached_file) Init variable to NULL to avoid compiler warning.
* gst/matroska/: Parse Attachments and post them as GST_TAG_IMAGE if we detect ↵Sebastian Dröge2008-06-166-15/+238
| | | | | | | | | | | | | | | | | | | it as image and otherwise as GST_TAG_ATT... Original commit message from CVS: * gst/matroska/Makefile.am: * gst/matroska/matroska-demux.c: (gst_matroska_demux_reset), (gst_matroska_demux_parse_attached_file), (gst_matroska_demux_parse_attachments), (gst_matroska_demux_parse_contents_seekentry), (gst_matroska_demux_loop_stream_parse_id): * gst/matroska/matroska-demux.h: * gst/matroska/matroska-ids.c: (gst_matroska_register_tags): * gst/matroska/matroska-ids.h: * gst/matroska/matroska.c: (plugin_init): Parse Attachments and post them as GST_TAG_IMAGE if we detect it as image and otherwise as GST_TAG_ATTACHMENT. Include filename and description of the attachments in the caps. Fixes bug #537622.
* gst/matroska/ebml-read.c: Return GST_FLOW_UNEXPECTED instead of ↵Sebastian Dröge2008-06-161-1/+1
| | | | | | | | | | GST_FLOW_ERROR on short reads. Original commit message from CVS: * gst/matroska/ebml-read.c: (gst_ebml_read_peek_bytes): Return GST_FLOW_UNEXPECTED instead of GST_FLOW_ERROR on short reads. If we get less bytes than requested we can't do anything except doing our EOS logic.
* gst/matroska/: Use a GArray for storing the Cue (i.e. seek) information, ↵Sebastian Dröge2008-06-153-69/+132
| | | | | | | | | | | | | | | | | | | | store the CueTrackPositions for every track,... Original commit message from CVS: * gst/matroska/matroska-demux.c: (gst_matroska_demux_reset), (gst_matroskademux_do_index_seek), (gst_matroska_demux_parse_index_cuetrack), (gst_matroska_demux_parse_index_pointentry), (gst_matroska_index_compare), (gst_matroska_demux_parse_index), (gst_matroska_demux_parse_metadata): * gst/matroska/matroska-demux.h: * gst/matroska/matroska-ids.h: Use a GArray for storing the Cue (i.e. seek) information, store the CueTrackPositions for every track, store the block number and optimize searching in the array by sorting it after the last element was added. Fix a small memory leak when trying to parse a tags element that was already parsed.
* gst/matroska/matroska-mux.*: Don't write another SeekHead which indexes all ↵Sebastian Dröge2008-06-152-64/+2
| | | | | | | | | | | | Clusters to the end of the file. This isn... Original commit message from CVS: * gst/matroska/matroska-mux.c: (gst_matroska_mux_reset), (gst_matroska_mux_start), (gst_matroska_mux_finish), (gst_matroska_mux_write_data): * gst/matroska/matroska-mux.h: Don't write another SeekHead which indexes all Clusters to the end of the file. This isn't useful for anything and just increases filesize.
* gst/matroska/ebml-read.c: Prevent unaligned memory access when reading floats.Sebastian Dröge2008-06-151-20/+12
| | | | | | Original commit message from CVS: * gst/matroska/ebml-read.c: (_ext2dbl), (gst_ebml_read_float): Prevent unaligned memory access when reading floats.
* gst/matroska/: Make sure that every Tags element is only parsed once and ↵Sebastian Dröge2008-06-154-1/+41
| | | | | | | | | | | | | it's containing tags are only posted once. Original commit message from CVS: * gst/matroska/ebml-read.c: * gst/matroska/ebml-read.h: * gst/matroska/matroska-demux.c: (gst_matroska_demux_reset), (gst_matroska_demux_parse_metadata): * gst/matroska/matroska-demux.h: Make sure that every Tags element is only parsed once and it's containing tags are only posted once.
* gst/matroska/: Handle EBML elements like Void or CRC32 in the EbmlRead base ↵Sebastian Dröge2008-06-152-45/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | class already. They're not useful in the ... Original commit message from CVS: * gst/matroska/ebml-read.c: (gst_ebml_peek_id), (gst_ebml_read_header): * gst/matroska/matroska-demux.c: (gst_matroska_demux_add_stream), (gst_matroska_demux_parse_tracks), (gst_matroska_demux_parse_index_cuetrack), (gst_matroska_demux_parse_index_pointentry), (gst_matroska_demux_parse_index), (gst_matroska_demux_parse_info), (gst_matroska_demux_parse_metadata_id_simple_tag), (gst_matroska_demux_parse_metadata_id_tag), (gst_matroska_demux_parse_metadata), (gst_matroska_demux_parse_attachments), (gst_matroska_demux_parse_chapters), (gst_matroska_demux_parse_blockgroup_or_simpleblock), (gst_matroska_demux_parse_cluster), (gst_matroska_demux_parse_contents_seekentry), (gst_matroska_demux_parse_contents), (gst_matroska_demux_loop_stream_parse_id): Handle EBML elements like Void or CRC32 in the EbmlRead base class already. They're not useful in the matroska parser and only cause additional code.
* gst/matroska/: Reverse the level list as we usually are only interested in ↵Sebastian Dröge2008-06-142-14/+57
| | | | | | | | | | | | | | | | the first element or want to add a new fir... Original commit message from CVS: * gst/matroska/ebml-read.c: (gst_ebml_level_free), (gst_ebml_finalize), (gst_ebml_read_change_state), (gst_ebml_read_element_level_up), (gst_ebml_read_master): * gst/matroska/matroska-demux.c: (gst_matroska_demux_parse_contents_seekentry): Reverse the level list as we usually are only interested in the first element or want to add a new first element. Having the first element stored at the end and calling g_list_last() and g_list_append() is more expensive. Also use GSlice for allocating the GstEbmlLevel structs.
* gst/matroska/: Use gst_value_serialize() and gst_value_deserialize() for ↵Sebastian Dröge2008-06-132-13/+10
| | | | | | | | | | | | | | transforming tags from some GType to a strin... Original commit message from CVS: * gst/matroska/matroska-demux.c: (gst_matroska_demux_parse_metadata_id_simple_tag): * gst/matroska/matroska-mux.c: (gst_matroska_mux_write_simple_tag), (gst_matroska_mux_write_data): Use gst_value_serialize() and gst_value_deserialize() for transforming tags from some GType to a string and the other way around. The default transformations in GLib don't include transformations from string to number types.
* gst/matroska/matroska-demux.*: Only parse Tracks, SeekHead and SegmentInfo ↵Sebastian Dröge2008-06-132-59/+242
| | | | | | | | | | | | | | | | | | | | | | | elements once but allow Original commit message from CVS: * gst/matroska/matroska-demux.c: (gst_matroska_demux_reset), (gst_matroska_demux_parse_tracks), (gst_matroska_demux_parse_index), (gst_matroska_demux_parse_info), (gst_matroska_demux_parse_attachments), (gst_matroska_demux_parse_chapters), (gst_matroska_demux_parse_contents_seekentry), (gst_matroska_demux_loop_stream_parse_id): * gst/matroska/matroska-demux.h: Only parse Tracks, SeekHead and SegmentInfo elements once but allow Tags multiple times. The first ones can appear more than once but must contain the same content as the first for backup purposes so we ignore all but the first one. Tags can appear multiple times with different content. Jump to all elements except Clusters that are available from a SeekHead to make it more likely to have all required informations before getting to the first Clusters. Add dummy functions for parsing Attachments and Chapters.
* gst/matroska/matroska-mux.c: Update the counter for the number of streams ↵Sebastian Dröge2008-06-111-0/+3
| | | | | | | | | | | when pads are added or removed. This will m... Original commit message from CVS: * gst/matroska/matroska-mux.c: (gst_matroska_mux_request_new_pad), (gst_matroska_mux_release_pad), (gst_matroska_mux_write_data): Update the counter for the number of streams when pads are added or removed. This will make sure that a seek table is generated for files with just one audio stream.
* gst/matroska/: Add some more tags, improve debugging a bit and make sure thatSebastian Dröge2008-06-113-26/+45
| | | | | | | | | | | Original commit message from CVS: * gst/matroska/matroska-demux.c: (gst_matroska_demux_parse_metadata_id_simple_tag): * gst/matroska/matroska-ids.h: * gst/matroska/matroska-mux.c: (gst_matroska_mux_write_simple_tag): Add some more tags, improve debugging a bit and make sure that GValue transformation has succeeded before using the result as a tag.
* gst/matroska/ebml-write.c: Use GDOUBLE_TO_BE() instead of (probably slower) ↵Sebastian Dröge2008-06-106-333/+997
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | custom code. Original commit message from CVS: * gst/matroska/ebml-write.c: (gst_ebml_write_float): Use GDOUBLE_TO_BE() instead of (probably slower) custom code. * gst/matroska/matroska-demux.c: (gst_matroska_demux_base_init), (gst_matroska_demux_class_init), (gst_matroska_demux_init), (gst_matroska_track_free), (gst_matroska_demux_encoding_cmp), (gst_matroska_demux_read_track_encodings), (gst_matroska_demux_add_stream), (gst_matroska_demux_handle_src_query), (gst_matroska_demux_init_stream), (gst_matroska_demux_parse_index_cuetrack), (gst_matroska_demux_parse_index_pointentry), (gst_matroska_demux_parse_info), (gst_matroska_demux_parse_metadata_id_simple_tag), (gst_matroska_demux_parse_metadata), (gst_matroska_demux_add_wvpk_header), (gst_matroska_decode_buffer), (gst_matroska_demux_parse_blockgroup_or_simpleblock), (gst_matroska_demux_parse_cluster), (gst_matroska_demux_parse_contents_seekentry), (gst_matroska_demux_loop_stream_parse_id), (gst_matroska_demux_loop), (gst_matroska_demux_video_caps), (gst_matroska_demux_audio_caps), (gst_matroska_demux_subtitle_caps): * gst/matroska/matroska-demux.h: * gst/matroska/matroska-ids.c: (gst_matroska_track_init_subtitle_context): * gst/matroska/matroska-ids.h: * gst/matroska/matroska-mux.c: (gst_matroska_mux_base_init), (gst_matroska_mux_class_init), (gst_matroska_mux_init), (gst_matroska_mux_create_uid), (gst_matroska_mux_reset), (gst_matroska_mux_video_pad_setcaps), (gst_matroska_mux_audio_pad_setcaps), (gst_matroska_mux_subtitle_pad_setcaps), (gst_matroska_mux_request_new_pad), (gst_matroska_mux_track_header), (gst_matroska_mux_start), (gst_matroska_mux_write_simple_tag), (gst_matroska_mux_finish), (gst_matroska_mux_write_data), (gst_matroska_mux_collected), (gst_matroska_mux_set_property): Add many FIXMEs/TODOs all over the matroska muxer and demuxer elements, do some checks for valid values in the demuxer, handle tracktimecodescale in the demuxer, set correct default values for all settings in the demuxer, review and add all missing matroska IDs and some more raw YUV formats, and some trivial cleanup.
* gst/matroska/ebml-write.c: Unref the write cache in finalize if it was set ↵Sebastian Dröge2008-06-041-1/+14
| | | | | | | | | | and add add "FIXME" to a comment that need... Original commit message from CVS: * gst/matroska/ebml-write.c: (gst_ebml_write_finalize), (gst_ebml_write_set_cache): Unref the write cache in finalize if it was set and add add "FIXME" to a comment that needs it.
* gst/matroska/matroska-demux.c: Convert subtitle palette info in VobSub ↵Mark Nauwelaerts2008-05-121-2/+13
| | | | | | | | | | private data from VobSub's (buggy) RGB to YUV. Original commit message from CVS: * gst/matroska/matroska-demux.c: (gst_matroska_demux_push_dvd_clut_change_event): Convert subtitle palette info in VobSub private data from VobSub's (buggy) RGB to YUV.
* gst/matroska/matroska-mux.c: Update the track duration if the old one was ↵Sjoerd Simons2008-05-081-1/+1
| | | | | | | | | | invalid. Original commit message from CVS: Patch by: Sjoerd Simons <sjoerd at luon dot net> * gst/matroska/matroska-mux.c: (gst_matroska_mux_collected): Update the track duration if the old one was invalid. Fixes bug #532117.
* gst/matroska/matroska-demux.c: Fix open-ended seeks in matroskademuxMark Nauwelaerts2008-04-141-8/+11
| | | | | | | | | Original commit message from CVS: * gst/matroska/matroska-demux.c: (gst_matroska_demux_handle_seek_event): Fix open-ended seeks in matroskademux Patch by: Mark Nauwelaerts <manauw skynet be> Fixes: #526557
* gst/matroska/: Fix the Forte build by making function declaration signatures ↵Jan Schmidt2008-04-092-9/+10
| | | | | | | | | | | | | match the implementations. Original commit message from CVS: * gst/matroska/ebml-read.c: (gst_ebml_read_seek): * gst/matroska/matroska-demux.c: (gst_matroska_demux_handle_seek_event), (gst_matroska_demux_parse_contents_seekentry), (gst_matroska_demux_loop): Fix the Forte build by making function declaration signatures match the implementations.
* gst/matroska/ebml-ids.h: Add ID for EBML CRC32 elements.Sebastian Dröge2008-03-083-25/+84
| | | | | | | | | | | | | | | | Original commit message from CVS: * gst/matroska/ebml-ids.h: Add ID for EBML CRC32 elements. * gst/matroska/Makefile.am: * gst/matroska/ebml-read.c: (gst_ebml_finalize), (gst_ebml_read_class_init), (gst_ebml_read_peek_bytes), (gst_ebml_read_get_length), (_ext2dbl), (gst_ebml_read_float), (gst_ebml_read_header): Support reading 80bit floats, add finalize method to clean up in any case, support reading length/id elements with any length as long as it's smaller than our supported maximum, don't leak buffers if reading as much data as we wanted failed and some smaller cleanup.
* gst/matroska/: Handle return values from pull_range in a more granular way ↵Wim Taymans2008-03-065-670/+739
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | to properly shut down on seeks. Original commit message from CVS: * gst/matroska/ebml-read.c: (gst_ebml_read_peek_bytes), (gst_ebml_read_pull_bytes), (gst_ebml_read_element_id), (gst_ebml_read_element_length), (gst_ebml_peek_id), (gst_ebml_read_skip), (gst_ebml_read_buffer), (gst_ebml_read_bytes), (gst_ebml_read_uint), (gst_ebml_read_sint), (gst_ebml_read_float), (gst_ebml_read_ascii), (gst_ebml_read_utf8), (gst_ebml_read_date), (gst_ebml_read_master), (gst_ebml_read_binary), (gst_ebml_read_header): * gst/matroska/ebml-read.h: * gst/matroska/matroska-demux.c: (gst_matroska_demux_combine_flows), (gst_matroska_demux_reset), (gst_matroska_demux_read_track_encodings), (gst_matroska_demux_add_stream), (gst_matroska_demux_handle_src_query), (gst_matroska_demux_handle_seek_event), (gst_matroska_demux_init_stream), (gst_matroska_demux_parse_tracks), (gst_matroska_demux_parse_index_cuetrack), (gst_matroska_demux_parse_index_pointentry), (gst_matroska_demux_parse_index), (gst_matroska_demux_parse_info), (gst_matroska_demux_parse_metadata_id_simple_tag), (gst_matroska_demux_parse_metadata_id_tag), (gst_matroska_demux_parse_metadata), (gst_matroska_demux_sync_streams), (gst_matroska_demux_push_hdr_buf), (gst_matroska_demux_push_flac_codec_priv_data), (gst_matroska_demux_push_xiph_codec_priv_data), (gst_matroska_demux_add_wvpk_header), (gst_matroska_demux_check_subtitle_buffer), (gst_matroska_demux_parse_blockgroup_or_simpleblock), (gst_matroska_demux_parse_cluster), (gst_matroska_demux_parse_contents_seekentry), (gst_matroska_demux_parse_contents), (gst_matroska_demux_loop_stream_parse_id), (gst_matroska_demux_loop_stream), (gst_matroska_demux_loop): * gst/matroska/matroska-demux.h: * gst/matroska/matroska-ids.h: Handle return values from pull_range in a more granular way to properly shut down on seeks. Combine return values from push. Implement proper error handling. Prepare for handling seeking correctly.
* gst/matroska/ebml-read.c: Use GINT64 formatting constants from GLIB.Jan Schmidt2008-03-033-43/+82
| | | | | | | | | | | | | | | | Original commit message from CVS: * gst/matroska/ebml-read.c: Use GINT64 formatting constants from GLIB. * gst/matroska/matroska-demux.c: Add some guards to avoid a possible division by 0 and crashing with NULL events on some systems. Use gst_gdouble_to_guint64 somewhere instead of an implicit conversion. * gst/matroska/matroska-mux.c: Check for invalid timestamps in a bunch of places to avoid writing bogus durations into the output file. Fix some double<->gint64 conversions that weren't using gst_guint64_to_gdouble
* gst/matroska/: Fix Dirac mapping. I had previously added a VfW-type ↵David Schleef2008-02-293-4/+9
| | | | | | | | | | | | mapping, but it looks like Dirac will get a nati... Original commit message from CVS: * gst/matroska/matroska-demux.c: * gst/matroska/matroska-ids.h: * gst/matroska/matroska-mux.c: Fix Dirac mapping. I had previously added a VfW-type mapping, but it looks like Dirac will get a native Matroska mapping, and this is the most likely method.
* gst/matroska/matroska-demux.c: Flag keyframe and delta units correctly when ↵Julien Moutte2008-02-081-0/+6
| | | | | | | | | | | | | dealign with a Original commit message from CVS: 2008-02-08 Julien Moutte <julien@fluendo.com> * gst/matroska/matroska-demux.c: (gst_matroska_demux_parse_blockgroup_or_simpleblock): Flag keyframe and delta units correctly when dealign with a BlockGroup. Fixes: #514397
* gst/matroska/ebml-write.c: Don't leak buffers when we don't push them ↵Bjarne Rosengren2008-02-071-0/+3
| | | | | | | | | | downstream. Original commit message from CVS: Patch by: Bjarne Rosengren <bjarne at axis dot com> * gst/matroska/ebml-write.c: (gst_ebml_write_element_push): Don't leak buffers when we don't push them downstream. Fixes bug #514965.
* gst/matroska/matroska-mux.c: Also fix up pad templates to indicate that ↵Tim-Philipp Müller2008-01-081-1/+5
| | | | | | | | | | image/jpeg doesn't absolutely require the fra... Original commit message from CVS: * gst/matroska/matroska-mux.c: (COMMON_VIDEO_CAPS_NO_FRAMERATE), (videosink_templ): Also fix up pad templates to indicate that image/jpeg doesn't absolutely require the framerate property to be set (#504081).
* gst/matroska/matroska-mux.*: Keep track of first and last timestamps for ↵Wouter Cloetens2008-01-082-16/+48
| | | | | | | | | | | | | | | | | | | | each incoming stream, so we can calculate th... Original commit message from CVS: Based on patch by: Wouter Cloetens <wouter at mind be> * gst/matroska/matroska-mux.c: (gst_matroska_mux_video_pad_setcaps), (gst_matroska_mux_request_new_pad), (gst_matroska_mux_release_pad), (gst_matroska_mux_finish), (gst_matroska_mux_collected): * gst/matroska/matroska-mux.h: Keep track of first and last timestamps for each incoming stream, so we can calculate the total duration for live sources and other input where we can't query the duration from the start or where there's no constant framerate from which we can deduce the duration; also use calculated/observed duration if it is bigger than the previously queried duration. Furthermore, use gst_pad_query_peer_duration() and take into account that it may return TRUE but still a duration of CLOCK_TIME_NONE, which easily screws up comparisons when using unsigned integers. Fixes #504081.
* gst/matroska/: Extract palette data for dvd subpicture streams and send it ↵Mark Nauwelaerts2007-11-132-0/+68
| | | | | | | | | | | | | | downstream as custom gstreamer dvd event (... Original commit message from CVS: Patch by: Mark Nauwelaerts <manauw skynet be> * gst/matroska/matroska-demux.c: (gst_matroska_demux_push_dvd_clut_change_event), (gst_matroska_demux_parse_blockgroup_or_simpleblock), (gst_matroska_demux_subtitle_caps): * gst/matroska/matroska-ids.h: Extract palette data for dvd subpicture streams and send it downstream as custom gstreamer dvd event (fixes #453417).
* gst/matroska/matroska-demux.c: Fix setting the discont flag on the first ↵Tim-Philipp Müller2007-09-271-0/+6
| | | | | | | | | | | buffer pushed downstream for formats with pr... Original commit message from CVS: * gst/matroska/matroska-demux.c: Fix setting the discont flag on the first buffer pushed downstream for formats with private codec data that needs to be deserialised into buffers (such as vorbis and FLAC when in a matroska container).
* Fix build against core CVS.Tim-Philipp Müller2007-07-111-3/+3
| | | | | | | | | | | | | | | | | | | | | | | Original commit message from CVS: * ext/cairo/gsttimeoverlay.c: (gst_cairo_time_overlay_transform): * ext/jpeg/gstjpegenc.c: (gst_jpegenc_chain): * ext/libpng/gstpngenc.c: (gst_pngenc_chain): * ext/wavpack/gstwavpackdec.c: (gst_wavpack_dec_chain): * gst/debug/gstnavigationtest.c: (gst_navigationtest_transform): * gst/effectv/gstaging.c: (gst_agingtv_transform): * gst/effectv/gstdice.c: (gst_dicetv_transform): * gst/effectv/gstedge.c: (gst_edgetv_transform): * gst/effectv/gstquark.c: (gst_quarktv_transform): * gst/effectv/gstrev.c: (gst_revtv_transform): * gst/effectv/gstshagadelic.c: (gst_shagadelictv_transform): * gst/effectv/gstvertigo.c: (gst_vertigotv_transform): * gst/effectv/gstwarp.c: (gst_warptv_transform): * gst/matroska/matroska-demux.c: (gst_matroska_demux_add_wvpk_header), (gst_matroska_demux_check_subtitle_buffer), (gst_matroska_decode_buffer): * gst/videofilter/gstvideoflip.c: (gst_video_flip_transform): Fix build against core CVS.
* gst/matroska/Makefile.am: If zlib is available and used, we must link it ↵Tim-Philipp Müller2007-01-051-1/+2
| | | | | | | | | explicitly for things to work on MingW (fixe... Original commit message from CVS: * gst/matroska/Makefile.am: If zlib is available and used, we must link it explicitly for things to work on MingW (fixes #392855).
* gst/matroska/matroska-mux.c: The "signed" field in audio caps is of boolean ↵Tim-Philipp Müller2006-12-241-8/+27
| | | | | | | | | | | | | | | | | | type, trying to use gst_structure_get_int... Original commit message from CVS: * gst/matroska/matroska-mux.c: (gst_matroska_mux_audio_pad_setcaps): The "signed" field in audio caps is of boolean type, trying to use gst_structure_get_int() to extract it will fail. Fixing this makes matroskamux accept raw audio input (#387121) (use at your own risk though, due to the matroska spec being not entirely useful in this respect). Also fix up raw audio structures in template caps so that they represent what our setcaps function will actually accept, so that converters know what to convert to. Finally, don't fail if there isn't an "endianness" field in 8-bit PCM caps.
* gst/matroska/: Try harder to extract the framerate for video tracks ↵Tim-Philipp Müller2006-12-113-8/+24
| | | | | | | | | | | | | | | correctly and save it directly instead of convert... Original commit message from CVS: * gst/matroska/matroska-demux.c: (gst_matroska_demux_add_stream), (gst_matroska_demux_video_caps): * gst/matroska/matroska-ids.c: (gst_matroska_track_init_video_context): * gst/matroska/matroska-ids.h: Try harder to extract the framerate for video tracks correctly and save it directly instead of converting it back and forth a few times. Mostly makes a difference for very small framerates (<1). Fixes #380199.
* gst/matroska/matroska-mux.c: Use GST_DEBUG_FUNCPTR; activate request pad ↵Tim-Philipp Müller2006-11-161-3/+7
| | | | | | | | | | | | before returning it. Original commit message from CVS: * gst/matroska/matroska-mux.c: (gst_matroska_mux_class_init), (gst_matroska_mux_request_new_pad): Use GST_DEBUG_FUNCPTR; activate request pad before returning it. * tests/check/elements/matroskamux.c: (setup_src_pad), (setup_sink_pad), (GST_START_TEST): Activate pads before using them.
* gst/matroska/matroska-mux.*: Add basic tag writing support; implement ↵Mark Nauwelaerts2006-11-152-26/+231
| | | | | | | | | | | | | | | releasing pads (#374658). Original commit message from CVS: Patch by: Mark Nauwelaerts <manauw at skynet be> * gst/matroska/matroska-mux.c: (gst_matroska_mux_add_interfaces), (gst_matroska_mux_class_init), (gst_matroska_pad_free), (gst_matroska_mux_reset), (gst_matroska_mux_handle_sink_event), (gst_matroska_mux_request_new_pad), (gst_matroska_mux_release_pad), (gst_matroska_mux_track_header), (gst_matroska_mux_start), (gst_matroska_mux_write_simple_tag), (gst_matroska_mux_finish): * gst/matroska/matroska-mux.h: Add basic tag writing support; implement releasing pads (#374658).
* gst/matroska/matroska-demux.c: Handle opaque/unspecified A_AAC audio codec ↵Tim-Philipp Müller2006-11-151-13/+42
| | | | | | | | | ID (fixes #374737). Original commit message from CVS: * gst/matroska/matroska-demux.c: (gst_matroska_demux_add_stream), (gst_matroska_demux_audio_caps): Handle opaque/unspecified A_AAC audio codec ID (fixes #374737).
* gst/matroska/matroska-mux.c: Add Dirac fourcc.David Schleef2006-11-151-1/+6
| | | | | Original commit message from CVS: * gst/matroska/matroska-mux.c: Add Dirac fourcc.
* gst/matroska/matroska-demux.c: Fix several issues with ↵Michal Benes2006-10-301-18/+46
| | | | | | | | | | | | | encoded/compressed/encrypted/signed tracks; also, remove super... Original commit message from CVS: Patch by: Michal Benes <michal dot benes at itonis tv> * gst/matroska/matroska-demux.c: (gst_matroska_demux_encoding_cmp), (gst_matroska_demux_read_track_encodings), (gst_matroska_decode_buffer): Fix several issues with encoded/compressed/encrypted/signed tracks; also, remove superfluous newline characters from some debug statements. (#366155)
* Printf format fixes.Tim-Philipp Müller2006-10-052-3/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | Original commit message from CVS: * ext/cairo/gsttimeoverlay.c: (gst_cairo_time_overlay_update_font_height): * ext/gdk_pixbuf/pixbufscale.c: (gst_pixbufscale_transform_caps): * ext/jpeg/gstjpegdec.c: (gst_jpeg_dec_parse_image_data): * ext/jpeg/gstjpegenc.c: (gst_jpegenc_chain): * ext/jpeg/gstsmokedec.c: (gst_smokedec_chain): * ext/jpeg/gstsmokeenc.c: (gst_smokeenc_chain): * ext/libpng/gstpngdec.c: (user_endrow_callback): * gst/auparse/gstauparse.c: (gst_au_parse_parse_header): * gst/avi/gstavidemux.c: (gst_avi_demux_parse_superindex), (gst_avi_demux_parse_subindex), (gst_avi_demux_parse_stream), (gst_avi_demux_stream_data): * gst/cutter/gstcutter.c: (gst_cutter_chain): * gst/debug/efence.c: (gst_efence_buffer_alloc), (gst_fenced_buffer_copy): * gst/id3demux/id3v2frames.c: (id3demux_id3v2_parse_frame): * gst/matroska/matroska-demux.c: (gst_matroska_demux_add_stream): * gst/matroska/matroska-mux.c: (gst_matroska_mux_start): * gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_send), (gst_rtspsrc_handle_message): * gst/wavparse/gstwavparse.c: (gst_wavparse_stream_headers): * sys/ximage/ximageutil.c: (ximageutil_xcontext_get): Printf format fixes.
* gst/matroska/: Add support for VOBSUB subtitle tracks and zlib-compressed ↵Frédéric Riss2006-09-042-22/+337
| | | | | | | | | | | | | | | | tracks. Make sure we start on a keyframe af... Original commit message from CVS: Patch by: Frédéric Riss <frederic.riss at gmail dot com> * gst/matroska/matroska-demux.c: (gst_matroska_track_free), (gst_matroska_demux_reset), (gst_matroska_demux_read_track_encodings), (gst_matroska_demux_add_stream), (gst_matroska_decode_buffer), (gst_matroska_demux_parse_blockgroup_or_simpleblock), (gst_matroska_demux_subtitle_caps): * gst/matroska/matroska-ids.h: Add support for VOBSUB subtitle tracks and zlib-compressed tracks. Make sure we start on a keyframe after a seek. (#343348)
* gst/matroska/: not perfect yet though, needs some tweaking in flacdec; also, ↵Tim-Philipp Müller2006-09-042-22/+102
| | | | | | | | | | | | | | | | seeking could be better. Original commit message from CVS: * gst/matroska/matroska-demux.c: (gst_matroska_demux_push_hdr_buf), (gst_matroska_demux_push_flac_codec_priv_data), (gst_matroska_demux_push_xiph_codec_priv_data), (gst_matroska_demux_parse_blockgroup_or_simpleblock), (gst_matroska_demux_video_caps), (gst_matroska_demux_audio_caps): * gst/matroska/matroska-ids.h: Add basic FLAC support (#311586), not perfect yet though, needs some tweaking in flacdec; also, seeking could be better. Do better bounds checking when deserialising vorbis stream headers to make sure we don't read beyond the end of the buffer on bad input.
* gst/matroska/: Send tag event after newsegment event.Tim-Philipp Müller2006-06-292-6/+11
| | | | | | | | | Original commit message from CVS: * gst/matroska/matroska-demux.c: (gst_matroska_demux_add_stream), (gst_matroska_demux_send_event), (gst_matroska_demux_loop_stream_parse_id): * gst/matroska/matroska-ids.h: Send tag event after newsegment event.
* gst/matroska/: Try to fix up broken matroska files containing subtitle ↵Tim-Philipp Müller2006-06-223-2/+84
| | | | | | | | | | | | | | | | | | | streams with non-UTF8 character encodings (cou... Original commit message from CVS: * gst/matroska/matroska-demux.c: (gst_matroska_demux_check_subtitle_buffer), (gst_matroska_demux_parse_blockgroup_or_simpleblock), (gst_matroska_demux_subtitle_caps): * gst/matroska/matroska-ids.c: (gst_matroska_track_init_subtitle_context): * gst/matroska/matroska-ids.h: Try to fix up broken matroska files containing subtitle streams with non-UTF8 character encodings (courtesy of mkvmerge) using either the encoding specified in the GST_SUBTITLE_ENCODING environment variable or the current locale's character set if it is non-UTF8. Fixes #337076.