summaryrefslogtreecommitdiffstats
path: root/gst/flv/gstflvdemux.c
Commit message (Collapse)AuthorAgeFilesLines
* [MOVED FROM BAD 34/57] gst/flv/gstflvdemux.*: If our index was created by ↵Sebastian Dröge2009-05-121-0/+12
| | | | | | | | | | | | 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-121-9/+23
| | | | | | | | | | | | | 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 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 27/57] gst/flv/: Get an approximate duration of the file by ↵Sebastian Dröge2009-05-121-0/+32
| | | | | | | | | | | | 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 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-121-2/+5
| | | | | | | | | | | | | | | | | | | 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.
* [MOVED FROM BAD 21/57] gst/flv/: Introduce demuxing support for AAC andJulien Moutte2009-05-121-0/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | Original commit message from CVS: 2008-06-14 Julien Moutte <julien@fluendo.com> * gst/flv/gstflvdemux.c: (gst_flv_demux_cleanup), (gst_flv_demux_dispose): * gst/flv/gstflvdemux.h: * gst/flv/gstflvparse.c: (gst_flv_parse_audio_negotiate), (gst_flv_parse_tag_audio), (gst_flv_parse_video_negotiate), (gst_flv_parse_tag_video): Introduce demuxing support for AAC and H.264/AVC inside FLV. * sys/dshowdecwrapper/gstdshowaudiodec.c: (gst_dshowaudiodec_init), (gst_dshowaudiodec_chain), (gst_dshowaudiodec_push_buffer), (gst_dshowaudiodec_sink_event), (gst_dshowaudiodec_setup_graph): * sys/dshowdecwrapper/gstdshowaudiodec.h: * sys/dshowdecwrapper/gstdshowvideodec.c: (gst_dshowvideodec_init), (gst_dshowvideodec_sink_event), (gst_dshowvideodec_chain), (gst_dshowvideodec_push_buffer), (gst_dshowvideodec_src_getcaps): * sys/dshowdecwrapper/gstdshowvideodec.h: Lot of random fixes to improve stability (ref counting, safety checks...)
* [MOVED FROM BAD 20/57] gst/flv/gstflvdemux.c: Forward unknown queries ↵Wim Taymans2009-05-121-3/+1
| | | | | | | | upstream instead of returning FALSE on them. Original commit message from CVS: * gst/flv/gstflvdemux.c: (gst_flv_demux_query): Forward unknown queries upstream instead of returning FALSE on them.
* [MOVED FROM BAD 10/57] gst/: Printf format fixes (#476128).Peter Kjellerstedt2009-05-121-2/+4
| | | | | | | | | | | Original commit message from CVS: Patch by: Peter Kjellerstedt <pkj at axis com> * gst-libs/gst/app/gstappsink.c: * gst/flv/gstflvdemux.c: * gst/flv/gstflvparse.c: * gst/interleave/deinterleave.c: * gst/switch/gstswitch.c: Printf format fixes (#476128).
* [MOVED FROM BAD 09/57] gst/flv/gstflvdemux.c: Make sure we initialize the ↵Julien Moutte2009-05-121-0/+1
| | | | | | | | | | seek result. Original commit message from CVS: 2007-08-27 Julien MOUTTE <julien@moutte.net> * gst/flv/gstflvdemux.c: (gst_flv_demux_handle_seek_pull): Make sure we initialize the seek result.
* [MOVED FROM BAD 08/57] gst/flv/gstflvdemux.c: Remove some useless ifdef.Julien Moutte2009-05-121-2/+0
| | | | | | | | | | | Original commit message from CVS: 2007-08-24 Julien MOUTTE <julien@moutte.net> * gst/flv/gstflvdemux.c: (gst_flv_demux_flush), (gst_flv_demux_chain), (gst_flv_demux_pull_tag), (gst_flv_demux_find_offset), (gst_flv_demux_handle_seek_push), (gst_flv_demux_handle_seek_pull), (gst_flv_demux_sink_event), (gst_flv_demux_src_event): Remove some useless ifdef.
* [MOVED FROM BAD 07/57] gst/flv/gstflvdemux.c: Implement seeking in push mode.Julien Moutte2009-05-121-34/+164
| | | | | | | | | | | | | | Original commit message from CVS: 2007-08-24 Julien MOUTTE <julien@moutte.net> * gst/flv/gstflvdemux.c: (gst_flv_demux_flush), (gst_flv_demux_cleanup), (gst_flv_demux_chain), (gst_flv_demux_pull_tag), (gst_flv_demux_find_offset), (gst_flv_demux_handle_seek_push), (gst_flv_demux_handle_seek_pull), (gst_flv_demux_sink_event), (gst_flv_demux_src_event): Implement seeking in push mode. * gst/flv/gstflvdemux.h:
* [MOVED FROM BAD 06/57] gst/flv/: Handle pixel aspect ratio through metadata ↵Julien Moutte2009-05-121-0/+3
| | | | | | | | | | | | | | | | tags like ASF does. Fluendo muxer supports this and Original commit message from CVS: 2007-08-22 Julien MOUTTE <julien@moutte.net> * gst/flv/gstflvdemux.c: (gst_flv_demux_cleanup), (gst_flv_demux_pull_tag): * gst/flv/gstflvdemux.h: * gst/flv/gstflvparse.c: (gst_flv_parse_metadata_item), (gst_flv_parse_tag_script), (gst_flv_parse_tag_audio), (gst_flv_parse_tag_video): Handle pixel aspect ratio through metadata tags like ASF does. Fluendo muxer supports this and Flash players can support it as well this way.
* [MOVED FROM BAD 05/57] gst/flv/: Make sure we don't try filling up the index ↵Julien Moutte2009-05-121-0/+3
| | | | | | | | | | | | | | | if no times object was parsed. Fix the way we decide to push ta... Original commit message from CVS: 2007-08-22 Julien MOUTTE <julien@moutte.net> * gst/flv/gstflvdemux.c: (gst_flv_demux_pull_tag): * gst/flv/gstflvparse.c: (gst_flv_parse_metadata_item), (gst_flv_parse_tag_script), (gst_flv_parse_tag_audio), (gst_flv_parse_tag_video): Make sure we don't try filling up the index if no times object was parsed. Fix the way we decide to push tags and emit no-more-pads. Fix some printf typing in debugging.
* [MOVED FROM BAD 04/57] gst/flv/gstflvdemux.c: Fix locking and refcounting on ↵Wim Taymans2009-05-121-1/+12
| | | | | | | | | the index. Original commit message from CVS: * gst/flv/gstflvdemux.c: (gst_flv_demux_set_index), (gst_flv_demux_get_index): Fix locking and refcounting on the index.
* [MOVED FROM BAD 03/57] gst/flv/gstflvdemux.c: First method for seeking in ↵Julien Moutte2009-05-121-6/+325
| | | | | | | | | | | | | | | | | | | | | | pull mode using the index built step by step or coming from metadata. Original commit message from CVS: 2007-08-14 Julien MOUTTE <julien@moutte.net> * gst/flv/gstflvdemux.c: (gst_flv_demux_cleanup), (gst_flv_demux_adapter_flush), (gst_flv_demux_chain), (gst_flv_demux_pull_tag), (gst_flv_demux_do_seek), (gst_flv_demux_handle_seek), (gst_flv_demux_sink_event), (gst_flv_demux_src_event), (gst_flv_demux_query), (gst_flv_demux_change_state), (gst_flv_demux_set_index), (gst_flv_demux_get_index), (gst_flv_demux_dispose), (gst_flv_demux_class_init): First method for seeking in pull mode using the index built step by step or coming from metadata. * gst/flv/gstflvdemux.h: * 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): Parse more metadata types and keyframes index.
* [MOVED FROM BAD 02/57] gst/flv/: Handle not linked pads, try to make it ↵Julien Moutte2009-05-121-8/+66
| | | | | | | | | | | | | | | | | | reusable, more safety checks. Original commit message from CVS: 2007-07-25 Julien MOUTTE <julien@moutte.net> (gst_flv_demux_chain), (gst_flv_demux_pull_tag), (gst_flv_demux_change_state), (gst_flv_demux_dispose), (gst_flv_demux_init): * gst/flv/gstflvdemux.h: * 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_header): * gst/flv/gstflvparse.h: Handle not linked pads, try to make it reusable, more safety checks.
* [MOVED FROM BAD 01/57] Adds a first draft of an FLV demuxer.Julien Moutte2009-05-121-0/+675
Original commit message from CVS: 2007-07-19 Julien MOUTTE <julien@moutte.net> * configure.ac: * gst/flv/Makefile.am: * gst/flv/gstflvdemux.c: (gst_flv_demux_flush), (gst_flv_demux_cleanup), (gst_flv_demux_chain), (gst_flv_demux_pull_tag), (gst_flv_demux_pull_header), (gst_flv_demux_seek_to_prev_keyframe), (gst_flv_demux_loop), (gst_flv_demux_sink_activate), (gst_flv_demux_sink_activate_push), (gst_flv_demux_sink_activate_pull), (gst_flv_demux_sink_event), (gst_flv_demux_change_state), (gst_flv_demux_dispose), (gst_flv_demux_base_init), (gst_flv_demux_class_init), (gst_flv_demux_init), (plugin_init): * gst/flv/gstflvdemux.h: * gst/flv/gstflvparse.c: (FLV_GET_BEUI24), (FLV_GET_STRING), (gst_flv_demux_query_types), (gst_flv_demux_query), (gst_flv_parse_metadata_item), (gst_flv_parse_tag_script), (gst_flv_parse_tag_audio), (gst_flv_parse_tag_video), (gst_flv_parse_tag_type), (gst_flv_parse_header): * gst/flv/gstflvparse.h: Adds a first draft of an FLV demuxer. It does not do seeking yet, it supports pull and push mode so YES you can use it to play youtube videos directly from an HTTP uri. Not so much testing done yet but it parses metadata, reply to duration queries, etc...