summaryrefslogtreecommitdiffstats
path: root/gst/flv
Commit message (Collapse)AuthorAgeFilesLines
* flvdemux: If there's no audio stream after 6 seconds of video signal ↵Sebastian Dröge2009-10-033-0/+45
| | | | | | | | | no-more-pads ...and the other way around. Also ignore any audio/video streams that appear after no-more-pads. Fixes bug #597091.
* flvdemux: Make sure to only signal no-more-pads a single timeSebastian Dröge2009-10-033-3/+21
|
* Fix compile warnings with gcc 4.0.1.Alessandro Decina2009-09-221-9/+9
|
* flvmux: fully use tagsetter to manage the tags. Fixes #563221Stefan Kost2009-09-031-32/+16
| | | | There is no need to manage a separate taglist.
* flvdemux: Fix tests warning from setting a NULL indexJan Schmidt2009-08-311-4/+7
| | | | | | Setting a null index in the tests was causing warnings by unreffing NULL pointers. This is a bug exposed by a recent change in core, it seems.
* flvmux: Fix writing of the index for < 128 buffersSebastian Dröge2009-08-031-1/+2
| | | | Partially fixes bug #590447.
* flvmux: Fix resetting of the elementSebastian Dröge2009-08-031-6/+3
| | | | | | | Reset the have_video/have_audio flags and make sure to properly release the request pads. Partially fixes bug #590447.
* flvmux: fix invalid write caused by using sizeof("string") as lengthTim-Philipp Müller2009-07-311-8/+8
| | | | | | | | | sizeof("foo") includes the string's NUL-terminator in the size returned, but we're writing strings here with an explicit size at the beginning and no NUL-terminator. In most cases using sizeof("foo") as length in memcpy is not harmful, but it is where the string goes right at the end of our buffer to write, since we don't allocate space for that NUL terminator.
* flvdemux: Implement SEEKING querySebastian Dröge2009-07-232-0/+28
| | | | | | Also add some more query types to the answer of the query type function. Fixes bug #589424.
* flvparse: Add missing break in switch/case.Edward Hervey2009-06-251-0/+1
|
* flvdemux: Remove unused variable, hint branch likeliness, add comments.Edward Hervey2009-06-251-8/+8
|
* flvmux: Get the max duration from upstream if there's no duration tagSebastian Dröge2009-05-221-14/+40
|
* flvmux: Write an index table to the end of the fileSebastian Dröge2009-05-222-5/+151
|
* Fix compiler warningsJames Andrewartha2009-05-151-1/+1
| | | | Fixes bug #582715.
* [MOVED FROM BAD 57/57] Add ranks to various muxers and encoders in -badChristian Schaller2009-05-121-1/+1
|
* [MOVED FROM BAD 56/57] flvmux: init variable to NULL to fix compiler warningTristan Matthews2009-05-121-1/+1
| | | | Fixes #580786.
* [MOVED FROM BAD 55/57] flv: Set/require the framed/parsed fields of the ↵Sebastian Dröge2009-05-122-3/+3
| | | | audio/mpeg caps to TRUE
* [MOVED FROM BAD 54/57] flv: Always write at least the minimal tags and write ↵Sebastian Dröge2009-05-121-8/+49
| | | | the PAR as tags
* [MOVED FROM BAD 53/57] flv: Add support for muxing some tagsSebastian Dröge2009-05-122-8/+227
|
* [MOVED FROM BAD 52/57] flv: Add support for title tagSebastian Dröge2009-05-121-1/+3
|
* [MOVED FROM BAD 51/57] flv: Fix parsing of tags and add new mappingsSebastian Dröge2009-05-121-48/+81
| | | | | | | | | We shouldn't register a new GstTag for every unknown tag we find as this might lead to conflicts and also those tags are essentially unknown. Add mappings for some known tags and also convert string dates to GDate, as found in many FLV files.
* [MOVED FROM BAD 50/57] flv: Add documentation to flvmux and flvdemuxSebastian Dröge2009-05-124-0/+30
| | | | Partially fixes bug #573737.
* [MOVED FROM BAD 49/57] Add support for ECMA arrays in script tags. Fixes bug ↵Jan Urbanski2009-05-121-0/+23
| | | | | | | | #567965. Add support for ECMA arrays in script tags. This fixes seeking on some files that have the seek table stored inside an ECMA array instead of the normal array.
* [MOVED FROM BAD 48/57] gst/flv/gstflvparse.c: Check if strings are valid ↵Sebastian Dröge2009-05-121-0/+4
| | | | | | | | UTF8 before using them. Original commit message from CVS: * gst/flv/gstflvparse.c: (FLV_GET_STRING): Check if strings are valid UTF8 before using them.
* [MOVED FROM BAD 47/57] gst/flv/gstflvdemux.c: Fix non key unit seeking by ↵Julien Moutte2009-05-122-4/+11
| | | | | | | | | | | | | | | | | always going to the previous keyframe. Mark the discont flag when ... Original commit message from CVS: 2008-11-24 Julien Moutte <julien@fluendo.com> * gst/flv/gstflvdemux.c: (gst_flv_demux_find_offset), (gst_flv_demux_handle_seek_push), (gst_flv_demux_handle_seek_pull): Fix non key unit seeking by always going to the previous keyframe. Mark the discont flag when we've moved in the file. * gst/flv/gstflvparse.c: (gst_flv_parse_audio_negotiate): MP3 streams are parsed already, makes autoplugged pipelines shorter.
* [MOVED FROM BAD 46/57] Don't install static libs for plugins. Fixes #550851 ↵Stefan Kost2009-05-121-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | for -bad. Original commit message from CVS: * ext/alsaspdif/Makefile.am: * ext/amrwb/Makefile.am: * ext/apexsink/Makefile.am: * ext/arts/Makefile.am: * ext/artsd/Makefile.am: * ext/audiofile/Makefile.am: * ext/audioresample/Makefile.am: * ext/bz2/Makefile.am: * ext/cdaudio/Makefile.am: * ext/celt/Makefile.am: * ext/dc1394/Makefile.am: * ext/dirac/Makefile.am: * ext/directfb/Makefile.am: * ext/divx/Makefile.am: * ext/dts/Makefile.am: * ext/faac/Makefile.am: * ext/faad/Makefile.am: * ext/gsm/Makefile.am: * ext/hermes/Makefile.am: * ext/ivorbis/Makefile.am: * ext/jack/Makefile.am: * ext/jp2k/Makefile.am: * ext/ladspa/Makefile.am: * ext/lcs/Makefile.am: * ext/libfame/Makefile.am: * ext/libmms/Makefile.am: * ext/metadata/Makefile.am: * ext/mpeg2enc/Makefile.am: * ext/mplex/Makefile.am: * ext/musepack/Makefile.am: * ext/musicbrainz/Makefile.am: * ext/mythtv/Makefile.am: * ext/nas/Makefile.am: * ext/neon/Makefile.am: * ext/ofa/Makefile.am: * ext/polyp/Makefile.am: * ext/resindvd/Makefile.am: * ext/sdl/Makefile.am: * ext/shout/Makefile.am: * ext/snapshot/Makefile.am: * ext/sndfile/Makefile.am: * ext/soundtouch/Makefile.am: * ext/spc/Makefile.am: * ext/swfdec/Makefile.am: * ext/tarkin/Makefile.am: * ext/theora/Makefile.am: * ext/timidity/Makefile.am: * ext/twolame/Makefile.am: * ext/x264/Makefile.am: * ext/xine/Makefile.am: * ext/xvid/Makefile.am: * gst-libs/gst/app/Makefile.am: * gst-libs/gst/dshow/Makefile.am: * gst/aiffparse/Makefile.am: * gst/app/Makefile.am: * gst/audiobuffer/Makefile.am: * gst/bayer/Makefile.am: * gst/cdxaparse/Makefile.am: * gst/chart/Makefile.am: * gst/colorspace/Makefile.am: * gst/dccp/Makefile.am: * gst/deinterlace/Makefile.am: * gst/deinterlace2/Makefile.am: * gst/dvdspu/Makefile.am: * gst/festival/Makefile.am: * gst/filter/Makefile.am: * gst/flacparse/Makefile.am: * gst/flv/Makefile.am: * gst/games/Makefile.am: * gst/h264parse/Makefile.am: * gst/librfb/Makefile.am: * gst/mixmatrix/Makefile.am: * gst/modplug/Makefile.am: * gst/mpeg1sys/Makefile.am: * gst/mpeg4videoparse/Makefile.am: * gst/mpegdemux/Makefile.am: * gst/mpegtsmux/Makefile.am: * gst/mpegvideoparse/Makefile.am: * gst/mve/Makefile.am: * gst/nsf/Makefile.am: * gst/nuvdemux/Makefile.am: * gst/overlay/Makefile.am: * gst/passthrough/Makefile.am: * gst/pcapparse/Makefile.am: * gst/playondemand/Makefile.am: * gst/rawparse/Makefile.am: * gst/real/Makefile.am: * gst/rtjpeg/Makefile.am: * gst/rtpmanager/Makefile.am: * gst/scaletempo/Makefile.am: * gst/sdp/Makefile.am: * gst/selector/Makefile.am: * gst/smooth/Makefile.am: * gst/smoothwave/Makefile.am: * gst/speed/Makefile.am: * gst/speexresample/Makefile.am: * gst/stereo/Makefile.am: * gst/subenc/Makefile.am: * gst/tta/Makefile.am: * gst/vbidec/Makefile.am: * gst/videodrop/Makefile.am: * gst/videosignal/Makefile.am: * gst/virtualdub/Makefile.am: * gst/vmnc/Makefile.am: * gst/y4m/Makefile.am: * sys/acmenc/Makefile.am: * sys/cdrom/Makefile.am: * sys/dshowdecwrapper/Makefile.am: * sys/dshowsrcwrapper/Makefile.am: * sys/dvb/Makefile.am: * sys/dxr3/Makefile.am: * sys/fbdev/Makefile.am: * sys/oss4/Makefile.am: * sys/qcam/Makefile.am: * sys/qtwrapper/Makefile.am: * sys/vcd/Makefile.am: * sys/wininet/Makefile.am: * win32/common/config.h: Don't install static libs for plugins. Fixes #550851 for -bad.
* [MOVED FROM BAD 45/57] gst/flv/gstflvdemux.c: Implement position query in ↵Sebastian Dröge2009-05-121-0/+22
| | | | | | | | time format. Original commit message from CVS: * gst/flv/gstflvdemux.c: (gst_flv_demux_query): Implement position query in time format.
* [MOVED FROM BAD 44/57] gst/flv/: Put the GstSegment directly into the ↵Sebastian Dröge2009-05-123-77/+73
| | | | | | | | | | | | | | | | | | | instance struct instead of allocating and free'ing it again. Original commit message from CVS: * gst/flv/gstflvdemux.c: (gst_flv_demux_cleanup), (gst_flv_demux_loop), (gst_flv_demux_handle_seek_push), (gst_flv_demux_handle_seek_pull), (gst_flv_demux_sink_event), (gst_flv_demux_dispose), (gst_flv_demux_init): * gst/flv/gstflvdemux.h: * gst/flv/gstflvparse.c: (gst_flv_parse_tag_audio), (gst_flv_parse_tag_video), (gst_flv_parse_tag_timestamp): Put the GstSegment directly into the instance struct instead of allocating and free'ing it again. Push tags already if only one pad was added, no need to wait for the second one. When generating our index set has_video and has_audio if we find video or audio in case the FLV header has incorrect data.
* [MOVED FROM BAD 43/57] gst/flv/: Don't memcpy() all data we want to push ↵Sebastian Dröge2009-05-123-141/+138
| | | | | | | | | | | | | | | | | downstream, instead just create subbuffers and push them downstream. Original commit message from CVS: * gst/flv/gstflvdemux.c: (gst_flv_demux_chain), (gst_flv_demux_pull_tag), (gst_flv_demux_pull_header), (gst_flv_demux_create_index): * gst/flv/gstflvparse.c: (gst_flv_parse_tag_script), (gst_flv_parse_tag_audio), (gst_flv_parse_tag_video), (gst_flv_parse_tag_timestamp), (gst_flv_parse_tag_type), (gst_flv_parse_header): * gst/flv/gstflvparse.h: Don't memcpy() all data we want to push downstream, instead just create subbuffers and push them downstream. Fix some minor memory leaks.
* [MOVED FROM BAD 42/57] gst/flv/Makefile.am: Fix (non-critical) syntax error ↵Sebastian Dröge2009-05-122-119/+102
| | | | | | | | | | | | | | | | and add all required CFLAGS and LIBS. Original commit message from CVS: * gst/flv/Makefile.am: Fix (non-critical) syntax error and add all required CFLAGS and LIBS. * gst/flv/gstflvparse.c: (FLV_GET_STRING), (gst_flv_parse_metadata_item), (gst_flv_parse_tag_script), (gst_flv_parse_tag_audio), (gst_flv_parse_tag_video), (gst_flv_parse_tag_timestamp), (gst_flv_parse_tag_type): Rewrite the script tag parsing to make sure we don't try to read more data than we have. Also use GST_READ_UINT24_BE directly and fix some minor memory leaks. This should make all crashes on fuzzed FLV files disappear.
* [MOVED FROM BAD 41/57] gst/flv/gstflvparse.c: Properly check everywhere that ↵Sebastian Dröge2009-05-121-1/+21
| | | | | | | | | | | we have enough data to parse and don't read outside the allocat... Original commit message from CVS: * gst/flv/gstflvparse.c: (FLV_GET_STRING), (gst_flv_parse_tag_audio), (gst_flv_parse_tag_video), (gst_flv_parse_tag_type), (gst_flv_parse_header): Properly check everywhere that we have enough data to parse and don't read outside the allocated memory region.
* [MOVED FROM BAD 40/57] gst/flv/gstflvparse.c: If the caps change during ↵Sebastian Dröge2009-05-121-2/+9
| | | | | | | | | | playback and negotiation fails error out instead of trying to continue. Original commit message from CVS: * gst/flv/gstflvparse.c: (gst_flv_parse_tag_audio), (gst_flv_parse_tag_video): If the caps change during playback and negotiation fails error out instead of trying to continue.
* [MOVED FROM BAD 39/57] gst/flv/: Add support for Speex audio and allow ↵Sebastian Dröge2009-05-123-8/+28
| | | | | | | | | | | | | buffers without valid timestamp in the muxer. Original commit message from CVS: * gst/flv/gstflvmux.c: (gst_flv_mux_audio_pad_setcaps), (gst_flv_mux_request_new_pad), (gst_flv_mux_write_buffer), (gst_flv_mux_collected): * gst/flv/gstflvmux.h: * gst/flv/gstflvparse.c: (gst_flv_parse_audio_negotiate): Add support for Speex audio and allow buffers without valid timestamp in the muxer.
* [MOVED FROM BAD 38/57] gst/flv/gstflvdemux.c: Don't post an error message on ↵Sebastian Dröge2009-05-121-27/+17
| | | | | | | | | | | | | | | the bus if sending EOS downstream didn't work. Fixes bug #550454. Original commit message from CVS: * gst/flv/gstflvdemux.c: (gst_flv_demux_loop), (gst_flv_demux_find_offset), (gst_flv_demux_handle_seek_push), (gst_flv_demux_handle_seek_pull): Don't post an error message on the bus if sending EOS downstream didn't work. Fixes bug #550454. Fix seek event handling to look at the flags of the seek event instead of assuming some random flags, don't send segment-start messages when operating in push mode and push seek events upstream if we couldn't handle them.
* [MOVED FROM BAD 37/57] gst/flv/gstflvdemux.c: Error out early if pulling a ↵Sebastian Dröge2009-05-121-0/+3
| | | | | | | | tag failed. Original commit message from CVS: * gst/flv/gstflvdemux.c: (gst_flv_demux_pull_tag): Error out early if pulling a tag failed.
* [MOVED FROM BAD 36/57] gst/flv/: In pull mode we create our own index before ↵Sebastian Dröge2009-05-123-53/+96
| | | | | | | | | | | | | | | | | doing anything else and don't use the index provided by some fi... Original commit message from CVS: * gst/flv/gstflvdemux.c: (gst_flv_demux_create_index), (gst_flv_demux_loop): * gst/flv/gstflvparse.c: (gst_flv_parse_tag_script), (gst_flv_parse_tag_audio), (gst_flv_parse_tag_video), (gst_flv_parse_tag_timestamp): * gst/flv/gstflvparse.h: In pull mode we create our own index before doing anything else and don't use the index provided by some files (which are more than often incorrect and cause failed seeks). For push mode we still use the index provided by the file and extend it while doing the playback.
* [MOVED FROM BAD 35/57] gst/flv/gstflvdemux.c: Instead of using ↵Sebastian Dröge2009-05-121-9/+25
| | | | | | | | | | | | gst_pad_event_default() use a small gst_pad_push_event() wrapper that only do... Original commit message from CVS: * gst/flv/gstflvdemux.c: (gst_flv_demux_push_src_event), (gst_flv_demux_loop), (gst_flv_demux_handle_seek_pull), (gst_flv_demux_sink_event): Instead of using gst_pad_event_default() use a small gst_pad_push_event() wrapper that only does what we want and is much more simple.
* [MOVED FROM BAD 34/57] gst/flv/gstflvdemux.*: If our index was created by ↵Sebastian Dröge2009-05-122-0/+13
| | | | | | | | | | | | the element and not provided from the outside we should destroy it... Original commit message from CVS: * gst/flv/gstflvdemux.c: (gst_flv_demux_change_state), (gst_flv_demux_set_index), (gst_flv_demux_init): * gst/flv/gstflvdemux.h: If our index was created by the element and not provided from the outside we should destroy it when starting a new stream to get all old entries removed.
* [MOVED FROM BAD 33/57] gst/flv/gstflvdemux.c: Improve debugging a bit when ↵Sebastian Dröge2009-05-121-3/+6
| | | | | | | | pulling a buffer from upstream fails. Original commit message from CVS: * gst/flv/gstflvdemux.c: (gst_flv_demux_pull_range): Improve debugging a bit when pulling a buffer from upstream fails.
* [MOVED FROM BAD 32/57] gst/flv/: Close the currently playing segment from ↵Sebastian Dröge2009-05-123-9/+32
| | | | | | | | | | | | | the streaming thread instead of the thread where the seek event is... Original commit message from CVS: * gst/flv/gstflvdemux.c: (gst_flv_demux_cleanup), (gst_flv_demux_handle_seek_pull), (gst_flv_demux_dispose): * gst/flv/gstflvdemux.h: * gst/flv/gstflvparse.c: (gst_flv_parse_tag_audio), (gst_flv_parse_tag_video): Close the currently playing segment from the streaming thread instead of the thread where the seek event is handled.
* [MOVED FROM BAD 31/57] gst/flv/gstflvmux.c: Don't set video_codec to the ↵Sebastian Dröge2009-05-121-4/+4
| | | | | | | | | | | value that actually should go into audio codec, otherwise we create... Original commit message from CVS: * gst/flv/gstflvmux.c: (gst_flv_mux_audio_pad_setcaps), (gst_flv_mux_write_buffer): Don't set video_codec to the value that actually should go into audio codec, otherwise we create invalid files. Fixes bug #556564.
* [MOVED FROM BAD 30/57] gst/flv/gstflvdemux.c: Fix regression of handling ↵Sebastian Dröge2009-05-121-6/+6
| | | | | | | | | | flow returns in pull mode. Original commit message from CVS: * gst/flv/gstflvdemux.c: (gst_flv_demux_pull_tag), (gst_flv_demux_pull_header): Fix regression of handling flow returns in pull mode. Fixes bug #556003.
* [MOVED FROM BAD 29/57] gst/flv/gstflvparse.c: Use ↵Sebastian Dröge2009-05-121-6/+30
| | | | | | | | | | | | | gst_pad_alloc_buffer_and_set_caps() to make sure we get a buffer with caps that we can wor... Original commit message from CVS: * gst/flv/gstflvparse.c: (gst_flv_parse_tag_audio), (gst_flv_parse_tag_video): Use gst_pad_alloc_buffer_and_set_caps() to make sure we get a buffer with caps that we can work with (i.e. the pad's caps). Add non-keyframe video frames to the index too but without the keyframe flag. Add audio frames to the index only if we have no video stream.
* [MOVED FROM BAD 28/57] gst/flv/gstflvparse.c: Create pads from the pad ↵Sebastian Dröge2009-05-121-7/+16
| | | | | | | | | | templates, use fixed caps on them and only activate them after the ca... Original commit message from CVS: * gst/flv/gstflvparse.c: (gst_flv_parse_tag_audio), (gst_flv_parse_tag_video): Create pads from the pad templates, use fixed caps on them and only activate them after the caps are set.
* [MOVED FROM BAD 27/57] gst/flv/: Get an approximate duration of the file by ↵Sebastian Dröge2009-05-123-0/+65
| | | | | | | | | | | | looking at the timestamp of the last tag in pull mode. If we get... Original commit message from CVS: * gst/flv/gstflvdemux.c: (gst_flv_demux_loop): * gst/flv/gstflvparse.c: (gst_flv_parse_tag_timestamp): * gst/flv/gstflvparse.h: Get an approximate duration of the file by looking at the timestamp of the last tag in pull mode. If we get (maybe better) duration from metadata later we'll use that instead.
* [MOVED FROM BAD 26/57] gst/flv/gstflvdemux.c: Refactor _pull_range() logic ↵Sebastian Dröge2009-05-121-39/+31
| | | | | | | | | | with checks into a seperate function to make things a bit more re... Original commit message from CVS: * gst/flv/gstflvdemux.c: (gst_flv_demux_pull_range), (gst_flv_demux_pull_tag), (gst_flv_demux_pull_header): Refactor _pull_range() logic with checks into a seperate function to make things a bit more readable.
* [MOVED FROM BAD 25/57] gst/flv/gstflvdemux.c: Use ↵Sebastian Dröge2009-05-121-10/+11
| | | | | | | | | | | gst_element_class_set_details_simple(). Original commit message from CVS: * gst/flv/gstflvdemux.c: (gst_flv_demux_chain), (gst_flv_demux_base_init): Use gst_element_class_set_details_simple(). If we get GST_FLOW_NOT_LINKED in the parse loop but at least one of the pads is linked continue the loop.
* [MOVED FROM BAD 24/57] gst/flv/gstflvparse.c: Correct caps for video codec ↵Sebastian Dröge2009-05-121-3/+24
| | | | | | | | | | | | | | id 5: It's On2 VP6 with alpha channel which needs a different dec... Original commit message from CVS: * gst/flv/gstflvparse.c: (gst_flv_parse_audio_negotiate), (gst_flv_parse_tag_audio), (gst_flv_parse_video_negotiate): Correct caps for video codec id 5: It's On2 VP6 with alpha channel which needs a different decoder and has different caps. Add support for audio codec id 14, which is MP3 with 8kHz sampling rate. Fix endianness and signedness for raw audio codec ids. Add support for alaw and mulaw audio.
* [MOVED FROM BAD 23/57] gst/flv/gstflvdemux.c: Go out of the parse loop as ↵Sebastian Dröge2009-05-121-1/+9
| | | | | | | | | | | soon as we get an error instead of parsing until the GstAdapter is... Original commit message from CVS: * gst/flv/gstflvdemux.c: (gst_flv_demux_chain): Go out of the parse loop as soon as we get an error instead of parsing until the GstAdapter is empty. Add some explanations about the header and tag size. Don't print synchronizing message if everything is fine.
* [MOVED FROM BAD 22/57] gst/flv/: Add first version of a FLV muxer. The only ↵Sebastian Dröge2009-05-124-9/+849
| | | | | | | | | | | | | | | | | | | missing feature is writing of stream metadata. Original commit message from CVS: * gst/flv/Makefile.am: * gst/flv/gstflvdemux.c: (plugin_init): * gst/flv/gstflvmux.c: (gst_flv_mux_base_init), (gst_flv_mux_class_init), (gst_flv_mux_init), (gst_flv_mux_finalize), (gst_flv_mux_reset), (gst_flv_mux_handle_src_event), (gst_flv_mux_handle_sink_event), (gst_flv_mux_video_pad_setcaps), (gst_flv_mux_audio_pad_setcaps), (gst_flv_mux_request_new_pad), (gst_flv_mux_release_pad), (gst_flv_mux_write_header), (gst_flv_mux_write_buffer), (gst_flv_mux_collected), (gst_flv_mux_change_state): * gst/flv/gstflvmux.h: Add first version of a FLV muxer. The only missing feature is writing of stream metadata.