summaryrefslogtreecommitdiffstats
path: root/gst-libs/gst/riff/riff-read.c
AgeCommit message (Collapse)AuthorFilesLines
2004-10-06gst/wavparse/gstwavparse.c: add ATRAC3 to STATIC CAPS to fix a warningStéphane Loeuillet1-1/+1
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-02gst-libs/gst/riff/riff-media.c: Add DIB fourcc (raw, palettized 8-bit RGB).Ronald S. Bultje1-2/+2
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-01ext/dvdread/dvdreadsrc.c: Fix. Don't do one big huge loop around the whole ↵Ronald S. Bultje1-0/+1
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-29ext/flac/gstflacdec.c: Only return true if we actually filled something in. ↵Ronald S. Bultje1-56/+80
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-23ext/dirac/: Do something. Don't actually know if this works because I don't ↵Ronald S. Bultje1-3/+2
have a demuxer yet. Original commit message from CVS: * ext/dirac/Makefile.am: * ext/dirac/gstdirac.cc: * ext/dirac/gstdiracdec.cc: * ext/dirac/gstdiracdec.h: Do something. Don't actually know if this works because I don't have a demuxer yet. * ext/gsm/gstgsmdec.c: (gst_gsmdec_getcaps): Add channels=1 to caps returned from _getcaps(). * ext/ogg/gstogmparse.c: (gst_ogm_audio_parse_get_type), (gst_ogm_video_parse_get_type), (gst_ogm_audio_parse_base_init), (gst_ogm_video_parse_base_init), (gst_ogm_parse_init), (gst_ogm_audio_parse_init), (gst_ogm_video_parse_init), (gst_ogm_parse_sink_convert), (gst_ogm_parse_chain), (gst_ogm_parse_change_state): Separate between audio/video so ogmaudioparse actually uses the audio pad templates. Both audio and video work now, including autoplugging. Also use sometimes-srcpad hack. * gst-libs/gst/riff/riff-read.c: (gst_riff_read_seek): Handle events better. Don't hang on infinite loops. * gst/avi/gstavidemux.c: (gst_avi_demux_class_init), (gst_avi_demux_init), (gst_avi_demux_reset), (gst_avi_demux_src_convert), (gst_avi_demux_handle_src_query), (gst_avi_demux_stream_header), (gst_avi_demux_stream_data), (gst_avi_demux_change_state): * gst/avi/gstavidemux.h: Improve A/V sync. Still not perfect. * gst/matroska/ebml-read.c: (gst_ebml_read_seek), (gst_ebml_read_skip): Handle events better. * gst/qtdemux/qtdemux.c: (gst_qtdemux_handle_sink_event), (gst_qtdemux_loop_header), (qtdemux_parse_trak), (qtdemux_audio_caps): Add IMA4. Improve event handling. Save offset after a seek when the headers are at the end of the file so that we don't end up in an infinite loop. * gst/typefind/gsttypefindfunctions.c: (qt_type_find): Add low-priority typefind support for files with no length.
2004-08-24gst-libs/gst/riff/riff-read.c: fix infinite loop in wavparse, fixes bugChristophe Fergeau1-5/+9
Original commit message from CVS: 2004-08-24 Sebastien Cote <sc5@hermes.usherb.ca> * gst-libs/gst/riff/riff-read.c: (gst_riff_peek_head), (gst_riff_read_element_data), (gst_riff_read_seek), (gst_riff_read_skip): fix infinite loop in wavparse, fixes bug #144616, patch reviewed by Ronald and committed by Christophe Fergeau <teuf@gnome.org>
2004-07-16gst/: Make sure we don't create 0 sized subbufers in riff-read.Wim Taymans1-4/+12
Original commit message from CVS: * gst-libs/gst/riff/riff-read.c: (gst_riff_read_strf_vids_with_data), (gst_riff_read_strf_auds_with_data): * gst/avi/gstavidemux.c: (gst_avi_demux_handle_src_query), (gst_avi_demux_add_stream), (gst_avi_demux_stream_header): Make sure we don't create 0 sized subbufers in riff-read. Signal the no more pads signal after reading the avi header.
2004-07-13gst/: Set codec_data on caps for avidemuxer.Wim Taymans1-4/+33
Original commit message from CVS: * gst-libs/gst/riff/riff-media.c: (gst_riff_create_audio_caps_with_data), (gst_riff_create_audio_caps), (gst_riff_create_audio_template_caps): * gst-libs/gst/riff/riff-media.h: * gst-libs/gst/riff/riff-read.c: (gst_riff_read_strf_vids_with_data), (gst_riff_read_strf_auds_with_data), (gst_riff_read_strf_auds): * gst-libs/gst/riff/riff-read.h: * gst/avi/gstavidemux.c: (gst_avi_demux_handle_src_query), (gst_avi_demux_add_stream): Set codec_data on caps for avidemuxer.
2004-06-15fixed a potential leak with previous commitZaheer Abbas Merali1-2/+3
Original commit message from CVS: 2004-06-15 Zaheer Abbas Merali <zaheerabbas at merali.org> fixed a potential leak with previous commit * gst-libs/gst/riff/riff-read.c: (gst_riff_peek_head):
2004-06-15gst-libs/gst/riff/riff-read.c: Added missing refcount, fixes bug #144425Zaheer Abbas Merali1-0/+1
Original commit message from CVS: 2004-06-15 Zaheer Abbas Merali <zaheerabbas at merali.org> * gst-libs/gst/riff/riff-read.c: (gst_riff_peek_head): Added missing refcount, fixes bug #144425 Cheers Tim for finding the bug
2004-05-16gst-libs/gst/riff/riff-read.c: Don't touch events after not owning them anymore.Ronald S. Bultje1-1/+3
Original commit message from CVS: * gst-libs/gst/riff/riff-read.c: (gst_riff_read_seek): Don't touch events after not owning them anymore. * gst/wavparse/gstwavparse.c: (gst_wavparse_base_init), (gst_wavparse_fmt), (gst_wavparse_other), (gst_wavparse_handle_seek), (gst_wavparse_loop), (gst_wavparse_pad_convert), (gst_wavparse_pad_query), (gst_wavparse_srcpad_event): * gst/wavparse/gstwavparse.h: Add seeking, fix querying.
2004-05-14gst-libs/gst/riff/riff-read.c: - fix INFO tag extraction in RIFF/AVI files ↵Stéphane Loeuillet1-1/+5
because gst_event_unref (event) also freed... Original commit message from CVS: * gst-libs/gst/riff/riff-read.c : - fix INFO tag extraction in RIFF/AVI files because gst_event_unref (event) also freed taglist - avoid a mem leak
2004-05-09gst-libs/gst/riff/: Fix for unaligned RIFF files (i.e. where all the chunks ↵Ronald S. Bultje1-0/+16
together in a LIST chunk are not of the s... Original commit message from CVS: * gst-libs/gst/riff/riff-media.c: (gst_riff_create_video_caps_with_data), (gst_riff_create_audio_caps), (gst_riff_create_audio_template_caps): * gst-libs/gst/riff/riff-read.c: (gst_riff_peek_head): Fix for unaligned RIFF files (i.e. where all the chunks together in a LIST chunk are not of the same size as the size given in the LIST chunk header). Fixes several odd WAVE files. Also fix ADPCM (block_align property) in audio, so that wavparse based on this works now as it used to stand-alone.
2004-05-08Rewrote wavparse to use riff-read instead of doing bytestream stuff by hand.Iain Holmes1-10/+37
Original commit message from CVS: Rewrote wavparse to use riff-read instead of doing bytestream stuff by hand. Made some useful functions in riff-read non-static.
2004-04-20configure.ac: bump required gstreamer version to 0.8.1.1 because of ↵David Schleef1-5/+6
following changes [--ds] Original commit message from CVS: reviewed by David Schleef * configure.ac: bump required gstreamer version to 0.8.1.1 because of following changes [--ds] * gst-libs/gst/riff/riff-read.c: Include gst/gstutils.h. (gst_riff_peek_head, gst_riff_peek_list, gst_riff_read_list) (gst_riff_read_header): Use GST_READ_UINT* macros to access possibly unaligned memory. * gst/typefind/gsttypefindfunctions.c: Include gst/gstutils.h. (mp3_type_find): Use GST_READ_UINT* macros to access possibly unaligned memory. (mp3_type_find, mpeg1_parse_header, qt_type_find) (speex_type_find): Likewise * gst/tags/gstvorbistag.c: (ADVANCE): Likewise * gst/qtdemux/qtdemux.c: Include stdlib.h (needed by realloc). (QTDEMUX_GUINT32_GET, QTDEMUX_GUINT16_GET, QTDEMUX_FP32_GET) (QTDEMUX_FP16_GET, QTDEMUX_FOURCC_GET) (gst_qtdemux_loop_header, gst_qtdemux_loop_header) (qtdemux_node_dump_foreach, qtdemux_tree_get_child_by_type) (qtdemux_tree_get_sibling_by_type): Use GST_READ_UINT* macros to access possibly unaligned memory. * gst/mpegstream/gstmpegpacketize.c: (parse_generic, parse_chunk): Likewise. * gst/mpegstream/gstmpegdemux.c: (gst_mpeg_demux_parse_syshead) (gst_mpeg_demux_parse_packet, gst_mpeg_demux_parse_pes): Likewise. * gst/mpegaudioparse/gstmpegaudioparse.c: (gst_mp3parse_chain): Likewise. * gst/mpeg2sub/gstmpeg2subt.c: (GST_BUFFER_DATA) (gst_mpeg2subt_chain_subtitle): Likewise. * gst/mpeg1videoparse/gstmp1videoparse.c: (mp1videoparse_parse_seq) (gst_mp1videoparse_time_code, gst_mp1videoparse_real_chain): Likewise. * gst/mpeg1sys/buffer.c: (mpeg1mux_buffer_update_audio_info): Likewise. * gst/cdxaparse/gstcdxaparse.c: (gst_bytestream_peek_bytes): Likewise. * gst/asfdemux/gstasfdemux.c: (_read_var_length, _read_uint): Likewise.
2004-04-16gst/: Add MS RLE support. I added some functions to read out strf chunks ↵Ronald S. Bultje1-1/+25
into strf chunks and the data behind it. Thi... Original commit message from CVS: reviewed by: <delete if not using a buddy> * gst-libs/gst/riff/riff-media.c: (gst_riff_create_video_caps_with_data), (gst_riff_create_video_caps), (gst_riff_create_audio_caps), (gst_riff_create_video_template_caps), (gst_riff_create_audio_template_caps): * gst-libs/gst/riff/riff-media.h: * gst-libs/gst/riff/riff-read.c: (gst_riff_read_strf_vids_with_data), (gst_riff_read_strf_vids): * gst-libs/gst/riff/riff-read.h: * gst/avi/gstavidemux.c: (gst_avi_demux_add_stream): Add MS RLE support. I added some functions to read out strf chunks into strf chunks and the data behind it. This is usually color palettes (as in RLE, but also in 8-bit RGB). Also use those during caps creation. Lastly, add ADPCM (similar to wavparse - which should eventually be rifflib based). * gst/matroska/matroska-demux.c: (gst_matroska_demux_class_init), (gst_matroska_demux_init), (gst_matroska_demux_reset): * gst/matroska/matroska-demux.h: Remove placeholders for some prehistoric tagging system. Didn't add support for any tag system really anyway. * gst/qtdemux/qtdemux.c: Add support for audio/x-m4a (MPEG-4) through spider. * gst/wavparse/gstwavparse.c: (gst_wavparse_parse_fmt), (gst_wavparse_loop): ADPCM support (#135862). Increase max. buffer size because we cannot split buffers for ADPCM (screws references) and I've seen files with 2048 byte chunks. 4096 seems safe for now.
2004-03-15don't mix tabs and spacesThomas Vander Stichele1-83/+84
Original commit message from CVS: don't mix tabs and spaces
2004-03-14gst-indentThomas Vander Stichele1-177/+159
Original commit message from CVS: gst-indent
2004-03-09gst-libs/gst/riff/riff-read.c: Fix metadata read crash (#136537).Ronald S. Bultje1-1/+0
Original commit message from CVS: * gst-libs/gst/riff/riff-read.c: (gst_riff_read_info): Fix metadata read crash (#136537).
2004-02-15examples/gstplay/player.c: Adding some output for debugging.Julien Moutte1-0/+2
Original commit message from CVS: 2004-02-15 Julien MOUTTE <julien@moutte.net> * examples/gstplay/player.c: (got_eos), (main): Adding some output for debugging. * gst-libs/gst/play/play.c: (gst_play_state_change): Stop our timeouts if we go to any state different from PLAYING. * gst-libs/gst/riff/riff-read.c: (gst_riff_read_seek): Fix some more EOS bugs in riff lib.
2004-02-14gst-libs/gst/play/play.c: Disable visualization until i find a way to fix ↵Julien Moutte1-2/+3
switch correctly. Original commit message from CVS: 2004-02-14 Julien MOUTTE <julien@moutte.net> * gst-libs/gst/play/play.c: (gst_play_connect_visualization): Disable visualization until i find a way to fix switch correctly. * gst-libs/gst/riff/riff-read.c: (gst_riff_peek_head): Fix a bug when EOS arrives. * gst/switch/gstswitch.c: (gst_switch_release_pad), (gst_switch_request_new_pad), (gst_switch_poll_sinkpads), (gst_switch_loop), (gst_switch_dispose), (gst_switch_class_init): Reworked switch to get a more correct behaviour with events and refing of data stored in sinkpads. * gst/switch/gstswitch.h: Adding an eos flag for every sinkpad so that we don't pull from a pad in EOS.
2004-02-07Build fixes for OS X: (see #129600)David Schleef1-4/+4
Original commit message from CVS: Build fixes for OS X: (see #129600) * gst-libs/gst/riff/riff-read.c: (gst_riff_read_strh), (gst_riff_read_strf_vids), (gst_riff_read_strf_auds), (gst_riff_read_strf_iavs): * gst/avi/gstavidemux.c: (gst_avi_demux_stream_avih), (gst_avi_demux_stream_odml): * gst/playondemand/Makefile.am: * gst/rtp/rtp-packet.c:
2004-02-05gst-libs/gst/riff/riff-read.c: use correct GST_TAG_ENCODER tagBenjamin Otte1-1/+1
Original commit message from CVS: 2004-02-05 Benjamin Otte <in7y118@public.uni-hamburg.de> * gst-libs/gst/riff/riff-read.c: (gst_riff_read_info): use correct GST_TAG_ENCODER tag
2004-02-02change NULL to (NULL) for GST_ELEMENT_ERRORThomas Vander Stichele1-7/+7
Original commit message from CVS: change NULL to (NULL) for GST_ELEMENT_ERROR Make sure errors end with "."
2004-01-30gst/: Fix event handling.Ronald S. Bultje1-14/+18
Original commit message from CVS: 2004-01-30 Ronald Bultje <rbultje@ronald.bitfreak.net> * gst-libs/gst/riff/riff-read.c: (gst_riff_peek_head), (gst_riff_read_seek): * gst/matroska/ebml-read.c: (gst_ebml_read_element_id), (gst_ebml_read_seek): Fix event handling.
2004-01-29GST_ELEMENT_ERRORThomas Vander Stichele1-8/+8
Original commit message from CVS: GST_ELEMENT_ERROR
2004-01-25gst-libs/gst/riff/riff-read.c: Additional pad usability check.Ronald S. Bultje1-1/+1
Original commit message from CVS: 2004-01-25 Ronald Bultje <rbultje@ronald.bitfreak.net> * gst-libs/gst/riff/riff-read.c: (gst_riff_read_info): Additional pad usability check. * gst/mpeg1videoparse/gstmp1videoparse.c: (gst_mp1videoparse_init), (mp1videoparse_find_next_gop), (gst_mp1videoparse_time_code), (gst_mp1videoparse_real_chain): Fix MPEG video stream parsing. The original plugin had several issues, including not timestamping streams where the source was not timestamped (this happens with PTS values in mpeg system streams, but MPEG video is also a valid stream on its own so that needs timestamps too). We use the display time code for that for now. Also, if one incoming buffer contains multiple valid frames, we push them all on correctly now, including proper EOS handling. Lastly, several potential segfaults were fixed, and we properly sync on new sequence/gop headers to include them in next, not previous frames (since they're header for the next frame, not the previous). Also see #119206. * gst/mpegaudioparse/gstmpegaudioparse.c: (gst_mp3parse_chain), (bpf_from_header): Move caps setting so we only do it after finding several valid MPEG-1 fraes sequentially, not right after the first one (which might be coincidental). * gst/typefind/gsttypefindfunctions.c: (mpeg1_sys_type_find), (mpeg_video_type_find), (mpeg_video_stream_type_find), (plugin_init): Add unsynced MPEG video stream typefinding, and change some probability values so we detect streams rightly. The idea is as follows: I can have an unsynced system stream which contains video. In the current code, I would randomly get a type for either system or video stream type found, because the probabilities are being calculated rather randomly. I now use fixed values, so we always prefer system stream if that was found (and that is how it should be). If no system stream was found, we can still identity the stream as video-only.
2004-01-23gst-libs/gst/riff/riff-read.*: Remove stuff fromold metadata system.Ronald S. Bultje1-31/+0
Original commit message from CVS: 2004-01-23 Ronald Bultje <rbultje@ronald.bitfreak.net> * gst-libs/gst/riff/riff-read.c: (gst_riff_read_class_init), (gst_riff_read_init), (gst_riff_read_change_state): * gst-libs/gst/riff/riff-read.h: Remove stuff fromold metadata system.
2004-01-23ext/ogg/gstoggdemux.c: Fix wrong file comment.Ronald S. Bultje1-29/+59
Original commit message from CVS: 2004-01-23 Ronald Bultje <rbultje@ronald.bitfreak.net> * ext/ogg/gstoggdemux.c: Fix wrong file comment. * gst-libs/gst/riff/riff-read.c: (gst_riff_read_info): * gst/avi/gstavidemux.c: (gst_avi_demux_stream_header): Add metadata reading properly.
2004-01-18use new error signal and classificationThomas Vander Stichele1-10/+9
Original commit message from CVS: use new error signal and classification
2004-01-09ext/divx/gstdivxenc.c: Use explicit caps - fix capsnego.Ronald S. Bultje1-1/+2
Original commit message from CVS: 2004-01-09 Ronald Bultje <rbultje@ronald.bitfreak.net> * ext/divx/gstdivxenc.c: (gst_divxenc_init): Use explicit caps - fix capsnego. * ext/xvid/gstxviddec.c: * ext/xvid/gstxvidenc.c: Remove macro-inside-macro which caused compile errors. * gst-libs/gst/riff/riff-read.c: (gst_riff_read_header): Error out if it's not a RIFF file. Else we error out without gst_element_error() which is not good...
2003-12-22Merge CAPS branchDavid Schleef1-13/+4
Original commit message from CVS: Merge CAPS branch
2003-12-07Hm, darn, forgot to commit one dirRonald S. Bultje1-0/+877
Original commit message from CVS: Hm, darn, forgot to commit one dir