gstreamer 1.1.3-x86-mingw32 → 1.1.4-x86-mingw32
Sign up to get free protection for your applications and to get access to all the features.
- data/Rakefile +1 -1
- data/ext/gstreamer/extconf.rb +14 -2
- data/lib/1.8/gstreamer.so +0 -0
- data/lib/1.9/gstreamer.so +0 -0
- data/test/test_buffer.rb +15 -7
- data/vendor/local/bin/flac.exe +0 -0
- data/vendor/local/bin/gst-discoverer-0.10.exe +0 -0
- data/vendor/local/bin/gst-feedback.exe +0 -0
- data/vendor/local/bin/gst-inspect-0.10.exe +0 -0
- data/vendor/local/bin/gst-inspect.exe +0 -0
- data/vendor/local/bin/gst-launch-0.10.exe +0 -0
- data/vendor/local/bin/gst-launch.exe +0 -0
- data/vendor/local/bin/gst-typefind-0.10.exe +0 -0
- data/vendor/local/bin/gst-typefind.exe +0 -0
- data/vendor/local/bin/gst-xmlinspect-0.10.exe +0 -0
- data/vendor/local/bin/gst-xmlinspect.exe +0 -0
- data/vendor/local/bin/gst-xmllaunch-0.10.exe +0 -0
- data/vendor/local/bin/gst-xmllaunch.exe +0 -0
- data/vendor/local/bin/libFLAC-8.dll +0 -0
- data/vendor/local/bin/libgstapp-0.10-0.dll +0 -0
- data/vendor/local/bin/libgstaudio-0.10-0.dll +0 -0
- data/vendor/local/bin/libgstbase-0.10-0.dll +0 -0
- data/vendor/local/bin/libgstbasevideo-0.10-0.dll +0 -0
- data/vendor/local/bin/libgstcdda-0.10-0.dll +0 -0
- data/vendor/local/bin/libgstcheck-0.10-0.dll +0 -0
- data/vendor/local/bin/libgstcontroller-0.10-0.dll +0 -0
- data/vendor/local/bin/libgstdataprotocol-0.10-0.dll +0 -0
- data/vendor/local/bin/libgstfft-0.10-0.dll +0 -0
- data/vendor/local/bin/libgstinterfaces-0.10-0.dll +0 -0
- data/vendor/local/bin/libgstnet-0.10-0.dll +0 -0
- data/vendor/local/bin/libgstnetbuffer-0.10-0.dll +0 -0
- data/vendor/local/bin/libgstpbutils-0.10-0.dll +0 -0
- data/vendor/local/bin/libgstphotography-0.10-0.dll +0 -0
- data/vendor/local/bin/libgstreamer-0.10-0.dll +0 -0
- data/vendor/local/bin/libgstriff-0.10-0.dll +0 -0
- data/vendor/local/bin/libgstrtp-0.10-0.dll +0 -0
- data/vendor/local/bin/libgstrtsp-0.10-0.dll +0 -0
- data/vendor/local/bin/libgstsdp-0.10-0.dll +0 -0
- data/vendor/local/bin/libgstsignalprocessor-0.10-0.dll +0 -0
- data/vendor/local/bin/libgsttag-0.10-0.dll +0 -0
- data/vendor/local/bin/libgstvideo-0.10-0.dll +0 -0
- data/vendor/local/bin/libogg-0.dll +0 -0
- data/vendor/local/bin/libspeex-1.dll +0 -0
- data/vendor/local/bin/libspeexdsp-1.dll +0 -0
- data/vendor/local/bin/libtheora-0.dll +0 -0
- data/vendor/local/bin/libtheoradec-1.dll +0 -0
- data/vendor/local/bin/libtheoraenc-1.dll +0 -0
- data/vendor/local/bin/libvorbis-0.dll +0 -0
- data/vendor/local/bin/libvorbisenc-2.dll +0 -0
- data/vendor/local/bin/libvorbisfile-3.dll +0 -0
- data/vendor/local/bin/metaflac.exe +0 -0
- data/vendor/local/bin/speexdec.exe +0 -0
- data/vendor/local/bin/speexenc.exe +0 -0
- data/vendor/local/include/speex/speex_config_types.h +4 -4
- data/vendor/local/lib/gstreamer-0.10/libgstadder.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstadder.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstadpcmdec.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstadpcmdec.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstadpcmenc.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstadpcmenc.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstaiff.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstaiff.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstalaw.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstalaw.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstalpha.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstalpha.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstalphacolor.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstalphacolor.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstannodex.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstannodex.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstapetag.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstapetag.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstapp.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstapp.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstasfmux.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstasfmux.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstaudioconvert.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstaudioconvert.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstaudiofx.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstaudiofx.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstaudioparsers.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstaudioparsers.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstaudiorate.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstaudiorate.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstaudioresample.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstaudioresample.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstaudiotestsrc.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstaudiotestsrc.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstauparse.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstauparse.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstautoconvert.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstautoconvert.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstautodetect.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstautodetect.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstavi.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstavi.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstbayer.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstbayer.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstcairo.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstcairo.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstcamerabin.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstcamerabin.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstcdxaparse.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstcdxaparse.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstcog.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstcog.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstcoloreffects.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstcoloreffects.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstcolorspace.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstcolorspace.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstcoreelements.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstcoreelements.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstcoreindexers.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstcoreindexers.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstcutter.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstcutter.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstdataurisrc.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstdataurisrc.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstdebug.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstdebug.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstdebugutilsbad.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstdebugutilsbad.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstdecodebin.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstdecodebin.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstdecodebin2.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstdecodebin2.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstdeinterlace.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstdeinterlace.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstdirectdrawsink.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstdirectdrawsink.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstdirectsoundsink.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstdirectsoundsink.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstdirectsoundsrc.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstdirectsoundsrc.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstdtmf.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstdtmf.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstdvbsuboverlay.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstdvbsuboverlay.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstdvdspu.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstdvdspu.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgsteffectv.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgsteffectv.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstencodebin.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstencodebin.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstequalizer.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstequalizer.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstfestival.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstfestival.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstffmpeg.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstffmpeg.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstffmpegcolorspace.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstffmpegcolorspace.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstffmpegscale.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstffmpegscale.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstfieldanalysis.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstfieldanalysis.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstflac.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstflac.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstflv.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstflv.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstflxdec.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstflxdec.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstfragmented.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstfragmented.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstfreeze.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstfreeze.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstfrei0r.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstfrei0r.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstgaudieffects.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstgaudieffects.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstgdkpixbuf.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstgdkpixbuf.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstgdp.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstgdp.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstgeometrictransform.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstgeometrictransform.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstgio.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstgio.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstgoom.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstgoom.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstgoom2k1.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstgoom2k1.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstgsettingselements.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstgsettingselements.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgsth264parse.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgsth264parse.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgsthdvparse.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgsthdvparse.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgsticydemux.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgsticydemux.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstid3demux.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstid3demux.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstid3tag.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstid3tag.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstimagefreeze.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstimagefreeze.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstinterlace.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstinterlace.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstinterleave.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstinterleave.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstinvtelecine.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstinvtelecine.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstisomp4.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstisomp4.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstivfparse.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstivfparse.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstjp2kdecimator.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstjp2kdecimator.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstjpeg.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstjpeg.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstjpegformat.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstjpegformat.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstlegacyresample.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstlegacyresample.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstlevel.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstlevel.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstliveadder.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstliveadder.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstmatroska.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstmatroska.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstmpeg4videoparse.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstmpeg4videoparse.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstmpegdemux.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstmpegdemux.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstmpegpsmux.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstmpegpsmux.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstmpegtsdemux.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstmpegtsdemux.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstmpegtsmux.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstmpegtsmux.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstmpegvideoparse.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstmpegvideoparse.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstmulaw.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstmulaw.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstmultifile.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstmultifile.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstmultipart.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstmultipart.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstmve.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstmve.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstmxf.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstmxf.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstnavigationtest.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstnavigationtest.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstnsf.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstnsf.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstnuvdemux.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstnuvdemux.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstogg.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstogg.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstpango.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstpango.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstpatchdetect.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstpatchdetect.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstpcapparse.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstpcapparse.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstplaybin.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstplaybin.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstpng.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstpng.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstpnm.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstpnm.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstpostproc.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstpostproc.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstrawparse.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstrawparse.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstreal.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstreal.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstreplaygain.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstreplaygain.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstrtp.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstrtp.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstrtpmanager.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstrtpmanager.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstrtpmux.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstrtpmux.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstrtpvp8.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstrtpvp8.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstrtsp.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstrtsp.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstscaletempoplugin.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstscaletempoplugin.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstsdi.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstsdi.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstsdpelem.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstsdpelem.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstsegmentclip.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstsegmentclip.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstshapewipe.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstshapewipe.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstsiren.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstsiren.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstsmpte.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstsmpte.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstsouphttpsrc.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstsouphttpsrc.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstspectrum.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstspectrum.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstspeed.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstspeed.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstspeex.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstspeex.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgststereo.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgststereo.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstsubenc.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstsubenc.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstsubparse.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstsubparse.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgsttheora.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgsttheora.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgsttta.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgsttta.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgsttypefindfunctions.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgsttypefindfunctions.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstudp.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstudp.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstvideobox.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstvideobox.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstvideocrop.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstvideocrop.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstvideofilter.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstvideofilter.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstvideofiltersbad.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstvideofiltersbad.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstvideomaxrate.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstvideomaxrate.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstvideomeasure.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstvideomeasure.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstvideomixer.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstvideomixer.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstvideoparsersbad.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstvideoparsersbad.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstvideorate.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstvideorate.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstvideoscale.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstvideoscale.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstvideosignal.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstvideosignal.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstvideotestsrc.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstvideotestsrc.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstvmnc.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstvmnc.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstvolume.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstvolume.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstvorbis.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstvorbis.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstwavenc.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstwavenc.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstwavparse.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgstwavparse.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgsty4mdec.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgsty4mdec.dll.a +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgsty4menc.dll +0 -0
- data/vendor/local/lib/gstreamer-0.10/libgsty4menc.dll.a +0 -0
- data/vendor/local/lib/libFLAC.a +0 -0
- data/vendor/local/lib/libFLAC.dll.a +0 -0
- data/vendor/local/lib/libFLAC.la +1 -1
- data/vendor/local/lib/libgstapp-0.10.dll.a +0 -0
- data/vendor/local/lib/libgstaudio-0.10.a +0 -0
- data/vendor/local/lib/libgstaudio-0.10.dll.a +0 -0
- data/vendor/local/lib/libgstbase-0.10.a +0 -0
- data/vendor/local/lib/libgstbase-0.10.dll.a +0 -0
- data/vendor/local/lib/libgstbasevideo-0.10.a +0 -0
- data/vendor/local/lib/libgstbasevideo-0.10.dll.a +0 -0
- data/vendor/local/lib/libgstcdda-0.10.a +0 -0
- data/vendor/local/lib/libgstcdda-0.10.dll.a +0 -0
- data/vendor/local/lib/libgstcheck-0.10.a +0 -0
- data/vendor/local/lib/libgstcheck-0.10.dll.a +0 -0
- data/vendor/local/lib/libgstcontroller-0.10.a +0 -0
- data/vendor/local/lib/libgstcontroller-0.10.dll.a +0 -0
- data/vendor/local/lib/libgstdataprotocol-0.10.a +0 -0
- data/vendor/local/lib/libgstdataprotocol-0.10.dll.a +0 -0
- data/vendor/local/lib/libgstfft-0.10.a +0 -0
- data/vendor/local/lib/libgstfft-0.10.dll.a +0 -0
- data/vendor/local/lib/libgstinterfaces-0.10.a +0 -0
- data/vendor/local/lib/libgstinterfaces-0.10.dll.a +0 -0
- data/vendor/local/lib/libgstnet-0.10.a +0 -0
- data/vendor/local/lib/libgstnet-0.10.dll.a +0 -0
- data/vendor/local/lib/libgstnetbuffer-0.10.a +0 -0
- data/vendor/local/lib/libgstnetbuffer-0.10.dll.a +0 -0
- data/vendor/local/lib/libgstpbutils-0.10.a +0 -0
- data/vendor/local/lib/libgstpbutils-0.10.dll.a +0 -0
- data/vendor/local/lib/libgstphotography-0.10.a +0 -0
- data/vendor/local/lib/libgstphotography-0.10.dll.a +0 -0
- data/vendor/local/lib/libgstreamer-0.10.a +0 -0
- data/vendor/local/lib/libgstreamer-0.10.dll.a +0 -0
- data/vendor/local/lib/libgstriff-0.10.a +0 -0
- data/vendor/local/lib/libgstriff-0.10.dll.a +0 -0
- data/vendor/local/lib/libgstrtp-0.10.a +0 -0
- data/vendor/local/lib/libgstrtp-0.10.dll.a +0 -0
- data/vendor/local/lib/libgstrtsp-0.10.a +0 -0
- data/vendor/local/lib/libgstrtsp-0.10.dll.a +0 -0
- data/vendor/local/lib/libgstsdp-0.10.a +0 -0
- data/vendor/local/lib/libgstsdp-0.10.dll.a +0 -0
- data/vendor/local/lib/libgstsignalprocessor-0.10.a +0 -0
- data/vendor/local/lib/libgstsignalprocessor-0.10.dll.a +0 -0
- data/vendor/local/lib/libgsttag-0.10.a +0 -0
- data/vendor/local/lib/libgsttag-0.10.dll.a +0 -0
- data/vendor/local/lib/libgstvideo-0.10.a +0 -0
- data/vendor/local/lib/libgstvideo-0.10.dll.a +0 -0
- data/vendor/local/lib/libogg.a +0 -0
- data/vendor/local/lib/libogg.dll.a +0 -0
- data/vendor/local/lib/libspeex.a +0 -0
- data/vendor/local/lib/libspeex.dll.a +0 -0
- data/vendor/local/lib/libspeexdsp.a +0 -0
- data/vendor/local/lib/libspeexdsp.dll.a +0 -0
- data/vendor/local/lib/libtheora.a +0 -0
- data/vendor/local/lib/libtheora.dll.a +0 -0
- data/vendor/local/lib/libtheoradec.a +0 -0
- data/vendor/local/lib/libtheoradec.dll.a +0 -0
- data/vendor/local/lib/libtheoraenc.a +0 -0
- data/vendor/local/lib/libtheoraenc.dll.a +0 -0
- data/vendor/local/lib/libvorbis.a +0 -0
- data/vendor/local/lib/libvorbis.dll.a +0 -0
- data/vendor/local/lib/libvorbisenc.a +0 -0
- data/vendor/local/lib/libvorbisenc.dll.a +0 -0
- data/vendor/local/lib/libvorbisfile.a +0 -0
- data/vendor/local/lib/libvorbisfile.dll.a +0 -0
- data/vendor/local/libexec/gstreamer-0.10/gst-plugin-scanner.exe +0 -0
- data/vendor/local/share/doc/libtheora-1.1.1/html/annotated.html +23 -33
- data/vendor/local/share/doc/libtheora-1.1.1/html/bc_s.png +0 -0
- data/vendor/local/share/doc/libtheora-1.1.1/html/bdwn.png +0 -0
- data/vendor/local/share/doc/libtheora-1.1.1/html/classes.html +9 -21
- data/vendor/local/share/doc/libtheora-1.1.1/html/closed.png +0 -0
- data/vendor/local/share/doc/libtheora-1.1.1/html/codec_8h.html +153 -173
- data/vendor/local/share/doc/libtheora-1.1.1/html/codec_8h_source.html +177 -185
- data/vendor/local/share/doc/libtheora-1.1.1/html/dir_0f91760d62c578de767c41a0aaae5482.html +67 -0
- data/vendor/local/share/doc/libtheora-1.1.1/html/dir_d44c64559bbebec7f509842c48db8b23.html +60 -0
- data/vendor/local/share/doc/libtheora-1.1.1/html/doxygen.css +333 -119
- data/vendor/local/share/doc/libtheora-1.1.1/html/doxygen.png +0 -0
- data/vendor/local/share/doc/libtheora-1.1.1/html/dynsections.js +78 -0
- data/vendor/local/share/doc/libtheora-1.1.1/html/files.html +16 -26
- data/vendor/local/share/doc/libtheora-1.1.1/html/ftv2blank.png +0 -0
- data/vendor/local/share/doc/libtheora-1.1.1/html/ftv2cl.png +0 -0
- data/vendor/local/share/doc/libtheora-1.1.1/html/ftv2doc.png +0 -0
- data/vendor/local/share/doc/libtheora-1.1.1/html/ftv2folderclosed.png +0 -0
- data/vendor/local/share/doc/libtheora-1.1.1/html/ftv2folderopen.png +0 -0
- data/vendor/local/share/doc/libtheora-1.1.1/html/ftv2lastnode.png +0 -0
- data/vendor/local/share/doc/libtheora-1.1.1/html/ftv2link.png +0 -0
- data/vendor/local/share/doc/libtheora-1.1.1/html/ftv2mlastnode.png +0 -0
- data/vendor/local/share/doc/libtheora-1.1.1/html/ftv2mnode.png +0 -0
- data/vendor/local/share/doc/libtheora-1.1.1/html/ftv2mo.png +0 -0
- data/vendor/local/share/doc/libtheora-1.1.1/html/ftv2node.png +0 -0
- data/vendor/local/share/doc/libtheora-1.1.1/html/ftv2ns.png +0 -0
- data/vendor/local/share/doc/libtheora-1.1.1/html/ftv2plastnode.png +0 -0
- data/vendor/local/share/doc/libtheora-1.1.1/html/ftv2pnode.png +0 -0
- data/vendor/local/share/doc/libtheora-1.1.1/html/ftv2splitbar.png +0 -0
- data/vendor/local/share/doc/libtheora-1.1.1/html/ftv2vertline.png +0 -0
- data/vendor/local/share/doc/libtheora-1.1.1/html/functions.html +9 -21
- data/vendor/local/share/doc/libtheora-1.1.1/html/functions_vars.html +9 -21
- data/vendor/local/share/doc/libtheora-1.1.1/html/globals.html +10 -22
- data/vendor/local/share/doc/libtheora-1.1.1/html/globals_defs.html +10 -22
- data/vendor/local/share/doc/libtheora-1.1.1/html/globals_enum.html +10 -22
- data/vendor/local/share/doc/libtheora-1.1.1/html/globals_eval.html +10 -22
- data/vendor/local/share/doc/libtheora-1.1.1/html/globals_func.html +10 -22
- data/vendor/local/share/doc/libtheora-1.1.1/html/globals_type.html +10 -22
- data/vendor/local/share/doc/libtheora-1.1.1/html/globals_vars.html +10 -22
- data/vendor/local/share/doc/libtheora-1.1.1/html/group__basefuncs.html +110 -134
- data/vendor/local/share/doc/libtheora-1.1.1/html/group__decfuncs.html +60 -78
- data/vendor/local/share/doc/libtheora-1.1.1/html/group__encfuncs.html +56 -73
- data/vendor/local/share/doc/libtheora-1.1.1/html/group__oldfuncs.html +346 -400
- data/vendor/local/share/doc/libtheora-1.1.1/html/index.html +13 -25
- data/vendor/local/share/doc/libtheora-1.1.1/html/modules.html +17 -27
- data/vendor/local/share/doc/libtheora-1.1.1/html/nav_f.png +0 -0
- data/vendor/local/share/doc/libtheora-1.1.1/html/nav_g.png +0 -0
- data/vendor/local/share/doc/libtheora-1.1.1/html/nav_h.png +0 -0
- data/vendor/local/share/doc/libtheora-1.1.1/html/open.png +0 -0
- data/vendor/local/share/doc/libtheora-1.1.1/html/structth__comment.html +33 -49
- data/vendor/local/share/doc/libtheora-1.1.1/html/structth__huff__code.html +23 -37
- data/vendor/local/share/doc/libtheora-1.1.1/html/structth__img__plane.html +33 -49
- data/vendor/local/share/doc/libtheora-1.1.1/html/structth__info.html +98 -128
- data/vendor/local/share/doc/libtheora-1.1.1/html/structth__quant__info.html +43 -58
- data/vendor/local/share/doc/libtheora-1.1.1/html/structth__quant__ranges.html +28 -43
- data/vendor/local/share/doc/libtheora-1.1.1/html/structth__stripe__callback.html +23 -37
- data/vendor/local/share/doc/libtheora-1.1.1/html/structtheora__comment.html +33 -49
- data/vendor/local/share/doc/libtheora-1.1.1/html/structtheora__info.html +140 -180
- data/vendor/local/share/doc/libtheora-1.1.1/html/structtheora__state.html +29 -45
- data/vendor/local/share/doc/libtheora-1.1.1/html/structyuv__buffer.html +58 -79
- data/vendor/local/share/doc/libtheora-1.1.1/html/sync_off.png +0 -0
- data/vendor/local/share/doc/libtheora-1.1.1/html/sync_on.png +0 -0
- data/vendor/local/share/doc/libtheora-1.1.1/html/tab_a.png +0 -0
- data/vendor/local/share/doc/libtheora-1.1.1/html/tab_b.png +0 -0
- data/vendor/local/share/doc/libtheora-1.1.1/html/tab_h.png +0 -0
- data/vendor/local/share/doc/libtheora-1.1.1/html/tab_s.png +0 -0
- data/vendor/local/share/doc/libtheora-1.1.1/html/tabs.css +1 -0
- data/vendor/local/share/doc/libtheora-1.1.1/html/theora_8h.html +160 -168
- data/vendor/local/share/doc/libtheora-1.1.1/html/theora_8h_source.html +227 -235
- data/vendor/local/share/doc/libtheora-1.1.1/html/theoradec_8h.html +107 -124
- data/vendor/local/share/doc/libtheora-1.1.1/html/theoradec_8h_source.html +90 -98
- data/vendor/local/share/doc/libtheora-1.1.1/html/theoraenc_8h.html +170 -196
- data/vendor/local/share/doc/libtheora-1.1.1/html/theoraenc_8h_source.html +99 -107
- data/vendor/local/share/doc/libtheora-1.1.1/latex/annotated.tex +13 -13
- data/vendor/local/share/doc/libtheora-1.1.1/latex/codec_8h.tex +149 -149
- data/vendor/local/share/doc/libtheora-1.1.1/latex/dir_0f91760d62c578de767c41a0aaae5482.tex +13 -0
- data/vendor/local/share/doc/libtheora-1.1.1/latex/dir_d44c64559bbebec7f509842c48db8b23.tex +7 -0
- data/vendor/local/share/doc/libtheora-1.1.1/latex/doxygen.sty +10 -8
- data/vendor/local/share/doc/libtheora-1.1.1/latex/files.tex +6 -6
- data/vendor/local/share/doc/libtheora-1.1.1/latex/group__basefuncs.tex +148 -145
- data/vendor/local/share/doc/libtheora-1.1.1/latex/group__decfuncs.tex +102 -99
- data/vendor/local/share/doc/libtheora-1.1.1/latex/group__encfuncs.tex +89 -86
- data/vendor/local/share/doc/libtheora-1.1.1/latex/group__oldfuncs.tex +492 -489
- data/vendor/local/share/doc/libtheora-1.1.1/latex/index.tex +8 -8
- data/vendor/local/share/doc/libtheora-1.1.1/latex/modules.tex +6 -6
- data/vendor/local/share/doc/libtheora-1.1.1/latex/refman.tex +12 -10
- data/vendor/local/share/doc/libtheora-1.1.1/latex/structth__comment.tex +23 -23
- data/vendor/local/share/doc/libtheora-1.1.1/latex/structth__huff__code.tex +15 -15
- data/vendor/local/share/doc/libtheora-1.1.1/latex/structth__img__plane.tex +20 -20
- data/vendor/local/share/doc/libtheora-1.1.1/latex/structth__info.tex +70 -70
- data/vendor/local/share/doc/libtheora-1.1.1/latex/structth__quant__info.tex +33 -33
- data/vendor/local/share/doc/libtheora-1.1.1/latex/structth__quant__ranges.tex +16 -16
- data/vendor/local/share/doc/libtheora-1.1.1/latex/structth__stripe__callback.tex +14 -14
- data/vendor/local/share/doc/libtheora-1.1.1/latex/structtheora__comment.tex +22 -22
- data/vendor/local/share/doc/libtheora-1.1.1/latex/structtheora__info.tex +43 -43
- data/vendor/local/share/doc/libtheora-1.1.1/latex/structtheora__state.tex +11 -11
- data/vendor/local/share/doc/libtheora-1.1.1/latex/structyuv__buffer.tex +38 -38
- data/vendor/local/share/doc/libtheora-1.1.1/latex/theora_8h.tex +121 -125
- data/vendor/local/share/doc/libtheora-1.1.1/latex/theoradec_8h.tex +126 -126
- data/vendor/local/share/doc/libtheora-1.1.1/latex/theoraenc_8h.tex +266 -266
- metadata +39 -14
@@ -1,251 +1,251 @@
|
|
1
|
-
\section{theoradec.\-h
|
1
|
+
\section{theoradec.\-h File Reference}
|
2
2
|
\label{theoradec_8h}\index{theoradec.\-h@{theoradec.\-h}}
|
3
3
|
|
4
4
|
|
5
|
-
|
5
|
+
The {\ttfamily libtheoradec} C decoding A\-P\-I.
|
6
6
|
|
7
7
|
|
8
|
-
{\ttfamily \#include $<$stddef.\-h$>$}
|
9
|
-
{\ttfamily \#include $<$ogg/ogg.\-h$>$}
|
10
|
-
{\ttfamily \#include \char`\"{}codec.\-h\char`\"{}}
|
11
|
-
\subsection*{
|
8
|
+
{\ttfamily \#include $<$stddef.\-h$>$}\\*
|
9
|
+
{\ttfamily \#include $<$ogg/ogg.\-h$>$}\\*
|
10
|
+
{\ttfamily \#include \char`\"{}codec.\-h\char`\"{}}\\*
|
11
|
+
\subsection*{Data Structures}
|
12
12
|
\begin{DoxyCompactItemize}
|
13
13
|
\item
|
14
14
|
struct {\bf th\-\_\-stripe\-\_\-callback}
|
15
|
-
\begin{DoxyCompactList}\small\item\em
|
16
|
-
\subsection*{
|
15
|
+
\begin{DoxyCompactList}\small\item\em The striped decode callback data to pass to \doxyref{T\-H\-\_\-\-D\-E\-C\-C\-T\-L\-\_\-\-S\-E\-T\-\_\-\-S\-T\-R\-I\-P\-E\-\_\-\-C\-B}{p.}{theoradec_8h_ac95cc9e109474b0fa4bb920ab2cfdf1e}. \end{DoxyCompactList}\end{DoxyCompactItemize}
|
16
|
+
\subsection*{Macros}
|
17
17
|
\begin{DoxyCompactItemize}
|
18
18
|
\item
|
19
19
|
\#define {\bf \-\_\-\-O\-\_\-\-T\-H\-E\-O\-R\-A\-\_\-\-T\-H\-E\-O\-R\-A\-D\-E\-C\-\_\-\-H\-\_\-}~(1)
|
20
20
|
\end{DoxyCompactItemize}
|
21
21
|
\begin{Indent}{\bf th\-\_\-decode\-\_\-ctl() codes}\par
|
22
22
|
{\em \label{theoradec_8h_decctlcodes}%
|
23
|
-
|
23
|
+
These are the available request codes for \doxyref{th\-\_\-decode\-\_\-ctl()}{p.}{group__decfuncs_ga1a8051958d75b1012573b6e3c8f670e1}. By convention, these are odd, to distinguish them from the \doxyref{encoder control codes}{p.}{theoraenc_8h_encctlcodes}. Keep any experimental or vendor-\/specific values above {\ttfamily 0x8000}. }\begin{DoxyCompactItemize}
|
24
24
|
\item
|
25
|
-
\#define {\bf
|
26
|
-
\begin{DoxyCompactList}\small\item\em
|
27
|
-
\#define {\bf
|
28
|
-
\begin{DoxyCompactList}\small\item\em
|
29
|
-
\#define {\bf
|
30
|
-
\begin{DoxyCompactList}\small\item\em
|
31
|
-
\#define {\bf
|
32
|
-
\begin{DoxyCompactList}\small\item\em
|
33
|
-
\#define {\bf
|
34
|
-
\begin{DoxyCompactList}\small\item\em
|
35
|
-
\#define {\bf
|
36
|
-
\begin{DoxyCompactList}\small\item\em
|
37
|
-
\#define {\bf
|
38
|
-
\begin{DoxyCompactList}\small\item\em
|
39
|
-
\#define {\bf
|
40
|
-
\begin{DoxyCompactList}\small\item\em
|
25
|
+
\#define {\bf T\-H\-\_\-\-D\-E\-C\-C\-T\-L\-\_\-\-G\-E\-T\-\_\-\-P\-P\-L\-E\-V\-E\-L\-\_\-\-M\-A\-X}~(1)
|
26
|
+
\begin{DoxyCompactList}\small\item\em Gets the maximum post-\/processing level. \end{DoxyCompactList}\item
|
27
|
+
\#define {\bf T\-H\-\_\-\-D\-E\-C\-C\-T\-L\-\_\-\-S\-E\-T\-\_\-\-P\-P\-L\-E\-V\-E\-L}~(3)
|
28
|
+
\begin{DoxyCompactList}\small\item\em Sets the post-\/processing level. \end{DoxyCompactList}\item
|
29
|
+
\#define {\bf T\-H\-\_\-\-D\-E\-C\-C\-T\-L\-\_\-\-S\-E\-T\-\_\-\-G\-R\-A\-N\-P\-O\-S}~(5)
|
30
|
+
\begin{DoxyCompactList}\small\item\em Sets the granule position. \end{DoxyCompactList}\item
|
31
|
+
\#define {\bf T\-H\-\_\-\-D\-E\-C\-C\-T\-L\-\_\-\-S\-E\-T\-\_\-\-S\-T\-R\-I\-P\-E\-\_\-\-C\-B}~(7)
|
32
|
+
\begin{DoxyCompactList}\small\item\em Sets the striped decode callback function. \end{DoxyCompactList}\item
|
33
|
+
\#define {\bf T\-H\-\_\-\-D\-E\-C\-C\-T\-L\-\_\-\-S\-E\-T\-\_\-\-T\-E\-L\-E\-M\-E\-T\-R\-Y\-\_\-\-M\-B\-M\-O\-D\-E}~(9)
|
34
|
+
\begin{DoxyCompactList}\small\item\em Enables telemetry and sets the macroblock display mode. \end{DoxyCompactList}\item
|
35
|
+
\#define {\bf T\-H\-\_\-\-D\-E\-C\-C\-T\-L\-\_\-\-S\-E\-T\-\_\-\-T\-E\-L\-E\-M\-E\-T\-R\-Y\-\_\-\-M\-V}~(11)
|
36
|
+
\begin{DoxyCompactList}\small\item\em Enables telemetry and sets the motion vector display mode. \end{DoxyCompactList}\item
|
37
|
+
\#define {\bf T\-H\-\_\-\-D\-E\-C\-C\-T\-L\-\_\-\-S\-E\-T\-\_\-\-T\-E\-L\-E\-M\-E\-T\-R\-Y\-\_\-\-Q\-I}~(13)
|
38
|
+
\begin{DoxyCompactList}\small\item\em Enables telemetry and sets the adaptive quantization display mode. \end{DoxyCompactList}\item
|
39
|
+
\#define {\bf T\-H\-\_\-\-D\-E\-C\-C\-T\-L\-\_\-\-S\-E\-T\-\_\-\-T\-E\-L\-E\-M\-E\-T\-R\-Y\-\_\-\-B\-I\-T\-S}~(15)
|
40
|
+
\begin{DoxyCompactList}\small\item\em Enables telemetry and sets the bitstream breakdown visualization mode. \end{DoxyCompactList}\end{DoxyCompactItemize}
|
41
41
|
\end{Indent}
|
42
|
-
\subsection*{
|
42
|
+
\subsection*{Typedefs}
|
43
43
|
\begin{DoxyCompactItemize}
|
44
44
|
\item
|
45
45
|
typedef void($\ast$ {\bf th\-\_\-stripe\-\_\-decoded\-\_\-func} )(void $\ast$\-\_\-ctx, {\bf th\-\_\-ycbcr\-\_\-buffer} \-\_\-buf, int \-\_\-yfrag0, int \-\_\-yfrag\-\_\-end)
|
46
|
-
\begin{DoxyCompactList}\small\item\em
|
47
|
-
\begin{Indent}{\bf
|
48
|
-
{\em
|
46
|
+
\begin{DoxyCompactList}\small\item\em A callback function for striped decode. \end{DoxyCompactList}\end{DoxyCompactItemize}
|
47
|
+
\begin{Indent}{\bf Decoder state}\par
|
48
|
+
{\em The following data structures are opaque, and their contents are not publicly defined by this A\-P\-I.
|
49
49
|
|
50
|
-
|
50
|
+
Referring to their internals directly is unsupported, and may break without warning. }\begin{DoxyCompactItemize}
|
51
51
|
\item
|
52
52
|
typedef struct {\bf th\-\_\-dec\-\_\-ctx} {\bf th\-\_\-dec\-\_\-ctx}
|
53
|
-
\begin{DoxyCompactList}\small\item\em
|
53
|
+
\begin{DoxyCompactList}\small\item\em The decoder context. \end{DoxyCompactList}\item
|
54
54
|
typedef struct {\bf th\-\_\-setup\-\_\-info} {\bf th\-\_\-setup\-\_\-info}
|
55
|
-
\begin{DoxyCompactList}\small\item\em
|
55
|
+
\begin{DoxyCompactList}\small\item\em Setup information. \end{DoxyCompactList}\end{DoxyCompactItemize}
|
56
56
|
\end{Indent}
|
57
|
-
\subsection*{
|
58
|
-
\begin{Indent}{\bf
|
59
|
-
{\em
|
57
|
+
\subsection*{Functions}
|
58
|
+
\begin{Indent}{\bf Functions for decoding}\par
|
59
|
+
{\em You must link to {\ttfamily libtheoradec} if you use any of the functions in this section.
|
60
60
|
|
61
|
-
|
61
|
+
The functions are listed in the order they are used in a typical decode. The basic steps are\-:
|
62
62
|
\begin{DoxyItemize}
|
63
|
-
\item
|
64
|
-
\item
|
65
|
-
\item
|
66
|
-
\item
|
67
|
-
\item
|
63
|
+
\item Parse the header packets by repeatedly calling \doxyref{th\-\_\-decode\-\_\-headerin()}{p.}{group__decfuncs_ga006d01d36fbe64768c571e6a12b7fc50}.
|
64
|
+
\item Allocate a \doxyref{th\-\_\-dec\-\_\-ctx}{p.}{theoradec_8h_a843d70bb02563885a8d54b9c1a781729} handle with \doxyref{th\-\_\-decode\-\_\-alloc()}{p.}{group__decfuncs_ga0ef07a9a97849054aa606c595a2d807e}.
|
65
|
+
\item Call \doxyref{th\-\_\-setup\-\_\-free()}{p.}{group__decfuncs_gadef55431b68aaa59d0d7b32b2f118f27} to free any memory used for codec setup information.
|
66
|
+
\item Perform any additional decoder configuration with \doxyref{th\-\_\-decode\-\_\-ctl()}{p.}{group__decfuncs_ga1a8051958d75b1012573b6e3c8f670e1}.
|
67
|
+
\item For each video data packet\-:
|
68
68
|
\begin{DoxyItemize}
|
69
|
-
\item
|
70
|
-
\item
|
69
|
+
\item Submit the packet to the decoder via \doxyref{th\-\_\-decode\-\_\-packetin()}{p.}{group__decfuncs_ga31c814bf09b2232aff69c57ae20f04eb}.
|
70
|
+
\item Retrieve the uncompressed video data via \doxyref{th\-\_\-decode\-\_\-ycbcr\-\_\-out()}{p.}{group__decfuncs_gaa9cc8af63fa8540e0fc95572f259cdcb}.
|
71
71
|
\end{DoxyItemize}
|
72
|
-
\item
|
72
|
+
\item Call \doxyref{th\-\_\-decode\-\_\-free()}{p.}{group__decfuncs_gafb6684ad8ba507b71112bc9de148e7d0} to release all decoder memory.
|
73
73
|
\end{DoxyItemize}}\begin{DoxyCompactItemize}
|
74
74
|
\item
|
75
75
|
int {\bf th\-\_\-decode\-\_\-headerin} ({\bf th\-\_\-info} $\ast$\-\_\-info, {\bf th\-\_\-comment} $\ast$\-\_\-tc, {\bf th\-\_\-setup\-\_\-info} $\ast$$\ast$\-\_\-setup, ogg\-\_\-packet $\ast$\-\_\-op)
|
76
|
-
\begin{DoxyCompactList}\small\item\em
|
76
|
+
\begin{DoxyCompactList}\small\item\em Decodes the header packets of a Theora stream. \end{DoxyCompactList}\item
|
77
77
|
{\bf th\-\_\-dec\-\_\-ctx} $\ast$ {\bf th\-\_\-decode\-\_\-alloc} (const {\bf th\-\_\-info} $\ast$\-\_\-info, const {\bf th\-\_\-setup\-\_\-info} $\ast$\-\_\-setup)
|
78
|
-
\begin{DoxyCompactList}\small\item\em
|
78
|
+
\begin{DoxyCompactList}\small\item\em Allocates a decoder instance. \end{DoxyCompactList}\item
|
79
79
|
void {\bf th\-\_\-setup\-\_\-free} ({\bf th\-\_\-setup\-\_\-info} $\ast$\-\_\-setup)
|
80
|
-
\begin{DoxyCompactList}\small\item\em
|
80
|
+
\begin{DoxyCompactList}\small\item\em Releases all storage used for the decoder setup information. \end{DoxyCompactList}\item
|
81
81
|
int {\bf th\-\_\-decode\-\_\-ctl} ({\bf th\-\_\-dec\-\_\-ctx} $\ast$\-\_\-dec, int \-\_\-req, void $\ast$\-\_\-buf, size\-\_\-t \-\_\-buf\-\_\-sz)
|
82
|
-
\begin{DoxyCompactList}\small\item\em
|
82
|
+
\begin{DoxyCompactList}\small\item\em Decoder control function. \end{DoxyCompactList}\item
|
83
83
|
int {\bf th\-\_\-decode\-\_\-packetin} ({\bf th\-\_\-dec\-\_\-ctx} $\ast$\-\_\-dec, const ogg\-\_\-packet $\ast$\-\_\-op, ogg\-\_\-int64\-\_\-t $\ast$\-\_\-granpos)
|
84
|
-
\begin{DoxyCompactList}\small\item\em
|
84
|
+
\begin{DoxyCompactList}\small\item\em Submits a packet containing encoded video data to the decoder. \end{DoxyCompactList}\item
|
85
85
|
int {\bf th\-\_\-decode\-\_\-ycbcr\-\_\-out} ({\bf th\-\_\-dec\-\_\-ctx} $\ast$\-\_\-dec, {\bf th\-\_\-ycbcr\-\_\-buffer} \-\_\-ycbcr)
|
86
|
-
\begin{DoxyCompactList}\small\item\em
|
86
|
+
\begin{DoxyCompactList}\small\item\em Outputs the next available frame of decoded Y'Cb\-Cr data. \end{DoxyCompactList}\item
|
87
87
|
void {\bf th\-\_\-decode\-\_\-free} ({\bf th\-\_\-dec\-\_\-ctx} $\ast$\-\_\-dec)
|
88
|
-
\begin{DoxyCompactList}\small\item\em
|
88
|
+
\begin{DoxyCompactList}\small\item\em Frees an allocated decoder instance. \end{DoxyCompactList}\end{DoxyCompactItemize}
|
89
89
|
\end{Indent}
|
90
90
|
|
91
91
|
|
92
|
-
\subsection{
|
93
|
-
|
92
|
+
\subsection{Detailed Description}
|
93
|
+
The {\ttfamily libtheoradec} C decoding A\-P\-I.
|
94
94
|
|
95
|
-
\subsection{
|
95
|
+
\subsection{Macro Definition Documentation}
|
96
96
|
\index{theoradec.\-h@{theoradec.\-h}!\-\_\-\-O\-\_\-\-T\-H\-E\-O\-R\-A\-\_\-\-T\-H\-E\-O\-R\-A\-D\-E\-C\-\_\-\-H\-\_\-@{\-\_\-\-O\-\_\-\-T\-H\-E\-O\-R\-A\-\_\-\-T\-H\-E\-O\-R\-A\-D\-E\-C\-\_\-\-H\-\_\-}}
|
97
97
|
\index{\-\_\-\-O\-\_\-\-T\-H\-E\-O\-R\-A\-\_\-\-T\-H\-E\-O\-R\-A\-D\-E\-C\-\_\-\-H\-\_\-@{\-\_\-\-O\-\_\-\-T\-H\-E\-O\-R\-A\-\_\-\-T\-H\-E\-O\-R\-A\-D\-E\-C\-\_\-\-H\-\_\-}!theoradec.h@{theoradec.\-h}}
|
98
|
-
\subsubsection[{\-\_\-\-O\-\_\-\-T\-H\-E\-O\-R\-A\-\_\-\-T\-H\-E\-O\-R\-A\-D\-E\-C\-\_\-\-H\-\_\-}]{\setlength{\rightskip}{0pt plus 5cm}\#define
|
99
|
-
\index{theoradec.\-h@{theoradec.\-h}
|
100
|
-
\index{
|
101
|
-
\subsubsection[{
|
98
|
+
\subsubsection[{\-\_\-\-O\-\_\-\-T\-H\-E\-O\-R\-A\-\_\-\-T\-H\-E\-O\-R\-A\-D\-E\-C\-\_\-\-H\-\_\-}]{\setlength{\rightskip}{0pt plus 5cm}\#define \-\_\-\-O\-\_\-\-T\-H\-E\-O\-R\-A\-\_\-\-T\-H\-E\-O\-R\-A\-D\-E\-C\-\_\-\-H\-\_\-~(1)}\label{theoradec_8h_a0d78767a326c34dbf84d5b845cba7b4a}
|
99
|
+
\index{theoradec.\-h@{theoradec.\-h}!T\-H\-\_\-\-D\-E\-C\-C\-T\-L\-\_\-\-G\-E\-T\-\_\-\-P\-P\-L\-E\-V\-E\-L\-\_\-\-M\-A\-X@{T\-H\-\_\-\-D\-E\-C\-C\-T\-L\-\_\-\-G\-E\-T\-\_\-\-P\-P\-L\-E\-V\-E\-L\-\_\-\-M\-A\-X}}
|
100
|
+
\index{T\-H\-\_\-\-D\-E\-C\-C\-T\-L\-\_\-\-G\-E\-T\-\_\-\-P\-P\-L\-E\-V\-E\-L\-\_\-\-M\-A\-X@{T\-H\-\_\-\-D\-E\-C\-C\-T\-L\-\_\-\-G\-E\-T\-\_\-\-P\-P\-L\-E\-V\-E\-L\-\_\-\-M\-A\-X}!theoradec.h@{theoradec.\-h}}
|
101
|
+
\subsubsection[{T\-H\-\_\-\-D\-E\-C\-C\-T\-L\-\_\-\-G\-E\-T\-\_\-\-P\-P\-L\-E\-V\-E\-L\-\_\-\-M\-A\-X}]{\setlength{\rightskip}{0pt plus 5cm}\#define T\-H\-\_\-\-D\-E\-C\-C\-T\-L\-\_\-\-G\-E\-T\-\_\-\-P\-P\-L\-E\-V\-E\-L\-\_\-\-M\-A\-X~(1)}\label{theoradec_8h_ab31f251c9319f2140d247585d30b3d07}
|
102
102
|
|
103
103
|
|
104
|
-
|
104
|
+
Gets the maximum post-\/processing level.
|
105
105
|
|
106
|
-
|
106
|
+
The decoder supports a post-\/processing filter that can improve the appearance of the decoded images. This returns the highest level setting for this post-\/processor, corresponding to maximum improvement and computational expense.
|
107
107
|
|
108
108
|
|
109
|
-
\begin{DoxyParams}[1]{
|
110
|
-
\mbox{\tt out} & {\em \-\_\-buf} & int\-:
|
109
|
+
\begin{DoxyParams}[1]{Parameters}
|
110
|
+
\mbox{\tt out} & {\em \-\_\-buf} & int\-: The maximum post-\/processing level. \\
|
111
111
|
\hline
|
112
112
|
\end{DoxyParams}
|
113
113
|
|
114
|
-
\begin{DoxyRetVals}{
|
115
|
-
{\em
|
114
|
+
\begin{DoxyRetVals}{Return values}
|
115
|
+
{\em T\-H\-\_\-\-E\-F\-A\-U\-L\-T} & {\itshape \-\_\-dec\-\_\-ctx} or {\itshape \-\_\-buf} is {\ttfamily N\-U\-L\-L}. \\
|
116
116
|
\hline
|
117
|
-
{\em
|
117
|
+
{\em T\-H\-\_\-\-E\-I\-N\-V\-A\-L} & {\itshape \-\_\-buf\-\_\-sz} is not {\ttfamily sizeof(int)}. \\
|
118
118
|
\hline
|
119
|
-
{\em
|
119
|
+
{\em T\-H\-\_\-\-E\-I\-M\-P\-L} & Not supported by this implementation. \\
|
120
120
|
\hline
|
121
121
|
\end{DoxyRetVals}
|
122
|
-
\index{theoradec.\-h@{theoradec.\-h}
|
123
|
-
\index{
|
124
|
-
\subsubsection[{
|
122
|
+
\index{theoradec.\-h@{theoradec.\-h}!T\-H\-\_\-\-D\-E\-C\-C\-T\-L\-\_\-\-S\-E\-T\-\_\-\-G\-R\-A\-N\-P\-O\-S@{T\-H\-\_\-\-D\-E\-C\-C\-T\-L\-\_\-\-S\-E\-T\-\_\-\-G\-R\-A\-N\-P\-O\-S}}
|
123
|
+
\index{T\-H\-\_\-\-D\-E\-C\-C\-T\-L\-\_\-\-S\-E\-T\-\_\-\-G\-R\-A\-N\-P\-O\-S@{T\-H\-\_\-\-D\-E\-C\-C\-T\-L\-\_\-\-S\-E\-T\-\_\-\-G\-R\-A\-N\-P\-O\-S}!theoradec.h@{theoradec.\-h}}
|
124
|
+
\subsubsection[{T\-H\-\_\-\-D\-E\-C\-C\-T\-L\-\_\-\-S\-E\-T\-\_\-\-G\-R\-A\-N\-P\-O\-S}]{\setlength{\rightskip}{0pt plus 5cm}\#define T\-H\-\_\-\-D\-E\-C\-C\-T\-L\-\_\-\-S\-E\-T\-\_\-\-G\-R\-A\-N\-P\-O\-S~(5)}\label{theoradec_8h_a1e870c654d35394f0d490045df04e0f5}
|
125
125
|
|
126
126
|
|
127
|
-
|
127
|
+
Sets the granule position.
|
128
128
|
|
129
|
-
|
129
|
+
Call this after a seek, before decoding the first frame, to ensure that the proper granule position is returned for all subsequent frames. If you track timestamps yourself and do not use the granule position returned by the decoder, then you need not call this function.
|
130
130
|
|
131
131
|
|
132
|
-
\begin{DoxyParams}[1]{
|
133
|
-
\mbox{\tt in} & {\em \-\_\-buf} & {\ttfamily ogg\-\_\-int64\-\_\-t}\-:
|
132
|
+
\begin{DoxyParams}[1]{Parameters}
|
133
|
+
\mbox{\tt in} & {\em \-\_\-buf} & {\ttfamily ogg\-\_\-int64\-\_\-t}\-: The granule position of the next frame. \\
|
134
134
|
\hline
|
135
135
|
\end{DoxyParams}
|
136
136
|
|
137
|
-
\begin{DoxyRetVals}{
|
138
|
-
{\em
|
137
|
+
\begin{DoxyRetVals}{Return values}
|
138
|
+
{\em T\-H\-\_\-\-E\-F\-A\-U\-L\-T} & {\itshape \-\_\-dec\-\_\-ctx} or {\itshape \-\_\-buf} is {\ttfamily N\-U\-L\-L}. \\
|
139
139
|
\hline
|
140
|
-
{\em
|
140
|
+
{\em T\-H\-\_\-\-E\-I\-N\-V\-A\-L} & {\itshape \-\_\-buf\-\_\-sz} is not {\ttfamily sizeof(ogg\-\_\-int64\-\_\-t)}, or the granule position is negative. \\
|
141
141
|
\hline
|
142
142
|
\end{DoxyRetVals}
|
143
|
-
\index{theoradec.\-h@{theoradec.\-h}
|
144
|
-
\index{
|
145
|
-
\subsubsection[{
|
143
|
+
\index{theoradec.\-h@{theoradec.\-h}!T\-H\-\_\-\-D\-E\-C\-C\-T\-L\-\_\-\-S\-E\-T\-\_\-\-P\-P\-L\-E\-V\-E\-L@{T\-H\-\_\-\-D\-E\-C\-C\-T\-L\-\_\-\-S\-E\-T\-\_\-\-P\-P\-L\-E\-V\-E\-L}}
|
144
|
+
\index{T\-H\-\_\-\-D\-E\-C\-C\-T\-L\-\_\-\-S\-E\-T\-\_\-\-P\-P\-L\-E\-V\-E\-L@{T\-H\-\_\-\-D\-E\-C\-C\-T\-L\-\_\-\-S\-E\-T\-\_\-\-P\-P\-L\-E\-V\-E\-L}!theoradec.h@{theoradec.\-h}}
|
145
|
+
\subsubsection[{T\-H\-\_\-\-D\-E\-C\-C\-T\-L\-\_\-\-S\-E\-T\-\_\-\-P\-P\-L\-E\-V\-E\-L}]{\setlength{\rightskip}{0pt plus 5cm}\#define T\-H\-\_\-\-D\-E\-C\-C\-T\-L\-\_\-\-S\-E\-T\-\_\-\-P\-P\-L\-E\-V\-E\-L~(3)}\label{theoradec_8h_a87774c35e1a755a84e2d705b38ebef0d}
|
146
146
|
|
147
147
|
|
148
|
-
|
148
|
+
Sets the post-\/processing level.
|
149
149
|
|
150
|
-
|
150
|
+
By default, post-\/processing is disabled.
|
151
151
|
|
152
|
-
|
152
|
+
Sets the level of post-\/processing to use when decoding the compressed stream. This must be a value between zero (off) and the maximum returned by T\-H\-\_\-\-D\-E\-C\-C\-T\-L\-\_\-\-G\-E\-T\-\_\-\-P\-P\-L\-E\-V\-E\-L\-\_\-\-M\-A\-X.
|
153
153
|
|
154
154
|
|
155
|
-
\begin{DoxyParams}[1]{
|
156
|
-
\mbox{\tt in} & {\em \-\_\-buf} & int\-:
|
155
|
+
\begin{DoxyParams}[1]{Parameters}
|
156
|
+
\mbox{\tt in} & {\em \-\_\-buf} & int\-: The new post-\/processing level. 0 to disable; larger values use more C\-P\-U. \\
|
157
157
|
\hline
|
158
158
|
\end{DoxyParams}
|
159
159
|
|
160
|
-
\begin{DoxyRetVals}{
|
161
|
-
{\em
|
160
|
+
\begin{DoxyRetVals}{Return values}
|
161
|
+
{\em T\-H\-\_\-\-E\-F\-A\-U\-L\-T} & {\itshape \-\_\-dec\-\_\-ctx} or {\itshape \-\_\-buf} is {\ttfamily N\-U\-L\-L}. \\
|
162
162
|
\hline
|
163
|
-
{\em
|
163
|
+
{\em T\-H\-\_\-\-E\-I\-N\-V\-A\-L} & {\itshape \-\_\-buf\-\_\-sz} is not {\ttfamily sizeof(int)}, or the post-\/processing level is out of bounds. The maximum post-\/processing level may be implementation-\/specific, and can be obtained via \doxyref{T\-H\-\_\-\-D\-E\-C\-C\-T\-L\-\_\-\-G\-E\-T\-\_\-\-P\-P\-L\-E\-V\-E\-L\-\_\-\-M\-A\-X}{p.}{theoradec_8h_ab31f251c9319f2140d247585d30b3d07}. \\
|
164
164
|
\hline
|
165
|
-
{\em
|
165
|
+
{\em T\-H\-\_\-\-E\-I\-M\-P\-L} & Not supported by this implementation. \\
|
166
166
|
\hline
|
167
167
|
\end{DoxyRetVals}
|
168
|
-
\index{theoradec.\-h@{theoradec.\-h}
|
169
|
-
\index{
|
170
|
-
\subsubsection[{
|
168
|
+
\index{theoradec.\-h@{theoradec.\-h}!T\-H\-\_\-\-D\-E\-C\-C\-T\-L\-\_\-\-S\-E\-T\-\_\-\-S\-T\-R\-I\-P\-E\-\_\-\-C\-B@{T\-H\-\_\-\-D\-E\-C\-C\-T\-L\-\_\-\-S\-E\-T\-\_\-\-S\-T\-R\-I\-P\-E\-\_\-\-C\-B}}
|
169
|
+
\index{T\-H\-\_\-\-D\-E\-C\-C\-T\-L\-\_\-\-S\-E\-T\-\_\-\-S\-T\-R\-I\-P\-E\-\_\-\-C\-B@{T\-H\-\_\-\-D\-E\-C\-C\-T\-L\-\_\-\-S\-E\-T\-\_\-\-S\-T\-R\-I\-P\-E\-\_\-\-C\-B}!theoradec.h@{theoradec.\-h}}
|
170
|
+
\subsubsection[{T\-H\-\_\-\-D\-E\-C\-C\-T\-L\-\_\-\-S\-E\-T\-\_\-\-S\-T\-R\-I\-P\-E\-\_\-\-C\-B}]{\setlength{\rightskip}{0pt plus 5cm}\#define T\-H\-\_\-\-D\-E\-C\-C\-T\-L\-\_\-\-S\-E\-T\-\_\-\-S\-T\-R\-I\-P\-E\-\_\-\-C\-B~(7)}\label{theoradec_8h_ac95cc9e109474b0fa4bb920ab2cfdf1e}
|
171
171
|
|
172
172
|
|
173
|
-
|
173
|
+
Sets the striped decode callback function.
|
174
174
|
|
175
|
-
|
175
|
+
If set, this function will be called as each piece of a frame is fully decoded in \doxyref{th\-\_\-decode\-\_\-packetin()}{p.}{group__decfuncs_ga31c814bf09b2232aff69c57ae20f04eb}. You can pass in a \doxyref{th\-\_\-stripe\-\_\-callback}{p.}{structth__stripe__callback} with \doxyref{th\-\_\-stripe\-\_\-callback\-::stripe\-\_\-decoded}{p.}{structth__stripe__callback_a977c725680a37e3446e459f063b1f4a5} set to {\ttfamily N\-U\-L\-L} to disable the callbacks at any point. Enabling striped decode does not prevent you from calling \doxyref{th\-\_\-decode\-\_\-ycbcr\-\_\-out()}{p.}{group__decfuncs_gaa9cc8af63fa8540e0fc95572f259cdcb} after the frame is fully decoded.
|
176
176
|
|
177
177
|
|
178
|
-
\begin{DoxyParams}[1]{
|
179
|
-
\mbox{\tt in} & {\em \-\_\-buf} & \doxyref{th\-\_\-stripe\-\_\-callback}{p.}{structth__stripe__callback}\-:
|
178
|
+
\begin{DoxyParams}[1]{Parameters}
|
179
|
+
\mbox{\tt in} & {\em \-\_\-buf} & \doxyref{th\-\_\-stripe\-\_\-callback}{p.}{structth__stripe__callback}\-: The callback parameters. \\
|
180
180
|
\hline
|
181
181
|
\end{DoxyParams}
|
182
182
|
|
183
|
-
\begin{DoxyRetVals}{
|
184
|
-
{\em
|
183
|
+
\begin{DoxyRetVals}{Return values}
|
184
|
+
{\em T\-H\-\_\-\-E\-F\-A\-U\-L\-T} & {\itshape \-\_\-dec\-\_\-ctx} or {\itshape \-\_\-buf} is {\ttfamily N\-U\-L\-L}. \\
|
185
185
|
\hline
|
186
|
-
{\em
|
186
|
+
{\em T\-H\-\_\-\-E\-I\-N\-V\-A\-L} & {\itshape \-\_\-buf\-\_\-sz} is not {\ttfamily sizeof(th\-\_\-stripe\-\_\-callback)}. \\
|
187
187
|
\hline
|
188
188
|
\end{DoxyRetVals}
|
189
|
-
\index{theoradec.\-h@{theoradec.\-h}
|
190
|
-
\index{
|
191
|
-
\subsubsection[{
|
189
|
+
\index{theoradec.\-h@{theoradec.\-h}!T\-H\-\_\-\-D\-E\-C\-C\-T\-L\-\_\-\-S\-E\-T\-\_\-\-T\-E\-L\-E\-M\-E\-T\-R\-Y\-\_\-\-B\-I\-T\-S@{T\-H\-\_\-\-D\-E\-C\-C\-T\-L\-\_\-\-S\-E\-T\-\_\-\-T\-E\-L\-E\-M\-E\-T\-R\-Y\-\_\-\-B\-I\-T\-S}}
|
190
|
+
\index{T\-H\-\_\-\-D\-E\-C\-C\-T\-L\-\_\-\-S\-E\-T\-\_\-\-T\-E\-L\-E\-M\-E\-T\-R\-Y\-\_\-\-B\-I\-T\-S@{T\-H\-\_\-\-D\-E\-C\-C\-T\-L\-\_\-\-S\-E\-T\-\_\-\-T\-E\-L\-E\-M\-E\-T\-R\-Y\-\_\-\-B\-I\-T\-S}!theoradec.h@{theoradec.\-h}}
|
191
|
+
\subsubsection[{T\-H\-\_\-\-D\-E\-C\-C\-T\-L\-\_\-\-S\-E\-T\-\_\-\-T\-E\-L\-E\-M\-E\-T\-R\-Y\-\_\-\-B\-I\-T\-S}]{\setlength{\rightskip}{0pt plus 5cm}\#define T\-H\-\_\-\-D\-E\-C\-C\-T\-L\-\_\-\-S\-E\-T\-\_\-\-T\-E\-L\-E\-M\-E\-T\-R\-Y\-\_\-\-B\-I\-T\-S~(15)}\label{theoradec_8h_a7f43fec07486f8a5f00e92aab7d44a25}
|
192
192
|
|
193
193
|
|
194
|
-
|
194
|
+
Enables telemetry and sets the bitstream breakdown visualization mode.
|
195
195
|
|
196
|
-
\index{theoradec.\-h@{theoradec.\-h}
|
197
|
-
\index{
|
198
|
-
\subsubsection[{
|
196
|
+
\index{theoradec.\-h@{theoradec.\-h}!T\-H\-\_\-\-D\-E\-C\-C\-T\-L\-\_\-\-S\-E\-T\-\_\-\-T\-E\-L\-E\-M\-E\-T\-R\-Y\-\_\-\-M\-B\-M\-O\-D\-E@{T\-H\-\_\-\-D\-E\-C\-C\-T\-L\-\_\-\-S\-E\-T\-\_\-\-T\-E\-L\-E\-M\-E\-T\-R\-Y\-\_\-\-M\-B\-M\-O\-D\-E}}
|
197
|
+
\index{T\-H\-\_\-\-D\-E\-C\-C\-T\-L\-\_\-\-S\-E\-T\-\_\-\-T\-E\-L\-E\-M\-E\-T\-R\-Y\-\_\-\-M\-B\-M\-O\-D\-E@{T\-H\-\_\-\-D\-E\-C\-C\-T\-L\-\_\-\-S\-E\-T\-\_\-\-T\-E\-L\-E\-M\-E\-T\-R\-Y\-\_\-\-M\-B\-M\-O\-D\-E}!theoradec.h@{theoradec.\-h}}
|
198
|
+
\subsubsection[{T\-H\-\_\-\-D\-E\-C\-C\-T\-L\-\_\-\-S\-E\-T\-\_\-\-T\-E\-L\-E\-M\-E\-T\-R\-Y\-\_\-\-M\-B\-M\-O\-D\-E}]{\setlength{\rightskip}{0pt plus 5cm}\#define T\-H\-\_\-\-D\-E\-C\-C\-T\-L\-\_\-\-S\-E\-T\-\_\-\-T\-E\-L\-E\-M\-E\-T\-R\-Y\-\_\-\-M\-B\-M\-O\-D\-E~(9)}\label{theoradec_8h_a8d5e0b9b4c8898f93f241acbeb7e7ffb}
|
199
199
|
|
200
200
|
|
201
|
-
|
201
|
+
Enables telemetry and sets the macroblock display mode.
|
202
202
|
|
203
|
-
\index{theoradec.\-h@{theoradec.\-h}
|
204
|
-
\index{
|
205
|
-
\subsubsection[{
|
203
|
+
\index{theoradec.\-h@{theoradec.\-h}!T\-H\-\_\-\-D\-E\-C\-C\-T\-L\-\_\-\-S\-E\-T\-\_\-\-T\-E\-L\-E\-M\-E\-T\-R\-Y\-\_\-\-M\-V@{T\-H\-\_\-\-D\-E\-C\-C\-T\-L\-\_\-\-S\-E\-T\-\_\-\-T\-E\-L\-E\-M\-E\-T\-R\-Y\-\_\-\-M\-V}}
|
204
|
+
\index{T\-H\-\_\-\-D\-E\-C\-C\-T\-L\-\_\-\-S\-E\-T\-\_\-\-T\-E\-L\-E\-M\-E\-T\-R\-Y\-\_\-\-M\-V@{T\-H\-\_\-\-D\-E\-C\-C\-T\-L\-\_\-\-S\-E\-T\-\_\-\-T\-E\-L\-E\-M\-E\-T\-R\-Y\-\_\-\-M\-V}!theoradec.h@{theoradec.\-h}}
|
205
|
+
\subsubsection[{T\-H\-\_\-\-D\-E\-C\-C\-T\-L\-\_\-\-S\-E\-T\-\_\-\-T\-E\-L\-E\-M\-E\-T\-R\-Y\-\_\-\-M\-V}]{\setlength{\rightskip}{0pt plus 5cm}\#define T\-H\-\_\-\-D\-E\-C\-C\-T\-L\-\_\-\-S\-E\-T\-\_\-\-T\-E\-L\-E\-M\-E\-T\-R\-Y\-\_\-\-M\-V~(11)}\label{theoradec_8h_a829285a03d24832c583f33c6357df8aa}
|
206
206
|
|
207
207
|
|
208
|
-
|
208
|
+
Enables telemetry and sets the motion vector display mode.
|
209
209
|
|
210
|
-
\index{theoradec.\-h@{theoradec.\-h}
|
211
|
-
\index{
|
212
|
-
\subsubsection[{
|
210
|
+
\index{theoradec.\-h@{theoradec.\-h}!T\-H\-\_\-\-D\-E\-C\-C\-T\-L\-\_\-\-S\-E\-T\-\_\-\-T\-E\-L\-E\-M\-E\-T\-R\-Y\-\_\-\-Q\-I@{T\-H\-\_\-\-D\-E\-C\-C\-T\-L\-\_\-\-S\-E\-T\-\_\-\-T\-E\-L\-E\-M\-E\-T\-R\-Y\-\_\-\-Q\-I}}
|
211
|
+
\index{T\-H\-\_\-\-D\-E\-C\-C\-T\-L\-\_\-\-S\-E\-T\-\_\-\-T\-E\-L\-E\-M\-E\-T\-R\-Y\-\_\-\-Q\-I@{T\-H\-\_\-\-D\-E\-C\-C\-T\-L\-\_\-\-S\-E\-T\-\_\-\-T\-E\-L\-E\-M\-E\-T\-R\-Y\-\_\-\-Q\-I}!theoradec.h@{theoradec.\-h}}
|
212
|
+
\subsubsection[{T\-H\-\_\-\-D\-E\-C\-C\-T\-L\-\_\-\-S\-E\-T\-\_\-\-T\-E\-L\-E\-M\-E\-T\-R\-Y\-\_\-\-Q\-I}]{\setlength{\rightskip}{0pt plus 5cm}\#define T\-H\-\_\-\-D\-E\-C\-C\-T\-L\-\_\-\-S\-E\-T\-\_\-\-T\-E\-L\-E\-M\-E\-T\-R\-Y\-\_\-\-Q\-I~(13)}\label{theoradec_8h_ae3e2f7674ad92fe67b63915d48c9df5b}
|
213
213
|
|
214
214
|
|
215
|
-
|
215
|
+
Enables telemetry and sets the adaptive quantization display mode.
|
216
216
|
|
217
217
|
|
218
218
|
|
219
|
-
\subsection{
|
219
|
+
\subsection{Typedef Documentation}
|
220
220
|
\index{theoradec.\-h@{theoradec.\-h}!th\-\_\-dec\-\_\-ctx@{th\-\_\-dec\-\_\-ctx}}
|
221
221
|
\index{th\-\_\-dec\-\_\-ctx@{th\-\_\-dec\-\_\-ctx}!theoradec.h@{theoradec.\-h}}
|
222
222
|
\subsubsection[{th\-\_\-dec\-\_\-ctx}]{\setlength{\rightskip}{0pt plus 5cm}typedef struct {\bf th\-\_\-dec\-\_\-ctx} {\bf th\-\_\-dec\-\_\-ctx}}\label{theoradec_8h_a843d70bb02563885a8d54b9c1a781729}
|
223
223
|
|
224
224
|
|
225
|
-
|
225
|
+
The decoder context.
|
226
226
|
|
227
227
|
\index{theoradec.\-h@{theoradec.\-h}!th\-\_\-setup\-\_\-info@{th\-\_\-setup\-\_\-info}}
|
228
228
|
\index{th\-\_\-setup\-\_\-info@{th\-\_\-setup\-\_\-info}!theoradec.h@{theoradec.\-h}}
|
229
229
|
\subsubsection[{th\-\_\-setup\-\_\-info}]{\setlength{\rightskip}{0pt plus 5cm}typedef struct {\bf th\-\_\-setup\-\_\-info} {\bf th\-\_\-setup\-\_\-info}}\label{theoradec_8h_ab71cd2657455cc27d6c0127c66a89f28}
|
230
230
|
|
231
231
|
|
232
|
-
|
232
|
+
Setup information.
|
233
233
|
|
234
|
-
|
234
|
+
This contains auxiliary information (Huffman tables and quantization parameters) decoded from the setup header by \doxyref{th\-\_\-decode\-\_\-headerin()}{p.}{group__decfuncs_ga006d01d36fbe64768c571e6a12b7fc50} to be passed to \doxyref{th\-\_\-decode\-\_\-alloc()}{p.}{group__decfuncs_ga0ef07a9a97849054aa606c595a2d807e}. It can be re-\/used to initialize any number of decoders, and can be freed via \doxyref{th\-\_\-setup\-\_\-free()}{p.}{group__decfuncs_gadef55431b68aaa59d0d7b32b2f118f27} at any time. \index{theoradec.\-h@{theoradec.\-h}!th\-\_\-stripe\-\_\-decoded\-\_\-func@{th\-\_\-stripe\-\_\-decoded\-\_\-func}}
|
235
235
|
\index{th\-\_\-stripe\-\_\-decoded\-\_\-func@{th\-\_\-stripe\-\_\-decoded\-\_\-func}!theoradec.h@{theoradec.\-h}}
|
236
|
-
\subsubsection[{th\-\_\-stripe\-\_\-decoded\-\_\-func}]{\setlength{\rightskip}{0pt plus 5cm}typedef void($\ast$
|
236
|
+
\subsubsection[{th\-\_\-stripe\-\_\-decoded\-\_\-func}]{\setlength{\rightskip}{0pt plus 5cm}typedef void($\ast$ th\-\_\-stripe\-\_\-decoded\-\_\-func)(void $\ast$\-\_\-ctx, {\bf th\-\_\-ycbcr\-\_\-buffer} \-\_\-buf, int \-\_\-yfrag0, int \-\_\-yfrag\-\_\-end)}\label{theoradec_8h_a25dfc8713157545abd81eda476ca4b54}
|
237
237
|
|
238
238
|
|
239
|
-
|
239
|
+
A callback function for striped decode.
|
240
240
|
|
241
|
-
|
242
|
-
\begin{DoxyParams}{
|
243
|
-
{\em \-\_\-ctx} &
|
241
|
+
This is a function pointer to an application-\/provided function that will be called each time a section of the image is fully decoded in \doxyref{th\-\_\-decode\-\_\-packetin()}{p.}{group__decfuncs_ga31c814bf09b2232aff69c57ae20f04eb}. This allows the application to process the section immediately, while it is still in cache. Note that the frame is decoded bottom to top, so {\itshape \-\_\-yfrag0} will steadily decrease with each call until it reaches 0, at which point the full frame is decoded. The number of fragment rows made available in each call depends on the pixel format and the number of post-\/processing filters enabled, and may not even be constant for the entire frame. If a non-\/{\ttfamily N\-U\-L\-L} {\itshape \-\_\-granpos} pointer is passed to \doxyref{th\-\_\-decode\-\_\-packetin()}{p.}{group__decfuncs_ga31c814bf09b2232aff69c57ae20f04eb}, the granule position for the frame will be stored in it before the first callback is made. If an entire frame is dropped (a 0-\/byte packet), then no callbacks will be made at all for that frame.
|
242
|
+
\begin{DoxyParams}{Parameters}
|
243
|
+
{\em \-\_\-ctx} & An application-\/provided context pointer. \\
|
244
244
|
\hline
|
245
|
-
{\em \-\_\-buf} &
|
245
|
+
{\em \-\_\-buf} & The image buffer for the decoded frame. \\
|
246
246
|
\hline
|
247
|
-
{\em \-\_\-yfrag0} &
|
247
|
+
{\em \-\_\-yfrag0} & The Y coordinate of the first row of 8x8 fragments decoded. Multiply this by 8 to obtain the pixel row number in the luma plane. If the chroma planes are subsampled in the Y direction, this will always be divisible by two. \\
|
248
248
|
\hline
|
249
|
-
{\em \-\_\-yfrag\-\_\-end} &
|
249
|
+
{\em \-\_\-yfrag\-\_\-end} & The Y coordinate of the first row of 8x8 fragments past the newly decoded section. If the chroma planes are subsampled in the Y direction, this will always be divisible by two. I.\-e., this section contains fragment rows {\ttfamily {\itshape \-\_\-yfrag0} ...{\itshape \-\_\-yfrag\-\_\-end} -\/1}. \\
|
250
250
|
\hline
|
251
251
|
\end{DoxyParams}
|
@@ -1,512 +1,512 @@
|
|
1
|
-
\section{theoraenc.\-h
|
1
|
+
\section{theoraenc.\-h File Reference}
|
2
2
|
\label{theoraenc_8h}\index{theoraenc.\-h@{theoraenc.\-h}}
|
3
3
|
|
4
4
|
|
5
|
-
|
5
|
+
The {\ttfamily libtheoraenc} C encoding A\-P\-I.
|
6
6
|
|
7
7
|
|
8
|
-
{\ttfamily \#include $<$stddef.\-h$>$}
|
9
|
-
{\ttfamily \#include $<$ogg/ogg.\-h$>$}
|
10
|
-
{\ttfamily \#include \char`\"{}codec.\-h\char`\"{}}
|
11
|
-
\subsection*{
|
8
|
+
{\ttfamily \#include $<$stddef.\-h$>$}\\*
|
9
|
+
{\ttfamily \#include $<$ogg/ogg.\-h$>$}\\*
|
10
|
+
{\ttfamily \#include \char`\"{}codec.\-h\char`\"{}}\\*
|
11
|
+
\subsection*{Macros}
|
12
12
|
\begin{DoxyCompactItemize}
|
13
13
|
\item
|
14
14
|
\#define {\bf \-\_\-\-O\-\_\-\-T\-H\-E\-O\-R\-A\-\_\-\-T\-H\-E\-O\-R\-A\-E\-N\-C\-\_\-\-H\-\_\-}~(1)
|
15
15
|
\end{DoxyCompactItemize}
|
16
16
|
\begin{Indent}{\bf th\-\_\-encode\-\_\-ctl() codes}\par
|
17
17
|
{\em \label{theoraenc_8h_encctlcodes}%
|
18
|
-
|
18
|
+
These are the available request codes for \doxyref{th\-\_\-encode\-\_\-ctl()}{p.}{group__encfuncs_ga3a427f6514dfdc01ea72172c469d51d9}. By convention, these are even, to distinguish them from the \doxyref{decoder control codes}{p.}{theoradec_8h_decctlcodes}. Keep any experimental or vendor-\/specific values above {\ttfamily 0x8000}. }\begin{DoxyCompactItemize}
|
19
19
|
\item
|
20
|
-
\#define {\bf
|
21
|
-
\begin{DoxyCompactList}\small\item\em
|
22
|
-
\#define {\bf
|
23
|
-
\begin{DoxyCompactList}\small\item\em
|
24
|
-
\#define {\bf
|
25
|
-
\begin{DoxyCompactList}\small\item\em
|
26
|
-
\#define {\bf
|
27
|
-
\begin{DoxyCompactList}\small\item\em
|
28
|
-
\#define {\bf
|
29
|
-
\begin{DoxyCompactList}\small\item\em
|
30
|
-
\#define {\bf
|
31
|
-
\begin{DoxyCompactList}\small\item\em
|
32
|
-
\#define {\bf
|
33
|
-
\begin{DoxyCompactList}\small\item\em
|
34
|
-
\#define {\bf
|
35
|
-
\begin{DoxyCompactList}\small\item\em
|
36
|
-
\#define {\bf
|
37
|
-
\begin{DoxyCompactList}\small\item\em
|
38
|
-
\#define {\bf
|
39
|
-
\begin{DoxyCompactList}\small\item\em
|
40
|
-
\#define {\bf
|
41
|
-
\begin{DoxyCompactList}\small\item\em
|
42
|
-
\#define {\bf
|
43
|
-
\begin{DoxyCompactList}\small\item\em
|
44
|
-
\#define {\bf
|
45
|
-
\begin{DoxyCompactList}\small\item\em
|
46
|
-
\#define {\bf
|
47
|
-
\begin{DoxyCompactList}\small\item\em
|
20
|
+
\#define {\bf T\-H\-\_\-\-E\-N\-C\-C\-T\-L\-\_\-\-S\-E\-T\-\_\-\-H\-U\-F\-F\-M\-A\-N\-\_\-\-C\-O\-D\-E\-S}~(0)
|
21
|
+
\begin{DoxyCompactList}\small\item\em Sets the Huffman tables to use. \end{DoxyCompactList}\item
|
22
|
+
\#define {\bf T\-H\-\_\-\-E\-N\-C\-C\-T\-L\-\_\-\-S\-E\-T\-\_\-\-Q\-U\-A\-N\-T\-\_\-\-P\-A\-R\-A\-M\-S}~(2)
|
23
|
+
\begin{DoxyCompactList}\small\item\em Sets the quantization parameters to use. \end{DoxyCompactList}\item
|
24
|
+
\#define {\bf T\-H\-\_\-\-E\-N\-C\-C\-T\-L\-\_\-\-S\-E\-T\-\_\-\-K\-E\-Y\-F\-R\-A\-M\-E\-\_\-\-F\-R\-E\-Q\-U\-E\-N\-C\-Y\-\_\-\-F\-O\-R\-C\-E}~(4)
|
25
|
+
\begin{DoxyCompactList}\small\item\em Sets the maximum distance between key frames. \end{DoxyCompactList}\item
|
26
|
+
\#define {\bf T\-H\-\_\-\-E\-N\-C\-C\-T\-L\-\_\-\-S\-E\-T\-\_\-\-V\-P3\-\_\-\-C\-O\-M\-P\-A\-T\-I\-B\-L\-E}~(10)
|
27
|
+
\begin{DoxyCompactList}\small\item\em Disables any encoder features that would prevent lossless transcoding back to V\-P3. \end{DoxyCompactList}\item
|
28
|
+
\#define {\bf T\-H\-\_\-\-E\-N\-C\-C\-T\-L\-\_\-\-G\-E\-T\-\_\-\-S\-P\-L\-E\-V\-E\-L\-\_\-\-M\-A\-X}~(12)
|
29
|
+
\begin{DoxyCompactList}\small\item\em Gets the maximum speed level. \end{DoxyCompactList}\item
|
30
|
+
\#define {\bf T\-H\-\_\-\-E\-N\-C\-C\-T\-L\-\_\-\-S\-E\-T\-\_\-\-S\-P\-L\-E\-V\-E\-L}~(14)
|
31
|
+
\begin{DoxyCompactList}\small\item\em Sets the speed level. \end{DoxyCompactList}\item
|
32
|
+
\#define {\bf T\-H\-\_\-\-E\-N\-C\-C\-T\-L\-\_\-\-G\-E\-T\-\_\-\-S\-P\-L\-E\-V\-E\-L}~(16)
|
33
|
+
\begin{DoxyCompactList}\small\item\em Gets the current speed level. \end{DoxyCompactList}\item
|
34
|
+
\#define {\bf T\-H\-\_\-\-E\-N\-C\-C\-T\-L\-\_\-\-S\-E\-T\-\_\-\-D\-U\-P\-\_\-\-C\-O\-U\-N\-T}~(18)
|
35
|
+
\begin{DoxyCompactList}\small\item\em Sets the number of duplicates of the next frame to produce. \end{DoxyCompactList}\item
|
36
|
+
\#define {\bf T\-H\-\_\-\-E\-N\-C\-C\-T\-L\-\_\-\-S\-E\-T\-\_\-\-R\-A\-T\-E\-\_\-\-F\-L\-A\-G\-S}~(20)
|
37
|
+
\begin{DoxyCompactList}\small\item\em Modifies the default bitrate management behavior. \end{DoxyCompactList}\item
|
38
|
+
\#define {\bf T\-H\-\_\-\-E\-N\-C\-C\-T\-L\-\_\-\-S\-E\-T\-\_\-\-R\-A\-T\-E\-\_\-\-B\-U\-F\-F\-E\-R}~(22)
|
39
|
+
\begin{DoxyCompactList}\small\item\em Sets the size of the bitrate management bit reservoir as a function of number of frames. \end{DoxyCompactList}\item
|
40
|
+
\#define {\bf T\-H\-\_\-\-E\-N\-C\-C\-T\-L\-\_\-2\-P\-A\-S\-S\-\_\-\-O\-U\-T}~(24)
|
41
|
+
\begin{DoxyCompactList}\small\item\em Enable pass 1 of two-\/pass encoding mode and retrieve the first pass metrics. \end{DoxyCompactList}\item
|
42
|
+
\#define {\bf T\-H\-\_\-\-E\-N\-C\-C\-T\-L\-\_\-2\-P\-A\-S\-S\-\_\-\-I\-N}~(26)
|
43
|
+
\begin{DoxyCompactList}\small\item\em Submits two-\/pass encoding metric data collected the first encoding pass to the second pass. \end{DoxyCompactList}\item
|
44
|
+
\#define {\bf T\-H\-\_\-\-E\-N\-C\-C\-T\-L\-\_\-\-S\-E\-T\-\_\-\-Q\-U\-A\-L\-I\-T\-Y}~(28)
|
45
|
+
\begin{DoxyCompactList}\small\item\em Sets the current encoding quality. \end{DoxyCompactList}\item
|
46
|
+
\#define {\bf T\-H\-\_\-\-E\-N\-C\-C\-T\-L\-\_\-\-S\-E\-T\-\_\-\-B\-I\-T\-R\-A\-T\-E}~(30)
|
47
|
+
\begin{DoxyCompactList}\small\item\em Sets the current encoding bitrate. \end{DoxyCompactList}\end{DoxyCompactItemize}
|
48
48
|
\end{Indent}
|
49
|
-
\begin{Indent}{\bf
|
49
|
+
\begin{Indent}{\bf T\-H\-\_\-\-E\-N\-C\-C\-T\-L\-\_\-\-S\-E\-T\-\_\-\-R\-A\-T\-E\-\_\-\-F\-L\-A\-G\-S flags}\par
|
50
50
|
{\em \label{theoraenc_8h_ratectlflags}%
|
51
|
-
|
51
|
+
These are the flags available for use with \doxyref{T\-H\-\_\-\-E\-N\-C\-C\-T\-L\-\_\-\-S\-E\-T\-\_\-\-R\-A\-T\-E\-\_\-\-F\-L\-A\-G\-S}{p.}{theoraenc_8h_a026502e08fbe1af0a1063f39bd18129c}. }\begin{DoxyCompactItemize}
|
52
52
|
\item
|
53
|
-
\#define {\bf
|
54
|
-
\begin{DoxyCompactList}\small\item\em
|
55
|
-
\#define {\bf
|
56
|
-
\begin{DoxyCompactList}\small\item\em
|
57
|
-
\#define {\bf
|
58
|
-
\begin{DoxyCompactList}\small\item\em
|
53
|
+
\#define {\bf T\-H\-\_\-\-R\-A\-T\-E\-C\-T\-L\-\_\-\-D\-R\-O\-P\-\_\-\-F\-R\-A\-M\-E\-S}~(0x1)
|
54
|
+
\begin{DoxyCompactList}\small\item\em Drop frames to keep within bitrate buffer constraints. \end{DoxyCompactList}\item
|
55
|
+
\#define {\bf T\-H\-\_\-\-R\-A\-T\-E\-C\-T\-L\-\_\-\-C\-A\-P\-\_\-\-O\-V\-E\-R\-F\-L\-O\-W}~(0x2)
|
56
|
+
\begin{DoxyCompactList}\small\item\em Ignore bitrate buffer overflows. \end{DoxyCompactList}\item
|
57
|
+
\#define {\bf T\-H\-\_\-\-R\-A\-T\-E\-C\-T\-L\-\_\-\-C\-A\-P\-\_\-\-U\-N\-D\-E\-R\-F\-L\-O\-W}~(0x4)
|
58
|
+
\begin{DoxyCompactList}\small\item\em Ignore bitrate buffer underflows. \end{DoxyCompactList}\end{DoxyCompactItemize}
|
59
59
|
\end{Indent}
|
60
|
-
\subsection*{
|
61
|
-
\begin{Indent}{\bf
|
62
|
-
{\em
|
60
|
+
\subsection*{Typedefs}
|
61
|
+
\begin{Indent}{\bf Encoder state}\par
|
62
|
+
{\em The following data structure is opaque, and its contents are not publicly defined by this A\-P\-I.
|
63
63
|
|
64
|
-
|
64
|
+
Referring to its internals directly is unsupported, and may break without warning. }\begin{DoxyCompactItemize}
|
65
65
|
\item
|
66
66
|
typedef struct {\bf th\-\_\-enc\-\_\-ctx} {\bf th\-\_\-enc\-\_\-ctx}
|
67
|
-
\begin{DoxyCompactList}\small\item\em
|
67
|
+
\begin{DoxyCompactList}\small\item\em The encoder context. \end{DoxyCompactList}\end{DoxyCompactItemize}
|
68
68
|
\end{Indent}
|
69
|
-
\subsection*{
|
70
|
-
\begin{Indent}{\bf
|
71
|
-
{\em
|
69
|
+
\subsection*{Functions}
|
70
|
+
\begin{Indent}{\bf Functions for encoding}\par
|
71
|
+
{\em You must link to {\ttfamily libtheoraenc} and {\ttfamily libtheoradec} if you use any of the functions in this section.
|
72
72
|
|
73
|
-
|
73
|
+
The functions are listed in the order they are used in a typical encode. The basic steps are\-:
|
74
74
|
\begin{DoxyItemize}
|
75
|
-
\item
|
76
|
-
\item
|
77
|
-
\item
|
78
|
-
\item
|
79
|
-
\item
|
75
|
+
\item Fill in a \doxyref{th\-\_\-info}{p.}{structth__info} structure with details on the format of the video you wish to encode.
|
76
|
+
\item Allocate a \doxyref{th\-\_\-enc\-\_\-ctx}{p.}{theoraenc_8h_af5cc40472b925456d42526a035d66edd} handle with \doxyref{th\-\_\-encode\-\_\-alloc()}{p.}{group__encfuncs_gaa91e47bc9dd5f6ee52045bd7b815e5a7}.
|
77
|
+
\item Perform any additional encoder configuration required with \doxyref{th\-\_\-encode\-\_\-ctl()}{p.}{group__encfuncs_ga3a427f6514dfdc01ea72172c469d51d9}.
|
78
|
+
\item Repeatedly call \doxyref{th\-\_\-encode\-\_\-flushheader()}{p.}{group__encfuncs_ga9439d61b566039d194ff782681fbc408} to retrieve all the header packets.
|
79
|
+
\item For each uncompressed frame\-:
|
80
80
|
\begin{DoxyItemize}
|
81
|
-
\item
|
82
|
-
\item
|
81
|
+
\item Submit the uncompressed frame via \doxyref{th\-\_\-encode\-\_\-ycbcr\-\_\-in()}{p.}{group__encfuncs_gadbe7dd66b411c2d61ab8153c15308750}
|
82
|
+
\item Repeatedly call \doxyref{th\-\_\-encode\-\_\-packetout()}{p.}{group__encfuncs_ga96d8ac1dda53187455352f99bbb5b04b} to retrieve any video data packets that are ready.
|
83
83
|
\end{DoxyItemize}
|
84
|
-
\item
|
84
|
+
\item Call \doxyref{th\-\_\-encode\-\_\-free()}{p.}{group__encfuncs_ga36b23d216532231925c4107894204680} to release all encoder memory.
|
85
85
|
\end{DoxyItemize}}\begin{DoxyCompactItemize}
|
86
86
|
\item
|
87
87
|
{\bf th\-\_\-enc\-\_\-ctx} $\ast$ {\bf th\-\_\-encode\-\_\-alloc} (const {\bf th\-\_\-info} $\ast$\-\_\-info)
|
88
|
-
\begin{DoxyCompactList}\small\item\em
|
88
|
+
\begin{DoxyCompactList}\small\item\em Allocates an encoder instance. \end{DoxyCompactList}\item
|
89
89
|
int {\bf th\-\_\-encode\-\_\-ctl} ({\bf th\-\_\-enc\-\_\-ctx} $\ast$\-\_\-enc, int \-\_\-req, void $\ast$\-\_\-buf, size\-\_\-t \-\_\-buf\-\_\-sz)
|
90
|
-
\begin{DoxyCompactList}\small\item\em
|
90
|
+
\begin{DoxyCompactList}\small\item\em Encoder control function. \end{DoxyCompactList}\item
|
91
91
|
int {\bf th\-\_\-encode\-\_\-flushheader} ({\bf th\-\_\-enc\-\_\-ctx} $\ast$\-\_\-enc, {\bf th\-\_\-comment} $\ast$\-\_\-comments, ogg\-\_\-packet $\ast$\-\_\-op)
|
92
|
-
\begin{DoxyCompactList}\small\item\em
|
92
|
+
\begin{DoxyCompactList}\small\item\em Outputs the next header packet. \end{DoxyCompactList}\item
|
93
93
|
int {\bf th\-\_\-encode\-\_\-ycbcr\-\_\-in} ({\bf th\-\_\-enc\-\_\-ctx} $\ast$\-\_\-enc, {\bf th\-\_\-ycbcr\-\_\-buffer} \-\_\-ycbcr)
|
94
|
-
\begin{DoxyCompactList}\small\item\em
|
94
|
+
\begin{DoxyCompactList}\small\item\em Submits an uncompressed frame to the encoder. \end{DoxyCompactList}\item
|
95
95
|
int {\bf th\-\_\-encode\-\_\-packetout} ({\bf th\-\_\-enc\-\_\-ctx} $\ast$\-\_\-enc, int \-\_\-last, ogg\-\_\-packet $\ast$\-\_\-op)
|
96
|
-
\begin{DoxyCompactList}\small\item\em
|
96
|
+
\begin{DoxyCompactList}\small\item\em Retrieves encoded video data packets. \end{DoxyCompactList}\item
|
97
97
|
void {\bf th\-\_\-encode\-\_\-free} ({\bf th\-\_\-enc\-\_\-ctx} $\ast$\-\_\-enc)
|
98
|
-
\begin{DoxyCompactList}\small\item\em
|
98
|
+
\begin{DoxyCompactList}\small\item\em Frees an allocated encoder instance. \end{DoxyCompactList}\end{DoxyCompactItemize}
|
99
99
|
\end{Indent}
|
100
|
-
\subsection*{
|
100
|
+
\subsection*{Variables}
|
101
101
|
\begin{DoxyCompactItemize}
|
102
102
|
\item
|
103
|
-
const {\bf th\-\_\-quant\-\_\-info} {\bf
|
104
|
-
\begin{DoxyCompactList}\small\item\em
|
105
|
-
const {\bf th\-\_\-huff\-\_\-code} {\bf
|
106
|
-
\begin{DoxyCompactList}\small\item\em
|
103
|
+
const {\bf th\-\_\-quant\-\_\-info} {\bf T\-H\-\_\-\-V\-P31\-\_\-\-Q\-U\-A\-N\-T\-\_\-\-I\-N\-F\-O}
|
104
|
+
\begin{DoxyCompactList}\small\item\em The quantization parameters used by V\-P3. \end{DoxyCompactList}\item
|
105
|
+
const {\bf th\-\_\-huff\-\_\-code} {\bf T\-H\-\_\-\-V\-P31\-\_\-\-H\-U\-F\-F\-\_\-\-C\-O\-D\-E\-S} [{\bf T\-H\-\_\-\-N\-H\-U\-F\-F\-M\-A\-N\-\_\-\-T\-A\-B\-L\-E\-S}][{\bf T\-H\-\_\-\-N\-D\-C\-T\-\_\-\-T\-O\-K\-E\-N\-S}]
|
106
|
+
\begin{DoxyCompactList}\small\item\em The Huffman tables used by V\-P3. \end{DoxyCompactList}\end{DoxyCompactItemize}
|
107
107
|
|
108
108
|
|
109
|
-
\subsection{
|
110
|
-
|
109
|
+
\subsection{Detailed Description}
|
110
|
+
The {\ttfamily libtheoraenc} C encoding A\-P\-I.
|
111
111
|
|
112
|
-
\subsection{
|
112
|
+
\subsection{Macro Definition Documentation}
|
113
113
|
\index{theoraenc.\-h@{theoraenc.\-h}!\-\_\-\-O\-\_\-\-T\-H\-E\-O\-R\-A\-\_\-\-T\-H\-E\-O\-R\-A\-E\-N\-C\-\_\-\-H\-\_\-@{\-\_\-\-O\-\_\-\-T\-H\-E\-O\-R\-A\-\_\-\-T\-H\-E\-O\-R\-A\-E\-N\-C\-\_\-\-H\-\_\-}}
|
114
114
|
\index{\-\_\-\-O\-\_\-\-T\-H\-E\-O\-R\-A\-\_\-\-T\-H\-E\-O\-R\-A\-E\-N\-C\-\_\-\-H\-\_\-@{\-\_\-\-O\-\_\-\-T\-H\-E\-O\-R\-A\-\_\-\-T\-H\-E\-O\-R\-A\-E\-N\-C\-\_\-\-H\-\_\-}!theoraenc.h@{theoraenc.\-h}}
|
115
|
-
\subsubsection[{\-\_\-\-O\-\_\-\-T\-H\-E\-O\-R\-A\-\_\-\-T\-H\-E\-O\-R\-A\-E\-N\-C\-\_\-\-H\-\_\-}]{\setlength{\rightskip}{0pt plus 5cm}\#define
|
116
|
-
\index{theoraenc.\-h@{theoraenc.\-h}
|
117
|
-
\index{
|
118
|
-
\subsubsection[{
|
115
|
+
\subsubsection[{\-\_\-\-O\-\_\-\-T\-H\-E\-O\-R\-A\-\_\-\-T\-H\-E\-O\-R\-A\-E\-N\-C\-\_\-\-H\-\_\-}]{\setlength{\rightskip}{0pt plus 5cm}\#define \-\_\-\-O\-\_\-\-T\-H\-E\-O\-R\-A\-\_\-\-T\-H\-E\-O\-R\-A\-E\-N\-C\-\_\-\-H\-\_\-~(1)}\label{theoraenc_8h_ab915dd90f069a2431454fd62365e9381}
|
116
|
+
\index{theoraenc.\-h@{theoraenc.\-h}!T\-H\-\_\-\-E\-N\-C\-C\-T\-L\-\_\-2\-P\-A\-S\-S\-\_\-\-I\-N@{T\-H\-\_\-\-E\-N\-C\-C\-T\-L\-\_\-2\-P\-A\-S\-S\-\_\-\-I\-N}}
|
117
|
+
\index{T\-H\-\_\-\-E\-N\-C\-C\-T\-L\-\_\-2\-P\-A\-S\-S\-\_\-\-I\-N@{T\-H\-\_\-\-E\-N\-C\-C\-T\-L\-\_\-2\-P\-A\-S\-S\-\_\-\-I\-N}!theoraenc.h@{theoraenc.\-h}}
|
118
|
+
\subsubsection[{T\-H\-\_\-\-E\-N\-C\-C\-T\-L\-\_\-2\-P\-A\-S\-S\-\_\-\-I\-N}]{\setlength{\rightskip}{0pt plus 5cm}\#define T\-H\-\_\-\-E\-N\-C\-C\-T\-L\-\_\-2\-P\-A\-S\-S\-\_\-\-I\-N~(26)}\label{theoraenc_8h_a4a84f982cdd9a3e3c803a29bbde9df0b}
|
119
119
|
|
120
120
|
|
121
|
-
|
121
|
+
Submits two-\/pass encoding metric data collected the first encoding pass to the second pass.
|
122
122
|
|
123
|
-
|
123
|
+
The first call must be made before the first frame is encoded, and a target bitrate must have already been specified to the encoder. It sets the encoder to pass 2 mode implicitly; this cannot be disabled. The encoder may require reading data from some or all of the frames in advance, depending on, e.\-g., the reservoir size used in the second pass. You must call this function repeatedly before each frame to provide data until either a) it fails to consume all of the data presented or b) all of the pass 1 data has been consumed. In the first case, you must save the remaining data to be presented after the next frame. You can call this function with a N\-U\-L\-L argument to get an upper bound on the number of bytes that will be required before the next frame.
|
124
124
|
|
125
|
-
|
125
|
+
When pass 2 is first enabled, the default bit reservoir is set to the entire file; this gives maximum flexibility but can lead to very high peak rates. You can subsequently set it to another value with \doxyref{T\-H\-\_\-\-E\-N\-C\-C\-T\-L\-\_\-\-S\-E\-T\-\_\-\-R\-A\-T\-E\-\_\-\-B\-U\-F\-F\-E\-R}{p.}{theoraenc_8h_aaefb515876b2a180ad5c3120fc584a52} (e.\-g., to set it to the keyframe interval for non-\/live streaming), however, you may then need to provide more data before the next frame.
|
126
126
|
|
127
127
|
|
128
|
-
\begin{DoxyParams}[1]{
|
129
|
-
\mbox{\tt in} & {\em \-\_\-buf} & {\ttfamily char[]}\-:
|
128
|
+
\begin{DoxyParams}[1]{Parameters}
|
129
|
+
\mbox{\tt in} & {\em \-\_\-buf} & {\ttfamily char[]}\-: A buffer containing the data returned by \doxyref{T\-H\-\_\-\-E\-N\-C\-C\-T\-L\-\_\-2\-P\-A\-S\-S\-\_\-\-O\-U\-T}{p.}{theoraenc_8h_ac3751b9c3838888ec2e3f0b0d2823282} in pass 1. You may pass {\ttfamily N\-U\-L\-L} for {\itshape \-\_\-buf} to return an upper bound on the number of additional bytes needed before the next frame. The summary data returned at the end of pass 1 must be at the head of the buffer on the first call with a non-\/{\ttfamily N\-U\-L\-L} {\itshape \-\_\-buf}, and the placeholder data returned at the start of pass 1 should be omitted. After each call you should advance this buffer by the number of bytes consumed. \\
|
130
130
|
\hline
|
131
131
|
\end{DoxyParams}
|
132
132
|
|
133
|
-
\begin{DoxyRetVals}{
|
134
|
-
{\em $>$0} &
|
133
|
+
\begin{DoxyRetVals}{Return values}
|
134
|
+
{\em $>$0} & The number of bytes of metric data required/consumed. \\
|
135
135
|
\hline
|
136
|
-
{\em 0} &
|
136
|
+
{\em 0} & No more data is required before the next frame. \\
|
137
137
|
\hline
|
138
|
-
{\em
|
138
|
+
{\em T\-H\-\_\-\-E\-F\-A\-U\-L\-T} & {\itshape \-\_\-enc\-\_\-ctx} is {\ttfamily N\-U\-L\-L}. \\
|
139
139
|
\hline
|
140
|
-
{\em
|
140
|
+
{\em T\-H\-\_\-\-E\-I\-N\-V\-A\-L} & No target bitrate has been set, or the first call was made after the first frame was submitted for encoding. \\
|
141
141
|
\hline
|
142
|
-
{\em
|
142
|
+
{\em T\-H\-\_\-\-E\-N\-O\-T\-F\-O\-R\-M\-A\-T} & The data did not appear to be pass 1 from a compatible implementation of this library. \\
|
143
143
|
\hline
|
144
|
-
{\em
|
144
|
+
{\em T\-H\-\_\-\-E\-B\-A\-D\-H\-E\-A\-D\-E\-R} & The data was invalid; this may be returned when attempting to read an aborted pass 1 file that still has the placeholder data in place of the summary data. \\
|
145
145
|
\hline
|
146
|
-
{\em
|
146
|
+
{\em T\-H\-\_\-\-E\-I\-M\-P\-L} & Not supported by this implementation. \\
|
147
147
|
\hline
|
148
148
|
\end{DoxyRetVals}
|
149
|
-
\index{theoraenc.\-h@{theoraenc.\-h}
|
150
|
-
\index{
|
151
|
-
\subsubsection[{
|
149
|
+
\index{theoraenc.\-h@{theoraenc.\-h}!T\-H\-\_\-\-E\-N\-C\-C\-T\-L\-\_\-2\-P\-A\-S\-S\-\_\-\-O\-U\-T@{T\-H\-\_\-\-E\-N\-C\-C\-T\-L\-\_\-2\-P\-A\-S\-S\-\_\-\-O\-U\-T}}
|
150
|
+
\index{T\-H\-\_\-\-E\-N\-C\-C\-T\-L\-\_\-2\-P\-A\-S\-S\-\_\-\-O\-U\-T@{T\-H\-\_\-\-E\-N\-C\-C\-T\-L\-\_\-2\-P\-A\-S\-S\-\_\-\-O\-U\-T}!theoraenc.h@{theoraenc.\-h}}
|
151
|
+
\subsubsection[{T\-H\-\_\-\-E\-N\-C\-C\-T\-L\-\_\-2\-P\-A\-S\-S\-\_\-\-O\-U\-T}]{\setlength{\rightskip}{0pt plus 5cm}\#define T\-H\-\_\-\-E\-N\-C\-C\-T\-L\-\_\-2\-P\-A\-S\-S\-\_\-\-O\-U\-T~(24)}\label{theoraenc_8h_ac3751b9c3838888ec2e3f0b0d2823282}
|
152
152
|
|
153
153
|
|
154
|
-
|
154
|
+
Enable pass 1 of two-\/pass encoding mode and retrieve the first pass metrics.
|
155
155
|
|
156
|
-
|
156
|
+
Pass 1 mode must be enabled before the first frame is encoded, and a target bitrate must have already been specified to the encoder. Although this does not have to be the exact rate that will be used in the second pass, closer values may produce better results. The first call returns the size of the two-\/pass header data, along with some placeholder content, and sets the encoder into pass 1 mode implicitly. This call sets the encoder to pass 1 mode implicitly. Then, a subsequent call must be made after each call to \doxyref{th\-\_\-encode\-\_\-ycbcr\-\_\-in()}{p.}{group__encfuncs_gadbe7dd66b411c2d61ab8153c15308750} to retrieve the metrics for that frame. An additional, final call must be made to retrieve the summary data, containing such information as the total number of frames, etc. This must be stored in place of the placeholder data that was returned in the first call, before the frame metrics data. All of this data must be presented back to the encoder during pass 2 using \doxyref{T\-H\-\_\-\-E\-N\-C\-C\-T\-L\-\_\-2\-P\-A\-S\-S\-\_\-\-I\-N}{p.}{theoraenc_8h_a4a84f982cdd9a3e3c803a29bbde9df0b}.
|
157
157
|
|
158
158
|
|
159
|
-
\begin{DoxyParams}[1]{
|
160
|
-
\mbox{\tt out} & {\em $<$tt$>$char} & $\ast$\-\_\-buf\-:
|
159
|
+
\begin{DoxyParams}[1]{Parameters}
|
160
|
+
\mbox{\tt out} & {\em $<$tt$>$char} & $\ast$\-\_\-buf\-: Returns a pointer to internal storage containing the two pass metrics data. This storage is only valid until the next call, or until the encoder context is freed, and must be copied by the application. \\
|
161
161
|
\hline
|
162
162
|
\end{DoxyParams}
|
163
163
|
|
164
|
-
\begin{DoxyRetVals}{
|
165
|
-
{\em $>$=0} &
|
164
|
+
\begin{DoxyRetVals}{Return values}
|
165
|
+
{\em $>$=0} & The number of bytes of metric data available in the returned buffer. \\
|
166
166
|
\hline
|
167
|
-
{\em
|
167
|
+
{\em T\-H\-\_\-\-E\-F\-A\-U\-L\-T} & {\itshape \-\_\-enc\-\_\-ctx} or {\itshape \-\_\-buf} is {\ttfamily N\-U\-L\-L}. \\
|
168
168
|
\hline
|
169
|
-
{\em
|
169
|
+
{\em T\-H\-\_\-\-E\-I\-N\-V\-A\-L} & {\itshape \-\_\-buf\-\_\-sz} is not {\ttfamily sizeof(char $\ast$)}, no target bitrate has been set, or the first call was made after the first frame was submitted for encoding. \\
|
170
170
|
\hline
|
171
|
-
{\em
|
171
|
+
{\em T\-H\-\_\-\-E\-I\-M\-P\-L} & Not supported by this implementation. \\
|
172
172
|
\hline
|
173
173
|
\end{DoxyRetVals}
|
174
|
-
\index{theoraenc.\-h@{theoraenc.\-h}
|
175
|
-
\index{
|
176
|
-
\subsubsection[{
|
174
|
+
\index{theoraenc.\-h@{theoraenc.\-h}!T\-H\-\_\-\-E\-N\-C\-C\-T\-L\-\_\-\-G\-E\-T\-\_\-\-S\-P\-L\-E\-V\-E\-L@{T\-H\-\_\-\-E\-N\-C\-C\-T\-L\-\_\-\-G\-E\-T\-\_\-\-S\-P\-L\-E\-V\-E\-L}}
|
175
|
+
\index{T\-H\-\_\-\-E\-N\-C\-C\-T\-L\-\_\-\-G\-E\-T\-\_\-\-S\-P\-L\-E\-V\-E\-L@{T\-H\-\_\-\-E\-N\-C\-C\-T\-L\-\_\-\-G\-E\-T\-\_\-\-S\-P\-L\-E\-V\-E\-L}!theoraenc.h@{theoraenc.\-h}}
|
176
|
+
\subsubsection[{T\-H\-\_\-\-E\-N\-C\-C\-T\-L\-\_\-\-G\-E\-T\-\_\-\-S\-P\-L\-E\-V\-E\-L}]{\setlength{\rightskip}{0pt plus 5cm}\#define T\-H\-\_\-\-E\-N\-C\-C\-T\-L\-\_\-\-G\-E\-T\-\_\-\-S\-P\-L\-E\-V\-E\-L~(16)}\label{theoraenc_8h_a114b7c552f50b7b8d881a39489af1f61}
|
177
177
|
|
178
178
|
|
179
|
-
|
179
|
+
Gets the current speed level.
|
180
180
|
|
181
|
-
|
181
|
+
The default speed level may vary according to encoder implementation, but if this control code is not supported (it returns \doxyref{T\-H\-\_\-\-E\-I\-M\-P\-L}{p.}{codec_8h_a921c47accc17841f220af5a6afb79efe}), the default may be assumed to be the slowest available speed (0). The maximum encoding speed level may be implementation-\/ and encoding mode-\/specific, and can be obtained via \doxyref{T\-H\-\_\-\-E\-N\-C\-C\-T\-L\-\_\-\-G\-E\-T\-\_\-\-S\-P\-L\-E\-V\-E\-L\-\_\-\-M\-A\-X}{p.}{theoraenc_8h_a9baf5bdd206e80c78a8fd44687e89783}.
|
182
182
|
|
183
183
|
|
184
|
-
\begin{DoxyParams}[1]{
|
185
|
-
\mbox{\tt out} & {\em \-\_\-buf} & {\ttfamily int}\-:
|
184
|
+
\begin{DoxyParams}[1]{Parameters}
|
185
|
+
\mbox{\tt out} & {\em \-\_\-buf} & {\ttfamily int}\-: The current encoding speed level. 0 is slowest, larger values use less C\-P\-U. \\
|
186
186
|
\hline
|
187
187
|
\end{DoxyParams}
|
188
188
|
|
189
|
-
\begin{DoxyRetVals}{
|
190
|
-
{\em
|
189
|
+
\begin{DoxyRetVals}{Return values}
|
190
|
+
{\em T\-H\-\_\-\-E\-F\-A\-U\-L\-T} & {\itshape \-\_\-enc\-\_\-ctx} or {\itshape \-\_\-buf} is {\ttfamily N\-U\-L\-L}. \\
|
191
191
|
\hline
|
192
|
-
{\em
|
192
|
+
{\em T\-H\-\_\-\-E\-I\-N\-V\-A\-L} & {\itshape \-\_\-buf\-\_\-sz} is not {\ttfamily sizeof(int)}. \\
|
193
193
|
\hline
|
194
|
-
{\em
|
194
|
+
{\em T\-H\-\_\-\-E\-I\-M\-P\-L} & Not supported by this implementation in the current encoding mode. \\
|
195
195
|
\hline
|
196
196
|
\end{DoxyRetVals}
|
197
|
-
\index{theoraenc.\-h@{theoraenc.\-h}
|
198
|
-
\index{
|
199
|
-
\subsubsection[{
|
197
|
+
\index{theoraenc.\-h@{theoraenc.\-h}!T\-H\-\_\-\-E\-N\-C\-C\-T\-L\-\_\-\-G\-E\-T\-\_\-\-S\-P\-L\-E\-V\-E\-L\-\_\-\-M\-A\-X@{T\-H\-\_\-\-E\-N\-C\-C\-T\-L\-\_\-\-G\-E\-T\-\_\-\-S\-P\-L\-E\-V\-E\-L\-\_\-\-M\-A\-X}}
|
198
|
+
\index{T\-H\-\_\-\-E\-N\-C\-C\-T\-L\-\_\-\-G\-E\-T\-\_\-\-S\-P\-L\-E\-V\-E\-L\-\_\-\-M\-A\-X@{T\-H\-\_\-\-E\-N\-C\-C\-T\-L\-\_\-\-G\-E\-T\-\_\-\-S\-P\-L\-E\-V\-E\-L\-\_\-\-M\-A\-X}!theoraenc.h@{theoraenc.\-h}}
|
199
|
+
\subsubsection[{T\-H\-\_\-\-E\-N\-C\-C\-T\-L\-\_\-\-G\-E\-T\-\_\-\-S\-P\-L\-E\-V\-E\-L\-\_\-\-M\-A\-X}]{\setlength{\rightskip}{0pt plus 5cm}\#define T\-H\-\_\-\-E\-N\-C\-C\-T\-L\-\_\-\-G\-E\-T\-\_\-\-S\-P\-L\-E\-V\-E\-L\-\_\-\-M\-A\-X~(12)}\label{theoraenc_8h_a9baf5bdd206e80c78a8fd44687e89783}
|
200
200
|
|
201
201
|
|
202
|
-
|
202
|
+
Gets the maximum speed level.
|
203
203
|
|
204
|
-
|
204
|
+
Higher speed levels favor quicker encoding over better quality per bit. Depending on the encoding mode, and the internal algorithms used, quality may actually improve, but in this case bitrate will also likely increase. In any case, overall rate/distortion performance will probably decrease. The maximum value, and the meaning of each value, may change depending on the current encoding mode (V\-B\-R vs. constant quality, etc.).
|
205
205
|
|
206
206
|
|
207
|
-
\begin{DoxyParams}[1]{
|
208
|
-
\mbox{\tt out} & {\em \-\_\-buf} & {\ttfamily int}\-:
|
207
|
+
\begin{DoxyParams}[1]{Parameters}
|
208
|
+
\mbox{\tt out} & {\em \-\_\-buf} & {\ttfamily int}\-: The maximum encoding speed level. \\
|
209
209
|
\hline
|
210
210
|
\end{DoxyParams}
|
211
211
|
|
212
|
-
\begin{DoxyRetVals}{
|
213
|
-
{\em
|
212
|
+
\begin{DoxyRetVals}{Return values}
|
213
|
+
{\em T\-H\-\_\-\-E\-F\-A\-U\-L\-T} & {\itshape \-\_\-enc\-\_\-ctx} or {\itshape \-\_\-buf} is {\ttfamily N\-U\-L\-L}. \\
|
214
214
|
\hline
|
215
|
-
{\em
|
215
|
+
{\em T\-H\-\_\-\-E\-I\-N\-V\-A\-L} & {\itshape \-\_\-buf\-\_\-sz} is not {\ttfamily sizeof(int)}. \\
|
216
216
|
\hline
|
217
|
-
{\em
|
217
|
+
{\em T\-H\-\_\-\-E\-I\-M\-P\-L} & Not supported by this implementation in the current encoding mode. \\
|
218
218
|
\hline
|
219
219
|
\end{DoxyRetVals}
|
220
|
-
\index{theoraenc.\-h@{theoraenc.\-h}
|
221
|
-
\index{
|
222
|
-
\subsubsection[{
|
220
|
+
\index{theoraenc.\-h@{theoraenc.\-h}!T\-H\-\_\-\-E\-N\-C\-C\-T\-L\-\_\-\-S\-E\-T\-\_\-\-B\-I\-T\-R\-A\-T\-E@{T\-H\-\_\-\-E\-N\-C\-C\-T\-L\-\_\-\-S\-E\-T\-\_\-\-B\-I\-T\-R\-A\-T\-E}}
|
221
|
+
\index{T\-H\-\_\-\-E\-N\-C\-C\-T\-L\-\_\-\-S\-E\-T\-\_\-\-B\-I\-T\-R\-A\-T\-E@{T\-H\-\_\-\-E\-N\-C\-C\-T\-L\-\_\-\-S\-E\-T\-\_\-\-B\-I\-T\-R\-A\-T\-E}!theoraenc.h@{theoraenc.\-h}}
|
222
|
+
\subsubsection[{T\-H\-\_\-\-E\-N\-C\-C\-T\-L\-\_\-\-S\-E\-T\-\_\-\-B\-I\-T\-R\-A\-T\-E}]{\setlength{\rightskip}{0pt plus 5cm}\#define T\-H\-\_\-\-E\-N\-C\-C\-T\-L\-\_\-\-S\-E\-T\-\_\-\-B\-I\-T\-R\-A\-T\-E~(30)}\label{theoraenc_8h_a9b969df55ecad1acd1ae207fad42592e}
|
223
223
|
|
224
224
|
|
225
|
-
|
225
|
+
Sets the current encoding bitrate.
|
226
226
|
|
227
|
-
|
227
|
+
Once a bitrate is set, the encoder must use a rate-\/controlled mode for all future frames (this restriction may be relaxed in a future version). If it is set before the headers are emitted, the target bitrate encoded in them will be updated. Due to the buffer delay, the exact bitrate of each section of the encode is not guaranteed. The encoder may have already used more bits than allowed for the frames it has encoded, expecting to make them up in future frames, or it may have used fewer, holding the excess in reserve. The exact transition between the two bitrates is not well-\/defined by this A\-P\-I, but may be affected by flags set with \doxyref{T\-H\-\_\-\-E\-N\-C\-C\-T\-L\-\_\-\-S\-E\-T\-\_\-\-R\-A\-T\-E\-\_\-\-F\-L\-A\-G\-S}{p.}{theoraenc_8h_a026502e08fbe1af0a1063f39bd18129c}. After a number of frames equal to the buffer delay, one may expect further output to average at the target bitrate.
|
228
228
|
|
229
229
|
|
230
|
-
\begin{DoxyParams}[1]{
|
231
|
-
\mbox{\tt in} & {\em \-\_\-buf} & {\ttfamily long}\-:
|
230
|
+
\begin{DoxyParams}[1]{Parameters}
|
231
|
+
\mbox{\tt in} & {\em \-\_\-buf} & {\ttfamily long}\-: The new target bitrate, in bits per second. \\
|
232
232
|
\hline
|
233
233
|
\end{DoxyParams}
|
234
234
|
|
235
|
-
\begin{DoxyRetVals}{
|
236
|
-
{\em 0} &
|
235
|
+
\begin{DoxyRetVals}{Return values}
|
236
|
+
{\em 0} & Success. \\
|
237
237
|
\hline
|
238
|
-
{\em
|
238
|
+
{\em T\-H\-\_\-\-E\-F\-A\-U\-L\-T} & {\itshape \-\_\-enc\-\_\-ctx} or {\itshape \-\_\-buf} is {\ttfamily N\-U\-L\-L}. \\
|
239
239
|
\hline
|
240
|
-
{\em
|
240
|
+
{\em T\-H\-\_\-\-E\-I\-N\-V\-A\-L} & The target bitrate was not positive. \\
|
241
241
|
\hline
|
242
|
-
{\em
|
242
|
+
{\em T\-H\-\_\-\-E\-I\-M\-P\-L} & Not supported by this implementation. \\
|
243
243
|
\hline
|
244
244
|
\end{DoxyRetVals}
|
245
|
-
\index{theoraenc.\-h@{theoraenc.\-h}
|
246
|
-
\index{
|
247
|
-
\subsubsection[{
|
245
|
+
\index{theoraenc.\-h@{theoraenc.\-h}!T\-H\-\_\-\-E\-N\-C\-C\-T\-L\-\_\-\-S\-E\-T\-\_\-\-D\-U\-P\-\_\-\-C\-O\-U\-N\-T@{T\-H\-\_\-\-E\-N\-C\-C\-T\-L\-\_\-\-S\-E\-T\-\_\-\-D\-U\-P\-\_\-\-C\-O\-U\-N\-T}}
|
246
|
+
\index{T\-H\-\_\-\-E\-N\-C\-C\-T\-L\-\_\-\-S\-E\-T\-\_\-\-D\-U\-P\-\_\-\-C\-O\-U\-N\-T@{T\-H\-\_\-\-E\-N\-C\-C\-T\-L\-\_\-\-S\-E\-T\-\_\-\-D\-U\-P\-\_\-\-C\-O\-U\-N\-T}!theoraenc.h@{theoraenc.\-h}}
|
247
|
+
\subsubsection[{T\-H\-\_\-\-E\-N\-C\-C\-T\-L\-\_\-\-S\-E\-T\-\_\-\-D\-U\-P\-\_\-\-C\-O\-U\-N\-T}]{\setlength{\rightskip}{0pt plus 5cm}\#define T\-H\-\_\-\-E\-N\-C\-C\-T\-L\-\_\-\-S\-E\-T\-\_\-\-D\-U\-P\-\_\-\-C\-O\-U\-N\-T~(18)}\label{theoraenc_8h_a8bb9b05471c42a09f8684a2583b8a1df}
|
248
248
|
|
249
249
|
|
250
|
-
|
250
|
+
Sets the number of duplicates of the next frame to produce.
|
251
251
|
|
252
|
-
|
252
|
+
Although libtheora can encode duplicate frames very cheaply, it costs some amount of C\-P\-U to detect them, and a run of duplicates cannot span a keyframe boundary. This control code tells the encoder to produce the specified number of extra duplicates of the next frame. This allows the encoder to make smarter keyframe placement decisions and rate control decisions, and reduces C\-P\-U usage as well, when compared to just submitting the same frame for encoding multiple times. This setting only applies to the next frame submitted for encoding. You M\-U\-S\-T call \doxyref{th\-\_\-encode\-\_\-packetout()}{p.}{group__encfuncs_ga96d8ac1dda53187455352f99bbb5b04b} repeatedly until it returns 0, or the extra duplicate frames will be lost.
|
253
253
|
|
254
254
|
|
255
|
-
\begin{DoxyParams}[1]{
|
256
|
-
\mbox{\tt in} & {\em \-\_\-buf} & {\ttfamily int}\-:
|
255
|
+
\begin{DoxyParams}[1]{Parameters}
|
256
|
+
\mbox{\tt in} & {\em \-\_\-buf} & {\ttfamily int}\-: The number of duplicates to produce. If this is negative or zero, no duplicates will be produced. \\
|
257
257
|
\hline
|
258
258
|
\end{DoxyParams}
|
259
259
|
|
260
|
-
\begin{DoxyRetVals}{
|
261
|
-
{\em
|
260
|
+
\begin{DoxyRetVals}{Return values}
|
261
|
+
{\em T\-H\-\_\-\-E\-F\-A\-U\-L\-T} & {\itshape \-\_\-enc\-\_\-ctx} or {\itshape \-\_\-buf} is {\ttfamily N\-U\-L\-L}. \\
|
262
262
|
\hline
|
263
|
-
{\em
|
263
|
+
{\em T\-H\-\_\-\-E\-I\-N\-V\-A\-L} & {\itshape \-\_\-buf\-\_\-sz} is not {\ttfamily sizeof(int)}, or the number of duplicates is greater than or equal to the maximum keyframe interval. In the latter case, N\-O duplicate frames will be produced. You must ensure that the maximum keyframe interval is set larger than the maximum number of duplicates you will ever wish to insert prior to encoding. \\
|
264
264
|
\hline
|
265
|
-
{\em
|
265
|
+
{\em T\-H\-\_\-\-E\-I\-M\-P\-L} & Not supported by this implementation in the current encoding mode. \\
|
266
266
|
\hline
|
267
267
|
\end{DoxyRetVals}
|
268
|
-
\index{theoraenc.\-h@{theoraenc.\-h}
|
269
|
-
\index{
|
270
|
-
\subsubsection[{
|
268
|
+
\index{theoraenc.\-h@{theoraenc.\-h}!T\-H\-\_\-\-E\-N\-C\-C\-T\-L\-\_\-\-S\-E\-T\-\_\-\-H\-U\-F\-F\-M\-A\-N\-\_\-\-C\-O\-D\-E\-S@{T\-H\-\_\-\-E\-N\-C\-C\-T\-L\-\_\-\-S\-E\-T\-\_\-\-H\-U\-F\-F\-M\-A\-N\-\_\-\-C\-O\-D\-E\-S}}
|
269
|
+
\index{T\-H\-\_\-\-E\-N\-C\-C\-T\-L\-\_\-\-S\-E\-T\-\_\-\-H\-U\-F\-F\-M\-A\-N\-\_\-\-C\-O\-D\-E\-S@{T\-H\-\_\-\-E\-N\-C\-C\-T\-L\-\_\-\-S\-E\-T\-\_\-\-H\-U\-F\-F\-M\-A\-N\-\_\-\-C\-O\-D\-E\-S}!theoraenc.h@{theoraenc.\-h}}
|
270
|
+
\subsubsection[{T\-H\-\_\-\-E\-N\-C\-C\-T\-L\-\_\-\-S\-E\-T\-\_\-\-H\-U\-F\-F\-M\-A\-N\-\_\-\-C\-O\-D\-E\-S}]{\setlength{\rightskip}{0pt plus 5cm}\#define T\-H\-\_\-\-E\-N\-C\-C\-T\-L\-\_\-\-S\-E\-T\-\_\-\-H\-U\-F\-F\-M\-A\-N\-\_\-\-C\-O\-D\-E\-S~(0)}\label{theoraenc_8h_a0165348788e560a19b7c61ae8f0c2283}
|
271
271
|
|
272
272
|
|
273
|
-
|
273
|
+
Sets the Huffman tables to use.
|
274
274
|
|
275
|
-
|
275
|
+
The tables are copied, not stored by reference, so they can be freed after this call. {\ttfamily N\-U\-L\-L} may be specified to revert to the default tables.
|
276
276
|
|
277
277
|
|
278
|
-
\begin{DoxyParams}[1]{
|
279
|
-
\mbox{\tt in} & {\em \-\_\-buf} & {\ttfamily \doxyref{th\-\_\-huff\-\_\-code}{p.}{structth__huff__code}[\doxyref{
|
278
|
+
\begin{DoxyParams}[1]{Parameters}
|
279
|
+
\mbox{\tt in} & {\em \-\_\-buf} & {\ttfamily \doxyref{th\-\_\-huff\-\_\-code}{p.}{structth__huff__code}[\doxyref{T\-H\-\_\-\-N\-H\-U\-F\-F\-M\-A\-N\-\_\-\-T\-A\-B\-L\-E\-S}{p.}{codec_8h_a49bf449eae33c5320f0c308f32c6ae42}][\doxyref{T\-H\-\_\-\-N\-D\-C\-T\-\_\-\-T\-O\-K\-E\-N\-S}{p.}{codec_8h_a2a44f48084e76a58cae48fb5d47cd422}]} \\
|
280
280
|
\hline
|
281
281
|
\end{DoxyParams}
|
282
282
|
|
283
|
-
\begin{DoxyRetVals}{
|
284
|
-
{\em
|
283
|
+
\begin{DoxyRetVals}{Return values}
|
284
|
+
{\em T\-H\-\_\-\-E\-F\-A\-U\-L\-T} & {\itshape \-\_\-enc\-\_\-ctx} is {\ttfamily N\-U\-L\-L}. \\
|
285
285
|
\hline
|
286
|
-
{\em
|
286
|
+
{\em T\-H\-\_\-\-E\-I\-N\-V\-A\-L} & Encoding has already begun or one or more of the given tables is not full or prefix-\/free, {\itshape \-\_\-buf} is {\ttfamily N\-U\-L\-L} and {\itshape \-\_\-buf\-\_\-sz} is not zero, or {\itshape \-\_\-buf} is non-\/{\ttfamily N\-U\-L\-L} and {\itshape \-\_\-buf\-\_\-sz} is not {\ttfamily sizeof(\doxyref{th\-\_\-huff\-\_\-code}{p.}{structth__huff__code})$\ast$\doxyref{T\-H\-\_\-\-N\-H\-U\-F\-F\-M\-A\-N\-\_\-\-T\-A\-B\-L\-E\-S}{p.}{codec_8h_a49bf449eae33c5320f0c308f32c6ae42}$\ast$\doxyref{T\-H\-\_\-\-N\-D\-C\-T\-\_\-\-T\-O\-K\-E\-N\-S}{p.}{codec_8h_a2a44f48084e76a58cae48fb5d47cd422}}. \\
|
287
287
|
\hline
|
288
|
-
{\em
|
288
|
+
{\em T\-H\-\_\-\-E\-I\-M\-P\-L} & Not supported by this implementation. \\
|
289
289
|
\hline
|
290
290
|
\end{DoxyRetVals}
|
291
|
-
\index{theoraenc.\-h@{theoraenc.\-h}
|
292
|
-
\index{
|
293
|
-
\subsubsection[{
|
291
|
+
\index{theoraenc.\-h@{theoraenc.\-h}!T\-H\-\_\-\-E\-N\-C\-C\-T\-L\-\_\-\-S\-E\-T\-\_\-\-K\-E\-Y\-F\-R\-A\-M\-E\-\_\-\-F\-R\-E\-Q\-U\-E\-N\-C\-Y\-\_\-\-F\-O\-R\-C\-E@{T\-H\-\_\-\-E\-N\-C\-C\-T\-L\-\_\-\-S\-E\-T\-\_\-\-K\-E\-Y\-F\-R\-A\-M\-E\-\_\-\-F\-R\-E\-Q\-U\-E\-N\-C\-Y\-\_\-\-F\-O\-R\-C\-E}}
|
292
|
+
\index{T\-H\-\_\-\-E\-N\-C\-C\-T\-L\-\_\-\-S\-E\-T\-\_\-\-K\-E\-Y\-F\-R\-A\-M\-E\-\_\-\-F\-R\-E\-Q\-U\-E\-N\-C\-Y\-\_\-\-F\-O\-R\-C\-E@{T\-H\-\_\-\-E\-N\-C\-C\-T\-L\-\_\-\-S\-E\-T\-\_\-\-K\-E\-Y\-F\-R\-A\-M\-E\-\_\-\-F\-R\-E\-Q\-U\-E\-N\-C\-Y\-\_\-\-F\-O\-R\-C\-E}!theoraenc.h@{theoraenc.\-h}}
|
293
|
+
\subsubsection[{T\-H\-\_\-\-E\-N\-C\-C\-T\-L\-\_\-\-S\-E\-T\-\_\-\-K\-E\-Y\-F\-R\-A\-M\-E\-\_\-\-F\-R\-E\-Q\-U\-E\-N\-C\-Y\-\_\-\-F\-O\-R\-C\-E}]{\setlength{\rightskip}{0pt plus 5cm}\#define T\-H\-\_\-\-E\-N\-C\-C\-T\-L\-\_\-\-S\-E\-T\-\_\-\-K\-E\-Y\-F\-R\-A\-M\-E\-\_\-\-F\-R\-E\-Q\-U\-E\-N\-C\-Y\-\_\-\-F\-O\-R\-C\-E~(4)}\label{theoraenc_8h_a27e755e15b4b5604c54974b304037a49}
|
294
294
|
|
295
295
|
|
296
|
-
|
296
|
+
Sets the maximum distance between key frames.
|
297
297
|
|
298
|
-
|
298
|
+
This can be changed during an encode, but will be bounded by {\ttfamily 1$<$$<$\doxyref{th\-\_\-info\-::keyframe\-\_\-granule\-\_\-shift}{p.}{structth__info_a693ca4ab11fbc0c3f32594b4bb8766ed}}. If it is set before encoding begins, \doxyref{th\-\_\-info\-::keyframe\-\_\-granule\-\_\-shift}{p.}{structth__info_a693ca4ab11fbc0c3f32594b4bb8766ed} will be enlarged appropriately.
|
299
299
|
|
300
300
|
|
301
|
-
\begin{DoxyParams}[1]{
|
302
|
-
\mbox{\tt in} & {\em \-\_\-buf} & {\ttfamily ogg\-\_\-uint32\-\_\-t}\-:
|
301
|
+
\begin{DoxyParams}[1]{Parameters}
|
302
|
+
\mbox{\tt in} & {\em \-\_\-buf} & {\ttfamily ogg\-\_\-uint32\-\_\-t}\-: The maximum distance between key frames. \\
|
303
303
|
\hline
|
304
|
-
\mbox{\tt out} & {\em \-\_\-buf} & {\ttfamily ogg\-\_\-uint32\-\_\-t}\-:
|
304
|
+
\mbox{\tt out} & {\em \-\_\-buf} & {\ttfamily ogg\-\_\-uint32\-\_\-t}\-: The actual maximum distance set. \\
|
305
305
|
\hline
|
306
306
|
\end{DoxyParams}
|
307
307
|
|
308
|
-
\begin{DoxyRetVals}{
|
309
|
-
{\em
|
308
|
+
\begin{DoxyRetVals}{Return values}
|
309
|
+
{\em T\-H\-\_\-\-E\-F\-A\-U\-L\-T} & {\itshape \-\_\-enc\-\_\-ctx} or {\itshape \-\_\-buf} is {\ttfamily N\-U\-L\-L}. \\
|
310
310
|
\hline
|
311
|
-
{\em
|
311
|
+
{\em T\-H\-\_\-\-E\-I\-N\-V\-A\-L} & {\itshape \-\_\-buf\-\_\-sz} is not {\ttfamily sizeof(ogg\-\_\-uint32\-\_\-t)}. \\
|
312
312
|
\hline
|
313
|
-
{\em
|
313
|
+
{\em T\-H\-\_\-\-E\-I\-M\-P\-L} & Not supported by this implementation. \\
|
314
314
|
\hline
|
315
315
|
\end{DoxyRetVals}
|
316
|
-
\index{theoraenc.\-h@{theoraenc.\-h}
|
317
|
-
\index{
|
318
|
-
\subsubsection[{
|
316
|
+
\index{theoraenc.\-h@{theoraenc.\-h}!T\-H\-\_\-\-E\-N\-C\-C\-T\-L\-\_\-\-S\-E\-T\-\_\-\-Q\-U\-A\-L\-I\-T\-Y@{T\-H\-\_\-\-E\-N\-C\-C\-T\-L\-\_\-\-S\-E\-T\-\_\-\-Q\-U\-A\-L\-I\-T\-Y}}
|
317
|
+
\index{T\-H\-\_\-\-E\-N\-C\-C\-T\-L\-\_\-\-S\-E\-T\-\_\-\-Q\-U\-A\-L\-I\-T\-Y@{T\-H\-\_\-\-E\-N\-C\-C\-T\-L\-\_\-\-S\-E\-T\-\_\-\-Q\-U\-A\-L\-I\-T\-Y}!theoraenc.h@{theoraenc.\-h}}
|
318
|
+
\subsubsection[{T\-H\-\_\-\-E\-N\-C\-C\-T\-L\-\_\-\-S\-E\-T\-\_\-\-Q\-U\-A\-L\-I\-T\-Y}]{\setlength{\rightskip}{0pt plus 5cm}\#define T\-H\-\_\-\-E\-N\-C\-C\-T\-L\-\_\-\-S\-E\-T\-\_\-\-Q\-U\-A\-L\-I\-T\-Y~(28)}\label{theoraenc_8h_aac087983fa951b9148c9db6bc2e81ef4}
|
319
319
|
|
320
320
|
|
321
|
-
|
321
|
+
Sets the current encoding quality.
|
322
322
|
|
323
|
-
|
323
|
+
This is only valid so long as no bitrate has been specified, either through the \doxyref{th\-\_\-info}{p.}{structth__info} struct used to initialize the encoder or through \doxyref{T\-H\-\_\-\-E\-N\-C\-C\-T\-L\-\_\-\-S\-E\-T\-\_\-\-B\-I\-T\-R\-A\-T\-E}{p.}{theoraenc_8h_a9b969df55ecad1acd1ae207fad42592e} (this restriction may be relaxed in a future version). If it is set before the headers are emitted, the target quality encoded in them will be updated.
|
324
324
|
|
325
325
|
|
326
|
-
\begin{DoxyParams}[1]{
|
327
|
-
\mbox{\tt in} & {\em \-\_\-buf} & {\ttfamily int}\-:
|
326
|
+
\begin{DoxyParams}[1]{Parameters}
|
327
|
+
\mbox{\tt in} & {\em \-\_\-buf} & {\ttfamily int}\-: The new target quality, in the range 0...63, inclusive. \\
|
328
328
|
\hline
|
329
329
|
\end{DoxyParams}
|
330
330
|
|
331
|
-
\begin{DoxyRetVals}{
|
332
|
-
{\em 0} &
|
331
|
+
\begin{DoxyRetVals}{Return values}
|
332
|
+
{\em 0} & Success. \\
|
333
333
|
\hline
|
334
|
-
{\em
|
334
|
+
{\em T\-H\-\_\-\-E\-F\-A\-U\-L\-T} & {\itshape \-\_\-enc\-\_\-ctx} or {\itshape \-\_\-buf} is {\ttfamily N\-U\-L\-L}. \\
|
335
335
|
\hline
|
336
|
-
{\em
|
336
|
+
{\em T\-H\-\_\-\-E\-I\-N\-V\-A\-L} & A target bitrate has already been specified, or the quality index was not in the range 0...63. \\
|
337
337
|
\hline
|
338
|
-
{\em
|
338
|
+
{\em T\-H\-\_\-\-E\-I\-M\-P\-L} & Not supported by this implementation. \\
|
339
339
|
\hline
|
340
340
|
\end{DoxyRetVals}
|
341
|
-
\index{theoraenc.\-h@{theoraenc.\-h}
|
342
|
-
\index{
|
343
|
-
\subsubsection[{
|
341
|
+
\index{theoraenc.\-h@{theoraenc.\-h}!T\-H\-\_\-\-E\-N\-C\-C\-T\-L\-\_\-\-S\-E\-T\-\_\-\-Q\-U\-A\-N\-T\-\_\-\-P\-A\-R\-A\-M\-S@{T\-H\-\_\-\-E\-N\-C\-C\-T\-L\-\_\-\-S\-E\-T\-\_\-\-Q\-U\-A\-N\-T\-\_\-\-P\-A\-R\-A\-M\-S}}
|
342
|
+
\index{T\-H\-\_\-\-E\-N\-C\-C\-T\-L\-\_\-\-S\-E\-T\-\_\-\-Q\-U\-A\-N\-T\-\_\-\-P\-A\-R\-A\-M\-S@{T\-H\-\_\-\-E\-N\-C\-C\-T\-L\-\_\-\-S\-E\-T\-\_\-\-Q\-U\-A\-N\-T\-\_\-\-P\-A\-R\-A\-M\-S}!theoraenc.h@{theoraenc.\-h}}
|
343
|
+
\subsubsection[{T\-H\-\_\-\-E\-N\-C\-C\-T\-L\-\_\-\-S\-E\-T\-\_\-\-Q\-U\-A\-N\-T\-\_\-\-P\-A\-R\-A\-M\-S}]{\setlength{\rightskip}{0pt plus 5cm}\#define T\-H\-\_\-\-E\-N\-C\-C\-T\-L\-\_\-\-S\-E\-T\-\_\-\-Q\-U\-A\-N\-T\-\_\-\-P\-A\-R\-A\-M\-S~(2)}\label{theoraenc_8h_a3befcdd66678f8d27034f9c4b16d1b9c}
|
344
344
|
|
345
345
|
|
346
|
-
|
346
|
+
Sets the quantization parameters to use.
|
347
347
|
|
348
|
-
|
348
|
+
The parameters are copied, not stored by reference, so they can be freed after this call. {\ttfamily N\-U\-L\-L} may be specified to revert to the default parameters.
|
349
349
|
|
350
350
|
|
351
|
-
\begin{DoxyParams}[1]{
|
351
|
+
\begin{DoxyParams}[1]{Parameters}
|
352
352
|
\mbox{\tt in} & {\em \-\_\-buf} & \doxyref{th\-\_\-quant\-\_\-info}{p.}{structth__quant__info} \\
|
353
353
|
\hline
|
354
354
|
\end{DoxyParams}
|
355
355
|
|
356
|
-
\begin{DoxyRetVals}{
|
357
|
-
{\em
|
356
|
+
\begin{DoxyRetVals}{Return values}
|
357
|
+
{\em T\-H\-\_\-\-E\-F\-A\-U\-L\-T} & {\itshape \-\_\-enc\-\_\-ctx} is {\ttfamily N\-U\-L\-L}. \\
|
358
358
|
\hline
|
359
|
-
{\em
|
359
|
+
{\em T\-H\-\_\-\-E\-I\-N\-V\-A\-L} & Encoding has already begun, {\itshape \-\_\-buf} is {\ttfamily N\-U\-L\-L} and {\itshape \-\_\-buf\-\_\-sz} is not zero, or {\itshape \-\_\-buf} is non-\/{\ttfamily N\-U\-L\-L} and {\itshape \-\_\-buf\-\_\-sz} is not {\ttfamily sizeof(\doxyref{th\-\_\-quant\-\_\-info}{p.}{structth__quant__info})}. \\
|
360
360
|
\hline
|
361
|
-
{\em
|
361
|
+
{\em T\-H\-\_\-\-E\-I\-M\-P\-L} & Not supported by this implementation. \\
|
362
362
|
\hline
|
363
363
|
\end{DoxyRetVals}
|
364
|
-
\index{theoraenc.\-h@{theoraenc.\-h}
|
365
|
-
\index{
|
366
|
-
\subsubsection[{
|
364
|
+
\index{theoraenc.\-h@{theoraenc.\-h}!T\-H\-\_\-\-E\-N\-C\-C\-T\-L\-\_\-\-S\-E\-T\-\_\-\-R\-A\-T\-E\-\_\-\-B\-U\-F\-F\-E\-R@{T\-H\-\_\-\-E\-N\-C\-C\-T\-L\-\_\-\-S\-E\-T\-\_\-\-R\-A\-T\-E\-\_\-\-B\-U\-F\-F\-E\-R}}
|
365
|
+
\index{T\-H\-\_\-\-E\-N\-C\-C\-T\-L\-\_\-\-S\-E\-T\-\_\-\-R\-A\-T\-E\-\_\-\-B\-U\-F\-F\-E\-R@{T\-H\-\_\-\-E\-N\-C\-C\-T\-L\-\_\-\-S\-E\-T\-\_\-\-R\-A\-T\-E\-\_\-\-B\-U\-F\-F\-E\-R}!theoraenc.h@{theoraenc.\-h}}
|
366
|
+
\subsubsection[{T\-H\-\_\-\-E\-N\-C\-C\-T\-L\-\_\-\-S\-E\-T\-\_\-\-R\-A\-T\-E\-\_\-\-B\-U\-F\-F\-E\-R}]{\setlength{\rightskip}{0pt plus 5cm}\#define T\-H\-\_\-\-E\-N\-C\-C\-T\-L\-\_\-\-S\-E\-T\-\_\-\-R\-A\-T\-E\-\_\-\-B\-U\-F\-F\-E\-R~(22)}\label{theoraenc_8h_aaefb515876b2a180ad5c3120fc584a52}
|
367
367
|
|
368
368
|
|
369
|
-
|
369
|
+
Sets the size of the bitrate management bit reservoir as a function of number of frames.
|
370
370
|
|
371
|
-
|
371
|
+
The reservoir size affects how quickly bitrate management reacts to instantaneous changes in the video complexity. Larger reservoirs react more slowly, and provide better overall quality, but require more buffering by a client, adding more latency to live streams. By default, libtheora sets the reservoir to the maximum distance between keyframes, subject to a minimum and maximum limit. This call may be used to increase or decrease the reservoir, increasing or decreasing the allowed temporary variance in bitrate. An implementation may impose some limits on the size of a reservoir it can handle, in which case the actual reservoir size may not be exactly what was requested. The actual value set will be returned.
|
372
372
|
|
373
373
|
|
374
|
-
\begin{DoxyParams}[1]{
|
375
|
-
\mbox{\tt in} & {\em \-\_\-buf} & {\ttfamily int}\-:
|
374
|
+
\begin{DoxyParams}[1]{Parameters}
|
375
|
+
\mbox{\tt in} & {\em \-\_\-buf} & {\ttfamily int}\-: Requested size of the reservoir measured in frames. \\
|
376
376
|
\hline
|
377
|
-
\mbox{\tt out} & {\em \-\_\-buf} & {\ttfamily int}\-:
|
377
|
+
\mbox{\tt out} & {\em \-\_\-buf} & {\ttfamily int}\-: The actual size of the reservoir set. \\
|
378
378
|
\hline
|
379
379
|
\end{DoxyParams}
|
380
380
|
|
381
|
-
\begin{DoxyRetVals}{
|
382
|
-
{\em
|
381
|
+
\begin{DoxyRetVals}{Return values}
|
382
|
+
{\em T\-H\-\_\-\-E\-F\-A\-U\-L\-T} & {\itshape \-\_\-enc\-\_\-ctx} or {\itshape \-\_\-buf} is {\ttfamily N\-U\-L\-L}. \\
|
383
383
|
\hline
|
384
|
-
{\em
|
384
|
+
{\em T\-H\-\_\-\-E\-I\-N\-V\-A\-L} & {\itshape \-\_\-buf\-\_\-sz} is not {\ttfamily sizeof(int)}, or rate control is not enabled. The buffer has an implementation defined minimum and maximum size and the value in \-\_\-buf will be adjusted to match the actual value set. \\
|
385
385
|
\hline
|
386
|
-
{\em
|
386
|
+
{\em T\-H\-\_\-\-E\-I\-M\-P\-L} & Not supported by this implementation in the current encoding mode. \\
|
387
387
|
\hline
|
388
388
|
\end{DoxyRetVals}
|
389
|
-
\index{theoraenc.\-h@{theoraenc.\-h}
|
390
|
-
\index{
|
391
|
-
\subsubsection[{
|
389
|
+
\index{theoraenc.\-h@{theoraenc.\-h}!T\-H\-\_\-\-E\-N\-C\-C\-T\-L\-\_\-\-S\-E\-T\-\_\-\-R\-A\-T\-E\-\_\-\-F\-L\-A\-G\-S@{T\-H\-\_\-\-E\-N\-C\-C\-T\-L\-\_\-\-S\-E\-T\-\_\-\-R\-A\-T\-E\-\_\-\-F\-L\-A\-G\-S}}
|
390
|
+
\index{T\-H\-\_\-\-E\-N\-C\-C\-T\-L\-\_\-\-S\-E\-T\-\_\-\-R\-A\-T\-E\-\_\-\-F\-L\-A\-G\-S@{T\-H\-\_\-\-E\-N\-C\-C\-T\-L\-\_\-\-S\-E\-T\-\_\-\-R\-A\-T\-E\-\_\-\-F\-L\-A\-G\-S}!theoraenc.h@{theoraenc.\-h}}
|
391
|
+
\subsubsection[{T\-H\-\_\-\-E\-N\-C\-C\-T\-L\-\_\-\-S\-E\-T\-\_\-\-R\-A\-T\-E\-\_\-\-F\-L\-A\-G\-S}]{\setlength{\rightskip}{0pt plus 5cm}\#define T\-H\-\_\-\-E\-N\-C\-C\-T\-L\-\_\-\-S\-E\-T\-\_\-\-R\-A\-T\-E\-\_\-\-F\-L\-A\-G\-S~(20)}\label{theoraenc_8h_a026502e08fbe1af0a1063f39bd18129c}
|
392
392
|
|
393
393
|
|
394
|
-
|
394
|
+
Modifies the default bitrate management behavior.
|
395
395
|
|
396
|
-
|
396
|
+
Use to allow or disallow frame dropping, and to enable or disable capping bit reservoir overflows and underflows. See \doxyref{the list of available flags}{p.}{theoraenc_8h_encctlcodes}. The flags are set by default to {\ttfamily \doxyref{T\-H\-\_\-\-R\-A\-T\-E\-C\-T\-L\-\_\-\-D\-R\-O\-P\-\_\-\-F\-R\-A\-M\-E\-S}{p.}{theoraenc_8h_a3e7fab53b902b54135522ba286f45e33}$|$\doxyref{T\-H\-\_\-\-R\-A\-T\-E\-C\-T\-L\-\_\-\-C\-A\-P\-\_\-\-O\-V\-E\-R\-F\-L\-O\-W}{p.}{theoraenc_8h_a32f9983b344a431334493cefb0b9337c}}.
|
397
397
|
|
398
398
|
|
399
|
-
\begin{DoxyParams}[1]{
|
400
|
-
\mbox{\tt in} & {\em \-\_\-buf} & {\ttfamily int}\-:
|
399
|
+
\begin{DoxyParams}[1]{Parameters}
|
400
|
+
\mbox{\tt in} & {\em \-\_\-buf} & {\ttfamily int}\-: Any combination of \doxyref{the available flags}{p.}{theoraenc_8h_ratectlflags}\-:
|
401
401
|
\begin{DoxyItemize}
|
402
|
-
\item \doxyref{
|
403
|
-
\item \doxyref{
|
404
|
-
\item \doxyref{
|
402
|
+
\item \doxyref{T\-H\-\_\-\-R\-A\-T\-E\-C\-T\-L\-\_\-\-D\-R\-O\-P\-\_\-\-F\-R\-A\-M\-E\-S}{p.}{theoraenc_8h_a3e7fab53b902b54135522ba286f45e33}\-: Enable frame dropping.
|
403
|
+
\item \doxyref{T\-H\-\_\-\-R\-A\-T\-E\-C\-T\-L\-\_\-\-C\-A\-P\-\_\-\-O\-V\-E\-R\-F\-L\-O\-W}{p.}{theoraenc_8h_a32f9983b344a431334493cefb0b9337c}\-: Don't bank excess bits for later use.
|
404
|
+
\item \doxyref{T\-H\-\_\-\-R\-A\-T\-E\-C\-T\-L\-\_\-\-C\-A\-P\-\_\-\-U\-N\-D\-E\-R\-F\-L\-O\-W}{p.}{theoraenc_8h_ad0d62d9dce542caf5296b03b97e020a6}\-: Don't try to make up shortfalls later.
|
405
405
|
\end{DoxyItemize}\\
|
406
406
|
\hline
|
407
407
|
\end{DoxyParams}
|
408
408
|
|
409
|
-
\begin{DoxyRetVals}{
|
410
|
-
{\em
|
409
|
+
\begin{DoxyRetVals}{Return values}
|
410
|
+
{\em T\-H\-\_\-\-E\-F\-A\-U\-L\-T} & {\itshape \-\_\-enc\-\_\-ctx} or {\itshape \-\_\-buf} is {\ttfamily N\-U\-L\-L}. \\
|
411
411
|
\hline
|
412
|
-
{\em
|
412
|
+
{\em T\-H\-\_\-\-E\-I\-N\-V\-A\-L} & {\itshape \-\_\-buf\-\_\-sz} is not {\ttfamily sizeof(int)} or rate control is not enabled. \\
|
413
413
|
\hline
|
414
|
-
{\em
|
414
|
+
{\em T\-H\-\_\-\-E\-I\-M\-P\-L} & Not supported by this implementation in the current encoding mode. \\
|
415
415
|
\hline
|
416
416
|
\end{DoxyRetVals}
|
417
|
-
\index{theoraenc.\-h@{theoraenc.\-h}
|
418
|
-
\index{
|
419
|
-
\subsubsection[{
|
417
|
+
\index{theoraenc.\-h@{theoraenc.\-h}!T\-H\-\_\-\-E\-N\-C\-C\-T\-L\-\_\-\-S\-E\-T\-\_\-\-S\-P\-L\-E\-V\-E\-L@{T\-H\-\_\-\-E\-N\-C\-C\-T\-L\-\_\-\-S\-E\-T\-\_\-\-S\-P\-L\-E\-V\-E\-L}}
|
418
|
+
\index{T\-H\-\_\-\-E\-N\-C\-C\-T\-L\-\_\-\-S\-E\-T\-\_\-\-S\-P\-L\-E\-V\-E\-L@{T\-H\-\_\-\-E\-N\-C\-C\-T\-L\-\_\-\-S\-E\-T\-\_\-\-S\-P\-L\-E\-V\-E\-L}!theoraenc.h@{theoraenc.\-h}}
|
419
|
+
\subsubsection[{T\-H\-\_\-\-E\-N\-C\-C\-T\-L\-\_\-\-S\-E\-T\-\_\-\-S\-P\-L\-E\-V\-E\-L}]{\setlength{\rightskip}{0pt plus 5cm}\#define T\-H\-\_\-\-E\-N\-C\-C\-T\-L\-\_\-\-S\-E\-T\-\_\-\-S\-P\-L\-E\-V\-E\-L~(14)}\label{theoraenc_8h_abd9fbcb6a25a77d991d3620164fe59d6}
|
420
420
|
|
421
421
|
|
422
|
-
|
422
|
+
Sets the speed level.
|
423
423
|
|
424
|
-
|
424
|
+
The current speed level may be retrieved using \doxyref{T\-H\-\_\-\-E\-N\-C\-C\-T\-L\-\_\-\-G\-E\-T\-\_\-\-S\-P\-L\-E\-V\-E\-L}{p.}{theoraenc_8h_a114b7c552f50b7b8d881a39489af1f61}.
|
425
425
|
|
426
426
|
|
427
|
-
\begin{DoxyParams}[1]{
|
428
|
-
\mbox{\tt in} & {\em \-\_\-buf} & {\ttfamily int}\-:
|
427
|
+
\begin{DoxyParams}[1]{Parameters}
|
428
|
+
\mbox{\tt in} & {\em \-\_\-buf} & {\ttfamily int}\-: The new encoding speed level. 0 is slowest, larger values use less C\-P\-U. \\
|
429
429
|
\hline
|
430
430
|
\end{DoxyParams}
|
431
431
|
|
432
|
-
\begin{DoxyRetVals}{
|
433
|
-
{\em
|
432
|
+
\begin{DoxyRetVals}{Return values}
|
433
|
+
{\em T\-H\-\_\-\-E\-F\-A\-U\-L\-T} & {\itshape \-\_\-enc\-\_\-ctx} or {\itshape \-\_\-buf} is {\ttfamily N\-U\-L\-L}. \\
|
434
434
|
\hline
|
435
|
-
{\em
|
435
|
+
{\em T\-H\-\_\-\-E\-I\-N\-V\-A\-L} & {\itshape \-\_\-buf\-\_\-sz} is not {\ttfamily sizeof(int)}, or the encoding speed level is out of bounds. The maximum encoding speed level may be implementation-\/ and encoding mode-\/specific, and can be obtained via \doxyref{T\-H\-\_\-\-E\-N\-C\-C\-T\-L\-\_\-\-G\-E\-T\-\_\-\-S\-P\-L\-E\-V\-E\-L\-\_\-\-M\-A\-X}{p.}{theoraenc_8h_a9baf5bdd206e80c78a8fd44687e89783}. \\
|
436
436
|
\hline
|
437
|
-
{\em
|
437
|
+
{\em T\-H\-\_\-\-E\-I\-M\-P\-L} & Not supported by this implementation in the current encoding mode. \\
|
438
438
|
\hline
|
439
439
|
\end{DoxyRetVals}
|
440
|
-
\index{theoraenc.\-h@{theoraenc.\-h}
|
441
|
-
\index{
|
442
|
-
\subsubsection[{
|
440
|
+
\index{theoraenc.\-h@{theoraenc.\-h}!T\-H\-\_\-\-E\-N\-C\-C\-T\-L\-\_\-\-S\-E\-T\-\_\-\-V\-P3\-\_\-\-C\-O\-M\-P\-A\-T\-I\-B\-L\-E@{T\-H\-\_\-\-E\-N\-C\-C\-T\-L\-\_\-\-S\-E\-T\-\_\-\-V\-P3\-\_\-\-C\-O\-M\-P\-A\-T\-I\-B\-L\-E}}
|
441
|
+
\index{T\-H\-\_\-\-E\-N\-C\-C\-T\-L\-\_\-\-S\-E\-T\-\_\-\-V\-P3\-\_\-\-C\-O\-M\-P\-A\-T\-I\-B\-L\-E@{T\-H\-\_\-\-E\-N\-C\-C\-T\-L\-\_\-\-S\-E\-T\-\_\-\-V\-P3\-\_\-\-C\-O\-M\-P\-A\-T\-I\-B\-L\-E}!theoraenc.h@{theoraenc.\-h}}
|
442
|
+
\subsubsection[{T\-H\-\_\-\-E\-N\-C\-C\-T\-L\-\_\-\-S\-E\-T\-\_\-\-V\-P3\-\_\-\-C\-O\-M\-P\-A\-T\-I\-B\-L\-E}]{\setlength{\rightskip}{0pt plus 5cm}\#define T\-H\-\_\-\-E\-N\-C\-C\-T\-L\-\_\-\-S\-E\-T\-\_\-\-V\-P3\-\_\-\-C\-O\-M\-P\-A\-T\-I\-B\-L\-E~(10)}\label{theoraenc_8h_a382d685a39a34d8e6ba76b00d804efd8}
|
443
443
|
|
444
444
|
|
445
|
-
|
445
|
+
Disables any encoder features that would prevent lossless transcoding back to V\-P3.
|
446
446
|
|
447
|
-
|
447
|
+
This primarily means disabling block-\/adaptive quantization and always coding all four luma blocks in a macro block when 4\-M\-V is used. It also includes using the V\-P3 quantization tables and Huffman codes; if you set them explicitly after calling this function, the resulting stream will not be V\-P3-\/compatible. If you enable V\-P3-\/compatibility when encoding 4\-:2\-:2 or 4\-:4\-:4 source material, or when using a picture region smaller than the full frame (e.\-g. a non-\/multiple-\/of-\/16 width or height), then non-\/\-V\-P3 bitstream features will still be disabled, but the stream will still not be V\-P3-\/compatible, as V\-P3 was not capable of encoding such formats. If you call this after encoding has already begun, then the quantization tables and codebooks cannot be changed, but the frame-\/level features will be enabled or disabled as requested.
|
448
448
|
|
449
449
|
|
450
|
-
\begin{DoxyParams}[1]{
|
451
|
-
\mbox{\tt in} & {\em \-\_\-buf} & {\ttfamily int}\-: a non-\/zero value to enable
|
450
|
+
\begin{DoxyParams}[1]{Parameters}
|
451
|
+
\mbox{\tt in} & {\em \-\_\-buf} & {\ttfamily int}\-: a non-\/zero value to enable V\-P3 compatibility, or 0 to disable it (the default). \\
|
452
452
|
\hline
|
453
|
-
\mbox{\tt out} & {\em \-\_\-buf} & {\ttfamily int}\-: 1 if all bitstream features required for
|
453
|
+
\mbox{\tt out} & {\em \-\_\-buf} & {\ttfamily int}\-: 1 if all bitstream features required for V\-P3-\/compatibility could be set, and 0 otherwise. The latter will be returned if the pixel format is not 4\-:2\-:0, the picture region is smaller than the full frame, or if encoding has begun, preventing the quantization tables and codebooks from being set. \\
|
454
454
|
\hline
|
455
455
|
\end{DoxyParams}
|
456
456
|
|
457
|
-
\begin{DoxyRetVals}{
|
458
|
-
{\em
|
457
|
+
\begin{DoxyRetVals}{Return values}
|
458
|
+
{\em T\-H\-\_\-\-E\-F\-A\-U\-L\-T} & {\itshape \-\_\-enc\-\_\-ctx} or {\itshape \-\_\-buf} is {\ttfamily N\-U\-L\-L}. \\
|
459
459
|
\hline
|
460
|
-
{\em
|
460
|
+
{\em T\-H\-\_\-\-E\-I\-N\-V\-A\-L} & {\itshape \-\_\-buf\-\_\-sz} is not {\ttfamily sizeof(int)}. \\
|
461
461
|
\hline
|
462
|
-
{\em
|
462
|
+
{\em T\-H\-\_\-\-E\-I\-M\-P\-L} & Not supported by this implementation. \\
|
463
463
|
\hline
|
464
464
|
\end{DoxyRetVals}
|
465
|
-
\index{theoraenc.\-h@{theoraenc.\-h}
|
466
|
-
\index{
|
467
|
-
\subsubsection[{
|
465
|
+
\index{theoraenc.\-h@{theoraenc.\-h}!T\-H\-\_\-\-R\-A\-T\-E\-C\-T\-L\-\_\-\-C\-A\-P\-\_\-\-O\-V\-E\-R\-F\-L\-O\-W@{T\-H\-\_\-\-R\-A\-T\-E\-C\-T\-L\-\_\-\-C\-A\-P\-\_\-\-O\-V\-E\-R\-F\-L\-O\-W}}
|
466
|
+
\index{T\-H\-\_\-\-R\-A\-T\-E\-C\-T\-L\-\_\-\-C\-A\-P\-\_\-\-O\-V\-E\-R\-F\-L\-O\-W@{T\-H\-\_\-\-R\-A\-T\-E\-C\-T\-L\-\_\-\-C\-A\-P\-\_\-\-O\-V\-E\-R\-F\-L\-O\-W}!theoraenc.h@{theoraenc.\-h}}
|
467
|
+
\subsubsection[{T\-H\-\_\-\-R\-A\-T\-E\-C\-T\-L\-\_\-\-C\-A\-P\-\_\-\-O\-V\-E\-R\-F\-L\-O\-W}]{\setlength{\rightskip}{0pt plus 5cm}\#define T\-H\-\_\-\-R\-A\-T\-E\-C\-T\-L\-\_\-\-C\-A\-P\-\_\-\-O\-V\-E\-R\-F\-L\-O\-W~(0x2)}\label{theoraenc_8h_a32f9983b344a431334493cefb0b9337c}
|
468
468
|
|
469
469
|
|
470
|
-
|
470
|
+
Ignore bitrate buffer overflows.
|
471
471
|
|
472
|
-
|
473
|
-
\index{
|
474
|
-
\subsubsection[{
|
472
|
+
If the encoder uses so few bits that the reservoir of available bits overflows, ignore the excess. The encoder will not try to use these extra bits in future frames. At high rates this may cause the result to be undersized, but allows a client to play the stream using a finite buffer; it should normally be enabled. \index{theoraenc.\-h@{theoraenc.\-h}!T\-H\-\_\-\-R\-A\-T\-E\-C\-T\-L\-\_\-\-C\-A\-P\-\_\-\-U\-N\-D\-E\-R\-F\-L\-O\-W@{T\-H\-\_\-\-R\-A\-T\-E\-C\-T\-L\-\_\-\-C\-A\-P\-\_\-\-U\-N\-D\-E\-R\-F\-L\-O\-W}}
|
473
|
+
\index{T\-H\-\_\-\-R\-A\-T\-E\-C\-T\-L\-\_\-\-C\-A\-P\-\_\-\-U\-N\-D\-E\-R\-F\-L\-O\-W@{T\-H\-\_\-\-R\-A\-T\-E\-C\-T\-L\-\_\-\-C\-A\-P\-\_\-\-U\-N\-D\-E\-R\-F\-L\-O\-W}!theoraenc.h@{theoraenc.\-h}}
|
474
|
+
\subsubsection[{T\-H\-\_\-\-R\-A\-T\-E\-C\-T\-L\-\_\-\-C\-A\-P\-\_\-\-U\-N\-D\-E\-R\-F\-L\-O\-W}]{\setlength{\rightskip}{0pt plus 5cm}\#define T\-H\-\_\-\-R\-A\-T\-E\-C\-T\-L\-\_\-\-C\-A\-P\-\_\-\-U\-N\-D\-E\-R\-F\-L\-O\-W~(0x4)}\label{theoraenc_8h_ad0d62d9dce542caf5296b03b97e020a6}
|
475
475
|
|
476
476
|
|
477
|
-
|
477
|
+
Ignore bitrate buffer underflows.
|
478
478
|
|
479
|
-
|
480
|
-
\index{
|
481
|
-
\subsubsection[{
|
479
|
+
If the encoder uses so many bits that the reservoir of available bits underflows, ignore the deficit. The encoder will not try to make up these extra bits in future frames. At low rates this may cause the result to be oversized; it should normally be disabled. \index{theoraenc.\-h@{theoraenc.\-h}!T\-H\-\_\-\-R\-A\-T\-E\-C\-T\-L\-\_\-\-D\-R\-O\-P\-\_\-\-F\-R\-A\-M\-E\-S@{T\-H\-\_\-\-R\-A\-T\-E\-C\-T\-L\-\_\-\-D\-R\-O\-P\-\_\-\-F\-R\-A\-M\-E\-S}}
|
480
|
+
\index{T\-H\-\_\-\-R\-A\-T\-E\-C\-T\-L\-\_\-\-D\-R\-O\-P\-\_\-\-F\-R\-A\-M\-E\-S@{T\-H\-\_\-\-R\-A\-T\-E\-C\-T\-L\-\_\-\-D\-R\-O\-P\-\_\-\-F\-R\-A\-M\-E\-S}!theoraenc.h@{theoraenc.\-h}}
|
481
|
+
\subsubsection[{T\-H\-\_\-\-R\-A\-T\-E\-C\-T\-L\-\_\-\-D\-R\-O\-P\-\_\-\-F\-R\-A\-M\-E\-S}]{\setlength{\rightskip}{0pt plus 5cm}\#define T\-H\-\_\-\-R\-A\-T\-E\-C\-T\-L\-\_\-\-D\-R\-O\-P\-\_\-\-F\-R\-A\-M\-E\-S~(0x1)}\label{theoraenc_8h_a3e7fab53b902b54135522ba286f45e33}
|
482
482
|
|
483
483
|
|
484
|
-
|
484
|
+
Drop frames to keep within bitrate buffer constraints.
|
485
485
|
|
486
|
-
|
486
|
+
This can have a severe impact on quality, but is the only way to ensure that bitrate targets are met at low rates during sudden bursts of activity.
|
487
487
|
|
488
|
-
\subsection{
|
488
|
+
\subsection{Typedef Documentation}
|
489
489
|
\index{theoraenc.\-h@{theoraenc.\-h}!th\-\_\-enc\-\_\-ctx@{th\-\_\-enc\-\_\-ctx}}
|
490
490
|
\index{th\-\_\-enc\-\_\-ctx@{th\-\_\-enc\-\_\-ctx}!theoraenc.h@{theoraenc.\-h}}
|
491
491
|
\subsubsection[{th\-\_\-enc\-\_\-ctx}]{\setlength{\rightskip}{0pt plus 5cm}typedef struct {\bf th\-\_\-enc\-\_\-ctx} {\bf th\-\_\-enc\-\_\-ctx}}\label{theoraenc_8h_af5cc40472b925456d42526a035d66edd}
|
492
492
|
|
493
493
|
|
494
|
-
|
494
|
+
The encoder context.
|
495
495
|
|
496
496
|
|
497
497
|
|
498
|
-
\subsection{
|
499
|
-
\index{theoraenc.\-h@{theoraenc.\-h}
|
500
|
-
\index{
|
501
|
-
\subsubsection[{
|
498
|
+
\subsection{Variable Documentation}
|
499
|
+
\index{theoraenc.\-h@{theoraenc.\-h}!T\-H\-\_\-\-V\-P31\-\_\-\-H\-U\-F\-F\-\_\-\-C\-O\-D\-E\-S@{T\-H\-\_\-\-V\-P31\-\_\-\-H\-U\-F\-F\-\_\-\-C\-O\-D\-E\-S}}
|
500
|
+
\index{T\-H\-\_\-\-V\-P31\-\_\-\-H\-U\-F\-F\-\_\-\-C\-O\-D\-E\-S@{T\-H\-\_\-\-V\-P31\-\_\-\-H\-U\-F\-F\-\_\-\-C\-O\-D\-E\-S}!theoraenc.h@{theoraenc.\-h}}
|
501
|
+
\subsubsection[{T\-H\-\_\-\-V\-P31\-\_\-\-H\-U\-F\-F\-\_\-\-C\-O\-D\-E\-S}]{\setlength{\rightskip}{0pt plus 5cm}const {\bf th\-\_\-huff\-\_\-code} T\-H\-\_\-\-V\-P31\-\_\-\-H\-U\-F\-F\-\_\-\-C\-O\-D\-E\-S[{\bf T\-H\-\_\-\-N\-H\-U\-F\-F\-M\-A\-N\-\_\-\-T\-A\-B\-L\-E\-S}][{\bf T\-H\-\_\-\-N\-D\-C\-T\-\_\-\-T\-O\-K\-E\-N\-S}]}\label{theoraenc_8h_aee1f7cb1fa0d3b7cc1d4ca0f17e6ae5e}
|
502
502
|
|
503
503
|
|
504
|
-
|
504
|
+
The Huffman tables used by V\-P3.
|
505
505
|
|
506
|
-
\index{theoraenc.\-h@{theoraenc.\-h}
|
507
|
-
\index{
|
508
|
-
\subsubsection[{
|
506
|
+
\index{theoraenc.\-h@{theoraenc.\-h}!T\-H\-\_\-\-V\-P31\-\_\-\-Q\-U\-A\-N\-T\-\_\-\-I\-N\-F\-O@{T\-H\-\_\-\-V\-P31\-\_\-\-Q\-U\-A\-N\-T\-\_\-\-I\-N\-F\-O}}
|
507
|
+
\index{T\-H\-\_\-\-V\-P31\-\_\-\-Q\-U\-A\-N\-T\-\_\-\-I\-N\-F\-O@{T\-H\-\_\-\-V\-P31\-\_\-\-Q\-U\-A\-N\-T\-\_\-\-I\-N\-F\-O}!theoraenc.h@{theoraenc.\-h}}
|
508
|
+
\subsubsection[{T\-H\-\_\-\-V\-P31\-\_\-\-Q\-U\-A\-N\-T\-\_\-\-I\-N\-F\-O}]{\setlength{\rightskip}{0pt plus 5cm}const {\bf th\-\_\-quant\-\_\-info} T\-H\-\_\-\-V\-P31\-\_\-\-Q\-U\-A\-N\-T\-\_\-\-I\-N\-F\-O}\label{theoraenc_8h_a3b1b462989f4e7a5a98e6e697f1a7f7d}
|
509
509
|
|
510
510
|
|
511
|
-
|
511
|
+
The quantization parameters used by V\-P3.
|
512
512
|
|