summaryrefslogtreecommitdiffstats
path: root/gst/avi/gstavidemux.c
Commit message (Collapse)AuthorAgeFilesLines
* debuggingThomas Vander Stichele2005-01-131-13/+24
| | | | | Original commit message from CVS: debugging
* gst-libs/gst/riff/riff-read.c: Don't bail on unknown events.Ronald S. Bultje2005-01-101-18/+26
| | | | | | | | | | | | | Original commit message from CVS: * gst-libs/gst/riff/riff-read.c: (gst_riff_read_use_event): Don't bail on unknown events. * gst/audioscale/gstaudioscale.c: (gst_audioscale_chain): Don't crash on events before negotiation. * gst/avi/gstavidemux.c: (gst_avi_demux_add_stream): Send tags on pads, too. * gst/playback/gststreamselector.c: (gst_stream_selector_request_new_pad): Forward events on first pad if no input was selected yet.
* gst/avi/gstavidemux.c: Add some more debug. Fix logic error when setting ↵Ronald S. Bultje2004-12-231-4/+7
| | | | | | | | | | movi offset while reading index. Original commit message from CVS: * gst/avi/gstavidemux.c: (gst_avi_demux_stream_index), (gst_avi_demux_stream_scan): Add some more debug. Fix logic error when setting movi offset while reading index.
* gst/avi/gstavidemux.c: Add some debugging. Better detection of broken ↵Ronald S. Bultje2004-12-231-4/+17
| | | | | | | | | | | | indexes and the accompanying index recovery. No... Original commit message from CVS: * gst/avi/gstavidemux.c: (gst_avi_demux_stream_index), (gst_avi_demux_stream_scan), (gst_avi_demux_handle_seek), (gst_avi_demux_process_next_entry): Add some debugging. Better detection of broken indexes and the accompanying index recovery. No infinite loops on state changes when we're still in our loopfunction.
* gst/avi/gstavidemux.c: Work for truncated (unfinished download etc.) files. ↵Ronald S. Bultje2004-12-181-4/+16
| | | | | | | | Fixes #160514. Original commit message from CVS: * gst/avi/gstavidemux.c: (gst_avi_demux_stream_index): Work for truncated (unfinished download etc.) files. Fixes #160514.
* ext/a52dec/gsta52dec.*: Do something useful with timestamps. Make ↵Ronald S. Bultje2004-12-061-2/+2
| | | | | | | | | | | | | | | chain-based (since there's really no reason to be l... Original commit message from CVS: * ext/a52dec/gsta52dec.c: (gst_a52dec_init), (gst_a52dec_handle_event), (gst_a52dec_update_streaminfo), (gst_a52dec_handle_frame), (gst_a52dec_chain), (gst_a52dec_change_state), (plugin_init): * ext/a52dec/gsta52dec.h: Do something useful with timestamps. Make chain-based (since there's really no reason to be loopbased). * gst/avi/gstavidemux.c: (gst_avi_demux_process_next_entry): Update current_byte/frame correctly.
* gst/avi/gstavidemux.c: Fix quite humiliating bug in omitting 0-sized index ↵Ronald S. Bultje2004-11-291-9/+20
| | | | | | | | | | chunks but forgetting to count them for ti... Original commit message from CVS: * gst/avi/gstavidemux.c: (gst_avi_demux_stream_index), (gst_avi_demux_massage_index): Fix quite humiliating bug in omitting 0-sized index chunks but forgetting to count them for timestamps.
* ext/gnomevfs/gstgnomevfssrc.c: Some debug.Ronald S. Bultje2004-10-121-39/+319
| | | | | | | | | | | | | | | | | | | Original commit message from CVS: * ext/gnomevfs/gstgnomevfssrc.c: (gst_gnomevfssrc_get), (gst_gnomevfssrc_srcpad_query), (gst_gnomevfssrc_srcpad_event): Some debug. * gst/avi/gstavidemux.c: (gst_avi_demux_reset), (gst_avi_demux_handle_src_event), (gst_avi_demux_read_superindex), (gst_avi_demux_read_subindexes), (gst_avi_demux_add_stream), (gst_avi_demux_stream_index), (gst_avi_demux_skip), (gst_avi_demux_sync), (gst_avi_demux_stream_scan), (gst_avi_demux_massage_index), (gst_avi_demux_stream_header): * gst/avi/gstavidemux.h: Support for openDML-2.0 indx/ix## chunks. Support for broken index recovery (where, if part of the index is broken, we will still read the rest of the index and recover the broken part by stream scanning). More broken media support. EOS workarounds. General AVI braindamage headache recovery. Aspirin included.
* gst/avi/gstavidemux.c: OK, so the original code was too strict. It makes ↵Ronald S. Bultje2004-10-091-51/+56
| | | | | | | | | | | random AVI files hang for seconds upon openi... Original commit message from CVS: * gst/avi/gstavidemux.c: (gst_avi_demux_massage_index): OK, so the original code was too strict. It makes random AVI files hang for seconds upon opening, which is unacceptable and is far beyond the original goal of getting multiple chunks for one-chunk sounc stream files. So now do just that.
* gst/avi/gstavidemux.c: Prevent overwrite of size member. Makes audio sound ↵Ronald S. Bultje2004-10-051-5/+6
| | | | | | | | crappy. Original commit message from CVS: * gst/avi/gstavidemux.c: (gst_avi_demux_massage_index): Prevent overwrite of size member. Makes audio sound crappy.
* gst/avi/gstavidemux.c: There was something wrong with the index massaging.Ronald S. Bultje2004-10-041-2/+2
| | | | | | Original commit message from CVS: * gst/avi/gstavidemux.c: (gst_avi_demux_massage_index): There was something wrong with the index massaging.
* gst/avi/gstavidemux.c: Fix seeking in some files. All this code is no longer ↵Ronald S. Bultje2004-10-041-52/+3
| | | | | | | | | | 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.
* gst/avi/gstavidemux.c: Improve allocation, cutting and sorting of the index. ↵Ronald S. Bultje2004-10-041-84/+132
| | | | | | | | | | | 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.
* gst-libs/gst/riff/riff-media.c: Add wing commander format mimetype/fourccs.Ronald S. Bultje2004-10-021-6/+9
| | | | | | | | | | 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.
* gst-libs/gst/riff/riff-media.c: Add DIB fourcc (raw, palettized 8-bit RGB).Ronald S. Bultje2004-10-021-1/+6
| | | | | | | | | | | | | | | | | | | | | | 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.
* ext/flac/gstflacdec.c: Only return true if we actually filled something in. ↵Ronald S. Bultje2004-09-291-107/+431
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* ext/dirac/: Do something. Don't actually know if this works because I don't ↵Ronald S. Bultje2004-09-231-65/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* gst/avi/gstavidemux.c: Just hardcode for raw audio then. AVI audio sucks.Ronald S. Bultje2004-09-151-5/+3
| | | | | | | Original commit message from CVS: * gst/avi/gstavidemux.c: (gst_avi_demux_handle_src_query), (gst_avi_demux_stream_data): Just hardcode for raw audio then. AVI audio sucks.
* gst/avi/gstavidemux.c: Try to fix a/v sync issues.Ronald S. Bultje2004-09-151-6/+21
| | | | | | | Original commit message from CVS: * gst/avi/gstavidemux.c: (gst_avi_demux_handle_src_query), (gst_avi_demux_stream_data): Try to fix a/v sync issues.
* gst/avi/gstavidemux.*: Fix for compressed audio (mp3) timestamp generation. ↵Ronald S. Bultje2004-09-151-3/+12
| | | | | | | | | | | How did this ever work? Original commit message from CVS: * gst/avi/gstavidemux.c: (gst_avi_demux_handle_src_query), (gst_avi_demux_add_stream), (gst_avi_demux_stream_data): * gst/avi/gstavidemux.h: Fix for compressed audio (mp3) timestamp generation. How did this ever work?
* gst/: Make sure we don't create 0 sized subbufers in riff-read.Wim Taymans2004-07-161-0/+4
| | | | | | | | | | | 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.
* gst/: Set codec_data on caps for avidemuxer.Wim Taymans2004-07-131-3/+4
| | | | | | | | | | | | | | | | 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.
* gst/avi/gstavidemux.c: Fix potential division by zero error and hopefully ↵Wim Taymans2004-05-241-2/+1
| | | | | | | | | | get the position query right to get correct... Original commit message from CVS: * gst/avi/gstavidemux.c: (gst_avi_demux_handle_src_query): Fix potential division by zero error and hopefully get the position query right to get correct timestamps on avi audio.
* first batch : remove ',' at end of enums as they could confuse older gcc, ↵Stéphane Loeuillet2004-05-211-2/+2
| | | | | | | | | foreign compilers (forte) and gtk-doc Original commit message from CVS: first batch : remove ',' at end of enums as they could confuse older gcc, foreign compilers (forte) and gtk-doc
* gst/: Add MS RLE support. I added some functions to read out strf chunks ↵Ronald S. Bultje2004-04-161-4/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* gst/avi/gstavidemux.c: Fix memleak. patch from Sebastien Cote (bug #139958)Sebastien Cote2004-04-131-0/+1
| | | | | | Original commit message from CVS: * gst/avi/gstavidemux.c: (gst_avi_demux_reset): Fix memleak. patch from Sebastien Cote (bug #139958)
* gst/avi/gstavidemux.c: Handle JUNK chunks inside data section. Prevents ↵Ronald S. Bultje2004-04-111-9/+14
| | | | | | | | warnings. Original commit message from CVS: * gst/avi/gstavidemux.c: (gst_avi_demux_stream_data): Handle JUNK chunks inside data section. Prevents warnings.
* gst-libs/gst/riff/riff-media.c: Add MS video v1.Ronald S. Bultje2004-04-111-0/+17
| | | | | | | | | | Original commit message from CVS: * gst-libs/gst/riff/riff-media.c: (gst_riff_create_video_caps), (gst_riff_create_video_template_caps): Add MS video v1. * gst/avi/gstavidemux.c: (gst_avi_demux_stream_index), (gst_avi_demux_stream_data): Add support for "rec-list" chunks.
* don't mix tabs and spacesThomas Vander Stichele2004-03-151-272/+273
| | | | | Original commit message from CVS: don't mix tabs and spaces
* gst-indentThomas Vander Stichele2004-03-141-404/+370
| | | | | Original commit message from CVS: gst-indent
* gst/: First batch implementing audio and video codec tags in demuxers.Julien Moutte2004-02-231-3/+33
| | | | | | | | | | | | | | | | | | | | Original commit message from CVS: 2004-02-23 Julien MOUTTE <julien@moutte.net> * gst-libs/gst/riff/riff-media.c: (gst_riff_create_video_caps), (gst_riff_create_audio_caps), (gst_riff_create_iavs_caps), (gst_riff_create_video_template_caps), (gst_riff_create_audio_template_caps), (gst_riff_create_iavs_template_caps): * gst-libs/gst/riff/riff-media.h: * gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init), (gst_asf_demux_audio_caps), (gst_asf_demux_add_audio_stream), (gst_asf_demux_video_caps), (gst_asf_demux_add_video_stream): * gst/avi/gstavidemux.c: (gst_avi_demux_add_stream): * gst/matroska/matroska-demux.c: (gst_matroska_demux_add_stream), (gst_matroska_demux_video_caps), (gst_matroska_demux_audio_caps), (gst_matroska_demux_plugin_init): First batch implementing audio and video codec tags in demuxers.
* Build fixes for OS X: (see #129600)David Schleef2004-02-071-2/+2
| | | | | | | | | | | | 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:
* change NULL to (NULL) for GST_ELEMENT_ERRORThomas Vander Stichele2004-02-021-5/+5
| | | | | | Original commit message from CVS: change NULL to (NULL) for GST_ELEMENT_ERROR Make sure errors end with "."
* GST_ELEMENT_ERRORThomas Vander Stichele2004-01-291-5/+5
| | | | | Original commit message from CVS: GST_ELEMENT_ERROR
* gst/ac3parse/gstac3parse.c: update to checklist 5David Schleef2004-01-271-0/+1
| | | | | | | | | | Original commit message from CVS: * gst/ac3parse/gstac3parse.c: update to checklist 5 * gst/adder/gstadder.c: rewrite negotiation. update to checklist 5 * gst/audioconvert/gstaudioconvert.c: update to checklist 5 * gst/audioscale/gstaudioscale.c: same * gst/auparse/gstauparse.c: same * gst/avi/gstavidemux.c: same
* gst/avi/gstavidemux.c: The index reading was broken. The rest worked fine, ↵Ronald S. Bultje2004-01-251-26/+25
| | | | | | | | | | | | | but the whole goal of my rewrite was to ma... Original commit message from CVS: 2004-01-25 Ronald Bultje <rbultje@ronald.bitfreak.net> * gst/avi/gstavidemux.c: (gst_avi_demux_stream_avih), (gst_avi_demux_stream_odml), (gst_avi_demux_stream_index): The index reading was broken. The rest worked fine, but the whole goal of my rewrite was to make avidemux readable, and this was not at all readable. Please use typed variables.
* gst/avi/gstavidemux.c: don't write to buffer. Extract data without the need ↵Benjamin Otte2004-01-231-56/+51
| | | | | | | | | | | | of __attribute__ ((packed)) Original commit message from CVS: 2004-01-23 Benjamin Otte <in7y118@public.uni-hamburg.de> * gst/avi/gstavidemux.c: (gst_avi_demux_stream_avih), (gst_avi_demux_stream_odml), (gst_avi_demux_stream_index): don't write to buffer. Extract data without the need of __attribute__ ((packed))
* ext/ogg/gstoggdemux.c: Fix wrong file comment.Ronald S. Bultje2004-01-231-7/+6
| | | | | | | | | | | 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.
* use new error signal and classificationThomas Vander Stichele2004-01-181-12/+12
| | | | | Original commit message from CVS: use new error signal and classification
* configure.ac: Fix configure check for mpeg2enc. We need 1.6.1.93 instead of ↵Ronald S. Bultje2004-01-011-2/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1.6.1.92, since the pkg-config file of 1.... Original commit message from CVS: 2004-01-01 Ronald Bultje <rbultje@ronald.bitfreak.net> * configure.ac: Fix configure check for mpeg2enc. We need 1.6.1.93 instead of 1.6.1.92, since the pkg-config file of 1.6.1.92 is borked and it therefore uses the wrong include paths. Too bad... Note that 1.6.1.93 is not release yet. ;). Also add a check for mplex, which is now using the lib'ified mplex from mjpegtools, too. * ext/ffmpeg/gstffmpegcodecmap.c: Add codec_tag for 3ivx/xvid. For xvid, this should fix playback issues. I don't think ffmpeg handles 3ivx correctly, so this probably won't work. But it won't hurt either. * ext/ffmpeg/gstffmpegdec.c: (gst_ffmpegdec_connect), (gst_ffmpegdec_chain): * ext/ffmpeg/gstffmpegenc.c: (gst_ffmpegenc_connect), (gst_ffmpegenc_chain_audio): Fix memleak in audio encoding. Close codec if open fails, this calls the cleanup routines so we can re-use the context. * ext/mpeg2enc/gstmpeg2enc.cc: Fix pad template names/types, fix memory issue with getcaps(). * ext/mpeg2enc/gstmpeg2encoder.cc: * ext/mpeg2enc/gstmpeg2encoder.hh: Fix compile issue with new caps system (const thingy). * ext/mpeg2enc/gstmpeg2encpicturereader.cc: * ext/mpeg2enc/gstmpeg2encpicturereader.hh: We read a first frame right on initing, so that we have a caps when we init the output. This caps is cached in padprivate and read as first frame. * ext/mplex/Makefile.am: * ext/mplex/gstmplex.cc: * ext/mplex/gstmplex.h: * ext/mplex/gstmplex.hh: * ext/mplex/gstmplexibitstream.cc: * ext/mplex/gstmplexibitstream.hh: * ext/mplex/gstmplexjob.cc: * ext/mplex/gstmplexjob.hh: * ext/mplex/gstmplexoutputstream.cc: * ext/mplex/gstmplexoutputstream.hh: We wrap mjpegtools mplex. So I rewrote the plugin. The old plugin had issues, didn't do capsnego, supported only a subset of the mplex features and required a mplex fork in our local CVS. Plus that it worked agaist a very old mplex version. Rewriting was faster than updating it. * gst-libs/ext/Makefile.am: * gst-libs/ext/mplex/INSTRUCT: * gst-libs/ext/mplex/Makefile.am: * gst-libs/ext/mplex/README: * gst-libs/ext/mplex/TODO: * gst-libs/ext/mplex/ac3strm_in.cc: * gst-libs/ext/mplex/audiostrm.hh: * gst-libs/ext/mplex/audiostrm_out.cc: * gst-libs/ext/mplex/aunit.hh: * gst-libs/ext/mplex/bits.cc: * gst-libs/ext/mplex/bits.hh: * gst-libs/ext/mplex/buffer.cc: * gst-libs/ext/mplex/buffer.hh: * gst-libs/ext/mplex/fastintfns.h: * gst-libs/ext/mplex/format_codes.h: * gst-libs/ext/mplex/inputstrm.cc: * gst-libs/ext/mplex/inputstrm.hh: * gst-libs/ext/mplex/lpcmstrm_in.cc: * gst-libs/ext/mplex/mjpeg_logging.cc: * gst-libs/ext/mplex/mjpeg_logging.h: * gst-libs/ext/mplex/mjpeg_types.h: * gst-libs/ext/mplex/mpastrm_in.cc: * gst-libs/ext/mplex/mpegconsts.cc: * gst-libs/ext/mplex/mpegconsts.h: * gst-libs/ext/mplex/mplexconsts.hh: * gst-libs/ext/mplex/multplex.cc: * gst-libs/ext/mplex/outputstream.hh: * gst-libs/ext/mplex/padstrm.cc: * gst-libs/ext/mplex/padstrm.hh: * gst-libs/ext/mplex/stillsstream.cc: * gst-libs/ext/mplex/stillsstream.hh: * gst-libs/ext/mplex/systems.cc: * gst-libs/ext/mplex/systems.hh: * gst-libs/ext/mplex/vector.cc: * gst-libs/ext/mplex/vector.hh: * gst-libs/ext/mplex/videostrm.hh: * gst-libs/ext/mplex/videostrm_in.cc: * gst-libs/ext/mplex/videostrm_out.cc: * gst-libs/ext/mplex/yuv4mpeg.cc: * gst-libs/ext/mplex/yuv4mpeg.h: * gst-libs/ext/mplex/yuv4mpeg_intern.h: * gst-libs/ext/mplex/yuv4mpeg_ratio.cc: We don't fork mjpegtools' mplex in our CVS anymore. * gst/avi/gstavidemux.c: (gst_avi_demux_src_getcaps), (gst_avi_demux_add_stream): * gst/avi/gstavidemux.h: Add getcaps() function for proper caps nego. This makes some parts of AVI playback/reading work. * sys/ximage/ximagesink.c: (gst_ximagesink_sinkconnect): Resize window on new capsnego. This is probably wrong, but I'm still committing it because with current capsnego, the first successfull capsnego is auto-fixated, therefore rounded down to the lowest values in the caps. this results in a 16x16 XWindow that is not reized when real capsnego finishes. Dave, I see more cases of this, do you know a proper solution? * tools/gst-launch-ext.in: Fix MPEG-4 AAC (Apple iPod/iTunes) file commandline.
* Merge CAPS branchDavid Schleef2003-12-221-21/+11
| | | | | Original commit message from CVS: Merge CAPS branch
* Riff, EBML, fourcc etc. work. Not fully finished, but better than what we ↵Ronald S. Bultje2003-12-071-1468/+992
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | used to have and definately worth a first b... Original commit message from CVS: Riff, EBML, fourcc etc. work. Not fully finished, but better than what we used to have and definately worth a first broad testing. I've revived rifflib. Rifflib used to be a bytestream-for-riff, which just dup'ed bytestream. I've rewritten rifflib to be a modern riff- chunk parser that uses bytestream fully, plus adds some extra functions so that riff file parsing becomes extremely easy. It also contains some small usability functions for strh/strf and metadata parsing. Note that it doesn't use the new tagging yet, that's a TODO. Avidemux has been rewritten to use this. I think we all agreed that avidemux was pretty much a big mess, which is because it used all sort of bytestream magic all around the place. It was just ugly. This is a lot nicer, very complete and safe. I think this is far more robust than what the old avidemux could ever have been. Of course, it might contain bugs, please let me know. EBML writing has also been implemented. This is useful for matroska. I'm intending to modify avidemux (with a riffwriter) similarly. Maybe I'll change wavparse/-enc too to use rifflib. Lastly, several plugins have been modified to use rifflib's fourcc parsing instead of their own. this puts fourcc parsing in one central place, which should make it a lot simpler to add new fourccs. We might want to move this to its own lib instead of rifflib. Enjoy!
* remove copyright field from pluginsAndy Wingo2003-12-041-1/+0
| | | | | Original commit message from CVS: remove copyright field from plugins
* Change everyone to video/x-msvideoDavid Schleef2003-11-271-1/+1
| | | | | Original commit message from CVS: Change everyone to video/x-msvideo
* License is GST_LICENSE, make own debugging category and fix some debug ↵Benjamin Otte2003-11-241-3/+9
| | | | | | | statements Original commit message from CVS: License is GST_LICENSE, make own debugging category and fix some debug statements
* Merge plugins. Update to new plugin init codeDavid Schleef2003-11-011-79/+101
| | | | | Original commit message from CVS: Merge plugins. Update to new plugin init code
* avidemux still depends on riffDavid Schleef2003-10-311-0/+2
| | | | | Original commit message from CVS: avidemux still depends on riff
* Doesn't need to load gstriffIain Holmes2003-10-311-2/+0
| | | | | Original commit message from CVS: Doesn't need to load gstriff
* merge TYPEFIND branch. Major changes:Benjamin Otte2003-10-281-41/+2
| | | | | | | | | | | | Original commit message from CVS: merge TYPEFIND branch. Major changes: - totally reworked type(find) system - all typefind functions are in gst/typefind now - more typefind functions then before - some plugins might fail to compile now because I don't have them installed and they a) require bytestream or b) haven't had their typefind fixed. Please fix those plugins and put the typefind functions into gst/typefind if they don't have dependencies
* /GstBuffer/GstData/ in the API where you can pass events. Fix the plugins to ↵Andy Wingo2003-10-081-3/+3
| | | | | | | deal with that. Fixes #113488. Original commit message from CVS: /GstBuffer/GstData/ in the API where you can pass events. Fix the plugins to deal with that. Fixes #113488.