1. 10 Sep, 2013 1 commit
  2. 22 Jul, 2013 1 commit
  3. 15 Jul, 2013 1 commit
  4. 12 Jul, 2013 1 commit
  5. 07 May, 2013 3 commits
    • Thiago Santos's avatar
      qtdemux: some code cleanup for mss handling code · 4d073bee
      Thiago Santos authored
      * Explicitly init variables for fragmented formats at init
      * Do not use GstClockTime type if the variable isn't a timestamp
      * Fix a style/readability issue at an if block
      * Group 2 mss mode conditional blocks together to improve readability
      
      Conflicts:
      	gst/isomp4/qtdemux.c
      4d073bee
    • Louis-Francis Ratté-Boulianne's avatar
      qtdemux: Remove old pads when exposing streams and other general fixes. · d499b461
      Louis-Francis Ratté-Boulianne authored
      Conflicts:
      	gst/isomp4/qtdemux.c
      d499b461
    • Thiago Santos's avatar
      qtdemux: handle mss streams · a3c19eee
      Thiago Santos authored
      smoothstreaming streams should be handled as a special kind of
      fragmented isomedia. In MSS the fragments will not contain a
      'moov' atom with the media descriptions, this has to be extracted
      from the caps.
      
      Additionally, there should be another demuxer upstream that is likely
      going to be the one to answer/act on queries and events, so qtdemux has
      to forward those upstream.
      a3c19eee
  6. 04 Nov, 2012 1 commit
  7. 12 Oct, 2012 1 commit
  8. 27 Sep, 2012 1 commit
  9. 30 Dec, 2011 1 commit
  10. 30 Aug, 2011 1 commit
  11. 29 Jun, 2011 1 commit
  12. 16 May, 2011 1 commit
  13. 30 Apr, 2011 1 commit
  14. 12 Apr, 2011 1 commit
  15. 03 Dec, 2010 3 commits
    • Mark Nauwelaerts's avatar
      dfa54ed8
    • Mark Nauwelaerts's avatar
      qtdemux: fragmented support; proper and incremental moof parsing · d66a3db6
      Mark Nauwelaerts authored
      That is, parse each moof in one pass (considering all contained streams'
      metadata), and do so incrementally as needed for playback rather than
      an initial complete scan of all moof (though all moov sample metadata
      is fully parsed at startup).
      d66a3db6
    • Andoni Morales Alastruey's avatar
      qtdemux: parse fmp4 samples information · 6f05c5c0
      Andoni Morales Alastruey authored
      The fragmented mp4 format stores the tracks and samples information in the
      'moof' boxes, which are appended before each fragment (fragment->'moof'+'mdat').
      The 'mfra' box stores the offset of each 'moof' box and their presentation
      time. The location of this box can be retrieved from the 'mfro' box, which is
      located at the end of the file.
      The 'mfra' box is parsed to get the offset of each 'moof' box and their
      presentation time.
      Each 'moof' box can contain information for one or more tracks inside
      'tfhd' boxes. For each track in a 'moof', we have a 'trun' box, which
      contains information of each sample (offset and duration) used to build
      the samples table.
      
      Based on patch by Marc-André Lureau <mlureau@flumotion.com>
      
      https://bugzilla.gnome.org/show_bug.cgi?id=596321
      6f05c5c0
  16. 29 Jul, 2010 1 commit
  17. 07 Feb, 2010 1 commit
  18. 04 Feb, 2010 1 commit
  19. 15 Jan, 2010 1 commit
  20. 05 Jan, 2010 1 commit
  21. 14 Oct, 2009 1 commit
  22. 09 Oct, 2009 2 commits
  23. 31 Aug, 2009 1 commit
    • Mark Nauwelaerts's avatar
      qtdemux: consider 3gpp style tag parsing in some more cases · c469f6b3
      Mark Nauwelaerts authored
      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.
      c469f6b3
  24. 30 Apr, 2009 1 commit
  25. 15 Apr, 2009 1 commit
  26. 05 Jan, 2009 1 commit
  27. 12 Nov, 2008 1 commit
    • Andy Wingo Wingo's avatar
      gst/qtdemux/qtdemux.*: Queue up new segment events instead of sending them from the seeking thread. · c71fe3f7
      Andy Wingo Wingo authored
      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.
      c71fe3f7
  28. 03 Sep, 2008 1 commit
    • Mark Nauwelaerts's avatar
      gst/qtdemux/: Add support for video/mj2 mime-type and its additional atoms/boxes. · bf5ffabf
      Mark Nauwelaerts authored
      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.
      bf5ffabf
  29. 07 Mar, 2007 1 commit
    • Edward Hervey's avatar
      gst/qtdemux/qtdemux.*: Share qtdemux debug category across all files,... · 816404ac
      Edward Hervey authored
      gst/qtdemux/qtdemux.*: Share qtdemux debug category across all files, 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.
      816404ac
  30. 12 Jan, 2007 2 commits
    • Wim Taymans's avatar
      gst/qtdemux/: Add X-QT depayloader that will eventually share code with the demuxer. · c7839a6a
      Wim Taymans authored
      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.
      c7839a6a
    • Wim Taymans's avatar
      gst/qtdemux/: Cleanup and refactor to make the code more readable. · a09ea6cc
      Wim Taymans authored
      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.
      a09ea6cc
  31. 17 Oct, 2006 1 commit
    • Tim-Philipp Müller's avatar
      gst/qtdemux/qtdemux.*: Avoid void pointer usage, better use guint8 * instead. · d14571a4
      Tim-Philipp Müller authored
      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.
      d14571a4
  32. 01 Jun, 2006 1 commit
    • Stefan Kost's avatar
      Fix more gobject macros: obj<->klass, GstXXX<->GstXXXClass · 7174c10e
      Stefan Kost authored
      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
      7174c10e
  33. 04 Apr, 2006 1 commit
    • Wim Taymans's avatar
      gst/qtdemux/qtdemux.*: Handle stss boxes so we can mark and find keyframes. · 075303cf
      Wim Taymans authored
      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.
      075303cf
  34. 14 Feb, 2006 1 commit
    • Edward Hervey's avatar
      gst/qtdemux/qtdemux.*: Make push-based work if mdat atom is before moov atom. · 45dd1af7
      Edward Hervey authored
      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.
      45dd1af7