]> git.sesse.net Git - casparcg/commitdiff
2.0. Updated ffmpeg.
authorronag <ronag@362d55ac-95cf-4e76-9f9a-cbaa9c17b72d>
Sat, 18 Jun 2011 13:00:53 +0000 (13:00 +0000)
committerronag <ronag@362d55ac-95cf-4e76-9f9a-cbaa9c17b72d>
Sat, 18 Jun 2011 13:00:53 +0000 (13:00 +0000)
44 files changed:
ffmpeg 0.7/README.txt
ffmpeg 0.7/doc/developer.html
ffmpeg 0.7/doc/faq.html
ffmpeg 0.7/doc/ffmpeg.html
ffmpeg 0.7/doc/ffplay.html
ffmpeg 0.7/doc/ffprobe.html
ffmpeg 0.7/doc/general.html
ffmpeg 0.7/doc/libavfilter.html
ffmpeg 0.7/include/libavcodec/avcodec.h
ffmpeg 0.7/include/libavcodec/opt.h
ffmpeg 0.7/include/libavcodec/version.h
ffmpeg 0.7/include/libavdevice/avdevice.h
ffmpeg 0.7/include/libavfilter/avcodec.h
ffmpeg 0.7/include/libavfilter/avfilter.h
ffmpeg 0.7/include/libavfilter/avfiltergraph.h
ffmpeg 0.7/include/libavfilter/vsrc_buffer.h [new file with mode: 0644]
ffmpeg 0.7/include/libavformat/avformat.h
ffmpeg 0.7/include/libavformat/avio.h
ffmpeg 0.7/include/libavformat/version.h
ffmpeg 0.7/include/libavutil/avassert.h
ffmpeg 0.7/include/libavutil/avutil.h
ffmpeg 0.7/include/libavutil/cpu.h
ffmpeg 0.7/include/libavutil/dict.h [new file with mode: 0644]
ffmpeg 0.7/include/libavutil/imgutils.h
ffmpeg 0.7/include/libavutil/opt.h
ffmpeg 0.7/include/libavutil/parseutils.h
ffmpeg 0.7/include/libavutil/pixdesc.h
ffmpeg 0.7/include/libavutil/pixfmt.h
ffmpeg 0.7/include/libavutil/samplefmt.h
ffmpeg 0.7/include/libswscale/swscale.h
ffmpeg 0.7/lib/avcodec-53.dll
ffmpeg 0.7/lib/avcodec.lib
ffmpeg 0.7/lib/avdevice-53.dll
ffmpeg 0.7/lib/avdevice.lib
ffmpeg 0.7/lib/avfilter-2.dll
ffmpeg 0.7/lib/avfilter.lib
ffmpeg 0.7/lib/avformat-53.dll
ffmpeg 0.7/lib/avformat.lib
ffmpeg 0.7/lib/avutil-51.dll
ffmpeg 0.7/lib/avutil.lib
ffmpeg 0.7/lib/postproc-51.dll
ffmpeg 0.7/lib/postproc.lib
ffmpeg 0.7/lib/swscale-0.dll
ffmpeg 0.7/lib/swscale.lib

index 552a134ffb4ae9c4dca92ab2d57c13bd9e7f0e65..ef04c42cd4a07d752234e2019ec0687edc725d03 100644 (file)
@@ -2,15 +2,15 @@ This is a FFmpeg Win32 shared build by Kyle Schwarz.
 \r
 Zeranoe's FFmpeg Builds Home Page: http://ffmpeg.zeranoe.com/builds/\r
 \r
-Built on May 18 2011 04:43:18\r
+Built on Jun 10 2011 22:11:19\r
 \r
-FFmpeg version git-b4bcd1e\r
-       libavutil    51.  2. 1 / 51.  2. 1\r
-       libavcodec   53.  6. 0 / 53.  6. 0\r
-       libavformat  53.  1. 0 / 53.  1. 0\r
-       libavdevice  53.  0. 0 / 53.  0. 0\r
-       libavfilter   2.  5. 0 /  2.  5. 0\r
-       libswscale    0. 14. 0 /  0. 14. 0\r
+FFmpeg version git-39dbe9b\r
+       libavutil    51.  8. 0 / 51.  8. 0\r
+       libavcodec   53.  7. 0 / 53.  7. 0\r
+       libavformat  53.  3. 0 / 53.  3. 0\r
+       libavdevice  53.  1. 1 / 53.  1. 1\r
+       libavfilter   2. 15. 0 /  2. 15. 0\r
+       libswscale    0. 14. 1 /  0. 14. 1\r
        libpostproc  51.  2. 0 / 51.  2. 0\r
 \r
 FFmpeg configured with:\r
@@ -48,7 +48,8 @@ This version of FFmpeg was built on:
        Ubuntu Desktop 11.04: http://www.ubuntu.com/desktop\r
        \r
 The cross-compile toolchain used to compile this FFmpeg was:\r
-       MinGW-w64 r4161: http://mingw-w64.sourceforge.net/\r
+       MinGW-w64 r4186: http://mingw-w64.sourceforge.net/\r
+       winpthreads (part of MinGW-w64)\r
 \r
 The GCC version used to compile this FFmpeg was:\r
        GCC 4.5.3: http://gcc.gnu.org/\r
@@ -67,9 +68,9 @@ The external libaries compiled into this FFmpeg are:
        Theora 1.1.1 http://www.theora.org/\r
        Vorbis 1.3.2 http://www.vorbis.com/\r
        libvpx 0.9.6 http://www.webmproject.org/code/\r
-       x264 git-b5a8ad7e http://www.videolan.org/developers/x264.html\r
+       x264 git-c1e60b90 http://www.videolan.org/developers/x264.html\r
        XAVS r51 http://xavs.sourceforge.net/\r
-       Xvid 1.3.1 http://www.xvid.org/\r
+       Xvid 1.3.2 http://www.xvid.org/\r
        zlib 1.2.5 http://zlib.net/\r
 \r
 License for each library can be found in the licenses folder.\r
index 373499994782493666546013e81ff1c558254cd6..3576cc44d5df1ee45787322ef7321968ffed0194 100644 (file)
@@ -1,6 +1,6 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
 <html>
-<!-- Created on May 18, 2011 by texi2html 1.82
+<!-- Created on June 10, 2011 by texi2html 1.82
 texi2html was written by: 
             Lionel Cons <Lionel.Cons@cern.ch> (original author)
             Karl Berry  <karl@freefriends.org>
@@ -456,6 +456,8 @@ send a reminder by email. Your patch should eventually be dealt with.
     improves readability.
 </li><li>
     Consider to add a regression test for your code.
+</li><li>
+    If you added YASM code please check that things still work with &ndash;disable-yasm
 </li></ol>
 
 <a name="Patch-review-process"></a>
@@ -512,7 +514,7 @@ accordingly].
 <hr size="1">
 <p>
  <font size="-1">
-  This document was generated by <em>Kyle Schwarz</em> on <em>May 18, 2011</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+  This document was generated by <em>Kyle Schwarz</em> on <em>June 10, 2011</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
  </font>
  <br>
 
index 047690ff7609c4cc2be64a78ab8f1073861b4e7b..92db016459ff088d1b935053a005ace5b9aff8d4 100644 (file)
@@ -1,6 +1,6 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
 <html>
-<!-- Created on May 18, 2011 by texi2html 1.82
+<!-- Created on June 10, 2011 by texi2html 1.82
 texi2html was written by: 
             Lionel Cons <Lionel.Cons@cern.ch> (original author)
             Karl Berry  <karl@freefriends.org>
@@ -646,7 +646,7 @@ will be 150.
 <hr size="1">
 <p>
  <font size="-1">
-  This document was generated by <em>Kyle Schwarz</em> on <em>May 18, 2011</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+  This document was generated by <em>Kyle Schwarz</em> on <em>June 10, 2011</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
  </font>
  <br>
 
index 7622e3d1fc5b3ecc327e97d0da8336873afbdea2..91542802a2d5484d6e73a42200f82cd5c30b7849 100644 (file)
@@ -1,6 +1,6 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
 <html>
-<!-- Created on May 18, 2011 by texi2html 1.82
+<!-- Created on June 10, 2011 by texi2html 1.82
 texi2html was written by: 
             Lionel Cons <Lionel.Cons@cern.ch> (original author)
             Karl Berry  <karl@freefriends.org>
@@ -51,7 +51,7 @@ ul.toc {list-style: none}
 <ul class="toc">
   <li><a name="toc-Synopsis" href="#Synopsis">1. Synopsis</a></li>
   <li><a name="toc-Description" href="#Description">2. Description</a></li>
-  <li><a name="toc-Options" href="#Options">3. Options</a>
+  <li><a name="toc-Options-4" href="#Options-4">3. Options</a>
   <ul class="toc">
     <li><a name="toc-Generic-options" href="#Generic-options">3.1 Generic options</a></li>
     <li><a name="toc-Main-options" href="#Main-options">3.2 Main options</a></li>
@@ -72,154 +72,197 @@ ul.toc {list-style: none}
     <li><a name="toc-Video-and-Audio-file-format-conversion" href="#Video-and-Audio-file-format-conversion">5.3 Video and Audio file format conversion</a></li>
   </ul></li>
   <li><a name="toc-Expression-Evaluation" href="#Expression-Evaluation">6. Expression Evaluation</a></li>
-  <li><a name="toc-Encoders" href="#Encoders">7. Encoders</a>
+  <li><a name="toc-Decoders" href="#Decoders">7. Decoders</a></li>
+  <li><a name="toc-Video-Decoders" href="#Video-Decoders">8. Video Decoders</a>
   <ul class="toc">
-    <li><a name="toc-Audio-Encoders" href="#Audio-Encoders">7.1 Audio Encoders</a>
+    <li><a name="toc-rawvideo" href="#rawvideo">8.1 rawvideo</a>
     <ul class="toc">
-      <li><a name="toc-ac3-and-ac3_005ffixed" href="#ac3-and-ac3_005ffixed">7.1.1 ac3 and ac3_fixed</a></li>
+      <li><a name="toc-Options" href="#Options">8.1.1 Options</a></li>
     </ul>
 </li>
   </ul></li>
-  <li><a name="toc-Demuxers" href="#Demuxers">8. Demuxers</a>
+  <li><a name="toc-Encoders" href="#Encoders">9. Encoders</a></li>
+  <li><a name="toc-Audio-Encoders" href="#Audio-Encoders">10. Audio Encoders</a>
   <ul class="toc">
-    <li><a name="toc-image2-1" href="#image2-1">8.1 image2</a></li>
-    <li><a name="toc-applehttp-1" href="#applehttp-1">8.2 applehttp</a></li>
+    <li><a name="toc-ac3-and-ac3_005ffixed" href="#ac3-and-ac3_005ffixed">10.1 ac3 and ac3_fixed</a>
+    <ul class="toc">
+      <li><a name="toc-AC_002d3-Metadata" href="#AC_002d3-Metadata">10.1.1 AC-3 Metadata</a>
+      <ul class="toc">
+        <li><a name="toc-Metadata-Control-Options" href="#Metadata-Control-Options">10.1.1.1 Metadata Control Options</a></li>
+        <li><a name="toc-Downmix-Levels" href="#Downmix-Levels">10.1.1.2 Downmix Levels</a></li>
+        <li><a name="toc-Audio-Production-Information" href="#Audio-Production-Information">10.1.1.3 Audio Production Information</a></li>
+        <li><a name="toc-Other-Metadata-Options" href="#Other-Metadata-Options">10.1.1.4 Other Metadata Options</a></li>
+      </ul></li>
+      <li><a name="toc-Extended-Bitstream-Information" href="#Extended-Bitstream-Information">10.1.2 Extended Bitstream Information</a>
+      <ul class="toc">
+        <li><a name="toc-Extended-Bitstream-Information-_002d-Part-1" href="#Extended-Bitstream-Information-_002d-Part-1">10.1.2.1 Extended Bitstream Information - Part 1</a></li>
+        <li><a name="toc-Extended-Bitstream-Information-_002d-Part-2" href="#Extended-Bitstream-Information-_002d-Part-2">10.1.2.2 Extended Bitstream Information - Part 2</a></li>
+      </ul></li>
+      <li><a name="toc-Other-AC_002d3-Encoding-Options" href="#Other-AC_002d3-Encoding-Options">10.1.3 Other AC-3 Encoding Options</a></li>
+      <li><a name="toc-Floating_002dPoint_002dOnly-AC_002d3-Encoding-Options" href="#Floating_002dPoint_002dOnly-AC_002d3-Encoding-Options">10.1.4 Floating-Point-Only AC-3 Encoding Options</a></li>
+    </ul>
+</li>
   </ul></li>
-  <li><a name="toc-Muxers" href="#Muxers">9. Muxers</a>
+  <li><a name="toc-Video-Encoders" href="#Video-Encoders">11. Video Encoders</a>
   <ul class="toc">
-    <li><a name="toc-crc-1" href="#crc-1">9.1 crc</a></li>
-    <li><a name="toc-framecrc-1" href="#framecrc-1">9.2 framecrc</a></li>
-    <li><a name="toc-image2" href="#image2">9.3 image2</a></li>
-    <li><a name="toc-mpegts" href="#mpegts">9.4 mpegts</a></li>
-    <li><a name="toc-null" href="#null">9.5 null</a></li>
+    <li><a name="toc-libvpx" href="#libvpx">11.1 libvpx</a>
+    <ul class="toc">
+      <li><a name="toc-Options-1" href="#Options-1">11.1.1 Options</a></li>
+    </ul></li>
+    <li><a name="toc-libx264" href="#libx264">11.2 libx264</a>
+    <ul class="toc">
+      <li><a name="toc-Options-2" href="#Options-2">11.2.1 Options</a></li>
+    </ul>
+</li>
   </ul></li>
-  <li><a name="toc-Input-Devices" href="#Input-Devices">10. Input Devices</a>
+  <li><a name="toc-Demuxers" href="#Demuxers">12. Demuxers</a>
   <ul class="toc">
-    <li><a name="toc-alsa" href="#alsa">10.1 alsa</a></li>
-    <li><a name="toc-bktr" href="#bktr">10.2 bktr</a></li>
-    <li><a name="toc-dv1394" href="#dv1394">10.3 dv1394</a></li>
-    <li><a name="toc-fbdev" href="#fbdev">10.4 fbdev</a></li>
-    <li><a name="toc-jack" href="#jack">10.5 jack</a></li>
-    <li><a name="toc-libdc1394" href="#libdc1394">10.6 libdc1394</a></li>
-    <li><a name="toc-oss" href="#oss">10.7 oss</a></li>
-    <li><a name="toc-sndio-1" href="#sndio-1">10.8 sndio</a></li>
-    <li><a name="toc-video4linux-and-video4linux2" href="#video4linux-and-video4linux2">10.9 video4linux and video4linux2</a></li>
-    <li><a name="toc-vfwcap" href="#vfwcap">10.10 vfwcap</a></li>
-    <li><a name="toc-x11grab" href="#x11grab">10.11 x11grab</a></li>
+    <li><a name="toc-image2" href="#image2">12.1 image2</a></li>
+    <li><a name="toc-applehttp" href="#applehttp">12.2 applehttp</a></li>
   </ul></li>
-  <li><a name="toc-Output-Devices" href="#Output-Devices">11. Output Devices</a>
+  <li><a name="toc-Muxers" href="#Muxers">13. Muxers</a>
   <ul class="toc">
-    <li><a name="toc-alsa-1" href="#alsa-1">11.1 alsa</a></li>
-    <li><a name="toc-oss-1" href="#oss-1">11.2 oss</a></li>
-    <li><a name="toc-sndio" href="#sndio">11.3 sndio</a></li>
+    <li><a name="toc-crc-1" href="#crc-1">13.1 crc</a></li>
+    <li><a name="toc-framecrc-1" href="#framecrc-1">13.2 framecrc</a></li>
+    <li><a name="toc-image2-1" href="#image2-1">13.3 image2</a></li>
+    <li><a name="toc-mpegts" href="#mpegts">13.4 mpegts</a></li>
+    <li><a name="toc-null" href="#null">13.5 null</a></li>
+    <li><a name="toc-matroska" href="#matroska">13.6 matroska</a></li>
   </ul></li>
-  <li><a name="toc-Protocols" href="#Protocols">12. Protocols</a>
+  <li><a name="toc-Input-Devices" href="#Input-Devices">14. Input Devices</a>
   <ul class="toc">
-    <li><a name="toc-applehttp" href="#applehttp">12.1 applehttp</a></li>
-    <li><a name="toc-concat" href="#concat">12.2 concat</a></li>
-    <li><a name="toc-file" href="#file">12.3 file</a></li>
-    <li><a name="toc-gopher" href="#gopher">12.4 gopher</a></li>
-    <li><a name="toc-http" href="#http">12.5 http</a></li>
-    <li><a name="toc-mmst" href="#mmst">12.6 mmst</a></li>
-    <li><a name="toc-mmsh" href="#mmsh">12.7 mmsh</a></li>
-    <li><a name="toc-md5" href="#md5">12.8 md5</a></li>
-    <li><a name="toc-pipe" href="#pipe">12.9 pipe</a></li>
-    <li><a name="toc-rtmp" href="#rtmp">12.10 rtmp</a></li>
-    <li><a name="toc-rtmp_002c-rtmpe_002c-rtmps_002c-rtmpt_002c-rtmpte" href="#rtmp_002c-rtmpe_002c-rtmps_002c-rtmpt_002c-rtmpte">12.11 rtmp, rtmpe, rtmps, rtmpt, rtmpte</a></li>
-    <li><a name="toc-rtp" href="#rtp">12.12 rtp</a></li>
-    <li><a name="toc-rtsp" href="#rtsp">12.13 rtsp</a></li>
-    <li><a name="toc-sap" href="#sap">12.14 sap</a>
+    <li><a name="toc-alsa-1" href="#alsa-1">14.1 alsa</a></li>
+    <li><a name="toc-bktr" href="#bktr">14.2 bktr</a></li>
+    <li><a name="toc-dv1394" href="#dv1394">14.3 dv1394</a></li>
+    <li><a name="toc-fbdev" href="#fbdev">14.4 fbdev</a></li>
+    <li><a name="toc-jack" href="#jack">14.5 jack</a></li>
+    <li><a name="toc-libdc1394" href="#libdc1394">14.6 libdc1394</a></li>
+    <li><a name="toc-oss-1" href="#oss-1">14.7 oss</a></li>
+    <li><a name="toc-sndio" href="#sndio">14.8 sndio</a></li>
+    <li><a name="toc-video4linux-and-video4linux2" href="#video4linux-and-video4linux2">14.9 video4linux and video4linux2</a></li>
+    <li><a name="toc-vfwcap" href="#vfwcap">14.10 vfwcap</a></li>
+    <li><a name="toc-x11grab" href="#x11grab">14.11 x11grab</a></li>
+  </ul></li>
+  <li><a name="toc-Output-Devices" href="#Output-Devices">15. Output Devices</a>
+  <ul class="toc">
+    <li><a name="toc-alsa" href="#alsa">15.1 alsa</a></li>
+    <li><a name="toc-oss" href="#oss">15.2 oss</a></li>
+    <li><a name="toc-sdl" href="#sdl">15.3 sdl</a>
     <ul class="toc">
-      <li><a name="toc-Muxer" href="#Muxer">12.14.1 Muxer</a></li>
-      <li><a name="toc-Demuxer" href="#Demuxer">12.14.2 Demuxer</a></li>
+      <li><a name="toc-Options-3" href="#Options-3">15.3.1 Options</a></li>
+      <li><a name="toc-Examples-1" href="#Examples-1">15.3.2 Examples</a></li>
     </ul></li>
-    <li><a name="toc-tcp" href="#tcp">12.15 tcp</a></li>
-    <li><a name="toc-udp" href="#udp">12.16 udp</a></li>
+    <li><a name="toc-sndio-1" href="#sndio-1">15.4 sndio</a></li>
   </ul></li>
-  <li><a name="toc-Bitstream-Filters" href="#Bitstream-Filters">13. Bitstream Filters</a>
+  <li><a name="toc-Protocols" href="#Protocols">16. Protocols</a>
   <ul class="toc">
-    <li><a name="toc-aac_005fadtstoasc" href="#aac_005fadtstoasc">13.1 aac_adtstoasc</a></li>
-    <li><a name="toc-chomp" href="#chomp">13.2 chomp</a></li>
-    <li><a name="toc-dump_005fextradata" href="#dump_005fextradata">13.3 dump_extradata</a></li>
-    <li><a name="toc-h264_005fmp4toannexb" href="#h264_005fmp4toannexb">13.4 h264_mp4toannexb</a></li>
-    <li><a name="toc-imx_005fdump_005fheader" href="#imx_005fdump_005fheader">13.5 imx_dump_header</a></li>
-    <li><a name="toc-mjpeg2jpeg" href="#mjpeg2jpeg">13.6 mjpeg2jpeg</a></li>
-    <li><a name="toc-mjpega_005fdump_005fheader" href="#mjpega_005fdump_005fheader">13.7 mjpega_dump_header</a></li>
-    <li><a name="toc-movsub" href="#movsub">13.8 movsub</a></li>
-    <li><a name="toc-mp3_005fheader_005fcompress" href="#mp3_005fheader_005fcompress">13.9 mp3_header_compress</a></li>
-    <li><a name="toc-mp3_005fheader_005fdecompress" href="#mp3_005fheader_005fdecompress">13.10 mp3_header_decompress</a></li>
-    <li><a name="toc-noise" href="#noise">13.11 noise</a></li>
-    <li><a name="toc-remove_005fextradata" href="#remove_005fextradata">13.12 remove_extradata</a></li>
+    <li><a name="toc-applehttp-1" href="#applehttp-1">16.1 applehttp</a></li>
+    <li><a name="toc-concat" href="#concat">16.2 concat</a></li>
+    <li><a name="toc-file" href="#file">16.3 file</a></li>
+    <li><a name="toc-gopher" href="#gopher">16.4 gopher</a></li>
+    <li><a name="toc-http" href="#http">16.5 http</a></li>
+    <li><a name="toc-mmst" href="#mmst">16.6 mmst</a></li>
+    <li><a name="toc-mmsh" href="#mmsh">16.7 mmsh</a></li>
+    <li><a name="toc-md5" href="#md5">16.8 md5</a></li>
+    <li><a name="toc-pipe" href="#pipe">16.9 pipe</a></li>
+    <li><a name="toc-rtmp" href="#rtmp">16.10 rtmp</a></li>
+    <li><a name="toc-rtmp_002c-rtmpe_002c-rtmps_002c-rtmpt_002c-rtmpte" href="#rtmp_002c-rtmpe_002c-rtmps_002c-rtmpt_002c-rtmpte">16.11 rtmp, rtmpe, rtmps, rtmpt, rtmpte</a></li>
+    <li><a name="toc-rtp" href="#rtp">16.12 rtp</a></li>
+    <li><a name="toc-rtsp" href="#rtsp">16.13 rtsp</a></li>
+    <li><a name="toc-sap" href="#sap">16.14 sap</a>
+    <ul class="toc">
+      <li><a name="toc-Muxer" href="#Muxer">16.14.1 Muxer</a></li>
+      <li><a name="toc-Demuxer" href="#Demuxer">16.14.2 Demuxer</a></li>
+    </ul></li>
+    <li><a name="toc-tcp" href="#tcp">16.15 tcp</a></li>
+    <li><a name="toc-udp" href="#udp">16.16 udp</a></li>
+  </ul></li>
+  <li><a name="toc-Bitstream-Filters" href="#Bitstream-Filters">17. Bitstream Filters</a>
+  <ul class="toc">
+    <li><a name="toc-aac_005fadtstoasc" href="#aac_005fadtstoasc">17.1 aac_adtstoasc</a></li>
+    <li><a name="toc-chomp" href="#chomp">17.2 chomp</a></li>
+    <li><a name="toc-dump_005fextradata" href="#dump_005fextradata">17.3 dump_extradata</a></li>
+    <li><a name="toc-h264_005fmp4toannexb" href="#h264_005fmp4toannexb">17.4 h264_mp4toannexb</a></li>
+    <li><a name="toc-imx_005fdump_005fheader" href="#imx_005fdump_005fheader">17.5 imx_dump_header</a></li>
+    <li><a name="toc-mjpeg2jpeg" href="#mjpeg2jpeg">17.6 mjpeg2jpeg</a></li>
+    <li><a name="toc-mjpega_005fdump_005fheader" href="#mjpega_005fdump_005fheader">17.7 mjpega_dump_header</a></li>
+    <li><a name="toc-movsub" href="#movsub">17.8 movsub</a></li>
+    <li><a name="toc-mp3_005fheader_005fcompress" href="#mp3_005fheader_005fcompress">17.9 mp3_header_compress</a></li>
+    <li><a name="toc-mp3_005fheader_005fdecompress" href="#mp3_005fheader_005fdecompress">17.10 mp3_header_decompress</a></li>
+    <li><a name="toc-noise" href="#noise">17.11 noise</a></li>
+    <li><a name="toc-remove_005fextradata" href="#remove_005fextradata">17.12 remove_extradata</a></li>
   </ul></li>
-  <li><a name="toc-Filtergraph-description" href="#Filtergraph-description">14. Filtergraph description</a>
+  <li><a name="toc-Filtergraph-description" href="#Filtergraph-description">18. Filtergraph description</a>
   <ul class="toc">
-    <li><a name="toc-Filtergraph-syntax" href="#Filtergraph-syntax">14.1 Filtergraph syntax</a></li>
+    <li><a name="toc-Filtergraph-syntax" href="#Filtergraph-syntax">18.1 Filtergraph syntax</a></li>
   </ul></li>
-  <li><a name="toc-Audio-Filters" href="#Audio-Filters">15. Audio Filters</a>
+  <li><a name="toc-Audio-Filters" href="#Audio-Filters">19. Audio Filters</a>
   <ul class="toc">
-    <li><a name="toc-anull" href="#anull">15.1 anull</a></li>
+    <li><a name="toc-anull" href="#anull">19.1 anull</a></li>
   </ul></li>
-  <li><a name="toc-Audio-Sources" href="#Audio-Sources">16. Audio Sources</a>
+  <li><a name="toc-Audio-Sources" href="#Audio-Sources">20. Audio Sources</a>
   <ul class="toc">
-    <li><a name="toc-anullsrc" href="#anullsrc">16.1 anullsrc</a></li>
+    <li><a name="toc-anullsrc" href="#anullsrc">20.1 anullsrc</a></li>
   </ul></li>
-  <li><a name="toc-Audio-Sinks" href="#Audio-Sinks">17. Audio Sinks</a>
+  <li><a name="toc-Audio-Sinks" href="#Audio-Sinks">21. Audio Sinks</a>
   <ul class="toc">
-    <li><a name="toc-anullsink" href="#anullsink">17.1 anullsink</a></li>
+    <li><a name="toc-anullsink" href="#anullsink">21.1 anullsink</a></li>
   </ul></li>
-  <li><a name="toc-Video-Filters" href="#Video-Filters">18. Video Filters</a>
+  <li><a name="toc-Video-Filters" href="#Video-Filters">22. Video Filters</a>
   <ul class="toc">
-    <li><a name="toc-blackframe" href="#blackframe">18.1 blackframe</a></li>
-    <li><a name="toc-copy" href="#copy">18.2 copy</a></li>
-    <li><a name="toc-crop" href="#crop">18.3 crop</a></li>
-    <li><a name="toc-cropdetect" href="#cropdetect">18.4 cropdetect</a></li>
-    <li><a name="toc-drawbox" href="#drawbox">18.5 drawbox</a></li>
-    <li><a name="toc-drawtext" href="#drawtext">18.6 drawtext</a></li>
-    <li><a name="toc-fade" href="#fade">18.7 fade</a></li>
-    <li><a name="toc-fieldorder" href="#fieldorder">18.8 fieldorder</a></li>
-    <li><a name="toc-fifo" href="#fifo">18.9 fifo</a></li>
-    <li><a name="toc-format" href="#format">18.10 format</a></li>
-    <li><a name="toc-frei0r-1" href="#frei0r-1">18.11 frei0r</a></li>
-    <li><a name="toc-gradfun" href="#gradfun">18.12 gradfun</a></li>
-    <li><a name="toc-hflip" href="#hflip">18.13 hflip</a></li>
-    <li><a name="toc-hqdn3d" href="#hqdn3d">18.14 hqdn3d</a></li>
-    <li><a name="toc-mp" href="#mp">18.15 mp</a></li>
-    <li><a name="toc-noformat" href="#noformat">18.16 noformat</a></li>
-    <li><a name="toc-null-1" href="#null-1">18.17 null</a></li>
-    <li><a name="toc-ocv" href="#ocv">18.18 ocv</a>
+    <li><a name="toc-blackframe" href="#blackframe">22.1 blackframe</a></li>
+    <li><a name="toc-copy" href="#copy">22.2 copy</a></li>
+    <li><a name="toc-crop" href="#crop">22.3 crop</a></li>
+    <li><a name="toc-cropdetect" href="#cropdetect">22.4 cropdetect</a></li>
+    <li><a name="toc-drawbox" href="#drawbox">22.5 drawbox</a></li>
+    <li><a name="toc-drawtext" href="#drawtext">22.6 drawtext</a></li>
+    <li><a name="toc-fade" href="#fade">22.7 fade</a></li>
+    <li><a name="toc-fieldorder" href="#fieldorder">22.8 fieldorder</a></li>
+    <li><a name="toc-fifo" href="#fifo">22.9 fifo</a></li>
+    <li><a name="toc-format" href="#format">22.10 format</a></li>
+    <li><a name="toc-frei0r-1" href="#frei0r-1">22.11 frei0r</a></li>
+    <li><a name="toc-gradfun" href="#gradfun">22.12 gradfun</a></li>
+    <li><a name="toc-hflip" href="#hflip">22.13 hflip</a></li>
+    <li><a name="toc-hqdn3d" href="#hqdn3d">22.14 hqdn3d</a></li>
+    <li><a name="toc-mp" href="#mp">22.15 mp</a></li>
+    <li><a name="toc-noformat" href="#noformat">22.16 noformat</a></li>
+    <li><a name="toc-null-1" href="#null-1">22.17 null</a></li>
+    <li><a name="toc-ocv" href="#ocv">22.18 ocv</a>
     <ul class="toc">
-      <li><a name="toc-dilate-1" href="#dilate-1">18.18.1 dilate</a></li>
-      <li><a name="toc-erode" href="#erode">18.18.2 erode</a></li>
-      <li><a name="toc-smooth" href="#smooth">18.18.3 smooth</a></li>
+      <li><a name="toc-dilate-1" href="#dilate-1">22.18.1 dilate</a></li>
+      <li><a name="toc-erode" href="#erode">22.18.2 erode</a></li>
+      <li><a name="toc-smooth" href="#smooth">22.18.3 smooth</a></li>
     </ul></li>
-    <li><a name="toc-overlay" href="#overlay">18.19 overlay</a></li>
-    <li><a name="toc-pad" href="#pad">18.20 pad</a></li>
-    <li><a name="toc-pixdesctest" href="#pixdesctest">18.21 pixdesctest</a></li>
-    <li><a name="toc-scale" href="#scale">18.22 scale</a></li>
-    <li><a name="toc-setdar-1" href="#setdar-1">18.23 setdar</a></li>
-    <li><a name="toc-setpts" href="#setpts">18.24 setpts</a></li>
-    <li><a name="toc-setsar-1" href="#setsar-1">18.25 setsar</a></li>
-    <li><a name="toc-settb" href="#settb">18.26 settb</a></li>
-    <li><a name="toc-showinfo" href="#showinfo">18.27 showinfo</a></li>
-    <li><a name="toc-slicify" href="#slicify">18.28 slicify</a></li>
-    <li><a name="toc-transpose" href="#transpose">18.29 transpose</a></li>
-    <li><a name="toc-unsharp" href="#unsharp">18.30 unsharp</a></li>
-    <li><a name="toc-vflip" href="#vflip">18.31 vflip</a></li>
-    <li><a name="toc-yadif" href="#yadif">18.32 yadif</a></li>
+    <li><a name="toc-overlay" href="#overlay">22.19 overlay</a></li>
+    <li><a name="toc-pad" href="#pad">22.20 pad</a></li>
+    <li><a name="toc-pixdesctest" href="#pixdesctest">22.21 pixdesctest</a></li>
+    <li><a name="toc-scale" href="#scale">22.22 scale</a></li>
+    <li><a name="toc-select" href="#select">22.23 select</a></li>
+    <li><a name="toc-setdar-1" href="#setdar-1">22.24 setdar</a></li>
+    <li><a name="toc-setpts" href="#setpts">22.25 setpts</a></li>
+    <li><a name="toc-setsar-1" href="#setsar-1">22.26 setsar</a></li>
+    <li><a name="toc-settb" href="#settb">22.27 settb</a></li>
+    <li><a name="toc-showinfo" href="#showinfo">22.28 showinfo</a></li>
+    <li><a name="toc-slicify" href="#slicify">22.29 slicify</a></li>
+    <li><a name="toc-split" href="#split">22.30 split</a></li>
+    <li><a name="toc-transpose" href="#transpose">22.31 transpose</a></li>
+    <li><a name="toc-unsharp" href="#unsharp">22.32 unsharp</a></li>
+    <li><a name="toc-vflip" href="#vflip">22.33 vflip</a></li>
+    <li><a name="toc-yadif" href="#yadif">22.34 yadif</a></li>
   </ul></li>
-  <li><a name="toc-Video-Sources" href="#Video-Sources">19. Video Sources</a>
+  <li><a name="toc-Video-Sources" href="#Video-Sources">23. Video Sources</a>
   <ul class="toc">
-    <li><a name="toc-buffer" href="#buffer">19.1 buffer</a></li>
-    <li><a name="toc-color" href="#color">19.2 color</a></li>
-    <li><a name="toc-movie" href="#movie">19.3 movie</a></li>
-    <li><a name="toc-nullsrc" href="#nullsrc">19.4 nullsrc</a></li>
-    <li><a name="toc-frei0r_005fsrc" href="#frei0r_005fsrc">19.5 frei0r_src</a></li>
+    <li><a name="toc-buffer" href="#buffer">23.1 buffer</a></li>
+    <li><a name="toc-color" href="#color">23.2 color</a></li>
+    <li><a name="toc-movie" href="#movie">23.3 movie</a></li>
+    <li><a name="toc-nullsrc" href="#nullsrc">23.4 nullsrc</a></li>
+    <li><a name="toc-frei0r_005fsrc" href="#frei0r_005fsrc">23.5 frei0r_src</a></li>
   </ul></li>
-  <li><a name="toc-Video-Sinks" href="#Video-Sinks">20. Video Sinks</a>
+  <li><a name="toc-Video-Sinks" href="#Video-Sinks">24. Video Sinks</a>
   <ul class="toc">
-    <li><a name="toc-nullsink" href="#nullsink">20.1 nullsink</a></li>
+    <li><a name="toc-nullsink" href="#nullsink">24.1 nullsink</a></li>
   </ul></li>
-  <li><a name="toc-Metadata" href="#Metadata">21. Metadata</a></li>
+  <li><a name="toc-Metadata" href="#Metadata">25. Metadata</a></li>
 </ul>
 </div>
 
@@ -274,8 +317,8 @@ uses the same audio and video parameters for the outputs as the one
 specified for the inputs.
 </p>
 
-<a name="Options"></a>
-<h1 class="chapter"><a href="ffmpeg.html#toc-Options">3. Options</a></h1>
+<a name="Options-4"></a>
+<h1 class="chapter"><a href="ffmpeg.html#toc-Options-4">3. Options</a></h1>
 
 <p>All the numerical options, if not specified otherwise, accept in input
 a string representing a number, which may contain one of the
@@ -800,7 +843,10 @@ following functions are available:
 
 </dd>
 <dt> &lsquo;<samp>-rc_override <var>override</var></samp>&rsquo;</dt>
-<dd><p>rate control override for specific intervals
+<dd><p>Rate control override for specific intervals, formated as &quot;int,int,int&quot;
+list separated with slashes. Two first values are the beginning and
+end frame numbers, last one is quantizer to use if positive, or quality
+factor if negative.
 </p></dd>
 <dt> &lsquo;<samp>-me_method <var>method</var></samp>&rsquo;</dt>
 <dd><p>Set motion estimation method to <var>method</var>.
@@ -1320,6 +1366,7 @@ following rules:
 <p>First ffmpeg searches for a file named <var>arg</var>.ffpreset in the
 directories &lsquo;<tt>$FFMPEG_DATADIR</tt>&rsquo; (if set), and &lsquo;<tt>$HOME/.ffmpeg</tt>&rsquo;, and in
 the datadir defined at configuration time (usually &lsquo;<tt>PREFIX/share/ffmpeg</tt>&rsquo;)
+or in a &lsquo;<tt>ffpresets</tt>&rsquo; folder along the executable on win32,
 in that order. For example, if the argument is <code>libx264-max</code>, it will
 search for the file &lsquo;<tt>libx264-max.ffpreset</tt>&rsquo;.
 </p>
@@ -1618,6 +1665,15 @@ integer. For example, &quot;trunc(-1.5)&quot; is &quot;-1.0&quot;.
 <dt> &lsquo;<samp>sqrt(expr)</samp>&rsquo;</dt>
 <dd><p>Compute the square root of <var>expr</var>. This is equivalent to
 &quot;(<var>expr</var>)^.5&quot;.
+</p>
+</dd>
+<dt> &lsquo;<samp>not(expr)</samp>&rsquo;</dt>
+<dd><p>Return 1.0 if <var>expr</var> is zero, 0.0 otherwise.
+</p>
+</dd>
+<dt> &lsquo;<samp>pow(x, y)</samp>&rsquo;</dt>
+<dd><p>Compute the power of <var>x</var> elevated <var>y</var>, it is equivalent to
+&quot;(<var>x</var>)^(<var>y</var>)&quot;.
 </p></dd>
 </dl>
 
@@ -1634,10 +1690,6 @@ integer. For example, &quot;trunc(-1.5)&quot; is &quot;-1.0&quot;.
 </p><table><tr><td>&nbsp;</td><td><pre class="example">A*B + not(A)*C
 </pre></td></tr></table>
 
-<p>When A evaluates to either 1 or 0, that is the same as
-</p><table><tr><td>&nbsp;</td><td><pre class="example">A*B + eq(A,0)*C
-</pre></td></tr></table>
-
 <p>In your C code, you can extend the list of unary and binary functions,
 and define recognized constants, so that they are available for your
 expressions.
@@ -1713,8 +1765,62 @@ indication of the corresponding powers of 10 and of 2.
 </p></dd>
 </dl>
 
+<a name="Decoders"></a>
+<h1 class="chapter"><a href="ffmpeg.html#toc-Decoders">7. Decoders</a></h1>
+
+<p>Decoders are configured elements in FFmpeg which allow the decoding of
+multimedia streams.
+</p>
+<p>When you configure your FFmpeg build, all the supported native decoders
+are enabled by default. Decoders requiring an external library must be enabled
+manually via the corresponding <code>--enable-lib</code> option. You can list all
+available decoders using the configure option <code>--list-decoders</code>.
+</p>
+<p>You can disable all the decoders with the configure option
+<code>--disable-decoders</code> and selectively enable / disable single decoders
+with the options <code>--enable-decoder=<var>DECODER</var></code> /
+<code>--disable-decoder=<var>DECODER</var></code>.
+</p>
+<p>The option <code>-codecs</code> of the ff* tools will display the list of
+enabled decoders.
+</p>
+
+<a name="Video-Decoders"></a>
+<h1 class="chapter"><a href="ffmpeg.html#toc-Video-Decoders">8. Video Decoders</a></h1>
+
+<p>A description of some of the currently available video decoders
+follows.
+</p>
+<a name="rawvideo"></a>
+<h2 class="section"><a href="ffmpeg.html#toc-rawvideo">8.1 rawvideo</a></h2>
+
+<p>Rawvideo decoder.
+</p>
+<p>This decoder decodes rawvideo streams.
+</p>
+<a name="Options"></a>
+<h3 class="subsection"><a href="ffmpeg.html#toc-Options">8.1.1 Options</a></h3>
+
+<dl compact="compact">
+<dt> &lsquo;<samp>top <var>top_field_first</var></samp>&rsquo;</dt>
+<dd><p>Specify the assumed field type of the input video.
+</p><dl compact="compact">
+<dt> &lsquo;<samp>-1</samp>&rsquo;</dt>
+<dd><p>the video is assumed to be progressive (default)
+</p></dd>
+<dt> &lsquo;<samp>0</samp>&rsquo;</dt>
+<dd><p>bottom-field-first is assumed
+</p></dd>
+<dt> &lsquo;<samp>1</samp>&rsquo;</dt>
+<dd><p>top-field-first is assumed
+</p></dd>
+</dl>
+
+</dd>
+</dl>
+
 <a name="Encoders"></a>
-<h1 class="chapter"><a href="ffmpeg.html#toc-Encoders">7. Encoders</a></h1>
+<h1 class="chapter"><a href="ffmpeg.html#toc-Encoders">9. Encoders</a></h1>
 
 <p>Encoders are configured elements in FFmpeg which allow the encoding of
 multimedia streams.
@@ -1732,13 +1838,15 @@ with the options <code>--enable-encoder=<var>ENCODER</var></code> /
 <p>The option <code>-codecs</code> of the ff* tools will display the list of
 enabled encoders.
 </p>
-<p>A description of some of the currently available encoders follows.
-</p>
+
 <a name="Audio-Encoders"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-Audio-Encoders">7.1 Audio Encoders</a></h2>
+<h1 class="chapter"><a href="ffmpeg.html#toc-Audio-Encoders">10. Audio Encoders</a></h1>
 
+<p>A description of some of the currently available audio encoders
+follows.
+</p>
 <a name="ac3-and-ac3_005ffixed"></a>
-<h3 class="subsection"><a href="ffmpeg.html#toc-ac3-and-ac3_005ffixed">7.1.1 ac3 and ac3_fixed</a></h3>
+<h2 class="section"><a href="ffmpeg.html#toc-ac3-and-ac3_005ffixed">10.1 ac3 and ac3_fixed</a></h2>
 
 <p>AC-3 audio encoders.
 </p>
@@ -1754,7 +1862,7 @@ default codec for any of the output formats, so it must be specified explicitly
 using the option <code>-acodec ac3_fixed</code> in order to use it.
 </p>
 <a name="AC_002d3-Metadata"></a>
-<h3 class="subheading">AC-3 Metadata</h3>
+<h3 class="subsection"><a href="ffmpeg.html#toc-AC_002d3-Metadata">10.1.1 AC-3 Metadata</a></h3>
 
 <p>The AC-3 metadata options are used to set parameters that describe the audio,
 but in most cases do not affect the audio encoding itself. Some of the options
@@ -1774,7 +1882,7 @@ documents.
 </li></ul>
 
 <a name="Metadata-Control-Options"></a>
-<h4 class="subsubheading">Metadata Control Options</h4>
+<h4 class="subsubsection"><a href="ffmpeg.html#toc-Metadata-Control-Options">10.1.1.1 Metadata Control Options</a></h4>
 
 <dl compact="compact">
 <dt> &lsquo;<samp>-per_frame_metadata <var>boolean</var></samp>&rsquo;</dt>
@@ -1794,7 +1902,7 @@ stream. (default)
 </dl>
 
 <a name="Downmix-Levels"></a>
-<h4 class="subsubheading">Downmix Levels</h4>
+<h4 class="subsubsection"><a href="ffmpeg.html#toc-Downmix-Levels">10.1.1.2 Downmix Levels</a></h4>
 
 <dl compact="compact">
 <dt> &lsquo;<samp>-center_mixlev <var>level</var></samp>&rsquo;</dt>
@@ -1836,7 +1944,7 @@ as a scale factor.  There are 3 valid values:
 </dl>
 
 <a name="Audio-Production-Information"></a>
-<h4 class="subsubheading">Audio Production Information</h4>
+<h4 class="subsubsection"><a href="ffmpeg.html#toc-Audio-Production-Information">10.1.1.3 Audio Production Information</a></h4>
 <p>Audio Production Information is optional information describing the mixing
 environment.  Either none or both of the fields are written to the bitstream.
 </p>
@@ -1875,7 +1983,7 @@ option and the <code>room_type</code> option have the default values.
 </dl>
 
 <a name="Other-Metadata-Options"></a>
-<h4 class="subsubheading">Other Metadata Options</h4>
+<h4 class="subsubsection"><a href="ffmpeg.html#toc-Other-Metadata-Options">10.1.1.4 Other Metadata Options</a></h4>
 
 <dl compact="compact">
 <dt> &lsquo;<samp>-copyright <var>boolean</var></samp>&rsquo;</dt>
@@ -1941,7 +2049,7 @@ original source and not a copy.
 </dl>
 
 <a name="Extended-Bitstream-Information"></a>
-<h4 class="subsubheading">Extended Bitstream Information</h4>
+<h3 class="subsection"><a href="ffmpeg.html#toc-Extended-Bitstream-Information">10.1.2 Extended Bitstream Information</a></h3>
 <p>The extended bitstream options are part of the Alternate Bit Stream Syntax as
 specified in Annex D of the A/52:2010 standard. It is grouped into 2 parts.
 If any one parameter in a group is specified, all values in that group will be
@@ -1952,7 +2060,7 @@ and <code>surround_mixlev</code> options if it supports the Alternate Bit Stream
 Syntax.
 </p>
 <a name="Extended-Bitstream-Information-_002d-Part-1"></a>
-<h4 class="subsubheading">Extended Bitstream Information - Part 1</h4>
+<h4 class="subsubsection"><a href="ffmpeg.html#toc-Extended-Bitstream-Information-_002d-Part-1">10.1.2.1 Extended Bitstream Information - Part 1</a></h4>
 
 <dl compact="compact">
 <dt> &lsquo;<samp>-dmix_mode <var>mode</var></samp>&rsquo;</dt>
@@ -2083,7 +2191,7 @@ surround channel(s) when downmixing to stereo in Lo/Ro mode.
 </dl>
 
 <a name="Extended-Bitstream-Information-_002d-Part-2"></a>
-<h4 class="subsubheading">Extended Bitstream Information - Part 2</h4>
+<h4 class="subsubsection"><a href="ffmpeg.html#toc-Extended-Bitstream-Information-_002d-Part-2">10.1.2.2 Extended Bitstream Information - Part 2</a></h4>
 
 <dl compact="compact">
 <dt> &lsquo;<samp>-dsurex_mode <var>mode</var></samp>&rsquo;</dt>
@@ -2145,7 +2253,7 @@ conversion.
 </dl>
 
 <a name="Other-AC_002d3-Encoding-Options"></a>
-<h3 class="subheading">Other AC-3 Encoding Options</h3>
+<h3 class="subsection"><a href="ffmpeg.html#toc-Other-AC_002d3-Encoding-Options">10.1.3 Other AC-3 Encoding Options</a></h3>
 
 <dl compact="compact">
 <dt> &lsquo;<samp>-stereo_rematrixing <var>boolean</var></samp>&rsquo;</dt>
@@ -2157,8 +2265,272 @@ is highly recommended that it be left as enabled except for testing purposes.
 </dd>
 </dl>
 
+<a name="Floating_002dPoint_002dOnly-AC_002d3-Encoding-Options"></a>
+<h3 class="subsection"><a href="ffmpeg.html#toc-Floating_002dPoint_002dOnly-AC_002d3-Encoding-Options">10.1.4 Floating-Point-Only AC-3 Encoding Options</a></h3>
+
+<p>These options are only valid for the floating-point encoder and do not exist
+for the fixed-point encoder due to the corresponding features not being
+implemented in fixed-point.
+</p>
+<dl compact="compact">
+<dt> &lsquo;<samp>-channel_coupling <var>boolean</var></samp>&rsquo;</dt>
+<dd><p>Enables/Disables use of channel coupling, which is an optional AC-3 feature
+that increases quality by combining high frequency information from multiple
+channels into a single channel. The per-channel high frequency information is
+sent with less accuracy in both the frequency and time domains. This allows
+more bits to be used for lower frequencies while preserving enough information
+to reconstruct the high frequencies. This option is enabled by default for the
+floating-point encoder and should generally be left as enabled except for
+testing purposes or to increase encoding speed.
+</p><dl compact="compact">
+<dt> &lsquo;<samp>-1</samp>&rsquo;</dt>
+<dt> &lsquo;<samp>auto</samp>&rsquo;</dt>
+<dd><p>Selected by Encoder (default)
+</p></dd>
+<dt> &lsquo;<samp>0</samp>&rsquo;</dt>
+<dt> &lsquo;<samp>off</samp>&rsquo;</dt>
+<dd><p>Disable Channel Coupling
+</p></dd>
+<dt> &lsquo;<samp>1</samp>&rsquo;</dt>
+<dt> &lsquo;<samp>on</samp>&rsquo;</dt>
+<dd><p>Enable Channel Coupling
+</p></dd>
+</dl>
+
+</dd>
+<dt> &lsquo;<samp>-cpl_start_band <var>number</var></samp>&rsquo;</dt>
+<dd><p>Coupling Start Band. Sets the channel coupling start band, from 1 to 15. If a
+value higher than the bandwidth is used, it will be reduced to 1 less than the
+coupling end band. If <var>auto</var> is used, the start band will be determined by
+the encoder based on the bit rate, sample rate, and channel layout. This option
+has no effect if channel coupling is disabled.
+</p><dl compact="compact">
+<dt> &lsquo;<samp>-1</samp>&rsquo;</dt>
+<dt> &lsquo;<samp>auto</samp>&rsquo;</dt>
+<dd><p>Selected by Encoder (default)
+</p></dd>
+</dl>
+
+</dd>
+</dl>
+
+
+<a name="Video-Encoders"></a>
+<h1 class="chapter"><a href="ffmpeg.html#toc-Video-Encoders">11. Video Encoders</a></h1>
+
+<p>A description of some of the currently available video encoders
+follows.
+</p>
+<a name="libvpx"></a>
+<h2 class="section"><a href="ffmpeg.html#toc-libvpx">11.1 libvpx</a></h2>
+
+<p>VP8 format supported through libvpx.
+</p>
+<p>Requires the presence of the libvpx headers and library during configuration.
+You need to explicitly configure the build with <code>--enable-libvpx</code>.
+</p>
+<a name="Options-1"></a>
+<h3 class="subsection"><a href="ffmpeg.html#toc-Options-1">11.1.1 Options</a></h3>
+
+<p>Mapping from FFmpeg to libvpx options with conversion notes in parentheses.
+</p>
+<dl compact="compact">
+<dt> &lsquo;<samp>threads</samp>&rsquo;</dt>
+<dd><p>g_threads
+</p>
+</dd>
+<dt> &lsquo;<samp>profile</samp>&rsquo;</dt>
+<dd><p>g_profile
+</p>
+</dd>
+<dt> &lsquo;<samp>vb</samp>&rsquo;</dt>
+<dd><p>rc_target_bitrate
+</p>
+</dd>
+<dt> &lsquo;<samp>g</samp>&rsquo;</dt>
+<dd><p>kf_max_dist
+</p>
+</dd>
+<dt> &lsquo;<samp>keyint_min</samp>&rsquo;</dt>
+<dd><p>kf_min_dist
+</p>
+</dd>
+<dt> &lsquo;<samp>qmin</samp>&rsquo;</dt>
+<dd><p>rc_min_quantizer
+</p>
+</dd>
+<dt> &lsquo;<samp>qmax</samp>&rsquo;</dt>
+<dd><p>rc_max_quantizer
+</p>
+</dd>
+<dt> &lsquo;<samp>bufsize, vb</samp>&rsquo;</dt>
+<dd><p>rc_buf_sz
+<code>(bufsize * 1000 / vb)</code>
+</p>
+<p>rc_buf_optimal_sz
+<code>(bufsize * 1000 / vb * 5 / 6)</code>
+</p>
+</dd>
+<dt> &lsquo;<samp>rc_init_occupancy, vb</samp>&rsquo;</dt>
+<dd><p>rc_buf_initial_sz
+<code>(rc_init_occupancy * 1000 / vb)</code>
+</p>
+</dd>
+<dt> &lsquo;<samp>rc_buffer_aggressivity</samp>&rsquo;</dt>
+<dd><p>rc_undershoot_pct
+</p>
+</dd>
+<dt> &lsquo;<samp>skip_threshold</samp>&rsquo;</dt>
+<dd><p>rc_dropframe_thresh
+</p>
+</dd>
+<dt> &lsquo;<samp>qcomp</samp>&rsquo;</dt>
+<dd><p>rc_2pass_vbr_bias_pct
+</p>
+</dd>
+<dt> &lsquo;<samp>maxrate, vb</samp>&rsquo;</dt>
+<dd><p>rc_2pass_vbr_maxsection_pct
+<code>(maxrate * 100 / vb)</code>
+</p>
+</dd>
+<dt> &lsquo;<samp>minrate, vb</samp>&rsquo;</dt>
+<dd><p>rc_2pass_vbr_minsection_pct
+<code>(minrate * 100 / vb)</code>
+</p>
+</dd>
+<dt> &lsquo;<samp>minrate, maxrate, vb</samp>&rsquo;</dt>
+<dd><p><code>VPX_CBR</code>
+<code>(minrate == maxrate == vb)</code>
+</p>
+</dd>
+<dt> &lsquo;<samp>crf</samp>&rsquo;</dt>
+<dd><p><code>VPX_CQ</code>, <code>VP8E_SET_CQ_LEVEL</code>
+</p>
+</dd>
+<dt> &lsquo;<samp>quality</samp>&rsquo;</dt>
+<dd><dl compact="compact">
+<dt> &lsquo;<samp><var>best</var></samp>&rsquo;</dt>
+<dd><p><code>VPX_DL_BEST_QUALITY</code>
+</p></dd>
+<dt> &lsquo;<samp><var>good</var></samp>&rsquo;</dt>
+<dd><p><code>VPX_DL_GOOD_QUALITY</code>
+</p></dd>
+<dt> &lsquo;<samp><var>realtime</var></samp>&rsquo;</dt>
+<dd><p><code>VPX_DL_REALTIME</code>
+</p></dd>
+</dl>
+
+</dd>
+<dt> &lsquo;<samp>speed</samp>&rsquo;</dt>
+<dd><p><code>VP8E_SET_CPUUSED</code>
+</p>
+</dd>
+<dt> &lsquo;<samp>nr</samp>&rsquo;</dt>
+<dd><p><code>VP8E_SET_NOISE_SENSITIVITY</code>
+</p>
+</dd>
+<dt> &lsquo;<samp>mb_threshold</samp>&rsquo;</dt>
+<dd><p><code>VP8E_SET_STATIC_THRESHOLD</code>
+</p>
+</dd>
+<dt> &lsquo;<samp>slices</samp>&rsquo;</dt>
+<dd><p><code>VP8E_SET_TOKEN_PARTITIONS</code>
+</p>
+</dd>
+<dt> &lsquo;<samp>Alternate reference frame related</samp>&rsquo;</dt>
+<dd><dl compact="compact">
+<dt> &lsquo;<samp>vp8flags altref</samp>&rsquo;</dt>
+<dd><p><code>VP8E_SET_ENABLEAUTOALTREF</code>
+</p></dd>
+<dt> &lsquo;<samp><var>arnr_max_frames</var></samp>&rsquo;</dt>
+<dd><p><code>VP8E_SET_ARNR_MAXFRAMES</code>
+</p></dd>
+<dt> &lsquo;<samp><var>arnr_type</var></samp>&rsquo;</dt>
+<dd><p><code>VP8E_SET_ARNR_TYPE</code>
+</p></dd>
+<dt> &lsquo;<samp><var>arnr_strength</var></samp>&rsquo;</dt>
+<dd><p><code>VP8E_SET_ARNR_STRENGTH</code>
+</p></dd>
+<dt> &lsquo;<samp><var>rc_lookahead</var></samp>&rsquo;</dt>
+<dd><p>g_lag_in_frames
+</p></dd>
+</dl>
+
+</dd>
+<dt> &lsquo;<samp>vp8flags error_resilient</samp>&rsquo;</dt>
+<dd><p>g_error_resilient
+</p>
+</dd>
+</dl>
+
+<p>For more information about libvpx see:
+<a href="http://www.webmproject.org/">http://www.webmproject.org/</a>
+</p>
+<a name="libx264"></a>
+<h2 class="section"><a href="ffmpeg.html#toc-libx264">11.2 libx264</a></h2>
+
+<p>H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 format supported through
+libx264.
+</p>
+<p>Requires the presence of the libx264 headers and library during
+configuration. You need to explicitly configure the build with
+<code>--enable-libx264</code>.
+</p>
+<a name="Options-2"></a>
+<h3 class="subsection"><a href="ffmpeg.html#toc-Options-2">11.2.1 Options</a></h3>
+
+<dl compact="compact">
+<dt> &lsquo;<samp>preset <var>preset_name</var></samp>&rsquo;</dt>
+<dd><p>Set the encoding preset.
+</p>
+</dd>
+<dt> &lsquo;<samp>tune <var>tune_name</var></samp>&rsquo;</dt>
+<dd><p>Tune the encoding params.
+Deprecated in favor of <var>x264_opts</var>
+</p>
+</dd>
+<dt> &lsquo;<samp>fastfirstpass <var>bool</var></samp>&rsquo;</dt>
+<dd><p>Use fast settings when encoding first pass, default value is 1.
+Deprecated in favor of <var>x264_opts</var>.
+</p>
+</dd>
+<dt> &lsquo;<samp>profile <var>profile_name</var></samp>&rsquo;</dt>
+<dd><p>Set profile restrictions.
+Deprecated in favor of <var>x264_opts</var>.
+</p>
+</dd>
+<dt> &lsquo;<samp>level <var>level</var></samp>&rsquo;</dt>
+<dd><p>Specify level (as defined by Annex A).
+Deprecated in favor of <var>x264_opts</var>.
+</p>
+</dd>
+<dt> &lsquo;<samp>passlogfile <var>filename</var></samp>&rsquo;</dt>
+<dd><p>Specify filename for 2 pass stats.
+Deprecated in favor of <var>x264_opts</var>.
+</p>
+</dd>
+<dt> &lsquo;<samp>wpredp <var>wpred_type</var></samp>&rsquo;</dt>
+<dd><p>Specify Weighted prediction for P-frames.
+Deprecated in favor of <var>x264_opts</var>.
+</p>
+</dd>
+<dt> &lsquo;<samp>x264opts <var>options</var></samp>&rsquo;</dt>
+<dd><p>Allow to set any x264 option, see x264 manual for a list.
+</p>
+<p><var>options</var> is a list of <var>key</var>=<var>value</var> couples separated by
+&quot;:&quot;.
+</p></dd>
+</dl>
+
+<p>For example to specify libx264 encoding options with &lsquo;<tt>ffmpeg</tt>&rsquo;:
+</p><table><tr><td>&nbsp;</td><td><pre class="example">ffmpeg -i foo.mpg -vcodec libx264 -x264opts keyint=123:min-keyint=20 -an out.mkv
+</pre></td></tr></table>
+
+<p>For more information about libx264 and the supported options see:
+<a href="http://www.videolan.org/developers/x264.html">http://www.videolan.org/developers/x264.html</a>
+</p>
 <a name="Demuxers"></a>
-<h1 class="chapter"><a href="ffmpeg.html#toc-Demuxers">8. Demuxers</a></h1>
+<h1 class="chapter"><a href="ffmpeg.html#toc-Demuxers">12. Demuxers</a></h1>
 
 <p>Demuxers are configured elements in FFmpeg which allow to read the
 multimedia streams from a particular type of file.
@@ -2177,8 +2549,8 @@ enabled demuxers.
 </p>
 <p>The description of some of the currently available demuxers follows.
 </p>
-<a name="image2-1"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-image2-1">8.1 image2</a></h2>
+<a name="image2"></a>
+<h2 class="section"><a href="ffmpeg.html#toc-image2">12.1 image2</a></h2>
 
 <p>Image file demuxer.
 </p>
@@ -2222,8 +2594,8 @@ second:
 </p><table><tr><td>&nbsp;</td><td><pre class="example">ffmpeg -f image2 -i img.jpeg img.png
 </pre></td></tr></table>
 
-<a name="applehttp-1"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-applehttp-1">8.2 applehttp</a></h2>
+<a name="applehttp"></a>
+<h2 class="section"><a href="ffmpeg.html#toc-applehttp">12.2 applehttp</a></h2>
 
 <p>Apple HTTP Live Streaming demuxer.
 </p>
@@ -2235,7 +2607,7 @@ The total bitrate of the variant that the stream belongs to is
 available in a metadata key named &quot;variant_bitrate&quot;.
 </p>
 <a name="Muxers"></a>
-<h1 class="chapter"><a href="ffmpeg.html#toc-Muxers">9. Muxers</a></h1>
+<h1 class="chapter"><a href="ffmpeg.html#toc-Muxers">13. Muxers</a></h1>
 
 <p>Muxers are configured elements in FFmpeg which allow writing
 multimedia streams to a particular type of file.
@@ -2256,7 +2628,7 @@ enabled muxers.
 </p>
 <p><a name="crc"></a>
 </p><a name="crc-1"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-crc-1">9.1 crc</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-crc-1">13.1 crc</a></h2>
 
 <p>CRC (Cyclic Redundancy Check) testing format.
 </p>
@@ -2289,7 +2661,7 @@ and the input video converted to MPEG-2 video, use the command:
 </p>
 <p><a name="framecrc"></a>
 </p><a name="framecrc-1"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-framecrc-1">9.2 framecrc</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-framecrc-1">13.2 framecrc</a></h2>
 
 <p>Per-frame CRC (Cyclic Redundancy Check) testing format.
 </p>
@@ -2322,8 +2694,8 @@ MPEG-2 video, use the command:
 
 <p>See also the <code>crc</code> muxer (see <a href="#crc">crc</a>).
 </p>
-<a name="image2"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-image2">9.3 image2</a></h2>
+<a name="image2-1"></a>
+<h2 class="section"><a href="ffmpeg.html#toc-image2-1">13.3 image2</a></h2>
 
 <p>Image file muxer.
 </p>
@@ -2378,7 +2750,7 @@ specify the name of the &rsquo;.Y&rsquo; file. The muxer will automatically open
 &rsquo;.U&rsquo; and &rsquo;.V&rsquo; files as required.
 </p>
 <a name="mpegts"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-mpegts">9.4 mpegts</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-mpegts">13.4 mpegts</a></h2>
 
 <p>MPEG transport stream muxer.
 </p>
@@ -2424,7 +2796,7 @@ and <code>service_name</code>. If they are not set the default for
 </pre></td></tr></table>
 
 <a name="null"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-null">9.5 null</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-null">13.5 null</a></h2>
 
 <p>Null muxer.
 </p>
@@ -2444,8 +2816,86 @@ syntax.
 </p><table><tr><td>&nbsp;</td><td><pre class="example">ffmpeg -benchmark -i INPUT -f null -
 </pre></td></tr></table>
 
+<a name="matroska"></a>
+<h2 class="section"><a href="ffmpeg.html#toc-matroska">13.6 matroska</a></h2>
+
+<p>Matroska container muxer.
+</p>
+<p>This muxer implements the matroska and webm container specs.
+</p>
+<p>The recognized metadata settings in this muxer are:
+</p>
+<dl compact="compact">
+<dt> &lsquo;<samp>title=<var>title name</var></samp>&rsquo;</dt>
+<dd><p>Name provided to a single track
+</p></dd>
+</dl>
+
+<dl compact="compact">
+<dt> &lsquo;<samp>language=<var>language name</var></samp>&rsquo;</dt>
+<dd><p>Specifies the language of the track in the Matroska languages form
+</p></dd>
+</dl>
+
+<dl compact="compact">
+<dt> &lsquo;<samp>stereo_mode=<var>mode</var></samp>&rsquo;</dt>
+<dd><p>Stereo 3D video layout of two views in a single video track
+</p><dl compact="compact">
+<dt> &lsquo;<samp>mono</samp>&rsquo;</dt>
+<dd><p>video is not stereo
+</p></dd>
+<dt> &lsquo;<samp>left_right</samp>&rsquo;</dt>
+<dd><p>Both views are arranged side by side, Left-eye view is on the left
+</p></dd>
+<dt> &lsquo;<samp>bottom_top</samp>&rsquo;</dt>
+<dd><p>Both views are arranged in top-bottom orientation, Left-eye view is at bottom
+</p></dd>
+<dt> &lsquo;<samp>top_bottom</samp>&rsquo;</dt>
+<dd><p>Both views are arranged in top-bottom orientation, Left-eye view is on top
+</p></dd>
+<dt> &lsquo;<samp>checkerboard_rl</samp>&rsquo;</dt>
+<dd><p>Each view is arranged in a checkerboard interleaved pattern, Left-eye view being first
+</p></dd>
+<dt> &lsquo;<samp>checkerboard_lr</samp>&rsquo;</dt>
+<dd><p>Each view is arranged in a checkerboard interleaved pattern, Right-eye view being first
+</p></dd>
+<dt> &lsquo;<samp>row_interleaved_rl</samp>&rsquo;</dt>
+<dd><p>Each view is constituted by a row based interleaving, Right-eye view is first row
+</p></dd>
+<dt> &lsquo;<samp>row_interleaved_lr</samp>&rsquo;</dt>
+<dd><p>Each view is constituted by a row based interleaving, Left-eye view is first row
+</p></dd>
+<dt> &lsquo;<samp>col_interleaved_rl</samp>&rsquo;</dt>
+<dd><p>Both views are arranged in a column based interleaving manner, Right-eye view is first column
+</p></dd>
+<dt> &lsquo;<samp>col_interleaved_lr</samp>&rsquo;</dt>
+<dd><p>Both views are arranged in a column based interleaving manner, Left-eye view is first column
+</p></dd>
+<dt> &lsquo;<samp>anaglyph_cyan_red</samp>&rsquo;</dt>
+<dd><p>All frames are in anaglyph format viewable through red-cyan filters
+</p></dd>
+<dt> &lsquo;<samp>right_left</samp>&rsquo;</dt>
+<dd><p>Both views are arranged side by side, Right-eye view is on the left
+</p></dd>
+<dt> &lsquo;<samp>anaglyph_green_magenta</samp>&rsquo;</dt>
+<dd><p>All frames are in anaglyph format viewable through green-magenta filters
+</p></dd>
+<dt> &lsquo;<samp>block_lr</samp>&rsquo;</dt>
+<dd><p>Both eyes laced in one Block, Left-eye view is first
+</p></dd>
+<dt> &lsquo;<samp>block_rl</samp>&rsquo;</dt>
+<dd><p>Both eyes laced in one Block, Right-eye view is first
+</p></dd>
+</dl>
+</dd>
+</dl>
+
+<p>For example a 3D WebM clip can be created using the following command line:
+</p><table><tr><td>&nbsp;</td><td><pre class="example">ffmpeg -i sample_left_right_clip.mpg -an -vcodec libvpx -metadata stereo_mode=left_right -y stereo_clip.webm
+</pre></td></tr></table>
+
 <a name="Input-Devices"></a>
-<h1 class="chapter"><a href="ffmpeg.html#toc-Input-Devices">10. Input Devices</a></h1>
+<h1 class="chapter"><a href="ffmpeg.html#toc-Input-Devices">14. Input Devices</a></h1>
 
 <p>Input devices are configured elements in FFmpeg which allow to access
 the data coming from a multimedia device attached to your system.
@@ -2464,8 +2914,8 @@ supported input devices (amongst the demuxers).
 </p>
 <p>A description of the currently available input devices follows.
 </p>
-<a name="alsa"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-alsa">10.1 alsa</a></h2>
+<a name="alsa-1"></a>
+<h2 class="section"><a href="ffmpeg.html#toc-alsa-1">14.1 alsa</a></h2>
 
 <p>ALSA (Advanced Linux Sound Architecture) input device.
 </p>
@@ -2497,17 +2947,17 @@ card id 0, you may run the command:
 <a href="http://www.alsa-project.org/alsa-doc/alsa-lib/pcm.html">http://www.alsa-project.org/alsa-doc/alsa-lib/pcm.html</a>
 </p>
 <a name="bktr"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-bktr">10.2 bktr</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-bktr">14.2 bktr</a></h2>
 
 <p>BSD video input device.
 </p>
 <a name="dv1394"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-dv1394">10.3 dv1394</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-dv1394">14.3 dv1394</a></h2>
 
 <p>Linux DV 1394 input device.
 </p>
 <a name="fbdev"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-fbdev">10.4 fbdev</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-fbdev">14.4 fbdev</a></h2>
 
 <p>Linux framebuffer input device.
 </p>
@@ -2531,7 +2981,7 @@ Documentation/fb/framebuffer.txt included in the Linux source tree.
 <p>See also <a href="http://linux-fbdev.sourceforge.net/">http://linux-fbdev.sourceforge.net/</a>, and fbset(1).
 </p>
 <a name="jack"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-jack">10.5 jack</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-jack">14.5 jack</a></h2>
 
 <p>JACK input device.
 </p>
@@ -2580,12 +3030,12 @@ $ jack_connect metro:120_bpm ffmpeg:input_1
 <a href="http://jackaudio.org/">http://jackaudio.org/</a>
 </p>
 <a name="libdc1394"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-libdc1394">10.6 libdc1394</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-libdc1394">14.6 libdc1394</a></h2>
 
 <p>IIDC1394 input device, based on libdc1394 and libraw1394.
 </p>
-<a name="oss"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-oss">10.7 oss</a></h2>
+<a name="oss-1"></a>
+<h2 class="section"><a href="ffmpeg.html#toc-oss-1">14.7 oss</a></h2>
 
 <p>Open Sound System input device.
 </p>
@@ -2601,8 +3051,8 @@ command:
 <p>For more information about OSS see:
 <a href="http://manuals.opensound.com/usersguide/dsp.html">http://manuals.opensound.com/usersguide/dsp.html</a>
 </p>
-<a name="sndio-1"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-sndio-1">10.8 sndio</a></h2>
+<a name="sndio"></a>
+<h2 class="section"><a href="ffmpeg.html#toc-sndio">14.8 sndio</a></h2>
 
 <p>sndio input device.
 </p>
@@ -2619,7 +3069,7 @@ command:
 </pre></td></tr></table>
 
 <a name="video4linux-and-video4linux2"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-video4linux-and-video4linux2">10.9 video4linux and video4linux2</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-video4linux-and-video4linux2">14.9 video4linux and video4linux2</a></h2>
 
 <p>Video4Linux and Video4Linux2 input video devices.
 </p>
@@ -2658,7 +3108,7 @@ ffmpeg -f video4linux2 -i /dev/video0 out.mpeg
 </pre></td></tr></table>
 
 <a name="vfwcap"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-vfwcap">10.10 vfwcap</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-vfwcap">14.10 vfwcap</a></h2>
 
 <p>VfW (Video for Windows) capture input device.
 </p>
@@ -2667,7 +3117,7 @@ ffmpeg -f video4linux2 -i /dev/video0 out.mpeg
 other filename will be interpreted as device number 0.
 </p>
 <a name="x11grab"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-x11grab">10.11 x11grab</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-x11grab">14.11 x11grab</a></h2>
 
 <p>X11 video input device.
 </p>
@@ -2699,7 +3149,7 @@ ffmpeg -f x11grab -25 -s cif -i :0.0+10,20 out.mpg
 </pre></td></tr></table>
 
 <a name="Output-Devices"></a>
-<h1 class="chapter"><a href="ffmpeg.html#toc-Output-Devices">11. Output Devices</a></h1>
+<h1 class="chapter"><a href="ffmpeg.html#toc-Output-Devices">15. Output Devices</a></h1>
 
 <p>Output devices are configured elements in FFmpeg which allow to write
 multimedia data to an output device attached to your system.
@@ -2718,23 +3168,67 @@ enabled output devices (amongst the muxers).
 </p>
 <p>A description of the currently available output devices follows.
 </p>
-<a name="alsa-1"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-alsa-1">11.1 alsa</a></h2>
+<a name="alsa"></a>
+<h2 class="section"><a href="ffmpeg.html#toc-alsa">15.1 alsa</a></h2>
 
 <p>ALSA (Advanced Linux Sound Architecture) output device.
 </p>
-<a name="oss-1"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-oss-1">11.2 oss</a></h2>
+<a name="oss"></a>
+<h2 class="section"><a href="ffmpeg.html#toc-oss">15.2 oss</a></h2>
 
 <p>OSS (Open Sound System) output device.
 </p>
-<a name="sndio"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-sndio">11.3 sndio</a></h2>
+<a name="sdl"></a>
+<h2 class="section"><a href="ffmpeg.html#toc-sdl">15.3 sdl</a></h2>
+
+<p>SDL (Simple Directmedia Layer) output device.
+</p>
+<p>This output devices allows to show a video stream in an SDL
+window. Only one SDL window is allowed per application, so you can
+have only one instance of this output device in an application.
+</p>
+<p>To enable this output device you need libsdl installed on your system
+when configuring your build.
+</p>
+<p>For more information about SDL, check:
+<a href="http://www.libsdl.org/">http://www.libsdl.org/</a>
+</p>
+<a name="Options-3"></a>
+<h3 class="subsection"><a href="ffmpeg.html#toc-Options-3">15.3.1 Options</a></h3>
+
+<dl compact="compact">
+<dt> &lsquo;<samp>window_title</samp>&rsquo;</dt>
+<dd><p>Set the SDL window title, if not specified default to the filename
+specified for the output device.
+</p>
+</dd>
+<dt> &lsquo;<samp>icon_title</samp>&rsquo;</dt>
+<dd><p>Set the name of the iconified SDL window, if not specified it is set
+to the same value of <var>window_title</var>.
+</p>
+</dd>
+<dt> &lsquo;<samp>window_size</samp>&rsquo;</dt>
+<dd><p>Set the SDL window size, can be a string of the form
+<var>width</var>x<var>height</var> or a video size abbreviation.
+If not specified it defaults to the size of the input video.
+</p></dd>
+</dl>
+
+<a name="Examples-1"></a>
+<h3 class="subsection"><a href="ffmpeg.html#toc-Examples-1">15.3.2 Examples</a></h3>
+
+<p>The following command shows the &lsquo;<tt>ffmpeg</tt>&rsquo; output is an
+SDL window, forcing its size to the qcif format:
+</p><table><tr><td>&nbsp;</td><td><pre class="example">ffmpeg -i INPUT -vcodec rawvideo -pix_fmt yuv420p -window_size qcif -f sdl &quot;SDL output&quot;
+</pre></td></tr></table>
+
+<a name="sndio-1"></a>
+<h2 class="section"><a href="ffmpeg.html#toc-sndio-1">15.4 sndio</a></h2>
 
 <p>sndio audio output device.
 </p>
 <a name="Protocols"></a>
-<h1 class="chapter"><a href="ffmpeg.html#toc-Protocols">12. Protocols</a></h1>
+<h1 class="chapter"><a href="ffmpeg.html#toc-Protocols">16. Protocols</a></h1>
 
 <p>Protocols are configured elements in FFmpeg which allow to access
 resources which require the use of a particular protocol.
@@ -2754,8 +3248,8 @@ supported protocols.
 </p>
 <p>A description of the currently available protocols follows.
 </p>
-<a name="applehttp"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-applehttp">12.1 applehttp</a></h2>
+<a name="applehttp-1"></a>
+<h2 class="section"><a href="ffmpeg.html#toc-applehttp-1">16.1 applehttp</a></h2>
 
 <p>Read Apple HTTP Live Streaming compliant segmented stream as
 a uniform one. The M3U8 playlists describing the segments can be
@@ -2771,7 +3265,7 @@ applehttp+file://path/to/local/resource.m3u8
 </pre></td></tr></table>
 
 <a name="concat"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-concat">12.2 concat</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-concat">16.2 concat</a></h2>
 
 <p>Physical concatenation protocol.
 </p>
@@ -2796,7 +3290,7 @@ command:
 many shells.
 </p>
 <a name="file"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-file">12.3 file</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-file">16.3 file</a></h2>
 
 <p>File access protocol.
 </p>
@@ -2812,22 +3306,22 @@ specified with the name &quot;FILE.mpeg&quot; is interpreted as the URL
 &quot;file:FILE.mpeg&quot;.
 </p>
 <a name="gopher"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-gopher">12.4 gopher</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-gopher">16.4 gopher</a></h2>
 
 <p>Gopher protocol.
 </p>
 <a name="http"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-http">12.5 http</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-http">16.5 http</a></h2>
 
 <p>HTTP (Hyper Text Transfer Protocol).
 </p>
 <a name="mmst"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-mmst">12.6 mmst</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-mmst">16.6 mmst</a></h2>
 
 <p>MMS (Microsoft Media Server) protocol over TCP.
 </p>
 <a name="mmsh"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-mmsh">12.7 mmsh</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-mmsh">16.7 mmsh</a></h2>
 
 <p>MMS (Microsoft Media Server) protocol over HTTP.
 </p>
@@ -2836,7 +3330,7 @@ specified with the name &quot;FILE.mpeg&quot; is interpreted as the URL
 </pre></td></tr></table>
 
 <a name="md5"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-md5">12.8 md5</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-md5">16.8 md5</a></h2>
 
 <p>MD5 output protocol.
 </p>
@@ -2856,7 +3350,7 @@ ffmpeg -i input.flv -f avi -y md5:
 be seekable, so they will fail with the MD5 output protocol.
 </p>
 <a name="pipe"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-pipe">12.9 pipe</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-pipe">16.9 pipe</a></h2>
 
 <p>UNIX pipe access protocol.
 </p>
@@ -2887,7 +3381,7 @@ ffmpeg -i test.wav -f avi pipe: | cat &gt; test.avi
 be seekable, so they will fail with the pipe output protocol.
 </p>
 <a name="rtmp"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-rtmp">12.10 rtmp</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-rtmp">16.10 rtmp</a></h2>
 
 <p>Real-Time Messaging Protocol.
 </p>
@@ -2927,7 +3421,7 @@ application specified in <var>app</var>, may be prefixed by &quot;mp4:&quot;.
 </pre></td></tr></table>
 
 <a name="rtmp_002c-rtmpe_002c-rtmps_002c-rtmpt_002c-rtmpte"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-rtmp_002c-rtmpe_002c-rtmps_002c-rtmpt_002c-rtmpte">12.11 rtmp, rtmpe, rtmps, rtmpt, rtmpte</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-rtmp_002c-rtmpe_002c-rtmps_002c-rtmpt_002c-rtmpte">16.11 rtmp, rtmpe, rtmps, rtmpt, rtmpte</a></h2>
 
 <p>Real-Time Messaging Protocol and its variants supported through
 librtmp.
@@ -2965,12 +3459,12 @@ meaning as specified for the RTMP native protocol.
 </pre></td></tr></table>
 
 <a name="rtp"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-rtp">12.12 rtp</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-rtp">16.12 rtp</a></h2>
 
 <p>Real-Time Protocol.
 </p>
 <a name="rtsp"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-rtsp">12.13 rtsp</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-rtsp">16.13 rtsp</a></h2>
 
 <p>RTSP is not technically a protocol handler in libavformat, it is a demuxer
 and muxer. The demuxer supports both normal RTSP (with data transferred
@@ -3044,7 +3538,7 @@ on the fly by pressing <code>v</code> and <code>a</code>.
 </pre></td></tr></table>
 
 <a name="sap"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-sap">12.14 sap</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-sap">16.14 sap</a></h2>
 
 <p>Session Announcement Protocol (RFC 2974). This is not technically a
 protocol handler in libavformat, it is a muxer and demuxer.
@@ -3052,7 +3546,7 @@ It is used for signalling of RTP streams, by announcing the SDP for the
 streams regularly on a separate port.
 </p>
 <a name="Muxer"></a>
-<h3 class="subsection"><a href="ffmpeg.html#toc-Muxer">12.14.1 Muxer</a></h3>
+<h3 class="subsection"><a href="ffmpeg.html#toc-Muxer">16.14.1 Muxer</a></h3>
 
 <p>The syntax for a SAP url given to the muxer is:
 </p><table><tr><td>&nbsp;</td><td><pre class="example">sap://<var>destination</var>[:<var>port</var>][?<var>options</var>]
@@ -3109,7 +3603,7 @@ on unique ports.
 </pre></td></tr></table>
 
 <a name="Demuxer"></a>
-<h3 class="subsection"><a href="ffmpeg.html#toc-Demuxer">12.14.2 Demuxer</a></h3>
+<h3 class="subsection"><a href="ffmpeg.html#toc-Demuxer">16.14.2 Demuxer</a></h3>
 
 <p>The syntax for a SAP url given to the demuxer is:
 </p><table><tr><td>&nbsp;</td><td><pre class="example">sap://[<var>address</var>][:<var>port</var>]
@@ -3135,7 +3629,7 @@ Once an announcement is received, it tries to receive that particular stream.
 </pre></td></tr></table>
 
 <a name="tcp"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-tcp">12.15 tcp</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-tcp">16.15 tcp</a></h2>
 
 <p>Trasmission Control Protocol.
 </p>
@@ -3155,7 +3649,7 @@ ffplay tcp://<var>hostname</var>:<var>port</var>
 </dl>
 
 <a name="udp"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-udp">12.16 udp</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-udp">16.16 udp</a></h2>
 
 <p>User Datagram Protocol.
 </p>
@@ -3215,7 +3709,7 @@ the specified peer address/port.
 </pre></td></tr></table>
 
 <a name="Bitstream-Filters"></a>
-<h1 class="chapter"><a href="ffmpeg.html#toc-Bitstream-Filters">13. Bitstream Filters</a></h1>
+<h1 class="chapter"><a href="ffmpeg.html#toc-Bitstream-Filters">17. Bitstream Filters</a></h1>
 
 <p>When you configure your FFmpeg build, all the supported bitstream
 filters are enabled by default. You can list all available ones using
@@ -3232,22 +3726,22 @@ all the supported bitstream filters included in your build.
 <p>Below is a description of the currently available bitstream filters.
 </p>
 <a name="aac_005fadtstoasc"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-aac_005fadtstoasc">13.1 aac_adtstoasc</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-aac_005fadtstoasc">17.1 aac_adtstoasc</a></h2>
 
 <a name="chomp"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-chomp">13.2 chomp</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-chomp">17.2 chomp</a></h2>
 
 <a name="dump_005fextradata"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-dump_005fextradata">13.3 dump_extradata</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-dump_005fextradata">17.3 dump_extradata</a></h2>
 
 <a name="h264_005fmp4toannexb"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-h264_005fmp4toannexb">13.4 h264_mp4toannexb</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-h264_005fmp4toannexb">17.4 h264_mp4toannexb</a></h2>
 
 <a name="imx_005fdump_005fheader"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-imx_005fdump_005fheader">13.5 imx_dump_header</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-imx_005fdump_005fheader">17.5 imx_dump_header</a></h2>
 
 <a name="mjpeg2jpeg"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-mjpeg2jpeg">13.6 mjpeg2jpeg</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-mjpeg2jpeg">17.6 mjpeg2jpeg</a></h2>
 
 <p>Convert MJPEG/AVI1 packets to full JPEG/JFIF packets.
 </p>
@@ -3283,25 +3777,25 @@ ffmpeg -i frame_%d.jpg -vcodec copy rotated.avi
 </pre></td></tr></table>
 
 <a name="mjpega_005fdump_005fheader"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-mjpega_005fdump_005fheader">13.7 mjpega_dump_header</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-mjpega_005fdump_005fheader">17.7 mjpega_dump_header</a></h2>
 
 <a name="movsub"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-movsub">13.8 movsub</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-movsub">17.8 movsub</a></h2>
 
 <a name="mp3_005fheader_005fcompress"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-mp3_005fheader_005fcompress">13.9 mp3_header_compress</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-mp3_005fheader_005fcompress">17.9 mp3_header_compress</a></h2>
 
 <a name="mp3_005fheader_005fdecompress"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-mp3_005fheader_005fdecompress">13.10 mp3_header_decompress</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-mp3_005fheader_005fdecompress">17.10 mp3_header_decompress</a></h2>
 
 <a name="noise"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-noise">13.11 noise</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-noise">17.11 noise</a></h2>
 
 <a name="remove_005fextradata"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-remove_005fextradata">13.12 remove_extradata</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-remove_005fextradata">17.12 remove_extradata</a></h2>
 
 <a name="Filtergraph-description"></a>
-<h1 class="chapter"><a href="ffmpeg.html#toc-Filtergraph-description">14. Filtergraph description</a></h1>
+<h1 class="chapter"><a href="ffmpeg.html#toc-Filtergraph-description">18. Filtergraph description</a></h1>
 
 <p>A filtergraph is a directed graph of connected filters. It can contain
 cycles, and there can be multiple links between a pair of
@@ -3317,7 +3811,7 @@ number of input and output pads of the filter.
 output pads is called a &quot;sink&quot;.
 </p>
 <a name="Filtergraph-syntax"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-Filtergraph-syntax">14.1 Filtergraph syntax</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-Filtergraph-syntax">18.1 Filtergraph syntax</a></h2>
 
 <p>A filtergraph can be represented using a textual representation, which
 is recognized by the <code>-vf</code> and <code>-af</code> options of the ff*
@@ -3390,7 +3884,7 @@ filter input and output pads of all the filterchains are connected.
 
 
 <a name="Audio-Filters"></a>
-<h1 class="chapter"><a href="ffmpeg.html#toc-Audio-Filters">15. Audio Filters</a></h1>
+<h1 class="chapter"><a href="ffmpeg.html#toc-Audio-Filters">19. Audio Filters</a></h1>
 
 <p>When you configure your FFmpeg build, you can disable any of the
 existing filters using &ndash;disable-filters.
@@ -3400,18 +3894,18 @@ build.
 <p>Below is a description of the currently available audio filters.
 </p>
 <a name="anull"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-anull">15.1 anull</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-anull">19.1 anull</a></h2>
 
 <p>Pass the audio source unchanged to the output.
 </p>
 
 <a name="Audio-Sources"></a>
-<h1 class="chapter"><a href="ffmpeg.html#toc-Audio-Sources">16. Audio Sources</a></h1>
+<h1 class="chapter"><a href="ffmpeg.html#toc-Audio-Sources">20. Audio Sources</a></h1>
 
 <p>Below is a description of the currently available audio sources.
 </p>
 <a name="anullsrc"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-anullsrc">16.1 anullsrc</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-anullsrc">20.1 anullsrc</a></h2>
 
 <p>Null audio source, never return audio frames. It is mainly useful as a
 template and to be employed in analysis / debugging tools.
@@ -3439,12 +3933,12 @@ anullsrc=48000:mono
 
 
 <a name="Audio-Sinks"></a>
-<h1 class="chapter"><a href="ffmpeg.html#toc-Audio-Sinks">17. Audio Sinks</a></h1>
+<h1 class="chapter"><a href="ffmpeg.html#toc-Audio-Sinks">21. Audio Sinks</a></h1>
 
 <p>Below is a description of the currently available audio sinks.
 </p>
 <a name="anullsink"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-anullsink">17.1 anullsink</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-anullsink">21.1 anullsink</a></h2>
 
 <p>Null audio sink, do absolutely nothing with the input audio. It is
 mainly useful as a template and to be employed in analysis / debugging
@@ -3452,7 +3946,7 @@ tools.
 </p>
 
 <a name="Video-Filters"></a>
-<h1 class="chapter"><a href="ffmpeg.html#toc-Video-Filters">18. Video Filters</a></h1>
+<h1 class="chapter"><a href="ffmpeg.html#toc-Video-Filters">22. Video Filters</a></h1>
 
 <p>When you configure your FFmpeg build, you can disable any of the
 existing filters using &ndash;disable-filters.
@@ -3462,7 +3956,7 @@ build.
 <p>Below is a description of the currently available video filters.
 </p>
 <a name="blackframe"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-blackframe">18.1 blackframe</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-blackframe">22.1 blackframe</a></h2>
 
 <p>Detect frames that are (almost) completely black. Can be useful to
 detect chapter transitions or commercials. Output lines consist of
@@ -3483,13 +3977,13 @@ threshold, and defaults to 98.
 considered black, and defaults to 32.
 </p>
 <a name="copy"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-copy">18.2 copy</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-copy">22.2 copy</a></h2>
 
 <p>Copy the input source unchanged to the output. Mainly useful for
 testing purposes.
 </p>
 <a name="crop"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-crop">18.3 crop</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-crop">22.3 crop</a></h2>
 
 <p>Crop the input video to <var>out_w</var>:<var>out_h</var>:<var>x</var>:<var>y</var>.
 </p>
@@ -3596,7 +4090,7 @@ crop=in_w-100:in_h-100:100:100
 </pre></td></tr></table>
 
 <a name="cropdetect"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-cropdetect">18.4 cropdetect</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-cropdetect">22.4 cropdetect</a></h2>
 
 <p>Auto-detect crop size.
 </p>
@@ -3633,7 +4127,7 @@ playback.
 </dl>
 
 <a name="drawbox"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-drawbox">18.5 drawbox</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-drawbox">22.5 drawbox</a></h2>
 
 <p>Draw a colored box on the input image.
 </p>
@@ -3666,7 +4160,7 @@ drawbox=10:20:200:60:red@0.5&quot;
 </pre></td></tr></table>
 
 <a name="drawtext"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-drawtext">18.6 drawtext</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-drawtext">22.6 drawtext</a></h2>
 
 <p>Draw text string or text from specified file on top of video using the
 libfreetype library.
@@ -3810,7 +4304,7 @@ within the parameter list.
 <a href="http://www.freetype.org/">http://www.freetype.org/</a>.
 </p>
 <a name="fade"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-fade">18.7 fade</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-fade">22.7 fade</a></h2>
 
 <p>Apply fade-in/out effect to input video.
 </p>
@@ -3843,7 +4337,7 @@ fade=in:5:20
 </pre></td></tr></table>
 
 <a name="fieldorder"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-fieldorder">18.8 fieldorder</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-fieldorder">22.8 fieldorder</a></h2>
 
 <p>Transform the field order of the input video.
 </p>
@@ -3878,7 +4372,7 @@ which is bottom field first.
 </pre></td></tr></table>
 
 <a name="fifo"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-fifo">18.9 fifo</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-fifo">22.9 fifo</a></h2>
 
 <p>Buffer input images and send them when they are requested.
 </p>
@@ -3888,7 +4382,7 @@ framework.
 <p>The filter does not take parameters.
 </p>
 <a name="format"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-format">18.10 format</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-format">22.10 format</a></h2>
 
 <p>Convert the input video to one of the specified pixel formats.
 Libavfilter will try to pick one that is supported for the input to
@@ -3907,7 +4401,7 @@ format=yuv420p:yuv444p:yuv410p
 
 <p><a name="frei0r"></a>
 </p><a name="frei0r-1"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-frei0r-1">18.11 frei0r</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-frei0r-1">22.11 frei0r</a></h2>
 
 <p>Apply a frei0r effect to the input video.
 </p>
@@ -3956,7 +4450,7 @@ frei0r=perspective:0.2/0.2:0.8/0.2
 <a href="http://piksel.org/frei0r">http://piksel.org/frei0r</a>
 </p>
 <a name="gradfun"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-gradfun">18.12 gradfun</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-gradfun">22.12 gradfun</a></h2>
 
 <p>Fix the banding artifacts that are sometimes introduced into nearly flat
 regions by truncation to 8bit colordepth.
@@ -3989,7 +4483,7 @@ gradfun=1.2
 </pre></td></tr></table>
 
 <a name="hflip"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-hflip">18.13 hflip</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-hflip">22.13 hflip</a></h2>
 
 <p>Flip the input video horizontally.
 </p>
@@ -3999,7 +4493,7 @@ gradfun=1.2
 </pre></td></tr></table>
 
 <a name="hqdn3d"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-hqdn3d">18.14 hqdn3d</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-hqdn3d">22.14 hqdn3d</a></h2>
 
 <p>High precision/quality 3d denoise filter. This filter aims to reduce
 image noise producing smooth images and making still images really
@@ -4031,7 +4525,7 @@ defaults to 3.0*<var>luma_spatial</var>/4.0
 </dl>
 
 <a name="mp"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-mp">18.15 mp</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-mp">22.15 mp</a></h2>
 
 <p>Apply an MPlayer filter to the input video.
 </p>
@@ -4091,7 +4585,7 @@ the named filter.
 <dt> <var>pullup</var></dt>
 <dt> <var>qp</var></dt>
 <dt> <var>rectangle</var></dt>
-<dt> <var>remove_logo</var></dt>
+<dt> <var>remove-logo</var></dt>
 <dt> <var>rgbtest</var></dt>
 <dt> <var>rotate</var></dt>
 <dt> <var>sab</var></dt>
@@ -4129,7 +4623,7 @@ mp=hue=100:-10
 <p>See also mplayer(1), <a href="http://www.mplayerhq.hu/">http://www.mplayerhq.hu/</a>.
 </p>
 <a name="noformat"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-noformat">18.16 noformat</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-noformat">22.16 noformat</a></h2>
 
 <p>Force libavfilter not to use any of the specified pixel formats for the
 input to the next filter.
@@ -4147,12 +4641,12 @@ noformat=yuv420p:yuv444p:yuv410p
 </pre></td></tr></table>
 
 <a name="null-1"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-null-1">18.17 null</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-null-1">22.17 null</a></h2>
 
 <p>Pass the video source unchanged to the output.
 </p>
 <a name="ocv"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-ocv">18.18 ocv</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-ocv">22.18 ocv</a></h2>
 
 <p>Apply video transform using libopencv.
 </p>
@@ -4174,7 +4668,7 @@ informations:
 </p>
 <p><a name="dilate"></a>
 </p><a name="dilate-1"></a>
-<h3 class="subsection"><a href="ffmpeg.html#toc-dilate-1">18.18.1 dilate</a></h3>
+<h3 class="subsection"><a href="ffmpeg.html#toc-dilate-1">22.18.1 dilate</a></h3>
 
 <p>Dilate an image by using a specific structuring element.
 This filter corresponds to the libopencv function <code>cvDilate</code>.
@@ -4220,7 +4714,7 @@ ocv=0x0+2x2/custom=diamond.shape:2
 </pre></td></tr></table>
 
 <a name="erode"></a>
-<h3 class="subsection"><a href="ffmpeg.html#toc-erode">18.18.2 erode</a></h3>
+<h3 class="subsection"><a href="ffmpeg.html#toc-erode">22.18.2 erode</a></h3>
 
 <p>Erode an image by using a specific structuring element.
 This filter corresponds to the libopencv function <code>cvErode</code>.
@@ -4230,7 +4724,7 @@ with the same meaning and use of those of the dilate filter
 (see <a href="#dilate">dilate</a>).
 </p>
 <a name="smooth"></a>
-<h3 class="subsection"><a href="ffmpeg.html#toc-smooth">18.18.3 smooth</a></h3>
+<h3 class="subsection"><a href="ffmpeg.html#toc-smooth">22.18.3 smooth</a></h3>
 
 <p>Smooth the input video.
 </p>
@@ -4253,7 +4747,7 @@ other parameters is 0.
 libopencv function <code>cvSmooth</code>.
 </p>
 <a name="overlay"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-overlay">18.19 overlay</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-overlay">22.19 overlay</a></h2>
 
 <p>Overlay one video on top of another.
 </p>
@@ -4315,7 +4809,7 @@ color=red.3:WxH [over]; [in][over] overlay [out]
 approach is yet to be tested.
 </p>
 <a name="pad"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-pad">18.20 pad</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-pad">22.20 pad</a></h2>
 
 <p>Add paddings to the input image, and places the original input at the
 given coordinates <var>x</var>, <var>y</var>.
@@ -4425,7 +4919,7 @@ pad=&quot;2*iw:2*ih:ow-iw:oh-ih&quot;
 </pre></td></tr></table>
 
 <a name="pixdesctest"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-pixdesctest">18.21 pixdesctest</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-pixdesctest">22.21 pixdesctest</a></h2>
 
 <p>Pixel format descriptor test filter, mainly useful for internal
 testing. The output video should be equal to the input video.
@@ -4437,7 +4931,7 @@ testing. The output video should be equal to the input video.
 <p>can be used to test the monowhite pixel format descriptor definition.
 </p>
 <a name="scale"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-scale">18.22 scale</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-scale">22.22 scale</a></h2>
 
 <p>Scale the input video to <var>width</var>:<var>height</var> and/or convert the image format.
 </p>
@@ -4518,9 +5012,146 @@ scale=&quot;trunc(3/2*iw/hsub)*hsub:trunc(3/2*ih/vsub)*vsub&quot;
 scale='min(500\, iw*3/2):-1'
 </pre></td></tr></table>
 
+<a name="select"></a>
+<h2 class="section"><a href="ffmpeg.html#toc-select">22.23 select</a></h2>
+<p>Select frames to pass in output.
+</p>
+<p>It accepts in input an expression, which is evaluated for each input
+frame. If the expression is evaluated to a non-zero value, the frame
+is selected and passed to the output, otherwise it is discarded.
+</p>
+<p>The expression can contain the following constants:
+</p>
+<dl compact="compact">
+<dt> &lsquo;<samp>PI</samp>&rsquo;</dt>
+<dd><p>Greek PI
+</p>
+</dd>
+<dt> &lsquo;<samp>PHI</samp>&rsquo;</dt>
+<dd><p>golden ratio
+</p>
+</dd>
+<dt> &lsquo;<samp>E</samp>&rsquo;</dt>
+<dd><p>Euler number
+</p>
+</dd>
+<dt> &lsquo;<samp>n</samp>&rsquo;</dt>
+<dd><p>the sequential number of the filtered frame, starting from 0
+</p>
+</dd>
+<dt> &lsquo;<samp>selected_n</samp>&rsquo;</dt>
+<dd><p>the sequential number of the selected frame, starting from 0
+</p>
+</dd>
+<dt> &lsquo;<samp>prev_selected_n</samp>&rsquo;</dt>
+<dd><p>the sequential number of the last selected frame, NAN if undefined
+</p>
+</dd>
+<dt> &lsquo;<samp>TB</samp>&rsquo;</dt>
+<dd><p>timebase of the input timestamps
+</p>
+</dd>
+<dt> &lsquo;<samp>pts</samp>&rsquo;</dt>
+<dd><p>the PTS (Presentation TimeStamp) of the filtered video frame,
+expressed in <var>TB</var> units, NAN if undefined
+</p>
+</dd>
+<dt> &lsquo;<samp>t</samp>&rsquo;</dt>
+<dd><p>the PTS (Presentation TimeStamp) of the filtered video frame,
+expressed in seconds, NAN if undefined
+</p>
+</dd>
+<dt> &lsquo;<samp>prev_pts</samp>&rsquo;</dt>
+<dd><p>the PTS of the previously filtered video frame, NAN if undefined
+</p>
+</dd>
+<dt> &lsquo;<samp>prev_selected_pts</samp>&rsquo;</dt>
+<dd><p>the PTS of the last previously filtered video frame, NAN if undefined
+</p>
+</dd>
+<dt> &lsquo;<samp>prev_selected_t</samp>&rsquo;</dt>
+<dd><p>the PTS of the last previously selected video frame, NAN if undefined
+</p>
+</dd>
+<dt> &lsquo;<samp>start_pts</samp>&rsquo;</dt>
+<dd><p>the PTS of the first video frame in the video, NAN if undefined
+</p>
+</dd>
+<dt> &lsquo;<samp>start_t</samp>&rsquo;</dt>
+<dd><p>the time of the first video frame in the video, NAN if undefined
+</p>
+</dd>
+<dt> &lsquo;<samp>pict_type</samp>&rsquo;</dt>
+<dd><p>the picture type of the filtered frame, can assume one of the following
+values:
+</p><dl compact="compact">
+<dt> &lsquo;<samp>PICT_TYPE_I</samp>&rsquo;</dt>
+<dt> &lsquo;<samp>PICT_TYPE_P</samp>&rsquo;</dt>
+<dt> &lsquo;<samp>PICT_TYPE_B</samp>&rsquo;</dt>
+<dt> &lsquo;<samp>PICT_TYPE_S</samp>&rsquo;</dt>
+<dt> &lsquo;<samp>PICT_TYPE_SI</samp>&rsquo;</dt>
+<dt> &lsquo;<samp>PICT_TYPE_SP</samp>&rsquo;</dt>
+<dt> &lsquo;<samp>PICT_TYPE_BI</samp>&rsquo;</dt>
+</dl>
+
+</dd>
+<dt> &lsquo;<samp>interlace_type</samp>&rsquo;</dt>
+<dd><p>the frame interlace type, can assume one of the following values:
+</p><dl compact="compact">
+<dt> &lsquo;<samp>INTERLACE_TYPE_P</samp>&rsquo;</dt>
+<dd><p>the frame is progressive (not interlaced)
+</p></dd>
+<dt> &lsquo;<samp>INTERLACE_TYPE_T</samp>&rsquo;</dt>
+<dd><p>the frame is top-field-first
+</p></dd>
+<dt> &lsquo;<samp>INTERLACE_TYPE_B</samp>&rsquo;</dt>
+<dd><p>the frame is bottom-field-first
+</p></dd>
+</dl>
+
+</dd>
+<dt> &lsquo;<samp>key</samp>&rsquo;</dt>
+<dd><p>1 if the filtered frame is a key-frame, 0 otherwise
+</p>
+</dd>
+<dt> &lsquo;<samp>pos</samp>&rsquo;</dt>
+<dd><p>the position in the file of the filtered frame, -1 if the information
+is not available (e.g. for synthetic video)
+</p></dd>
+</dl>
+
+<p>The default value of the select expression is &quot;1&quot;.
+</p>
+<p>Some examples follow:
+</p>
+<table><tr><td>&nbsp;</td><td><pre class="example"># select all frames in input
+select
+
+# the above is the same as:
+select=1
+
+# skip all frames:
+select=0
+
+# select only I-frames
+select='eq(pict_type\,PICT_TYPE_I)'
+
+# select one frame every 100
+select='not(mod(n\,100))'
+
+# select only frames contained in the 10-20 time interval
+select='gte(t\,10)*lte(t\,20)'
+
+# select only I frames contained in the 10-20 time interval
+select='gte(t\,10)*lte(t\,20)*eq(pict_type\,PICT_TYPE_I)'
+
+# select frames with a minimum distance of 10 seconds
+select='isnan(prev_selected_t)+gte(t-prev_selected_t\,10)'
+</pre></td></tr></table>
+
 <p><a name="setdar"></a>
 </p><a name="setdar-1"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-setdar-1">18.23 setdar</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-setdar-1">22.24 setdar</a></h2>
 
 <p>Set the Display Aspect Ratio for the filter output video.
 </p>
@@ -4549,7 +5180,7 @@ setdar=1.77777
 <p>See also the &quot;setsar&quot; filter documentation (see <a href="#setsar">setsar</a>).
 </p>
 <a name="setpts"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-setpts">18.24 setpts</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-setpts">22.25 setpts</a></h2>
 
 <p>Change the PTS (presentation timestamp) of the input video frames.
 </p>
@@ -4620,7 +5251,7 @@ setpts='1/(25*TB) * (N + 0.05 * sin(N*2*PI/25))'
 
 <p><a name="setsar"></a>
 </p><a name="setsar-1"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-setsar-1">18.25 setsar</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-setsar-1">22.26 setsar</a></h2>
 
 <p>Set the Sample (aka Pixel) Aspect Ratio for the filter output video.
 </p>
@@ -4645,7 +5276,7 @@ If the parameter is not specified, it is assumed the value &quot;0:1&quot;.
 </pre></td></tr></table>
 
 <a name="settb"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-settb">18.26 settb</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-settb">22.27 settb</a></h2>
 
 <p>Set the timebase to use for the output frames timestamps.
 It is mainly useful for testing timebase configuration.
@@ -4675,7 +5306,7 @@ settb=AVTB
 </pre></td></tr></table>
 
 <a name="showinfo"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-showinfo">18.27 showinfo</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-showinfo">22.28 showinfo</a></h2>
 
 <p>Show a line containing various information for each input video frame.
 The input video is not modified.
@@ -4747,7 +5378,7 @@ the <code>av_get_picture_type_char</code> function defined in
 </dl>
 
 <a name="slicify"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-slicify">18.28 slicify</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-slicify">22.29 slicify</a></h2>
 
 <p>Pass the images of input video on to next video filter as multiple
 slices.
@@ -4761,8 +5392,23 @@ not specified it will use the default value of 16.
 <p>Adding this in the beginning of filter chains should make filtering
 faster due to better use of the memory cache.
 </p>
+<a name="split"></a>
+<h2 class="section"><a href="ffmpeg.html#toc-split">22.30 split</a></h2>
+
+<p>Pass on the input video to two outputs. Both outputs are identical to
+the input video.
+</p>
+<p>For example:
+</p><table><tr><td>&nbsp;</td><td><pre class="example">[in] split [splitout1][splitout2];
+[splitout1] crop=100:100:0:0    [cropout];
+[splitout2] pad=200:200:100:100 [padout];
+</pre></td></tr></table>
+
+<p>will create two separate outputs from the same input, one cropped and
+one padded.
+</p>
 <a name="transpose"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-transpose">18.29 transpose</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-transpose">22.31 transpose</a></h2>
 
 <p>Transpose rows with columns in the input video and optionally flip it.
 </p>
@@ -4804,7 +5450,7 @@ l.r     l.L
 </dl>
 
 <a name="unsharp"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-unsharp">18.30 unsharp</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-unsharp">22.32 unsharp</a></h2>
 
 <p>Sharpen or blur the input video.
 </p>
@@ -4859,7 +5505,7 @@ unsharp=7:7:-2:7:7:-2
 </pre></td></tr></table>
 
 <a name="vflip"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-vflip">18.31 vflip</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-vflip">22.33 vflip</a></h2>
 
 <p>Flip the input video vertically.
 </p>
@@ -4867,7 +5513,7 @@ unsharp=7:7:-2:7:7:-2
 </pre></td></tr></table>
 
 <a name="yadif"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-yadif">18.32 yadif</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-yadif">22.34 yadif</a></h2>
 
 <p>Deinterlace the input video (&quot;yadif&quot; means &quot;yet another deinterlacing
 filter&quot;).
@@ -4915,12 +5561,12 @@ top field first will be assumed.
 </p>
 
 <a name="Video-Sources"></a>
-<h1 class="chapter"><a href="ffmpeg.html#toc-Video-Sources">19. Video Sources</a></h1>
+<h1 class="chapter"><a href="ffmpeg.html#toc-Video-Sources">23. Video Sources</a></h1>
 
 <p>Below is a description of the currently available video sources.
 </p>
 <a name="buffer"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-buffer">19.1 buffer</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-buffer">23.1 buffer</a></h2>
 
 <p>Buffer video frames, and make them available to the filter chain.
 </p>
@@ -4928,9 +5574,10 @@ top field first will be assumed.
 through the interface defined in &lsquo;<tt>libavfilter/vsrc_buffer.h</tt>&rsquo;.
 </p>
 <p>It accepts the following parameters:
-<var>width</var>:<var>height</var>:<var>pix_fmt_string</var>:<var>timebase_num</var>:<var>timebase_den</var>:<var>sample_aspect_ratio_num</var>:<var>sample_aspect_ratio.den</var>
+<var>width</var>:<var>height</var>:<var>pix_fmt_string</var>:<var>timebase_num</var>:<var>timebase_den</var>:<var>sample_aspect_ratio_num</var>:<var>sample_aspect_ratio.den</var>:<var>scale_params</var>
 </p>
-<p>All the parameters need to be explicitely defined.
+<p>All the parameters but <var>scale_params</var> need to be explicitely
+defined.
 </p>
 <p>Follows the list of the accepted parameters.
 </p>
@@ -4953,6 +5600,12 @@ timestamps of the buffered frames.
 <dt> &lsquo;<samp>sample_aspect_ratio.num, sample_aspect_ratio.den</samp>&rsquo;</dt>
 <dd><p>Specify numerator and denominator of the sample aspect ratio assumed
 by the video frames.
+</p>
+</dd>
+<dt> &lsquo;<samp>scale_params</samp>&rsquo;</dt>
+<dd><p>Specify the optional parameters to be used for the scale filter which
+is automatically inserted when an input change is detected in the
+input size or format.
 </p></dd>
 </dl>
 
@@ -4966,11 +5619,11 @@ square pixels (1:1 sample aspect ratio).
 Since the pixel format with name &quot;yuv410p&quot; corresponds to the number 6
 (check the enum PixelFormat definition in &lsquo;<tt>libavutil/pixfmt.h</tt>&rsquo;),
 this example corresponds to:
-</p><table><tr><td>&nbsp;</td><td><pre class="example">buffer=320:240:6:1:24
+</p><table><tr><td>&nbsp;</td><td><pre class="example">buffer=320:240:6:1:24:1:1
 </pre></td></tr></table>
 
 <a name="color"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-color">19.2 color</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-color">23.2 color</a></h2>
 
 <p>Provide an uniformly colored input.
 </p>
@@ -5011,7 +5664,7 @@ to the pad with identifier &quot;in&quot;.
 </pre></td></tr></table>
 
 <a name="movie"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-movie">19.3 movie</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-movie">23.3 movie</a></h2>
 
 <p>Read a video stream from a movie container.
 </p>
@@ -5067,7 +5720,7 @@ movie=/dev/video0:f=video4linux2, scale=180:-1, setpts=PTS-STARTPTS [movie];
 </pre></td></tr></table>
 
 <a name="nullsrc"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-nullsrc">19.4 nullsrc</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-nullsrc">23.4 nullsrc</a></h2>
 
 <p>Null video source, never return images. It is mainly useful as a
 template and to be employed in analysis / debugging tools.
@@ -5084,7 +5737,7 @@ timebase. The expression can contain the constants &quot;PI&quot;, &quot;E&quot;
 &quot;AVTB&quot; (the default timebase), and defaults to the value &quot;AVTB&quot;.
 </p>
 <a name="frei0r_005fsrc"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-frei0r_005fsrc">19.5 frei0r_src</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-frei0r_005fsrc">23.5 frei0r_src</a></h2>
 
 <p>Provide a frei0r source.
 </p>
@@ -5112,12 +5765,12 @@ frei0r_src=200x200:10:partik0l=1234 [overlay]; [in][overlay] overlay
 
 
 <a name="Video-Sinks"></a>
-<h1 class="chapter"><a href="ffmpeg.html#toc-Video-Sinks">20. Video Sinks</a></h1>
+<h1 class="chapter"><a href="ffmpeg.html#toc-Video-Sinks">24. Video Sinks</a></h1>
 
 <p>Below is a description of the currently available video sinks.
 </p>
 <a name="nullsink"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-nullsink">20.1 nullsink</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-nullsink">24.1 nullsink</a></h2>
 
 <p>Null video sink, do absolutely nothing with the input video. It is
 mainly useful as a template and to be employed in analysis / debugging
@@ -5125,7 +5778,7 @@ tools.
 </p>
 
 <a name="Metadata"></a>
-<h1 class="chapter"><a href="ffmpeg.html#toc-Metadata">21. Metadata</a></h1>
+<h1 class="chapter"><a href="ffmpeg.html#toc-Metadata">25. Metadata</a></h1>
 
 <p>FFmpeg is able to dump metadata from media files into a simple UTF-8-encoded
 INI-like text file and then load it back using the metadata muxer/demuxer.
@@ -5194,7 +5847,7 @@ line
 <hr size="1">
 <p>
  <font size="-1">
-  This document was generated by <em>Kyle Schwarz</em> on <em>May 18, 2011</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+  This document was generated by <em>Kyle Schwarz</em> on <em>June 10, 2011</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
  </font>
  <br>
 
index 717b4ceaddac913de6316c2612ea67a215941fd6..ffb9d0085842eaecb23c953587dbd0255bc3aefb 100644 (file)
@@ -1,6 +1,6 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
 <html>
-<!-- Created on May 18, 2011 by texi2html 1.82
+<!-- Created on June 10, 2011 by texi2html 1.82
 texi2html was written by: 
             Lionel Cons <Lionel.Cons@cern.ch> (original author)
             Karl Berry  <karl@freefriends.org>
@@ -51,7 +51,7 @@ ul.toc {list-style: none}
 <ul class="toc">
   <li><a name="toc-Synopsis" href="#Synopsis">1. Synopsis</a></li>
   <li><a name="toc-Description" href="#Description">2. Description</a></li>
-  <li><a name="toc-Options" href="#Options">3. Options</a>
+  <li><a name="toc-Options-2" href="#Options-2">3. Options</a>
   <ul class="toc">
     <li><a name="toc-Generic-options" href="#Generic-options">3.1 Generic options</a></li>
     <li><a name="toc-Main-options" href="#Main-options">3.2 Main options</a></li>
@@ -59,129 +59,146 @@ ul.toc {list-style: none}
     <li><a name="toc-While-playing" href="#While-playing">3.4 While playing</a></li>
   </ul></li>
   <li><a name="toc-Expression-Evaluation" href="#Expression-Evaluation">4. Expression Evaluation</a></li>
-  <li><a name="toc-Demuxers" href="#Demuxers">5. Demuxers</a>
+  <li><a name="toc-Decoders" href="#Decoders">5. Decoders</a></li>
+  <li><a name="toc-Video-Decoders" href="#Video-Decoders">6. Video Decoders</a>
   <ul class="toc">
-    <li><a name="toc-image2" href="#image2">5.1 image2</a></li>
-    <li><a name="toc-applehttp-1" href="#applehttp-1">5.2 applehttp</a></li>
+    <li><a name="toc-rawvideo" href="#rawvideo">6.1 rawvideo</a>
+    <ul class="toc">
+      <li><a name="toc-Options-1" href="#Options-1">6.1.1 Options</a></li>
+    </ul>
+</li>
   </ul></li>
-  <li><a name="toc-Muxers" href="#Muxers">6. Muxers</a>
+  <li><a name="toc-Demuxers" href="#Demuxers">7. Demuxers</a>
   <ul class="toc">
-    <li><a name="toc-crc-1" href="#crc-1">6.1 crc</a></li>
-    <li><a name="toc-framecrc-1" href="#framecrc-1">6.2 framecrc</a></li>
-    <li><a name="toc-image2-1" href="#image2-1">6.3 image2</a></li>
-    <li><a name="toc-mpegts" href="#mpegts">6.4 mpegts</a></li>
-    <li><a name="toc-null-1" href="#null-1">6.5 null</a></li>
+    <li><a name="toc-image2-1" href="#image2-1">7.1 image2</a></li>
+    <li><a name="toc-applehttp" href="#applehttp">7.2 applehttp</a></li>
   </ul></li>
-  <li><a name="toc-Input-Devices" href="#Input-Devices">7. Input Devices</a>
+  <li><a name="toc-Muxers" href="#Muxers">8. Muxers</a>
   <ul class="toc">
-    <li><a name="toc-alsa-1" href="#alsa-1">7.1 alsa</a></li>
-    <li><a name="toc-bktr" href="#bktr">7.2 bktr</a></li>
-    <li><a name="toc-dv1394" href="#dv1394">7.3 dv1394</a></li>
-    <li><a name="toc-fbdev" href="#fbdev">7.4 fbdev</a></li>
-    <li><a name="toc-jack" href="#jack">7.5 jack</a></li>
-    <li><a name="toc-libdc1394" href="#libdc1394">7.6 libdc1394</a></li>
-    <li><a name="toc-oss-1" href="#oss-1">7.7 oss</a></li>
-    <li><a name="toc-sndio-1" href="#sndio-1">7.8 sndio</a></li>
-    <li><a name="toc-video4linux-and-video4linux2" href="#video4linux-and-video4linux2">7.9 video4linux and video4linux2</a></li>
-    <li><a name="toc-vfwcap" href="#vfwcap">7.10 vfwcap</a></li>
-    <li><a name="toc-x11grab" href="#x11grab">7.11 x11grab</a></li>
+    <li><a name="toc-crc-1" href="#crc-1">8.1 crc</a></li>
+    <li><a name="toc-framecrc-1" href="#framecrc-1">8.2 framecrc</a></li>
+    <li><a name="toc-image2" href="#image2">8.3 image2</a></li>
+    <li><a name="toc-mpegts" href="#mpegts">8.4 mpegts</a></li>
+    <li><a name="toc-null" href="#null">8.5 null</a></li>
+    <li><a name="toc-matroska" href="#matroska">8.6 matroska</a></li>
   </ul></li>
-  <li><a name="toc-Output-Devices" href="#Output-Devices">8. Output Devices</a>
+  <li><a name="toc-Input-Devices" href="#Input-Devices">9. Input Devices</a>
   <ul class="toc">
-    <li><a name="toc-alsa" href="#alsa">8.1 alsa</a></li>
-    <li><a name="toc-oss" href="#oss">8.2 oss</a></li>
-    <li><a name="toc-sndio" href="#sndio">8.3 sndio</a></li>
+    <li><a name="toc-alsa" href="#alsa">9.1 alsa</a></li>
+    <li><a name="toc-bktr" href="#bktr">9.2 bktr</a></li>
+    <li><a name="toc-dv1394" href="#dv1394">9.3 dv1394</a></li>
+    <li><a name="toc-fbdev" href="#fbdev">9.4 fbdev</a></li>
+    <li><a name="toc-jack" href="#jack">9.5 jack</a></li>
+    <li><a name="toc-libdc1394" href="#libdc1394">9.6 libdc1394</a></li>
+    <li><a name="toc-oss" href="#oss">9.7 oss</a></li>
+    <li><a name="toc-sndio" href="#sndio">9.8 sndio</a></li>
+    <li><a name="toc-video4linux-and-video4linux2" href="#video4linux-and-video4linux2">9.9 video4linux and video4linux2</a></li>
+    <li><a name="toc-vfwcap" href="#vfwcap">9.10 vfwcap</a></li>
+    <li><a name="toc-x11grab" href="#x11grab">9.11 x11grab</a></li>
   </ul></li>
-  <li><a name="toc-Protocols" href="#Protocols">9. Protocols</a>
+  <li><a name="toc-Output-Devices" href="#Output-Devices">10. Output Devices</a>
   <ul class="toc">
-    <li><a name="toc-applehttp" href="#applehttp">9.1 applehttp</a></li>
-    <li><a name="toc-concat" href="#concat">9.2 concat</a></li>
-    <li><a name="toc-file" href="#file">9.3 file</a></li>
-    <li><a name="toc-gopher" href="#gopher">9.4 gopher</a></li>
-    <li><a name="toc-http" href="#http">9.5 http</a></li>
-    <li><a name="toc-mmst" href="#mmst">9.6 mmst</a></li>
-    <li><a name="toc-mmsh" href="#mmsh">9.7 mmsh</a></li>
-    <li><a name="toc-md5" href="#md5">9.8 md5</a></li>
-    <li><a name="toc-pipe" href="#pipe">9.9 pipe</a></li>
-    <li><a name="toc-rtmp" href="#rtmp">9.10 rtmp</a></li>
-    <li><a name="toc-rtmp_002c-rtmpe_002c-rtmps_002c-rtmpt_002c-rtmpte" href="#rtmp_002c-rtmpe_002c-rtmps_002c-rtmpt_002c-rtmpte">9.11 rtmp, rtmpe, rtmps, rtmpt, rtmpte</a></li>
-    <li><a name="toc-rtp" href="#rtp">9.12 rtp</a></li>
-    <li><a name="toc-rtsp" href="#rtsp">9.13 rtsp</a></li>
-    <li><a name="toc-sap" href="#sap">9.14 sap</a>
+    <li><a name="toc-alsa-1" href="#alsa-1">10.1 alsa</a></li>
+    <li><a name="toc-oss-1" href="#oss-1">10.2 oss</a></li>
+    <li><a name="toc-sdl" href="#sdl">10.3 sdl</a>
     <ul class="toc">
-      <li><a name="toc-Muxer" href="#Muxer">9.14.1 Muxer</a></li>
-      <li><a name="toc-Demuxer" href="#Demuxer">9.14.2 Demuxer</a></li>
+      <li><a name="toc-Options" href="#Options">10.3.1 Options</a></li>
+      <li><a name="toc-Examples" href="#Examples">10.3.2 Examples</a></li>
     </ul></li>
-    <li><a name="toc-tcp" href="#tcp">9.15 tcp</a></li>
-    <li><a name="toc-udp" href="#udp">9.16 udp</a></li>
+    <li><a name="toc-sndio-1" href="#sndio-1">10.4 sndio</a></li>
   </ul></li>
-  <li><a name="toc-Filtergraph-description" href="#Filtergraph-description">10. Filtergraph description</a>
+  <li><a name="toc-Protocols" href="#Protocols">11. Protocols</a>
   <ul class="toc">
-    <li><a name="toc-Filtergraph-syntax" href="#Filtergraph-syntax">10.1 Filtergraph syntax</a></li>
+    <li><a name="toc-applehttp-1" href="#applehttp-1">11.1 applehttp</a></li>
+    <li><a name="toc-concat" href="#concat">11.2 concat</a></li>
+    <li><a name="toc-file" href="#file">11.3 file</a></li>
+    <li><a name="toc-gopher" href="#gopher">11.4 gopher</a></li>
+    <li><a name="toc-http" href="#http">11.5 http</a></li>
+    <li><a name="toc-mmst" href="#mmst">11.6 mmst</a></li>
+    <li><a name="toc-mmsh" href="#mmsh">11.7 mmsh</a></li>
+    <li><a name="toc-md5" href="#md5">11.8 md5</a></li>
+    <li><a name="toc-pipe" href="#pipe">11.9 pipe</a></li>
+    <li><a name="toc-rtmp" href="#rtmp">11.10 rtmp</a></li>
+    <li><a name="toc-rtmp_002c-rtmpe_002c-rtmps_002c-rtmpt_002c-rtmpte" href="#rtmp_002c-rtmpe_002c-rtmps_002c-rtmpt_002c-rtmpte">11.11 rtmp, rtmpe, rtmps, rtmpt, rtmpte</a></li>
+    <li><a name="toc-rtp" href="#rtp">11.12 rtp</a></li>
+    <li><a name="toc-rtsp" href="#rtsp">11.13 rtsp</a></li>
+    <li><a name="toc-sap" href="#sap">11.14 sap</a>
+    <ul class="toc">
+      <li><a name="toc-Muxer" href="#Muxer">11.14.1 Muxer</a></li>
+      <li><a name="toc-Demuxer" href="#Demuxer">11.14.2 Demuxer</a></li>
+    </ul></li>
+    <li><a name="toc-tcp" href="#tcp">11.15 tcp</a></li>
+    <li><a name="toc-udp" href="#udp">11.16 udp</a></li>
   </ul></li>
-  <li><a name="toc-Audio-Filters" href="#Audio-Filters">11. Audio Filters</a>
+  <li><a name="toc-Filtergraph-description" href="#Filtergraph-description">12. Filtergraph description</a>
   <ul class="toc">
-    <li><a name="toc-anull" href="#anull">11.1 anull</a></li>
+    <li><a name="toc-Filtergraph-syntax" href="#Filtergraph-syntax">12.1 Filtergraph syntax</a></li>
   </ul></li>
-  <li><a name="toc-Audio-Sources" href="#Audio-Sources">12. Audio Sources</a>
+  <li><a name="toc-Audio-Filters" href="#Audio-Filters">13. Audio Filters</a>
   <ul class="toc">
-    <li><a name="toc-anullsrc" href="#anullsrc">12.1 anullsrc</a></li>
+    <li><a name="toc-anull" href="#anull">13.1 anull</a></li>
   </ul></li>
-  <li><a name="toc-Audio-Sinks" href="#Audio-Sinks">13. Audio Sinks</a>
+  <li><a name="toc-Audio-Sources" href="#Audio-Sources">14. Audio Sources</a>
   <ul class="toc">
-    <li><a name="toc-anullsink" href="#anullsink">13.1 anullsink</a></li>
+    <li><a name="toc-anullsrc" href="#anullsrc">14.1 anullsrc</a></li>
   </ul></li>
-  <li><a name="toc-Video-Filters" href="#Video-Filters">14. Video Filters</a>
+  <li><a name="toc-Audio-Sinks" href="#Audio-Sinks">15. Audio Sinks</a>
   <ul class="toc">
-    <li><a name="toc-blackframe" href="#blackframe">14.1 blackframe</a></li>
-    <li><a name="toc-copy" href="#copy">14.2 copy</a></li>
-    <li><a name="toc-crop" href="#crop">14.3 crop</a></li>
-    <li><a name="toc-cropdetect" href="#cropdetect">14.4 cropdetect</a></li>
-    <li><a name="toc-drawbox" href="#drawbox">14.5 drawbox</a></li>
-    <li><a name="toc-drawtext" href="#drawtext">14.6 drawtext</a></li>
-    <li><a name="toc-fade" href="#fade">14.7 fade</a></li>
-    <li><a name="toc-fieldorder" href="#fieldorder">14.8 fieldorder</a></li>
-    <li><a name="toc-fifo" href="#fifo">14.9 fifo</a></li>
-    <li><a name="toc-format" href="#format">14.10 format</a></li>
-    <li><a name="toc-frei0r-1" href="#frei0r-1">14.11 frei0r</a></li>
-    <li><a name="toc-gradfun" href="#gradfun">14.12 gradfun</a></li>
-    <li><a name="toc-hflip" href="#hflip">14.13 hflip</a></li>
-    <li><a name="toc-hqdn3d" href="#hqdn3d">14.14 hqdn3d</a></li>
-    <li><a name="toc-mp" href="#mp">14.15 mp</a></li>
-    <li><a name="toc-noformat" href="#noformat">14.16 noformat</a></li>
-    <li><a name="toc-null" href="#null">14.17 null</a></li>
-    <li><a name="toc-ocv" href="#ocv">14.18 ocv</a>
+    <li><a name="toc-anullsink" href="#anullsink">15.1 anullsink</a></li>
+  </ul></li>
+  <li><a name="toc-Video-Filters" href="#Video-Filters">16. Video Filters</a>
+  <ul class="toc">
+    <li><a name="toc-blackframe" href="#blackframe">16.1 blackframe</a></li>
+    <li><a name="toc-copy" href="#copy">16.2 copy</a></li>
+    <li><a name="toc-crop" href="#crop">16.3 crop</a></li>
+    <li><a name="toc-cropdetect" href="#cropdetect">16.4 cropdetect</a></li>
+    <li><a name="toc-drawbox" href="#drawbox">16.5 drawbox</a></li>
+    <li><a name="toc-drawtext" href="#drawtext">16.6 drawtext</a></li>
+    <li><a name="toc-fade" href="#fade">16.7 fade</a></li>
+    <li><a name="toc-fieldorder" href="#fieldorder">16.8 fieldorder</a></li>
+    <li><a name="toc-fifo" href="#fifo">16.9 fifo</a></li>
+    <li><a name="toc-format" href="#format">16.10 format</a></li>
+    <li><a name="toc-frei0r-1" href="#frei0r-1">16.11 frei0r</a></li>
+    <li><a name="toc-gradfun" href="#gradfun">16.12 gradfun</a></li>
+    <li><a name="toc-hflip" href="#hflip">16.13 hflip</a></li>
+    <li><a name="toc-hqdn3d" href="#hqdn3d">16.14 hqdn3d</a></li>
+    <li><a name="toc-mp" href="#mp">16.15 mp</a></li>
+    <li><a name="toc-noformat" href="#noformat">16.16 noformat</a></li>
+    <li><a name="toc-null-1" href="#null-1">16.17 null</a></li>
+    <li><a name="toc-ocv" href="#ocv">16.18 ocv</a>
     <ul class="toc">
-      <li><a name="toc-dilate-1" href="#dilate-1">14.18.1 dilate</a></li>
-      <li><a name="toc-erode" href="#erode">14.18.2 erode</a></li>
-      <li><a name="toc-smooth" href="#smooth">14.18.3 smooth</a></li>
+      <li><a name="toc-dilate-1" href="#dilate-1">16.18.1 dilate</a></li>
+      <li><a name="toc-erode" href="#erode">16.18.2 erode</a></li>
+      <li><a name="toc-smooth" href="#smooth">16.18.3 smooth</a></li>
     </ul></li>
-    <li><a name="toc-overlay" href="#overlay">14.19 overlay</a></li>
-    <li><a name="toc-pad" href="#pad">14.20 pad</a></li>
-    <li><a name="toc-pixdesctest" href="#pixdesctest">14.21 pixdesctest</a></li>
-    <li><a name="toc-scale" href="#scale">14.22 scale</a></li>
-    <li><a name="toc-setdar-1" href="#setdar-1">14.23 setdar</a></li>
-    <li><a name="toc-setpts" href="#setpts">14.24 setpts</a></li>
-    <li><a name="toc-setsar-1" href="#setsar-1">14.25 setsar</a></li>
-    <li><a name="toc-settb" href="#settb">14.26 settb</a></li>
-    <li><a name="toc-showinfo" href="#showinfo">14.27 showinfo</a></li>
-    <li><a name="toc-slicify" href="#slicify">14.28 slicify</a></li>
-    <li><a name="toc-transpose" href="#transpose">14.29 transpose</a></li>
-    <li><a name="toc-unsharp" href="#unsharp">14.30 unsharp</a></li>
-    <li><a name="toc-vflip" href="#vflip">14.31 vflip</a></li>
-    <li><a name="toc-yadif" href="#yadif">14.32 yadif</a></li>
+    <li><a name="toc-overlay" href="#overlay">16.19 overlay</a></li>
+    <li><a name="toc-pad" href="#pad">16.20 pad</a></li>
+    <li><a name="toc-pixdesctest" href="#pixdesctest">16.21 pixdesctest</a></li>
+    <li><a name="toc-scale" href="#scale">16.22 scale</a></li>
+    <li><a name="toc-select" href="#select">16.23 select</a></li>
+    <li><a name="toc-setdar-1" href="#setdar-1">16.24 setdar</a></li>
+    <li><a name="toc-setpts" href="#setpts">16.25 setpts</a></li>
+    <li><a name="toc-setsar-1" href="#setsar-1">16.26 setsar</a></li>
+    <li><a name="toc-settb" href="#settb">16.27 settb</a></li>
+    <li><a name="toc-showinfo" href="#showinfo">16.28 showinfo</a></li>
+    <li><a name="toc-slicify" href="#slicify">16.29 slicify</a></li>
+    <li><a name="toc-split" href="#split">16.30 split</a></li>
+    <li><a name="toc-transpose" href="#transpose">16.31 transpose</a></li>
+    <li><a name="toc-unsharp" href="#unsharp">16.32 unsharp</a></li>
+    <li><a name="toc-vflip" href="#vflip">16.33 vflip</a></li>
+    <li><a name="toc-yadif" href="#yadif">16.34 yadif</a></li>
   </ul></li>
-  <li><a name="toc-Video-Sources" href="#Video-Sources">15. Video Sources</a>
+  <li><a name="toc-Video-Sources" href="#Video-Sources">17. Video Sources</a>
   <ul class="toc">
-    <li><a name="toc-buffer" href="#buffer">15.1 buffer</a></li>
-    <li><a name="toc-color" href="#color">15.2 color</a></li>
-    <li><a name="toc-movie" href="#movie">15.3 movie</a></li>
-    <li><a name="toc-nullsrc" href="#nullsrc">15.4 nullsrc</a></li>
-    <li><a name="toc-frei0r_005fsrc" href="#frei0r_005fsrc">15.5 frei0r_src</a></li>
+    <li><a name="toc-buffer" href="#buffer">17.1 buffer</a></li>
+    <li><a name="toc-color" href="#color">17.2 color</a></li>
+    <li><a name="toc-movie" href="#movie">17.3 movie</a></li>
+    <li><a name="toc-nullsrc" href="#nullsrc">17.4 nullsrc</a></li>
+    <li><a name="toc-frei0r_005fsrc" href="#frei0r_005fsrc">17.5 frei0r_src</a></li>
   </ul></li>
-  <li><a name="toc-Video-Sinks" href="#Video-Sinks">16. Video Sinks</a>
+  <li><a name="toc-Video-Sinks" href="#Video-Sinks">18. Video Sinks</a>
   <ul class="toc">
-    <li><a name="toc-nullsink" href="#nullsink">16.1 nullsink</a></li>
+    <li><a name="toc-nullsink" href="#nullsink">18.1 nullsink</a></li>
   </ul>
 </li>
 </ul>
@@ -191,7 +208,7 @@ ul.toc {list-style: none}
 <a name="Synopsis"></a>
 <h1 class="chapter"><a href="ffplay.html#toc-Synopsis">1. Synopsis</a></h1>
 
-<table><tr><td>&nbsp;</td><td><pre class="example">ffplay [options] &lsquo;<tt>input_file</tt>&rsquo;
+<table><tr><td>&nbsp;</td><td><pre class="example">ffplay [options] [&lsquo;<tt>input_file</tt>&rsquo;]
 </pre></td></tr></table>
 
 <a name="Description"></a>
@@ -201,8 +218,8 @@ ul.toc {list-style: none}
 libraries and the SDL library. It is mostly used as a testbed for the
 various FFmpeg APIs.
 </p>
-<a name="Options"></a>
-<h1 class="chapter"><a href="ffplay.html#toc-Options">3. Options</a></h1>
+<a name="Options-2"></a>
+<h1 class="chapter"><a href="ffplay.html#toc-Options-2">3. Options</a></h1>
 
 <p>All the numerical options, if not specified otherwise, accept in input
 a string representing a number, which may contain one of the
@@ -386,6 +403,9 @@ Use the option &quot;-filters&quot; to show all the available filters (including
 also sources and sinks).
 </p>
 </dd>
+<dt> &lsquo;<samp>-i <var>input_file</var></samp>&rsquo;</dt>
+<dd><p>Read <var>input_file</var>.
+</p></dd>
 </dl>
 
 <a name="Advanced-options"></a>
@@ -398,15 +418,9 @@ also sources and sinks).
 <dd><p>Show the stream duration, the codec parameters, the current position in
 the stream and the audio/video synchronisation drift.
 </p></dd>
-<dt> &lsquo;<samp>-debug</samp>&rsquo;</dt>
-<dd><p>Print specific debug info.
-</p></dd>
 <dt> &lsquo;<samp>-bug</samp>&rsquo;</dt>
 <dd><p>Work around bugs.
 </p></dd>
-<dt> &lsquo;<samp>-vismv</samp>&rsquo;</dt>
-<dd><p>Visualize motion vectors.
-</p></dd>
 <dt> &lsquo;<samp>-fast</samp>&rsquo;</dt>
 <dd><p>Non-spec-compliant optimizations.
 </p></dd>
@@ -589,6 +603,15 @@ integer. For example, &quot;trunc(-1.5)&quot; is &quot;-1.0&quot;.
 <dt> &lsquo;<samp>sqrt(expr)</samp>&rsquo;</dt>
 <dd><p>Compute the square root of <var>expr</var>. This is equivalent to
 &quot;(<var>expr</var>)^.5&quot;.
+</p>
+</dd>
+<dt> &lsquo;<samp>not(expr)</samp>&rsquo;</dt>
+<dd><p>Return 1.0 if <var>expr</var> is zero, 0.0 otherwise.
+</p>
+</dd>
+<dt> &lsquo;<samp>pow(x, y)</samp>&rsquo;</dt>
+<dd><p>Compute the power of <var>x</var> elevated <var>y</var>, it is equivalent to
+&quot;(<var>x</var>)^(<var>y</var>)&quot;.
 </p></dd>
 </dl>
 
@@ -605,10 +628,6 @@ integer. For example, &quot;trunc(-1.5)&quot; is &quot;-1.0&quot;.
 </p><table><tr><td>&nbsp;</td><td><pre class="example">A*B + not(A)*C
 </pre></td></tr></table>
 
-<p>When A evaluates to either 1 or 0, that is the same as
-</p><table><tr><td>&nbsp;</td><td><pre class="example">A*B + eq(A,0)*C
-</pre></td></tr></table>
-
 <p>In your C code, you can extend the list of unary and binary functions,
 and define recognized constants, so that they are available for your
 expressions.
@@ -684,8 +703,62 @@ indication of the corresponding powers of 10 and of 2.
 </p></dd>
 </dl>
 
+<a name="Decoders"></a>
+<h1 class="chapter"><a href="ffplay.html#toc-Decoders">5. Decoders</a></h1>
+
+<p>Decoders are configured elements in FFmpeg which allow the decoding of
+multimedia streams.
+</p>
+<p>When you configure your FFmpeg build, all the supported native decoders
+are enabled by default. Decoders requiring an external library must be enabled
+manually via the corresponding <code>--enable-lib</code> option. You can list all
+available decoders using the configure option <code>--list-decoders</code>.
+</p>
+<p>You can disable all the decoders with the configure option
+<code>--disable-decoders</code> and selectively enable / disable single decoders
+with the options <code>--enable-decoder=<var>DECODER</var></code> /
+<code>--disable-decoder=<var>DECODER</var></code>.
+</p>
+<p>The option <code>-codecs</code> of the ff* tools will display the list of
+enabled decoders.
+</p>
+
+<a name="Video-Decoders"></a>
+<h1 class="chapter"><a href="ffplay.html#toc-Video-Decoders">6. Video Decoders</a></h1>
+
+<p>A description of some of the currently available video decoders
+follows.
+</p>
+<a name="rawvideo"></a>
+<h2 class="section"><a href="ffplay.html#toc-rawvideo">6.1 rawvideo</a></h2>
+
+<p>Rawvideo decoder.
+</p>
+<p>This decoder decodes rawvideo streams.
+</p>
+<a name="Options-1"></a>
+<h3 class="subsection"><a href="ffplay.html#toc-Options-1">6.1.1 Options</a></h3>
+
+<dl compact="compact">
+<dt> &lsquo;<samp>top <var>top_field_first</var></samp>&rsquo;</dt>
+<dd><p>Specify the assumed field type of the input video.
+</p><dl compact="compact">
+<dt> &lsquo;<samp>-1</samp>&rsquo;</dt>
+<dd><p>the video is assumed to be progressive (default)
+</p></dd>
+<dt> &lsquo;<samp>0</samp>&rsquo;</dt>
+<dd><p>bottom-field-first is assumed
+</p></dd>
+<dt> &lsquo;<samp>1</samp>&rsquo;</dt>
+<dd><p>top-field-first is assumed
+</p></dd>
+</dl>
+
+</dd>
+</dl>
+
 <a name="Demuxers"></a>
-<h1 class="chapter"><a href="ffplay.html#toc-Demuxers">5. Demuxers</a></h1>
+<h1 class="chapter"><a href="ffplay.html#toc-Demuxers">7. Demuxers</a></h1>
 
 <p>Demuxers are configured elements in FFmpeg which allow to read the
 multimedia streams from a particular type of file.
@@ -704,8 +777,8 @@ enabled demuxers.
 </p>
 <p>The description of some of the currently available demuxers follows.
 </p>
-<a name="image2"></a>
-<h2 class="section"><a href="ffplay.html#toc-image2">5.1 image2</a></h2>
+<a name="image2-1"></a>
+<h2 class="section"><a href="ffplay.html#toc-image2-1">7.1 image2</a></h2>
 
 <p>Image file demuxer.
 </p>
@@ -749,8 +822,8 @@ second:
 </p><table><tr><td>&nbsp;</td><td><pre class="example">ffmpeg -f image2 -i img.jpeg img.png
 </pre></td></tr></table>
 
-<a name="applehttp-1"></a>
-<h2 class="section"><a href="ffplay.html#toc-applehttp-1">5.2 applehttp</a></h2>
+<a name="applehttp"></a>
+<h2 class="section"><a href="ffplay.html#toc-applehttp">7.2 applehttp</a></h2>
 
 <p>Apple HTTP Live Streaming demuxer.
 </p>
@@ -762,7 +835,7 @@ The total bitrate of the variant that the stream belongs to is
 available in a metadata key named &quot;variant_bitrate&quot;.
 </p>
 <a name="Muxers"></a>
-<h1 class="chapter"><a href="ffplay.html#toc-Muxers">6. Muxers</a></h1>
+<h1 class="chapter"><a href="ffplay.html#toc-Muxers">8. Muxers</a></h1>
 
 <p>Muxers are configured elements in FFmpeg which allow writing
 multimedia streams to a particular type of file.
@@ -783,7 +856,7 @@ enabled muxers.
 </p>
 <p><a name="crc"></a>
 </p><a name="crc-1"></a>
-<h2 class="section"><a href="ffplay.html#toc-crc-1">6.1 crc</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-crc-1">8.1 crc</a></h2>
 
 <p>CRC (Cyclic Redundancy Check) testing format.
 </p>
@@ -816,7 +889,7 @@ and the input video converted to MPEG-2 video, use the command:
 </p>
 <p><a name="framecrc"></a>
 </p><a name="framecrc-1"></a>
-<h2 class="section"><a href="ffplay.html#toc-framecrc-1">6.2 framecrc</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-framecrc-1">8.2 framecrc</a></h2>
 
 <p>Per-frame CRC (Cyclic Redundancy Check) testing format.
 </p>
@@ -849,8 +922,8 @@ MPEG-2 video, use the command:
 
 <p>See also the <code>crc</code> muxer (see <a href="#crc">crc</a>).
 </p>
-<a name="image2-1"></a>
-<h2 class="section"><a href="ffplay.html#toc-image2-1">6.3 image2</a></h2>
+<a name="image2"></a>
+<h2 class="section"><a href="ffplay.html#toc-image2">8.3 image2</a></h2>
 
 <p>Image file muxer.
 </p>
@@ -905,7 +978,7 @@ specify the name of the &rsquo;.Y&rsquo; file. The muxer will automatically open
 &rsquo;.U&rsquo; and &rsquo;.V&rsquo; files as required.
 </p>
 <a name="mpegts"></a>
-<h2 class="section"><a href="ffplay.html#toc-mpegts">6.4 mpegts</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-mpegts">8.4 mpegts</a></h2>
 
 <p>MPEG transport stream muxer.
 </p>
@@ -950,8 +1023,8 @@ and <code>service_name</code>. If they are not set the default for
      -y out.ts
 </pre></td></tr></table>
 
-<a name="null-1"></a>
-<h2 class="section"><a href="ffplay.html#toc-null-1">6.5 null</a></h2>
+<a name="null"></a>
+<h2 class="section"><a href="ffplay.html#toc-null">8.5 null</a></h2>
 
 <p>Null muxer.
 </p>
@@ -971,8 +1044,86 @@ syntax.
 </p><table><tr><td>&nbsp;</td><td><pre class="example">ffmpeg -benchmark -i INPUT -f null -
 </pre></td></tr></table>
 
+<a name="matroska"></a>
+<h2 class="section"><a href="ffplay.html#toc-matroska">8.6 matroska</a></h2>
+
+<p>Matroska container muxer.
+</p>
+<p>This muxer implements the matroska and webm container specs.
+</p>
+<p>The recognized metadata settings in this muxer are:
+</p>
+<dl compact="compact">
+<dt> &lsquo;<samp>title=<var>title name</var></samp>&rsquo;</dt>
+<dd><p>Name provided to a single track
+</p></dd>
+</dl>
+
+<dl compact="compact">
+<dt> &lsquo;<samp>language=<var>language name</var></samp>&rsquo;</dt>
+<dd><p>Specifies the language of the track in the Matroska languages form
+</p></dd>
+</dl>
+
+<dl compact="compact">
+<dt> &lsquo;<samp>stereo_mode=<var>mode</var></samp>&rsquo;</dt>
+<dd><p>Stereo 3D video layout of two views in a single video track
+</p><dl compact="compact">
+<dt> &lsquo;<samp>mono</samp>&rsquo;</dt>
+<dd><p>video is not stereo
+</p></dd>
+<dt> &lsquo;<samp>left_right</samp>&rsquo;</dt>
+<dd><p>Both views are arranged side by side, Left-eye view is on the left
+</p></dd>
+<dt> &lsquo;<samp>bottom_top</samp>&rsquo;</dt>
+<dd><p>Both views are arranged in top-bottom orientation, Left-eye view is at bottom
+</p></dd>
+<dt> &lsquo;<samp>top_bottom</samp>&rsquo;</dt>
+<dd><p>Both views are arranged in top-bottom orientation, Left-eye view is on top
+</p></dd>
+<dt> &lsquo;<samp>checkerboard_rl</samp>&rsquo;</dt>
+<dd><p>Each view is arranged in a checkerboard interleaved pattern, Left-eye view being first
+</p></dd>
+<dt> &lsquo;<samp>checkerboard_lr</samp>&rsquo;</dt>
+<dd><p>Each view is arranged in a checkerboard interleaved pattern, Right-eye view being first
+</p></dd>
+<dt> &lsquo;<samp>row_interleaved_rl</samp>&rsquo;</dt>
+<dd><p>Each view is constituted by a row based interleaving, Right-eye view is first row
+</p></dd>
+<dt> &lsquo;<samp>row_interleaved_lr</samp>&rsquo;</dt>
+<dd><p>Each view is constituted by a row based interleaving, Left-eye view is first row
+</p></dd>
+<dt> &lsquo;<samp>col_interleaved_rl</samp>&rsquo;</dt>
+<dd><p>Both views are arranged in a column based interleaving manner, Right-eye view is first column
+</p></dd>
+<dt> &lsquo;<samp>col_interleaved_lr</samp>&rsquo;</dt>
+<dd><p>Both views are arranged in a column based interleaving manner, Left-eye view is first column
+</p></dd>
+<dt> &lsquo;<samp>anaglyph_cyan_red</samp>&rsquo;</dt>
+<dd><p>All frames are in anaglyph format viewable through red-cyan filters
+</p></dd>
+<dt> &lsquo;<samp>right_left</samp>&rsquo;</dt>
+<dd><p>Both views are arranged side by side, Right-eye view is on the left
+</p></dd>
+<dt> &lsquo;<samp>anaglyph_green_magenta</samp>&rsquo;</dt>
+<dd><p>All frames are in anaglyph format viewable through green-magenta filters
+</p></dd>
+<dt> &lsquo;<samp>block_lr</samp>&rsquo;</dt>
+<dd><p>Both eyes laced in one Block, Left-eye view is first
+</p></dd>
+<dt> &lsquo;<samp>block_rl</samp>&rsquo;</dt>
+<dd><p>Both eyes laced in one Block, Right-eye view is first
+</p></dd>
+</dl>
+</dd>
+</dl>
+
+<p>For example a 3D WebM clip can be created using the following command line:
+</p><table><tr><td>&nbsp;</td><td><pre class="example">ffmpeg -i sample_left_right_clip.mpg -an -vcodec libvpx -metadata stereo_mode=left_right -y stereo_clip.webm
+</pre></td></tr></table>
+
 <a name="Input-Devices"></a>
-<h1 class="chapter"><a href="ffplay.html#toc-Input-Devices">7. Input Devices</a></h1>
+<h1 class="chapter"><a href="ffplay.html#toc-Input-Devices">9. Input Devices</a></h1>
 
 <p>Input devices are configured elements in FFmpeg which allow to access
 the data coming from a multimedia device attached to your system.
@@ -991,8 +1142,8 @@ supported input devices (amongst the demuxers).
 </p>
 <p>A description of the currently available input devices follows.
 </p>
-<a name="alsa-1"></a>
-<h2 class="section"><a href="ffplay.html#toc-alsa-1">7.1 alsa</a></h2>
+<a name="alsa"></a>
+<h2 class="section"><a href="ffplay.html#toc-alsa">9.1 alsa</a></h2>
 
 <p>ALSA (Advanced Linux Sound Architecture) input device.
 </p>
@@ -1024,17 +1175,17 @@ card id 0, you may run the command:
 <a href="http://www.alsa-project.org/alsa-doc/alsa-lib/pcm.html">http://www.alsa-project.org/alsa-doc/alsa-lib/pcm.html</a>
 </p>
 <a name="bktr"></a>
-<h2 class="section"><a href="ffplay.html#toc-bktr">7.2 bktr</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-bktr">9.2 bktr</a></h2>
 
 <p>BSD video input device.
 </p>
 <a name="dv1394"></a>
-<h2 class="section"><a href="ffplay.html#toc-dv1394">7.3 dv1394</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-dv1394">9.3 dv1394</a></h2>
 
 <p>Linux DV 1394 input device.
 </p>
 <a name="fbdev"></a>
-<h2 class="section"><a href="ffplay.html#toc-fbdev">7.4 fbdev</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-fbdev">9.4 fbdev</a></h2>
 
 <p>Linux framebuffer input device.
 </p>
@@ -1058,7 +1209,7 @@ Documentation/fb/framebuffer.txt included in the Linux source tree.
 <p>See also <a href="http://linux-fbdev.sourceforge.net/">http://linux-fbdev.sourceforge.net/</a>, and fbset(1).
 </p>
 <a name="jack"></a>
-<h2 class="section"><a href="ffplay.html#toc-jack">7.5 jack</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-jack">9.5 jack</a></h2>
 
 <p>JACK input device.
 </p>
@@ -1107,12 +1258,12 @@ $ jack_connect metro:120_bpm ffmpeg:input_1
 <a href="http://jackaudio.org/">http://jackaudio.org/</a>
 </p>
 <a name="libdc1394"></a>
-<h2 class="section"><a href="ffplay.html#toc-libdc1394">7.6 libdc1394</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-libdc1394">9.6 libdc1394</a></h2>
 
 <p>IIDC1394 input device, based on libdc1394 and libraw1394.
 </p>
-<a name="oss-1"></a>
-<h2 class="section"><a href="ffplay.html#toc-oss-1">7.7 oss</a></h2>
+<a name="oss"></a>
+<h2 class="section"><a href="ffplay.html#toc-oss">9.7 oss</a></h2>
 
 <p>Open Sound System input device.
 </p>
@@ -1128,8 +1279,8 @@ command:
 <p>For more information about OSS see:
 <a href="http://manuals.opensound.com/usersguide/dsp.html">http://manuals.opensound.com/usersguide/dsp.html</a>
 </p>
-<a name="sndio-1"></a>
-<h2 class="section"><a href="ffplay.html#toc-sndio-1">7.8 sndio</a></h2>
+<a name="sndio"></a>
+<h2 class="section"><a href="ffplay.html#toc-sndio">9.8 sndio</a></h2>
 
 <p>sndio input device.
 </p>
@@ -1146,7 +1297,7 @@ command:
 </pre></td></tr></table>
 
 <a name="video4linux-and-video4linux2"></a>
-<h2 class="section"><a href="ffplay.html#toc-video4linux-and-video4linux2">7.9 video4linux and video4linux2</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-video4linux-and-video4linux2">9.9 video4linux and video4linux2</a></h2>
 
 <p>Video4Linux and Video4Linux2 input video devices.
 </p>
@@ -1185,7 +1336,7 @@ ffmpeg -f video4linux2 -i /dev/video0 out.mpeg
 </pre></td></tr></table>
 
 <a name="vfwcap"></a>
-<h2 class="section"><a href="ffplay.html#toc-vfwcap">7.10 vfwcap</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-vfwcap">9.10 vfwcap</a></h2>
 
 <p>VfW (Video for Windows) capture input device.
 </p>
@@ -1194,7 +1345,7 @@ ffmpeg -f video4linux2 -i /dev/video0 out.mpeg
 other filename will be interpreted as device number 0.
 </p>
 <a name="x11grab"></a>
-<h2 class="section"><a href="ffplay.html#toc-x11grab">7.11 x11grab</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-x11grab">9.11 x11grab</a></h2>
 
 <p>X11 video input device.
 </p>
@@ -1226,7 +1377,7 @@ ffmpeg -f x11grab -25 -s cif -i :0.0+10,20 out.mpg
 </pre></td></tr></table>
 
 <a name="Output-Devices"></a>
-<h1 class="chapter"><a href="ffplay.html#toc-Output-Devices">8. Output Devices</a></h1>
+<h1 class="chapter"><a href="ffplay.html#toc-Output-Devices">10. Output Devices</a></h1>
 
 <p>Output devices are configured elements in FFmpeg which allow to write
 multimedia data to an output device attached to your system.
@@ -1245,23 +1396,67 @@ enabled output devices (amongst the muxers).
 </p>
 <p>A description of the currently available output devices follows.
 </p>
-<a name="alsa"></a>
-<h2 class="section"><a href="ffplay.html#toc-alsa">8.1 alsa</a></h2>
+<a name="alsa-1"></a>
+<h2 class="section"><a href="ffplay.html#toc-alsa-1">10.1 alsa</a></h2>
 
 <p>ALSA (Advanced Linux Sound Architecture) output device.
 </p>
-<a name="oss"></a>
-<h2 class="section"><a href="ffplay.html#toc-oss">8.2 oss</a></h2>
+<a name="oss-1"></a>
+<h2 class="section"><a href="ffplay.html#toc-oss-1">10.2 oss</a></h2>
 
 <p>OSS (Open Sound System) output device.
 </p>
-<a name="sndio"></a>
-<h2 class="section"><a href="ffplay.html#toc-sndio">8.3 sndio</a></h2>
+<a name="sdl"></a>
+<h2 class="section"><a href="ffplay.html#toc-sdl">10.3 sdl</a></h2>
+
+<p>SDL (Simple Directmedia Layer) output device.
+</p>
+<p>This output devices allows to show a video stream in an SDL
+window. Only one SDL window is allowed per application, so you can
+have only one instance of this output device in an application.
+</p>
+<p>To enable this output device you need libsdl installed on your system
+when configuring your build.
+</p>
+<p>For more information about SDL, check:
+<a href="http://www.libsdl.org/">http://www.libsdl.org/</a>
+</p>
+<a name="Options"></a>
+<h3 class="subsection"><a href="ffplay.html#toc-Options">10.3.1 Options</a></h3>
+
+<dl compact="compact">
+<dt> &lsquo;<samp>window_title</samp>&rsquo;</dt>
+<dd><p>Set the SDL window title, if not specified default to the filename
+specified for the output device.
+</p>
+</dd>
+<dt> &lsquo;<samp>icon_title</samp>&rsquo;</dt>
+<dd><p>Set the name of the iconified SDL window, if not specified it is set
+to the same value of <var>window_title</var>.
+</p>
+</dd>
+<dt> &lsquo;<samp>window_size</samp>&rsquo;</dt>
+<dd><p>Set the SDL window size, can be a string of the form
+<var>width</var>x<var>height</var> or a video size abbreviation.
+If not specified it defaults to the size of the input video.
+</p></dd>
+</dl>
+
+<a name="Examples"></a>
+<h3 class="subsection"><a href="ffplay.html#toc-Examples">10.3.2 Examples</a></h3>
+
+<p>The following command shows the &lsquo;<tt>ffmpeg</tt>&rsquo; output is an
+SDL window, forcing its size to the qcif format:
+</p><table><tr><td>&nbsp;</td><td><pre class="example">ffmpeg -i INPUT -vcodec rawvideo -pix_fmt yuv420p -window_size qcif -f sdl &quot;SDL output&quot;
+</pre></td></tr></table>
+
+<a name="sndio-1"></a>
+<h2 class="section"><a href="ffplay.html#toc-sndio-1">10.4 sndio</a></h2>
 
 <p>sndio audio output device.
 </p>
 <a name="Protocols"></a>
-<h1 class="chapter"><a href="ffplay.html#toc-Protocols">9. Protocols</a></h1>
+<h1 class="chapter"><a href="ffplay.html#toc-Protocols">11. Protocols</a></h1>
 
 <p>Protocols are configured elements in FFmpeg which allow to access
 resources which require the use of a particular protocol.
@@ -1281,8 +1476,8 @@ supported protocols.
 </p>
 <p>A description of the currently available protocols follows.
 </p>
-<a name="applehttp"></a>
-<h2 class="section"><a href="ffplay.html#toc-applehttp">9.1 applehttp</a></h2>
+<a name="applehttp-1"></a>
+<h2 class="section"><a href="ffplay.html#toc-applehttp-1">11.1 applehttp</a></h2>
 
 <p>Read Apple HTTP Live Streaming compliant segmented stream as
 a uniform one. The M3U8 playlists describing the segments can be
@@ -1298,7 +1493,7 @@ applehttp+file://path/to/local/resource.m3u8
 </pre></td></tr></table>
 
 <a name="concat"></a>
-<h2 class="section"><a href="ffplay.html#toc-concat">9.2 concat</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-concat">11.2 concat</a></h2>
 
 <p>Physical concatenation protocol.
 </p>
@@ -1323,7 +1518,7 @@ command:
 many shells.
 </p>
 <a name="file"></a>
-<h2 class="section"><a href="ffplay.html#toc-file">9.3 file</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-file">11.3 file</a></h2>
 
 <p>File access protocol.
 </p>
@@ -1339,22 +1534,22 @@ specified with the name &quot;FILE.mpeg&quot; is interpreted as the URL
 &quot;file:FILE.mpeg&quot;.
 </p>
 <a name="gopher"></a>
-<h2 class="section"><a href="ffplay.html#toc-gopher">9.4 gopher</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-gopher">11.4 gopher</a></h2>
 
 <p>Gopher protocol.
 </p>
 <a name="http"></a>
-<h2 class="section"><a href="ffplay.html#toc-http">9.5 http</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-http">11.5 http</a></h2>
 
 <p>HTTP (Hyper Text Transfer Protocol).
 </p>
 <a name="mmst"></a>
-<h2 class="section"><a href="ffplay.html#toc-mmst">9.6 mmst</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-mmst">11.6 mmst</a></h2>
 
 <p>MMS (Microsoft Media Server) protocol over TCP.
 </p>
 <a name="mmsh"></a>
-<h2 class="section"><a href="ffplay.html#toc-mmsh">9.7 mmsh</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-mmsh">11.7 mmsh</a></h2>
 
 <p>MMS (Microsoft Media Server) protocol over HTTP.
 </p>
@@ -1363,7 +1558,7 @@ specified with the name &quot;FILE.mpeg&quot; is interpreted as the URL
 </pre></td></tr></table>
 
 <a name="md5"></a>
-<h2 class="section"><a href="ffplay.html#toc-md5">9.8 md5</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-md5">11.8 md5</a></h2>
 
 <p>MD5 output protocol.
 </p>
@@ -1383,7 +1578,7 @@ ffmpeg -i input.flv -f avi -y md5:
 be seekable, so they will fail with the MD5 output protocol.
 </p>
 <a name="pipe"></a>
-<h2 class="section"><a href="ffplay.html#toc-pipe">9.9 pipe</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-pipe">11.9 pipe</a></h2>
 
 <p>UNIX pipe access protocol.
 </p>
@@ -1414,7 +1609,7 @@ ffmpeg -i test.wav -f avi pipe: | cat &gt; test.avi
 be seekable, so they will fail with the pipe output protocol.
 </p>
 <a name="rtmp"></a>
-<h2 class="section"><a href="ffplay.html#toc-rtmp">9.10 rtmp</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-rtmp">11.10 rtmp</a></h2>
 
 <p>Real-Time Messaging Protocol.
 </p>
@@ -1454,7 +1649,7 @@ application specified in <var>app</var>, may be prefixed by &quot;mp4:&quot;.
 </pre></td></tr></table>
 
 <a name="rtmp_002c-rtmpe_002c-rtmps_002c-rtmpt_002c-rtmpte"></a>
-<h2 class="section"><a href="ffplay.html#toc-rtmp_002c-rtmpe_002c-rtmps_002c-rtmpt_002c-rtmpte">9.11 rtmp, rtmpe, rtmps, rtmpt, rtmpte</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-rtmp_002c-rtmpe_002c-rtmps_002c-rtmpt_002c-rtmpte">11.11 rtmp, rtmpe, rtmps, rtmpt, rtmpte</a></h2>
 
 <p>Real-Time Messaging Protocol and its variants supported through
 librtmp.
@@ -1492,12 +1687,12 @@ meaning as specified for the RTMP native protocol.
 </pre></td></tr></table>
 
 <a name="rtp"></a>
-<h2 class="section"><a href="ffplay.html#toc-rtp">9.12 rtp</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-rtp">11.12 rtp</a></h2>
 
 <p>Real-Time Protocol.
 </p>
 <a name="rtsp"></a>
-<h2 class="section"><a href="ffplay.html#toc-rtsp">9.13 rtsp</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-rtsp">11.13 rtsp</a></h2>
 
 <p>RTSP is not technically a protocol handler in libavformat, it is a demuxer
 and muxer. The demuxer supports both normal RTSP (with data transferred
@@ -1571,7 +1766,7 @@ on the fly by pressing <code>v</code> and <code>a</code>.
 </pre></td></tr></table>
 
 <a name="sap"></a>
-<h2 class="section"><a href="ffplay.html#toc-sap">9.14 sap</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-sap">11.14 sap</a></h2>
 
 <p>Session Announcement Protocol (RFC 2974). This is not technically a
 protocol handler in libavformat, it is a muxer and demuxer.
@@ -1579,7 +1774,7 @@ It is used for signalling of RTP streams, by announcing the SDP for the
 streams regularly on a separate port.
 </p>
 <a name="Muxer"></a>
-<h3 class="subsection"><a href="ffplay.html#toc-Muxer">9.14.1 Muxer</a></h3>
+<h3 class="subsection"><a href="ffplay.html#toc-Muxer">11.14.1 Muxer</a></h3>
 
 <p>The syntax for a SAP url given to the muxer is:
 </p><table><tr><td>&nbsp;</td><td><pre class="example">sap://<var>destination</var>[:<var>port</var>][?<var>options</var>]
@@ -1636,7 +1831,7 @@ on unique ports.
 </pre></td></tr></table>
 
 <a name="Demuxer"></a>
-<h3 class="subsection"><a href="ffplay.html#toc-Demuxer">9.14.2 Demuxer</a></h3>
+<h3 class="subsection"><a href="ffplay.html#toc-Demuxer">11.14.2 Demuxer</a></h3>
 
 <p>The syntax for a SAP url given to the demuxer is:
 </p><table><tr><td>&nbsp;</td><td><pre class="example">sap://[<var>address</var>][:<var>port</var>]
@@ -1662,7 +1857,7 @@ Once an announcement is received, it tries to receive that particular stream.
 </pre></td></tr></table>
 
 <a name="tcp"></a>
-<h2 class="section"><a href="ffplay.html#toc-tcp">9.15 tcp</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-tcp">11.15 tcp</a></h2>
 
 <p>Trasmission Control Protocol.
 </p>
@@ -1682,7 +1877,7 @@ ffplay tcp://<var>hostname</var>:<var>port</var>
 </dl>
 
 <a name="udp"></a>
-<h2 class="section"><a href="ffplay.html#toc-udp">9.16 udp</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-udp">11.16 udp</a></h2>
 
 <p>User Datagram Protocol.
 </p>
@@ -1742,7 +1937,7 @@ the specified peer address/port.
 </pre></td></tr></table>
 
 <a name="Filtergraph-description"></a>
-<h1 class="chapter"><a href="ffplay.html#toc-Filtergraph-description">10. Filtergraph description</a></h1>
+<h1 class="chapter"><a href="ffplay.html#toc-Filtergraph-description">12. Filtergraph description</a></h1>
 
 <p>A filtergraph is a directed graph of connected filters. It can contain
 cycles, and there can be multiple links between a pair of
@@ -1758,7 +1953,7 @@ number of input and output pads of the filter.
 output pads is called a &quot;sink&quot;.
 </p>
 <a name="Filtergraph-syntax"></a>
-<h2 class="section"><a href="ffplay.html#toc-Filtergraph-syntax">10.1 Filtergraph syntax</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-Filtergraph-syntax">12.1 Filtergraph syntax</a></h2>
 
 <p>A filtergraph can be represented using a textual representation, which
 is recognized by the <code>-vf</code> and <code>-af</code> options of the ff*
@@ -1831,7 +2026,7 @@ filter input and output pads of all the filterchains are connected.
 
 
 <a name="Audio-Filters"></a>
-<h1 class="chapter"><a href="ffplay.html#toc-Audio-Filters">11. Audio Filters</a></h1>
+<h1 class="chapter"><a href="ffplay.html#toc-Audio-Filters">13. Audio Filters</a></h1>
 
 <p>When you configure your FFmpeg build, you can disable any of the
 existing filters using &ndash;disable-filters.
@@ -1841,18 +2036,18 @@ build.
 <p>Below is a description of the currently available audio filters.
 </p>
 <a name="anull"></a>
-<h2 class="section"><a href="ffplay.html#toc-anull">11.1 anull</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-anull">13.1 anull</a></h2>
 
 <p>Pass the audio source unchanged to the output.
 </p>
 
 <a name="Audio-Sources"></a>
-<h1 class="chapter"><a href="ffplay.html#toc-Audio-Sources">12. Audio Sources</a></h1>
+<h1 class="chapter"><a href="ffplay.html#toc-Audio-Sources">14. Audio Sources</a></h1>
 
 <p>Below is a description of the currently available audio sources.
 </p>
 <a name="anullsrc"></a>
-<h2 class="section"><a href="ffplay.html#toc-anullsrc">12.1 anullsrc</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-anullsrc">14.1 anullsrc</a></h2>
 
 <p>Null audio source, never return audio frames. It is mainly useful as a
 template and to be employed in analysis / debugging tools.
@@ -1880,12 +2075,12 @@ anullsrc=48000:mono
 
 
 <a name="Audio-Sinks"></a>
-<h1 class="chapter"><a href="ffplay.html#toc-Audio-Sinks">13. Audio Sinks</a></h1>
+<h1 class="chapter"><a href="ffplay.html#toc-Audio-Sinks">15. Audio Sinks</a></h1>
 
 <p>Below is a description of the currently available audio sinks.
 </p>
 <a name="anullsink"></a>
-<h2 class="section"><a href="ffplay.html#toc-anullsink">13.1 anullsink</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-anullsink">15.1 anullsink</a></h2>
 
 <p>Null audio sink, do absolutely nothing with the input audio. It is
 mainly useful as a template and to be employed in analysis / debugging
@@ -1893,7 +2088,7 @@ tools.
 </p>
 
 <a name="Video-Filters"></a>
-<h1 class="chapter"><a href="ffplay.html#toc-Video-Filters">14. Video Filters</a></h1>
+<h1 class="chapter"><a href="ffplay.html#toc-Video-Filters">16. Video Filters</a></h1>
 
 <p>When you configure your FFmpeg build, you can disable any of the
 existing filters using &ndash;disable-filters.
@@ -1903,7 +2098,7 @@ build.
 <p>Below is a description of the currently available video filters.
 </p>
 <a name="blackframe"></a>
-<h2 class="section"><a href="ffplay.html#toc-blackframe">14.1 blackframe</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-blackframe">16.1 blackframe</a></h2>
 
 <p>Detect frames that are (almost) completely black. Can be useful to
 detect chapter transitions or commercials. Output lines consist of
@@ -1924,13 +2119,13 @@ threshold, and defaults to 98.
 considered black, and defaults to 32.
 </p>
 <a name="copy"></a>
-<h2 class="section"><a href="ffplay.html#toc-copy">14.2 copy</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-copy">16.2 copy</a></h2>
 
 <p>Copy the input source unchanged to the output. Mainly useful for
 testing purposes.
 </p>
 <a name="crop"></a>
-<h2 class="section"><a href="ffplay.html#toc-crop">14.3 crop</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-crop">16.3 crop</a></h2>
 
 <p>Crop the input video to <var>out_w</var>:<var>out_h</var>:<var>x</var>:<var>y</var>.
 </p>
@@ -2037,7 +2232,7 @@ crop=in_w-100:in_h-100:100:100
 </pre></td></tr></table>
 
 <a name="cropdetect"></a>
-<h2 class="section"><a href="ffplay.html#toc-cropdetect">14.4 cropdetect</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-cropdetect">16.4 cropdetect</a></h2>
 
 <p>Auto-detect crop size.
 </p>
@@ -2074,7 +2269,7 @@ playback.
 </dl>
 
 <a name="drawbox"></a>
-<h2 class="section"><a href="ffplay.html#toc-drawbox">14.5 drawbox</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-drawbox">16.5 drawbox</a></h2>
 
 <p>Draw a colored box on the input image.
 </p>
@@ -2107,7 +2302,7 @@ drawbox=10:20:200:60:red@0.5&quot;
 </pre></td></tr></table>
 
 <a name="drawtext"></a>
-<h2 class="section"><a href="ffplay.html#toc-drawtext">14.6 drawtext</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-drawtext">16.6 drawtext</a></h2>
 
 <p>Draw text string or text from specified file on top of video using the
 libfreetype library.
@@ -2251,7 +2446,7 @@ within the parameter list.
 <a href="http://www.freetype.org/">http://www.freetype.org/</a>.
 </p>
 <a name="fade"></a>
-<h2 class="section"><a href="ffplay.html#toc-fade">14.7 fade</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-fade">16.7 fade</a></h2>
 
 <p>Apply fade-in/out effect to input video.
 </p>
@@ -2284,7 +2479,7 @@ fade=in:5:20
 </pre></td></tr></table>
 
 <a name="fieldorder"></a>
-<h2 class="section"><a href="ffplay.html#toc-fieldorder">14.8 fieldorder</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-fieldorder">16.8 fieldorder</a></h2>
 
 <p>Transform the field order of the input video.
 </p>
@@ -2319,7 +2514,7 @@ which is bottom field first.
 </pre></td></tr></table>
 
 <a name="fifo"></a>
-<h2 class="section"><a href="ffplay.html#toc-fifo">14.9 fifo</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-fifo">16.9 fifo</a></h2>
 
 <p>Buffer input images and send them when they are requested.
 </p>
@@ -2329,7 +2524,7 @@ framework.
 <p>The filter does not take parameters.
 </p>
 <a name="format"></a>
-<h2 class="section"><a href="ffplay.html#toc-format">14.10 format</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-format">16.10 format</a></h2>
 
 <p>Convert the input video to one of the specified pixel formats.
 Libavfilter will try to pick one that is supported for the input to
@@ -2348,7 +2543,7 @@ format=yuv420p:yuv444p:yuv410p
 
 <p><a name="frei0r"></a>
 </p><a name="frei0r-1"></a>
-<h2 class="section"><a href="ffplay.html#toc-frei0r-1">14.11 frei0r</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-frei0r-1">16.11 frei0r</a></h2>
 
 <p>Apply a frei0r effect to the input video.
 </p>
@@ -2397,7 +2592,7 @@ frei0r=perspective:0.2/0.2:0.8/0.2
 <a href="http://piksel.org/frei0r">http://piksel.org/frei0r</a>
 </p>
 <a name="gradfun"></a>
-<h2 class="section"><a href="ffplay.html#toc-gradfun">14.12 gradfun</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-gradfun">16.12 gradfun</a></h2>
 
 <p>Fix the banding artifacts that are sometimes introduced into nearly flat
 regions by truncation to 8bit colordepth.
@@ -2430,7 +2625,7 @@ gradfun=1.2
 </pre></td></tr></table>
 
 <a name="hflip"></a>
-<h2 class="section"><a href="ffplay.html#toc-hflip">14.13 hflip</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-hflip">16.13 hflip</a></h2>
 
 <p>Flip the input video horizontally.
 </p>
@@ -2440,7 +2635,7 @@ gradfun=1.2
 </pre></td></tr></table>
 
 <a name="hqdn3d"></a>
-<h2 class="section"><a href="ffplay.html#toc-hqdn3d">14.14 hqdn3d</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-hqdn3d">16.14 hqdn3d</a></h2>
 
 <p>High precision/quality 3d denoise filter. This filter aims to reduce
 image noise producing smooth images and making still images really
@@ -2472,7 +2667,7 @@ defaults to 3.0*<var>luma_spatial</var>/4.0
 </dl>
 
 <a name="mp"></a>
-<h2 class="section"><a href="ffplay.html#toc-mp">14.15 mp</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-mp">16.15 mp</a></h2>
 
 <p>Apply an MPlayer filter to the input video.
 </p>
@@ -2532,7 +2727,7 @@ the named filter.
 <dt> <var>pullup</var></dt>
 <dt> <var>qp</var></dt>
 <dt> <var>rectangle</var></dt>
-<dt> <var>remove_logo</var></dt>
+<dt> <var>remove-logo</var></dt>
 <dt> <var>rgbtest</var></dt>
 <dt> <var>rotate</var></dt>
 <dt> <var>sab</var></dt>
@@ -2570,7 +2765,7 @@ mp=hue=100:-10
 <p>See also mplayer(1), <a href="http://www.mplayerhq.hu/">http://www.mplayerhq.hu/</a>.
 </p>
 <a name="noformat"></a>
-<h2 class="section"><a href="ffplay.html#toc-noformat">14.16 noformat</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-noformat">16.16 noformat</a></h2>
 
 <p>Force libavfilter not to use any of the specified pixel formats for the
 input to the next filter.
@@ -2587,13 +2782,13 @@ noformat=yuv420p,vflip
 noformat=yuv420p:yuv444p:yuv410p
 </pre></td></tr></table>
 
-<a name="null"></a>
-<h2 class="section"><a href="ffplay.html#toc-null">14.17 null</a></h2>
+<a name="null-1"></a>
+<h2 class="section"><a href="ffplay.html#toc-null-1">16.17 null</a></h2>
 
 <p>Pass the video source unchanged to the output.
 </p>
 <a name="ocv"></a>
-<h2 class="section"><a href="ffplay.html#toc-ocv">14.18 ocv</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-ocv">16.18 ocv</a></h2>
 
 <p>Apply video transform using libopencv.
 </p>
@@ -2615,7 +2810,7 @@ informations:
 </p>
 <p><a name="dilate"></a>
 </p><a name="dilate-1"></a>
-<h3 class="subsection"><a href="ffplay.html#toc-dilate-1">14.18.1 dilate</a></h3>
+<h3 class="subsection"><a href="ffplay.html#toc-dilate-1">16.18.1 dilate</a></h3>
 
 <p>Dilate an image by using a specific structuring element.
 This filter corresponds to the libopencv function <code>cvDilate</code>.
@@ -2661,7 +2856,7 @@ ocv=0x0+2x2/custom=diamond.shape:2
 </pre></td></tr></table>
 
 <a name="erode"></a>
-<h3 class="subsection"><a href="ffplay.html#toc-erode">14.18.2 erode</a></h3>
+<h3 class="subsection"><a href="ffplay.html#toc-erode">16.18.2 erode</a></h3>
 
 <p>Erode an image by using a specific structuring element.
 This filter corresponds to the libopencv function <code>cvErode</code>.
@@ -2671,7 +2866,7 @@ with the same meaning and use of those of the dilate filter
 (see <a href="#dilate">dilate</a>).
 </p>
 <a name="smooth"></a>
-<h3 class="subsection"><a href="ffplay.html#toc-smooth">14.18.3 smooth</a></h3>
+<h3 class="subsection"><a href="ffplay.html#toc-smooth">16.18.3 smooth</a></h3>
 
 <p>Smooth the input video.
 </p>
@@ -2694,7 +2889,7 @@ other parameters is 0.
 libopencv function <code>cvSmooth</code>.
 </p>
 <a name="overlay"></a>
-<h2 class="section"><a href="ffplay.html#toc-overlay">14.19 overlay</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-overlay">16.19 overlay</a></h2>
 
 <p>Overlay one video on top of another.
 </p>
@@ -2756,7 +2951,7 @@ color=red.3:WxH [over]; [in][over] overlay [out]
 approach is yet to be tested.
 </p>
 <a name="pad"></a>
-<h2 class="section"><a href="ffplay.html#toc-pad">14.20 pad</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-pad">16.20 pad</a></h2>
 
 <p>Add paddings to the input image, and places the original input at the
 given coordinates <var>x</var>, <var>y</var>.
@@ -2866,7 +3061,7 @@ pad=&quot;2*iw:2*ih:ow-iw:oh-ih&quot;
 </pre></td></tr></table>
 
 <a name="pixdesctest"></a>
-<h2 class="section"><a href="ffplay.html#toc-pixdesctest">14.21 pixdesctest</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-pixdesctest">16.21 pixdesctest</a></h2>
 
 <p>Pixel format descriptor test filter, mainly useful for internal
 testing. The output video should be equal to the input video.
@@ -2878,7 +3073,7 @@ testing. The output video should be equal to the input video.
 <p>can be used to test the monowhite pixel format descriptor definition.
 </p>
 <a name="scale"></a>
-<h2 class="section"><a href="ffplay.html#toc-scale">14.22 scale</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-scale">16.22 scale</a></h2>
 
 <p>Scale the input video to <var>width</var>:<var>height</var> and/or convert the image format.
 </p>
@@ -2959,9 +3154,146 @@ scale=&quot;trunc(3/2*iw/hsub)*hsub:trunc(3/2*ih/vsub)*vsub&quot;
 scale='min(500\, iw*3/2):-1'
 </pre></td></tr></table>
 
+<a name="select"></a>
+<h2 class="section"><a href="ffplay.html#toc-select">16.23 select</a></h2>
+<p>Select frames to pass in output.
+</p>
+<p>It accepts in input an expression, which is evaluated for each input
+frame. If the expression is evaluated to a non-zero value, the frame
+is selected and passed to the output, otherwise it is discarded.
+</p>
+<p>The expression can contain the following constants:
+</p>
+<dl compact="compact">
+<dt> &lsquo;<samp>PI</samp>&rsquo;</dt>
+<dd><p>Greek PI
+</p>
+</dd>
+<dt> &lsquo;<samp>PHI</samp>&rsquo;</dt>
+<dd><p>golden ratio
+</p>
+</dd>
+<dt> &lsquo;<samp>E</samp>&rsquo;</dt>
+<dd><p>Euler number
+</p>
+</dd>
+<dt> &lsquo;<samp>n</samp>&rsquo;</dt>
+<dd><p>the sequential number of the filtered frame, starting from 0
+</p>
+</dd>
+<dt> &lsquo;<samp>selected_n</samp>&rsquo;</dt>
+<dd><p>the sequential number of the selected frame, starting from 0
+</p>
+</dd>
+<dt> &lsquo;<samp>prev_selected_n</samp>&rsquo;</dt>
+<dd><p>the sequential number of the last selected frame, NAN if undefined
+</p>
+</dd>
+<dt> &lsquo;<samp>TB</samp>&rsquo;</dt>
+<dd><p>timebase of the input timestamps
+</p>
+</dd>
+<dt> &lsquo;<samp>pts</samp>&rsquo;</dt>
+<dd><p>the PTS (Presentation TimeStamp) of the filtered video frame,
+expressed in <var>TB</var> units, NAN if undefined
+</p>
+</dd>
+<dt> &lsquo;<samp>t</samp>&rsquo;</dt>
+<dd><p>the PTS (Presentation TimeStamp) of the filtered video frame,
+expressed in seconds, NAN if undefined
+</p>
+</dd>
+<dt> &lsquo;<samp>prev_pts</samp>&rsquo;</dt>
+<dd><p>the PTS of the previously filtered video frame, NAN if undefined
+</p>
+</dd>
+<dt> &lsquo;<samp>prev_selected_pts</samp>&rsquo;</dt>
+<dd><p>the PTS of the last previously filtered video frame, NAN if undefined
+</p>
+</dd>
+<dt> &lsquo;<samp>prev_selected_t</samp>&rsquo;</dt>
+<dd><p>the PTS of the last previously selected video frame, NAN if undefined
+</p>
+</dd>
+<dt> &lsquo;<samp>start_pts</samp>&rsquo;</dt>
+<dd><p>the PTS of the first video frame in the video, NAN if undefined
+</p>
+</dd>
+<dt> &lsquo;<samp>start_t</samp>&rsquo;</dt>
+<dd><p>the time of the first video frame in the video, NAN if undefined
+</p>
+</dd>
+<dt> &lsquo;<samp>pict_type</samp>&rsquo;</dt>
+<dd><p>the picture type of the filtered frame, can assume one of the following
+values:
+</p><dl compact="compact">
+<dt> &lsquo;<samp>PICT_TYPE_I</samp>&rsquo;</dt>
+<dt> &lsquo;<samp>PICT_TYPE_P</samp>&rsquo;</dt>
+<dt> &lsquo;<samp>PICT_TYPE_B</samp>&rsquo;</dt>
+<dt> &lsquo;<samp>PICT_TYPE_S</samp>&rsquo;</dt>
+<dt> &lsquo;<samp>PICT_TYPE_SI</samp>&rsquo;</dt>
+<dt> &lsquo;<samp>PICT_TYPE_SP</samp>&rsquo;</dt>
+<dt> &lsquo;<samp>PICT_TYPE_BI</samp>&rsquo;</dt>
+</dl>
+
+</dd>
+<dt> &lsquo;<samp>interlace_type</samp>&rsquo;</dt>
+<dd><p>the frame interlace type, can assume one of the following values:
+</p><dl compact="compact">
+<dt> &lsquo;<samp>INTERLACE_TYPE_P</samp>&rsquo;</dt>
+<dd><p>the frame is progressive (not interlaced)
+</p></dd>
+<dt> &lsquo;<samp>INTERLACE_TYPE_T</samp>&rsquo;</dt>
+<dd><p>the frame is top-field-first
+</p></dd>
+<dt> &lsquo;<samp>INTERLACE_TYPE_B</samp>&rsquo;</dt>
+<dd><p>the frame is bottom-field-first
+</p></dd>
+</dl>
+
+</dd>
+<dt> &lsquo;<samp>key</samp>&rsquo;</dt>
+<dd><p>1 if the filtered frame is a key-frame, 0 otherwise
+</p>
+</dd>
+<dt> &lsquo;<samp>pos</samp>&rsquo;</dt>
+<dd><p>the position in the file of the filtered frame, -1 if the information
+is not available (e.g. for synthetic video)
+</p></dd>
+</dl>
+
+<p>The default value of the select expression is &quot;1&quot;.
+</p>
+<p>Some examples follow:
+</p>
+<table><tr><td>&nbsp;</td><td><pre class="example"># select all frames in input
+select
+
+# the above is the same as:
+select=1
+
+# skip all frames:
+select=0
+
+# select only I-frames
+select='eq(pict_type\,PICT_TYPE_I)'
+
+# select one frame every 100
+select='not(mod(n\,100))'
+
+# select only frames contained in the 10-20 time interval
+select='gte(t\,10)*lte(t\,20)'
+
+# select only I frames contained in the 10-20 time interval
+select='gte(t\,10)*lte(t\,20)*eq(pict_type\,PICT_TYPE_I)'
+
+# select frames with a minimum distance of 10 seconds
+select='isnan(prev_selected_t)+gte(t-prev_selected_t\,10)'
+</pre></td></tr></table>
+
 <p><a name="setdar"></a>
 </p><a name="setdar-1"></a>
-<h2 class="section"><a href="ffplay.html#toc-setdar-1">14.23 setdar</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-setdar-1">16.24 setdar</a></h2>
 
 <p>Set the Display Aspect Ratio for the filter output video.
 </p>
@@ -2990,7 +3322,7 @@ setdar=1.77777
 <p>See also the &quot;setsar&quot; filter documentation (see <a href="#setsar">setsar</a>).
 </p>
 <a name="setpts"></a>
-<h2 class="section"><a href="ffplay.html#toc-setpts">14.24 setpts</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-setpts">16.25 setpts</a></h2>
 
 <p>Change the PTS (presentation timestamp) of the input video frames.
 </p>
@@ -3061,7 +3393,7 @@ setpts='1/(25*TB) * (N + 0.05 * sin(N*2*PI/25))'
 
 <p><a name="setsar"></a>
 </p><a name="setsar-1"></a>
-<h2 class="section"><a href="ffplay.html#toc-setsar-1">14.25 setsar</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-setsar-1">16.26 setsar</a></h2>
 
 <p>Set the Sample (aka Pixel) Aspect Ratio for the filter output video.
 </p>
@@ -3086,7 +3418,7 @@ If the parameter is not specified, it is assumed the value &quot;0:1&quot;.
 </pre></td></tr></table>
 
 <a name="settb"></a>
-<h2 class="section"><a href="ffplay.html#toc-settb">14.26 settb</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-settb">16.27 settb</a></h2>
 
 <p>Set the timebase to use for the output frames timestamps.
 It is mainly useful for testing timebase configuration.
@@ -3116,7 +3448,7 @@ settb=AVTB
 </pre></td></tr></table>
 
 <a name="showinfo"></a>
-<h2 class="section"><a href="ffplay.html#toc-showinfo">14.27 showinfo</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-showinfo">16.28 showinfo</a></h2>
 
 <p>Show a line containing various information for each input video frame.
 The input video is not modified.
@@ -3188,7 +3520,7 @@ the <code>av_get_picture_type_char</code> function defined in
 </dl>
 
 <a name="slicify"></a>
-<h2 class="section"><a href="ffplay.html#toc-slicify">14.28 slicify</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-slicify">16.29 slicify</a></h2>
 
 <p>Pass the images of input video on to next video filter as multiple
 slices.
@@ -3202,8 +3534,23 @@ not specified it will use the default value of 16.
 <p>Adding this in the beginning of filter chains should make filtering
 faster due to better use of the memory cache.
 </p>
+<a name="split"></a>
+<h2 class="section"><a href="ffplay.html#toc-split">16.30 split</a></h2>
+
+<p>Pass on the input video to two outputs. Both outputs are identical to
+the input video.
+</p>
+<p>For example:
+</p><table><tr><td>&nbsp;</td><td><pre class="example">[in] split [splitout1][splitout2];
+[splitout1] crop=100:100:0:0    [cropout];
+[splitout2] pad=200:200:100:100 [padout];
+</pre></td></tr></table>
+
+<p>will create two separate outputs from the same input, one cropped and
+one padded.
+</p>
 <a name="transpose"></a>
-<h2 class="section"><a href="ffplay.html#toc-transpose">14.29 transpose</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-transpose">16.31 transpose</a></h2>
 
 <p>Transpose rows with columns in the input video and optionally flip it.
 </p>
@@ -3245,7 +3592,7 @@ l.r     l.L
 </dl>
 
 <a name="unsharp"></a>
-<h2 class="section"><a href="ffplay.html#toc-unsharp">14.30 unsharp</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-unsharp">16.32 unsharp</a></h2>
 
 <p>Sharpen or blur the input video.
 </p>
@@ -3300,7 +3647,7 @@ unsharp=7:7:-2:7:7:-2
 </pre></td></tr></table>
 
 <a name="vflip"></a>
-<h2 class="section"><a href="ffplay.html#toc-vflip">14.31 vflip</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-vflip">16.33 vflip</a></h2>
 
 <p>Flip the input video vertically.
 </p>
@@ -3308,7 +3655,7 @@ unsharp=7:7:-2:7:7:-2
 </pre></td></tr></table>
 
 <a name="yadif"></a>
-<h2 class="section"><a href="ffplay.html#toc-yadif">14.32 yadif</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-yadif">16.34 yadif</a></h2>
 
 <p>Deinterlace the input video (&quot;yadif&quot; means &quot;yet another deinterlacing
 filter&quot;).
@@ -3356,12 +3703,12 @@ top field first will be assumed.
 </p>
 
 <a name="Video-Sources"></a>
-<h1 class="chapter"><a href="ffplay.html#toc-Video-Sources">15. Video Sources</a></h1>
+<h1 class="chapter"><a href="ffplay.html#toc-Video-Sources">17. Video Sources</a></h1>
 
 <p>Below is a description of the currently available video sources.
 </p>
 <a name="buffer"></a>
-<h2 class="section"><a href="ffplay.html#toc-buffer">15.1 buffer</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-buffer">17.1 buffer</a></h2>
 
 <p>Buffer video frames, and make them available to the filter chain.
 </p>
@@ -3369,9 +3716,10 @@ top field first will be assumed.
 through the interface defined in &lsquo;<tt>libavfilter/vsrc_buffer.h</tt>&rsquo;.
 </p>
 <p>It accepts the following parameters:
-<var>width</var>:<var>height</var>:<var>pix_fmt_string</var>:<var>timebase_num</var>:<var>timebase_den</var>:<var>sample_aspect_ratio_num</var>:<var>sample_aspect_ratio.den</var>
+<var>width</var>:<var>height</var>:<var>pix_fmt_string</var>:<var>timebase_num</var>:<var>timebase_den</var>:<var>sample_aspect_ratio_num</var>:<var>sample_aspect_ratio.den</var>:<var>scale_params</var>
 </p>
-<p>All the parameters need to be explicitely defined.
+<p>All the parameters but <var>scale_params</var> need to be explicitely
+defined.
 </p>
 <p>Follows the list of the accepted parameters.
 </p>
@@ -3394,6 +3742,12 @@ timestamps of the buffered frames.
 <dt> &lsquo;<samp>sample_aspect_ratio.num, sample_aspect_ratio.den</samp>&rsquo;</dt>
 <dd><p>Specify numerator and denominator of the sample aspect ratio assumed
 by the video frames.
+</p>
+</dd>
+<dt> &lsquo;<samp>scale_params</samp>&rsquo;</dt>
+<dd><p>Specify the optional parameters to be used for the scale filter which
+is automatically inserted when an input change is detected in the
+input size or format.
 </p></dd>
 </dl>
 
@@ -3407,11 +3761,11 @@ square pixels (1:1 sample aspect ratio).
 Since the pixel format with name &quot;yuv410p&quot; corresponds to the number 6
 (check the enum PixelFormat definition in &lsquo;<tt>libavutil/pixfmt.h</tt>&rsquo;),
 this example corresponds to:
-</p><table><tr><td>&nbsp;</td><td><pre class="example">buffer=320:240:6:1:24
+</p><table><tr><td>&nbsp;</td><td><pre class="example">buffer=320:240:6:1:24:1:1
 </pre></td></tr></table>
 
 <a name="color"></a>
-<h2 class="section"><a href="ffplay.html#toc-color">15.2 color</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-color">17.2 color</a></h2>
 
 <p>Provide an uniformly colored input.
 </p>
@@ -3452,7 +3806,7 @@ to the pad with identifier &quot;in&quot;.
 </pre></td></tr></table>
 
 <a name="movie"></a>
-<h2 class="section"><a href="ffplay.html#toc-movie">15.3 movie</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-movie">17.3 movie</a></h2>
 
 <p>Read a video stream from a movie container.
 </p>
@@ -3508,7 +3862,7 @@ movie=/dev/video0:f=video4linux2, scale=180:-1, setpts=PTS-STARTPTS [movie];
 </pre></td></tr></table>
 
 <a name="nullsrc"></a>
-<h2 class="section"><a href="ffplay.html#toc-nullsrc">15.4 nullsrc</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-nullsrc">17.4 nullsrc</a></h2>
 
 <p>Null video source, never return images. It is mainly useful as a
 template and to be employed in analysis / debugging tools.
@@ -3525,7 +3879,7 @@ timebase. The expression can contain the constants &quot;PI&quot;, &quot;E&quot;
 &quot;AVTB&quot; (the default timebase), and defaults to the value &quot;AVTB&quot;.
 </p>
 <a name="frei0r_005fsrc"></a>
-<h2 class="section"><a href="ffplay.html#toc-frei0r_005fsrc">15.5 frei0r_src</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-frei0r_005fsrc">17.5 frei0r_src</a></h2>
 
 <p>Provide a frei0r source.
 </p>
@@ -3553,12 +3907,12 @@ frei0r_src=200x200:10:partik0l=1234 [overlay]; [in][overlay] overlay
 
 
 <a name="Video-Sinks"></a>
-<h1 class="chapter"><a href="ffplay.html#toc-Video-Sinks">16. Video Sinks</a></h1>
+<h1 class="chapter"><a href="ffplay.html#toc-Video-Sinks">18. Video Sinks</a></h1>
 
 <p>Below is a description of the currently available video sinks.
 </p>
 <a name="nullsink"></a>
-<h2 class="section"><a href="ffplay.html#toc-nullsink">16.1 nullsink</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-nullsink">18.1 nullsink</a></h2>
 
 <p>Null video sink, do absolutely nothing with the input video. It is
 mainly useful as a template and to be employed in analysis / debugging
@@ -3570,7 +3924,7 @@ tools.
 <hr size="1">
 <p>
  <font size="-1">
-  This document was generated by <em>Kyle Schwarz</em> on <em>May 18, 2011</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+  This document was generated by <em>Kyle Schwarz</em> on <em>June 10, 2011</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
  </font>
  <br>
 
index c23ed2831506fe5ff5132ff6a6028ebcff98889a..a0f7417ac911c0d36710741b3f41b933ae1f0e06 100644 (file)
@@ -1,6 +1,6 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
 <html>
-<!-- Created on May 18, 2011 by texi2html 1.82
+<!-- Created on June 10, 2011 by texi2html 1.82
 texi2html was written by: 
             Lionel Cons <Lionel.Cons@cern.ch> (original author)
             Karl Berry  <karl@freefriends.org>
@@ -56,55 +56,56 @@ ul.toc {list-style: none}
     <li><a name="toc-Generic-options" href="#Generic-options">3.1 Generic options</a></li>
     <li><a name="toc-Main-options" href="#Main-options">3.2 Main options</a></li>
   </ul></li>
-  <li><a name="toc-Demuxers" href="#Demuxers">4. Demuxers</a>
+  <li><a name="toc-Decoders" href="#Decoders">4. Decoders</a></li>
+  <li><a name="toc-Video-Decoders" href="#Video-Decoders">5. Video Decoders</a>
   <ul class="toc">
-    <li><a name="toc-image2" href="#image2">4.1 image2</a></li>
-    <li><a name="toc-applehttp-1" href="#applehttp-1">4.2 applehttp</a></li>
+    <li><a name="toc-rawvideo" href="#rawvideo">5.1 rawvideo</a>
+    <ul class="toc">
+      <li><a name="toc-Options-1" href="#Options-1">5.1.1 Options</a></li>
+    </ul>
+</li>
   </ul></li>
-  <li><a name="toc-Muxers" href="#Muxers">5. Muxers</a>
+  <li><a name="toc-Demuxers" href="#Demuxers">6. Demuxers</a>
   <ul class="toc">
-    <li><a name="toc-crc-1" href="#crc-1">5.1 crc</a></li>
-    <li><a name="toc-framecrc-1" href="#framecrc-1">5.2 framecrc</a></li>
-    <li><a name="toc-image2-1" href="#image2-1">5.3 image2</a></li>
-    <li><a name="toc-mpegts" href="#mpegts">5.4 mpegts</a></li>
-    <li><a name="toc-null" href="#null">5.5 null</a></li>
+    <li><a name="toc-image2" href="#image2">6.1 image2</a></li>
+    <li><a name="toc-applehttp-1" href="#applehttp-1">6.2 applehttp</a></li>
   </ul></li>
-  <li><a name="toc-Protocols" href="#Protocols">6. Protocols</a>
+  <li><a name="toc-Protocols" href="#Protocols">7. Protocols</a>
   <ul class="toc">
-    <li><a name="toc-applehttp" href="#applehttp">6.1 applehttp</a></li>
-    <li><a name="toc-concat" href="#concat">6.2 concat</a></li>
-    <li><a name="toc-file" href="#file">6.3 file</a></li>
-    <li><a name="toc-gopher" href="#gopher">6.4 gopher</a></li>
-    <li><a name="toc-http" href="#http">6.5 http</a></li>
-    <li><a name="toc-mmst" href="#mmst">6.6 mmst</a></li>
-    <li><a name="toc-mmsh" href="#mmsh">6.7 mmsh</a></li>
-    <li><a name="toc-md5" href="#md5">6.8 md5</a></li>
-    <li><a name="toc-pipe" href="#pipe">6.9 pipe</a></li>
-    <li><a name="toc-rtmp" href="#rtmp">6.10 rtmp</a></li>
-    <li><a name="toc-rtmp_002c-rtmpe_002c-rtmps_002c-rtmpt_002c-rtmpte" href="#rtmp_002c-rtmpe_002c-rtmps_002c-rtmpt_002c-rtmpte">6.11 rtmp, rtmpe, rtmps, rtmpt, rtmpte</a></li>
-    <li><a name="toc-rtp" href="#rtp">6.12 rtp</a></li>
-    <li><a name="toc-rtsp" href="#rtsp">6.13 rtsp</a></li>
-    <li><a name="toc-sap" href="#sap">6.14 sap</a>
+    <li><a name="toc-applehttp" href="#applehttp">7.1 applehttp</a></li>
+    <li><a name="toc-concat" href="#concat">7.2 concat</a></li>
+    <li><a name="toc-file" href="#file">7.3 file</a></li>
+    <li><a name="toc-gopher" href="#gopher">7.4 gopher</a></li>
+    <li><a name="toc-http" href="#http">7.5 http</a></li>
+    <li><a name="toc-mmst" href="#mmst">7.6 mmst</a></li>
+    <li><a name="toc-mmsh" href="#mmsh">7.7 mmsh</a></li>
+    <li><a name="toc-md5" href="#md5">7.8 md5</a></li>
+    <li><a name="toc-pipe" href="#pipe">7.9 pipe</a></li>
+    <li><a name="toc-rtmp" href="#rtmp">7.10 rtmp</a></li>
+    <li><a name="toc-rtmp_002c-rtmpe_002c-rtmps_002c-rtmpt_002c-rtmpte" href="#rtmp_002c-rtmpe_002c-rtmps_002c-rtmpt_002c-rtmpte">7.11 rtmp, rtmpe, rtmps, rtmpt, rtmpte</a></li>
+    <li><a name="toc-rtp" href="#rtp">7.12 rtp</a></li>
+    <li><a name="toc-rtsp" href="#rtsp">7.13 rtsp</a></li>
+    <li><a name="toc-sap" href="#sap">7.14 sap</a>
     <ul class="toc">
-      <li><a name="toc-Muxer" href="#Muxer">6.14.1 Muxer</a></li>
-      <li><a name="toc-Demuxer" href="#Demuxer">6.14.2 Demuxer</a></li>
+      <li><a name="toc-Muxer" href="#Muxer">7.14.1 Muxer</a></li>
+      <li><a name="toc-Demuxer" href="#Demuxer">7.14.2 Demuxer</a></li>
     </ul></li>
-    <li><a name="toc-tcp" href="#tcp">6.15 tcp</a></li>
-    <li><a name="toc-udp" href="#udp">6.16 udp</a></li>
+    <li><a name="toc-tcp" href="#tcp">7.15 tcp</a></li>
+    <li><a name="toc-udp" href="#udp">7.16 udp</a></li>
   </ul></li>
-  <li><a name="toc-Input-Devices" href="#Input-Devices">7. Input Devices</a>
+  <li><a name="toc-Input-Devices" href="#Input-Devices">8. Input Devices</a>
   <ul class="toc">
-    <li><a name="toc-alsa" href="#alsa">7.1 alsa</a></li>
-    <li><a name="toc-bktr" href="#bktr">7.2 bktr</a></li>
-    <li><a name="toc-dv1394" href="#dv1394">7.3 dv1394</a></li>
-    <li><a name="toc-fbdev" href="#fbdev">7.4 fbdev</a></li>
-    <li><a name="toc-jack" href="#jack">7.5 jack</a></li>
-    <li><a name="toc-libdc1394" href="#libdc1394">7.6 libdc1394</a></li>
-    <li><a name="toc-oss" href="#oss">7.7 oss</a></li>
-    <li><a name="toc-sndio" href="#sndio">7.8 sndio</a></li>
-    <li><a name="toc-video4linux-and-video4linux2" href="#video4linux-and-video4linux2">7.9 video4linux and video4linux2</a></li>
-    <li><a name="toc-vfwcap" href="#vfwcap">7.10 vfwcap</a></li>
-    <li><a name="toc-x11grab" href="#x11grab">7.11 x11grab</a></li>
+    <li><a name="toc-alsa" href="#alsa">8.1 alsa</a></li>
+    <li><a name="toc-bktr" href="#bktr">8.2 bktr</a></li>
+    <li><a name="toc-dv1394" href="#dv1394">8.3 dv1394</a></li>
+    <li><a name="toc-fbdev" href="#fbdev">8.4 fbdev</a></li>
+    <li><a name="toc-jack" href="#jack">8.5 jack</a></li>
+    <li><a name="toc-libdc1394" href="#libdc1394">8.6 libdc1394</a></li>
+    <li><a name="toc-oss" href="#oss">8.7 oss</a></li>
+    <li><a name="toc-sndio" href="#sndio">8.8 sndio</a></li>
+    <li><a name="toc-video4linux-and-video4linux2" href="#video4linux-and-video4linux2">8.9 video4linux and video4linux2</a></li>
+    <li><a name="toc-vfwcap" href="#vfwcap">8.10 vfwcap</a></li>
+    <li><a name="toc-x11grab" href="#x11grab">8.11 x11grab</a></li>
   </ul>
 </li>
 </ul>
@@ -324,11 +325,69 @@ multimedia stream.
 <p>Each media stream information is printed within a dedicated section
 with name &quot;STREAM&quot;.
 </p>
+</dd>
+<dt> &lsquo;<samp>-i <var>input_file</var></samp>&rsquo;</dt>
+<dd><p>Read <var>input_file</var>.
+</p>
+</dd>
+</dl>
+
+<a name="Decoders"></a>
+<h1 class="chapter"><a href="ffprobe.html#toc-Decoders">4. Decoders</a></h1>
+
+<p>Decoders are configured elements in FFmpeg which allow the decoding of
+multimedia streams.
+</p>
+<p>When you configure your FFmpeg build, all the supported native decoders
+are enabled by default. Decoders requiring an external library must be enabled
+manually via the corresponding <code>--enable-lib</code> option. You can list all
+available decoders using the configure option <code>--list-decoders</code>.
+</p>
+<p>You can disable all the decoders with the configure option
+<code>--disable-decoders</code> and selectively enable / disable single decoders
+with the options <code>--enable-decoder=<var>DECODER</var></code> /
+<code>--disable-decoder=<var>DECODER</var></code>.
+</p>
+<p>The option <code>-codecs</code> of the ff* tools will display the list of
+enabled decoders.
+</p>
+
+<a name="Video-Decoders"></a>
+<h1 class="chapter"><a href="ffprobe.html#toc-Video-Decoders">5. Video Decoders</a></h1>
+
+<p>A description of some of the currently available video decoders
+follows.
+</p>
+<a name="rawvideo"></a>
+<h2 class="section"><a href="ffprobe.html#toc-rawvideo">5.1 rawvideo</a></h2>
+
+<p>Rawvideo decoder.
+</p>
+<p>This decoder decodes rawvideo streams.
+</p>
+<a name="Options-1"></a>
+<h3 class="subsection"><a href="ffprobe.html#toc-Options-1">5.1.1 Options</a></h3>
+
+<dl compact="compact">
+<dt> &lsquo;<samp>top <var>top_field_first</var></samp>&rsquo;</dt>
+<dd><p>Specify the assumed field type of the input video.
+</p><dl compact="compact">
+<dt> &lsquo;<samp>-1</samp>&rsquo;</dt>
+<dd><p>the video is assumed to be progressive (default)
+</p></dd>
+<dt> &lsquo;<samp>0</samp>&rsquo;</dt>
+<dd><p>bottom-field-first is assumed
+</p></dd>
+<dt> &lsquo;<samp>1</samp>&rsquo;</dt>
+<dd><p>top-field-first is assumed
+</p></dd>
+</dl>
+
 </dd>
 </dl>
 
 <a name="Demuxers"></a>
-<h1 class="chapter"><a href="ffprobe.html#toc-Demuxers">4. Demuxers</a></h1>
+<h1 class="chapter"><a href="ffprobe.html#toc-Demuxers">6. Demuxers</a></h1>
 
 <p>Demuxers are configured elements in FFmpeg which allow to read the
 multimedia streams from a particular type of file.
@@ -348,7 +407,7 @@ enabled demuxers.
 <p>The description of some of the currently available demuxers follows.
 </p>
 <a name="image2"></a>
-<h2 class="section"><a href="ffprobe.html#toc-image2">4.1 image2</a></h2>
+<h2 class="section"><a href="ffprobe.html#toc-image2">6.1 image2</a></h2>
 
 <p>Image file demuxer.
 </p>
@@ -393,7 +452,7 @@ second:
 </pre></td></tr></table>
 
 <a name="applehttp-1"></a>
-<h2 class="section"><a href="ffprobe.html#toc-applehttp-1">4.2 applehttp</a></h2>
+<h2 class="section"><a href="ffprobe.html#toc-applehttp-1">6.2 applehttp</a></h2>
 
 <p>Apple HTTP Live Streaming demuxer.
 </p>
@@ -404,218 +463,8 @@ the caller can decide which variant streams to actually receive.
 The total bitrate of the variant that the stream belongs to is
 available in a metadata key named &quot;variant_bitrate&quot;.
 </p>
-<a name="Muxers"></a>
-<h1 class="chapter"><a href="ffprobe.html#toc-Muxers">5. Muxers</a></h1>
-
-<p>Muxers are configured elements in FFmpeg which allow writing
-multimedia streams to a particular type of file.
-</p>
-<p>When you configure your FFmpeg build, all the supported muxers
-are enabled by default. You can list all available muxers using the
-configure option <code>--list-muxers</code>.
-</p>
-<p>You can disable all the muxers with the configure option
-<code>--disable-muxers</code> and selectively enable / disable single muxers
-with the options <code>--enable-muxer=<var>MUXER</var></code> /
-<code>--disable-muxer=<var>MUXER</var></code>.
-</p>
-<p>The option <code>-formats</code> of the ff* tools will display the list of
-enabled muxers.
-</p>
-<p>A description of some of the currently available muxers follows.
-</p>
-<p><a name="crc"></a>
-</p><a name="crc-1"></a>
-<h2 class="section"><a href="ffprobe.html#toc-crc-1">5.1 crc</a></h2>
-
-<p>CRC (Cyclic Redundancy Check) testing format.
-</p>
-<p>This muxer computes and prints the Adler-32 CRC of all the input audio
-and video frames. By default audio frames are converted to signed
-16-bit raw audio and video frames to raw video before computing the
-CRC.
-</p>
-<p>The output of the muxer consists of a single line of the form:
-CRC=0x<var>CRC</var>, where <var>CRC</var> is a hexadecimal number 0-padded to
-8 digits containing the CRC for all the decoded input frames.
-</p>
-<p>For example to compute the CRC of the input, and store it in the file
-&lsquo;<tt>out.crc</tt>&rsquo;:
-</p><table><tr><td>&nbsp;</td><td><pre class="example">ffmpeg -i INPUT -f crc out.crc
-</pre></td></tr></table>
-
-<p>You can print the CRC to stdout with the command:
-</p><table><tr><td>&nbsp;</td><td><pre class="example">ffmpeg -i INPUT -f crc -
-</pre></td></tr></table>
-
-<p>You can select the output format of each frame with &lsquo;<tt>ffmpeg</tt>&rsquo; by
-specifying the audio and video codec and format. For example to
-compute the CRC of the input audio converted to PCM unsigned 8-bit
-and the input video converted to MPEG-2 video, use the command:
-</p><table><tr><td>&nbsp;</td><td><pre class="example">ffmpeg -i INPUT -acodec pcm_u8 -vcodec mpeg2video -f crc -
-</pre></td></tr></table>
-
-<p>See also the <code>framecrc</code> muxer (see <a href="#framecrc">framecrc</a>).
-</p>
-<p><a name="framecrc"></a>
-</p><a name="framecrc-1"></a>
-<h2 class="section"><a href="ffprobe.html#toc-framecrc-1">5.2 framecrc</a></h2>
-
-<p>Per-frame CRC (Cyclic Redundancy Check) testing format.
-</p>
-<p>This muxer computes and prints the Adler-32 CRC for each decoded audio
-and video frame. By default audio frames are converted to signed
-16-bit raw audio and video frames to raw video before computing the
-CRC.
-</p>
-<p>The output of the muxer consists of a line for each audio and video
-frame of the form: <var>stream_index</var>, <var>frame_dts</var>,
-<var>frame_size</var>, 0x<var>CRC</var>, where <var>CRC</var> is a hexadecimal
-number 0-padded to 8 digits containing the CRC of the decoded frame.
-</p>
-<p>For example to compute the CRC of each decoded frame in the input, and
-store it in the file &lsquo;<tt>out.crc</tt>&rsquo;:
-</p><table><tr><td>&nbsp;</td><td><pre class="example">ffmpeg -i INPUT -f framecrc out.crc
-</pre></td></tr></table>
-
-<p>You can print the CRC of each decoded frame to stdout with the command:
-</p><table><tr><td>&nbsp;</td><td><pre class="example">ffmpeg -i INPUT -f framecrc -
-</pre></td></tr></table>
-
-<p>You can select the output format of each frame with &lsquo;<tt>ffmpeg</tt>&rsquo; by
-specifying the audio and video codec and format. For example, to
-compute the CRC of each decoded input audio frame converted to PCM
-unsigned 8-bit and of each decoded input video frame converted to
-MPEG-2 video, use the command:
-</p><table><tr><td>&nbsp;</td><td><pre class="example">ffmpeg -i INPUT -acodec pcm_u8 -vcodec mpeg2video -f framecrc -
-</pre></td></tr></table>
-
-<p>See also the <code>crc</code> muxer (see <a href="#crc">crc</a>).
-</p>
-<a name="image2-1"></a>
-<h2 class="section"><a href="ffprobe.html#toc-image2-1">5.3 image2</a></h2>
-
-<p>Image file muxer.
-</p>
-<p>The image file muxer writes video frames to image files.
-</p>
-<p>The output filenames are specified by a pattern, which can be used to
-produce sequentially numbered series of files.
-The pattern may contain the string &quot;%d&quot; or &quot;%0<var>N</var>d&quot;, this string
-specifies the position of the characters representing a numbering in
-the filenames. If the form &quot;%0<var>N</var>d&quot; is used, the string
-representing the number in each filename is 0-padded to <var>N</var>
-digits. The literal character &rsquo;%&rsquo; can be specified in the pattern with
-the string &quot;%%&quot;.
-</p>
-<p>If the pattern contains &quot;%d&quot; or &quot;%0<var>N</var>d&quot;, the first filename of
-the file list specified will contain the number 1, all the following
-numbers will be sequential.
-</p>
-<p>The pattern may contain a suffix which is used to automatically
-determine the format of the image files to write.
-</p>
-<p>For example the pattern &quot;img-%03d.bmp&quot; will specify a sequence of
-filenames of the form &lsquo;<tt>img-001.bmp</tt>&rsquo;, &lsquo;<tt>img-002.bmp</tt>&rsquo;, ...,
-&lsquo;<tt>img-010.bmp</tt>&rsquo;, etc.
-The pattern &quot;img%%-%d.jpg&quot; will specify a sequence of filenames of the
-form &lsquo;<tt>img%-1.jpg</tt>&rsquo;, &lsquo;<tt>img%-2.jpg</tt>&rsquo;, ..., &lsquo;<tt>img%-10.jpg</tt>&rsquo;,
-etc.
-</p>
-<p>The following example shows how to use &lsquo;<tt>ffmpeg</tt>&rsquo; for creating a
-sequence of files &lsquo;<tt>img-001.jpeg</tt>&rsquo;, &lsquo;<tt>img-002.jpeg</tt>&rsquo;, ...,
-taking one image every second from the input video:
-</p><table><tr><td>&nbsp;</td><td><pre class="example">ffmpeg -i in.avi -r 1 -f image2 'img-%03d.jpeg'
-</pre></td></tr></table>
-
-<p>Note that with &lsquo;<tt>ffmpeg</tt>&rsquo;, if the format is not specified with the
-<code>-f</code> option and the output filename specifies an image file
-format, the image2 muxer is automatically selected, so the previous
-command can be written as:
-</p><table><tr><td>&nbsp;</td><td><pre class="example">ffmpeg -i in.avi -r 1 'img-%03d.jpeg'
-</pre></td></tr></table>
-
-<p>Note also that the pattern must not necessarily contain &quot;%d&quot; or
-&quot;%0<var>N</var>d&quot;, for example to create a single image file
-&lsquo;<tt>img.jpeg</tt>&rsquo; from the input video you can employ the command:
-</p><table><tr><td>&nbsp;</td><td><pre class="example">ffmpeg -i in.avi -f image2 -vframes 1 img.jpeg
-</pre></td></tr></table>
-
-<p>The image muxer supports the .Y.U.V image file format. This format is
-special in that that each image frame consists of three files, for
-each of the YUV420P components. To read or write this image file format,
-specify the name of the &rsquo;.Y&rsquo; file. The muxer will automatically open the
-&rsquo;.U&rsquo; and &rsquo;.V&rsquo; files as required.
-</p>
-<a name="mpegts"></a>
-<h2 class="section"><a href="ffprobe.html#toc-mpegts">5.4 mpegts</a></h2>
-
-<p>MPEG transport stream muxer.
-</p>
-<p>This muxer implements ISO 13818-1 and part of ETSI EN 300 468.
-</p>
-<p>The muxer options are:
-</p>
-<dl compact="compact">
-<dt> &lsquo;<samp>-mpegts_original_network_id <var>number</var></samp>&rsquo;</dt>
-<dd><p>Set the original_network_id (default 0x0001). This is unique identifier
-of a network in DVB. Its main use is in the unique identification of a
-service through the path Original_Network_ID, Transport_Stream_ID.
-</p></dd>
-<dt> &lsquo;<samp>-mpegts_transport_stream_id <var>number</var></samp>&rsquo;</dt>
-<dd><p>Set the transport_stream_id (default 0x0001). This identifies a
-transponder in DVB.
-</p></dd>
-<dt> &lsquo;<samp>-mpegts_service_id <var>number</var></samp>&rsquo;</dt>
-<dd><p>Set the service_id (default 0x0001) also known as program in DVB.
-</p></dd>
-<dt> &lsquo;<samp>-mpegts_pmt_start_pid <var>number</var></samp>&rsquo;</dt>
-<dd><p>Set the first PID for PMT (default 0x1000, max 0x1f00).
-</p></dd>
-<dt> &lsquo;<samp>-mpegts_start_pid <var>number</var></samp>&rsquo;</dt>
-<dd><p>Set the first PID for data packets (default 0x0100, max 0x0f00).
-</p></dd>
-</dl>
-
-<p>The recognized metadata settings in mpegts muxer are <code>service_provider</code>
-and <code>service_name</code>. If they are not set the default for
-<code>service_provider</code> is &quot;FFmpeg&quot; and the default for
-<code>service_name</code> is &quot;Service01&quot;.
-</p>
-<table><tr><td>&nbsp;</td><td><pre class="example">ffmpeg -i file.mpg -acodec copy -vcodec copy \
-     -mpegts_original_network_id 0x1122 \
-     -mpegts_transport_stream_id 0x3344 \
-     -mpegts_service_id 0x5566 \
-     -mpegts_pmt_start_pid 0x1500 \
-     -mpegts_start_pid 0x150 \
-     -metadata service_provider=&quot;Some provider&quot; \
-     -metadata service_name=&quot;Some Channel&quot; \
-     -y out.ts
-</pre></td></tr></table>
-
-<a name="null"></a>
-<h2 class="section"><a href="ffprobe.html#toc-null">5.5 null</a></h2>
-
-<p>Null muxer.
-</p>
-<p>This muxer does not generate any output file, it is mainly useful for
-testing or benchmarking purposes.
-</p>
-<p>For example to benchmark decoding with &lsquo;<tt>ffmpeg</tt>&rsquo; you can use the
-command:
-</p><table><tr><td>&nbsp;</td><td><pre class="example">ffmpeg -benchmark -i INPUT -f null out.null
-</pre></td></tr></table>
-
-<p>Note that the above command does not read or write the &lsquo;<tt>out.null</tt>&rsquo;
-file, but specifying the output file is required by the &lsquo;<tt>ffmpeg</tt>&rsquo;
-syntax.
-</p>
-<p>Alternatively you can write the command as:
-</p><table><tr><td>&nbsp;</td><td><pre class="example">ffmpeg -benchmark -i INPUT -f null -
-</pre></td></tr></table>
-
 <a name="Protocols"></a>
-<h1 class="chapter"><a href="ffprobe.html#toc-Protocols">6. Protocols</a></h1>
+<h1 class="chapter"><a href="ffprobe.html#toc-Protocols">7. Protocols</a></h1>
 
 <p>Protocols are configured elements in FFmpeg which allow to access
 resources which require the use of a particular protocol.
@@ -636,7 +485,7 @@ supported protocols.
 <p>A description of the currently available protocols follows.
 </p>
 <a name="applehttp"></a>
-<h2 class="section"><a href="ffprobe.html#toc-applehttp">6.1 applehttp</a></h2>
+<h2 class="section"><a href="ffprobe.html#toc-applehttp">7.1 applehttp</a></h2>
 
 <p>Read Apple HTTP Live Streaming compliant segmented stream as
 a uniform one. The M3U8 playlists describing the segments can be
@@ -652,7 +501,7 @@ applehttp+file://path/to/local/resource.m3u8
 </pre></td></tr></table>
 
 <a name="concat"></a>
-<h2 class="section"><a href="ffprobe.html#toc-concat">6.2 concat</a></h2>
+<h2 class="section"><a href="ffprobe.html#toc-concat">7.2 concat</a></h2>
 
 <p>Physical concatenation protocol.
 </p>
@@ -677,7 +526,7 @@ command:
 many shells.
 </p>
 <a name="file"></a>
-<h2 class="section"><a href="ffprobe.html#toc-file">6.3 file</a></h2>
+<h2 class="section"><a href="ffprobe.html#toc-file">7.3 file</a></h2>
 
 <p>File access protocol.
 </p>
@@ -693,22 +542,22 @@ specified with the name &quot;FILE.mpeg&quot; is interpreted as the URL
 &quot;file:FILE.mpeg&quot;.
 </p>
 <a name="gopher"></a>
-<h2 class="section"><a href="ffprobe.html#toc-gopher">6.4 gopher</a></h2>
+<h2 class="section"><a href="ffprobe.html#toc-gopher">7.4 gopher</a></h2>
 
 <p>Gopher protocol.
 </p>
 <a name="http"></a>
-<h2 class="section"><a href="ffprobe.html#toc-http">6.5 http</a></h2>
+<h2 class="section"><a href="ffprobe.html#toc-http">7.5 http</a></h2>
 
 <p>HTTP (Hyper Text Transfer Protocol).
 </p>
 <a name="mmst"></a>
-<h2 class="section"><a href="ffprobe.html#toc-mmst">6.6 mmst</a></h2>
+<h2 class="section"><a href="ffprobe.html#toc-mmst">7.6 mmst</a></h2>
 
 <p>MMS (Microsoft Media Server) protocol over TCP.
 </p>
 <a name="mmsh"></a>
-<h2 class="section"><a href="ffprobe.html#toc-mmsh">6.7 mmsh</a></h2>
+<h2 class="section"><a href="ffprobe.html#toc-mmsh">7.7 mmsh</a></h2>
 
 <p>MMS (Microsoft Media Server) protocol over HTTP.
 </p>
@@ -717,7 +566,7 @@ specified with the name &quot;FILE.mpeg&quot; is interpreted as the URL
 </pre></td></tr></table>
 
 <a name="md5"></a>
-<h2 class="section"><a href="ffprobe.html#toc-md5">6.8 md5</a></h2>
+<h2 class="section"><a href="ffprobe.html#toc-md5">7.8 md5</a></h2>
 
 <p>MD5 output protocol.
 </p>
@@ -737,7 +586,7 @@ ffmpeg -i input.flv -f avi -y md5:
 be seekable, so they will fail with the MD5 output protocol.
 </p>
 <a name="pipe"></a>
-<h2 class="section"><a href="ffprobe.html#toc-pipe">6.9 pipe</a></h2>
+<h2 class="section"><a href="ffprobe.html#toc-pipe">7.9 pipe</a></h2>
 
 <p>UNIX pipe access protocol.
 </p>
@@ -768,7 +617,7 @@ ffmpeg -i test.wav -f avi pipe: | cat &gt; test.avi
 be seekable, so they will fail with the pipe output protocol.
 </p>
 <a name="rtmp"></a>
-<h2 class="section"><a href="ffprobe.html#toc-rtmp">6.10 rtmp</a></h2>
+<h2 class="section"><a href="ffprobe.html#toc-rtmp">7.10 rtmp</a></h2>
 
 <p>Real-Time Messaging Protocol.
 </p>
@@ -808,7 +657,7 @@ application specified in <var>app</var>, may be prefixed by &quot;mp4:&quot;.
 </pre></td></tr></table>
 
 <a name="rtmp_002c-rtmpe_002c-rtmps_002c-rtmpt_002c-rtmpte"></a>
-<h2 class="section"><a href="ffprobe.html#toc-rtmp_002c-rtmpe_002c-rtmps_002c-rtmpt_002c-rtmpte">6.11 rtmp, rtmpe, rtmps, rtmpt, rtmpte</a></h2>
+<h2 class="section"><a href="ffprobe.html#toc-rtmp_002c-rtmpe_002c-rtmps_002c-rtmpt_002c-rtmpte">7.11 rtmp, rtmpe, rtmps, rtmpt, rtmpte</a></h2>
 
 <p>Real-Time Messaging Protocol and its variants supported through
 librtmp.
@@ -846,12 +695,12 @@ meaning as specified for the RTMP native protocol.
 </pre></td></tr></table>
 
 <a name="rtp"></a>
-<h2 class="section"><a href="ffprobe.html#toc-rtp">6.12 rtp</a></h2>
+<h2 class="section"><a href="ffprobe.html#toc-rtp">7.12 rtp</a></h2>
 
 <p>Real-Time Protocol.
 </p>
 <a name="rtsp"></a>
-<h2 class="section"><a href="ffprobe.html#toc-rtsp">6.13 rtsp</a></h2>
+<h2 class="section"><a href="ffprobe.html#toc-rtsp">7.13 rtsp</a></h2>
 
 <p>RTSP is not technically a protocol handler in libavformat, it is a demuxer
 and muxer. The demuxer supports both normal RTSP (with data transferred
@@ -925,7 +774,7 @@ on the fly by pressing <code>v</code> and <code>a</code>.
 </pre></td></tr></table>
 
 <a name="sap"></a>
-<h2 class="section"><a href="ffprobe.html#toc-sap">6.14 sap</a></h2>
+<h2 class="section"><a href="ffprobe.html#toc-sap">7.14 sap</a></h2>
 
 <p>Session Announcement Protocol (RFC 2974). This is not technically a
 protocol handler in libavformat, it is a muxer and demuxer.
@@ -933,7 +782,7 @@ It is used for signalling of RTP streams, by announcing the SDP for the
 streams regularly on a separate port.
 </p>
 <a name="Muxer"></a>
-<h3 class="subsection"><a href="ffprobe.html#toc-Muxer">6.14.1 Muxer</a></h3>
+<h3 class="subsection"><a href="ffprobe.html#toc-Muxer">7.14.1 Muxer</a></h3>
 
 <p>The syntax for a SAP url given to the muxer is:
 </p><table><tr><td>&nbsp;</td><td><pre class="example">sap://<var>destination</var>[:<var>port</var>][?<var>options</var>]
@@ -990,7 +839,7 @@ on unique ports.
 </pre></td></tr></table>
 
 <a name="Demuxer"></a>
-<h3 class="subsection"><a href="ffprobe.html#toc-Demuxer">6.14.2 Demuxer</a></h3>
+<h3 class="subsection"><a href="ffprobe.html#toc-Demuxer">7.14.2 Demuxer</a></h3>
 
 <p>The syntax for a SAP url given to the demuxer is:
 </p><table><tr><td>&nbsp;</td><td><pre class="example">sap://[<var>address</var>][:<var>port</var>]
@@ -1016,7 +865,7 @@ Once an announcement is received, it tries to receive that particular stream.
 </pre></td></tr></table>
 
 <a name="tcp"></a>
-<h2 class="section"><a href="ffprobe.html#toc-tcp">6.15 tcp</a></h2>
+<h2 class="section"><a href="ffprobe.html#toc-tcp">7.15 tcp</a></h2>
 
 <p>Trasmission Control Protocol.
 </p>
@@ -1036,7 +885,7 @@ ffplay tcp://<var>hostname</var>:<var>port</var>
 </dl>
 
 <a name="udp"></a>
-<h2 class="section"><a href="ffprobe.html#toc-udp">6.16 udp</a></h2>
+<h2 class="section"><a href="ffprobe.html#toc-udp">7.16 udp</a></h2>
 
 <p>User Datagram Protocol.
 </p>
@@ -1096,7 +945,7 @@ the specified peer address/port.
 </pre></td></tr></table>
 
 <a name="Input-Devices"></a>
-<h1 class="chapter"><a href="ffprobe.html#toc-Input-Devices">7. Input Devices</a></h1>
+<h1 class="chapter"><a href="ffprobe.html#toc-Input-Devices">8. Input Devices</a></h1>
 
 <p>Input devices are configured elements in FFmpeg which allow to access
 the data coming from a multimedia device attached to your system.
@@ -1116,7 +965,7 @@ supported input devices (amongst the demuxers).
 <p>A description of the currently available input devices follows.
 </p>
 <a name="alsa"></a>
-<h2 class="section"><a href="ffprobe.html#toc-alsa">7.1 alsa</a></h2>
+<h2 class="section"><a href="ffprobe.html#toc-alsa">8.1 alsa</a></h2>
 
 <p>ALSA (Advanced Linux Sound Architecture) input device.
 </p>
@@ -1148,17 +997,17 @@ card id 0, you may run the command:
 <a href="http://www.alsa-project.org/alsa-doc/alsa-lib/pcm.html">http://www.alsa-project.org/alsa-doc/alsa-lib/pcm.html</a>
 </p>
 <a name="bktr"></a>
-<h2 class="section"><a href="ffprobe.html#toc-bktr">7.2 bktr</a></h2>
+<h2 class="section"><a href="ffprobe.html#toc-bktr">8.2 bktr</a></h2>
 
 <p>BSD video input device.
 </p>
 <a name="dv1394"></a>
-<h2 class="section"><a href="ffprobe.html#toc-dv1394">7.3 dv1394</a></h2>
+<h2 class="section"><a href="ffprobe.html#toc-dv1394">8.3 dv1394</a></h2>
 
 <p>Linux DV 1394 input device.
 </p>
 <a name="fbdev"></a>
-<h2 class="section"><a href="ffprobe.html#toc-fbdev">7.4 fbdev</a></h2>
+<h2 class="section"><a href="ffprobe.html#toc-fbdev">8.4 fbdev</a></h2>
 
 <p>Linux framebuffer input device.
 </p>
@@ -1182,7 +1031,7 @@ Documentation/fb/framebuffer.txt included in the Linux source tree.
 <p>See also <a href="http://linux-fbdev.sourceforge.net/">http://linux-fbdev.sourceforge.net/</a>, and fbset(1).
 </p>
 <a name="jack"></a>
-<h2 class="section"><a href="ffprobe.html#toc-jack">7.5 jack</a></h2>
+<h2 class="section"><a href="ffprobe.html#toc-jack">8.5 jack</a></h2>
 
 <p>JACK input device.
 </p>
@@ -1231,12 +1080,12 @@ $ jack_connect metro:120_bpm ffmpeg:input_1
 <a href="http://jackaudio.org/">http://jackaudio.org/</a>
 </p>
 <a name="libdc1394"></a>
-<h2 class="section"><a href="ffprobe.html#toc-libdc1394">7.6 libdc1394</a></h2>
+<h2 class="section"><a href="ffprobe.html#toc-libdc1394">8.6 libdc1394</a></h2>
 
 <p>IIDC1394 input device, based on libdc1394 and libraw1394.
 </p>
 <a name="oss"></a>
-<h2 class="section"><a href="ffprobe.html#toc-oss">7.7 oss</a></h2>
+<h2 class="section"><a href="ffprobe.html#toc-oss">8.7 oss</a></h2>
 
 <p>Open Sound System input device.
 </p>
@@ -1253,7 +1102,7 @@ command:
 <a href="http://manuals.opensound.com/usersguide/dsp.html">http://manuals.opensound.com/usersguide/dsp.html</a>
 </p>
 <a name="sndio"></a>
-<h2 class="section"><a href="ffprobe.html#toc-sndio">7.8 sndio</a></h2>
+<h2 class="section"><a href="ffprobe.html#toc-sndio">8.8 sndio</a></h2>
 
 <p>sndio input device.
 </p>
@@ -1270,7 +1119,7 @@ command:
 </pre></td></tr></table>
 
 <a name="video4linux-and-video4linux2"></a>
-<h2 class="section"><a href="ffprobe.html#toc-video4linux-and-video4linux2">7.9 video4linux and video4linux2</a></h2>
+<h2 class="section"><a href="ffprobe.html#toc-video4linux-and-video4linux2">8.9 video4linux and video4linux2</a></h2>
 
 <p>Video4Linux and Video4Linux2 input video devices.
 </p>
@@ -1309,7 +1158,7 @@ ffmpeg -f video4linux2 -i /dev/video0 out.mpeg
 </pre></td></tr></table>
 
 <a name="vfwcap"></a>
-<h2 class="section"><a href="ffprobe.html#toc-vfwcap">7.10 vfwcap</a></h2>
+<h2 class="section"><a href="ffprobe.html#toc-vfwcap">8.10 vfwcap</a></h2>
 
 <p>VfW (Video for Windows) capture input device.
 </p>
@@ -1318,7 +1167,7 @@ ffmpeg -f video4linux2 -i /dev/video0 out.mpeg
 other filename will be interpreted as device number 0.
 </p>
 <a name="x11grab"></a>
-<h2 class="section"><a href="ffprobe.html#toc-x11grab">7.11 x11grab</a></h2>
+<h2 class="section"><a href="ffprobe.html#toc-x11grab">8.11 x11grab</a></h2>
 
 <p>X11 video input device.
 </p>
@@ -1354,7 +1203,7 @@ ffmpeg -f x11grab -25 -s cif -i :0.0+10,20 out.mpg
 <hr size="1">
 <p>
  <font size="-1">
-  This document was generated by <em>Kyle Schwarz</em> on <em>May 18, 2011</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+  This document was generated by <em>Kyle Schwarz</em> on <em>June 10, 2011</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
  </font>
  <br>
 
index 013d9e2d7e722af31acdce6aea79b940827644cf..defdf3f69fee74f2a748b09b6641beafe623332a 100644 (file)
@@ -1,6 +1,6 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
 <html>
-<!-- Created on May 18, 2011 by texi2html 1.82
+<!-- Created on June 10, 2011 by texi2html 1.82
 texi2html was written by: 
             Lionel Cons <Lionel.Cons@cern.ch> (original author)
             Karl Berry  <karl@freefriends.org>
@@ -65,10 +65,7 @@ ul.toc {list-style: none}
   </ul></li>
   <li><a name="toc-Platform-Specific-information" href="#Platform-Specific-information">3. Platform Specific information</a>
   <ul class="toc">
-    <li><a name="toc-DOS" href="#DOS">3.1 DOS</a>
-    <ul class="toc">
-      <li><a name="toc-DJGPP" href="#DJGPP">3.1.1 DJGPP</a></li>
-    </ul></li>
+    <li><a name="toc-DOS" href="#DOS">3.1 DOS</a></li>
     <li><a name="toc-OS_002f2" href="#OS_002f2">3.2 OS/2</a></li>
     <li><a name="toc-Unix_002dlike" href="#Unix_002dlike">3.3 Unix-like</a>
     <ul class="toc">
@@ -313,7 +310,7 @@ following image formats are supported:
 <tr><td width="40%">BMP</td><td width="10%">X</td><td width="10%">X</td><td width="40%">Microsoft BMP image</td></tr>
 <tr><td width="40%">DPX</td><td width="10%">X</td><td width="10%">X</td><td width="40%">Digital Picture Exchange</td></tr>
 <tr><td width="40%">JPEG</td><td width="10%">X</td><td width="10%">X</td><td width="40%">Progressive JPEG is not supported.</td></tr>
-<tr><td width="40%">JPEG 2000</td><td width="10%"></td><td width="10%">E</td><td width="40%">decoding supported through external library libopenjpeg</td></tr>
+<tr><td width="40%">JPEG 2000</td><td width="10%">X</td><td width="10%">X</td></tr>
 <tr><td width="40%">JPEG-LS</td><td width="10%">X</td><td width="10%">X</td></tr>
 <tr><td width="40%">LJPEG</td><td width="10%">X</td><td width="10%"></td><td width="40%">Lossless JPEG</td></tr>
 <tr><td width="40%">PAM</td><td width="10%">X</td><td width="10%">X</td><td width="40%">PAM is a PNM extension with alpha support.</td></tr>
@@ -543,7 +540,7 @@ following image formats are supported:
 <tr><td width="40%">DPCM Xan</td><td width="10%"></td><td width="10%">X</td><td width="40%">Used in Origin&rsquo;s Wing Commander IV AVI files.</td></tr>
 <tr><td width="40%">DSP Group TrueSpeech</td><td width="10%"></td><td width="10%">X</td></tr>
 <tr><td width="40%">DV audio</td><td width="10%"></td><td width="10%">X</td></tr>
-<tr><td width="40%">Enhanced AC-3</td><td width="10%"></td><td width="10%">X</td></tr>
+<tr><td width="40%">Enhanced AC-3</td><td width="10%">X</td><td width="10%">X</td></tr>
 <tr><td width="40%">FLAC (Free Lossless Audio Codec)</td><td width="10%">X</td><td width="10%">IX</td></tr>
 <tr><td width="40%">GSM</td><td width="10%">E</td><td width="10%">X</td><td width="40%">encoding supported through external library libgsm</td></tr>
 <tr><td width="40%">GSM Microsoft variant</td><td width="10%">E</td><td width="10%">X</td><td width="40%">encoding supported through external library libgsm</td></tr>
@@ -678,13 +675,6 @@ performance on systems without hardware floating point support).
 
 <p>Using a cross-compiler is preferred for various reasons.
 </p>
-<a name="DJGPP"></a>
-<h3 class="subsection"><a href="general.html#toc-DJGPP">3.1.1 DJGPP</a></h3>
-
-<p>FFmpeg cannot be compiled because of broken system headers, add
-<code>--extra-cflags=-U__STRICT_ANSI__</code> to the configure options as a
-workaround.
-</p>
 <a name="OS_002f2"></a>
 <h2 class="section"><a href="general.html#toc-OS_002f2">3.2 OS/2</a></h2>
 
@@ -765,17 +755,6 @@ are listed below:
 <p>FFmpeg automatically passes <code>-fno-common</code> to the compiler to work around
 a GCC bug (see <a href="http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37216">http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37216</a>).
 </p>
-<p>Within the MSYS shell, configure and make with:
-</p>
-<table><tr><td>&nbsp;</td><td><pre class="example">./configure --enable-memalign-hack
-make
-make install
-</pre></td></tr></table>
-
-<p>This will install &lsquo;<tt>ffmpeg.exe</tt>&rsquo; along with many other development files
-to &lsquo;<tt>/usr/local</tt>&rsquo;. You may specify another install path using the
-<code>--prefix</code> option in &lsquo;<tt>configure</tt>&rsquo;.
-</p>
 <p>Notes:
 </p>
 <ul>
@@ -1022,7 +1001,7 @@ of the <code>libgetaddrinfo-devel</code> package, available at Cygwin Ports.
 <hr size="1">
 <p>
  <font size="-1">
-  This document was generated by <em>Kyle Schwarz</em> on <em>May 18, 2011</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+  This document was generated by <em>Kyle Schwarz</em> on <em>June 10, 2011</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
  </font>
  <br>
 
index f443bd1bc0a721dd971146cbbd3ce87991a77e7a..f6a0885e176c01ab7b36fd570f4a1345ce24d10d 100644 (file)
@@ -1,6 +1,6 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
 <html>
-<!-- Created on May 18, 2011 by texi2html 1.82
+<!-- Created on June 10, 2011 by texi2html 1.82
 texi2html was written by: 
             Lionel Cons <Lionel.Cons@cern.ch> (original author)
             Karl Berry  <karl@freefriends.org>
@@ -97,16 +97,18 @@ ul.toc {list-style: none}
     <li><a name="toc-pad" href="#pad">8.20 pad</a></li>
     <li><a name="toc-pixdesctest" href="#pixdesctest">8.21 pixdesctest</a></li>
     <li><a name="toc-scale" href="#scale">8.22 scale</a></li>
-    <li><a name="toc-setdar-1" href="#setdar-1">8.23 setdar</a></li>
-    <li><a name="toc-setpts" href="#setpts">8.24 setpts</a></li>
-    <li><a name="toc-setsar-1" href="#setsar-1">8.25 setsar</a></li>
-    <li><a name="toc-settb" href="#settb">8.26 settb</a></li>
-    <li><a name="toc-showinfo" href="#showinfo">8.27 showinfo</a></li>
-    <li><a name="toc-slicify" href="#slicify">8.28 slicify</a></li>
-    <li><a name="toc-transpose" href="#transpose">8.29 transpose</a></li>
-    <li><a name="toc-unsharp" href="#unsharp">8.30 unsharp</a></li>
-    <li><a name="toc-vflip" href="#vflip">8.31 vflip</a></li>
-    <li><a name="toc-yadif" href="#yadif">8.32 yadif</a></li>
+    <li><a name="toc-select" href="#select">8.23 select</a></li>
+    <li><a name="toc-setdar-1" href="#setdar-1">8.24 setdar</a></li>
+    <li><a name="toc-setpts" href="#setpts">8.25 setpts</a></li>
+    <li><a name="toc-setsar-1" href="#setsar-1">8.26 setsar</a></li>
+    <li><a name="toc-settb" href="#settb">8.27 settb</a></li>
+    <li><a name="toc-showinfo" href="#showinfo">8.28 showinfo</a></li>
+    <li><a name="toc-slicify" href="#slicify">8.29 slicify</a></li>
+    <li><a name="toc-split" href="#split">8.30 split</a></li>
+    <li><a name="toc-transpose" href="#transpose">8.31 transpose</a></li>
+    <li><a name="toc-unsharp" href="#unsharp">8.32 unsharp</a></li>
+    <li><a name="toc-vflip" href="#vflip">8.33 vflip</a></li>
+    <li><a name="toc-yadif" href="#yadif">8.34 yadif</a></li>
   </ul></li>
   <li><a name="toc-Video-Sources" href="#Video-Sources">9. Video Sources</a>
   <ul class="toc">
@@ -1005,7 +1007,7 @@ the named filter.
 <dt> <var>pullup</var></dt>
 <dt> <var>qp</var></dt>
 <dt> <var>rectangle</var></dt>
-<dt> <var>remove_logo</var></dt>
+<dt> <var>remove-logo</var></dt>
 <dt> <var>rgbtest</var></dt>
 <dt> <var>rotate</var></dt>
 <dt> <var>sab</var></dt>
@@ -1432,9 +1434,146 @@ scale=&quot;trunc(3/2*iw/hsub)*hsub:trunc(3/2*ih/vsub)*vsub&quot;
 scale='min(500\, iw*3/2):-1'
 </pre></td></tr></table>
 
+<a name="select"></a>
+<h2 class="section"><a href="libavfilter.html#toc-select">8.23 select</a></h2>
+<p>Select frames to pass in output.
+</p>
+<p>It accepts in input an expression, which is evaluated for each input
+frame. If the expression is evaluated to a non-zero value, the frame
+is selected and passed to the output, otherwise it is discarded.
+</p>
+<p>The expression can contain the following constants:
+</p>
+<dl compact="compact">
+<dt> &lsquo;<samp>PI</samp>&rsquo;</dt>
+<dd><p>Greek PI
+</p>
+</dd>
+<dt> &lsquo;<samp>PHI</samp>&rsquo;</dt>
+<dd><p>golden ratio
+</p>
+</dd>
+<dt> &lsquo;<samp>E</samp>&rsquo;</dt>
+<dd><p>Euler number
+</p>
+</dd>
+<dt> &lsquo;<samp>n</samp>&rsquo;</dt>
+<dd><p>the sequential number of the filtered frame, starting from 0
+</p>
+</dd>
+<dt> &lsquo;<samp>selected_n</samp>&rsquo;</dt>
+<dd><p>the sequential number of the selected frame, starting from 0
+</p>
+</dd>
+<dt> &lsquo;<samp>prev_selected_n</samp>&rsquo;</dt>
+<dd><p>the sequential number of the last selected frame, NAN if undefined
+</p>
+</dd>
+<dt> &lsquo;<samp>TB</samp>&rsquo;</dt>
+<dd><p>timebase of the input timestamps
+</p>
+</dd>
+<dt> &lsquo;<samp>pts</samp>&rsquo;</dt>
+<dd><p>the PTS (Presentation TimeStamp) of the filtered video frame,
+expressed in <var>TB</var> units, NAN if undefined
+</p>
+</dd>
+<dt> &lsquo;<samp>t</samp>&rsquo;</dt>
+<dd><p>the PTS (Presentation TimeStamp) of the filtered video frame,
+expressed in seconds, NAN if undefined
+</p>
+</dd>
+<dt> &lsquo;<samp>prev_pts</samp>&rsquo;</dt>
+<dd><p>the PTS of the previously filtered video frame, NAN if undefined
+</p>
+</dd>
+<dt> &lsquo;<samp>prev_selected_pts</samp>&rsquo;</dt>
+<dd><p>the PTS of the last previously filtered video frame, NAN if undefined
+</p>
+</dd>
+<dt> &lsquo;<samp>prev_selected_t</samp>&rsquo;</dt>
+<dd><p>the PTS of the last previously selected video frame, NAN if undefined
+</p>
+</dd>
+<dt> &lsquo;<samp>start_pts</samp>&rsquo;</dt>
+<dd><p>the PTS of the first video frame in the video, NAN if undefined
+</p>
+</dd>
+<dt> &lsquo;<samp>start_t</samp>&rsquo;</dt>
+<dd><p>the time of the first video frame in the video, NAN if undefined
+</p>
+</dd>
+<dt> &lsquo;<samp>pict_type</samp>&rsquo;</dt>
+<dd><p>the picture type of the filtered frame, can assume one of the following
+values:
+</p><dl compact="compact">
+<dt> &lsquo;<samp>PICT_TYPE_I</samp>&rsquo;</dt>
+<dt> &lsquo;<samp>PICT_TYPE_P</samp>&rsquo;</dt>
+<dt> &lsquo;<samp>PICT_TYPE_B</samp>&rsquo;</dt>
+<dt> &lsquo;<samp>PICT_TYPE_S</samp>&rsquo;</dt>
+<dt> &lsquo;<samp>PICT_TYPE_SI</samp>&rsquo;</dt>
+<dt> &lsquo;<samp>PICT_TYPE_SP</samp>&rsquo;</dt>
+<dt> &lsquo;<samp>PICT_TYPE_BI</samp>&rsquo;</dt>
+</dl>
+
+</dd>
+<dt> &lsquo;<samp>interlace_type</samp>&rsquo;</dt>
+<dd><p>the frame interlace type, can assume one of the following values:
+</p><dl compact="compact">
+<dt> &lsquo;<samp>INTERLACE_TYPE_P</samp>&rsquo;</dt>
+<dd><p>the frame is progressive (not interlaced)
+</p></dd>
+<dt> &lsquo;<samp>INTERLACE_TYPE_T</samp>&rsquo;</dt>
+<dd><p>the frame is top-field-first
+</p></dd>
+<dt> &lsquo;<samp>INTERLACE_TYPE_B</samp>&rsquo;</dt>
+<dd><p>the frame is bottom-field-first
+</p></dd>
+</dl>
+
+</dd>
+<dt> &lsquo;<samp>key</samp>&rsquo;</dt>
+<dd><p>1 if the filtered frame is a key-frame, 0 otherwise
+</p>
+</dd>
+<dt> &lsquo;<samp>pos</samp>&rsquo;</dt>
+<dd><p>the position in the file of the filtered frame, -1 if the information
+is not available (e.g. for synthetic video)
+</p></dd>
+</dl>
+
+<p>The default value of the select expression is &quot;1&quot;.
+</p>
+<p>Some examples follow:
+</p>
+<table><tr><td>&nbsp;</td><td><pre class="example"># select all frames in input
+select
+
+# the above is the same as:
+select=1
+
+# skip all frames:
+select=0
+
+# select only I-frames
+select='eq(pict_type\,PICT_TYPE_I)'
+
+# select one frame every 100
+select='not(mod(n\,100))'
+
+# select only frames contained in the 10-20 time interval
+select='gte(t\,10)*lte(t\,20)'
+
+# select only I frames contained in the 10-20 time interval
+select='gte(t\,10)*lte(t\,20)*eq(pict_type\,PICT_TYPE_I)'
+
+# select frames with a minimum distance of 10 seconds
+select='isnan(prev_selected_t)+gte(t-prev_selected_t\,10)'
+</pre></td></tr></table>
+
 <p><a name="setdar"></a>
 </p><a name="setdar-1"></a>
-<h2 class="section"><a href="libavfilter.html#toc-setdar-1">8.23 setdar</a></h2>
+<h2 class="section"><a href="libavfilter.html#toc-setdar-1">8.24 setdar</a></h2>
 
 <p>Set the Display Aspect Ratio for the filter output video.
 </p>
@@ -1463,7 +1602,7 @@ setdar=1.77777
 <p>See also the &quot;setsar&quot; filter documentation (see <a href="#setsar">setsar</a>).
 </p>
 <a name="setpts"></a>
-<h2 class="section"><a href="libavfilter.html#toc-setpts">8.24 setpts</a></h2>
+<h2 class="section"><a href="libavfilter.html#toc-setpts">8.25 setpts</a></h2>
 
 <p>Change the PTS (presentation timestamp) of the input video frames.
 </p>
@@ -1534,7 +1673,7 @@ setpts='1/(25*TB) * (N + 0.05 * sin(N*2*PI/25))'
 
 <p><a name="setsar"></a>
 </p><a name="setsar-1"></a>
-<h2 class="section"><a href="libavfilter.html#toc-setsar-1">8.25 setsar</a></h2>
+<h2 class="section"><a href="libavfilter.html#toc-setsar-1">8.26 setsar</a></h2>
 
 <p>Set the Sample (aka Pixel) Aspect Ratio for the filter output video.
 </p>
@@ -1559,7 +1698,7 @@ If the parameter is not specified, it is assumed the value &quot;0:1&quot;.
 </pre></td></tr></table>
 
 <a name="settb"></a>
-<h2 class="section"><a href="libavfilter.html#toc-settb">8.26 settb</a></h2>
+<h2 class="section"><a href="libavfilter.html#toc-settb">8.27 settb</a></h2>
 
 <p>Set the timebase to use for the output frames timestamps.
 It is mainly useful for testing timebase configuration.
@@ -1589,7 +1728,7 @@ settb=AVTB
 </pre></td></tr></table>
 
 <a name="showinfo"></a>
-<h2 class="section"><a href="libavfilter.html#toc-showinfo">8.27 showinfo</a></h2>
+<h2 class="section"><a href="libavfilter.html#toc-showinfo">8.28 showinfo</a></h2>
 
 <p>Show a line containing various information for each input video frame.
 The input video is not modified.
@@ -1661,7 +1800,7 @@ the <code>av_get_picture_type_char</code> function defined in
 </dl>
 
 <a name="slicify"></a>
-<h2 class="section"><a href="libavfilter.html#toc-slicify">8.28 slicify</a></h2>
+<h2 class="section"><a href="libavfilter.html#toc-slicify">8.29 slicify</a></h2>
 
 <p>Pass the images of input video on to next video filter as multiple
 slices.
@@ -1675,8 +1814,23 @@ not specified it will use the default value of 16.
 <p>Adding this in the beginning of filter chains should make filtering
 faster due to better use of the memory cache.
 </p>
+<a name="split"></a>
+<h2 class="section"><a href="libavfilter.html#toc-split">8.30 split</a></h2>
+
+<p>Pass on the input video to two outputs. Both outputs are identical to
+the input video.
+</p>
+<p>For example:
+</p><table><tr><td>&nbsp;</td><td><pre class="example">[in] split [splitout1][splitout2];
+[splitout1] crop=100:100:0:0    [cropout];
+[splitout2] pad=200:200:100:100 [padout];
+</pre></td></tr></table>
+
+<p>will create two separate outputs from the same input, one cropped and
+one padded.
+</p>
 <a name="transpose"></a>
-<h2 class="section"><a href="libavfilter.html#toc-transpose">8.29 transpose</a></h2>
+<h2 class="section"><a href="libavfilter.html#toc-transpose">8.31 transpose</a></h2>
 
 <p>Transpose rows with columns in the input video and optionally flip it.
 </p>
@@ -1718,7 +1872,7 @@ l.r     l.L
 </dl>
 
 <a name="unsharp"></a>
-<h2 class="section"><a href="libavfilter.html#toc-unsharp">8.30 unsharp</a></h2>
+<h2 class="section"><a href="libavfilter.html#toc-unsharp">8.32 unsharp</a></h2>
 
 <p>Sharpen or blur the input video.
 </p>
@@ -1773,7 +1927,7 @@ unsharp=7:7:-2:7:7:-2
 </pre></td></tr></table>
 
 <a name="vflip"></a>
-<h2 class="section"><a href="libavfilter.html#toc-vflip">8.31 vflip</a></h2>
+<h2 class="section"><a href="libavfilter.html#toc-vflip">8.33 vflip</a></h2>
 
 <p>Flip the input video vertically.
 </p>
@@ -1781,7 +1935,7 @@ unsharp=7:7:-2:7:7:-2
 </pre></td></tr></table>
 
 <a name="yadif"></a>
-<h2 class="section"><a href="libavfilter.html#toc-yadif">8.32 yadif</a></h2>
+<h2 class="section"><a href="libavfilter.html#toc-yadif">8.34 yadif</a></h2>
 
 <p>Deinterlace the input video (&quot;yadif&quot; means &quot;yet another deinterlacing
 filter&quot;).
@@ -1842,9 +1996,10 @@ top field first will be assumed.
 through the interface defined in &lsquo;<tt>libavfilter/vsrc_buffer.h</tt>&rsquo;.
 </p>
 <p>It accepts the following parameters:
-<var>width</var>:<var>height</var>:<var>pix_fmt_string</var>:<var>timebase_num</var>:<var>timebase_den</var>:<var>sample_aspect_ratio_num</var>:<var>sample_aspect_ratio.den</var>
+<var>width</var>:<var>height</var>:<var>pix_fmt_string</var>:<var>timebase_num</var>:<var>timebase_den</var>:<var>sample_aspect_ratio_num</var>:<var>sample_aspect_ratio.den</var>:<var>scale_params</var>
 </p>
-<p>All the parameters need to be explicitely defined.
+<p>All the parameters but <var>scale_params</var> need to be explicitely
+defined.
 </p>
 <p>Follows the list of the accepted parameters.
 </p>
@@ -1867,6 +2022,12 @@ timestamps of the buffered frames.
 <dt> &lsquo;<samp>sample_aspect_ratio.num, sample_aspect_ratio.den</samp>&rsquo;</dt>
 <dd><p>Specify numerator and denominator of the sample aspect ratio assumed
 by the video frames.
+</p>
+</dd>
+<dt> &lsquo;<samp>scale_params</samp>&rsquo;</dt>
+<dd><p>Specify the optional parameters to be used for the scale filter which
+is automatically inserted when an input change is detected in the
+input size or format.
 </p></dd>
 </dl>
 
@@ -1880,7 +2041,7 @@ square pixels (1:1 sample aspect ratio).
 Since the pixel format with name &quot;yuv410p&quot; corresponds to the number 6
 (check the enum PixelFormat definition in &lsquo;<tt>libavutil/pixfmt.h</tt>&rsquo;),
 this example corresponds to:
-</p><table><tr><td>&nbsp;</td><td><pre class="example">buffer=320:240:6:1:24
+</p><table><tr><td>&nbsp;</td><td><pre class="example">buffer=320:240:6:1:24:1:1
 </pre></td></tr></table>
 
 <a name="color"></a>
@@ -2042,7 +2203,7 @@ tools.
 <hr size="1">
 <p>
  <font size="-1">
-  This document was generated by <em>Kyle Schwarz</em> on <em>May 18, 2011</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+  This document was generated by <em>Kyle Schwarz</em> on <em>June 10, 2011</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
  </font>
  <br>
 
index d1a5e6655e474fbb11af99a5d73d71f927bea2c4..ef539a2a360ae5caf68c1c402d702c80a92e8d86 100644 (file)
@@ -2611,7 +2611,7 @@ typedef struct AVCodecContext {
     /**
      * Audio channel layout.
      * - encoding: set by user.
-     * - decoding: set by libavcodec.
+     * - decoding: set by user, may be overwritten by libavcodec.
      */
     int64_t channel_layout;
 
@@ -2880,6 +2880,14 @@ typedef struct AVCodecContext {
      */
     enum AVAudioServiceType audio_service_type;
 
+    /**
+     * desired sample format
+     * - encoding: Not used.
+     * - decoding: Set by user.
+     * Decoder will decode to this format if it can.
+     */
+    enum AVSampleFormat request_sample_fmt;
+
     /**
      * Current statistics for PTS correction.
      * - decoding: maintained and used by libavcodec, not intended to be used by user apps
@@ -2890,13 +2898,6 @@ typedef struct AVCodecContext {
     int64_t pts_correction_last_pts;       /// PTS of the last frame
     int64_t pts_correction_last_dts;       /// DTS of the last frame
 
-    /**
-     * desired sample format
-     * - encoding: Not used.
-     * - decoding: Set by user.
-     * Decoder will decode to this format if it can.
-     */
-    enum AVSampleFormat request_sample_fmt;
 
 } AVCodecContext;
 
@@ -3228,6 +3229,11 @@ uint8_t* av_packet_new_side_data(AVPacket *pkt, enum AVPacketSideDataType type,
 uint8_t* av_packet_get_side_data(AVPacket *pkt, enum AVPacketSideDataType type,
                                  int *size);
 
+int av_packet_merge_side_data(AVPacket *pkt);
+
+int av_packet_split_side_data(AVPacket *pkt);
+
+
 /* resample.c */
 
 struct ReSampleContext;
@@ -3385,12 +3391,16 @@ int avpicture_layout(const AVPicture* src, enum PixelFormat pix_fmt, int width,
 int avpicture_get_size(enum PixelFormat pix_fmt, int width, int height);
 void avcodec_get_chroma_sub_sample(enum PixelFormat pix_fmt, int *h_shift, int *v_shift);
 
+#if FF_API_GET_PIX_FMT_NAME
 /**
  * Return the short name for a pixel format.
  *
  * \see av_get_pix_fmt(), av_get_pix_fmt_string().
+ * @deprecated Deprecated in favor of av_get_pix_fmt_name().
  */
+attribute_deprecated
 const char *avcodec_get_pix_fmt_name(enum PixelFormat pix_fmt);
+#endif
 
 void avcodec_set_dimensions(AVCodecContext *s, int width, int height);
 
index e754bb93d85e81aa4fee2e67143761f8235b51ea..70de27d1922ebf779444ffbf62d6c1370f9207f1 100644 (file)
@@ -13,4 +13,4 @@
 #include "libavutil/opt.h"
 #endif
 
-#endif
+#endif /* AVCODEC_OPT_H */
index 471e3aaa9a2b9d0c8cff1a3636b2ef29a9402561..100c06dfe6cf4c11765f8381a7d4d97a45c1cb35 100644 (file)
@@ -21,7 +21,7 @@
 #define AVCODEC_VERSION_H
 
 #define LIBAVCODEC_VERSION_MAJOR 53
-#define LIBAVCODEC_VERSION_MINOR  6
+#define LIBAVCODEC_VERSION_MINOR  7
 #define LIBAVCODEC_VERSION_MICRO  0
 
 #define LIBAVCODEC_VERSION_INT  AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \
@@ -65,5 +65,8 @@
 #ifndef FF_API_FLAC_GLOBAL_OPTS
 #define FF_API_FLAC_GLOBAL_OPTS (LIBAVCODEC_VERSION_MAJOR < 54)
 #endif
+#ifndef FF_API_GET_PIX_FMT_NAME
+#define FF_API_GET_PIX_FMT_NAME (LIBAVCODEC_VERSION_MAJOR < 54)
+#endif
 
 #endif /* AVCODEC_VERSION_H */
index d31c99e654217271eeab9facfdc777117a1b63f2..e49e5b71f7ff161270e738e5183f84a2d15669a3 100644 (file)
 #define AVDEVICE_AVDEVICE_H
 
 #include "libavutil/avutil.h"
+#include "libavformat/avformat.h"
 
 #define LIBAVDEVICE_VERSION_MAJOR 53
-#define LIBAVDEVICE_VERSION_MINOR  0
-#define LIBAVDEVICE_VERSION_MICRO  0
+#define LIBAVDEVICE_VERSION_MINOR  1
+#define LIBAVDEVICE_VERSION_MICRO  1
 
 #define LIBAVDEVICE_VERSION_INT AV_VERSION_INT(LIBAVDEVICE_VERSION_MAJOR, \
                                                LIBAVDEVICE_VERSION_MINOR, \
                                            LIBAVDEVICE_VERSION_MICRO)
 #define LIBAVDEVICE_BUILD       LIBAVDEVICE_VERSION_INT
 
+#ifndef FF_API_V4L
+#define FF_API_V4L              (LIBAVDEVICE_VERSION_MAJOR < 54)
+#endif
+
 /**
  * Return the LIBAVDEVICE_VERSION_INT constant.
  */
index f438860d0bbc0ac0f077c5335295e2cdc4740f52..4eed6b2d2c0357ef258c3376917c00142d307849 100644 (file)
@@ -30,6 +30,7 @@
 
 #include "libavcodec/avcodec.h" // AVFrame
 #include "avfilter.h"
+#include "vsrc_buffer.h"
 
 /**
  * Copy the frame properties of src to dst, without copying the actual
  */
 void avfilter_copy_frame_props(AVFilterBufferRef *dst, const AVFrame *src);
 
+/**
+ * Create and return a picref reference from the data and properties
+ * contained in frame.
+ *
+ * @param perms permissions to assign to the new buffer reference
+ */
+AVFilterBufferRef *avfilter_get_video_buffer_ref_from_frame(const AVFrame *frame, int perms);
+
+/**
+ * Add frame data to buffer_src.
+ *
+ * @param buffer_src pointer to a buffer source context
+ * @param flags a combination of AV_VSRC_BUF_FLAG_* flags
+ * @return >= 0 in case of success, a negative AVERROR code in case of
+ * failure
+ */
+int av_vsrc_buffer_add_frame(AVFilterContext *buffer_src,
+                             const AVFrame *frame, int flags);
+
 #endif /* AVFILTER_AVCODEC_H */
index 03a1e49a462f7bc1853744483b0716ed2233af72..4f5ed360046cc704cb4572dba2fb9b79a8f143ea 100644 (file)
@@ -26,7 +26,7 @@
 #include "libavutil/samplefmt.h"
 
 #define LIBAVFILTER_VERSION_MAJOR  2
-#define LIBAVFILTER_VERSION_MINOR  5
+#define LIBAVFILTER_VERSION_MINOR 15
 #define LIBAVFILTER_VERSION_MICRO  0
 
 #define LIBAVFILTER_VERSION_INT AV_VERSION_INT(LIBAVFILTER_VERSION_MAJOR, \
@@ -98,8 +98,7 @@ typedef struct AVFilterBuffer {
  */
 typedef struct AVFilterBufferRefAudioProps {
     int64_t channel_layout;     ///< channel layout of audio buffer
-    int nb_samples;             ///< number of audio samples
-    int size;                   ///< audio buffer size
+    int nb_samples;             ///< number of audio samples per channel
     uint32_t sample_rate;       ///< audio buffer sample rate
     int planar;                 ///< audio buffer - planar or packed
 } AVFilterBufferRefAudioProps;
@@ -234,7 +233,8 @@ typedef struct AVFilterFormats {
  * Create a list of supported formats. This is intended for use in
  * AVFilter->query_formats().
  *
- * @param fmts list of media formats, terminated by -1
+ * @param fmts list of media formats, terminated by -1. If NULL an
+ *        empty list is created.
  * @return the format list, with no existing references
  */
 AVFilterFormats *avfilter_make_format_list(const int *fmts);
@@ -372,7 +372,7 @@ struct AVFilterPad {
      * Input audio pads only.
      */
     AVFilterBufferRef *(*get_audio_buffer)(AVFilterLink *link, int perms,
-                                           enum AVSampleFormat sample_fmt, int size,
+                                           enum AVSampleFormat sample_fmt, int nb_samples,
                                            int64_t channel_layout, int planar);
 
     /**
@@ -461,7 +461,7 @@ AVFilterBufferRef *avfilter_default_get_video_buffer(AVFilterLink *link,
 
 /** default handler for get_audio_buffer() for audio inputs */
 AVFilterBufferRef *avfilter_default_get_audio_buffer(AVFilterLink *link, int perms,
-                                                     enum AVSampleFormat sample_fmt, int size,
+                                                     enum AVSampleFormat sample_fmt, int nb_samples,
                                                      int64_t channel_layout, int planar);
 
 /**
@@ -635,6 +635,11 @@ struct AVFilterLink {
 int avfilter_link(AVFilterContext *src, unsigned srcpad,
                   AVFilterContext *dst, unsigned dstpad);
 
+/**
+ * Free the link in *link, and set its pointer to NULL.
+ */
+void avfilter_link_free(AVFilterLink **link);
+
 /**
  * Negotiate the media format, dimensions, etc of all inputs to a filter.
  *
@@ -669,7 +674,7 @@ AVFilterBufferRef *avfilter_get_video_buffer(AVFilterLink *link, int perms,
  * @param format the pixel format of the image specified by the data and linesize arrays
  */
 AVFilterBufferRef *
-avfilter_get_video_buffer_ref_from_arrays(uint8_t *data[4], int linesize[4], int perms,
+avfilter_get_video_buffer_ref_from_arrays(uint8_t * const data[4], const int linesize[4], int perms,
                                           int w, int h, enum PixelFormat format);
 
 /**
@@ -679,16 +684,33 @@ avfilter_get_video_buffer_ref_from_arrays(uint8_t *data[4], int linesize[4], int
  *                       be requested
  * @param perms          the required access permissions
  * @param sample_fmt     the format of each sample in the buffer to allocate
- * @param size           the buffer size in bytes
+ * @param nb_samples     the number of samples per channel
  * @param channel_layout the number and type of channels per sample in the buffer to allocate
  * @param planar         audio data layout - planar or packed
  * @return               A reference to the samples. This must be unreferenced with
  *                       avfilter_unref_buffer when you are finished with it.
  */
 AVFilterBufferRef *avfilter_get_audio_buffer(AVFilterLink *link, int perms,
-                                             enum AVSampleFormat sample_fmt, int size,
+                                             enum AVSampleFormat sample_fmt, int nb_samples,
                                              int64_t channel_layout, int planar);
 
+/**
+ * Create an audio buffer reference wrapped around an already
+ * allocated samples buffer.
+ *
+ * @param data           pointers to the samples plane buffers
+ * @param linesize       linesize for the samples plane buffers
+ * @param perms          the required access permissions
+ * @param nb_samples     number of samples per channel
+ * @param sample_fmt     the format of each sample in the buffer to allocate
+ * @param channel_layout the channel layout of the buffer
+ * @param planar         audio data layout - planar or packed
+ */
+AVFilterBufferRef *
+avfilter_get_audio_buffer_ref_from_arrays(uint8_t *data[8], int linesize[8], int perms,
+                                          int nb_samples, enum AVSampleFormat sample_fmt,
+                                          int64_t channel_layout, int planar);
+
 /**
  * Request an input frame from the filter at the other end of the link.
  *
@@ -861,4 +883,4 @@ static inline void avfilter_insert_outpad(AVFilterContext *f, unsigned index,
                         &f->output_pads, &f->outputs, p);
 }
 
-#endif  /* AVFILTER_AVFILTER_H */
+#endif /* AVFILTER_AVFILTER_H */
index 0140af0801d203df386d486fc79934f00f9380b4..8013b46f5bfc790beb99354b72468ddb3c690baf 100644 (file)
@@ -120,4 +120,4 @@ int avfilter_graph_parse(AVFilterGraph *graph, const char *filters,
                          AVFilterInOut *inputs, AVFilterInOut *outputs,
                          AVClass *log_ctx);
 
-#endif  /* AVFILTER_AVFILTERGRAPH_H */
+#endif /* AVFILTER_AVFILTERGRAPH_H */
diff --git a/ffmpeg 0.7/include/libavfilter/vsrc_buffer.h b/ffmpeg 0.7/include/libavfilter/vsrc_buffer.h
new file mode 100644 (file)
index 0000000..b661d41
--- /dev/null
@@ -0,0 +1,49 @@
+/*
+ * Copyright (c) 2008 Vitor Sessak
+ *
+ * This file is part of FFmpeg.
+ *
+ * FFmpeg is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * FFmpeg is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with FFmpeg; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#ifndef AVFILTER_VSRC_BUFFER_H
+#define AVFILTER_VSRC_BUFFER_H
+
+/**
+ * @file
+ * memory buffer source API for video
+ */
+
+#include "avfilter.h"
+
+/**
+ * Tell av_vsrc_buffer_add_video_buffer_ref() to overwrite the already
+ * cached video buffer with the new added one, otherwise the function
+ * will complain and exit.
+ */
+#define AV_VSRC_BUF_FLAG_OVERWRITE 1
+
+/**
+ * Add video buffer data in picref to buffer_src.
+ *
+ * @param buffer_src pointer to a buffer source context
+ * @param flags a combination of AV_VSRC_BUF_FLAG_* flags
+ * @return >= 0 in case of success, a negative AVERROR code in case of
+ * failure
+ */
+int av_vsrc_buffer_add_video_buffer_ref(AVFilterContext *buffer_src,
+                                        AVFilterBufferRef *picref, int flags);
+
+#endif /* AVFILTER_VSRC_BUFFER_H */
index ec51a57ca847fe66a81b9b543910b6efc37d67e4..f00fce4a38c3a2d342d84ac3211f53a8e0e501de 100644 (file)
@@ -23,8 +23,7 @@
 
 
 /**
- * I return the LIBAVFORMAT_VERSION_INT constant.  You got
- * a fucking problem with that, douchebag?
+ * Return the LIBAVFORMAT_VERSION_INT constant.
  */
 unsigned avformat_version(void);
 
@@ -41,6 +40,7 @@ const char *avformat_license(void);
 #include <time.h>
 #include <stdio.h>  /* FILE */
 #include "libavcodec/avcodec.h"
+#include "libavutil/dict.h"
 
 #include "avio.h"
 #include "libavformat/version.h"
@@ -107,21 +107,24 @@ struct AVFormatContext;
  * variant_bitrate -- the total bitrate of the bitrate variant that the current stream is part of
  */
 
-#define AV_METADATA_MATCH_CASE      1
-#define AV_METADATA_IGNORE_SUFFIX   2
-#define AV_METADATA_DONT_STRDUP_KEY 4
-#define AV_METADATA_DONT_STRDUP_VAL 8
-#define AV_METADATA_DONT_OVERWRITE 16   ///< Don't overwrite existing tags.
+#if FF_API_OLD_METADATA2
+/**
+ * @defgroup old_metadata Old metadata API
+ * The following functions are deprecated, use
+ * their equivalents from libavutil/dict.h instead.
+ * @{
+ */
 
-typedef struct {
-    char *key;
-    char *value;
-}AVMetadataTag;
+#define AV_METADATA_MATCH_CASE      AV_DICT_MATCH_CASE
+#define AV_METADATA_IGNORE_SUFFIX   AV_DICT_IGNORE_SUFFIX
+#define AV_METADATA_DONT_STRDUP_KEY AV_DICT_DONT_STRDUP_KEY
+#define AV_METADATA_DONT_STRDUP_VAL AV_DICT_DONT_STRDUP_VAL
+#define AV_METADATA_DONT_OVERWRITE  AV_DICT_DONT_OVERWRITE
+
+typedef attribute_deprecated AVDictionary AVMetadata;
+typedef attribute_deprecated AVDictionaryEntry  AVMetadataTag;
 
-typedef struct AVMetadata AVMetadata;
-#if FF_API_OLD_METADATA2
 typedef struct AVMetadataConv AVMetadataConv;
-#endif
 
 /**
  * Get a metadata element with matching key.
@@ -131,8 +134,8 @@ typedef struct AVMetadataConv AVMetadataConv;
  * @param flags Allows case as well as suffix-insensitive comparisons.
  * @return Found tag or NULL, changing key or value leads to undefined behavior.
  */
-AVMetadataTag *
-av_metadata_get(AVMetadata *m, const char *key, const AVMetadataTag *prev, int flags);
+attribute_deprecated AVDictionaryEntry *
+av_metadata_get(AVDictionary *m, const char *key, const AVDictionaryEntry *prev, int flags);
 
 /**
  * Set the given tag in *pm, overwriting an existing tag.
@@ -144,30 +147,32 @@ av_metadata_get(AVMetadata *m, const char *key, const AVMetadataTag *prev, int f
  *        Passing a NULL value will cause an existing tag to be deleted.
  * @return >= 0 on success otherwise an error code <0
  */
-int av_metadata_set2(AVMetadata **pm, const char *key, const char *value, int flags);
+attribute_deprecated int av_metadata_set2(AVDictionary **pm, const char *key, const char *value, int flags);
 
-#if FF_API_OLD_METADATA2
 /**
  * This function is provided for compatibility reason and currently does nothing.
  */
 attribute_deprecated void av_metadata_conv(struct AVFormatContext *ctx, const AVMetadataConv *d_conv,
                                                                         const AVMetadataConv *s_conv);
-#endif
 
 /**
- * Copy metadata from one AVMetadata struct into another.
- * @param dst pointer to a pointer to a AVMetadata struct. If *dst is NULL,
+ * Copy metadata from one AVDictionary struct into another.
+ * @param dst pointer to a pointer to a AVDictionary struct. If *dst is NULL,
  *            this function will allocate a struct for you and put it in *dst
- * @param src pointer to source AVMetadata struct
+ * @param src pointer to source AVDictionary struct
  * @param flags flags to use when setting metadata in *dst
- * @note metadata is read using the AV_METADATA_IGNORE_SUFFIX flag
+ * @note metadata is read using the AV_DICT_IGNORE_SUFFIX flag
  */
-void av_metadata_copy(AVMetadata **dst, AVMetadata *src, int flags);
+attribute_deprecated void av_metadata_copy(AVDictionary **dst, AVDictionary *src, int flags);
 
 /**
- * Free all the memory allocated for an AVMetadata struct.
+ * Free all the memory allocated for an AVDictionary struct.
+ */
+attribute_deprecated void av_metadata_free(AVDictionary **m);
+/**
+ * @}
  */
-void av_metadata_free(AVMetadata **m);
+#endif
 
 
 /* packet functions */
@@ -228,20 +233,21 @@ typedef struct AVProbeData {
 #define AVPROBE_PADDING_SIZE 32             ///< extra allocated bytes at the end of the probe buffer
 
 typedef struct AVFormatParameters {
-    AVRational time_base;
-    int sample_rate;
-    int channels;
-    int width;
-    int height;
-    enum PixelFormat pix_fmt;
-    int channel; /**< Used to select DV channel. */
-    const char *standard; /**< TV standard, NTSC, PAL, SECAM */
-    unsigned int mpeg2ts_raw:1;  /**< Force raw MPEG-2 transport stream output, if possible. */
-    unsigned int mpeg2ts_compute_pcr:1; /**< Compute exact PCR for each transport
-                                            stream packet (only meaningful if
-                                            mpeg2ts_raw is TRUE). */
-    unsigned int initial_pause:1;       /**< Do not begin to play the stream
-                                            immediately (RTSP only). */
+#if FF_API_FORMAT_PARAMETERS
+    attribute_deprecated AVRational time_base;
+    attribute_deprecated int sample_rate;
+    attribute_deprecated int channels;
+    attribute_deprecated int width;
+    attribute_deprecated int height;
+    attribute_deprecated enum PixelFormat pix_fmt;
+    attribute_deprecated int channel; /**< Used to select DV channel. */
+    attribute_deprecated const char *standard; /**< deprecated, use demuxer-specific options instead. */
+    attribute_deprecated unsigned int mpeg2ts_raw:1;  /**< deprecated, use mpegtsraw demuxer */
+    /**< deprecated, use mpegtsraw demuxer-specific options instead */
+    attribute_deprecated unsigned int mpeg2ts_compute_pcr:1;
+    attribute_deprecated unsigned int initial_pause:1;       /**< Do not begin to play the stream
+                                                                  immediately (RTSP only). */
+#endif
     unsigned int prealloced_context:1;
 } AVFormatParameters;
 
@@ -260,6 +266,9 @@ typedef struct AVFormatParameters {
 #define AVFMT_NOSTREAMS     0x1000 /**< Format does not require any streams */
 #define AVFMT_NOBINSEARCH   0x2000 /**< Format does not allow to fallback to binary search via read_timestamp */
 #define AVFMT_NOGENSEARCH   0x4000 /**< Format does not allow to fallback to generic search */
+#define AVFMT_TS_NONSTRICT  0x8000 /**< Format does not require strictly
+                                          increasing timestamps, but they must
+                                          still be monotonic */
 
 typedef struct AVOutputFormat {
     const char *name;
@@ -560,7 +569,7 @@ typedef struct AVStream {
      */
     AVRational sample_aspect_ratio;
 
-    AVMetadata *metadata;
+    AVDictionary *metadata;
 
     /* Intended mostly for av_read_frame() support. Not supposed to be used by */
     /* external applications; try to use something else if at all possible.    */
@@ -601,6 +610,13 @@ typedef struct AVStream {
      */
     int codec_info_nb_frames;
 
+    /**
+     * Stream Identifier
+     * This is the MPEG-TS stream identifier +1
+     * 0 means unknown
+     */
+    int stream_identifier;
+
     /**
      * Stream informations used internally by av_find_stream_info()
      */
@@ -634,7 +650,11 @@ typedef struct AVProgram {
     enum AVDiscard discard;        ///< selects which program to discard and which to feed to the caller
     unsigned int   *stream_index;
     unsigned int   nb_stream_indexes;
-    AVMetadata *metadata;
+    AVDictionary *metadata;
+
+    int program_num;
+    int pmt_pid;
+    int pcr_pid;
 } AVProgram;
 
 #define AVFMTCTX_NOHEADER      0x0001 /**< signal that no header is present
@@ -644,7 +664,7 @@ typedef struct AVChapter {
     int id;                 ///< unique ID to identify the chapter
     AVRational time_base;   ///< time base in which the start/end timestamps are specified
     int64_t start, end;     ///< chapter start/end time in time_base units
-    AVMetadata *metadata;
+    AVDictionary *metadata;
 } AVChapter;
 
 /**
@@ -728,10 +748,13 @@ typedef struct AVFormatContext {
 #define AVFMT_FLAG_IGNDTS       0x0008 ///< Ignore DTS on frames that contain both DTS & PTS
 #define AVFMT_FLAG_NOFILLIN     0x0010 ///< Do not infer any values from other values, just return what is stored in the container
 #define AVFMT_FLAG_NOPARSE      0x0020 ///< Do not use AVParsers, you also must set AVFMT_FLAG_NOFILLIN as the fillin code works on frames and no parsing -> no frames. Also seeking to frames can not work if parsing to find frame boundaries has been disabled
-#define AVFMT_FLAG_RTP_HINT     0x0040 ///< Add RTP hinting to the output file
+#if FF_API_FLAG_RTP_HINT
+#define AVFMT_FLAG_RTP_HINT     0x0040 ///< Deprecated, use the -movflags rtphint muxer specific AVOption instead
+#endif
+#define AVFMT_FLAG_MP4A_LATM    0x0080 ///< Enable RTP MP4A-LATM payload
 #define AVFMT_FLAG_SORT_DTS    0x10000 ///< try to interleave outputted packets by dts (using this flag can slow demuxing down)
 #define AVFMT_FLAG_PRIV_OPT    0x20000 ///< Enable use of private options by delaying codec open (this could be made default once all code is converted)
-
+#define AVFMT_FLAG_KEEP_SIDE_DATA 0x40000 ///< Dont merge side data but keep it seperate.
     int loop_input;
 
     /**
@@ -807,7 +830,7 @@ typedef struct AVFormatContext {
 
     struct AVPacketList *packet_buffer_end;
 
-    AVMetadata *metadata;
+    AVDictionary *metadata;
 
     /**
      * Remaining size available for raw_packet_buffer, in bytes.
@@ -824,6 +847,17 @@ typedef struct AVFormatContext {
      * - decoding: Unused.
      */
     int64_t start_time_realtime;
+
+    /**
+     * decoding: number of frames used to probe fps
+     */
+    int fps_probe_size;
+
+    /**
+     * Transport stream id.
+     * This will be moved into demuxer private options. Thus no API/ABI compatibility
+     */
+    int ts_id;
 } AVFormatContext;
 
 typedef struct AVPacketList {
@@ -1054,12 +1088,34 @@ int av_demuxer_open(AVFormatContext *ic, AVFormatParameters *ap);
  */
 AVFormatContext *avformat_alloc_context(void);
 
+#if FF_API_ALLOC_OUTPUT_CONTEXT
 /**
- * Allocate an AVFormatContext.
- * avformat_free_context() can be used to free the context and everything
- * allocated by the framework within it.
+ * @deprecated deprecated in favor of avformat_alloc_output_context2()
  */
-AVFormatContext *avformat_alloc_output_context(const char *format, AVOutputFormat *oformat, const char *filename);
+attribute_deprecated
+AVFormatContext *avformat_alloc_output_context(const char *format,
+                                               AVOutputFormat *oformat,
+                                               const char *filename);
+#endif
+
+/**
+ * Allocate an AVFormatContext for an output format.
+ * avformat_free_context() can be used to free the context and
+ * everything allocated by the framework within it.
+ *
+ * @param *ctx is set to the created format context, or to NULL in
+ * case of failure
+ * @param oformat format to use for allocating the context, if NULL
+ * format_name and filename are used instead
+ * @param format_name the name of output format to use for allocating the
+ * context, if NULL filename is used instead
+ * @param filename the name of the filename to use for allocating the
+ * context, may be NULL
+ * @return >= 0 in case of success, a negative AVERROR code in case of
+ * failure
+ */
+int avformat_alloc_output_context2(AVFormatContext **ctx, AVOutputFormat *oformat,
+                                   const char *format_name, const char *filename);
 
 /**
  * Read packets of a media file to get stream information. This
@@ -1409,6 +1465,9 @@ int av_interleave_packet_per_dts(AVFormatContext *s, AVPacket *out,
 int av_write_trailer(AVFormatContext *s);
 
 #if FF_API_DUMP_FORMAT
+/**
+ * @deprecated Deprecated in favor of av_dump_format().
+ */
 attribute_deprecated void dump_format(AVFormatContext *ic,
                                       int index,
                                       const char *url,
index 07d127fd95d04c3e85812b45c16d24927b1b0bdd..bf1ea30bb3f24b437ff329d5582b831e5b6d943d 100644 (file)
@@ -370,6 +370,7 @@ void avio_set_interrupt_cb(int (*interrupt_cb)(void));
  * freed with av_free().
  *
  * @param buffer Memory block for input/output operations via AVIOContext.
+ *        The buffer must be allocated with av_malloc() and friends.
  * @param buffer_size The buffer size is very important for performance.
  *        For protocols with fixed blocksize it should be set to this blocksize.
  *        For others a typical size is a cache page, e.g. 4kb.
index dde8aa9dece643789e3b6bb965e174c8e906a80b..50c39dc7d930470063e7d22edb182e6102102b06 100644 (file)
@@ -24,7 +24,7 @@
 #include "libavutil/avutil.h"
 
 #define LIBAVFORMAT_VERSION_MAJOR 53
-#define LIBAVFORMAT_VERSION_MINOR  1
+#define LIBAVFORMAT_VERSION_MINOR  3
 #define LIBAVFORMAT_VERSION_MICRO  0
 
 #define LIBAVFORMAT_VERSION_INT AV_VERSION_INT(LIBAVFORMAT_VERSION_MAJOR, \
 #ifndef FF_API_SDP_CREATE
 #define FF_API_SDP_CREATE              (LIBAVFORMAT_VERSION_MAJOR < 54)
 #endif
+#ifndef FF_API_ALLOC_OUTPUT_CONTEXT
+#define FF_API_ALLOC_OUTPUT_CONTEXT    (LIBAVFORMAT_VERSION_MAJOR < 54)
+#endif
+#ifndef FF_API_FORMAT_PARAMETERS
+#define FF_API_FORMAT_PARAMETERS       (LIBAVFORMAT_VERSION_MAJOR < 54)
+#endif
+#ifndef FF_API_FLAG_RTP_HINT
+#define FF_API_FLAG_RTP_HINT           (LIBAVFORMAT_VERSION_MAJOR < 54)
+#endif
 
-#endif //AVFORMAT_VERSION_H
+#endif /* AVFORMAT_VERSION_H */
index 8dd4878c1191baea9eb355171272027b5220b90e..e100d0bfdd2f1a2b146b74e78c06c950f7620b2b 100644 (file)
@@ -63,4 +63,4 @@
 #define av_assert2(cond) ((void)0)
 #endif
 
-#endif
+#endif /* AVUTIL_AVASSERT_H */
index 09188f837e23d05a9b427c6409e4ec9374d888d3..500c700851b75ed21e65267cbae81b2ff8618c32 100644 (file)
@@ -40,8 +40,8 @@
 #define AV_VERSION(a, b, c) AV_VERSION_DOT(a, b, c)
 
 #define LIBAVUTIL_VERSION_MAJOR 51
-#define LIBAVUTIL_VERSION_MINOR  2
-#define LIBAVUTIL_VERSION_MICRO  1
+#define LIBAVUTIL_VERSION_MINOR  8
+#define LIBAVUTIL_VERSION_MICRO  0
 
 #define LIBAVUTIL_VERSION_INT   AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \
                                                LIBAVUTIL_VERSION_MINOR, \
@@ -60,6 +60,9 @@
 #ifndef FF_API_OLD_EVAL_NAMES
 #define FF_API_OLD_EVAL_NAMES (LIBAVUTIL_VERSION_MAJOR < 52)
 #endif
+#ifndef FF_API_GET_BITS_PER_SAMPLE_FMT
+#define FF_API_GET_BITS_PER_SAMPLE_FMT (LIBAVUTIL_VERSION_MAJOR < 52)
+#endif
 
 /**
  * Return the LIBAVUTIL_VERSION_INT constant.
index ff0c2e64ac1e72f3573d9555125ee7b0e4e7d981..da93fb5f69b9e2abed9135340533a189a88dca74 100644 (file)
  */
 int av_get_cpu_flags(void);
 
+
+/**
+ * Disables cpu detection and forces the specified flags.
+ */
+void av_force_cpu_flags(int flags);
+
+
 /* The following CPU-specific functions shall not be called directly. */
 int ff_get_cpu_flags_arm(void);
 int ff_get_cpu_flags_ppc(void);
 int ff_get_cpu_flags_x86(void);
 
-#endif  /* AVUTIL_CPU_H */
+#endif /* AVUTIL_CPU_H */
diff --git a/ffmpeg 0.7/include/libavutil/dict.h b/ffmpeg 0.7/include/libavutil/dict.h
new file mode 100644 (file)
index 0000000..19cc091
--- /dev/null
@@ -0,0 +1,78 @@
+/*
+ *
+ * This file is part of FFmpeg.
+ *
+ * FFmpeg is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * FFmpeg is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with FFmpeg; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+/**
+ * @file Public dictionary API.
+ */
+
+#ifndef AVUTIL_DICT_H
+#define AVUTIL_DICT_H
+
+#define AV_DICT_MATCH_CASE      1
+#define AV_DICT_IGNORE_SUFFIX   2
+#define AV_DICT_DONT_STRDUP_KEY 4
+#define AV_DICT_DONT_STRDUP_VAL 8
+#define AV_DICT_DONT_OVERWRITE 16   ///< Don't overwrite existing entries.
+
+typedef struct {
+    char *key;
+    char *value;
+} AVDictionaryEntry;
+
+typedef struct AVDictionary AVDictionary;
+
+/**
+ * Get a dictionary entry with matching key.
+ *
+ * @param prev Set to the previous matching element to find the next.
+ *             If set to NULL the first matching element is returned.
+ * @param flags Allows case as well as suffix-insensitive comparisons.
+ * @return Found entry or NULL, changing key or value leads to undefined behavior.
+ */
+AVDictionaryEntry *
+av_dict_get(AVDictionary *m, const char *key, const AVDictionaryEntry *prev, int flags);
+
+/**
+ * Set the given entry in *pm, overwriting an existing entry.
+ *
+ * @param pm pointer to a pointer to a dictionary struct. If *pm is NULL
+ * a dictionary struct is allocated and put in *pm.
+ * @param key entry key to add to *pm (will be av_strduped depending on flags)
+ * @param value entry value to add to *pm (will be av_strduped depending on flags).
+ *        Passing a NULL value will cause an existing tag to be deleted.
+ * @return >= 0 on success otherwise an error code <0
+ */
+int av_dict_set(AVDictionary **pm, const char *key, const char *value, int flags);
+
+/**
+ * Copy entries from one AVDictionary struct into another.
+ * @param dst pointer to a pointer to a AVDictionary struct. If *dst is NULL,
+ *            this function will allocate a struct for you and put it in *dst
+ * @param src pointer to source AVDictionary struct
+ * @param flags flags to use when setting entries in *dst
+ * @note metadata is read using the AV_DICT_IGNORE_SUFFIX flag
+ */
+void av_dict_copy(AVDictionary **dst, AVDictionary *src, int flags);
+
+/**
+ * Free all the memory allocated for an AVDictionary struct.
+ */
+void av_dict_free(AVDictionary **m);
+
+#endif // AVUTIL_DICT_H
index 7a714d1f2dc311617b561b1f260868665af9297d..f34cb2d921d0a8b7907dfc207acabb2a575d9ea0 100644 (file)
@@ -24,8 +24,8 @@
  * misc image utilities
  */
 
-#include "libavutil/pixdesc.h"
 #include "avutil.h"
+#include "pixdesc.h"
 
 /**
  * Compute the max pixel step for each plane of an image with a
index b04c7905d61398f463b04a93d9eeb7b0b0033ad7..c967ed5c6bba1d144591a18a24fad4520dd8aebf 100644 (file)
@@ -176,4 +176,9 @@ void av_opt_set_defaults2(void *s, int mask, int flags);
 int av_set_options_string(void *ctx, const char *opts,
                           const char *key_val_sep, const char *pairs_sep);
 
+/**
+ * Free all string and binary options in obj.
+ */
+void av_opt_free(void *obj);
+
 #endif /* AVUTIL_OPT_H */
index c3986af20c4bfede6aefcc7970e3c55bdedb73bb..d31212e257c9a6523e884b950a36ec08e3209ea6 100644 (file)
@@ -19,7 +19,7 @@
 #ifndef AVUTIL_PARSEUTILS_H
 #define AVUTIL_PARSEUTILS_H
 
-#include "libavutil/rational.h"
+#include "rational.h"
 
 /**
  * @file
index 727e47f06aa74b29d8ad42f40238c7568ab545f2..f0de9981ec7ab3f39aadeed5c13032d26f6f6b7d 100644 (file)
@@ -23,6 +23,7 @@
 #define AVUTIL_PIXDESC_H
 
 #include <inttypes.h>
+#include "pixfmt.h"
 
 typedef struct AVComponentDescriptor{
     uint16_t plane        :2;            ///< which of the 4 planes contains the component
@@ -141,6 +142,14 @@ void av_write_image_line(const uint16_t *src, uint8_t *data[4], const int linesi
  */
 enum PixelFormat av_get_pix_fmt(const char *name);
 
+/**
+ * Return the short name for a pixel format, NULL in case pix_fmt is
+ * unknown.
+ *
+ * @see av_get_pix_fmt(), av_get_pix_fmt_string()
+ */
+const char *av_get_pix_fmt_name(enum PixelFormat pix_fmt);
+
 /**
  * Print in buf the string corresponding to the pixel format with
  * number pix_fmt, or an header if pix_fmt is negative.
index 95972f93732256220319e6cb1b435e1bdc02dc60..6e4f1610d7aa68c647ea79fc08befbb94ccd9aff 100644 (file)
@@ -136,7 +136,9 @@ enum PixelFormat {
     PIX_FMT_BGR48BE,   ///< packed RGB 16:16:16, 48bpp, 16B, 16G, 16R, the 2-byte value for each R/G/B component is stored as big-endian
     PIX_FMT_BGR48LE,   ///< packed RGB 16:16:16, 48bpp, 16B, 16G, 16R, the 2-byte value for each R/G/B component is stored as little-endian
 
-    //the following 6 formats are deprecated and should be replaced by PIX_FMT_YUV420P16* with the bpp stored seperately
+    //the following 6 formats have the disadvantage of needing 1 format for each bit depth, thus
+    //If you want to support multiple bit depths, then using PIX_FMT_YUV420P16* with the bpp stored seperately
+    //is better
     PIX_FMT_YUV420P9BE, ///< planar YUV 4:2:0, 13.5bpp, (1 Cr & Cb sample per 2x2 Y samples), big-endian
     PIX_FMT_YUV420P9LE, ///< planar YUV 4:2:0, 13.5bpp, (1 Cr & Cb sample per 2x2 Y samples), little-endian
     PIX_FMT_YUV420P10BE,///< planar YUV 4:2:0, 15bpp, (1 Cr & Cb sample per 2x2 Y samples), big-endian
index 9b9c0d49a917c74b1ef33e30fcb587df004ccb5a..b06755d2cef117059348a2eecd3b81ececf6943e 100644 (file)
@@ -60,22 +60,35 @@ enum AVSampleFormat av_get_sample_fmt(const char *name);
  */
 char *av_get_sample_fmt_string(char *buf, int buf_size, enum AVSampleFormat sample_fmt);
 
+#if FF_API_GET_BITS_PER_SAMPLE_FMT
 /**
- * Return sample format bits per sample.
+ * @deprecated Use av_get_bytes_per_sample() instead.
+ */
+attribute_deprecated
+int av_get_bits_per_sample_fmt(enum AVSampleFormat sample_fmt);
+#endif
+
+/**
+ * Return number of bytes per sample.
  *
  * @param sample_fmt the sample format
- * @return number of bits per sample or zero if unknown for the given
+ * @return number of bytes per sample or zero if unknown for the given
  * sample format
  */
-int av_get_bits_per_sample_fmt(enum AVSampleFormat sample_fmt);
+int av_get_bytes_per_sample(enum AVSampleFormat sample_fmt);
 
 /**
  * Fill channel data pointers and linesizes for samples with sample
  * format sample_fmt.
  *
  * The pointers array is filled with the pointers to the samples data:
- * data[c] points to the first sample of channel c.
- * data[c] + linesize[0] points to the second sample of channel c
+ * for planar, set the start point of each plane's data within the buffer,
+ * for packed, set the start point of the entire buffer only.
+ *
+ * The linesize array is filled with the aligned size of each samples
+ * plane, that is linesize[i] will contain the linesize of the plane i,
+ * and will be zero for all the unused planes. All linesize values are
+ * equal.
  *
  * @param pointers array to be filled with the pointer for each plane, may be NULL
  * @param linesizes array to be filled with the linesize, may be NULL
@@ -96,6 +109,7 @@ int av_samples_fill_arrays(uint8_t *pointers[8], int linesizes[8],
  * The allocated samples buffer has to be freed by using
  * av_freep(&pointers[0]).
  *
+ * @param nb_channels number of audio channels
  * @param nb_samples number of samples per channel
  * @param planar 1 if the samples layout is planar, 0 if packed,
  * @param align the value to use for buffer size alignment
@@ -104,7 +118,7 @@ int av_samples_fill_arrays(uint8_t *pointers[8], int linesizes[8],
  * @see av_samples_fill_arrays()
  */
 int av_samples_alloc(uint8_t *pointers[8], int linesizes[8],
-                     int nb_samples, int nb_channels,
+                     int nb_channels, int nb_samples,
                      enum AVSampleFormat sample_fmt, int planar,
                      int align);
 
index 406eec47f24b4c1d3a098b134a317a3caeaec648..e798773158637a55348b4735527d4e64954956f3 100644 (file)
@@ -31,7 +31,7 @@
 
 #define LIBSWSCALE_VERSION_MAJOR 0
 #define LIBSWSCALE_VERSION_MINOR 14
-#define LIBSWSCALE_VERSION_MICRO 0
+#define LIBSWSCALE_VERSION_MICRO 1
 
 #define LIBSWSCALE_VERSION_INT  AV_VERSION_INT(LIBSWSCALE_VERSION_MAJOR, \
                                                LIBSWSCALE_VERSION_MINOR, \
 #ifndef FF_API_SWS_GETCONTEXT
 #define FF_API_SWS_GETCONTEXT  (LIBSWSCALE_VERSION_MAJOR < 2)
 #endif
+#ifndef FF_API_SWS_CPU_CAPS
+#define FF_API_SWS_CPU_CAPS    (LIBSWSCALE_VERSION_MAJOR < 2)
+#endif
+#ifndef FF_API_SWS_FORMAT_NAME
+#define FF_API_SWS_FORMAT_NAME  (LIBSWSCALE_VERSION_MAJOR < 2)
+#endif
 
 /**
  * Returns the LIBSWSCALE_VERSION_INT constant.
@@ -95,12 +101,18 @@ const char *swscale_license(void);
 #define SWS_ACCURATE_RND      0x40000
 #define SWS_BITEXACT          0x80000
 
+#if FF_API_SWS_CPU_CAPS
+/**
+ * CPU caps are autodetected now, those flags
+ * are only provided for API compatibility.
+ */
 #define SWS_CPU_CAPS_MMX      0x80000000
 #define SWS_CPU_CAPS_MMX2     0x20000000
 #define SWS_CPU_CAPS_3DNOW    0x40000000
 #define SWS_CPU_CAPS_ALTIVEC  0x10000000
 #define SWS_CPU_CAPS_BFIN     0x01000000
 #define SWS_CPU_CAPS_SSE2     0x02000000
+#endif
 
 #define SWS_MAX_REDUCE_CUTOFF 0.002
 
@@ -187,6 +199,7 @@ void sws_freeContext(struct SwsContext *swsContext);
  * @return a pointer to an allocated context, or NULL in case of error
  * @note this function is to be removed after a saner alternative is
  *       written
+ * @deprecated Use sws_getCachedContext() instead.
  */
 struct SwsContext *sws_getContext(int srcW, int srcH, enum PixelFormat srcFormat,
                                   int dstW, int dstH, enum PixelFormat dstFormat,
@@ -341,7 +354,7 @@ struct SwsContext *sws_getCachedContext(struct SwsContext *context,
  * @param num_pixels number of pixels to convert
  * @param palette    array with [256] entries, which must match color arrangement (RGB or BGR) of src
  */
-void sws_convertPalette8ToPacked32(const uint8_t *src, uint8_t *dst, long num_pixels, const uint8_t *palette);
+void sws_convertPalette8ToPacked32(const uint8_t *src, uint8_t *dst, int num_pixels, const uint8_t *palette);
 
 /**
  * Converts an 8bit paletted frame into a frame with a color depth of 24 bits.
@@ -353,7 +366,7 @@ void sws_convertPalette8ToPacked32(const uint8_t *src, uint8_t *dst, long num_pi
  * @param num_pixels number of pixels to convert
  * @param palette    array with [256] entries, which must match color arrangement (RGB or BGR) of src
  */
-void sws_convertPalette8ToPacked24(const uint8_t *src, uint8_t *dst, long num_pixels, const uint8_t *palette);
+void sws_convertPalette8ToPacked24(const uint8_t *src, uint8_t *dst, int num_pixels, const uint8_t *palette);
 
 
 #endif /* SWSCALE_SWSCALE_H */
index fce76bb017eb2002ed3e9853207d80d5f4ea5e67..5f9fbfe527fe63148e5dd91fe0f6ad078f6c03ab 100644 (file)
Binary files a/ffmpeg 0.7/lib/avcodec-53.dll and b/ffmpeg 0.7/lib/avcodec-53.dll differ
index 1e6305e6310968b45626eb7a50e541d674450a63..716dc44302035609e0c69d0ade736c2d9be5c489 100644 (file)
Binary files a/ffmpeg 0.7/lib/avcodec.lib and b/ffmpeg 0.7/lib/avcodec.lib differ
index 1405b043f526f436eb90af3db6a85185b57d31b4..5368e763749406daa71289bd9a8bbf9fcc95f965 100644 (file)
Binary files a/ffmpeg 0.7/lib/avdevice-53.dll and b/ffmpeg 0.7/lib/avdevice-53.dll differ
index 3e423edb2474469c87b28747dc2ea727fa22bdd4..9ef3413d359d782556b5e8cbc4fa28ec9839e968 100644 (file)
Binary files a/ffmpeg 0.7/lib/avdevice.lib and b/ffmpeg 0.7/lib/avdevice.lib differ
index b56253918f7503512f1446de851956e4f48be15f..eda8798b0747361edb98d8632e78a3394060a399 100644 (file)
Binary files a/ffmpeg 0.7/lib/avfilter-2.dll and b/ffmpeg 0.7/lib/avfilter-2.dll differ
index 0c21155e61dab35498f7ccb70080ffe801307a87..82fe96642bb21a7731ea3c7d9365e6b80316b626 100644 (file)
Binary files a/ffmpeg 0.7/lib/avfilter.lib and b/ffmpeg 0.7/lib/avfilter.lib differ
index 3984c918ec86b2050ed10a2e8170d2c635973096..cb79f1664d152ab5de52c638ac61ccde30120322 100644 (file)
Binary files a/ffmpeg 0.7/lib/avformat-53.dll and b/ffmpeg 0.7/lib/avformat-53.dll differ
index 618e3a1bbbee97c3e58734a451e292f702d10fb9..091a0e57603fe4027966e4ff4ac4065b002f4407 100644 (file)
Binary files a/ffmpeg 0.7/lib/avformat.lib and b/ffmpeg 0.7/lib/avformat.lib differ
index 3c468390501989118edf04bf595576c27d4300ca..17e498092edb2bdd45d3d0f7ed3bb40812c4f1b1 100644 (file)
Binary files a/ffmpeg 0.7/lib/avutil-51.dll and b/ffmpeg 0.7/lib/avutil-51.dll differ
index 3c753bc73bba1b395479b61cb00cc05f2c9889e0..ced8b386f889fff6ff0fa920723e9c3d84ee28df 100644 (file)
Binary files a/ffmpeg 0.7/lib/avutil.lib and b/ffmpeg 0.7/lib/avutil.lib differ
index 4fe064aaa744b81ba1b733140286797bbdd80208..68ac4cf262dbfa33fa5b78b244ae5f0ff2b008e0 100644 (file)
Binary files a/ffmpeg 0.7/lib/postproc-51.dll and b/ffmpeg 0.7/lib/postproc-51.dll differ
index a781aad75d571f3811fd573919ac7b58986d5cab..f8c02441cea904f4da11bfcca3f63658559a2713 100644 (file)
Binary files a/ffmpeg 0.7/lib/postproc.lib and b/ffmpeg 0.7/lib/postproc.lib differ
index d2cc474104d3251ee23c0ba5dae6b60f952892f7..a987f5f4d80b996caaba6a1efcc807cdf73dbfed 100644 (file)
Binary files a/ffmpeg 0.7/lib/swscale-0.dll and b/ffmpeg 0.7/lib/swscale-0.dll differ
index 3688e2266851c44e9be96a93af646c0ae1e951e9..df48f548929d6c185c330509cf82204c3531374b 100644 (file)
Binary files a/ffmpeg 0.7/lib/swscale.lib and b/ffmpeg 0.7/lib/swscale.lib differ