From owner-svn-ports-all@freebsd.org Tue Apr 24 13:58:03 2018 Return-Path: Delivered-To: svn-ports-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 7BD0AFA5808; Tue, 24 Apr 2018 13:58:03 +0000 (UTC) (envelope-from jbeich@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 2715C6A104; Tue, 24 Apr 2018 13:58:03 +0000 (UTC) (envelope-from jbeich@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 07CD113FE5; Tue, 24 Apr 2018 13:58:03 +0000 (UTC) (envelope-from jbeich@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w3ODw25L032277; Tue, 24 Apr 2018 13:58:02 GMT (envelope-from jbeich@FreeBSD.org) Received: (from jbeich@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w3ODw2dU032274; Tue, 24 Apr 2018 13:58:02 GMT (envelope-from jbeich@FreeBSD.org) Message-Id: <201804241358.w3ODw2dU032274@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jbeich set sender to jbeich@FreeBSD.org using -f From: Jan Beich Date: Tue, 24 Apr 2018 13:58:02 +0000 (UTC) To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: svn commit: r468210 - in head/www: libxul libxul/files palemoon palemoon/files X-SVN-Group: ports-head X-SVN-Commit-Author: jbeich X-SVN-Commit-Paths: in head/www: libxul libxul/files palemoon palemoon/files X-SVN-Commit-Revision: 468210 X-SVN-Commit-Repository: ports MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-ports-all@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the ports tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 24 Apr 2018 13:58:04 -0000 Author: jbeich Date: Tue Apr 24 13:58:02 2018 New Revision: 468210 URL: https://svnweb.freebsd.org/changeset/ports/468210 Log: www/palemoon: unbreak h264/aac/mp3 with ffmpeg 4.0 PR: 227726 Obtained from: upstream (Firefox 61) Added: head/www/libxul/files/patch-bug1435212 (contents, props changed) head/www/palemoon/files/patch-bug1435212 (contents, props changed) Modified: head/www/libxul/Makefile (contents, props changed) head/www/palemoon/Makefile (contents, props changed) Modified: head/www/libxul/Makefile ============================================================================== --- head/www/libxul/Makefile Tue Apr 24 13:57:44 2018 (r468209) +++ head/www/libxul/Makefile Tue Apr 24 13:58:02 2018 (r468210) @@ -3,7 +3,7 @@ PORTNAME= libxul DISTVERSION= 45.9.0 -PORTREVISION= 11 +PORTREVISION= 12 CATEGORIES?= www devel MASTER_SITES= MOZILLA/firefox/releases/${DISTVERSION}esr/source \ MOZILLA/firefox/candidates/${DISTVERSION}esr-candidates/build3/source Added: head/www/libxul/files/patch-bug1435212 ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/www/libxul/files/patch-bug1435212 Tue Apr 24 13:58:02 2018 (r468210) @@ -0,0 +1,13657 @@ +commit abe6e049cdd3 +Author: Jean-Yves Avenard +Date: Thu Apr 19 10:19:15 2018 +0200 + + Bug 1435212 - Add support for FFmpeg 4.0. r=bryce + + MozReview-Commit-ID: JlDFSUyGQu + + --HG-- + extra : rebase_source : 310135ac5453b01164910bd3bf50b6107dcbc710 +--- + dom/media/platforms/ffmpeg/FFmpegDataDecoder.cpp | 6 + + dom/media/platforms/ffmpeg/FFmpegLibWrapper.cpp | 13 +- + dom/media/platforms/ffmpeg/FFmpegLibs.h | 4 +- + dom/media/platforms/ffmpeg/FFmpegRuntimeLinker.cpp | 4 + + dom/media/platforms/ffmpeg/FFmpegVideoDecoder.cpp | 2 +- + .../ffmpeg/ffmpeg58/include/COPYING.LGPLv2.1 | 504 ++ + .../ffmpeg/ffmpeg58/include/libavcodec/avcodec.h | 6146 ++++++++++++++++++++ + .../ffmpeg/ffmpeg58/include/libavcodec/avfft.h | 118 + + .../ffmpeg/ffmpeg58/include/libavcodec/vaapi.h | 86 + + .../ffmpeg/ffmpeg58/include/libavcodec/vdpau.h | 176 + + .../ffmpeg/ffmpeg58/include/libavcodec/version.h | 137 + + .../ffmpeg/ffmpeg58/include/libavutil/attributes.h | 167 + + .../ffmpeg/ffmpeg58/include/libavutil/avconfig.h | 6 + + .../ffmpeg/ffmpeg58/include/libavutil/avutil.h | 365 ++ + .../ffmpeg/ffmpeg58/include/libavutil/buffer.h | 291 + + .../ffmpeg58/include/libavutil/channel_layout.h | 232 + + .../ffmpeg/ffmpeg58/include/libavutil/common.h | 560 ++ + .../ffmpeg/ffmpeg58/include/libavutil/cpu.h | 130 + + .../ffmpeg/ffmpeg58/include/libavutil/dict.h | 200 + + .../ffmpeg/ffmpeg58/include/libavutil/error.h | 126 + + .../ffmpeg/ffmpeg58/include/libavutil/frame.h | 893 +++ + .../ffmpeg/ffmpeg58/include/libavutil/hwcontext.h | 584 ++ + .../ffmpeg/ffmpeg58/include/libavutil/intfloat.h | 77 + + .../ffmpeg/ffmpeg58/include/libavutil/log.h | 362 ++ + .../ffmpeg/ffmpeg58/include/libavutil/macros.h | 50 + + .../ffmpeg58/include/libavutil/mathematics.h | 242 + + .../ffmpeg/ffmpeg58/include/libavutil/mem.h | 700 +++ + .../ffmpeg/ffmpeg58/include/libavutil/pixfmt.h | 529 ++ + .../ffmpeg/ffmpeg58/include/libavutil/rational.h | 214 + + .../ffmpeg/ffmpeg58/include/libavutil/samplefmt.h | 272 + + .../ffmpeg/ffmpeg58/include/libavutil/version.h | 139 + + dom/media/platforms/ffmpeg/ffmpeg58/moz.build | 25 + + dom/media/platforms/ffmpeg/moz.build | 1 + + 33 files changed, 13355 insertions(+), 6 deletions(-) + +diff --git dom/media/platforms/ffmpeg/FFmpegDataDecoder.cpp dom/media/platforms/ffmpeg/FFmpegDataDecoder.cpp +index 4600ad6d247c..a9c7089fa880 100644 +--- dom/media/platforms/ffmpeg/FFmpegDataDecoder.cpp ++++ dom/media/platforms/ffmpeg/FFmpegDataDecoder.cpp +@@ -77,15 +77,21 @@ FFmpegDataDecoder::InitDecoder() + mCodecContext->extradata_size = mExtraData->Length(); + // FFmpeg may use SIMD instructions to access the data which reads the + // data in 32 bytes block. Must ensure we have enough data to read. ++#if LIBAVCODEC_VERSION_MAJOR >= 58 ++ mExtraData->AppendElements(AV_INPUT_BUFFER_PADDING_SIZE); ++#else + mExtraData->AppendElements(FF_INPUT_BUFFER_PADDING_SIZE); ++#endif + mCodecContext->extradata = mExtraData->Elements(); + } else { + mCodecContext->extradata_size = 0; + } + ++#if LIBAVCODEC_VERSION_MAJOR < 57 + if (codec->capabilities & CODEC_CAP_DR1) { + mCodecContext->flags |= CODEC_FLAG_EMU_EDGE; + } ++#endif + + if (mLib->avcodec_open2(mCodecContext, codec, nullptr) < 0) { + mLib->avcodec_close(mCodecContext); +diff --git dom/media/platforms/ffmpeg/FFmpegFunctionList.h dom/media/platforms/ffmpeg/FFmpegFunctionList.h +index 6b8b38487d56..d08eee3fc8e8 100644 +--- dom/media/platforms/ffmpeg/FFmpegFunctionList.h ++++ dom/media/platforms/ffmpeg/FFmpegFunctionList.h +@@ -31,8 +31,8 @@ AV_FUNC(av_freep, AV_FUNC_AVUTIL_ALL) + #if defined(LIBAVCODEC_VERSION_MAJOR) || defined(LIBAVCODEC_ALLVERSION) + #if LIBAVCODEC_VERSION_MAJOR >= 55 || defined(LIBAVCODEC_ALLVERSION) + /* libavutil v55 and later only */ +-AV_FUNC(av_frame_alloc, (AV_FUNC_AVUTIL_55 | AV_FUNC_AVUTIL_56 | AV_FUNC_AVUTIL_57)) +-AV_FUNC(av_frame_free, (AV_FUNC_AVUTIL_55 | AV_FUNC_AVUTIL_56 | AV_FUNC_AVUTIL_57)) +-AV_FUNC(av_frame_unref, (AV_FUNC_AVUTIL_55 | AV_FUNC_AVUTIL_56 | AV_FUNC_AVUTIL_57)) ++AV_FUNC(av_frame_alloc, (AV_FUNC_AVUTIL_55 | AV_FUNC_AVUTIL_56 | AV_FUNC_AVUTIL_57 | AV_FUNC_AVUTIL_58)) ++AV_FUNC(av_frame_free, (AV_FUNC_AVUTIL_55 | AV_FUNC_AVUTIL_56 | AV_FUNC_AVUTIL_57 | AV_FUNC_AVUTIL_58)) ++AV_FUNC(av_frame_unref, (AV_FUNC_AVUTIL_55 | AV_FUNC_AVUTIL_56 | AV_FUNC_AVUTIL_57 | AV_FUNC_AVUTIL_58)) + #endif + #endif +diff --git dom/media/platforms/ffmpeg/FFmpegRuntimeLinker.h dom/media/platforms/ffmpeg/FFmpegRuntimeLinker.h +index 6b8b38487d56..d08eee3fc8e8 100644 +--- dom/media/platforms/ffmpeg/FFmpegRuntimeLinker.h ++++ dom/media/platforms/ffmpeg/FFmpegRuntimeLinker.h +@@ -22,12 +22,14 @@ enum { + AV_FUNC_55 = 1 << 2, + AV_FUNC_56 = 1 << 3, + AV_FUNC_57 = 1 << 4, ++ AV_FUNC_58 = 1 << 5, + AV_FUNC_AVUTIL_53 = AV_FUNC_53 | AV_FUNC_AVUTIL_MASK, + AV_FUNC_AVUTIL_54 = AV_FUNC_54 | AV_FUNC_AVUTIL_MASK, + AV_FUNC_AVUTIL_55 = AV_FUNC_55 | AV_FUNC_AVUTIL_MASK, + AV_FUNC_AVUTIL_56 = AV_FUNC_56 | AV_FUNC_AVUTIL_MASK, + AV_FUNC_AVUTIL_57 = AV_FUNC_57 | AV_FUNC_AVUTIL_MASK, +- AV_FUNC_AVCODEC_ALL = AV_FUNC_53 | AV_FUNC_54 | AV_FUNC_55 | AV_FUNC_56 | AV_FUNC_57, ++ AV_FUNC_AVUTIL_58 = AV_FUNC_58 | AV_FUNC_AVUTIL_MASK, ++ AV_FUNC_AVCODEC_ALL = AV_FUNC_53 | AV_FUNC_54 | AV_FUNC_55 | AV_FUNC_56 | AV_FUNC_57 | AV_FUNC_58, + AV_FUNC_AVUTIL_ALL = AV_FUNC_AVCODEC_ALL | AV_FUNC_AVUTIL_MASK + }; + +diff --git dom/media/platforms/ffmpeg/FFmpegRuntimeLinker.cpp dom/media/platforms/ffmpeg/FFmpegRuntimeLinker.cpp +index f671e6e61bc4..b7ab49329502 100644 +--- dom/media/platforms/ffmpeg/FFmpegRuntimeLinker.cpp ++++ dom/media/platforms/ffmpeg/FFmpegRuntimeLinker.cpp +@@ -23,12 +23,15 @@ template class FFmpegDecoderModule (public) + + static const char* sLibs[] = { + #if defined(XP_DARWIN) ++ "libavcodec.58.dylib", + "libavcodec.57.dylib", + "libavcodec.56.dylib", + "libavcodec.55.dylib", + "libavcodec.54.dylib", + "libavcodec.53.dylib", + #else ++ "libavcodec.so.58", ++ "libavcodec-ffmpeg.so.58", + "libavcodec-ffmpeg.so.57", + "libavcodec-ffmpeg.so.56", + "libavcodec.so.57", +@@ -129,6 +132,15 @@ FFmpegRuntimeLinker::Bind(const char* aLibName) + } + version = AV_FUNC_57; + break; ++ case 58: ++ if (micro < 100) { ++ // A micro version >= 100 indicates that it's FFmpeg (as opposed to LibAV). ++ // Due to current AVCodecContext binary incompatibility we can only ++ // support FFmpeg at this point. ++ return false; ++ } ++ version = AV_FUNC_58; ++ break; + default: + // Not supported at this stage. + return false; +@@ -168,6 +180,7 @@ FFmpegRuntimeLinker::CreateDecoderModule() + case 55: + case 56: module = FFmpegDecoderModule<55>::Create(); break; + case 57: module = FFmpegDecoderModule<57>::Create(); break; ++ case 58: module = FFmpegDecoderModule<58>::Create(); break; + default: module = nullptr; + } + return module.forget(); +diff --git dom/media/platforms/ffmpeg/ffmpeg58/include/COPYING.LGPLv2.1 dom/media/platforms/ffmpeg/ffmpeg58/include/COPYING.LGPLv2.1 +new file mode 100644 +index 000000000000..00b4fedfe7e7 +--- /dev/null ++++ dom/media/platforms/ffmpeg/ffmpeg58/include/COPYING.LGPLv2.1 +@@ -0,0 +1,504 @@ ++ GNU LESSER GENERAL PUBLIC LICENSE ++ Version 2.1, February 1999 ++ ++ Copyright (C) 1991, 1999 Free Software Foundation, Inc. ++ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA ++ Everyone is permitted to copy and distribute verbatim copies ++ of this license document, but changing it is not allowed. ++ ++[This is the first released version of the Lesser GPL. It also counts ++ as the successor of the GNU Library Public License, version 2, hence ++ the version number 2.1.] ++ ++ Preamble ++ ++ The licenses for most software are designed to take away your ++freedom to share and change it. By contrast, the GNU General Public ++Licenses are intended to guarantee your freedom to share and change ++free software--to make sure the software is free for all its users. ++ ++ This license, the Lesser General Public License, applies to some ++specially designated software packages--typically libraries--of the ++Free Software Foundation and other authors who decide to use it. You ++can use it too, but we suggest you first think carefully about whether ++this license or the ordinary General Public License is the better ++strategy to use in any particular case, based on the explanations below. ++ ++ When we speak of free software, we are referring to freedom of use, ++not price. Our General Public Licenses are designed to make sure that ++you have the freedom to distribute copies of free software (and charge ++for this service if you wish); that you receive source code or can get ++it if you want it; that you can change the software and use pieces of ++it in new free programs; and that you are informed that you can do ++these things. ++ ++ To protect your rights, we need to make restrictions that forbid ++distributors to deny you these rights or to ask you to surrender these ++rights. These restrictions translate to certain responsibilities for ++you if you distribute copies of the library or if you modify it. ++ ++ For example, if you distribute copies of the library, whether gratis ++or for a fee, you must give the recipients all the rights that we gave ++you. You must make sure that they, too, receive or can get the source ++code. If you link other code with the library, you must provide ++complete object files to the recipients, so that they can relink them ++with the library after making changes to the library and recompiling ++it. And you must show them these terms so they know their rights. ++ ++ We protect your rights with a two-step method: (1) we copyright the ++library, and (2) we offer you this license, which gives you legal ++permission to copy, distribute and/or modify the library. ++ ++ To protect each distributor, we want to make it very clear that ++there is no warranty for the free library. Also, if the library is ++modified by someone else and passed on, the recipients should know ++that what they have is not the original version, so that the original ++author's reputation will not be affected by problems that might be ++introduced by others. ++ ++ Finally, software patents pose a constant threat to the existence of ++any free program. We wish to make sure that a company cannot ++effectively restrict the users of a free program by obtaining a ++restrictive license from a patent holder. Therefore, we insist that ++any patent license obtained for a version of the library must be ++consistent with the full freedom of use specified in this license. ++ ++ Most GNU software, including some libraries, is covered by the ++ordinary GNU General Public License. This license, the GNU Lesser ++General Public License, applies to certain designated libraries, and ++is quite different from the ordinary General Public License. We use ++this license for certain libraries in order to permit linking those ++libraries into non-free programs. ++ ++ When a program is linked with a library, whether statically or using ++a shared library, the combination of the two is legally speaking a ++combined work, a derivative of the original library. The ordinary ++General Public License therefore permits such linking only if the ++entire combination fits its criteria of freedom. The Lesser General ++Public License permits more lax criteria for linking other code with ++the library. ++ ++ We call this license the "Lesser" General Public License because it ++does Less to protect the user's freedom than the ordinary General ++Public License. It also provides other free software developers Less ++of an advantage over competing non-free programs. These disadvantages ++are the reason we use the ordinary General Public License for many ++libraries. However, the Lesser license provides advantages in certain ++special circumstances. ++ ++ For example, on rare occasions, there may be a special need to ++encourage the widest possible use of a certain library, so that it becomes ++a de-facto standard. To achieve this, non-free programs must be ++allowed to use the library. A more frequent case is that a free ++library does the same job as widely used non-free libraries. In this ++case, there is little to gain by limiting the free library to free ++software only, so we use the Lesser General Public License. ++ ++ In other cases, permission to use a particular library in non-free ++programs enables a greater number of people to use a large body of ++free software. For example, permission to use the GNU C Library in ++non-free programs enables many more people to use the whole GNU ++operating system, as well as its variant, the GNU/Linux operating ++system. ++ ++ Although the Lesser General Public License is Less protective of the ++users' freedom, it does ensure that the user of a program that is ++linked with the Library has the freedom and the wherewithal to run ++that program using a modified version of the Library. ++ ++ The precise terms and conditions for copying, distribution and ++modification follow. Pay close attention to the difference between a ++"work based on the library" and a "work that uses the library". The ++former contains code derived from the library, whereas the latter must ++be combined with the library in order to run. ++ ++ GNU LESSER GENERAL PUBLIC LICENSE ++ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION ++ ++ 0. This License Agreement applies to any software library or other ++program which contains a notice placed by the copyright holder or ++other authorized party saying it may be distributed under the terms of ++this Lesser General Public License (also called "this License"). ++Each licensee is addressed as "you". ++ ++ A "library" means a collection of software functions and/or data ++prepared so as to be conveniently linked with application programs ++(which use some of those functions and data) to form executables. ++ ++ The "Library", below, refers to any such software library or work ++which has been distributed under these terms. A "work based on the ++Library" means either the Library or any derivative work under ++copyright law: that is to say, a work containing the Library or a ++portion of it, either verbatim or with modifications and/or translated ++straightforwardly into another language. (Hereinafter, translation is ++included without limitation in the term "modification".) ++ ++ "Source code" for a work means the preferred form of the work for ++making modifications to it. For a library, complete source code means ++all the source code for all modules it contains, plus any associated ++interface definition files, plus the scripts used to control compilation ++and installation of the library. ++ ++ Activities other than copying, distribution and modification are not ++covered by this License; they are outside its scope. The act of ++running a program using the Library is not restricted, and output from ++such a program is covered only if its contents constitute a work based ++on the Library (independent of the use of the Library in a tool for ++writing it). Whether that is true depends on what the Library does ++and what the program that uses the Library does. ++ ++ 1. You may copy and distribute verbatim copies of the Library's ++complete source code as you receive it, in any medium, provided that ++you conspicuously and appropriately publish on each copy an ++appropriate copyright notice and disclaimer of warranty; keep intact ++all the notices that refer to this License and to the absence of any ++warranty; and distribute a copy of this License along with the ++Library. ++ ++ You may charge a fee for the physical act of transferring a copy, ++and you may at your option offer warranty protection in exchange for a ++fee. ++ ++ 2. You may modify your copy or copies of the Library or any portion ++of it, thus forming a work based on the Library, and copy and ++distribute such modifications or work under the terms of Section 1 ++above, provided that you also meet all of these conditions: ++ ++ a) The modified work must itself be a software library. ++ ++ b) You must cause the files modified to carry prominent notices ++ stating that you changed the files and the date of any change. ++ ++ c) You must cause the whole of the work to be licensed at no ++ charge to all third parties under the terms of this License. ++ ++ d) If a facility in the modified Library refers to a function or a ++ table of data to be supplied by an application program that uses ++ the facility, other than as an argument passed when the facility ++ is invoked, then you must make a good faith effort to ensure that, ++ in the event an application does not supply such function or ++ table, the facility still operates, and performs whatever part of ++ its purpose remains meaningful. ++ ++ (For example, a function in a library to compute square roots has ++ a purpose that is entirely well-defined independent of the ++ application. Therefore, Subsection 2d requires that any ++ application-supplied function or table used by this function must ++ be optional: if the application does not supply it, the square ++ root function must still compute square roots.) ++ ++These requirements apply to the modified work as a whole. If ++identifiable sections of that work are not derived from the Library, ++and can be reasonably considered independent and separate works in ++themselves, then this License, and its terms, do not apply to those ++sections when you distribute them as separate works. But when you ++distribute the same sections as part of a whole which is a work based ++on the Library, the distribution of the whole must be on the terms of ++this License, whose permissions for other licensees extend to the ++entire whole, and thus to each and every part regardless of who wrote ++it. ++ ++Thus, it is not the intent of this section to claim rights or contest ++your rights to work written entirely by you; rather, the intent is to ++exercise the right to control the distribution of derivative or ++collective works based on the Library. ++ ++In addition, mere aggregation of another work not based on the Library ++with the Library (or with a work based on the Library) on a volume of ++a storage or distribution medium does not bring the other work under ++the scope of this License. ++ ++ 3. You may opt to apply the terms of the ordinary GNU General Public ++License instead of this License to a given copy of the Library. To do ++this, you must alter all the notices that refer to this License, so ++that they refer to the ordinary GNU General Public License, version 2, ++instead of to this License. (If a newer version than version 2 of the ++ordinary GNU General Public License has appeared, then you can specify ++that version instead if you wish.) Do not make any other change in ++these notices. ++ ++ Once this change is made in a given copy, it is irreversible for ++that copy, so the ordinary GNU General Public License applies to all ++subsequent copies and derivative works made from that copy. ++ ++ This option is useful when you wish to copy part of the code of ++the Library into a program that is not a library. ++ ++ 4. You may copy and distribute the Library (or a portion or ++derivative of it, under Section 2) in object code or executable form ++under the terms of Sections 1 and 2 above provided that you accompany ++it with the complete corresponding machine-readable source code, which ++must be distributed under the terms of Sections 1 and 2 above on a ++medium customarily used for software interchange. ++ ++ If distribution of object code is made by offering access to copy ++from a designated place, then offering equivalent access to copy the ++source code from the same place satisfies the requirement to ++distribute the source code, even though third parties are not ++compelled to copy the source along with the object code. ++ ++ 5. A program that contains no derivative of any portion of the ++Library, but is designed to work with the Library by being compiled or ++linked with it, is called a "work that uses the Library". Such a ++work, in isolation, is not a derivative work of the Library, and ++therefore falls outside the scope of this License. ++ ++ However, linking a "work that uses the Library" with the Library ++creates an executable that is a derivative of the Library (because it ++contains portions of the Library), rather than a "work that uses the ++library". The executable is therefore covered by this License. ++Section 6 states terms for distribution of such executables. ++ ++ When a "work that uses the Library" uses material from a header file ++that is part of the Library, the object code for the work may be a ++derivative work of the Library even though the source code is not. ++Whether this is true is especially significant if the work can be ++linked without the Library, or if the work is itself a library. The ++threshold for this to be true is not precisely defined by law. ++ ++ If such an object file uses only numerical parameters, data ++structure layouts and accessors, and small macros and small inline ++functions (ten lines or less in length), then the use of the object ++file is unrestricted, regardless of whether it is legally a derivative ++work. (Executables containing this object code plus portions of the ++Library will still fall under Section 6.) ++ ++ Otherwise, if the work is a derivative of the Library, you may ++distribute the object code for the work under the terms of Section 6. ++Any executables containing that work also fall under Section 6, ++whether or not they are linked directly with the Library itself. ++ ++ 6. As an exception to the Sections above, you may also combine or ++link a "work that uses the Library" with the Library to produce a ++work containing portions of the Library, and distribute that work ++under terms of your choice, provided that the terms permit ++modification of the work for the customer's own use and reverse ++engineering for debugging such modifications. ++ ++ You must give prominent notice with each copy of the work that the ++Library is used in it and that the Library and its use are covered by ++this License. You must supply a copy of this License. If the work ++during execution displays copyright notices, you must include the ++copyright notice for the Library among them, as well as a reference ++directing the user to the copy of this License. Also, you must do one ++of these things: ++ ++ a) Accompany the work with the complete corresponding ++ machine-readable source code for the Library including whatever ++ changes were used in the work (which must be distributed under ++ Sections 1 and 2 above); and, if the work is an executable linked ++ with the Library, with the complete machine-readable "work that ++ uses the Library", as object code and/or source code, so that the ++ user can modify the Library and then relink to produce a modified ++ executable containing the modified Library. (It is understood ++ that the user who changes the contents of definitions files in the ++ Library will not necessarily be able to recompile the application ++ to use the modified definitions.) ++ ++ b) Use a suitable shared library mechanism for linking with the ++ Library. A suitable mechanism is one that (1) uses at run time a ++ copy of the library already present on the user's computer system, ++ rather than copying library functions into the executable, and (2) ++ will operate properly with a modified version of the library, if ++ the user installs one, as long as the modified version is ++ interface-compatible with the version that the work was made with. ++ ++ c) Accompany the work with a written offer, valid for at ++ least three years, to give the same user the materials ++ specified in Subsection 6a, above, for a charge no more ++ than the cost of performing this distribution. ++ ++ d) If distribution of the work is made by offering access to copy ++ from a designated place, offer equivalent access to copy the above ++ specified materials from the same place. ++ ++ e) Verify that the user has already received a copy of these ++ materials or that you have already sent this user a copy. ++ ++ For an executable, the required form of the "work that uses the ++Library" must include any data and utility programs needed for ++reproducing the executable from it. However, as a special exception, ++the materials to be distributed need not include anything that is ++normally distributed (in either source or binary form) with the major ++components (compiler, kernel, and so on) of the operating system on ++which the executable runs, unless that component itself accompanies ++the executable. ++ ++ It may happen that this requirement contradicts the license ++restrictions of other proprietary libraries that do not normally ++accompany the operating system. Such a contradiction means you cannot ++use both them and the Library together in an executable that you ++distribute. ++ ++ 7. You may place library facilities that are a work based on the ++Library side-by-side in a single library together with other library ++facilities not covered by this License, and distribute such a combined ++library, provided that the separate distribution of the work based on ++the Library and of the other library facilities is otherwise ++permitted, and provided that you do these two things: ++ ++ a) Accompany the combined library with a copy of the same work ++ based on the Library, uncombined with any other library ++ facilities. This must be distributed under the terms of the ++ Sections above. ++ ++ b) Give prominent notice with the combined library of the fact ++ that part of it is a work based on the Library, and explaining ++ where to find the accompanying uncombined form of the same work. ++ ++ 8. You may not copy, modify, sublicense, link with, or distribute ++the Library except as expressly provided under this License. Any ++attempt otherwise to copy, modify, sublicense, link with, or ++distribute the Library is void, and will automatically terminate your ++rights under this License. However, parties who have received copies, ++or rights, from you under this License will not have their licenses ++terminated so long as such parties remain in full compliance. ++ ++ 9. You are not required to accept this License, since you have not ++signed it. However, nothing else grants you permission to modify or ++distribute the Library or its derivative works. These actions are ++prohibited by law if you do not accept this License. Therefore, by ++modifying or distributing the Library (or any work based on the ++Library), you indicate your acceptance of this License to do so, and ++all its terms and conditions for copying, distributing or modifying ++the Library or works based on it. ++ ++ 10. Each time you redistribute the Library (or any work based on the ++Library), the recipient automatically receives a license from the ++original licensor to copy, distribute, link with or modify the Library ++subject to these terms and conditions. You may not impose any further ++restrictions on the recipients' exercise of the rights granted herein. ++You are not responsible for enforcing compliance by third parties with ++this License. ++ ++ 11. If, as a consequence of a court judgment or allegation of patent ++infringement or for any other reason (not limited to patent issues), ++conditions are imposed on you (whether by court order, agreement or ++otherwise) that contradict the conditions of this License, they do not ++excuse you from the conditions of this License. If you cannot ++distribute so as to satisfy simultaneously your obligations under this ++License and any other pertinent obligations, then as a consequence you ++may not distribute the Library at all. For example, if a patent ++license would not permit royalty-free redistribution of the Library by ++all those who receive copies directly or indirectly through you, then ++the only way you could satisfy both it and this License would be to ++refrain entirely from distribution of the Library. ++ ++If any portion of this section is held invalid or unenforceable under any ++particular circumstance, the balance of the section is intended to apply, ++and the section as a whole is intended to apply in other circumstances. ++ ++It is not the purpose of this section to induce you to infringe any ++patents or other property right claims or to contest validity of any ++such claims; this section has the sole purpose of protecting the ++integrity of the free software distribution system which is ++implemented by public license practices. Many people have made ++generous contributions to the wide range of software distributed ++through that system in reliance on consistent application of that ++system; it is up to the author/donor to decide if he or she is willing ++to distribute software through any other system and a licensee cannot ++impose that choice. ++ ++This section is intended to make thoroughly clear what is believed to ++be a consequence of the rest of this License. ++ ++ 12. If the distribution and/or use of the Library is restricted in ++certain countries either by patents or by copyrighted interfaces, the ++original copyright holder who places the Library under this License may add ++an explicit geographical distribution limitation excluding those countries, ++so that distribution is permitted only in or among countries not thus ++excluded. In such case, this License incorporates the limitation as if ++written in the body of this License. ++ ++ 13. The Free Software Foundation may publish revised and/or new ++versions of the Lesser General Public License from time to time. ++Such new versions will be similar in spirit to the present version, ++but may differ in detail to address new problems or concerns. ++ ++Each version is given a distinguishing version number. If the Library ++specifies a version number of this License which applies to it and ++"any later version", you have the option of following the terms and ++conditions either of that version or of any later version published by ++the Free Software Foundation. If the Library does not specify a ++license version number, you may choose any version ever published by ++the Free Software Foundation. ++ ++ 14. If you wish to incorporate parts of the Library into other free ++programs whose distribution conditions are incompatible with these, ++write to the author to ask for permission. For software which is ++copyrighted by the Free Software Foundation, write to the Free ++Software Foundation; we sometimes make exceptions for this. Our ++decision will be guided by the two goals of preserving the free status ++of all derivatives of our free software and of promoting the sharing ++and reuse of software generally. ++ ++ NO WARRANTY ++ ++ 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO ++WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. ++EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR ++OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY ++KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE ++IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR ++PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE ++LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME ++THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. ++ ++ 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN ++WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY ++AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU ++FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR ++CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE ++LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING ++RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A ++FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF ++SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH ++DAMAGES. ++ ++ END OF TERMS AND CONDITIONS ++ ++ How to Apply These Terms to Your New Libraries ++ ++ If you develop a new library, and you want it to be of the greatest ++possible use to the public, we recommend making it free software that ++everyone can redistribute and change. You can do so by permitting ++redistribution under these terms (or, alternatively, under the terms of the ++ordinary General Public License). ++ ++ To apply these terms, attach the following notices to the library. It is ++safest to attach them to the start of each source file to most effectively ++convey the exclusion of warranty; and each file should have at least the ++"copyright" line and a pointer to where the full notice is found. ++ ++ ++ Copyright (C) ++ ++ This library 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. ++ ++ This library 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 this library; if not, write to the Free Software ++ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA ++ ++Also add information on how to contact you by electronic and paper mail. ++ ++You should also get your employer (if you work as a programmer) or your ++school, if any, to sign a "copyright disclaimer" for the library, if ++necessary. Here is a sample; alter the names: ++ ++ Yoyodyne, Inc., hereby disclaims all copyright interest in the ++ library `Frob' (a library for tweaking knobs) written by James Random Hacker. ++ ++ , 1 April 1990 ++ Ty Coon, President of Vice ++ ++That's all there is to it! ++ ++ +diff --git dom/media/platforms/ffmpeg/ffmpeg58/include/libavcodec/avcodec.h dom/media/platforms/ffmpeg/ffmpeg58/include/libavcodec/avcodec.h +new file mode 100644 +index 000000000000..fb0c6fae70b3 +--- /dev/null ++++ dom/media/platforms/ffmpeg/ffmpeg58/include/libavcodec/avcodec.h +@@ -0,0 +1,6146 @@ ++/* ++ * copyright (c) 2001 Fabrice Bellard ++ * ++ * 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 AVCODEC_AVCODEC_H ++#define AVCODEC_AVCODEC_H ++ ++/** ++ * @file ++ * @ingroup libavc ++ * Libavcodec external API header ++ */ ++ ++#include ++#include "libavutil/samplefmt.h" ++#include "libavutil/attributes.h" ++#include "libavutil/avutil.h" ++#include "libavutil/buffer.h" ++#include "libavutil/cpu.h" ++#include "libavutil/channel_layout.h" ++#include "libavutil/dict.h" ++#include "libavutil/frame.h" ++#include "libavutil/hwcontext.h" ++#include "libavutil/log.h" ++#include "libavutil/pixfmt.h" ++#include "libavutil/rational.h" ++ ++#include "version.h" ++ ++/** ++ * @defgroup libavc libavcodec ++ * Encoding/Decoding Library ++ * ++ * @{ ++ * ++ * @defgroup lavc_decoding Decoding ++ * @{ ++ * @} ++ * ++ * @defgroup lavc_encoding Encoding ++ * @{ ++ * @} ++ * ++ * @defgroup lavc_codec Codecs ++ * @{ ++ * @defgroup lavc_codec_native Native Codecs ++ * @{ ++ * @} ++ * @defgroup lavc_codec_wrappers External library wrappers ++ * @{ ++ * @} ++ * @defgroup lavc_codec_hwaccel Hardware Accelerators bridge ++ * @{ ++ * @} ++ * @} ++ * @defgroup lavc_internal Internal ++ * @{ ++ * @} ++ * @} ++ */ ++ ++/** ++ * @ingroup libavc ++ * @defgroup lavc_encdec send/receive encoding and decoding API overview ++ * @{ ++ * ++ * The avcodec_send_packet()/avcodec_receive_frame()/avcodec_send_frame()/ ++ * avcodec_receive_packet() functions provide an encode/decode API, which ++ * decouples input and output. ++ * ++ * The API is very similar for encoding/decoding and audio/video, and works as ++ * follows: ++ * - Set up and open the AVCodecContext as usual. ++ * - Send valid input: ++ * - For decoding, call avcodec_send_packet() to give the decoder raw ++ * compressed data in an AVPacket. ++ * - For encoding, call avcodec_send_frame() to give the encoder an AVFrame ++ * containing uncompressed audio or video. ++ * In both cases, it is recommended that AVPackets and AVFrames are ++ * refcounted, or libavcodec might have to copy the input data. (libavformat ++ * always returns refcounted AVPackets, and av_frame_get_buffer() allocates ++ * refcounted AVFrames.) ++ * - Receive output in a loop. Periodically call one of the avcodec_receive_*() ++ * functions and process their output: ++ * - For decoding, call avcodec_receive_frame(). On success, it will return ++ * an AVFrame containing uncompressed audio or video data. ++ * - For encoding, call avcodec_receive_packet(). On success, it will return ++ * an AVPacket with a compressed frame. ++ * Repeat this call until it returns AVERROR(EAGAIN) or an error. The ++ * AVERROR(EAGAIN) return value means that new input data is required to ++ * return new output. In this case, continue with sending input. For each ++ * input frame/packet, the codec will typically return 1 output frame/packet, ++ * but it can also be 0 or more than 1. ++ * ++ * At the beginning of decoding or encoding, the codec might accept multiple ++ * input frames/packets without returning a frame, until its internal buffers ++ * are filled. This situation is handled transparently if you follow the steps ++ * outlined above. ++ * ++ * In theory, sending input can result in EAGAIN - this should happen only if ++ * not all output was received. You can use this to structure alternative decode ++ * or encode loops other than the one suggested above. For example, you could ++ * try sending new input on each iteration, and try to receive output if that ++ * returns EAGAIN. ++ * ++ * End of stream situations. These require "flushing" (aka draining) the codec, ++ * as the codec might buffer multiple frames or packets internally for ++ * performance or out of necessity (consider B-frames). ++ * This is handled as follows: ++ * - Instead of valid input, send NULL to the avcodec_send_packet() (decoding) ++ * or avcodec_send_frame() (encoding) functions. This will enter draining ++ * mode. ++ * - Call avcodec_receive_frame() (decoding) or avcodec_receive_packet() ++ * (encoding) in a loop until AVERROR_EOF is returned. The functions will ++ * not return AVERROR(EAGAIN), unless you forgot to enter draining mode. ++ * - Before decoding can be resumed again, the codec has to be reset with ++ * avcodec_flush_buffers(). ++ * ++ * Using the API as outlined above is highly recommended. But it is also ++ * possible to call functions outside of this rigid schema. For example, you can ++ * call avcodec_send_packet() repeatedly without calling ++ * avcodec_receive_frame(). In this case, avcodec_send_packet() will succeed ++ * until the codec's internal buffer has been filled up (which is typically of ++ * size 1 per output frame, after initial input), and then reject input with ++ * AVERROR(EAGAIN). Once it starts rejecting input, you have no choice but to ++ * read at least some output. ++ * ++ * Not all codecs will follow a rigid and predictable dataflow; the only ++ * guarantee is that an AVERROR(EAGAIN) return value on a send/receive call on ++ * one end implies that a receive/send call on the other end will succeed, or ++ * at least will not fail with AVERROR(EAGAIN). In general, no codec will ++ * permit unlimited buffering of input or output. ++ * ++ * This API replaces the following legacy functions: ++ * - avcodec_decode_video2() and avcodec_decode_audio4(): ++ * Use avcodec_send_packet() to feed input to the decoder, then use ++ * avcodec_receive_frame() to receive decoded frames after each packet. ++ * Unlike with the old video decoding API, multiple frames might result from ++ * a packet. For audio, splitting the input packet into frames by partially ++ * decoding packets becomes transparent to the API user. You never need to ++ * feed an AVPacket to the API twice (unless it is rejected with AVERROR(EAGAIN) - then ++ * no data was read from the packet). ++ * Additionally, sending a flush/draining packet is required only once. ++ * - avcodec_encode_video2()/avcodec_encode_audio2(): ++ * Use avcodec_send_frame() to feed input to the encoder, then use ++ * avcodec_receive_packet() to receive encoded packets. ++ * Providing user-allocated buffers for avcodec_receive_packet() is not ++ * possible. ++ * - The new API does not handle subtitles yet. ++ * ++ * Mixing new and old function calls on the same AVCodecContext is not allowed, ++ * and will result in undefined behavior. ++ * ++ * Some codecs might require using the new API; using the old API will return ++ * an error when calling it. All codecs support the new API. ++ * ++ * A codec is not allowed to return AVERROR(EAGAIN) for both sending and receiving. This ++ * would be an invalid state, which could put the codec user into an endless ++ * loop. The API has no concept of time either: it cannot happen that trying to ++ * do avcodec_send_packet() results in AVERROR(EAGAIN), but a repeated call 1 second ++ * later accepts the packet (with no other receive/flush API calls involved). ++ * The API is a strict state machine, and the passage of time is not supposed ++ * to influence it. Some timing-dependent behavior might still be deemed ++ * acceptable in certain cases. But it must never result in both send/receive ++ * returning EAGAIN at the same time at any point. It must also absolutely be ++ * avoided that the current state is "unstable" and can "flip-flop" between ++ * the send/receive APIs allowing progress. For example, it's not allowed that ++ * the codec randomly decides that it actually wants to consume a packet now ++ * instead of returning a frame, after it just returned AVERROR(EAGAIN) on an ++ * avcodec_send_packet() call. ++ * @} ++ */ ++ ++/** ++ * @defgroup lavc_core Core functions/structures. ++ * @ingroup libavc ++ * ++ * Basic definitions, functions for querying libavcodec capabilities, ++ * allocating core structures, etc. ++ * @{ ++ */ ++ ++ ++/** ++ * Identify the syntax and semantics of the bitstream. ++ * The principle is roughly: ++ * Two decoders with the same ID can decode the same streams. ++ * Two encoders with the same ID can encode compatible streams. ++ * There may be slight deviations from the principle due to implementation ++ * details. ++ * ++ * If you add a codec ID to this list, add it so that ++ * 1. no value of an existing codec ID changes (that would break ABI), ++ * 2. it is as close as possible to similar codecs ++ * ++ * After adding new codec IDs, do not forget to add an entry to the codec ++ * descriptor list and bump libavcodec minor version. ++ */ ++enum AVCodecID { ++ AV_CODEC_ID_NONE, ++ ++ /* video codecs */ ++ AV_CODEC_ID_MPEG1VIDEO, ++ AV_CODEC_ID_MPEG2VIDEO, ///< preferred ID for MPEG-1/2 video decoding ++ AV_CODEC_ID_H261, ++ AV_CODEC_ID_H263, ++ AV_CODEC_ID_RV10, ++ AV_CODEC_ID_RV20, ++ AV_CODEC_ID_MJPEG, ++ AV_CODEC_ID_MJPEGB, ++ AV_CODEC_ID_LJPEG, ++ AV_CODEC_ID_SP5X, ++ AV_CODEC_ID_JPEGLS, ++ AV_CODEC_ID_MPEG4, ++ AV_CODEC_ID_RAWVIDEO, ++ AV_CODEC_ID_MSMPEG4V1, ++ AV_CODEC_ID_MSMPEG4V2, ++ AV_CODEC_ID_MSMPEG4V3, ++ AV_CODEC_ID_WMV1, ++ AV_CODEC_ID_WMV2, ++ AV_CODEC_ID_H263P, ++ AV_CODEC_ID_H263I, ++ AV_CODEC_ID_FLV1, ++ AV_CODEC_ID_SVQ1, ++ AV_CODEC_ID_SVQ3, ++ AV_CODEC_ID_DVVIDEO, ++ AV_CODEC_ID_HUFFYUV, ++ AV_CODEC_ID_CYUV, ++ AV_CODEC_ID_H264, ++ AV_CODEC_ID_INDEO3, ++ AV_CODEC_ID_VP3, ++ AV_CODEC_ID_THEORA, ++ AV_CODEC_ID_ASV1, ++ AV_CODEC_ID_ASV2, ++ AV_CODEC_ID_FFV1, ++ AV_CODEC_ID_4XM, ++ AV_CODEC_ID_VCR1, ++ AV_CODEC_ID_CLJR, ++ AV_CODEC_ID_MDEC, ++ AV_CODEC_ID_ROQ, ++ AV_CODEC_ID_INTERPLAY_VIDEO, ++ AV_CODEC_ID_XAN_WC3, ++ AV_CODEC_ID_XAN_WC4, ++ AV_CODEC_ID_RPZA, ++ AV_CODEC_ID_CINEPAK, ++ AV_CODEC_ID_WS_VQA, ++ AV_CODEC_ID_MSRLE, ++ AV_CODEC_ID_MSVIDEO1, ++ AV_CODEC_ID_IDCIN, ++ AV_CODEC_ID_8BPS, ++ AV_CODEC_ID_SMC, ++ AV_CODEC_ID_FLIC, ++ AV_CODEC_ID_TRUEMOTION1, ++ AV_CODEC_ID_VMDVIDEO, ++ AV_CODEC_ID_MSZH, ++ AV_CODEC_ID_ZLIB, ++ AV_CODEC_ID_QTRLE, ++ AV_CODEC_ID_TSCC, ++ AV_CODEC_ID_ULTI, ++ AV_CODEC_ID_QDRAW, ++ AV_CODEC_ID_VIXL, ++ AV_CODEC_ID_QPEG, ++ AV_CODEC_ID_PNG, ++ AV_CODEC_ID_PPM, ++ AV_CODEC_ID_PBM, ++ AV_CODEC_ID_PGM, ++ AV_CODEC_ID_PGMYUV, ++ AV_CODEC_ID_PAM, ++ AV_CODEC_ID_FFVHUFF, ++ AV_CODEC_ID_RV30, ++ AV_CODEC_ID_RV40, ++ AV_CODEC_ID_VC1, ++ AV_CODEC_ID_WMV3, ++ AV_CODEC_ID_LOCO, ++ AV_CODEC_ID_WNV1, ++ AV_CODEC_ID_AASC, ++ AV_CODEC_ID_INDEO2, ++ AV_CODEC_ID_FRAPS, ++ AV_CODEC_ID_TRUEMOTION2, ++ AV_CODEC_ID_BMP, ++ AV_CODEC_ID_CSCD, ++ AV_CODEC_ID_MMVIDEO, ++ AV_CODEC_ID_ZMBV, ++ AV_CODEC_ID_AVS, ++ AV_CODEC_ID_SMACKVIDEO, ++ AV_CODEC_ID_NUV, ++ AV_CODEC_ID_KMVC, ++ AV_CODEC_ID_FLASHSV, ++ AV_CODEC_ID_CAVS, ++ AV_CODEC_ID_JPEG2000, ++ AV_CODEC_ID_VMNC, ++ AV_CODEC_ID_VP5, ++ AV_CODEC_ID_VP6, ++ AV_CODEC_ID_VP6F, ++ AV_CODEC_ID_TARGA, ++ AV_CODEC_ID_DSICINVIDEO, ++ AV_CODEC_ID_TIERTEXSEQVIDEO, ++ AV_CODEC_ID_TIFF, ++ AV_CODEC_ID_GIF, ++ AV_CODEC_ID_DXA, ++ AV_CODEC_ID_DNXHD, ++ AV_CODEC_ID_THP, *** DIFF OUTPUT TRUNCATED AT 1000 LINES ***