summaryrefslogtreecommitdiffstats
path: root/gst/qtdemux/qtdemux.h
Commit message (Collapse)AuthorAgeFilesLines
* qtdemux: add GstIndex supportMark Nauwelaerts2009-10-141-0/+4
|
* qtdemux: refactor buffer processing and sendingMark Nauwelaerts2009-10-091-3/+0
| | | | ... so it can be used in both pull and push based mode.
* qtdemux: support 3GPP timed text subtitlesMark Nauwelaerts2009-10-091-1/+1
| | | | In particular, also make subtitle support less subp(icture)-centric.
* qtdemux: consider 3gpp style tag parsing in some more casesMark Nauwelaerts2009-08-311-0/+1
| | | | | | | | 3GPP specs define a number of tags along with precise layout. While these are normally expected to be found in a container whose major brand is a 3GPP brand, this may also happen when a 3GPP brand is only mentioned as a compatible brand. Apply some checks, heuristic and fallbacks to extract such tags as well.
* qtdemux: add support for subtitle picturesWim Taymans2009-04-301-0/+1
| | | | | Add support for subtitle pictures. Fixes #568278.
* qtdemux: implement 3GPP (TS 26.244 V8.0.0) Asset metadata handling, Fixes ↵Marco Ballesio2009-04-151-0/+1
| | | | | | #132193 Implements 3gpp iso metadata tags which are different from mov udta atoms.
* gst/qtdemux/: Streamline tag handling and pass unparsed tags as binary blob ↵Mark Nauwelaerts2009-01-051-0/+3
| | | | | | | | | | | | | | in private tag. Original commit message from CVS: * gst/qtdemux/qtdemux.c: (qtdemux_tag_add_str), (qtdemux_tag_add_tmpo), (qtdemux_tag_add_covr), (qtdemux_tag_add_date), (qtdemux_tag_add_gnre), (qtdemux_tag_add_blob), (qtdemux_parse_udta): * gst/qtdemux/qtdemux.h: * gst/qtdemux/quicktime.c: (plugin_init): Streamline tag handling and pass unparsed tags as binary blob in private tag.
* gst/qtdemux/qtdemux.*: Queue up new segment events instead of sending them ↵Andy Wingo2008-11-121-0/+1
| | | | | | | | | | | | | | | from the seeking thread. Original commit message from CVS: * gst/qtdemux/qtdemux.h (struct _GstQTDemux): * gst/qtdemux/qtdemux.c (gst_qtdemux_do_seek): Queue up new segment events instead of sending them from the seeking thread. Fixes #559288. (gst_qtdemux_push_pending_newsegment): New helper, sends out queued newsegment events. (gst_qtdemux_loop_state_movie): Voilà, call it here. Only need to call it here, as we only seek when looping, and only push in the movie state.
* gst/qtdemux/: Add support for video/mj2 mime-type and its additional ↵Mark Nauwelaerts2008-09-031-0/+1
| | | | | | | | | | | | | | atoms/boxes. Original commit message from CVS: * gst/qtdemux/qtdemux.c: (gst_qtdemux_change_state), (gst_qtdemux_loop_state_header), (qtdemux_parse_node), (qtdemux_parse_trak), (qtdemux_video_caps): * gst/qtdemux/qtdemux.h: * gst/qtdemux/qtdemux_fourcc.h: * gst/qtdemux/qtdemux_types.c: Add support for video/mj2 mime-type and its additional atoms/boxes. Fixes #550646.
* gst/qtdemux/qtdemux.*: Share qtdemux debug category across all files, ↵Edward Hervey2007-03-071-0/+3
| | | | | | | | | | otherwise all debugging in files other than qtd... Original commit message from CVS: * gst/qtdemux/qtdemux.c: * gst/qtdemux/qtdemux.h: Share qtdemux debug category across all files, otherwise all debugging in files other than qtdemux.c would end up in the default category.
* gst/qtdemux/: Add X-QT depayloader that will eventually share code with the ↵Wim Taymans2007-01-121-0/+2
| | | | | | | | | | | | | | | | | | | | | | | demuxer. Original commit message from CVS: * gst/qtdemux/Makefile.am: * gst/qtdemux/gstrtpxqtdepay.c: (gst_rtp_xqt_depay_base_init), (gst_rtp_xqt_depay_class_init), (gst_rtp_xqt_depay_init), (gst_rtp_xqt_depay_finalize), (gst_rtp_quicktime_parse_sd), (gst_rtp_xqt_depay_setcaps), (gst_rtp_xqt_depay_process), (gst_rtp_xqt_depay_set_property), (gst_rtp_xqt_depay_get_property), (gst_rtp_xqt_depay_change_state), (gst_rtp_xqt_depay_plugin_init): * gst/qtdemux/gstrtpxqtdepay.h: * gst/qtdemux/qtdemux.c: (gst_qtdemux_base_init), (gst_qtdemux_loop_state_header), (gst_qtdemux_loop), (qtdemux_parse_moov), (qtdemux_parse_container), (qtdemux_parse_node), (gst_qtdemux_add_stream), (qtdemux_parse_trak), (qtdemux_audio_caps): * gst/qtdemux/qtdemux.h: * gst/qtdemux/quicktime.c: (plugin_init): Add X-QT depayloader that will eventually share code with the demuxer. Make new plugin entry point with quicktime releated stuff.
* gst/qtdemux/: Cleanup and refactor to make the code more readable.Wim Taymans2007-01-121-5/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Original commit message from CVS: * gst/qtdemux/Makefile.am: * gst/qtdemux/qtdemux.c: (extract_initial_length_and_fourcc), (gst_qtdemux_loop_state_header), (gst_qtdemux_combine_flows), (gst_qtdemux_loop_state_movie), (gst_qtdemux_loop), (gst_qtdemux_chain), (qtdemux_sink_activate_pull), (qtdemux_inflate), (qtdemux_parse_moov), (qtdemux_parse_container), (qtdemux_parse_node), (qtdemux_tree_get_child_by_type), (qtdemux_tree_get_sibling_by_type), (gst_qtdemux_add_stream), (qtdemux_parse_samples), (qtdemux_parse_segments), (qtdemux_parse_trak), (qtdemux_tag_add_str), (qtdemux_tag_add_num), (qtdemux_tag_add_date), (qtdemux_tag_add_gnre), (qtdemux_parse_udta), (qtdemux_redirects_sort_func), (qtdemux_process_redirects), (qtdemux_parse_redirects), (qtdemux_parse_tree), (gst_qtdemux_handle_esds), (qtdemux_video_caps), (qtdemux_audio_caps): * gst/qtdemux/qtdemux.h: * gst/qtdemux/qtdemux_dump.c: (qtdemux_dump_mvhd), (qtdemux_dump_tkhd), (qtdemux_dump_elst), (qtdemux_dump_mdhd), (qtdemux_dump_hdlr), (qtdemux_dump_vmhd), (qtdemux_dump_dref), (qtdemux_dump_stsd), (qtdemux_dump_stts), (qtdemux_dump_stss), (qtdemux_dump_stsc), (qtdemux_dump_stsz), (qtdemux_dump_stco), (qtdemux_dump_co64), (qtdemux_dump_dcom), (qtdemux_dump_cmvd), (qtdemux_dump_unknown), (qtdemux_node_dump_foreach), (qtdemux_node_dump): * gst/qtdemux/qtdemux_dump.h: * gst/qtdemux/qtdemux_fourcc.h: * gst/qtdemux/qtdemux_types.c: (qtdemux_type_get): * gst/qtdemux/qtdemux_types.h: * gst/qtdemux/qtpalette.h: Cleanup and refactor to make the code more readable. Move debugging/tables into separate files. Add 2/4/16 color palletee support. Fix raw 15 bit RGB handling. Use more FOURCC constants. Add some docs.
* gst/qtdemux/qtdemux.*: Avoid void pointer usage, better use guint8 * instead.Tim-Philipp Müller2006-10-171-0/+2
| | | | | | | | | | | | | | | Original commit message from CVS: * gst/qtdemux/qtdemux.c: (qtdemux_parse_moov), (qtdemux_parse), (qtdemux_node_dump_foreach), (qtdemux_dump_mvhd), (qtdemux_dump_tkhd), (qtdemux_dump_elst), (qtdemux_dump_mdhd), (qtdemux_dump_hdlr), (qtdemux_dump_vmhd), (qtdemux_dump_dref), (qtdemux_dump_stsd), (qtdemux_dump_stts), (qtdemux_dump_stss), (qtdemux_dump_stsc), (qtdemux_dump_stsz), (qtdemux_dump_stco), (qtdemux_dump_co64), (qtdemux_dump_dcom), (qtdemux_dump_cmvd), (qtdemux_dump_unknown), (qtdemux_tree_get_child_by_type), (qtdemux_tree_get_sibling_by_type): * gst/qtdemux/qtdemux.h: Avoid void pointer usage, better use guint8 * instead.
* Fix more gobject macros: obj<->klass, GstXXX<->GstXXXClassStefan Kost2006-06-011-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Original commit message from CVS: * ext/alsaspdif/alsaspdifsink.h: * ext/amrwb/gstamrwbdec.h: * ext/amrwb/gstamrwbenc.h: * ext/amrwb/gstamrwbparse.h: * ext/arts/gst_arts.h: * ext/artsd/gstartsdsink.h: * ext/audiofile/gstafparse.h: * ext/audiofile/gstafsink.h: * ext/audiofile/gstafsrc.h: * ext/audioresample/gstaudioresample.h: * ext/bz2/gstbz2dec.h: * ext/bz2/gstbz2enc.h: * ext/dirac/gstdiracdec.h: * ext/directfb/dfbvideosink.h: * ext/divx/gstdivxdec.h: * ext/divx/gstdivxenc.h: * ext/dts/gstdtsdec.h: * ext/faac/gstfaac.h: * ext/gsm/gstgsmdec.h: * ext/gsm/gstgsmenc.h: * ext/ivorbis/vorbisenc.h: * ext/libfame/gstlibfame.h: * ext/nas/nassink.h: * ext/neon/gstneonhttpsrc.h: * ext/polyp/polypsink.h: * ext/sdl/sdlaudiosink.h: * ext/sdl/sdlvideosink.h: * ext/shout/gstshout.h: * ext/snapshot/gstsnapshot.h: * ext/sndfile/gstsf.h: * ext/swfdec/gstswfdec.h: * ext/tarkin/gsttarkindec.h: * ext/tarkin/gsttarkinenc.h: * ext/theora/theoradec.h: * ext/wavpack/gstwavpackdec.h: * ext/wavpack/gstwavpackparse.h: * ext/xine/gstxine.h: * ext/xvid/gstxviddec.h: * ext/xvid/gstxvidenc.h: * gst/cdxaparse/gstcdxaparse.h: * gst/cdxaparse/gstcdxastrip.h: * gst/colorspace/gstcolorspace.h: * gst/festival/gstfestival.h: * gst/freeze/gstfreeze.h: * gst/gdp/gstgdpdepay.h: * gst/gdp/gstgdppay.h: * gst/modplug/gstmodplug.h: * gst/mpeg1sys/gstmpeg1systemencode.h: * gst/mpeg1videoparse/gstmp1videoparse.h: * gst/mpeg2sub/gstmpeg2subt.h: * gst/mpegaudioparse/gstmpegaudioparse.h: * gst/multifilesink/gstmultifilesink.h: * gst/overlay/gstoverlay.h: * gst/playondemand/gstplayondemand.h: * gst/qtdemux/qtdemux.h: * gst/rtjpeg/gstrtjpegdec.h: * gst/rtjpeg/gstrtjpegenc.h: * gst/smooth/gstsmooth.h: * gst/smoothwave/gstsmoothwave.h: * gst/spectrum/gstspectrum.h: * gst/speed/gstspeed.h: * gst/stereo/gststereo.h: * gst/switch/gstswitch.h: * gst/tta/gstttadec.h: * gst/tta/gstttaparse.h: * gst/videodrop/gstvideodrop.h: * gst/xingheader/gstxingmux.h: * sys/directdraw/gstdirectdrawsink.h: * sys/directsound/gstdirectsoundsink.h: * sys/dxr3/dxr3audiosink.h: * sys/dxr3/dxr3spusink.h: * sys/dxr3/dxr3videosink.h: * sys/qcam/gstqcamsrc.h: * sys/vcd/vcdsrc.h: Fix more gobject macros: obj<->klass, GstXXX<->GstXXXClass
* gst/qtdemux/qtdemux.*: Handle stss boxes so we can mark and find keyframes.Wim Taymans2006-04-041-4/+6
| | | | | | | | | | | | | | | | | | Original commit message from CVS: * gst/qtdemux/qtdemux.c: (gst_qtdemux_init), (gst_qtdemux_push_event), (gst_qtdemux_go_back), (gst_qtdemux_perform_seek), (gst_qtdemux_do_seek), (gst_qtdemux_handle_src_event), (plugin_init), (gst_qtdemux_change_state), (gst_qtdemux_loop_state_movie), (gst_qtdemux_loop), (gst_qtdemux_chain), (qtdemux_sink_activate_pull), (gst_qtdemux_add_stream), (qtdemux_parse), (qtdemux_parse_tree), (qtdemux_parse_trak), (qtdemux_parse_udta), (qtdemux_tag_add_str), (qtdemux_tag_add_num), (qtdemux_tag_add_gnre), (gst_qtdemux_handle_esds): * gst/qtdemux/qtdemux.h: Handle stss boxes so we can mark and find keyframes. Implement correct accurate and keyframe seeking. Use _DEBUG_OBJECT when possible.
* gst/qtdemux/qtdemux.*: Make push-based work if mdat atom is before moov atom.Edward Hervey2006-02-141-0/+3
| | | | | | | | | | | Original commit message from CVS: * gst/qtdemux/qtdemux.c: (gst_qtdemux_init), (gst_qtdemux_handle_src_query), (gst_qtdemux_change_state), (next_entry_size), (gst_qtdemux_chain): * gst/qtdemux/qtdemux.h: Make push-based work if mdat atom is before moov atom. Don't answer duration query. This should be transformed into replying FALSE to seek events.
* gst/qtdemux/: QtDemux can now work push-based.Edward Hervey2006-02-131-0/+9
| | | | | | | | | | | | | | | Original commit message from CVS: * gst/qtdemux/Makefile.am: * gst/qtdemux/qtdemux.c: (gst_qtdemux_init), (gst_qtdemux_handle_sink_event), (gst_qtdemux_change_state), (extract_initial_length_and_fourcc), (gst_qtdemux_loop_state_header), (gst_qtdemux_loop_state_movie), (gst_qtdemux_loop_header), (next_entry_size), (gst_qtdemux_chain), (qtdemux_sink_activate), (qtdemux_sink_activate_pull), (qtdemux_sink_activate_push), (qtdemux_parse_trak): * gst/qtdemux/qtdemux.h: QtDemux can now work push-based. It still needs some love for seeking.
* gst/qtdemux/qtdemux.*: Some QT demux loving.Wim Taymans2006-02-061-7/+4
| | | | | | | | | | | | | | | | | Original commit message from CVS: * gst/qtdemux/qtdemux.c: (gst_qtdemux_handle_src_query), (gst_qtdemux_handle_src_event), (gst_qtdemux_loop_header), (qtdemux_inflate), (qtdemux_parse), (qtdemux_parse_trak), (qtdemux_parse_udta), (qtdemux_tag_add_str), (qtdemux_tag_add_num), (qtdemux_tag_add_gnre), (gst_qtdemux_handle_esds), (qtdemux_video_caps), (qtdemux_audio_caps): * gst/qtdemux/qtdemux.h: Some QT demux loving. Handle seeking in a less broken way. Fix AMR caps to match the AMR decoder. Set first timestamp on AMR samples to 0 for now. Remove some \n in DEBUG strings. Use _scale_int for maximum precision.
* gst/qtdemux/qtdemux.*: Fix seeking for quicktime files. Could still use some ↵Tim-Philipp Müller2006-01-171-2/+0
| | | | | | | | | | | | more love and sophistication. Original commit message from CVS: * gst/qtdemux/qtdemux.c: (gst_qtdemux_init), (gst_qtdemux_send_event), (gst_qtdemux_handle_src_event), (gst_qtdemux_change_state), (gst_qtdemux_loop_header): * gst/qtdemux/qtdemux.h: Fix seeking for quicktime files. Could still use some more love and sophistication.
* expand tabsThomas Vander Stichele2005-12-061-1/+1
| | | | | Original commit message from CVS: expand tabs
* gst/qtdemux/qtdemux.h: Remove got_redirect from class structure as well.Tim-Philipp Müller2005-10-271-3/+0
| | | | | | Original commit message from CVS: * gst/qtdemux/qtdemux.h: Remove got_redirect from class structure as well.
* ext/faad/gstfaad.c: Sign/unsign mismatch.Ronald S. Bultje2005-08-091-5/+4
| | | | | | | | | | | | | | | | | Original commit message from CVS: * ext/faad/gstfaad.c: (gst_faad_event): Sign/unsign mismatch. * configure.ac: * gst/qtdemux/qtdemux.c: (gst_qtdemux_class_init), (gst_qtdemux_init), (gst_qtdemux_get_src_query_types), (gst_qtdemux_handle_src_query), (gst_qtdemux_handle_src_event), (plugin_init), (gst_qtdemux_handle_sink_event), (gst_qtdemux_change_state), (gst_qtdemux_loop_header), (qtdemux_sink_activate), (qtdemux_sink_activate_pull), (gst_qtdemux_add_stream), (qtdemux_parse), (qtdemux_parse_tree), (qtdemux_parse_trak), (qtdemux_video_caps), (qtdemux_audio_caps): * gst/qtdemux/qtdemux.h: Half-assed port (hey, it works).
* gst/qtdemux/qtdemux.*: Bitch. Also known as seeking, querying & co.Ronald S. Bultje2004-06-051-0/+3
| | | | | | | | | | | | | | | | | Original commit message from CVS: * gst/qtdemux/qtdemux.c: (gst_qtdemux_init), (gst_qtdemux_handle_src_query), (gst_qtdemux_handle_src_event), (gst_qtdemux_handle_sink_event), (gst_qtdemux_change_state), (gst_qtdemux_loop_header), (qtdemux_dump_mvhd), (qtdemux_parse_trak): * gst/qtdemux/qtdemux.h: Bitch. Also known as seeking, querying & co. * sys/oss/gstosssink.c: (gst_osssink_init), (gst_osssink_chain), (gst_osssink_change_state): * sys/oss/gstosssink.h: Resyncing is for weenies, this hack is no longer needed and was broken anyway (since it - unintendedly - always leaves resync to TRUE).
* gst/qtdemux/qtdemux.c: More qtdemux hackage -- parse a lot more atoms, ↵David Schleef2004-05-011-0/+2
| | | | | | | | | | | | | | extract a few tags. One might even mistake th... Original commit message from CVS: * gst/qtdemux/qtdemux.c: (gst_qtdemux_loop_header), (gst_qtdemux_add_stream), (qtdemux_parse), (qtdemux_type_get), (qtdemux_dump_stsz), (qtdemux_dump_stco), (qtdemux_dump_co64), (qtdemux_dump_unknown), (qtdemux_parse_tree), (qtdemux_parse_udta), (qtdemux_tag_add), (get_size), (gst_qtdemux_handle_esds): More qtdemux hackage -- parse a lot more atoms, extract a few tags. One might even mistake this for tag support. Maybe it is. * gst/qtdemux/qtdemux.h:
* *.h: Revert indentingJohan Dahlin2004-03-151-30/+27
| | | | | Original commit message from CVS: * *.h: Revert indenting
* gst-indentThomas Vander Stichele2004-03-141-27/+30
| | | | | Original commit message from CVS: gst-indent
* Add SVQ3 specific flags to qtdemux and ffmpegJeremy Simon2004-01-261-0/+1
| | | | | | | | | | | Original commit message from CVS: 2004-01-26 Jeremy Simon <jesimon@libertysurf.fr> * ext/ffmpeg/gstffmpegcodecmap.c: (gst_ffmpeg_codecid_to_caps), (gst_ffmpeg_caps_to_extradata), (gst_ffmpeg_caps_to_pixfmt): * gst/qtdemux/qtdemux.c: (plugin_init), (qtdemux_parse_trak), (qtdemux_video_caps): * gst/qtdemux/qtdemux.h: Add SVQ3 specific flags to qtdemux and ffmpeg
* change gst/bytestream.h to gst/bytestream/bytestream.hDavid Schleef2003-10-291-1/+1
| | | | | Original commit message from CVS: change gst/bytestream.h to gst/bytestream/bytestream.h
* merge TYPEFIND branch. Major changes:Benjamin Otte2003-10-281-1/+1
| | | | | | | | | | | | 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
* New typefind system: bytestream is now part of the core all plugins have ↵Ronald S. Bultje2003-10-011-1/+1
| | | | | | | | | | | | | | | | | | | | | been modified to use this new typefind syste... Original commit message from CVS: New typefind system: * bytestream is now part of the core * all plugins have been modified to use this new typefind system * asf typefinding added * mpeg video stream typefiding removed because it's broken * duplicate typefind entries removed * extra id3 typefinding added, because we've seen 4 types of files (riff/wav, flac, vorbis, mp3) with id3 headers and each of these needs to work. Instead, I've added an id3 element and let it redo typefiding after the id3 header. this needs a hack because spider only typefinds once. We can remove this hack once spider supports multiple typefinds. * with all this, mp3 typefinding is semi-rewritten * id3 typefinding in flac/vorbis is removed, it's no longer needed * fixed spider and gst-typefind to use this, too. * Other general cleanups
* Handle compressed headers. Fix inappropriate use of bytestream_flush().David Schleef2003-06-161-0/+3
| | | | | | | | Original commit message from CVS: Handle compressed headers. Fix inappropriate use of bytestream_flush(). Code cleanup. Added getcaps and _link functions for src pads. Extract and set the size,rate,channels correctly. Fix some of the caps to agree with avidemux and/or ffmpeg.
* Complete rewrite. Not finished, nothing to see here.David Schleef2003-06-101-104/+17
| | | | | Original commit message from CVS: Complete rewrite. Not finished, nothing to see here.
* adding new quicktime parser:Artyom Baginski2002-05-011-0/+168
Original commit message from CVS: adding new quicktime parser: - openquicktime free (hense gst/qtdemux) - no more seeks for parsing -> better for network streams - uses GstByteStream - less memcpy's - long ChangeLog record in pompous style