summaryrefslogtreecommitdiffstats
path: root/gst/matroska/matroska-demux.c
Commit message (Collapse)AuthorAgeFilesLines
* matroskademux: Fix late tags findingThiago Santos2009-10-141-2/+3
| | | | Use the correct taglist variable when notifying of late tags.
* matroskademux: fix strstr() usage on possibly unterminated stringRené Stadler2009-10-081-1/+1
|
* matroskademux: Change one GST_WARNING to a GST_DEBUGSebastian Dröge2009-10-031-1/+1
|
* matroskademux: use proper order for no-more-pads and newsegment and tag sendingMark Nauwelaerts2009-09-231-12/+47
|
* matroskademux: sprinkle a few branch prediction macrosMark Nauwelaerts2009-09-231-8/+7
|
* Remove Ronald Bultje from Authors fieldDavid Schleef2009-09-051-1/+1
| | | | | | Replaced with "GStreamer maintainers <gstreamer-devel@lists.sourceforge.net>" or just removed, depending on the number of other authors.
* matroskademux: Correctly handle NULL GstIndexSebastian Dröge2009-09-041-1/+1
|
* matroska: remove dead assignmentsEdward Hervey2009-08-101-3/+2
|
* matroska: Adds support to muxing/demuxing WMAThiago Santos2009-08-091-11/+15
| | | | | | Adds support for muxing wma audio family and fixes demuxing of wma family in matroskademux. matroskademux was broken because it missed codec_data.
* matroska: add kate subtitle support to matroska muxer and demuxerVincent Penquerc'h2009-08-081-1/+5
| | | | See #525743.
* matroskademux: Answer SEEKING queries in the original formatSebastian Dröge2009-07-211-1/+1
|
* matroskademux: Implement SEEKING querySebastian Dröge2009-07-201-0/+16
|
* matroske: fix compiler errorWim Taymans2009-06-231-4/+4
| | | | | | change gpointer to guint8 * for codec_state and codec_priv as some functions operate on those types and it avoids breaking strict-aliasing rules.
* matroskademux: avoid leaking buffersWim Taymans2009-06-231-2/+11
| | | | | | | | Don't leak buffers when resyncing to a keyframe. Avoid leaking buffers when exiting the loop on error conditions. Add some more debug info. Fixes #585911
* matroska-demux: post container-format tagsTim-Philipp Müller2009-06-221-5/+4
|
* matroskademux: Fix leaking of the Matroska TITLE elementSebastian Dröge2009-06-171-0/+1
|
* matroskademux: Populate a GstIndex that is set on matroskademuxSebastian Dröge2009-05-221-3/+106
|
* matroskademux: Recognise PGS subpicture streams - the bluray format.Jan Schmidt2009-05-211-1/+3
| | | | | Recognise and apply appropriate caps to PGS (Presentation Graphic Stream) subpicture streams.
* matroskademux: Only search for the index entry onceSebastian Dröge2009-05-111-4/+7
|
* matroskademux: Use the first index entry if it's after the seek positionSebastian Dröge2009-05-111-0/+3
|
* matroskademux: Improve/optimize seekingSebastian Dröge2009-05-111-51/+55
| | | | | | | | | First of all a keyframe seek should be done to the keyframe right before the requested position and not to the keyframe that is nearest to the requested position. Use per track index arrays and use our new binary search function from core to speed up the search.
* matroska: fix printf format to agree with argumentDavid Schleef2009-05-091-1/+1
|
* matroskademux: add some debuggingWim Taymans2009-05-071-1/+12
|
* matroskademux: parse xiph headers length correctlyWim Taymans2009-05-071-14/+26
| | | | See #580980
* matroskademux: Remove useless variable.Edward Hervey2009-04-181-7/+4
| | | | | iret was never read outside of that loop, and is always being exited if iret was != GST_FLOW_OK anyway.
* Add initial support for muxing/demuxing Speex audioSebastian Dröge2009-04-131-0/+43
| | | | | Note: This is not in the Matroska spec yet Fixes bug #578310.
* matroska: don't alter passed data and especialy don't leak.Stefan Kost2009-03-311-3/+5
| | | | If we need different size, Make a copy, work with that and free it.
* matroska: don't leak read data in demuxerStefan Kost2009-03-311-0/+2
|
* matroskademux: Remove gst_util_dump_mem() calls.Edward Hervey2009-02-271-4/+0
|
* matroskademux: Unref the buffer and not the memory address of the bufferSebastian Dröge2009-02-221-1/+1
|
* Read Matroska Title element for the TITLE tagRobin Stocker2009-02-041-1/+15
| | | | | | | Not all Matroska files have a Tags element which contains information about the title among other things. Most video Matroska files only contain the Title element so we should parse this too. Fixes bug #570435.
* Fix Forte compiler warnings.Jan Schmidt2009-01-301-6/+6
| | | | Don't do void pointer arithmetic. Don't have an unreachable statement.
* gst/matroska/: Some cleanups, refactoring and minor enhancements in caps ↵Mark Nauwelaerts2009-01-081-0/+7
| | | | | | | | | | | | | | | | handling. Original commit message from CVS: * gst/matroska/matroska-demux.c: (gst_matroska_demux_video_caps): * gst/matroska/matroska-mux.c: (gst_matroska_mux_video_pad_setcaps): Some cleanups, refactoring and minor enhancements in caps handling. * gst/matroska/matroska-mux.c: (gst_matroska_mux_class_init), (gst_matroska_mux_init), (gst_matroska_pad_reset), (gst_matroska_pad_free), (gst_matroska_mux_reset), (gst_matroska_mux_video_pad_setcaps), (gst_matroska_mux_request_new_pad): * tests/check/elements/matroskamux.c: (teardown_src_pad): Only remove, release or reset what is appropriate upon state change.
* Add documentation for matroskamux and matroskademux and update the ↵Sebastian Dröge2008-12-051-0/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | inspection xml files. Original commit message from CVS: * docs/plugins/Makefile.am: * docs/plugins/gst-plugins-good-plugins-docs.sgml: * docs/plugins/gst-plugins-good-plugins-sections.txt: * docs/plugins/gst-plugins-good-plugins.args: * docs/plugins/gst-plugins-good-plugins.hierarchy: * docs/plugins/gst-plugins-good-plugins.interfaces: * docs/plugins/inspect/plugin-1394.xml: * docs/plugins/inspect/plugin-aasink.xml: * docs/plugins/inspect/plugin-alaw.xml: * docs/plugins/inspect/plugin-alpha.xml: * docs/plugins/inspect/plugin-alphacolor.xml: * docs/plugins/inspect/plugin-annodex.xml: * docs/plugins/inspect/plugin-apetag.xml: * docs/plugins/inspect/plugin-audiofx.xml: * docs/plugins/inspect/plugin-auparse.xml: * docs/plugins/inspect/plugin-autodetect.xml: * docs/plugins/inspect/plugin-avi.xml: * docs/plugins/inspect/plugin-cacasink.xml: * docs/plugins/inspect/plugin-cairo.xml: * docs/plugins/inspect/plugin-cutter.xml: * docs/plugins/inspect/plugin-debug.xml: * docs/plugins/inspect/plugin-dv.xml: * docs/plugins/inspect/plugin-efence.xml: * docs/plugins/inspect/plugin-effectv.xml: * docs/plugins/inspect/plugin-equalizer.xml: * docs/plugins/inspect/plugin-esdsink.xml: * docs/plugins/inspect/plugin-flac.xml: * docs/plugins/inspect/plugin-flxdec.xml: * docs/plugins/inspect/plugin-gamma.xml: * docs/plugins/inspect/plugin-gconfelements.xml: * docs/plugins/inspect/plugin-gdkpixbuf.xml: * docs/plugins/inspect/plugin-goom.xml: * docs/plugins/inspect/plugin-goom2k1.xml: * docs/plugins/inspect/plugin-halelements.xml: * docs/plugins/inspect/plugin-icydemux.xml: * docs/plugins/inspect/plugin-id3demux.xml: * docs/plugins/inspect/plugin-interleave.xml: * docs/plugins/inspect/plugin-jpeg.xml: * docs/plugins/inspect/plugin-level.xml: * docs/plugins/inspect/plugin-matroska.xml: * docs/plugins/inspect/plugin-monoscope.xml: * docs/plugins/inspect/plugin-mulaw.xml: * docs/plugins/inspect/plugin-multifile.xml: * docs/plugins/inspect/plugin-multipart.xml: * docs/plugins/inspect/plugin-navigationtest.xml: * docs/plugins/inspect/plugin-ossaudio.xml: * docs/plugins/inspect/plugin-png.xml: * docs/plugins/inspect/plugin-pulseaudio.xml: * docs/plugins/inspect/plugin-quicktime.xml: * docs/plugins/inspect/plugin-replaygain.xml: * docs/plugins/inspect/plugin-rtp.xml: * docs/plugins/inspect/plugin-rtsp.xml: * docs/plugins/inspect/plugin-shout2send.xml: * docs/plugins/inspect/plugin-smpte.xml: * docs/plugins/inspect/plugin-soup.xml: * docs/plugins/inspect/plugin-spectrum.xml: * docs/plugins/inspect/plugin-speex.xml: * docs/plugins/inspect/plugin-taglib.xml: * docs/plugins/inspect/plugin-udp.xml: * docs/plugins/inspect/plugin-video4linux2.xml: * docs/plugins/inspect/plugin-videobalance.xml: * docs/plugins/inspect/plugin-videobox.xml: * docs/plugins/inspect/plugin-videocrop.xml: * docs/plugins/inspect/plugin-videoflip.xml: * docs/plugins/inspect/plugin-videomixer.xml: * docs/plugins/inspect/plugin-wavenc.xml: * docs/plugins/inspect/plugin-wavpack.xml: * docs/plugins/inspect/plugin-wavparse.xml: * docs/plugins/inspect/plugin-ximagesrc.xml: * gst/matroska/matroska-demux.c: * gst/matroska/matroska-demux.h: * gst/matroska/matroska-mux.c: * gst/matroska/matroska-mux.h: Add documentation for matroskamux and matroskademux and update the inspection xml files.
* gst/matroska/: Make mkvdemux aware of E-AC3.Edward Hervey2008-11-161-0/+4
| | | | | | | Original commit message from CVS: * gst/matroska/matroska-demux.c: (gst_matroska_demux_audio_caps): * gst/matroska/matroska-ids.h: Make mkvdemux aware of E-AC3.
* gst/matroska/matroska-demux.c: Forward unknown events upstream.Wim Taymans2008-10-271-3/+4
| | | | | | | Original commit message from CVS: * gst/matroska/matroska-demux.c: (gst_matroska_demux_handle_src_event): Forward unknown events upstream.
* Make stuff compile with GST_DISABLE_GST_DEBUG.Tim-Philipp Müller2008-08-301-4/+3
| | | | | | | | | | | | | Original commit message from CVS: * ext/raw1394/gsthdv1394src.c: (gst_hdv1394src_create): * gst/alpha/gstalpha.c: (gst_alpha_get_unit_size): * gst/audiofx/audiocheblimit.c: (generate_coefficients): * gst/avi/gstavidemux.c: (gst_avi_demux_src_convert): * gst/matroska/ebml-read.c: (gst_ebml_read_element_id), (gst_ebml_read_element_length): * gst/matroska/matroska-demux.c: (gst_matroska_demux_check_subtitle_buffer): Make stuff compile with GST_DISABLE_GST_DEBUG.
* gst/matroska/: Add Real[Audio|Video] support to Matroska containers.Edward Hervey2008-08-251-0/+64
| | | | | | | | | | | | | | | | | | Original commit message from CVS: * gst/matroska/matroska-demux.c: (gst_matroska_demux_send_event), (gst_matroska_demux_video_caps), (gst_matroska_demux_audio_caps): * gst/matroska/matroska-mux.c: (gst_matroska_mux_video_pad_setcaps), (gst_matroska_mux_audio_pad_setcaps), (gst_matroska_mux_finish): Add Real[Audio|Video] support to Matroska containers. It works fine for: * decoding real audio/video streams contained in mkv * 'transmuxing' real (.rm) files into .mkv files It will not work though for encoding real[audio/video] streams that don't contain the 'mdpr_data' extra data on the caps. The reason why this will not work is because I never intended to duplicate virtually all the 'mdpr' block creation into mkvmux. Fixes #536067
* gst/matroska/ebml-read.c: Change some GST_ELEMENT_ERRORs to GST_ERROR_OBJECT ↵Sebastian Dröge2008-08-221-3/+4
| | | | | | | | | | | | | | | | | | | | to make it possible to ignore errors and... Original commit message from CVS: * gst/matroska/ebml-read.c: (gst_ebml_read_element_id), (gst_ebml_read_element_length), (gst_ebml_read_uint), (gst_ebml_read_sint), (gst_ebml_read_float), (gst_ebml_read_header): Change some GST_ELEMENT_ERRORs to GST_ERROR_OBJECT to make it possible to ignore errors and not post any ERROR messages on the bus. * gst/matroska/matroska-demux.c: (gst_matroska_demux_parse_contents): Ignore any errors and not just EOS when parsing the contents of a SeekHead. Errors here are usually caused by truncated files and playback of the file works fine. Fixes playback of the audio_only_chapter_seekbroken.mka file from the MPlayer samples archive.
* gst/matroska/matroska-demux.c: If the duration of a block is unknown only ↵Sebastian Dröge2008-08-211-1/+3
| | | | | | | | | | | | use the timestamp for the first lace and us... Original commit message from CVS: * gst/matroska/matroska-demux.c: (gst_matroska_demux_parse_blockgroup_or_simpleblock): If the duration of a block is unknown only use the timestamp for the first lace and use GST_CLOCK_TIME_NONE as duration for the following laces. Otherwise every lace has the same timestamp which leads to various problems. Really fixes bug #548831.
* gst/matroska/matroska-demux.c: Don't calculate the default duration of a ↵Sebastian Dröge2008-08-211-4/+0
| | | | | | | | | | | | frame from the audio sampling rate. This onl... Original commit message from CVS: * gst/matroska/matroska-demux.c: (gst_matroska_demux_add_stream): Don't calculate the default duration of a frame from the audio sampling rate. This only works for raw audio if every frame contains a single sample and results in broken buffer durations for other formats if no specified default duration is given or the blocks have no duration. Fixes bug #548831.
* gst/matroska/matroska-demux.c: Allow zero sized blocks instead of returning ↵Sebastian Dröge2008-08-211-4/+1
| | | | | | | | | | GST_FLOW_OK. Such blocks are used for tex... Original commit message from CVS: * gst/matroska/matroska-demux.c: (gst_matroska_demux_parse_blockgroup_or_simpleblock): Allow zero sized blocks instead of returning GST_FLOW_OK. Such blocks are used for text/plain subtitles as a gap-filler in some files.
* gst/matroska/matroska-demux.*: Close the current segment if we're doing a ↵Sebastian Dröge2008-08-081-31/+66
| | | | | | | | | | | | | non-flushing seek and send the close-segmen... Original commit message from CVS: * gst/matroska/matroska-demux.c: (gst_matroska_demux_reset), (gst_matroska_demux_element_send_event), (gst_matroska_demux_handle_seek_event), (gst_matroska_demux_loop): * gst/matroska/matroska-demux.h: Close the current segment if we're doing a non-flushing seek and send the close-segment and the new segment of the seek from the streaming thread.
* gst/matroska/matroska-demux.c: When receiving a SEEK event on a specific pad ↵Sebastian Dröge2008-08-021-13/+25
| | | | | | | | | | | | | first search for a seek table entry for ... Original commit message from CVS: * gst/matroska/matroska-demux.c: (gst_matroskademux_do_index_seek), (gst_matroska_demux_element_send_event), (gst_matroska_demux_handle_seek_event), (gst_matroska_demux_handle_src_event): When receiving a SEEK event on a specific pad first search for a seek table entry for the stream of the pad and then fall back to an entry for a different stream.
* Decode the codec private data and following ContentEncoding if necessary.Sebastian Dröge2008-08-021-108/+345
| | | | | | | | | | | | | | | | | | | | | | | Original commit message from CVS: * configure.ac: * gst/matroska/Makefile.am: * gst/matroska/lzo.c: (get_byte), (get_len), (copy), (copy_backptr), (lzo1x_decode), (main): * gst/matroska/lzo.h: * gst/matroska/matroska-demux.c: (gst_matroska_demux_read_track_encoding), (gst_matroska_decompress_data), (gst_matroska_decode_data), (gst_matroska_decode_buffer), (gst_matroska_decode_content_encodings), (gst_matroska_demux_read_track_encodings), (gst_matroska_demux_add_stream), (gst_matroska_demux_parse_blockgroup_or_simpleblock): * gst/matroska/matroska-ids.h: Decode the codec private data and following ContentEncoding if necessary. Support bzip2, lzo and header stripped compression. For lzo use the ffmpeg lzo implementation as liblzo is GPL licensed. Fix zlib decompression.
* gst/matroska/matroska-demux.*: Allow an infinite number of stream inside ↵Sebastian Dröge2008-08-021-46/+73
| | | | | | | | | | | | | | | | | | | Matroska containers and use a GPtrArray for ... Original commit message from CVS: * gst/matroska/matroska-demux.c: (gst_matroska_demux_finalize), (gst_matroska_demux_class_init), (gst_matroska_demux_init), (gst_matroska_demux_combine_flows), (gst_matroska_demux_reset), (gst_matroska_demux_stream_from_num), (gst_matroska_demux_tracknumber_unique), (gst_matroska_demux_add_stream), (gst_matroska_demux_send_event), (gst_matroska_demux_handle_seek_event), (gst_matroska_demux_sync_streams), (gst_matroska_demux_parse_blockgroup_or_simpleblock), (gst_matroska_demux_loop): * gst/matroska/matroska-demux.h: Allow an infinite number of stream inside Matroska containers and use a GPtrArray for storing them instead of allowing "only" 127 streams.
* gst/matroska/: Fix indention everywhere. A broken indent version has added ↵Sebastian Dröge2008-08-021-154/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | newlines after every single declaration so... Original commit message from CVS: * gst/matroska/ebml-read.c: (gst_ebml_read_class_init), (gst_ebml_read_change_state), (gst_ebml_read_element_level_up), (gst_ebml_read_peek_bytes), (gst_ebml_read_element_id), (gst_ebml_read_element_length), (gst_ebml_peek_id), (gst_ebml_read_get_length), (gst_ebml_read_skip), (gst_ebml_read_buffer), (gst_ebml_read_bytes), (gst_ebml_read_uint), (gst_ebml_read_sint), (_ext2dbl), (gst_ebml_read_float), (gst_ebml_read_ascii), (gst_ebml_read_date), (gst_ebml_read_master), (gst_ebml_read_binary), (gst_ebml_read_header): * gst/matroska/ebml-write.c: (gst_ebml_write_element_id), (gst_ebml_write_element_size), (gst_ebml_write_uint), (gst_ebml_write_sint), (gst_ebml_write_ascii), (gst_ebml_write_master_start), (gst_ebml_write_master_finish), (gst_ebml_replace_uint): * gst/matroska/matroska-demux.c: (gst_matroska_demux_reset), (gst_matroska_demux_read_track_encoding), (gst_matroska_demux_read_track_encodings), (gst_matroska_demux_add_stream), (gst_matroskademux_do_index_seek), (gst_matroska_demux_send_event), (gst_matroska_demux_element_send_event), (gst_matroska_demux_handle_seek_event), (gst_matroska_demux_handle_src_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_parse_attached_file), (gst_matroska_demux_parse_attachments), (gst_matroska_demux_parse_chapters), (gst_matroska_ebmlnum_uint), (gst_matroska_ebmlnum_sint), (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_push_dvd_clut_change_event), (gst_matroska_demux_add_mpeg_seq_header), (gst_matroska_demux_add_wvpk_header), (gst_matroska_demux_check_subtitle_buffer), (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_stream), (gst_matroska_demux_loop), (gst_matroska_demux_video_caps), (gst_matroska_demux_audio_caps), (gst_matroska_demux_subtitle_caps), (gst_matroska_demux_change_state): * gst/matroska/matroska-ids.c: * gst/matroska/matroska-mux.c: (gst_matroska_mux_class_init), (gst_matroska_mux_reset), (gst_matroska_mux_handle_sink_event), (gst_matroska_mux_video_pad_setcaps), (xiph3_streamheader_to_codecdata), (vorbis_streamheader_to_codecdata), (theora_streamheader_to_codecdata), (gst_matroska_mux_audio_pad_setcaps), (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_mux_best_pad), (gst_matroska_mux_write_data), (gst_matroska_mux_collected), (gst_matroska_mux_change_state): Fix indention everywhere. A broken indent version has added newlines after every single declaration some time ago.
* gst/matroska/matroska-demux.c: If no Tracks are found error out instead of ↵Sebastian Dröge2008-08-021-2/+2
| | | | | | | | | | trying it again until the end of time. Original commit message from CVS: * gst/matroska/matroska-demux.c: (gst_matroska_demux_loop_stream_parse_id): If no Tracks are found error out instead of trying it again until the end of time.
* gst/matroska/matroska-demux.c: Fix demuxing of raw integer audio. The ↵Sebastian Dröge2008-08-021-1/+1
| | | | | | | | | samples are unsigned only for 8 bit and signed ... Original commit message from CVS: * gst/matroska/matroska-demux.c: (gst_matroska_demux_audio_caps): Fix demuxing of raw integer audio. The samples are unsigned only for 8 bit and signed otherwise, not the other way around.
* gst/matroska/matroska-demux.c: Handle position and duration query in DEFAULT ↵Sebastian Dröge2008-07-021-32/+69
| | | | | | | | | | | | | | | format if the pad's track has a default ... Original commit message from CVS: * gst/matroska/matroska-demux.c: (gst_matroska_demux_class_init), (gst_matroska_demux_add_stream), (gst_matroska_demux_query), (gst_matroska_demux_element_query), (gst_matroska_demux_handle_src_query), (gst_matroska_demux_handle_seek_event): Handle position and duration query in DEFAULT format if the pad's track has a default frame duration set. Fix seeking now that the segment's duration doesn't contain the (possibly wrong or inaccurate) duration of the Matroska file.