diff -Nru ffmpeg-2.5/arch.mak ffmpeg-0.10.12/arch.mak --- ffmpeg-2.5/arch.mak 2014-12-01 00:21:37.000000000 +0000 +++ ffmpeg-0.10.12/arch.mak 1970-01-01 00:00:00.000000000 +0000 @@ -1,15 +0,0 @@ -OBJS-$(HAVE_ARMV5TE) += $(ARMV5TE-OBJS) $(ARMV5TE-OBJS-yes) -OBJS-$(HAVE_ARMV6) += $(ARMV6-OBJS) $(ARMV6-OBJS-yes) -OBJS-$(HAVE_ARMV8) += $(ARMV8-OBJS) $(ARMV8-OBJS-yes) -OBJS-$(HAVE_VFP) += $(VFP-OBJS) $(VFP-OBJS-yes) -OBJS-$(HAVE_NEON) += $(NEON-OBJS) $(NEON-OBJS-yes) - -OBJS-$(HAVE_MIPSFPU) += $(MIPSFPU-OBJS) $(MIPSFPU-OBJS-yes) -OBJS-$(HAVE_MIPS32R2) += $(MIPS32R2-OBJS) $(MIPS32R2-OBJS-yes) -OBJS-$(HAVE_MIPSDSPR1) += $(MIPSDSPR1-OBJS) $(MIPSDSPR1-OBJS-yes) -OBJS-$(HAVE_MIPSDSPR2) += $(MIPSDSPR2-OBJS) $(MIPSDSPR2-OBJS-yes) - -OBJS-$(HAVE_ALTIVEC) += $(ALTIVEC-OBJS) $(ALTIVEC-OBJS-yes) - -OBJS-$(HAVE_MMX) += $(MMX-OBJS) $(MMX-OBJS-yes) -OBJS-$(HAVE_YASM) += $(YASM-OBJS) $(YASM-OBJS-yes) diff -Nru ffmpeg-2.5/Changelog ffmpeg-0.10.12/Changelog --- ffmpeg-2.5/Changelog 2014-12-04 01:17:42.000000000 +0000 +++ ffmpeg-0.10.12/Changelog 2014-03-10 19:10:11.000000000 +0000 @@ -1,428 +1,302 @@ Entries are sorted chronologically from oldest to youngest within each release, releases are sorted from youngest to oldest. -version 2.5: -- HEVC/H.265 RTP payload format (draft v6) packetizer -- SUP/PGS subtitle demuxer -- ffprobe -show_pixel_formats option -- CAST128 symmetric block cipher, ECB mode -- STL subtitle demuxer and decoder -- libutvideo YUV 4:2:2 10bit support -- XCB-based screen-grabber -- UDP-Lite support (RFC 3828) -- xBR scaling filter -- AVFoundation screen capturing support -- ffserver supports codec private options -- creating DASH compatible fragmented MP4, MPEG-DASH segmenting muxer -- WebP muxer with animated WebP support -- zygoaudio decoding support -- APNG demuxer -- postproc visualization support - - -version 2.4: -- Icecast protocol -- ported lenscorrection filter from frei0r filter -- large optimizations in dctdnoiz to make it usable -- ICY metadata are now requested by default with the HTTP protocol -- support for using metadata in stream specifiers in fftools -- LZMA compression support in TIFF decoder -- support for H.261 RTP payload format (RFC 4587) -- HEVC/H.265 RTP payload format (draft v6) depacketizer -- added codecview filter to visualize information exported by some codecs -- Matroska 3D support thorugh side data -- HTML generation using texi2html is deprecated in favor of makeinfo/texi2any -- silenceremove filter - - -version 2.3: -- AC3 fixed-point decoding -- shuffleplanes filter -- subfile protocol -- Phantom Cine demuxer -- replaygain data export -- VP7 video decoder -- Alias PIX image encoder and decoder -- Improvements to the BRender PIX image decoder -- Improvements to the XBM decoder -- QTKit input device -- improvements to OpenEXR image decoder -- support decoding 16-bit RLE SGI images -- GDI screen grabbing for Windows -- alternative rendition support for HTTP Live Streaming -- AVFoundation input device -- Direct Stream Digital (DSD) decoder -- Magic Lantern Video (MLV) demuxer -- On2 AVC (Audio for Video) decoder -- support for decoding through DXVA2 in ffmpeg -- libbs2b-based stereo-to-binaural audio filter -- libx264 reference frames count limiting depending on level -- native Opus decoder -- display matrix export and rotation API -- WebVTT encoder -- showcqt multimedia filter -- zoompan filter -- signalstats filter -- hqx filter (hq2x, hq3x, hq4x) -- flanger filter -- Image format auto-detection -- LRC demuxer and muxer -- Samba protocol (via libsmbclient) -- WebM DASH Manifest muxer -- libfribidi support in drawtext - - -version 2.2: - -- HNM version 4 demuxer and video decoder -- Live HDS muxer -- setsar/setdar filters now support variables in ratio expressions -- elbg filter -- string validation in ffprobe -- support for decoding through VDPAU in ffmpeg (the -hwaccel option) -- complete Voxware MetaSound decoder -- remove mp3_header_compress bitstream filter -- Windows resource files for shared libraries -- aeval filter -- stereoscopic 3d metadata handling -- WebP encoding via libwebp -- ATRAC3+ decoder -- VP8 in Ogg demuxing -- side & metadata support in NUT -- framepack filter -- XYZ12 rawvideo support in NUT -- Exif metadata support in WebP decoder -- OpenGL device -- Use metadata_header_padding to control padding in ID3 tags (currently used in - MP3, AIFF, and OMA files), FLAC header, and the AVI "junk" block. -- Mirillis FIC video decoder -- Support DNx444 -- libx265 encoder -- dejudder filter -- Autodetect VDA like all other hardware accelerations -- aliases and defaults for Ogg subtypes (opus, spx) - - -version 2.1: - -- aecho filter -- perspective filter ported from libmpcodecs -- ffprobe -show_programs option -- compand filter -- RTMP seek support -- when transcoding with ffmpeg (i.e. not streamcopying), -ss is now accurate - even when used as an input option. Previous behavior can be restored with - the -noaccurate_seek option. -- ffmpeg -t option can now be used for inputs, to limit the duration of - data read from an input file -- incomplete Voxware MetaSound decoder -- read EXIF metadata from JPEG -- DVB teletext decoder -- phase filter ported from libmpcodecs -- w3fdif filter -- Opus support in Matroska -- FFV1 version 1.3 is stable and no longer experimental -- FFV1: YUVA(444,422,420) 9, 10 and 16 bit support -- changed DTS stream id in lavf mpeg ps muxer from 0x8a to 0x88, to be - more consistent with other muxers. -- adelay filter -- pullup filter ported from libmpcodecs -- ffprobe -read_intervals option -- Lossless and alpha support for WebP decoder -- Error Resilient AAC syntax (ER AAC LC) decoding -- Low Delay AAC (ER AAC LD) decoding -- mux chapters in ASF files -- SFTP protocol (via libssh) -- libx264: add ability to encode in YUVJ422P and YUVJ444P -- Fraps: use BT.709 colorspace by default for yuv, as reference fraps decoder does -- make decoding alpha optional for prores, ffv1 and vp6 by setting - the skip_alpha flag. -- ladspa wrapper filter -- native VP9 decoder -- dpx parser -- max_error_rate parameter in ffmpeg -- PulseAudio output device -- ReplayGain scanner -- Enhanced Low Delay AAC (ER AAC ELD) decoding (no LD SBR support) -- Linux framebuffer output device -- HEVC decoder -- raw HEVC, HEVC in MOV/MP4, HEVC in Matroska, HEVC in MPEG-TS demuxing -- mergeplanes filter - - -version 2.0: - -- curves filter -- reference-counting for AVFrame and AVPacket data -- ffmpeg now fails when input options are used for output file - or vice versa -- support for Monkey's Audio versions from 3.93 -- perms and aperms filters -- audio filtering support in ffplay -- 10% faster aac encoding on x86 and MIPS -- sine audio filter source -- WebP demuxing and decoding support -- ffmpeg options -filter_script and -filter_complex_script, which allow a - filtergraph description to be read from a file -- OpenCL support -- audio phaser filter -- separatefields filter -- libquvi demuxer -- uniform options syntax across all filters -- telecine filter -- interlace filter -- smptehdbars source -- inverse telecine filters (fieldmatch and decimate) -- colorbalance filter -- colorchannelmixer filter -- The matroska demuxer can now output proper verbatim ASS packets. It will - become the default at the next libavformat major bump. -- decent native animated GIF encoding -- asetrate filter -- interleave filter -- timeline editing with filters -- vidstabdetect and vidstabtransform filters for video stabilization using - the vid.stab library -- astats filter -- trim and atrim filters -- ffmpeg -t and -ss (output-only) options are now sample-accurate when - transcoding audio -- Matroska muxer can now put the index at the beginning of the file. -- extractplanes filter -- avectorscope filter -- ADPCM DTK decoder -- ADP demuxer -- RSD demuxer -- RedSpark demuxer -- ADPCM IMA Radical decoder -- zmq filters -- DCT denoiser filter (dctdnoiz) -- Wavelet denoiser filter ported from libmpcodecs as owdenoise (formerly "ow") -- Apple Intermediate Codec decoder -- Escape 130 video decoder -- FTP protocol support -- V4L2 output device -- 3D LUT filter (lut3d) -- SMPTE 302M audio encoder -- support for slice multithreading in libavfilter -- Hald CLUT support (generation and filtering) -- VC-1 interlaced B-frame support -- support for WavPack muxing (raw and in Matroska) -- XVideo output device -- vignette filter -- True Audio (TTA) encoder -- Go2Webinar decoder -- mcdeint filter ported from libmpcodecs -- sab filter ported from libmpcodecs -- ffprobe -show_chapters option -- WavPack encoding through libwavpack -- rotate filter -- spp filter ported from libmpcodecs -- libgme support -- psnr filter - - -version 1.2: - -- VDPAU hardware acceleration through normal hwaccel -- SRTP support -- Error diffusion dither in Swscale -- Chained Ogg support -- Theora Midstream reconfiguration support -- EVRC decoder -- audio fade filter -- filtering audio with unknown channel layout -- allpass, bass, bandpass, bandreject, biquad, equalizer, highpass, lowpass - and treble audio filter -- improved showspectrum filter, with multichannel support and sox-like colors -- histogram filter -- tee muxer -- il filter ported from libmpcodecs -- support ID3v2 tags in ASF files -- encrypted TTA stream decoding support -- RF64 support in WAV muxer -- noise filter ported from libmpcodecs -- Subtitles character encoding conversion -- blend filter -- stereo3d filter ported from libmpcodecs - - -version 1.1: - -- stream disposition information printing in ffprobe -- filter for loudness analysis following EBU R128 -- Opus encoder using libopus -- ffprobe -select_streams option -- Pinnacle TARGA CineWave YUV16 decoder -- TAK demuxer, decoder and parser -- DTS-HD demuxer -- remove -same_quant, it hasn't worked for years -- FFM2 support -- X-Face image encoder and decoder -- 24-bit FLAC encoding -- multi-channel ALAC encoding up to 7.1 -- metadata (INFO tag) support in WAV muxer -- subtitles raw text decoder -- support for building DLLs using MSVC -- LVF demuxer -- ffescape tool -- metadata (info chunk) support in CAF muxer -- field filter ported from libmpcodecs -- AVR demuxer -- geq filter ported from libmpcodecs -- remove ffserver daemon mode -- AST muxer/demuxer -- new expansion syntax for drawtext -- BRender PIX image decoder -- ffprobe -show_entries option -- ffprobe -sections option -- ADPCM IMA Dialogic decoder -- BRSTM demuxer -- animated GIF decoder and demuxer -- PVF demuxer -- subtitles filter -- IRCAM muxer/demuxer -- Paris Audio File demuxer -- Virtual concatenation demuxer -- VobSub demuxer -- JSON captions for TED talks decoding support -- SOX Resampler support in libswresample -- aselect filter -- SGI RLE 8-bit / Silicon Graphics RLE 8-bit video decoder -- Silicon Graphics Motion Video Compressor 1 & 2 decoder -- Silicon Graphics Movie demuxer -- apad filter -- Resolution & pixel format change support with multithreading for H.264 -- documentation split into per-component manuals -- pp (postproc) filter ported from MPlayer -- NIST Sphere demuxer -- MPL2, VPlayer, MPlayer, AQTitle, PJS and SubViewer v1 subtitles demuxers and decoders -- Sony Wave64 muxer -- adobe and limelight publisher authentication in RTMP -- data: URI scheme -- support building on the Plan 9 operating system -- kerndeint filter ported from MPlayer -- histeq filter ported from VirtualDub -- Megalux Frame demuxer -- 012v decoder -- Improved AVC Intra decoding support - - -version 1.0: - -- INI and flat output in ffprobe -- Scene detection in libavfilter -- Indeo Audio decoder -- channelsplit audio filter -- setnsamples audio filter -- atempo filter -- ffprobe -show_data option -- RTMPT protocol support -- iLBC encoding/decoding via libilbc -- Microsoft Screen 1 decoder -- join audio filter -- audio channel mapping filter -- Microsoft ATC Screen decoder -- RTSP listen mode -- TechSmith Screen Codec 2 decoder -- AAC encoding via libfdk-aac -- Microsoft Expression Encoder Screen decoder -- RTMPS protocol support -- RTMPTS protocol support -- RTMPE protocol support -- RTMPTE protocol support -- showwaves and showspectrum filter -- LucasArts SMUSH SANM playback support -- LucasArts SMUSH VIMA audio decoder (ADPCM) -- LucasArts SMUSH demuxer -- SAMI, RealText and SubViewer demuxers and decoders -- Heart Of Darkness PAF playback support -- iec61883 device -- asettb filter -- new option: -progress -- 3GPP Timed Text encoder/decoder -- GeoTIFF decoder support -- ffmpeg -(no)stdin option -- Opus decoder using libopus -- caca output device using libcaca -- alphaextract and alphamerge filters -- concat filter -- flite filter -- Canopus Lossless Codec decoder -- bitmap subtitles in filters (experimental and temporary) -- MP2 encoding via TwoLAME -- bmp parser -- smptebars source -- asetpts filter -- hue filter -- ICO muxer -- SubRip encoder and decoder without embedded timing -- edge detection filter -- framestep filter -- ffmpeg -shortest option is now per-output file - -pass and -passlogfile are now per-output stream -- volume measurement filter -- Ut Video encoder -- Microsoft Screen 2 decoder -- smartblur filter ported from MPlayer -- CPiA decoder -- decimate filter ported from MPlayer -- RTP depacketization of JPEG -- Smooth Streaming live segmenter muxer -- F4V muxer -- sendcmd and asendcmd filters -- WebVTT demuxer and decoder (simple tags supported) -- RTP packetization of JPEG -- faststart option in the MOV/MP4 muxer -- support for building with MSVC - - -version 0.11: - -- Fixes: CVE-2012-2772, CVE-2012-2774, CVE-2012-2775, CVE-2012-2776, CVE-2012-2777, - CVE-2012-2779, CVE-2012-2782, CVE-2012-2783, CVE-2012-2784, CVE-2012-2785, - CVE-2012-2786, CVE-2012-2787, CVE-2012-2788, CVE-2012-2789, CVE-2012-2790, - CVE-2012-2791, CVE-2012-2792, CVE-2012-2793, CVE-2012-2794, CVE-2012-2795, - CVE-2012-2796, CVE-2012-2797, CVE-2012-2798, CVE-2012-2799, CVE-2012-2800, - CVE-2012-2801, CVE-2012-2802, CVE-2012-2803, CVE-2012-2804, -- v408 Quicktime and Microsoft AYUV Uncompressed 4:4:4:4 encoder and decoder -- setfield filter -- CDXL demuxer and decoder -- Apple ProRes encoder -- ffprobe -count_packets and -count_frames options -- Sun Rasterfile Encoder -- ID3v2 attached pictures reading and writing -- WMA Lossless decoder -- bluray protocol -- blackdetect filter -- libutvideo encoder wrapper (--enable-libutvideo) +version next: + + +version 0.10.11 + +- pthread: Avoid spurious wakeups +- pthread: Fix deadlock during thread initialization +- mpegvideo: Initialize chroma_*_shift and codec_tag even if the size is 0 +- vc1dec: Don't decode slices when the latest slice header failed to decode +- vc1dec: Make sure last_picture is initialized in vc1_decode_skip_blocks +- r3d: Add more input value validation +- fraps: Make the input buffer size checks more strict +- svq3: Avoid a division by zero +- rmdec: Validate the fps value +- twinvqdec: Check the ibps parameter separately +- asfdec: Check the return value of asf_read_stream_properties +- mxfdec: set audio timebase to 1/samplerate +- pcx: Check the packet size before assuming it fits a palette +- rpza: Fix a buffer size check +- xxan: Disallow odd width +- xan: Only read within the data that actually was initialized +- xan: Use bytestream2 to limit reading to within the buffer +- pcx: Consume the whole packet if giving up due to missing palette +- pngdec: Stop trying to decode once inflate returns Z_STREAM_END +- mov: Make sure the read sample count is nonnegative +- bfi: Add some very basic sanity checks for input packet sizes +- bfi: Avoid divisions by zero +- electronicarts: Add more sanity checking for the number of channels +- riffdec: Add sanity checks for the sample rate +- mvi: Add sanity checking for the audio frame size +- xwma: Avoid division by zero +- avidec: Make sure a packet is large enough before reading its data +- vqf: Make sure the bitrate is in the valid range +- vqf: Make sure sample_rate is set to a valid value +- vc1dec: Undo mpegvideo initialization if unable to allocate tables +- vc1dec: Fix leaks in ff_vc1_decode_init_alloc_tables on errors +- wnv1: Make sure the input packet is large enough +- dca: Validate the lfe parameter +- rl2: Avoid a division by zero +- wtv: Add more sanity checks for a length read from the file +- segafilm: Validate the number of audio channels +- qpeg: Add checks for running out of rows in qpeg_decode_inter +- mpegaudiodec: Validate that the number of channels fits at the given offset +- asv1: Verify the amount of extradata +- idroqdec: Make sure a video stream has been allocated before returning packets +- rv10: Validate the dimensions set from the container +- xmv: Add more sanity checks for parameters read from the bitstream +- ffv1: Make sure at least one slice context is initialized +- truemotion2: Use av_freep properly in an error path +- eacmv: Make sure a reference frame exists before referencing it +- mpeg4videodec: Check the width/height in mpeg4_decode_sprite_trajectory +- ivi_common: Make sure color planes have been initialized +- oggparseogm: Convert to use bytestream2 +- rv34: Check the return value from ff_rv34_decode_init +- matroskadec: Verify realaudio codec parameters +- mace: Make sure that the channel count is set to a valid value +- svq3: Check for any negative return value from ff_h264_check_intra_pred_mode +- vp3: Check the framerate for validity +- cavsdec: Make sure a sequence header has been decoded before decoding pictures +- sierravmd: Do sanity checking of frame sizes +- omadec: Properly check lengths before incrementing the position +- mpc8: Make sure the first stream exists before parsing the seek table +- mpc8: Check the seek table size parsed from the bitstream +- zmbvdec: Check the buffer size for uncompressed data +- ape: Don't allow the seektable to be omitted +- shorten: Break out of loop looking for fmt chunk if none is found +- shorten: Use a checked bytestream reader for the wave header +- smacker: Make sure we don't fill in huffman codes out of range +- smacker: Avoid integer overflow when allocating packets +- smacker: Don't return packets in unallocated streams +- dsicin: Add some basic sanity checks for fields read from the file +- roqvideodec: check dimensions validity +- qdm2: check array index before use, fix out of array accesses +- alsdec: check block length + + +version 0.10.10 + +- x86: fft: Remove 3DNow! optimizations, they break FATE +- x86: ac3dsp: Drop mmx variant of ac3_max_msb_abs_int16 +- aac: Check init_get_bits return value +- aac: return meaningful errors +- dsicinav: K&R formatting cosmetics +- mov: Seek back if overreading an individual atom +- vcr1: add sanity checks +- pictordec: pass correct context to avpriv_request_sample +- dsicinav: Clip the source size to the expected maximum +- alsdec: Clean up error paths +- ogg: Fix potential infinite discard loop +- nuv: check rtjpeg_decode_frame_yuv420 return value +- nuv: Reset the frame on resize +- nuv: Use av_fast_realloc +- nuv: return meaningful error codes. +- nuv: Pad the lzo outbuf +- nuv: Do not ignore lzo decompression failures +- oma: correctly mark and decrypt partial packets +- oma: check geob tag boundary +- oma: refactor seek function +- 8bps: Bound-check the input buffer +- rtmp: Do not misuse memcmp +- rtmp: rename data_size to size +- lavc: set the default rc_initial_buffer_occupancy +- 4xm: Reject not a multiple of 16 dimension +- 4xm: do not overread the prestream buffer +- 4xm: validate the buffer size before parsing it +- indeo: Do not reference mismatched tiles +- indeo: Sanitize ff_ivi_init_planes fail paths +- indeo: Bound-check before applying motion compensation +- indeo: Bound-check before applying transform +- indeo: reject negative array indexes +- indeo: Cosmetic formatting +- indeo: Refactor ff_ivi_init_tiles and ivi_decode_blocks +- indeo: Refactor ff_ivi_dec_huff_desc +- lavf: fix the comparison in an overflow check +- dv: Add a guard to not overread the ppcm array +- mpegvideo: Avoid 32-bit wrapping of linesize multiplications +- mjpegb: Detect changing number of planes in interlaced video +- matroskadec: Check that .lang was allocated and set before reading it +- ape demuxer: check for EOF in potentially long loops +- lavf: avoid integer overflow when estimating bitrate +- pictordec: break out of both decoding loops when y drops below 0 +- ac3: Return proper error codes +- ac3: Clean up the error paths +- ac3: Do not clash with normal AVERROR +- dxa: Make sure the reference frame exists +- h261: check the mtype index +- segafilm: Error out on impossible packet size +- ogg: Always alloc the private context in vorbis_header +- vc1: check mb_height validity. +- vc1: check the source buffer in vc1_mc functions +- bink: Bound check the quantization matrix. +- xl: Make sure the width is valid +- alsdec: Fix the clipping range +- dsicinav: Bound-check the source buffer when needed +- mov: Do not allow updating the time scale after it has been set +- ac3dec: Don't consume more data than the actual input packet size +- indeo: Reject impossible FRAMETYPE_NULL +- indeo5: return proper error codes +- indeo4: Validate scantable dimension +- indeo4: Check the quantization matrix index +- indeo4: Do not access missing reference MV +- adpcm: Unbreak ima-dk4 +- ac3dec: validate channel output mode against channel count +- dca: Respect the current limits in the downmixing capabilities +- dca: Error out on missing DSYNC +- pcm: always use codec->id instead of codec_id +- mlpdec: Do not set invalid context in read_restart_header +- pcx: Do not overread source buffer in pcx_rle_decode +- wmavoice: conceal clearly corrupted blocks +- iff: Do not read over the source buffer +- qdm2: Conceal broken samples +- qdm2: refactor joined stereo support +- adpcm: Write the correct number of samples for ima-dk4 +- imc: Catch a division by zero +- atrac3: Error on impossible encoding/channel combinations +- atrac3: set the getbits context the right buffer_end +- atrac3: fix error handling +- qdm2: check and reset dithering index per channel +- westwood_vqa: do not free extradata on error in read_header +- vqavideo: check the version +- rmdec: Use the AVIOContext given as parameter in rm_read_metadata() +- avio: Handle AVERROR_EOF in the same way as the return value 0 +- wtv: Mark attachment with a negative stream id +- avidec: Let the inner dv demuxer take care of discarding +- swfdec: do better validation of tag length + + +version 0.10.8 +- kmvc: Clip pixel position to valid range +- kmvc: use fixed sized arrays in the context +- indeo: use a typedef for the mc function pointer +- lavc: check for overflow in init_get_bits +- mjpegdec: properly report unsupported disabled features +- jpegls: return meaningful errors +- jpegls: factorize return paths +- jpegls: check the scan offset +- wavpack: validate samples size parsed in wavpack_decode_block +- ljpeg: use the correct number of components in yuv +- mjpeg: Validate sampling factors +- mjpegdec: validate parameters in mjpeg_decode_scan_progressive_ac +- wavpack: check packet size early +- wavpack: return meaningful errors +- apetag: use int64_t for filesize +- tiff: do not overread the source buffer +- Prepare for 0.8.8 Release +- smacker: fix an off by one in huff.length computation +- smacker: check the return value of smacker_decode_tree +- smacker: pad the extradata allocation +- smacker: check frame size validity +- vmdav: convert to bytestream2 +- 4xm: don't rely on get_buffer() initializing the frame. +- 4xm: check the return value of read_huffman_tables(). +- 4xm: use the correct logging context +- 4xm: reject frames not compatible with the declared version +- 4xm: check bitstream_size boundary before using it +- 4xm: do not overread the source buffer in decode_p_block +- avfiltergraph: check for sws opts being non-NULL before using them +- bmv: check for len being valid in bmv_decode_frame() +- dfa: check for invalid access in decode_wdlt() +- indeo3: check motion vectors +- indeo3: fix data size check +- indeo3: switch parsing the header to bytestream2 +- lavf: make sure stream probe data gets freed. +- oggdec: fix faulty cleanup prototype +- oma: Validate sample rates +- qdm2: check that the FFT size is a power of 2 +- rv10: check that extradata is large enough +- xmv: check audio track parameters validity +- xmv: do not leak memory in the error paths in xmv_read_header() +- aac: check the maximum number of channels +- indeo3: fix off by one in MV validity check, Bug #503 +- id3v2: check for end of file while unescaping tags +- wav: Always seek to an even offset, Bug #500, LP: #1174737 +- proresdec: support mixed interlaced/non-interlaced content + + +version 0.10.6: + +- many bug fixes that where found with Coverity + +- The following CVE fixes where backported: + CVE-2012-2796, CVE-2012-2775, CVE-2012-2772, CVE-2012-2776, + CVE-2012-2779, CVE-2012-2787, CVE-2012-2794, CVE-2012-2800, + CVE-2012-2802, CVE-2012-2801, CVE-2012-2786, CVE-2012-2798, + CVE-2012-2793, CVE-2012-2789, CVE-2012-2788, CVE-2012-2790, + CVE-2012-2777, CVE-2012-2784 + +- hundreads of other bug fixes, some possibly security relevant, + see the git log for details. + + +version 0.10.5: + +- Several bugs and crashes have been fixed as well as build problems + with recent mingw64 + + +version 0.10.4: + +- Several bugs and crashes have been fixed + Note, CVE-2012-0851 and CVE-2011-3937 have been fixed in previous releases + +version 0.10.3: + +- Security fixes in the 4xm demuxer, avi demuxer, cook decoder, + mm demuxer, mpegvideo decoder, vqavideo decoder (CVE-2012-0947) and + xmv demuxer. + +- Several bugs and crashes have been fixed in the following codecs: AAC, + APE, H.263, H.264, Indeo 4, Mimic, MJPEG, Motion Pixels Video, RAW, + TTA, VC1, VQA, WMA Voice, vqavideo. + +- Several bugs and crashes have been fixed in the following formats: + ASF, ID3v2, MOV, xWMA + +- This release additionally updates the following codecs to the + bytestream2 API, and therefore benefit from additional overflow + checks: truemotion2, utvideo, vqavideo + + +version 0.10.1 +- Several security fixes, many bugfixes affecting many formats and + codecs, the list below is not complete. + - swapuv filter -- bbox filter -- XBM encoder and decoder -- RealAudio Lossless decoder -- ZeroCodec decoder -- tile video filter -- Metal Gear Solid: The Twin Snakes demuxer -- OpenEXR image decoder -- removelogo filter -- drop support for ffmpeg without libavfilter -- drawtext video filter: fontconfig support -- ffmpeg -benchmark_all option -- super2xsai filter ported from libmpcodecs -- add libavresample audio conversion library for compatibility -- MicroDVD decoder -- Avid Meridien (AVUI) encoder and decoder -- accept + prefix to -pix_fmt option to disable automatic conversions. -- complete audio filtering in libavfilter and ffmpeg -- add fps filter -- vorbis parser -- png parser -- audio mix filter -- ffv1: support (draft) version 1.3 +- Several bugs and crashes have been fixed in the following codecs: AAC, + AC-3, ADPCM, AMR (both NB and WB), ATRAC3, CAVC, Cook, camstudio, DCA, + DPCM, DSI CIN, DV, EA TGQ, FLAC, fraps, G.722 (both encoder and + decoder), H.264, huvffyuv, BB JV decoder, Indeo 3, KGV1, LCL, the + libx264 wrapper, MJPEG, mp3on4, Musepack, MPEG1/2, PNG, QDM2, Qt RLE, + ROQ, RV10, RV30/RV34/RV40, shorten, smacker, subrip, SVQ3, TIFF, + Truemotion2, TTA, VC1, VMware Screen codec, Vorbis, VP5, VP6, WMA, + Westwood SNDx, XXAN. + +- This release additionally updates the following codecs to the + bytestream2 API, and therefore benefit from additional overflow + checks: XXAN, ALG MM, TQG, SMC, Qt SMC, ROQ, PNG + +- Several bugs and crashes have been fixed in the following formats: + AIFF, ASF, DV, Matroska, NSV, MOV, MPEG-TS, Smacker, Sony OpenMG, RM, + SWF. + +- Libswscale has an potential overflow for large image size fixed. + +- The following APIs have been added: + + avcodec_is_open() + avformat_get_riff_video_tags() + avformat_get_riff_audio_tags() + + Please see the file doc/APIchanges and the Doxygen documentation for + further information. -version 0.10: +version 0.10: - Fixes: CVE-2011-3929, CVE-2011-3934, CVE-2011-3935, CVE-2011-3936, CVE-2011-3937, CVE-2011-3940, CVE-2011-3941, CVE-2011-3944, CVE-2011-3945, CVE-2011-3946, CVE-2011-3947, CVE-2011-3949, @@ -458,7 +332,6 @@ - ffwavesynth decoder - aviocat tool - ffeval tool -- support encoding and decoding 4-channel SGI images version 0.9: @@ -759,7 +632,7 @@ - LPCM support in MPEG-TS (HDMV RID as found on Blu-ray disks) - WMA Pro decoder - Core Audio Format demuxer -- ATRAC1 decoder +- Atrac1 decoder - MD STUDIO audio demuxer - RF64 support in WAV demuxer - MPEG-4 Audio Lossless Coding (ALS) decoder @@ -859,7 +732,7 @@ - MXF demuxer - VC-1/WMV3/WMV9 video decoder - MacIntel support -- AviSynth support +- AVISynth support - VMware video decoder - VP5 video decoder - VP6 video decoder @@ -887,7 +760,7 @@ - Interplay C93 demuxer and video decoder - Bethsoft VID demuxer and video decoder - CRYO APC demuxer -- ATRAC3 decoder +- Atrac3 decoder - V.Flash PTX decoder - RoQ muxer, RoQ audio encoder - Renderware TXD demuxer and decoder @@ -1164,7 +1037,7 @@ - MPEG-4 vol header fixes (Jonathan Marsden ) - ARM optimizations (Lionel Ulmer ). - Windows porting of file converter -- added MJPEG raw format (input/output) +- added MJPEG raw format (input/ouput) - added JPEG image format support (input/output) diff -Nru ffmpeg-2.5/cmdutils.c ffmpeg-0.10.12/cmdutils.c --- ffmpeg-2.5/cmdutils.c 2014-12-04 00:24:39.000000000 +0000 +++ ffmpeg-0.10.12/cmdutils.c 2014-03-10 19:10:11.000000000 +0000 @@ -20,7 +20,6 @@ */ #include -#include #include #include #include @@ -30,51 +29,43 @@ references to libraries that are not being built. */ #include "config.h" -#include "compat/va_copy.h" #include "libavformat/avformat.h" #include "libavfilter/avfilter.h" #include "libavdevice/avdevice.h" -#include "libavresample/avresample.h" #include "libswscale/swscale.h" #include "libswresample/swresample.h" +#if CONFIG_POSTPROC #include "libpostproc/postprocess.h" -#include "libavutil/avassert.h" +#endif #include "libavutil/avstring.h" -#include "libavutil/bprint.h" #include "libavutil/mathematics.h" -#include "libavutil/imgutils.h" #include "libavutil/parseutils.h" #include "libavutil/pixdesc.h" #include "libavutil/eval.h" #include "libavutil/dict.h" #include "libavutil/opt.h" -#include "libavutil/cpu.h" -#include "libavutil/ffversion.h" #include "cmdutils.h" +#include "version.h" #if CONFIG_NETWORK #include "libavformat/network.h" #endif #if HAVE_SYS_RESOURCE_H -#include #include #endif -static int init_report(const char *env); - struct SwsContext *sws_opts; -AVDictionary *swr_opts; -AVDictionary *format_opts, *codec_opts, *resample_opts; +AVDictionary *format_opts, *codec_opts; + +const int this_year = 2014; static FILE *report_file; -static int report_file_level = AV_LOG_DEBUG; -int hide_banner = 0; void init_opts(void) { - - if(CONFIG_SWSCALE) - sws_opts = sws_getContext(16, 16, 0, 16, 16, 0, SWS_BICUBIC, +#if CONFIG_SWSCALE + sws_opts = sws_getContext(16, 16, 0, 16, 16, 0, SWS_BICUBIC, NULL, NULL, NULL); +#endif } void uninit_opts(void) @@ -83,11 +74,8 @@ sws_freeContext(sws_opts); sws_opts = NULL; #endif - - av_dict_free(&swr_opts); av_dict_free(&format_opts); av_dict_free(&codec_opts); - av_dict_free(&resample_opts); } void log_callback_help(void *ptr, int level, const char *fmt, va_list vl) @@ -105,25 +93,8 @@ av_log_default_callback(ptr, level, fmt, vl); av_log_format_line(ptr, level, fmt, vl2, line, sizeof(line), &print_prefix); va_end(vl2); - if (report_file_level >= level) { - fputs(line, report_file); - fflush(report_file); - } -} - -static void (*program_exit)(int ret); - -void register_exit(void (*cb)(int ret)) -{ - program_exit = cb; -} - -void exit_program(int ret) -{ - if (program_exit) - program_exit(ret); - - exit(ret); + fputs(line, report_file); + fflush(report_file); } double parse_number_or_die(const char *context, const char *numstr, int type, @@ -159,42 +130,35 @@ return us; } -void show_help_options(const OptionDef *options, const char *msg, int req_flags, - int rej_flags, int alt_flags) +void show_help_options(const OptionDef *options, const char *msg, int mask, + int value) { const OptionDef *po; int first; first = 1; - for (po = options; po->name; po++) { + for (po = options; po->name != NULL; po++) { char buf[64]; - - if (((po->flags & req_flags) != req_flags) || - (alt_flags && !(po->flags & alt_flags)) || - (po->flags & rej_flags)) - continue; - - if (first) { - printf("%s\n", msg); - first = 0; - } - av_strlcpy(buf, po->name, sizeof(buf)); - if (po->argname) { - av_strlcat(buf, " ", sizeof(buf)); - av_strlcat(buf, po->argname, sizeof(buf)); + if ((po->flags & mask) == value) { + if (first) { + printf("%s", msg); + first = 0; + } + av_strlcpy(buf, po->name, sizeof(buf)); + if (po->flags & HAS_ARG) { + av_strlcat(buf, " ", sizeof(buf)); + av_strlcat(buf, po->argname, sizeof(buf)); + } + printf("-%-17s %s\n", buf, po->help); } - printf("-%-17s %s\n", buf, po->help); } - printf("\n"); } void show_help_children(const AVClass *class, int flags) { const AVClass *child = NULL; - if (class->option) { - av_opt_show2(&class, NULL, flags, 0); - printf("\n"); - } + av_opt_show2(&class, NULL, flags, 0); + printf("\n"); while (child = av_opt_child_class_next(class, child)) show_help_children(child, flags); @@ -205,7 +169,7 @@ const char *p = strchr(name, ':'); int len = p ? p - name : strlen(name); - while (po->name) { + while (po->name != NULL) { if (!strncmp(name, po->name, len) && strlen(po->name) == len) break; po++; @@ -213,12 +177,8 @@ return po; } -/* _WIN32 means using the windows libc - cygwin doesn't define that - * by default. HAVE_COMMANDLINETOARGVW is true on cygwin, while - * it doesn't provide the actual command line via GetCommandLineW(). */ -#if HAVE_COMMANDLINETOARGVW && defined(_WIN32) +#if defined(_WIN32) && !defined(__MINGW32CE__) #include -#include /* Will be leaked on exit */ static char** win32_argv_utf8 = NULL; static int win32_argc = 0; @@ -254,7 +214,7 @@ win32_argv_utf8 = av_mallocz(sizeof(char *) * (win32_argc + 1) + buffsize); argstr_flat = (char *)win32_argv_utf8 + sizeof(char *) * (win32_argc + 1); - if (!win32_argv_utf8) { + if (win32_argv_utf8 == NULL) { LocalFree(argv_w); return; } @@ -276,16 +236,40 @@ { /* nothing to do */ } -#endif /* HAVE_COMMANDLINETOARGVW */ +#endif /* WIN32 && !__MINGW32CE__ */ -static int write_option(void *optctx, const OptionDef *po, const char *opt, - const char *arg) +int parse_option(void *optctx, const char *opt, const char *arg, + const OptionDef *options) { + const OptionDef *po; + int bool_val = 1; + int *dstcount; + void *dst; + + po = find_option(options, opt); + if (!po->name && opt[0] == 'n' && opt[1] == 'o') { + /* handle 'no' bool option */ + po = find_option(options, opt + 2); + if (!(po->name && (po->flags & OPT_BOOL))) + goto unknown_opt; + bool_val = 0; + } + if (!po->name) + po = find_option(options, "default"); + if (!po->name) { +unknown_opt: + av_log(NULL, AV_LOG_ERROR, "Unrecognized option '%s'\n", opt); + return AVERROR(EINVAL); + } + if (po->flags & HAS_ARG && !arg) { + av_log(NULL, AV_LOG_ERROR, "Missing argument for option '%s'\n", opt); + return AVERROR(EINVAL); + } + /* new-style options contain an offset into optctx, old-style address of * a global var*/ - void *dst = po->flags & (OPT_OFFSET | OPT_SPEC) ? - (uint8_t *)optctx + po->u.off : po->u.dst_ptr; - int *dstcount; + dst = po->flags & (OPT_OFFSET | OPT_SPEC) ? (uint8_t *)optctx + po->u.off + : po->u.dst_ptr; if (po->flags & OPT_SPEC) { SpecifierOpt **so = dst; @@ -300,9 +284,10 @@ if (po->flags & OPT_STRING) { char *str; str = av_strdup(arg); - av_freep(dst); *(char **)dst = str; - } else if (po->flags & OPT_BOOL || po->flags & OPT_INT) { + } else if (po->flags & OPT_BOOL) { + *(int *)dst = bool_val; + } else if (po->flags & OPT_INT) { *(int *)dst = parse_number_or_die(opt, arg, OPT_INT64, INT_MIN, INT_MAX); } else if (po->flags & OPT_INT64) { *(int64_t *)dst = parse_number_or_die(opt, arg, OPT_INT64, INT64_MIN, INT64_MAX); @@ -313,50 +298,16 @@ } else if (po->flags & OPT_DOUBLE) { *(double *)dst = parse_number_or_die(opt, arg, OPT_DOUBLE, -INFINITY, INFINITY); } else if (po->u.func_arg) { - int ret = po->u.func_arg(optctx, opt, arg); + int ret = po->flags & OPT_FUNC2 ? po->u.func2_arg(optctx, opt, arg) + : po->u.func_arg(opt, arg); if (ret < 0) { av_log(NULL, AV_LOG_ERROR, - "Failed to set value '%s' for option '%s': %s\n", - arg, opt, av_err2str(ret)); + "Failed to set value '%s' for option '%s'\n", arg, opt); return ret; } } if (po->flags & OPT_EXIT) exit_program(0); - - return 0; -} - -int parse_option(void *optctx, const char *opt, const char *arg, - const OptionDef *options) -{ - const OptionDef *po; - int ret; - - po = find_option(options, opt); - if (!po->name && opt[0] == 'n' && opt[1] == 'o') { - /* handle 'no' bool option */ - po = find_option(options, opt + 2); - if ((po->name && (po->flags & OPT_BOOL))) - arg = "0"; - } else if (po->flags & OPT_BOOL) - arg = "1"; - - if (!po->name) - po = find_option(options, "default"); - if (!po->name) { - av_log(NULL, AV_LOG_ERROR, "Unrecognized option '%s'\n", opt); - return AVERROR(EINVAL); - } - if (po->flags & HAS_ARG && !arg) { - av_log(NULL, AV_LOG_ERROR, "Missing argument for option '%s'\n", opt); - return AVERROR(EINVAL); - } - - ret = write_option(optctx, po, opt, arg); - if (ret < 0) - return ret; - return !!(po->flags & HAS_ARG); } @@ -391,41 +342,11 @@ } } -int parse_optgroup(void *optctx, OptionGroup *g) -{ - int i, ret; - - av_log(NULL, AV_LOG_DEBUG, "Parsing a group of options: %s %s.\n", - g->group_def->name, g->arg); - - for (i = 0; i < g->nb_opts; i++) { - Option *o = &g->opts[i]; - - if (g->group_def->flags && - !(g->group_def->flags & o->opt->flags)) { - av_log(NULL, AV_LOG_ERROR, "Option %s (%s) cannot be applied to " - "%s %s -- you are trying to apply an input option to an " - "output file or vice versa. Move this option before the " - "file it belongs to.\n", o->key, o->opt->help, - g->group_def->name, g->arg); - return AVERROR(EINVAL); - } - - av_log(NULL, AV_LOG_DEBUG, "Applying option %s (%s) with argument %s.\n", - o->key, o->opt->help, o->val); - - ret = write_option(optctx, o->opt, o->key, o->val); - if (ret < 0) - return ret; - } - - av_log(NULL, AV_LOG_DEBUG, "Successfully parsed a group of options.\n"); - - return 0; -} - -int locate_option(int argc, char **argv, const OptionDef *options, - const char *optname) +/* + * Return index of option opt in argv or 0 if not found. + */ +static int locate_option(int argc, char **argv, const OptionDef *options, + const char *optname) { const OptionDef *po; int i; @@ -444,7 +365,7 @@ (po->name && !strcmp(optname, po->name))) return i; - if (!po->name || po->flags & HAS_ARG) + if (!po || po->flags & HAS_ARG) i++; } return 0; @@ -477,14 +398,13 @@ void parse_loglevel(int argc, char **argv, const OptionDef *options) { int idx = locate_option(argc, argv, options, "loglevel"); - const char *env; if (!idx) idx = locate_option(argc, argv, options, "v"); if (idx && argv[idx + 1]) - opt_loglevel(NULL, "loglevel", argv[idx + 1]); + opt_loglevel("loglevel", argv[idx + 1]); idx = locate_option(argc, argv, options, "report"); - if ((env = getenv("FFREPORT")) || idx) { - init_report(env); + if (idx || getenv("FFREPORT")) { + opt_report("report"); if (report_file) { int i; fprintf(report_file, "Command line:\n"); @@ -495,340 +415,48 @@ fflush(report_file); } } - idx = locate_option(argc, argv, options, "hide_banner"); - if (idx) - hide_banner = 1; -} - -static const AVOption *opt_find(void *obj, const char *name, const char *unit, - int opt_flags, int search_flags) -{ - const AVOption *o = av_opt_find(obj, name, unit, opt_flags, search_flags); - if(o && !o->flags) - return NULL; - return o; } -#define FLAGS (o->type == AV_OPT_TYPE_FLAGS) ? AV_DICT_APPEND : 0 -int opt_default(void *optctx, const char *opt, const char *arg) +#define FLAGS(o) ((o)->type == AV_OPT_TYPE_FLAGS) ? AV_DICT_APPEND : 0 +int opt_default(const char *opt, const char *arg) { - const AVOption *o; - int consumed = 0; + const AVOption *oc, *of, *os; char opt_stripped[128]; const char *p; - const AVClass *cc = avcodec_get_class(), *fc = avformat_get_class(); -#if CONFIG_AVRESAMPLE - const AVClass *rc = avresample_get_class(); -#endif - const AVClass *sc, *swr_class; - - if (!strcmp(opt, "debug") || !strcmp(opt, "fdebug")) - av_log_set_level(AV_LOG_DEBUG); + const AVClass *cc = avcodec_get_class(), *fc = avformat_get_class(), *sc; if (!(p = strchr(opt, ':'))) p = opt + strlen(opt); av_strlcpy(opt_stripped, opt, FFMIN(sizeof(opt_stripped), p - opt + 1)); - if ((o = opt_find(&cc, opt_stripped, NULL, 0, + if ((oc = av_opt_find(&cc, opt_stripped, NULL, 0, AV_OPT_SEARCH_CHILDREN | AV_OPT_SEARCH_FAKE_OBJ)) || ((opt[0] == 'v' || opt[0] == 'a' || opt[0] == 's') && - (o = opt_find(&cc, opt + 1, NULL, 0, AV_OPT_SEARCH_FAKE_OBJ)))) { - av_dict_set(&codec_opts, opt, arg, FLAGS); - consumed = 1; - } - if ((o = opt_find(&fc, opt, NULL, 0, - AV_OPT_SEARCH_CHILDREN | AV_OPT_SEARCH_FAKE_OBJ))) { - av_dict_set(&format_opts, opt, arg, FLAGS); - if (consumed) - av_log(NULL, AV_LOG_VERBOSE, "Routing option %s to both codec and muxer layer\n", opt); - consumed = 1; - } + (oc = av_opt_find(&cc, opt + 1, NULL, 0, AV_OPT_SEARCH_FAKE_OBJ)))) + av_dict_set(&codec_opts, opt, arg, FLAGS(oc)); + if ((of = av_opt_find(&fc, opt, NULL, 0, + AV_OPT_SEARCH_CHILDREN | AV_OPT_SEARCH_FAKE_OBJ))) + av_dict_set(&format_opts, opt, arg, FLAGS(of)); #if CONFIG_SWSCALE sc = sws_get_class(); - if (!consumed && opt_find(&sc, opt, NULL, 0, - AV_OPT_SEARCH_CHILDREN | AV_OPT_SEARCH_FAKE_OBJ)) { + if ((os = av_opt_find(&sc, opt, NULL, 0, + AV_OPT_SEARCH_CHILDREN | AV_OPT_SEARCH_FAKE_OBJ))) { // XXX we only support sws_flags, not arbitrary sws options int ret = av_opt_set(sws_opts, opt, arg, 0); if (ret < 0) { av_log(NULL, AV_LOG_ERROR, "Error setting option %s.\n", opt); return ret; } - consumed = 1; - } -#else - if (!consumed && !strcmp(opt, "sws_flags")) { - av_log(NULL, AV_LOG_WARNING, "Ignoring %s %s, due to disabled swscale\n", opt, arg); - consumed = 1; - } -#endif -#if CONFIG_SWRESAMPLE - swr_class = swr_get_class(); - if (!consumed && (o=opt_find(&swr_class, opt, NULL, 0, - AV_OPT_SEARCH_CHILDREN | AV_OPT_SEARCH_FAKE_OBJ))) { - struct SwrContext *swr = swr_alloc(); - int ret = av_opt_set(swr, opt, arg, 0); - swr_free(&swr); - if (ret < 0) { - av_log(NULL, AV_LOG_ERROR, "Error setting option %s.\n", opt); - return ret; - } - av_dict_set(&swr_opts, opt, arg, FLAGS); - consumed = 1; - } -#endif -#if CONFIG_AVRESAMPLE - if ((o=opt_find(&rc, opt, NULL, 0, - AV_OPT_SEARCH_CHILDREN | AV_OPT_SEARCH_FAKE_OBJ))) { - av_dict_set(&resample_opts, opt, arg, FLAGS); - consumed = 1; } #endif - if (consumed) + if (oc || of || os) return 0; + av_log(NULL, AV_LOG_ERROR, "Unrecognized option '%s'\n", opt); return AVERROR_OPTION_NOT_FOUND; } -/* - * Check whether given option is a group separator. - * - * @return index of the group definition that matched or -1 if none - */ -static int match_group_separator(const OptionGroupDef *groups, int nb_groups, - const char *opt) -{ - int i; - - for (i = 0; i < nb_groups; i++) { - const OptionGroupDef *p = &groups[i]; - if (p->sep && !strcmp(p->sep, opt)) - return i; - } - - return -1; -} - -/* - * Finish parsing an option group. - * - * @param group_idx which group definition should this group belong to - * @param arg argument of the group delimiting option - */ -static void finish_group(OptionParseContext *octx, int group_idx, - const char *arg) -{ - OptionGroupList *l = &octx->groups[group_idx]; - OptionGroup *g; - - GROW_ARRAY(l->groups, l->nb_groups); - g = &l->groups[l->nb_groups - 1]; - - *g = octx->cur_group; - g->arg = arg; - g->group_def = l->group_def; -#if CONFIG_SWSCALE - g->sws_opts = sws_opts; -#endif - g->swr_opts = swr_opts; - g->codec_opts = codec_opts; - g->format_opts = format_opts; - g->resample_opts = resample_opts; - - codec_opts = NULL; - format_opts = NULL; - resample_opts = NULL; -#if CONFIG_SWSCALE - sws_opts = NULL; -#endif - swr_opts = NULL; - init_opts(); - - memset(&octx->cur_group, 0, sizeof(octx->cur_group)); -} - -/* - * Add an option instance to currently parsed group. - */ -static void add_opt(OptionParseContext *octx, const OptionDef *opt, - const char *key, const char *val) -{ - int global = !(opt->flags & (OPT_PERFILE | OPT_SPEC | OPT_OFFSET)); - OptionGroup *g = global ? &octx->global_opts : &octx->cur_group; - - GROW_ARRAY(g->opts, g->nb_opts); - g->opts[g->nb_opts - 1].opt = opt; - g->opts[g->nb_opts - 1].key = key; - g->opts[g->nb_opts - 1].val = val; -} - -static void init_parse_context(OptionParseContext *octx, - const OptionGroupDef *groups, int nb_groups) -{ - static const OptionGroupDef global_group = { "global" }; - int i; - - memset(octx, 0, sizeof(*octx)); - - octx->nb_groups = nb_groups; - octx->groups = av_mallocz_array(octx->nb_groups, sizeof(*octx->groups)); - if (!octx->groups) - exit_program(1); - - for (i = 0; i < octx->nb_groups; i++) - octx->groups[i].group_def = &groups[i]; - - octx->global_opts.group_def = &global_group; - octx->global_opts.arg = ""; - - init_opts(); -} - -void uninit_parse_context(OptionParseContext *octx) -{ - int i, j; - - for (i = 0; i < octx->nb_groups; i++) { - OptionGroupList *l = &octx->groups[i]; - - for (j = 0; j < l->nb_groups; j++) { - av_freep(&l->groups[j].opts); - av_dict_free(&l->groups[j].codec_opts); - av_dict_free(&l->groups[j].format_opts); - av_dict_free(&l->groups[j].resample_opts); -#if CONFIG_SWSCALE - sws_freeContext(l->groups[j].sws_opts); -#endif - av_dict_free(&l->groups[j].swr_opts); - } - av_freep(&l->groups); - } - av_freep(&octx->groups); - - av_freep(&octx->cur_group.opts); - av_freep(&octx->global_opts.opts); - - uninit_opts(); -} - -int split_commandline(OptionParseContext *octx, int argc, char *argv[], - const OptionDef *options, - const OptionGroupDef *groups, int nb_groups) -{ - int optindex = 1; - int dashdash = -2; - - /* perform system-dependent conversions for arguments list */ - prepare_app_arguments(&argc, &argv); - - init_parse_context(octx, groups, nb_groups); - av_log(NULL, AV_LOG_DEBUG, "Splitting the commandline.\n"); - - while (optindex < argc) { - const char *opt = argv[optindex++], *arg; - const OptionDef *po; - int ret; - - av_log(NULL, AV_LOG_DEBUG, "Reading option '%s' ...", opt); - - if (opt[0] == '-' && opt[1] == '-' && !opt[2]) { - dashdash = optindex; - continue; - } - /* unnamed group separators, e.g. output filename */ - if (opt[0] != '-' || !opt[1] || dashdash+1 == optindex) { - finish_group(octx, 0, opt); - av_log(NULL, AV_LOG_DEBUG, " matched as %s.\n", groups[0].name); - continue; - } - opt++; - -#define GET_ARG(arg) \ -do { \ - arg = argv[optindex++]; \ - if (!arg) { \ - av_log(NULL, AV_LOG_ERROR, "Missing argument for option '%s'.\n", opt);\ - return AVERROR(EINVAL); \ - } \ -} while (0) - - /* named group separators, e.g. -i */ - if ((ret = match_group_separator(groups, nb_groups, opt)) >= 0) { - GET_ARG(arg); - finish_group(octx, ret, arg); - av_log(NULL, AV_LOG_DEBUG, " matched as %s with argument '%s'.\n", - groups[ret].name, arg); - continue; - } - - /* normal options */ - po = find_option(options, opt); - if (po->name) { - if (po->flags & OPT_EXIT) { - /* optional argument, e.g. -h */ - arg = argv[optindex++]; - } else if (po->flags & HAS_ARG) { - GET_ARG(arg); - } else { - arg = "1"; - } - - add_opt(octx, po, opt, arg); - av_log(NULL, AV_LOG_DEBUG, " matched as option '%s' (%s) with " - "argument '%s'.\n", po->name, po->help, arg); - continue; - } - - /* AVOptions */ - if (argv[optindex]) { - ret = opt_default(NULL, opt, argv[optindex]); - if (ret >= 0) { - av_log(NULL, AV_LOG_DEBUG, " matched as AVOption '%s' with " - "argument '%s'.\n", opt, argv[optindex]); - optindex++; - continue; - } else if (ret != AVERROR_OPTION_NOT_FOUND) { - av_log(NULL, AV_LOG_ERROR, "Error parsing option '%s' " - "with argument '%s'.\n", opt, argv[optindex]); - return ret; - } - } - - /* boolean -nofoo options */ - if (opt[0] == 'n' && opt[1] == 'o' && - (po = find_option(options, opt + 2)) && - po->name && po->flags & OPT_BOOL) { - add_opt(octx, po, opt, "0"); - av_log(NULL, AV_LOG_DEBUG, " matched as option '%s' (%s) with " - "argument 0.\n", po->name, po->help); - continue; - } - - av_log(NULL, AV_LOG_ERROR, "Unrecognized option '%s'.\n", opt); - return AVERROR_OPTION_NOT_FOUND; - } - - if (octx->cur_group.nb_opts || codec_opts || format_opts || resample_opts) - av_log(NULL, AV_LOG_WARNING, "Trailing options were found on the " - "commandline.\n"); - - av_log(NULL, AV_LOG_DEBUG, "Finished splitting the commandline.\n"); - - return 0; -} - -int opt_cpuflags(void *optctx, const char *opt, const char *arg) -{ - int ret; - unsigned flags = av_get_cpu_flags(); - - if ((ret = av_parse_cpu_caps(&flags, arg)) < 0) - return ret; - - av_force_cpu_flags(flags); - return 0; -} - -int opt_loglevel(void *optctx, const char *opt, const char *arg) +int opt_loglevel(const char *opt, const char *arg) { const struct { const char *name; int level; } log_levels[] = { { "quiet" , AV_LOG_QUIET }, @@ -842,22 +470,8 @@ }; char *tail; int level; - int flags; int i; - flags = av_log_get_flags(); - tail = strstr(arg, "repeat"); - if (tail) - flags &= ~AV_LOG_SKIP_REPEATED; - else - flags |= AV_LOG_SKIP_REPEATED; - - av_log_set_flags(flags); - if (tail == arg) - arg += 6 + (arg[6]=='+'); - if(tail && !*arg) - return 0; - for (i = 0; i < FF_ARRAY_ELEMS(log_levels); i++) { if (!strcmp(log_levels[i].name, arg)) { av_log_set_level(log_levels[i].level); @@ -877,92 +491,25 @@ return 0; } -static void expand_filename_template(AVBPrint *bp, const char *template, - struct tm *tm) -{ - int c; - - while ((c = *(template++))) { - if (c == '%') { - if (!(c = *(template++))) - break; - switch (c) { - case 'p': - av_bprintf(bp, "%s", program_name); - break; - case 't': - av_bprintf(bp, "%04d%02d%02d-%02d%02d%02d", - tm->tm_year + 1900, tm->tm_mon + 1, tm->tm_mday, - tm->tm_hour, tm->tm_min, tm->tm_sec); - break; - case '%': - av_bprint_chars(bp, c, 1); - break; - } - } else { - av_bprint_chars(bp, c, 1); - } - } -} - -static int init_report(const char *env) +int opt_report(const char *opt) { - char *filename_template = NULL; - char *key, *val; - int ret, count = 0; + char filename[64]; time_t now; struct tm *tm; - AVBPrint filename; if (report_file) /* already opened */ return 0; time(&now); tm = localtime(&now); - - while (env && *env) { - if ((ret = av_opt_get_key_value(&env, "=", ":", 0, &key, &val)) < 0) { - if (count) - av_log(NULL, AV_LOG_ERROR, - "Failed to parse FFREPORT environment variable: %s\n", - av_err2str(ret)); - break; - } - if (*env) - env++; - count++; - if (!strcmp(key, "file")) { - av_free(filename_template); - filename_template = val; - val = NULL; - } else if (!strcmp(key, "level")) { - char *tail; - report_file_level = strtol(val, &tail, 10); - if (*tail) { - av_log(NULL, AV_LOG_FATAL, "Invalid report file level\n"); - exit_program(1); - } - } else { - av_log(NULL, AV_LOG_ERROR, "Unknown key '%s' in FFREPORT\n", key); - } - av_free(val); - av_free(key); - } - - av_bprint_init(&filename, 0, 1); - expand_filename_template(&filename, - av_x_if_null(filename_template, "%p-%t.log"), tm); - av_free(filename_template); - if (!av_bprint_is_complete(&filename)) { - av_log(NULL, AV_LOG_ERROR, "Out of memory building report file name\n"); - return AVERROR(ENOMEM); - } - - report_file = fopen(filename.str, "w"); + snprintf(filename, sizeof(filename), "%s-%04d%02d%02d-%02d%02d%02d.log", + program_name, + tm->tm_year + 1900, tm->tm_mon + 1, tm->tm_mday, + tm->tm_hour, tm->tm_min, tm->tm_sec); + report_file = fopen(filename, "w"); if (!report_file) { - int ret = AVERROR(errno); av_log(NULL, AV_LOG_ERROR, "Failed to open report \"%s\": %s\n", - filename.str, strerror(errno)); - return ret; + filename, strerror(errno)); + return AVERROR(errno); } av_log_set_callback(log_callback_report); av_log(NULL, AV_LOG_INFO, @@ -971,17 +518,12 @@ program_name, tm->tm_year + 1900, tm->tm_mon + 1, tm->tm_mday, tm->tm_hour, tm->tm_min, tm->tm_sec, - filename.str); - av_bprint_finalize(&filename, NULL); + filename); + av_log_set_level(FFMAX(av_log_get_level(), AV_LOG_VERBOSE)); return 0; } -int opt_report(const char *opt) -{ - return init_report(NULL); -} - -int opt_max_alloc(void *optctx, const char *opt, const char *arg) +int opt_max_alloc(const char *opt, const char *arg) { char *tail; size_t max; @@ -995,7 +537,13 @@ return 0; } -int opt_timelimit(void *optctx, const char *opt, const char *arg) +int opt_codec_debug(const char *opt, const char *arg) +{ + av_log_set_level(AV_LOG_DEBUG); + return opt_default(opt, arg); +} + +int opt_timelimit(const char *opt, const char *arg) { #if HAVE_SETRLIMIT int lim = parse_number_or_die(opt, arg, OPT_INT64, 0, INT_MAX); @@ -1030,8 +578,7 @@ const char *indent = flags & INDENT? " " : ""; \ if (flags & SHOW_VERSION) { \ unsigned int version = libname##_version(); \ - av_log(NULL, level, \ - "%slib%-11s %2d.%3d.%3d / %2d.%3d.%3d\n", \ + av_log(NULL, level, "%slib%-11s %2d.%3d.%3d / %2d.%3d.%3d\n",\ indent, #libname, \ LIB##LIBNAME##_VERSION_MAJOR, \ LIB##LIBNAME##_VERSION_MINOR, \ @@ -1060,10 +607,11 @@ PRINT_LIB_INFO(avformat, AVFORMAT, flags, level); PRINT_LIB_INFO(avdevice, AVDEVICE, flags, level); PRINT_LIB_INFO(avfilter, AVFILTER, flags, level); - PRINT_LIB_INFO(avresample, AVRESAMPLE, flags, level); PRINT_LIB_INFO(swscale, SWSCALE, flags, level); PRINT_LIB_INFO(swresample,SWRESAMPLE, flags, level); +#if CONFIG_POSTPROC PRINT_LIB_INFO(postproc, POSTPROC, flags, level); +#endif } static void print_program_info(int flags, int level) @@ -1073,44 +621,17 @@ av_log(NULL, level, "%s version " FFMPEG_VERSION, program_name); if (flags & SHOW_COPYRIGHT) av_log(NULL, level, " Copyright (c) %d-%d the FFmpeg developers", - program_birth_year, CONFIG_THIS_YEAR); + program_birth_year, this_year); av_log(NULL, level, "\n"); - av_log(NULL, level, "%sbuilt on %s %s with %s\n", - indent, __DATE__, __TIME__, CC_IDENT); - + av_log(NULL, level, "%sbuilt on %s %s with %s %s\n", + indent, __DATE__, __TIME__, CC_TYPE, CC_VERSION); av_log(NULL, level, "%sconfiguration: " FFMPEG_CONFIGURATION "\n", indent); } -static void print_buildconf(int flags, int level) -{ - const char *indent = flags & INDENT ? " " : ""; - char str[] = { FFMPEG_CONFIGURATION }; - char *conflist, *remove_tilde, *splitconf; - - // Change all the ' --' strings to '~--' so that - // they can be identified as tokens. - while ((conflist = strstr(str, " --")) != NULL) { - strncpy(conflist, "~--", 3); - } - - // Compensate for the weirdness this would cause - // when passing 'pkg-config --static'. - while ((remove_tilde = strstr(str, "pkg-config~")) != NULL) { - strncpy(remove_tilde, "pkg-config ", 11); - } - - splitconf = strtok(str, "~"); - av_log(NULL, level, "\n%sconfiguration:\n", indent); - while (splitconf != NULL) { - av_log(NULL, level, "%s%s%s\n", indent, indent, splitconf); - splitconf = strtok(NULL, "~"); - } -} - void show_banner(int argc, char **argv, const OptionDef *options) { int idx = locate_option(argc, argv, options, "version"); - if (hide_banner || idx) + if (idx) return; print_program_info (INDENT|SHOW_COPYRIGHT, AV_LOG_INFO); @@ -1118,32 +639,21 @@ print_all_libs_info(INDENT|SHOW_VERSION, AV_LOG_INFO); } -int show_version(void *optctx, const char *opt, const char *arg) -{ +int opt_version(const char *opt, const char *arg) { av_log_set_callback(log_callback_help); - print_program_info (SHOW_COPYRIGHT, AV_LOG_INFO); + print_program_info (0 , AV_LOG_INFO); print_all_libs_info(SHOW_VERSION, AV_LOG_INFO); - return 0; } -int show_buildconf(void *optctx, const char *opt, const char *arg) +int opt_license(const char *opt, const char *arg) { - av_log_set_callback(log_callback_help); - print_buildconf (INDENT|0, AV_LOG_INFO); - - return 0; -} - -int show_license(void *optctx, const char *opt, const char *arg) -{ -#if CONFIG_NONFREE printf( +#if CONFIG_NONFREE "This version of %s has nonfree parts compiled in.\n" "Therefore it is not legally redistributable.\n", - program_name ); + program_name #elif CONFIG_GPLV3 - printf( "%s is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" "the Free Software Foundation; either version 3 of the License, or\n" @@ -1156,9 +666,8 @@ "\n" "You should have received a copy of the GNU General Public License\n" "along with %s. If not, see .\n", - program_name, program_name, program_name ); + program_name, program_name, program_name #elif CONFIG_GPL - printf( "%s is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" "the Free Software Foundation; either version 2 of the License, or\n" @@ -1172,9 +681,8 @@ "You should have received a copy of the GNU General Public License\n" "along with %s; if not, write to the Free Software\n" "Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n", - program_name, program_name, program_name ); + program_name, program_name, program_name #elif CONFIG_LGPLV3 - printf( "%s is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU Lesser General Public License as published by\n" "the Free Software Foundation; either version 3 of the License, or\n" @@ -1187,9 +695,8 @@ "\n" "You should have received a copy of the GNU Lesser General Public License\n" "along with %s. If not, see .\n", - program_name, program_name, program_name ); + program_name, program_name, program_name #else - printf( "%s is free software; you can redistribute it and/or\n" "modify it under the terms of the GNU Lesser General Public\n" "License as published by the Free Software Foundation; either\n" @@ -1203,35 +710,22 @@ "You should have received a copy of the GNU Lesser General Public\n" "License along with %s; if not, write to the Free Software\n" "Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n", - program_name, program_name, program_name ); + program_name, program_name, program_name #endif - + ); return 0; } -static int is_device(const AVClass *avclass) -{ - if (!avclass) - return 0; - return avclass->category == AV_CLASS_CATEGORY_DEVICE_VIDEO_OUTPUT || - avclass->category == AV_CLASS_CATEGORY_DEVICE_VIDEO_INPUT || - avclass->category == AV_CLASS_CATEGORY_DEVICE_AUDIO_OUTPUT || - avclass->category == AV_CLASS_CATEGORY_DEVICE_AUDIO_INPUT || - avclass->category == AV_CLASS_CATEGORY_DEVICE_OUTPUT || - avclass->category == AV_CLASS_CATEGORY_DEVICE_INPUT; -} - -static int show_formats_devices(void *optctx, const char *opt, const char *arg, int device_only) +int opt_formats(const char *opt, const char *arg) { AVInputFormat *ifmt = NULL; AVOutputFormat *ofmt = NULL; const char *last_name; - int is_dev; - printf("%s\n" + printf("File formats:\n" " D. = Demuxing supported\n" " .E = Muxing supported\n" - " --\n", device_only ? "Devices:" : "File formats:"); + " --\n"); last_name = "000"; for (;;) { int decode = 0; @@ -1240,10 +734,7 @@ const char *long_name = NULL; while ((ofmt = av_oformat_next(ofmt))) { - is_dev = is_device(ofmt->priv_class); - if (!is_dev && device_only) - continue; - if ((!name || strcmp(ofmt->name, name) < 0) && + if ((name == NULL || strcmp(ofmt->name, name) < 0) && strcmp(ofmt->name, last_name) > 0) { name = ofmt->name; long_name = ofmt->long_name; @@ -1251,10 +742,7 @@ } } while ((ifmt = av_iformat_next(ifmt))) { - is_dev = is_device(ifmt->priv_class); - if (!is_dev && device_only) - continue; - if ((!name || strcmp(ifmt->name, name) < 0) && + if ((name == NULL || strcmp(ifmt->name, name) < 0) && strcmp(ifmt->name, last_name) > 0) { name = ifmt->name; long_name = ifmt->long_name; @@ -1263,7 +751,7 @@ if (name && strcmp(ifmt->name, name) == 0) decode = 1; } - if (!name) + if (name == NULL) break; last_name = name; @@ -1276,247 +764,82 @@ return 0; } -int show_formats(void *optctx, const char *opt, const char *arg) -{ - return show_formats_devices(optctx, opt, arg, 0); -} - -int show_devices(void *optctx, const char *opt, const char *arg) -{ - return show_formats_devices(optctx, opt, arg, 1); -} - -#define PRINT_CODEC_SUPPORTED(codec, field, type, list_name, term, get_name) \ - if (codec->field) { \ - const type *p = codec->field; \ - \ - printf(" Supported " list_name ":"); \ - while (*p != term) { \ - get_name(*p); \ - printf(" %s", name); \ - p++; \ - } \ - printf("\n"); \ - } \ - -static void print_codec(const AVCodec *c) -{ - int encoder = av_codec_is_encoder(c); - - printf("%s %s [%s]:\n", encoder ? "Encoder" : "Decoder", c->name, - c->long_name ? c->long_name : ""); - - if (c->type == AVMEDIA_TYPE_VIDEO || - c->type == AVMEDIA_TYPE_AUDIO) { - printf(" Threading capabilities: "); - switch (c->capabilities & (CODEC_CAP_FRAME_THREADS | - CODEC_CAP_SLICE_THREADS)) { - case CODEC_CAP_FRAME_THREADS | - CODEC_CAP_SLICE_THREADS: printf("frame and slice"); break; - case CODEC_CAP_FRAME_THREADS: printf("frame"); break; - case CODEC_CAP_SLICE_THREADS: printf("slice"); break; - default: printf("no"); break; - } - printf("\n"); - } - - if (c->supported_framerates) { - const AVRational *fps = c->supported_framerates; - - printf(" Supported framerates:"); - while (fps->num) { - printf(" %d/%d", fps->num, fps->den); - fps++; - } - printf("\n"); - } - PRINT_CODEC_SUPPORTED(c, pix_fmts, enum AVPixelFormat, "pixel formats", - AV_PIX_FMT_NONE, GET_PIX_FMT_NAME); - PRINT_CODEC_SUPPORTED(c, supported_samplerates, int, "sample rates", 0, - GET_SAMPLE_RATE_NAME); - PRINT_CODEC_SUPPORTED(c, sample_fmts, enum AVSampleFormat, "sample formats", - AV_SAMPLE_FMT_NONE, GET_SAMPLE_FMT_NAME); - PRINT_CODEC_SUPPORTED(c, channel_layouts, uint64_t, "channel layouts", - 0, GET_CH_LAYOUT_DESC); - - if (c->priv_class) { - show_help_children(c->priv_class, - AV_OPT_FLAG_ENCODING_PARAM | - AV_OPT_FLAG_DECODING_PARAM); - } -} - static char get_media_type_char(enum AVMediaType type) { - switch (type) { - case AVMEDIA_TYPE_VIDEO: return 'V'; - case AVMEDIA_TYPE_AUDIO: return 'A'; - case AVMEDIA_TYPE_DATA: return 'D'; - case AVMEDIA_TYPE_SUBTITLE: return 'S'; - case AVMEDIA_TYPE_ATTACHMENT:return 'T'; - default: return '?'; - } -} - -static const AVCodec *next_codec_for_id(enum AVCodecID id, const AVCodec *prev, - int encoder) -{ - while ((prev = av_codec_next(prev))) { - if (prev->id == id && - (encoder ? av_codec_is_encoder(prev) : av_codec_is_decoder(prev))) - return prev; - } - return NULL; -} - -static int compare_codec_desc(const void *a, const void *b) -{ - const AVCodecDescriptor * const *da = a; - const AVCodecDescriptor * const *db = b; - - return (*da)->type != (*db)->type ? (*da)->type - (*db)->type : - strcmp((*da)->name, (*db)->name); -} - -static unsigned get_codecs_sorted(const AVCodecDescriptor ***rcodecs) -{ - const AVCodecDescriptor *desc = NULL; - const AVCodecDescriptor **codecs; - unsigned nb_codecs = 0, i = 0; - - while ((desc = avcodec_descriptor_next(desc))) - nb_codecs++; - if (!(codecs = av_calloc(nb_codecs, sizeof(*codecs)))) { - av_log(NULL, AV_LOG_ERROR, "Out of memory\n"); - exit_program(1); - } - desc = NULL; - while ((desc = avcodec_descriptor_next(desc))) - codecs[i++] = desc; - av_assert0(i == nb_codecs); - qsort(codecs, nb_codecs, sizeof(*codecs), compare_codec_desc); - *rcodecs = codecs; - return nb_codecs; -} - -static void print_codecs_for_id(enum AVCodecID id, int encoder) -{ - const AVCodec *codec = NULL; - - printf(" (%s: ", encoder ? "encoders" : "decoders"); - - while ((codec = next_codec_for_id(id, codec, encoder))) - printf("%s ", codec->name); - - printf(")"); + static const char map[AVMEDIA_TYPE_NB] = { + [AVMEDIA_TYPE_VIDEO] = 'V', + [AVMEDIA_TYPE_AUDIO] = 'A', + [AVMEDIA_TYPE_DATA] = 'D', + [AVMEDIA_TYPE_SUBTITLE] = 'S', + [AVMEDIA_TYPE_ATTACHMENT] = 'T', + }; + return type >= 0 && type < AVMEDIA_TYPE_NB && map[type] ? map[type] : '?'; } -int show_codecs(void *optctx, const char *opt, const char *arg) +int opt_codecs(const char *opt, const char *arg) { - const AVCodecDescriptor **codecs; - unsigned i, nb_codecs = get_codecs_sorted(&codecs); - + AVCodec *p = NULL, *p2; + const char *last_name; printf("Codecs:\n" " D..... = Decoding supported\n" " .E.... = Encoding supported\n" " ..V... = Video codec\n" " ..A... = Audio codec\n" " ..S... = Subtitle codec\n" - " ...I.. = Intra frame-only codec\n" - " ....L. = Lossy compression\n" - " .....S = Lossless compression\n" - " -------\n"); - for (i = 0; i < nb_codecs; i++) { - const AVCodecDescriptor *desc = codecs[i]; - const AVCodec *codec = NULL; - - if (strstr(desc->name, "_deprecated")) - continue; + " ...S.. = Supports draw_horiz_band\n" + " ....D. = Supports direct rendering method 1\n" + " .....T = Supports weird frame truncation\n" + " ------\n"); + last_name= "000"; + for (;;) { + int decode = 0; + int encode = 0; + int cap = 0; - printf(" "); - printf(avcodec_find_decoder(desc->id) ? "D" : "."); - printf(avcodec_find_encoder(desc->id) ? "E" : "."); - - printf("%c", get_media_type_char(desc->type)); - printf((desc->props & AV_CODEC_PROP_INTRA_ONLY) ? "I" : "."); - printf((desc->props & AV_CODEC_PROP_LOSSY) ? "L" : "."); - printf((desc->props & AV_CODEC_PROP_LOSSLESS) ? "S" : "."); - - printf(" %-20s %s", desc->name, desc->long_name ? desc->long_name : ""); - - /* print decoders/encoders when there's more than one or their - * names are different from codec name */ - while ((codec = next_codec_for_id(desc->id, codec, 0))) { - if (strcmp(codec->name, desc->name)) { - print_codecs_for_id(desc->id, 0); - break; + p2 = NULL; + while ((p = av_codec_next(p))) { + if ((p2 == NULL || strcmp(p->name, p2->name) < 0) && + strcmp(p->name, last_name) > 0) { + p2 = p; + decode = encode = cap = 0; } - } - codec = NULL; - while ((codec = next_codec_for_id(desc->id, codec, 1))) { - if (strcmp(codec->name, desc->name)) { - print_codecs_for_id(desc->id, 1); - break; + if (p2 && strcmp(p->name, p2->name) == 0) { + if (p->decode) + decode = 1; + if (p->encode || p->encode2) + encode = 1; + cap |= p->capabilities; } } + if (p2 == NULL) + break; + last_name = p2->name; + printf(" %s%s%c%s%s%s %-15s %s", + decode ? "D" : (/* p2->decoder ? "d" : */ " "), + encode ? "E" : " ", + get_media_type_char(p2->type), + cap & CODEC_CAP_DRAW_HORIZ_BAND ? "S" : " ", + cap & CODEC_CAP_DR1 ? "D" : " ", + cap & CODEC_CAP_TRUNCATED ? "T" : " ", + p2->name, + p2->long_name ? p2->long_name : ""); +#if 0 + if (p2->decoder && decode == 0) + printf(" use %s for decoding", p2->decoder->name); +#endif printf("\n"); } - av_free(codecs); - return 0; -} - -static void print_codecs(int encoder) -{ - const AVCodecDescriptor **codecs; - unsigned i, nb_codecs = get_codecs_sorted(&codecs); - - printf("%s:\n" - " V..... = Video\n" - " A..... = Audio\n" - " S..... = Subtitle\n" - " .F.... = Frame-level multithreading\n" - " ..S... = Slice-level multithreading\n" - " ...X.. = Codec is experimental\n" - " ....B. = Supports draw_horiz_band\n" - " .....D = Supports direct rendering method 1\n" - " ------\n", - encoder ? "Encoders" : "Decoders"); - for (i = 0; i < nb_codecs; i++) { - const AVCodecDescriptor *desc = codecs[i]; - const AVCodec *codec = NULL; - - while ((codec = next_codec_for_id(desc->id, codec, encoder))) { - printf(" %c", get_media_type_char(desc->type)); - printf((codec->capabilities & CODEC_CAP_FRAME_THREADS) ? "F" : "."); - printf((codec->capabilities & CODEC_CAP_SLICE_THREADS) ? "S" : "."); - printf((codec->capabilities & CODEC_CAP_EXPERIMENTAL) ? "X" : "."); - printf((codec->capabilities & CODEC_CAP_DRAW_HORIZ_BAND)?"B" : "."); - printf((codec->capabilities & CODEC_CAP_DR1) ? "D" : "."); - - printf(" %-20s %s", codec->name, codec->long_name ? codec->long_name : ""); - if (strcmp(codec->name, desc->name)) - printf(" (codec %s)", desc->name); - - printf("\n"); - } - } - av_free(codecs); -} - -int show_decoders(void *optctx, const char *opt, const char *arg) -{ - print_codecs(0); - return 0; -} - -int show_encoders(void *optctx, const char *opt, const char *arg) -{ - print_codecs(1); + printf("\n"); + printf("Note, the names of encoders and decoders do not always match, so there are\n" + "several cases where the above table shows encoder only or decoder only entries\n" + "even though both encoding and decoding are supported. For example, the h263\n" + "decoder corresponds to the h263 and h263p encoders, for file formats it is even\n" + "worse.\n"); return 0; } -int show_bsfs(void *optctx, const char *opt, const char *arg) +int opt_bsfs(const char *opt, const char *arg) { AVBitStreamFilter *bsf = NULL; @@ -1527,84 +850,60 @@ return 0; } -int show_protocols(void *optctx, const char *opt, const char *arg) +int opt_protocols(const char *opt, const char *arg) { - void *opaque = NULL; - const char *name; + URLProtocol *up=NULL; printf("Supported file protocols:\n" - "Input:\n"); - while ((name = avio_enum_protocols(&opaque, 0))) - printf("%s\n", name); - printf("Output:\n"); - while ((name = avio_enum_protocols(&opaque, 1))) - printf("%s\n", name); + "I.. = Input supported\n" + ".O. = Output supported\n" + "..S = Seek supported\n" + "FLAGS NAME\n" + "----- \n"); + while((up = av_protocol_next(up))) + printf("%c%c%c %s\n", + up->url_read ? 'I' : '.', + up->url_write ? 'O' : '.', + up->url_seek ? 'S' : '.', + up->name); return 0; } -int show_filters(void *optctx, const char *opt, const char *arg) +int opt_filters(const char *opt, const char *arg) { -#if CONFIG_AVFILTER - const AVFilter *filter = NULL; + AVFilter av_unused(**filter) = NULL; char descr[64], *descr_cur; int i, j; const AVFilterPad *pad; - printf("Filters:\n" - " T.. = Timeline support\n" - " .S. = Slice threading\n" - " ..C = Commmand support\n" - " A = Audio input/output\n" - " V = Video input/output\n" - " N = Dynamic number and/or type of input/output\n" - " | = Source or sink filter\n"); - while ((filter = avfilter_next(filter))) { + printf("Filters:\n"); +#if CONFIG_AVFILTER + while ((filter = av_filter_next(filter)) && *filter) { descr_cur = descr; for (i = 0; i < 2; i++) { if (i) { *(descr_cur++) = '-'; *(descr_cur++) = '>'; } - pad = i ? filter->outputs : filter->inputs; - for (j = 0; pad && pad[j].name; j++) { + pad = i ? (*filter)->outputs : (*filter)->inputs; + for (j = 0; pad[j].name; j++) { if (descr_cur >= descr + sizeof(descr) - 4) break; *(descr_cur++) = get_media_type_char(pad[j].type); } if (!j) - *(descr_cur++) = ((!i && (filter->flags & AVFILTER_FLAG_DYNAMIC_INPUTS)) || - ( i && (filter->flags & AVFILTER_FLAG_DYNAMIC_OUTPUTS))) ? 'N' : '|'; + *(descr_cur++) = '|'; } *descr_cur = 0; - printf(" %c%c%c %-16s %-10s %s\n", - filter->flags & AVFILTER_FLAG_SUPPORT_TIMELINE ? 'T' : '.', - filter->flags & AVFILTER_FLAG_SLICE_THREADS ? 'S' : '.', - filter->process_command ? 'C' : '.', - filter->name, descr, filter->description); + printf("%-16s %-10s %s\n", (*filter)->name, descr, (*filter)->description); } -#else - printf("No filters available: libavfilter disabled\n"); #endif return 0; } -int show_colors(void *optctx, const char *opt, const char *arg) +int opt_pix_fmts(const char *opt, const char *arg) { - const char *name; - const uint8_t *rgb; - int i; - - printf("%-32s #RRGGBB\n", "name"); - - for (i = 0; name = av_get_known_color_name(i, &rgb); i++) - printf("%-32s #%02x%02x%02x\n", name, rgb[0], rgb[1], rgb[2]); - - return 0; -} - -int show_pix_fmts(void *optctx, const char *opt, const char *arg) -{ - const AVPixFmtDescriptor *pix_desc = NULL; + enum PixelFormat pix_fmt; printf("Pixel formats:\n" "I.... = Supported Input format for conversion\n" @@ -1620,14 +919,16 @@ # define sws_isSupportedOutput(x) 0 #endif - while ((pix_desc = av_pix_fmt_desc_next(pix_desc))) { - enum AVPixelFormat pix_fmt = av_pix_fmt_desc_get_id(pix_desc); + for (pix_fmt = 0; pix_fmt < PIX_FMT_NB; pix_fmt++) { + const AVPixFmtDescriptor *pix_desc = &av_pix_fmt_descriptors[pix_fmt]; + if(!pix_desc->name) + continue; printf("%c%c%c%c%c %-16s %d %2d\n", - sws_isSupportedInput (pix_fmt) ? 'I' : '.', - sws_isSupportedOutput(pix_fmt) ? 'O' : '.', - pix_desc->flags & AV_PIX_FMT_FLAG_HWACCEL ? 'H' : '.', - pix_desc->flags & AV_PIX_FMT_FLAG_PAL ? 'P' : '.', - pix_desc->flags & AV_PIX_FMT_FLAG_BITSTREAM ? 'B' : '.', + sws_isSupportedInput (pix_fmt) ? 'I' : '.', + sws_isSupportedOutput(pix_fmt) ? 'O' : '.', + pix_desc->flags & PIX_FMT_HWACCEL ? 'H' : '.', + pix_desc->flags & PIX_FMT_PAL ? 'P' : '.', + pix_desc->flags & PIX_FMT_BITSTREAM ? 'B' : '.', pix_desc->name, pix_desc->nb_components, av_get_bits_per_pixel(pix_desc)); @@ -1635,36 +936,7 @@ return 0; } -int show_layouts(void *optctx, const char *opt, const char *arg) -{ - int i = 0; - uint64_t layout, j; - const char *name, *descr; - - printf("Individual channels:\n" - "NAME DESCRIPTION\n"); - for (i = 0; i < 63; i++) { - name = av_get_channel_name((uint64_t)1 << i); - if (!name) - continue; - descr = av_get_channel_description((uint64_t)1 << i); - printf("%-14s %s\n", name, descr); - } - printf("\nStandard channel layouts:\n" - "NAME DECOMPOSITION\n"); - for (i = 0; !av_get_standard_channel_layout(i, &layout, &name); i++) { - if (name) { - printf("%-14s ", name); - for (j = 1; j; j <<= 1) - if ((layout & j)) - printf("%s%s", (layout & (j - 1)) ? "+" : "", av_get_channel_name(j)); - printf("\n"); - } - } - return 0; -} - -int show_sample_fmts(void *optctx, const char *opt, const char *arg) +int show_sample_fmts(const char *opt, const char *arg) { int i; char fmt_str[128]; @@ -1673,184 +945,10 @@ return 0; } -static void show_help_codec(const char *name, int encoder) -{ - const AVCodecDescriptor *desc; - const AVCodec *codec; - - if (!name) { - av_log(NULL, AV_LOG_ERROR, "No codec name specified.\n"); - return; - } - - codec = encoder ? avcodec_find_encoder_by_name(name) : - avcodec_find_decoder_by_name(name); - - if (codec) - print_codec(codec); - else if ((desc = avcodec_descriptor_get_by_name(name))) { - int printed = 0; - - while ((codec = next_codec_for_id(desc->id, codec, encoder))) { - printed = 1; - print_codec(codec); - } - - if (!printed) { - av_log(NULL, AV_LOG_ERROR, "Codec '%s' is known to FFmpeg, " - "but no %s for it are available. FFmpeg might need to be " - "recompiled with additional external libraries.\n", - name, encoder ? "encoders" : "decoders"); - } - } else { - av_log(NULL, AV_LOG_ERROR, "Codec '%s' is not recognized by FFmpeg.\n", - name); - } -} - -static void show_help_demuxer(const char *name) -{ - const AVInputFormat *fmt = av_find_input_format(name); - - if (!fmt) { - av_log(NULL, AV_LOG_ERROR, "Unknown format '%s'.\n", name); - return; - } - - printf("Demuxer %s [%s]:\n", fmt->name, fmt->long_name); - - if (fmt->extensions) - printf(" Common extensions: %s.\n", fmt->extensions); - - if (fmt->priv_class) - show_help_children(fmt->priv_class, AV_OPT_FLAG_DECODING_PARAM); -} - -static void show_help_muxer(const char *name) -{ - const AVCodecDescriptor *desc; - const AVOutputFormat *fmt = av_guess_format(name, NULL, NULL); - - if (!fmt) { - av_log(NULL, AV_LOG_ERROR, "Unknown format '%s'.\n", name); - return; - } - - printf("Muxer %s [%s]:\n", fmt->name, fmt->long_name); - - if (fmt->extensions) - printf(" Common extensions: %s.\n", fmt->extensions); - if (fmt->mime_type) - printf(" Mime type: %s.\n", fmt->mime_type); - if (fmt->video_codec != AV_CODEC_ID_NONE && - (desc = avcodec_descriptor_get(fmt->video_codec))) { - printf(" Default video codec: %s.\n", desc->name); - } - if (fmt->audio_codec != AV_CODEC_ID_NONE && - (desc = avcodec_descriptor_get(fmt->audio_codec))) { - printf(" Default audio codec: %s.\n", desc->name); - } - if (fmt->subtitle_codec != AV_CODEC_ID_NONE && - (desc = avcodec_descriptor_get(fmt->subtitle_codec))) { - printf(" Default subtitle codec: %s.\n", desc->name); - } - - if (fmt->priv_class) - show_help_children(fmt->priv_class, AV_OPT_FLAG_ENCODING_PARAM); -} - -#if CONFIG_AVFILTER -static void show_help_filter(const char *name) -{ -#if CONFIG_AVFILTER - const AVFilter *f = avfilter_get_by_name(name); - int i, count; - - if (!name) { - av_log(NULL, AV_LOG_ERROR, "No filter name specified.\n"); - return; - } else if (!f) { - av_log(NULL, AV_LOG_ERROR, "Unknown filter '%s'.\n", name); - return; - } - - printf("Filter %s\n", f->name); - if (f->description) - printf(" %s\n", f->description); - - if (f->flags & AVFILTER_FLAG_SLICE_THREADS) - printf(" slice threading supported\n"); - - printf(" Inputs:\n"); - count = avfilter_pad_count(f->inputs); - for (i = 0; i < count; i++) { - printf(" #%d: %s (%s)\n", i, avfilter_pad_get_name(f->inputs, i), - media_type_string(avfilter_pad_get_type(f->inputs, i))); - } - if (f->flags & AVFILTER_FLAG_DYNAMIC_INPUTS) - printf(" dynamic (depending on the options)\n"); - else if (!count) - printf(" none (source filter)\n"); - - printf(" Outputs:\n"); - count = avfilter_pad_count(f->outputs); - for (i = 0; i < count; i++) { - printf(" #%d: %s (%s)\n", i, avfilter_pad_get_name(f->outputs, i), - media_type_string(avfilter_pad_get_type(f->outputs, i))); - } - if (f->flags & AVFILTER_FLAG_DYNAMIC_OUTPUTS) - printf(" dynamic (depending on the options)\n"); - else if (!count) - printf(" none (sink filter)\n"); - - if (f->priv_class) - show_help_children(f->priv_class, AV_OPT_FLAG_VIDEO_PARAM | AV_OPT_FLAG_FILTERING_PARAM | - AV_OPT_FLAG_AUDIO_PARAM); - if (f->flags & AVFILTER_FLAG_SUPPORT_TIMELINE) - printf("This filter has support for timeline through the 'enable' option.\n"); -#else - av_log(NULL, AV_LOG_ERROR, "Build without libavfilter; " - "can not to satisfy request\n"); -#endif -} -#endif - -int show_help(void *optctx, const char *opt, const char *arg) -{ - char *topic, *par; - av_log_set_callback(log_callback_help); - - topic = av_strdup(arg ? arg : ""); - par = strchr(topic, '='); - if (par) - *par++ = 0; - - if (!*topic) { - show_help_default(topic, par); - } else if (!strcmp(topic, "decoder")) { - show_help_codec(par, 0); - } else if (!strcmp(topic, "encoder")) { - show_help_codec(par, 1); - } else if (!strcmp(topic, "demuxer")) { - show_help_demuxer(par); - } else if (!strcmp(topic, "muxer")) { - show_help_muxer(par); -#if CONFIG_AVFILTER - } else if (!strcmp(topic, "filter")) { - show_help_filter(par); -#endif - } else { - show_help_default(topic, par); - } - - av_freep(&topic); - return 0; -} - int read_yesno(void) { int c = getchar(); - int yesno = (av_toupper(c) == 'Y'); + int yesno = (toupper(c) == 'Y'); while (c != '\n' && c != EOF) c = getchar(); @@ -1861,23 +959,16 @@ int cmdutils_read_file(const char *filename, char **bufptr, size_t *size) { int ret; - FILE *f = av_fopen_utf8(filename, "rb"); + FILE *f = fopen(filename, "rb"); if (!f) { - ret = AVERROR(errno); av_log(NULL, AV_LOG_ERROR, "Cannot read file '%s': %s\n", filename, strerror(errno)); - return ret; + return AVERROR(errno); } fseek(f, 0, SEEK_END); *size = ftell(f); fseek(f, 0, SEEK_SET); - if (*size == (size_t)-1) { - ret = AVERROR(errno); - av_log(NULL, AV_LOG_ERROR, "IO error: %s\n", strerror(errno)); - fclose(f); - return ret; - } *bufptr = av_malloc(*size + 1); if (!*bufptr) { av_log(NULL, AV_LOG_ERROR, "Could not allocate file buffer\n"); @@ -1888,14 +979,14 @@ if (ret < *size) { av_free(*bufptr); if (ferror(f)) { - ret = AVERROR(errno); av_log(NULL, AV_LOG_ERROR, "Error while reading file '%s': %s\n", filename, strerror(errno)); + ret = AVERROR(errno); } else ret = AVERROR_EOF; } else { ret = 0; - (*bufptr)[(*size)++] = '\0'; + (*bufptr)[*size++] = '\0'; } fclose(f); @@ -1942,7 +1033,7 @@ if (!f && codec_name) { snprintf(filename, filename_size, "%s%s/%s-%s.ffpreset", - base[i], i != 1 ? "" : "/.ffmpeg", codec_name, + base[i], i != 1 ? "" : "/.ffmpeg", codec_name, preset_name); f = fopen(filename, "r"); } @@ -1954,14 +1045,60 @@ int check_stream_specifier(AVFormatContext *s, AVStream *st, const char *spec) { - int ret = avformat_match_stream_specifier(s, st, spec); - if (ret < 0) - av_log(s, AV_LOG_ERROR, "Invalid stream specifier: %s.\n", spec); - return ret; + if (*spec <= '9' && *spec >= '0') /* opt:index */ + return strtol(spec, NULL, 0) == st->index; + else if (*spec == 'v' || *spec == 'a' || *spec == 's' || *spec == 'd' || + *spec == 't') { /* opt:[vasdt] */ + enum AVMediaType type; + + switch (*spec++) { + case 'v': type = AVMEDIA_TYPE_VIDEO; break; + case 'a': type = AVMEDIA_TYPE_AUDIO; break; + case 's': type = AVMEDIA_TYPE_SUBTITLE; break; + case 'd': type = AVMEDIA_TYPE_DATA; break; + case 't': type = AVMEDIA_TYPE_ATTACHMENT; break; + default: abort(); // never reached, silence warning + } + if (type != st->codec->codec_type) + return 0; + if (*spec++ == ':') { /* possibly followed by :index */ + int i, index = strtol(spec, NULL, 0); + for (i = 0; i < s->nb_streams; i++) + if (s->streams[i]->codec->codec_type == type && index-- == 0) + return i == st->index; + return 0; + } + return 1; + } else if (*spec == 'p' && *(spec + 1) == ':') { + int prog_id, i, j; + char *endptr; + spec += 2; + prog_id = strtol(spec, &endptr, 0); + for (i = 0; i < s->nb_programs; i++) { + if (s->programs[i]->id != prog_id) + continue; + + if (*endptr++ == ':') { + int stream_idx = strtol(endptr, NULL, 0); + return stream_idx >= 0 && + stream_idx < s->programs[i]->nb_stream_indexes && + st->index == s->programs[i]->stream_index[stream_idx]; + } + + for (j = 0; j < s->programs[i]->nb_stream_indexes; j++) + if (st->index == s->programs[i]->stream_index[j]) + return 1; + } + return 0; + } else if (!*spec) /* empty specifier, matches everything */ + return 1; + + av_log(s, AV_LOG_ERROR, "Invalid stream specifier: %s.\n", spec); + return AVERROR(EINVAL); } -AVDictionary *filter_codec_opts(AVDictionary *opts, enum AVCodecID codec_id, - AVFormatContext *s, AVStream *st, AVCodec *codec) +AVDictionary *filter_codec_opts(AVDictionary *opts, AVCodec *codec, + AVFormatContext *s, AVStream *st) { AVDictionary *ret = NULL; AVDictionaryEntry *t = NULL; @@ -1971,10 +1108,9 @@ const AVClass *cc = avcodec_get_class(); if (!codec) - codec = s->oformat ? avcodec_find_encoder(codec_id) - : avcodec_find_decoder(codec_id); + return NULL; - switch (st->codec->codec_type) { + switch (codec->type) { case AVMEDIA_TYPE_VIDEO: prefix = 'v'; flags |= AV_OPT_FLAG_VIDEO_PARAM; @@ -1997,12 +1133,11 @@ switch (check_stream_specifier(s, st, p + 1)) { case 1: *p = 0; break; case 0: continue; - default: exit_program(1); + default: return NULL; } if (av_opt_find(&cc, t->key, NULL, flags, AV_OPT_SEARCH_FAKE_OBJ) || - !codec || - (codec->priv_class && + (codec && codec->priv_class && av_opt_find(&codec->priv_class, t->key, NULL, flags, AV_OPT_SEARCH_FAKE_OBJ))) av_dict_set(&ret, t->key, t->value, 0); @@ -2025,15 +1160,15 @@ if (!s->nb_streams) return NULL; - opts = av_mallocz_array(s->nb_streams, sizeof(*opts)); + opts = av_mallocz(s->nb_streams * sizeof(*opts)); if (!opts) { av_log(NULL, AV_LOG_ERROR, "Could not alloc memory for stream options.\n"); return NULL; } for (i = 0; i < s->nb_streams; i++) - opts[i] = filter_codec_opts(codec_opts, s->streams[i]->codec->codec_id, - s, s->streams[i], NULL); + opts[i] = filter_codec_opts(codec_opts, avcodec_find_decoder(s->streams[i]->codec->codec_id), + s, s->streams[i]); return opts; } @@ -2055,184 +1190,3 @@ } return array; } - -#if CONFIG_AVDEVICE -static int print_device_sources(AVInputFormat *fmt, AVDictionary *opts) -{ - int ret, i; - AVFormatContext *dev = NULL; - AVDeviceInfoList *device_list = NULL; - AVDictionary *tmp_opts = NULL; - - if (!fmt || !fmt->priv_class || !AV_IS_INPUT_DEVICE(fmt->priv_class->category)) - return AVERROR(EINVAL); - - printf("Audo-detected sources for %s:\n", fmt->name); - if (!fmt->get_device_list) { - ret = AVERROR(ENOSYS); - printf("Cannot list sources. Not implemented.\n"); - goto fail; - } - - /* TODO: avformat_open_input calls read_header callback which is not necessary. - Function like avformat_alloc_output_context2 for input could be helpful here. */ - av_dict_copy(&tmp_opts, opts, 0); - if ((ret = avformat_open_input(&dev, NULL, fmt, &tmp_opts)) < 0) { - printf("Cannot open device: %s.\n", fmt->name); - goto fail; - } - - if ((ret = avdevice_list_devices(dev, &device_list)) < 0) { - printf("Cannot list sources.\n"); - goto fail; - } - - for (i = 0; i < device_list->nb_devices; i++) { - printf("%s %s [%s]\n", device_list->default_device == i ? "*" : " ", - device_list->devices[i]->device_name, device_list->devices[i]->device_description); - } - - fail: - av_dict_free(&tmp_opts); - avdevice_free_list_devices(&device_list); - avformat_close_input(&dev); - return ret; -} - -static int print_device_sinks(AVOutputFormat *fmt, AVDictionary *opts) -{ - int ret, i; - AVFormatContext *dev = NULL; - AVDeviceInfoList *device_list = NULL; - AVDictionary *tmp_opts = NULL; - - if (!fmt || !fmt->priv_class || !AV_IS_OUTPUT_DEVICE(fmt->priv_class->category)) - return AVERROR(EINVAL); - - printf("Audo-detected sinks for %s:\n", fmt->name); - if (!fmt->get_device_list) { - ret = AVERROR(ENOSYS); - printf("Cannot list sinks. Not implemented.\n"); - goto fail; - } - - if ((ret = avformat_alloc_output_context2(&dev, fmt, NULL, NULL)) < 0) { - printf("Cannot open device: %s.\n", fmt->name); - goto fail; - } - av_dict_copy(&tmp_opts, opts, 0); - av_opt_set_dict2(dev, &tmp_opts, AV_OPT_SEARCH_CHILDREN); - - if ((ret = avdevice_list_devices(dev, &device_list)) < 0) { - printf("Cannot list sinks.\n"); - goto fail; - } - - for (i = 0; i < device_list->nb_devices; i++) { - printf("%s %s [%s]\n", device_list->default_device == i ? "*" : " ", - device_list->devices[i]->device_name, device_list->devices[i]->device_description); - } - - fail: - av_dict_free(&tmp_opts); - avdevice_free_list_devices(&device_list); - avformat_free_context(dev); - return ret; -} - -static int show_sinks_sources_parse_arg(const char *arg, char **dev, AVDictionary **opts) -{ - int ret; - if (arg) { - char *opts_str = NULL; - av_assert0(dev && opts); - *dev = av_strdup(arg); - if (!*dev) - return AVERROR(ENOMEM); - if ((opts_str = strchr(*dev, ','))) { - *(opts_str++) = '\0'; - if (opts_str[0] && ((ret = av_dict_parse_string(opts, opts_str, "=", ":", 0)) < 0)) { - av_freep(dev); - return ret; - } - } - } else - printf("\nDevice name is not provided.\n" - "You can pass devicename[,opt1=val1[,opt2=val2...]] as an argument.\n\n"); - return 0; -} - -int show_sources(void *optctx, const char *opt, const char *arg) -{ - AVInputFormat *fmt = NULL; - char *dev = NULL; - AVDictionary *opts = NULL; - int ret = 0; - int error_level = av_log_get_level(); - - av_log_set_level(AV_LOG_ERROR); - - if ((ret = show_sinks_sources_parse_arg(arg, &dev, &opts)) < 0) - goto fail; - - do { - fmt = av_input_audio_device_next(fmt); - if (fmt) { - if (!strcmp(fmt->name, "lavfi")) - continue; //it's pointless to probe lavfi - if (dev && strcmp(fmt->name, dev)) - continue; - print_device_sources(fmt, opts); - } - } while (fmt); - do { - fmt = av_input_video_device_next(fmt); - if (fmt) { - if (dev && strcmp(fmt->name, dev)) - continue; - print_device_sources(fmt, opts); - } - } while (fmt); - fail: - av_dict_free(&opts); - av_free(dev); - av_log_set_level(error_level); - return ret; -} - -int show_sinks(void *optctx, const char *opt, const char *arg) -{ - AVOutputFormat *fmt = NULL; - char *dev = NULL; - AVDictionary *opts = NULL; - int ret = 0; - int error_level = av_log_get_level(); - - av_log_set_level(AV_LOG_ERROR); - - if ((ret = show_sinks_sources_parse_arg(arg, &dev, &opts)) < 0) - goto fail; - - do { - fmt = av_output_audio_device_next(fmt); - if (fmt) { - if (dev && strcmp(fmt->name, dev)) - continue; - print_device_sinks(fmt, opts); - } - } while (fmt); - do { - fmt = av_output_video_device_next(fmt); - if (fmt) { - if (dev && strcmp(fmt->name, dev)) - continue; - print_device_sinks(fmt, opts); - } - } while (fmt); - fail: - av_dict_free(&opts); - av_free(dev); - av_log_set_level(error_level); - return ret; -} -#endif diff -Nru ffmpeg-2.5/cmdutils_common_opts.h ffmpeg-0.10.12/cmdutils_common_opts.h --- ffmpeg-2.5/cmdutils_common_opts.h 2014-12-04 00:24:39.000000000 +0000 +++ ffmpeg-0.10.12/cmdutils_common_opts.h 2014-03-10 19:10:11.000000000 +0000 @@ -1,35 +1,18 @@ - { "L" , OPT_EXIT, {.func_arg = show_license}, "show license" }, - { "h" , OPT_EXIT, {.func_arg = show_help}, "show help", "topic" }, - { "?" , OPT_EXIT, {.func_arg = show_help}, "show help", "topic" }, - { "help" , OPT_EXIT, {.func_arg = show_help}, "show help", "topic" }, - { "-help" , OPT_EXIT, {.func_arg = show_help}, "show help", "topic" }, - { "version" , OPT_EXIT, {.func_arg = show_version}, "show version" }, - { "buildconf" , OPT_EXIT, {.func_arg = show_buildconf}, "show build configuration" }, - { "formats" , OPT_EXIT, {.func_arg = show_formats }, "show available formats" }, - { "devices" , OPT_EXIT, {.func_arg = show_devices }, "show available devices" }, - { "codecs" , OPT_EXIT, {.func_arg = show_codecs }, "show available codecs" }, - { "decoders" , OPT_EXIT, {.func_arg = show_decoders }, "show available decoders" }, - { "encoders" , OPT_EXIT, {.func_arg = show_encoders }, "show available encoders" }, - { "bsfs" , OPT_EXIT, {.func_arg = show_bsfs }, "show available bit stream filters" }, - { "protocols" , OPT_EXIT, {.func_arg = show_protocols}, "show available protocols" }, - { "filters" , OPT_EXIT, {.func_arg = show_filters }, "show available filters" }, - { "pix_fmts" , OPT_EXIT, {.func_arg = show_pix_fmts }, "show available pixel formats" }, - { "layouts" , OPT_EXIT, {.func_arg = show_layouts }, "show standard channel layouts" }, + { "L", OPT_EXIT, {(void*)opt_license}, "show license" }, + { "h", OPT_EXIT, {(void*)opt_help}, "show help" }, + { "?", OPT_EXIT, {(void*)opt_help}, "show help" }, + { "help", OPT_EXIT, {(void*)opt_help}, "show help" }, + { "-help", OPT_EXIT, {(void*)opt_help}, "show help" }, + { "version", OPT_EXIT, {(void*)opt_version}, "show version" }, + { "formats" , OPT_EXIT, {(void*)opt_formats }, "show available formats" }, + { "codecs" , OPT_EXIT, {(void*)opt_codecs }, "show available codecs" }, + { "bsfs" , OPT_EXIT, {(void*)opt_bsfs }, "show available bit stream filters" }, + { "protocols", OPT_EXIT, {(void*)opt_protocols}, "show available protocols" }, + { "filters", OPT_EXIT, {(void*)opt_filters }, "show available filters" }, + { "pix_fmts" , OPT_EXIT, {(void*)opt_pix_fmts }, "show available pixel formats" }, { "sample_fmts", OPT_EXIT, {.func_arg = show_sample_fmts }, "show available audio sample formats" }, - { "colors" , OPT_EXIT, {.func_arg = show_colors }, "show available color names" }, - { "loglevel" , HAS_ARG, {.func_arg = opt_loglevel}, "set logging level", "loglevel" }, - { "v", HAS_ARG, {.func_arg = opt_loglevel}, "set logging level", "loglevel" }, - { "report" , 0, {(void*)opt_report}, "generate a report" }, - { "max_alloc" , HAS_ARG, {.func_arg = opt_max_alloc}, "set maximum size of a single allocated block", "bytes" }, - { "cpuflags" , HAS_ARG | OPT_EXPERT, { .func_arg = opt_cpuflags }, "force specific cpu flags", "flags" }, - { "hide_banner", OPT_BOOL | OPT_EXPERT, {&hide_banner}, "do not show program banner", "hide_banner" }, -#if CONFIG_OPENCL - { "opencl_bench", OPT_EXIT, {.func_arg = opt_opencl_bench}, "run benchmark on all OpenCL devices and show results" }, - { "opencl_options", HAS_ARG, {.func_arg = opt_opencl}, "set OpenCL environment options" }, -#endif -#if CONFIG_AVDEVICE - { "sources" , OPT_EXIT | HAS_ARG, { .func_arg = show_sources }, - "list sources of the input device", "device" }, - { "sinks" , OPT_EXIT | HAS_ARG, { .func_arg = show_sinks }, - "list sinks of the output device", "device" }, -#endif + { "loglevel", HAS_ARG, {(void*)opt_loglevel}, "set libav* logging level", "loglevel" }, + { "v", HAS_ARG, {(void*)opt_loglevel}, "set libav* logging level", "loglevel" }, + { "debug", HAS_ARG, {(void*)opt_codec_debug}, "set debug flags", "flags" }, + { "report", 0, {(void*)opt_report}, "generate a report" }, + { "max_alloc", HAS_ARG, {(void*)opt_max_alloc}, "set maximum size of a single allocated block", "bytes" }, diff -Nru ffmpeg-2.5/cmdutils.h ffmpeg-0.10.12/cmdutils.h --- ffmpeg-2.5/cmdutils.h 2014-12-04 00:24:39.000000000 +0000 +++ ffmpeg-0.10.12/cmdutils.h 2014-03-10 19:10:11.000000000 +0000 @@ -24,13 +24,12 @@ #include -#include "config.h" #include "libavcodec/avcodec.h" #include "libavfilter/avfilter.h" #include "libavformat/avformat.h" #include "libswscale/swscale.h" -#ifdef _WIN32 +#ifdef __MINGW32__ #undef main /* We don't want SDL to override our main() */ #endif @@ -44,22 +43,15 @@ */ extern const int program_birth_year; -extern AVCodecContext *avcodec_opts[AVMEDIA_TYPE_NB]; -extern AVFormatContext *avformat_opts; -extern struct SwsContext *sws_opts; -extern AVDictionary *swr_opts; -extern AVDictionary *format_opts, *codec_opts, *resample_opts; -extern int hide_banner; - /** - * Register a program-specific cleanup routine. + * this year, defined by the program for show_banner() */ -void register_exit(void (*cb)(int ret)); +extern const int this_year; -/** - * Wraps exit with a program-specific cleanup routine. - */ -void exit_program(int ret) av_noreturn; +extern AVCodecContext *avcodec_opts[AVMEDIA_TYPE_NB]; +extern AVFormatContext *avformat_opts; +extern struct SwsContext *sws_opts; +extern AVDictionary *format_opts, *codec_opts; /** * Initialize the cmdutils option system, in particular @@ -79,37 +71,26 @@ void log_callback_help(void* ptr, int level, const char* fmt, va_list vl); /** - * Override the cpuflags. - */ -int opt_cpuflags(void *optctx, const char *opt, const char *arg); - -/** * Fallback for options that are not explicitly handled, these will be * parsed through AVOptions. */ -int opt_default(void *optctx, const char *opt, const char *arg); +int opt_default(const char *opt, const char *arg); /** * Set the libav* libraries log level. */ -int opt_loglevel(void *optctx, const char *opt, const char *arg); +int opt_loglevel(const char *opt, const char *arg); int opt_report(const char *opt); -int opt_max_alloc(void *optctx, const char *opt, const char *arg); +int opt_max_alloc(const char *opt, const char *arg); -int opt_codec_debug(void *optctx, const char *opt, const char *arg); - -#if CONFIG_OPENCL -int opt_opencl(void *optctx, const char *opt, const char *arg); - -int opt_opencl_bench(void *optctx, const char *opt, const char *arg); -#endif +int opt_codec_debug(const char *opt, const char *arg); /** * Limit the execution time. */ -int opt_timelimit(void *optctx, const char *opt, const char *arg); +int opt_timelimit(const char *opt, const char *arg); /** * Parse a string and return its corresponding value as a double. @@ -139,7 +120,7 @@ * not zero timestr is interpreted as a duration, otherwise as a * date * - * @see av_parse_time() + * @see parse_date() */ int64_t parse_time_or_die(const char *context, const char *timestr, int is_duration); @@ -155,7 +136,7 @@ } u; } SpecifierOpt; -typedef struct OptionDef { +typedef struct { const char *name; int flags; #define HAS_ARG 0x0001 @@ -164,42 +145,32 @@ #define OPT_STRING 0x0008 #define OPT_VIDEO 0x0010 #define OPT_AUDIO 0x0020 +#define OPT_GRAB 0x0040 #define OPT_INT 0x0080 #define OPT_FLOAT 0x0100 #define OPT_SUBTITLE 0x0200 #define OPT_INT64 0x0400 #define OPT_EXIT 0x0800 #define OPT_DATA 0x1000 -#define OPT_PERFILE 0x2000 /* the option is per-file (currently ffmpeg-only). - implied by OPT_OFFSET or OPT_SPEC */ +#define OPT_FUNC2 0x2000 #define OPT_OFFSET 0x4000 /* option is specified as an offset in a passed optctx */ #define OPT_SPEC 0x8000 /* option is to be stored in an array of SpecifierOpt. Implies OPT_OFFSET. Next element after the offset is an int containing element count in the array. */ #define OPT_TIME 0x10000 #define OPT_DOUBLE 0x20000 -#define OPT_INPUT 0x40000 -#define OPT_OUTPUT 0x80000 union { void *dst_ptr; - int (*func_arg)(void *, const char *, const char *); + int (*func_arg)(const char *, const char *); + int (*func2_arg)(void *, const char *, const char *); size_t off; } u; const char *help; const char *argname; } OptionDef; -/** - * Print help for all options matching specified flags. - * - * @param options a list of options - * @param msg title of this group. Only printed if at least one option matches. - * @param req_flags print only options which have all those flags set. - * @param rej_flags don't print options which have any of those flags set. - * @param alt_flags print only options that have at least one of those flags set - */ -void show_help_options(const OptionDef *options, const char *msg, int req_flags, - int rej_flags, int alt_flags); +void show_help_options(const OptionDef *options, const char *msg, int mask, + int value); /** * Show help for all options with given flags in class and all its @@ -208,22 +179,9 @@ void show_help_children(const AVClass *class, int flags); /** - * Per-fftool specific help handler. Implemented in each - * fftool, called by show_help(). - */ -void show_help_default(const char *opt, const char *arg); - -/** - * Generic -h handler common to all fftools. - */ -int show_help(void *optctx, const char *opt, const char *arg); - -/** * Parse the command line arguments. * * @param optctx an opaque options context - * @param argc number of command line arguments - * @param argv values of command line arguments * @param options Array with the definitions required to interpret every * option of the form: -option_name [argument] * @param parse_arg_function Name of the function called to process every @@ -242,112 +200,11 @@ const OptionDef *options); /** - * An option extracted from the commandline. - * Cannot use AVDictionary because of options like -map which can be - * used multiple times. - */ -typedef struct Option { - const OptionDef *opt; - const char *key; - const char *val; -} Option; - -typedef struct OptionGroupDef { - /**< group name */ - const char *name; - /** - * Option to be used as group separator. Can be NULL for groups which - * are terminated by a non-option argument (e.g. ffmpeg output files) - */ - const char *sep; - /** - * Option flags that must be set on each option that is - * applied to this group - */ - int flags; -} OptionGroupDef; - -typedef struct OptionGroup { - const OptionGroupDef *group_def; - const char *arg; - - Option *opts; - int nb_opts; - - AVDictionary *codec_opts; - AVDictionary *format_opts; - AVDictionary *resample_opts; - struct SwsContext *sws_opts; - AVDictionary *swr_opts; -} OptionGroup; - -/** - * A list of option groups that all have the same group type - * (e.g. input files or output files) - */ -typedef struct OptionGroupList { - const OptionGroupDef *group_def; - - OptionGroup *groups; - int nb_groups; -} OptionGroupList; - -typedef struct OptionParseContext { - OptionGroup global_opts; - - OptionGroupList *groups; - int nb_groups; - - /* parsing state */ - OptionGroup cur_group; -} OptionParseContext; - -/** - * Parse an options group and write results into optctx. - * - * @param optctx an app-specific options context. NULL for global options group - */ -int parse_optgroup(void *optctx, OptionGroup *g); - -/** - * Split the commandline into an intermediate form convenient for further - * processing. - * - * The commandline is assumed to be composed of options which either belong to a - * group (those with OPT_SPEC, OPT_OFFSET or OPT_PERFILE) or are global - * (everything else). - * - * A group (defined by an OptionGroupDef struct) is a sequence of options - * terminated by either a group separator option (e.g. -i) or a parameter that - * is not an option (doesn't start with -). A group without a separator option - * must always be first in the supplied groups list. - * - * All options within the same group are stored in one OptionGroup struct in an - * OptionGroupList, all groups with the same group definition are stored in one - * OptionGroupList in OptionParseContext.groups. The order of group lists is the - * same as the order of group definitions. - */ -int split_commandline(OptionParseContext *octx, int argc, char *argv[], - const OptionDef *options, - const OptionGroupDef *groups, int nb_groups); - -/** - * Free all allocated memory in an OptionParseContext. - */ -void uninit_parse_context(OptionParseContext *octx); - -/** * Find the '-loglevel' option in the command line args and apply it. */ void parse_loglevel(int argc, char **argv, const OptionDef *options); /** - * Return index of option opt in argv or 0 if not found. - */ -int locate_option(int argc, char **argv, const OptionDef *options, - const char *optname); - -/** * Check if the given stream matches a stream specifier. * * @param s Corresponding format context. @@ -364,16 +221,12 @@ * Create a new options dictionary containing only the options from * opts which apply to the codec with ID codec_id. * - * @param opts dictionary to place options in - * @param codec_id ID of the codec that should be filtered for * @param s Corresponding format context. * @param st A stream from s for which the options should be filtered. - * @param codec The particular codec for which the options should be filtered. - * If null, the default one is looked up according to the codec id. * @return a pointer to the created dictionary */ -AVDictionary *filter_codec_opts(AVDictionary *opts, enum AVCodecID codec_id, - AVFormatContext *s, AVStream *st, AVCodec *codec); +AVDictionary *filter_codec_opts(AVDictionary *opts, AVCodec *codec, + AVFormatContext *s, AVStream *st); /** * Setup AVCodecContext options for avformat_find_stream_info(). @@ -413,115 +266,62 @@ * libraries. * This option processing function does not utilize the arguments. */ -int show_version(void *optctx, const char *opt, const char *arg); - -/** - * Print the build configuration of the program to stdout. The contents - * depend on the definition of FFMPEG_CONFIGURATION. - * This option processing function does not utilize the arguments. - */ -int show_buildconf(void *optctx, const char *opt, const char *arg); +int opt_version(const char *opt, const char *arg); /** * Print the license of the program to stdout. The license depends on * the license of the libraries compiled into the program. * This option processing function does not utilize the arguments. */ -int show_license(void *optctx, const char *opt, const char *arg); +int opt_license(const char *opt, const char *arg); /** * Print a listing containing all the formats supported by the - * program (including devices). - * This option processing function does not utilize the arguments. - */ -int show_formats(void *optctx, const char *opt, const char *arg); - -/** - * Print a listing containing all the devices supported by the * program. * This option processing function does not utilize the arguments. */ -int show_devices(void *optctx, const char *opt, const char *arg); - -#if CONFIG_AVDEVICE -/** - * Print a listing containing audodetected sinks of the output device. - * Device name with options may be passed as an argument to limit results. - */ -int show_sinks(void *optctx, const char *opt, const char *arg); - -/** - * Print a listing containing audodetected sources of the input device. - * Device name with options may be passed as an argument to limit results. - */ -int show_sources(void *optctx, const char *opt, const char *arg); -#endif +int opt_formats(const char *opt, const char *arg); /** * Print a listing containing all the codecs supported by the * program. * This option processing function does not utilize the arguments. */ -int show_codecs(void *optctx, const char *opt, const char *arg); - -/** - * Print a listing containing all the decoders supported by the - * program. - */ -int show_decoders(void *optctx, const char *opt, const char *arg); - -/** - * Print a listing containing all the encoders supported by the - * program. - */ -int show_encoders(void *optctx, const char *opt, const char *arg); +int opt_codecs(const char *opt, const char *arg); /** * Print a listing containing all the filters supported by the * program. * This option processing function does not utilize the arguments. */ -int show_filters(void *optctx, const char *opt, const char *arg); +int opt_filters(const char *opt, const char *arg); /** * Print a listing containing all the bit stream filters supported by the * program. * This option processing function does not utilize the arguments. */ -int show_bsfs(void *optctx, const char *opt, const char *arg); +int opt_bsfs(const char *opt, const char *arg); /** * Print a listing containing all the protocols supported by the * program. * This option processing function does not utilize the arguments. */ -int show_protocols(void *optctx, const char *opt, const char *arg); +int opt_protocols(const char *opt, const char *arg); /** * Print a listing containing all the pixel formats supported by the * program. * This option processing function does not utilize the arguments. */ -int show_pix_fmts(void *optctx, const char *opt, const char *arg); - -/** - * Print a listing containing all the standard channel layouts supported by - * the program. - * This option processing function does not utilize the arguments. - */ -int show_layouts(void *optctx, const char *opt, const char *arg); +int opt_pix_fmts(const char *opt, const char *arg); /** * Print a listing containing all the sample formats supported by the * program. */ -int show_sample_fmts(void *optctx, const char *opt, const char *arg); - -/** - * Print a listing containing all the color names and values recognized - * by the program. - */ -int show_colors(void *optctx, const char *opt, const char *arg); +int show_sample_fmts(const char *opt, const char *arg); /** * Return a positive value if a line read from standard input @@ -533,10 +333,9 @@ * Read the file with name filename, and put its content in a newly * allocated 0-terminated buffer. * - * @param filename file to read from * @param bufptr location where pointer to buffer is returned * @param size location where size of buffer is returned - * @return >= 0 in case of success, a negative value corresponding to an + * @return 0 in case of success, a negative value corresponding to an * AVERROR error code in case of failure. */ int cmdutils_read_file(const char *filename, char **bufptr, size_t *size); @@ -550,7 +349,7 @@ * at configuration time or in a "ffpresets" folder along the executable * on win32, in that order. If no such file is found and * codec_name is defined, then search for a file named - * codec_name-preset_name.avpreset in the above-mentioned directories. + * codec_name-preset_name.ffpreset in the above-mentioned directories. * * @param filename buffer where the name of the found filename is written * @param filename_size size in bytes of the filename buffer @@ -563,38 +362,19 @@ const char *preset_name, int is_path, const char *codec_name); /** + * Do all the necessary cleanup and abort. + * This function is implemented in the avtools, not cmdutils. + */ +void exit_program(int ret); + +/** * Realloc array to hold new_size elements of elem_size. - * Calls exit() on failure. + * Calls exit_program() on failure. * - * @param array array to reallocate * @param elem_size size in bytes of each element * @param size new element count will be written here - * @param new_size number of elements to place in reallocated array * @return reallocated array */ void *grow_array(void *array, int elem_size, int *size, int new_size); -#define media_type_string av_get_media_type_string - -#define GROW_ARRAY(array, nb_elems)\ - array = grow_array(array, sizeof(*array), &nb_elems, nb_elems + 1) - -#define GET_PIX_FMT_NAME(pix_fmt)\ - const char *name = av_get_pix_fmt_name(pix_fmt); - -#define GET_SAMPLE_FMT_NAME(sample_fmt)\ - const char *name = av_get_sample_fmt_name(sample_fmt) - -#define GET_SAMPLE_RATE_NAME(rate)\ - char name[16];\ - snprintf(name, sizeof(name), "%d", rate); - -#define GET_CH_LAYOUT_NAME(ch_layout)\ - char name[16];\ - snprintf(name, sizeof(name), "0x%"PRIx64, ch_layout); - -#define GET_CH_LAYOUT_DESC(ch_layout)\ - char name[128];\ - av_get_channel_layout_string(name, sizeof(name), 0, ch_layout); - #endif /* CMDUTILS_H */ diff -Nru ffmpeg-2.5/cmdutils_opencl.c ffmpeg-0.10.12/cmdutils_opencl.c --- ffmpeg-2.5/cmdutils_opencl.c 2014-12-01 00:21:37.000000000 +0000 +++ ffmpeg-0.10.12/cmdutils_opencl.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,274 +0,0 @@ -/* - * Copyright (C) 2013 Lenny Wang - * - * 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 - */ - -#include "libavutil/opt.h" -#include "libavutil/time.h" -#include "libavutil/log.h" -#include "libavutil/opencl.h" -#include "cmdutils.h" - -typedef struct { - int platform_idx; - int device_idx; - char device_name[64]; - int64_t runtime; -} OpenCLDeviceBenchmark; - -const char *ocl_bench_source = AV_OPENCL_KERNEL( -inline unsigned char clip_uint8(int a) -{ - if (a & (~0xFF)) - return (-a)>>31; - else - return a; -} - -kernel void unsharp_bench( - global unsigned char *src, - global unsigned char *dst, - global int *mask, - int width, - int height) -{ - int i, j, local_idx, lc_idx, sum = 0; - int2 thread_idx, block_idx, global_idx, lm_idx; - thread_idx.x = get_local_id(0); - thread_idx.y = get_local_id(1); - block_idx.x = get_group_id(0); - block_idx.y = get_group_id(1); - global_idx.x = get_global_id(0); - global_idx.y = get_global_id(1); - local uchar data[32][32]; - local int lc[128]; - - for (i = 0; i <= 1; i++) { - lm_idx.y = -8 + (block_idx.y + i) * 16 + thread_idx.y; - lm_idx.y = lm_idx.y < 0 ? 0 : lm_idx.y; - lm_idx.y = lm_idx.y >= height ? height - 1: lm_idx.y; - for (j = 0; j <= 1; j++) { - lm_idx.x = -8 + (block_idx.x + j) * 16 + thread_idx.x; - lm_idx.x = lm_idx.x < 0 ? 0 : lm_idx.x; - lm_idx.x = lm_idx.x >= width ? width - 1: lm_idx.x; - data[i*16 + thread_idx.y][j*16 + thread_idx.x] = src[lm_idx.y*width + lm_idx.x]; - } - } - local_idx = thread_idx.y*16 + thread_idx.x; - if (local_idx < 128) - lc[local_idx] = mask[local_idx]; - barrier(CLK_LOCAL_MEM_FENCE); - - \n#pragma unroll\n - for (i = -4; i <= 4; i++) { - lm_idx.y = 8 + i + thread_idx.y; - \n#pragma unroll\n - for (j = -4; j <= 4; j++) { - lm_idx.x = 8 + j + thread_idx.x; - lc_idx = (i + 4)*8 + j + 4; - sum += (int)data[lm_idx.y][lm_idx.x] * lc[lc_idx]; - } - } - int temp = (int)data[thread_idx.y + 8][thread_idx.x + 8]; - int res = temp + (((temp - (int)((sum + 1<<15) >> 16))) >> 16); - if (global_idx.x < width && global_idx.y < height) - dst[global_idx.x + global_idx.y*width] = clip_uint8(res); -} -); - -#define OCLCHECK(method, ... ) \ -do { \ - status = method(__VA_ARGS__); \ - if (status != CL_SUCCESS) { \ - av_log(NULL, AV_LOG_ERROR, # method " error '%s'\n", \ - av_opencl_errstr(status)); \ - ret = AVERROR_EXTERNAL; \ - goto end; \ - } \ -} while (0) - -#define CREATEBUF(out, flags, size) \ -do { \ - out = clCreateBuffer(ext_opencl_env->context, flags, size, NULL, &status); \ - if (status != CL_SUCCESS) { \ - av_log(NULL, AV_LOG_ERROR, "Could not create OpenCL buffer\n"); \ - ret = AVERROR_EXTERNAL; \ - goto end; \ - } \ -} while (0) - -static void fill_rand_int(int *data, int n) -{ - int i; - srand(av_gettime()); - for (i = 0; i < n; i++) - data[i] = rand(); -} - -#define OPENCL_NB_ITER 5 -static int64_t run_opencl_bench(AVOpenCLExternalEnv *ext_opencl_env) -{ - int i, arg = 0, width = 1920, height = 1088; - int64_t start, ret = 0; - cl_int status; - size_t kernel_len; - char *inbuf; - int *mask; - int buf_size = width * height * sizeof(char); - int mask_size = sizeof(uint32_t) * 128; - - cl_mem cl_mask, cl_inbuf, cl_outbuf; - cl_kernel kernel = NULL; - cl_program program = NULL; - size_t local_work_size_2d[2] = {16, 16}; - size_t global_work_size_2d[2] = {(size_t)width, (size_t)height}; - - if (!(inbuf = av_malloc(buf_size)) || !(mask = av_malloc(mask_size))) { - av_log(NULL, AV_LOG_ERROR, "Out of memory\n"); - ret = AVERROR(ENOMEM); - goto end; - } - fill_rand_int((int*)inbuf, buf_size/4); - fill_rand_int(mask, mask_size/4); - - CREATEBUF(cl_mask, CL_MEM_READ_ONLY, mask_size); - CREATEBUF(cl_inbuf, CL_MEM_READ_ONLY, buf_size); - CREATEBUF(cl_outbuf, CL_MEM_READ_WRITE, buf_size); - - kernel_len = strlen(ocl_bench_source); - program = clCreateProgramWithSource(ext_opencl_env->context, 1, &ocl_bench_source, - &kernel_len, &status); - if (status != CL_SUCCESS || !program) { - av_log(NULL, AV_LOG_ERROR, "OpenCL unable to create benchmark program\n"); - ret = AVERROR_EXTERNAL; - goto end; - } - status = clBuildProgram(program, 1, &(ext_opencl_env->device_id), NULL, NULL, NULL); - if (status != CL_SUCCESS) { - av_log(NULL, AV_LOG_ERROR, "OpenCL unable to build benchmark program\n"); - ret = AVERROR_EXTERNAL; - goto end; - } - kernel = clCreateKernel(program, "unsharp_bench", &status); - if (status != CL_SUCCESS) { - av_log(NULL, AV_LOG_ERROR, "OpenCL unable to create benchmark kernel\n"); - ret = AVERROR_EXTERNAL; - goto end; - } - - OCLCHECK(clEnqueueWriteBuffer, ext_opencl_env->command_queue, cl_inbuf, CL_TRUE, 0, - buf_size, inbuf, 0, NULL, NULL); - OCLCHECK(clEnqueueWriteBuffer, ext_opencl_env->command_queue, cl_mask, CL_TRUE, 0, - mask_size, mask, 0, NULL, NULL); - OCLCHECK(clSetKernelArg, kernel, arg++, sizeof(cl_mem), &cl_inbuf); - OCLCHECK(clSetKernelArg, kernel, arg++, sizeof(cl_mem), &cl_outbuf); - OCLCHECK(clSetKernelArg, kernel, arg++, sizeof(cl_mem), &cl_mask); - OCLCHECK(clSetKernelArg, kernel, arg++, sizeof(cl_int), &width); - OCLCHECK(clSetKernelArg, kernel, arg++, sizeof(cl_int), &height); - - start = av_gettime_relative(); - for (i = 0; i < OPENCL_NB_ITER; i++) - OCLCHECK(clEnqueueNDRangeKernel, ext_opencl_env->command_queue, kernel, 2, NULL, - global_work_size_2d, local_work_size_2d, 0, NULL, NULL); - clFinish(ext_opencl_env->command_queue); - ret = (av_gettime_relative() - start)/OPENCL_NB_ITER; -end: - if (kernel) - clReleaseKernel(kernel); - if (program) - clReleaseProgram(program); - if (cl_inbuf) - clReleaseMemObject(cl_inbuf); - if (cl_outbuf) - clReleaseMemObject(cl_outbuf); - if (cl_mask) - clReleaseMemObject(cl_mask); - av_free(inbuf); - av_free(mask); - return ret; -} - -static int compare_ocl_device_desc(const void *a, const void *b) -{ - return ((OpenCLDeviceBenchmark*)a)->runtime - ((OpenCLDeviceBenchmark*)b)->runtime; -} - -int opt_opencl_bench(void *optctx, const char *opt, const char *arg) -{ - int i, j, nb_devices = 0, count = 0; - int64_t score = 0; - AVOpenCLDeviceList *device_list; - AVOpenCLDeviceNode *device_node = NULL; - OpenCLDeviceBenchmark *devices = NULL; - cl_platform_id platform; - - av_opencl_get_device_list(&device_list); - for (i = 0; i < device_list->platform_num; i++) - nb_devices += device_list->platform_node[i]->device_num; - if (!nb_devices) { - av_log(NULL, AV_LOG_ERROR, "No OpenCL device detected!\n"); - return AVERROR(EINVAL); - } - if (!(devices = av_malloc_array(nb_devices, sizeof(OpenCLDeviceBenchmark)))) { - av_log(NULL, AV_LOG_ERROR, "Could not allocate buffer\n"); - return AVERROR(ENOMEM); - } - - for (i = 0; i < device_list->platform_num; i++) { - for (j = 0; j < device_list->platform_node[i]->device_num; j++) { - device_node = device_list->platform_node[i]->device_node[j]; - platform = device_list->platform_node[i]->platform_id; - score = av_opencl_benchmark(device_node, platform, run_opencl_bench); - if (score > 0) { - devices[count].platform_idx = i; - devices[count].device_idx = j; - devices[count].runtime = score; - strcpy(devices[count].device_name, device_node->device_name); - count++; - } - } - } - qsort(devices, count, sizeof(OpenCLDeviceBenchmark), compare_ocl_device_desc); - fprintf(stderr, "platform_idx\tdevice_idx\tdevice_name\truntime\n"); - for (i = 0; i < count; i++) - fprintf(stdout, "%d\t%d\t%s\t%"PRId64"\n", - devices[i].platform_idx, devices[i].device_idx, - devices[i].device_name, devices[i].runtime); - - av_opencl_free_device_list(&device_list); - av_free(devices); - return 0; -} - -int opt_opencl(void *optctx, const char *opt, const char *arg) -{ - char *key, *value; - const char *opts = arg; - int ret = 0; - while (*opts) { - ret = av_opt_get_key_value(&opts, "=", ":", 0, &key, &value); - if (ret < 0) - return ret; - ret = av_opencl_set_option(key, value); - if (ret < 0) - return ret; - if (*opts) - opts++; - } - return ret; -} diff -Nru ffmpeg-2.5/common.mak ffmpeg-0.10.12/common.mak --- ffmpeg-2.5/common.mak 2014-12-01 00:21:37.000000000 +0000 +++ ffmpeg-0.10.12/common.mak 2014-03-10 19:10:11.000000000 +0000 @@ -10,9 +10,8 @@ ifndef V Q = @ ECHO = printf "$(1)\t%s\n" $(2) -BRIEF = CC CXX HOSTCC HOSTLD AS YASM AR LD STRIP CP WINDRES -SILENT = DEPCC DEPHOSTCC DEPAS DEPYASM RANLIB RM - +BRIEF = CC CXX AS YASM AR LD HOSTCC STRIP CP +SILENT = DEPCC YASMDEP RM RANLIB MSG = $@ M = @$(call ECHO,$(TAG),$@); $(foreach VAR,$(BRIEF), \ @@ -21,29 +20,26 @@ $(eval INSTALL = @$(call ECHO,INSTALL,$$(^:$(SRC_DIR)/%=%)); $(INSTALL)) endif -ALLFFLIBS = avcodec avdevice avfilter avformat avresample avutil postproc swscale swresample +ALLFFLIBS = avcodec avdevice avfilter avformat avutil postproc swscale swresample # NASM requires -I path terminated with / IFLAGS := -I. -I$(SRC_PATH)/ CPPFLAGS := $(IFLAGS) $(CPPFLAGS) CFLAGS += $(ECFLAGS) -CCFLAGS = $(CPPFLAGS) $(CFLAGS) -ASFLAGS := $(CPPFLAGS) $(ASFLAGS) -CXXFLAGS += $(CPPFLAGS) $(CFLAGS) -YASMFLAGS += $(IFLAGS:%=%/) -Pconfig.asm - -HOSTCCFLAGS = $(IFLAGS) $(HOSTCPPFLAGS) $(HOSTCFLAGS) -LDFLAGS := $(ALLFFLIBS:%=$(LD_PATH)lib%) $(LDFLAGS) +CCFLAGS = $(CFLAGS) +CXXFLAGS := $(CFLAGS) $(CXXFLAGS) +YASMFLAGS += $(IFLAGS) -I$(SRC_PATH)/libavutil/x86/ -Pconfig.asm +HOSTCFLAGS += $(IFLAGS) +LDFLAGS := $(ALLFFLIBS:%=-Llib%) $(LDFLAGS) define COMPILE - $(call $(1)DEP,$(1)) - $($(1)) $($(1)FLAGS) $($(1)_DEPFLAGS) $($(1)_C) $($(1)_O) $< + $($(1)DEP) + $($(1)) $(CPPFLAGS) $($(1)FLAGS) $($(1)_DEPFLAGS) -c $($(1)_O) $< endef COMPILE_C = $(call COMPILE,CC) COMPILE_CXX = $(call COMPILE,CXX) COMPILE_S = $(call COMPILE,AS) -COMPILE_HOSTC = $(call COMPILE,HOSTCC) %.o: %.c $(COMPILE_C) @@ -51,26 +47,14 @@ %.o: %.cpp $(COMPILE_CXX) -%.o: %.m - $(COMPILE_C) - %.s: %.c $(CC) $(CPPFLAGS) $(CFLAGS) -S -o $@ $< %.o: %.S $(COMPILE_S) -%_host.o: %.c - $(COMPILE_HOSTC) - -%.o: %.rc - $(WINDRES) $(IFLAGS) --preprocessor "$(DEPWINDRES) -E -xc-header -DRC_INVOKED $(CC_DEPFLAGS)" -o $@ $< - -%.i: %.c - $(CC) $(CCFLAGS) $(CC_E) $< - -%.h.c: - $(Q)echo '#include "$*.h"' >$@ +%.ho: %.h + $(CC) $(CPPFLAGS) $(CFLAGS) -Wno-unused -c -o $@ -x c $< %.ver: %.v $(Q)sed 's/$$MAJOR/$($(basename $(@F))_VERSION_MAJOR)/' $^ > $@ @@ -89,18 +73,16 @@ $(OBJS): endif -include $(SRC_PATH)/arch.mak +OBJS-$(HAVE_MMX) += $(MMX-OBJS-yes) OBJS += $(OBJS-yes) -SLIBOBJS += $(SLIBOBJS-yes) -FFLIBS := $($(NAME)_FFLIBS) $(FFLIBS-yes) $(FFLIBS) +FFLIBS := $(FFLIBS-yes) $(FFLIBS) TESTPROGS += $(TESTPROGS-yes) -LDLIBS = $(FFLIBS:%=%$(BUILDSUF)) -FFEXTRALIBS := $(LDLIBS:%=$(LD_LIB)) $(EXTRALIBS) +FFEXTRALIBS := $(FFLIBS:%=-l%$(BUILDSUF)) $(EXTRALIBS) +EXAMPLES := $(EXAMPLES:%=$(SUBDIR)%-example$(EXESUF)) OBJS := $(sort $(OBJS:%=$(SUBDIR)%)) -SLIBOBJS := $(sort $(SLIBOBJS:%=$(SUBDIR)%)) TESTOBJS := $(TESTOBJS:%=$(SUBDIR)%) $(TESTPROGS:%=$(SUBDIR)%-test.o) TESTPROGS := $(TESTPROGS:%=$(SUBDIR)%-test$(EXESUF)) HOSTOBJS := $(HOSTPROGS:%=$(SUBDIR)%.o) @@ -108,39 +90,32 @@ TOOLS += $(TOOLS-yes) TOOLOBJS := $(TOOLS:%=tools/%.o) TOOLS := $(TOOLS:%=tools/%$(EXESUF)) -HEADERS += $(HEADERS-yes) -PATH_LIBNAME = $(foreach NAME,$(1),lib$(NAME)/$($(CONFIG_SHARED:yes=S)LIBNAME)) -DEP_LIBS := $(foreach lib,$(FFLIBS),$(call PATH_LIBNAME,$(lib))) +DEP_LIBS := $(foreach NAME,$(FFLIBS),lib$(NAME)/$($(CONFIG_SHARED:yes=S)LIBNAME)) -SRC_DIR := $(SRC_PATH)/lib$(NAME) ALLHEADERS := $(subst $(SRC_DIR)/,$(SUBDIR),$(wildcard $(SRC_DIR)/*.h $(SRC_DIR)/$(ARCH)/*.h)) SKIPHEADERS += $(ARCH_HEADERS:%=$(ARCH)/%) $(SKIPHEADERS-) SKIPHEADERS := $(SKIPHEADERS:%=$(SUBDIR)%) -HOBJS = $(filter-out $(SKIPHEADERS:.h=.h.o),$(ALLHEADERS:.h=.h.o)) -checkheaders: $(HOBJS) -.SECONDARY: $(HOBJS:.o=.c) +checkheaders: $(filter-out $(SKIPHEADERS:.h=.ho),$(ALLHEADERS:.h=.ho)) alltools: $(TOOLS) $(HOSTOBJS): %.o: %.c - $(COMPILE_HOSTC) + $(HOSTCC) $(HOSTCFLAGS) -c -o $@ $< $(HOSTPROGS): %$(HOSTEXESUF): %.o - $(HOSTLD) $(HOSTLDFLAGS) $(HOSTLD_O) $^ $(HOSTLIBS) + $(HOSTCC) $(HOSTLDFLAGS) -o $@ $< $(HOSTLIBS) $(OBJS): | $(sort $(dir $(OBJS))) -$(HOBJS): | $(sort $(dir $(HOBJS))) $(HOSTOBJS): | $(sort $(dir $(HOSTOBJS))) -$(SLIBOBJS): | $(sort $(dir $(SLIBOBJS))) $(TESTOBJS): | $(sort $(dir $(TESTOBJS))) $(TOOLOBJS): | tools -OBJDIRS := $(OBJDIRS) $(dir $(OBJS) $(HOBJS) $(HOSTOBJS) $(SLIBOBJS) $(TESTOBJS)) +OBJDIRS := $(OBJDIRS) $(dir $(OBJS) $(HOSTOBJS) $(TESTOBJS)) -CLEANSUFFIXES = *.d *.o *~ *.h.c *.map *.ver *.ho *.gcno *.gcda +CLEANSUFFIXES = *.d *.o *~ *.ho *.map *.ver *.gcno *.gcda DISTCLEANSUFFIXES = *.pc -LIBSUFFIXES = *.a *.lib *.so *.so.* *.dylib *.dll *.def *.dll.a +LIBSUFFIXES = *.a *.lib *.so *.so.* *.dylib *.dll *.def *.dll.a *.exp define RULES clean:: @@ -151,4 +126,4 @@ $(eval $(RULES)) --include $(wildcard $(OBJS:.o=.d) $(HOSTOBJS:.o=.d) $(TESTOBJS:.o=.d) $(HOBJS:.o=.d) $(SLIBOBJS:.o=.d)) +-include $(wildcard $(OBJS:.o=.d) $(TESTOBJS:.o=.d)) diff -Nru ffmpeg-2.5/compat/aix/math.h ffmpeg-0.10.12/compat/aix/math.h --- ffmpeg-2.5/compat/aix/math.h 2014-12-01 00:21:37.000000000 +0000 +++ ffmpeg-0.10.12/compat/aix/math.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ -/* - * Work around the class() function in AIX math.h clashing with - * identifiers named "class". - * - * 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 FFMPEG_COMPAT_AIX_MATH_H -#define FFMPEG_COMPAT_AIX_MATH_H - -#define class class_in_math_h_causes_problems - -#include_next - -#undef class - -#endif /* FFMPEG_COMPAT_AIX_MATH_H */ diff -Nru ffmpeg-2.5/compat/avisynth/avisynth_c_25.h ffmpeg-0.10.12/compat/avisynth/avisynth_c_25.h --- ffmpeg-2.5/compat/avisynth/avisynth_c_25.h 2014-12-01 00:21:37.000000000 +0000 +++ ffmpeg-0.10.12/compat/avisynth/avisynth_c_25.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,68 +0,0 @@ -// Copyright (c) 2011 FFmpegSource Project -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. - -/* these are defines/functions that are used and were changed in the switch to 2.6 - * and are needed to maintain full compatility with 2.5 */ - -enum { - AVS_CS_YV12_25 = 1<<3 | AVS_CS_YUV | AVS_CS_PLANAR, // y-v-u, planar - AVS_CS_I420_25 = 1<<4 | AVS_CS_YUV | AVS_CS_PLANAR, // y-u-v, planar -}; - -AVSC_INLINE int avs_get_height_p_25(const AVS_VideoFrame * p, int plane) { - switch (plane) - { - case AVS_PLANAR_U: case AVS_PLANAR_V: - if (p->pitchUV) - return p->height>>1; - return 0; - } - return p->height;} - -AVSC_INLINE int avs_get_row_size_p_25(const AVS_VideoFrame * p, int plane) { - int r; - switch (plane) - { - case AVS_PLANAR_U: case AVS_PLANAR_V: - if (p->pitchUV) - return p->row_size>>1; - else - return 0; - case AVS_PLANAR_U_ALIGNED: case AVS_PLANAR_V_ALIGNED: - if (p->pitchUV) - { - r = ((p->row_size+AVS_FRAME_ALIGN-1)&(~(AVS_FRAME_ALIGN-1)) )>>1; // Aligned rowsize - if (r < p->pitchUV) - return r; - return p->row_size>>1; - } - else - return 0; - case AVS_PLANAR_Y_ALIGNED: - r = (p->row_size+AVS_FRAME_ALIGN-1)&(~(AVS_FRAME_ALIGN-1)); // Aligned rowsize - if (r <= p->pitch) - return r; - return p->row_size; - } - return p->row_size; -} - -AVSC_INLINE int avs_is_yv12_25(const AVS_VideoInfo * p) - { return ((p->pixel_type & AVS_CS_YV12_25) == AVS_CS_YV12_25)||((p->pixel_type & AVS_CS_I420_25) == AVS_CS_I420_25); } diff -Nru ffmpeg-2.5/compat/avisynth/avisynth_c.h ffmpeg-0.10.12/compat/avisynth/avisynth_c.h --- ffmpeg-2.5/compat/avisynth/avisynth_c.h 2014-12-01 00:21:37.000000000 +0000 +++ ffmpeg-0.10.12/compat/avisynth/avisynth_c.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,880 +0,0 @@ -// Avisynth C Interface Version 0.20 -// Copyright 2003 Kevin Atkinson - -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -// This program 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 General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, -// MA 02110-1301 USA, or visit -// http://www.gnu.org/copyleft/gpl.html . -// -// As a special exception, I give you permission to link to the -// Avisynth C interface with independent modules that communicate with -// the Avisynth C interface solely through the interfaces defined in -// avisynth_c.h, regardless of the license terms of these independent -// modules, and to copy and distribute the resulting combined work -// under terms of your choice, provided that every copy of the -// combined work is accompanied by a complete copy of the source code -// of the Avisynth C interface and Avisynth itself (with the version -// used to produce the combined work), being distributed under the -// terms of the GNU General Public License plus this exception. An -// independent module is a module which is not derived from or based -// on Avisynth C Interface, such as 3rd-party filters, import and -// export plugins, or graphical user interfaces. - -// NOTE: this is a partial update of the Avisynth C interface to recognize -// new color spaces added in Avisynth 2.60. By no means is this document -// completely Avisynth 2.60 compliant. - -#ifndef __AVISYNTH_C__ -#define __AVISYNTH_C__ - -#ifdef __cplusplus -# define EXTERN_C extern "C" -#else -# define EXTERN_C -#endif - -#define AVSC_USE_STDCALL 1 - -#ifndef AVSC_USE_STDCALL -# define AVSC_CC __cdecl -#else -# define AVSC_CC __stdcall -#endif - -#define AVSC_INLINE static __inline - -#ifdef AVISYNTH_C_EXPORTS -# define AVSC_EXPORT EXTERN_C -# define AVSC_API(ret, name) EXTERN_C __declspec(dllexport) ret AVSC_CC name -#else -# define AVSC_EXPORT EXTERN_C __declspec(dllexport) -# ifndef AVSC_NO_DECLSPEC -# define AVSC_API(ret, name) EXTERN_C __declspec(dllimport) ret AVSC_CC name -# else -# define AVSC_API(ret, name) typedef ret (AVSC_CC *name##_func) -# endif -#endif - -typedef unsigned char BYTE; -#ifdef __GNUC__ -typedef long long int INT64; -#else -typedef __int64 INT64; -#endif - - -///////////////////////////////////////////////////////////////////// -// -// Constants -// - -#ifndef __AVISYNTH_H__ -enum { AVISYNTH_INTERFACE_VERSION = 4 }; -#endif - -enum {AVS_SAMPLE_INT8 = 1<<0, - AVS_SAMPLE_INT16 = 1<<1, - AVS_SAMPLE_INT24 = 1<<2, - AVS_SAMPLE_INT32 = 1<<3, - AVS_SAMPLE_FLOAT = 1<<4}; - -enum {AVS_PLANAR_Y=1<<0, - AVS_PLANAR_U=1<<1, - AVS_PLANAR_V=1<<2, - AVS_PLANAR_ALIGNED=1<<3, - AVS_PLANAR_Y_ALIGNED=AVS_PLANAR_Y|AVS_PLANAR_ALIGNED, - AVS_PLANAR_U_ALIGNED=AVS_PLANAR_U|AVS_PLANAR_ALIGNED, - AVS_PLANAR_V_ALIGNED=AVS_PLANAR_V|AVS_PLANAR_ALIGNED, - AVS_PLANAR_A=1<<4, - AVS_PLANAR_R=1<<5, - AVS_PLANAR_G=1<<6, - AVS_PLANAR_B=1<<7, - AVS_PLANAR_A_ALIGNED=AVS_PLANAR_A|AVS_PLANAR_ALIGNED, - AVS_PLANAR_R_ALIGNED=AVS_PLANAR_R|AVS_PLANAR_ALIGNED, - AVS_PLANAR_G_ALIGNED=AVS_PLANAR_G|AVS_PLANAR_ALIGNED, - AVS_PLANAR_B_ALIGNED=AVS_PLANAR_B|AVS_PLANAR_ALIGNED}; - - // Colorspace properties. -enum {AVS_CS_BGR = 1<<28, - AVS_CS_YUV = 1<<29, - AVS_CS_INTERLEAVED = 1<<30, - AVS_CS_PLANAR = 1<<31, - - AVS_CS_SHIFT_SUB_WIDTH = 0, - AVS_CS_SHIFT_SUB_HEIGHT = 1 << 3, - AVS_CS_SHIFT_SAMPLE_BITS = 1 << 4, - - AVS_CS_SUB_WIDTH_MASK = 7 << AVS_CS_SHIFT_SUB_WIDTH, - AVS_CS_SUB_WIDTH_1 = 3 << AVS_CS_SHIFT_SUB_WIDTH, // YV24 - AVS_CS_SUB_WIDTH_2 = 0 << AVS_CS_SHIFT_SUB_WIDTH, // YV12, I420, YV16 - AVS_CS_SUB_WIDTH_4 = 1 << AVS_CS_SHIFT_SUB_WIDTH, // YUV9, YV411 - - AVS_CS_VPLANEFIRST = 1 << 3, // YV12, YV16, YV24, YV411, YUV9 - AVS_CS_UPLANEFIRST = 1 << 4, // I420 - - AVS_CS_SUB_HEIGHT_MASK = 7 << AVS_CS_SHIFT_SUB_HEIGHT, - AVS_CS_SUB_HEIGHT_1 = 3 << AVS_CS_SHIFT_SUB_HEIGHT, // YV16, YV24, YV411 - AVS_CS_SUB_HEIGHT_2 = 0 << AVS_CS_SHIFT_SUB_HEIGHT, // YV12, I420 - AVS_CS_SUB_HEIGHT_4 = 1 << AVS_CS_SHIFT_SUB_HEIGHT, // YUV9 - - AVS_CS_SAMPLE_BITS_MASK = 7 << AVS_CS_SHIFT_SAMPLE_BITS, - AVS_CS_SAMPLE_BITS_8 = 0 << AVS_CS_SHIFT_SAMPLE_BITS, - AVS_CS_SAMPLE_BITS_16 = 1 << AVS_CS_SHIFT_SAMPLE_BITS, - AVS_CS_SAMPLE_BITS_32 = 2 << AVS_CS_SHIFT_SAMPLE_BITS, - - AVS_CS_PLANAR_MASK = AVS_CS_PLANAR | AVS_CS_INTERLEAVED | AVS_CS_YUV | AVS_CS_BGR | AVS_CS_SAMPLE_BITS_MASK | AVS_CS_SUB_HEIGHT_MASK | AVS_CS_SUB_WIDTH_MASK, - AVS_CS_PLANAR_FILTER = ~( AVS_CS_VPLANEFIRST | AVS_CS_UPLANEFIRST )}; - - // Specific colorformats -enum { - AVS_CS_UNKNOWN = 0, - AVS_CS_BGR24 = 1<<0 | AVS_CS_BGR | AVS_CS_INTERLEAVED, - AVS_CS_BGR32 = 1<<1 | AVS_CS_BGR | AVS_CS_INTERLEAVED, - AVS_CS_YUY2 = 1<<2 | AVS_CS_YUV | AVS_CS_INTERLEAVED, - // AVS_CS_YV12 = 1<<3 Reserved - // AVS_CS_I420 = 1<<4 Reserved - AVS_CS_RAW32 = 1<<5 | AVS_CS_INTERLEAVED, - - AVS_CS_YV24 = AVS_CS_PLANAR | AVS_CS_YUV | AVS_CS_SAMPLE_BITS_8 | AVS_CS_VPLANEFIRST | AVS_CS_SUB_HEIGHT_1 | AVS_CS_SUB_WIDTH_1, // YVU 4:4:4 planar - AVS_CS_YV16 = AVS_CS_PLANAR | AVS_CS_YUV | AVS_CS_SAMPLE_BITS_8 | AVS_CS_VPLANEFIRST | AVS_CS_SUB_HEIGHT_1 | AVS_CS_SUB_WIDTH_2, // YVU 4:2:2 planar - AVS_CS_YV12 = AVS_CS_PLANAR | AVS_CS_YUV | AVS_CS_SAMPLE_BITS_8 | AVS_CS_VPLANEFIRST | AVS_CS_SUB_HEIGHT_2 | AVS_CS_SUB_WIDTH_2, // YVU 4:2:0 planar - AVS_CS_I420 = AVS_CS_PLANAR | AVS_CS_YUV | AVS_CS_SAMPLE_BITS_8 | AVS_CS_UPLANEFIRST | AVS_CS_SUB_HEIGHT_2 | AVS_CS_SUB_WIDTH_2, // YUV 4:2:0 planar - AVS_CS_IYUV = AVS_CS_I420, - AVS_CS_YV411 = AVS_CS_PLANAR | AVS_CS_YUV | AVS_CS_SAMPLE_BITS_8 | AVS_CS_VPLANEFIRST | AVS_CS_SUB_HEIGHT_1 | AVS_CS_SUB_WIDTH_4, // YVU 4:1:1 planar - AVS_CS_YUV9 = AVS_CS_PLANAR | AVS_CS_YUV | AVS_CS_SAMPLE_BITS_8 | AVS_CS_VPLANEFIRST | AVS_CS_SUB_HEIGHT_4 | AVS_CS_SUB_WIDTH_4, // YVU 4:1:0 planar - AVS_CS_Y8 = AVS_CS_PLANAR | AVS_CS_INTERLEAVED | AVS_CS_YUV | AVS_CS_SAMPLE_BITS_8 // Y 4:0:0 planar -}; - -enum { - AVS_IT_BFF = 1<<0, - AVS_IT_TFF = 1<<1, - AVS_IT_FIELDBASED = 1<<2}; - -enum { - AVS_FILTER_TYPE=1, - AVS_FILTER_INPUT_COLORSPACE=2, - AVS_FILTER_OUTPUT_TYPE=9, - AVS_FILTER_NAME=4, - AVS_FILTER_AUTHOR=5, - AVS_FILTER_VERSION=6, - AVS_FILTER_ARGS=7, - AVS_FILTER_ARGS_INFO=8, - AVS_FILTER_ARGS_DESCRIPTION=10, - AVS_FILTER_DESCRIPTION=11}; - -enum { //SUBTYPES - AVS_FILTER_TYPE_AUDIO=1, - AVS_FILTER_TYPE_VIDEO=2, - AVS_FILTER_OUTPUT_TYPE_SAME=3, - AVS_FILTER_OUTPUT_TYPE_DIFFERENT=4}; - -enum { - AVS_CACHE_NOTHING=0, - AVS_CACHE_RANGE=1, - AVS_CACHE_ALL=2, - AVS_CACHE_AUDIO=3, - AVS_CACHE_AUDIO_NONE=4, - AVS_CACHE_AUDIO_AUTO=5 - }; - -#define AVS_FRAME_ALIGN 16 - -typedef struct AVS_Clip AVS_Clip; -typedef struct AVS_ScriptEnvironment AVS_ScriptEnvironment; - -///////////////////////////////////////////////////////////////////// -// -// AVS_VideoInfo -// - -// AVS_VideoInfo is layed out identicly to VideoInfo -typedef struct AVS_VideoInfo { - int width, height; // width=0 means no video - unsigned fps_numerator, fps_denominator; - int num_frames; - - int pixel_type; - - int audio_samples_per_second; // 0 means no audio - int sample_type; - INT64 num_audio_samples; - int nchannels; - - // Imagetype properties - - int image_type; -} AVS_VideoInfo; - -// useful functions of the above -AVSC_INLINE int avs_has_video(const AVS_VideoInfo * p) - { return (p->width!=0); } - -AVSC_INLINE int avs_has_audio(const AVS_VideoInfo * p) - { return (p->audio_samples_per_second!=0); } - -AVSC_INLINE int avs_is_rgb(const AVS_VideoInfo * p) - { return !!(p->pixel_type&AVS_CS_BGR); } - -AVSC_INLINE int avs_is_rgb24(const AVS_VideoInfo * p) - { return (p->pixel_type&AVS_CS_BGR24)==AVS_CS_BGR24; } // Clear out additional properties - -AVSC_INLINE int avs_is_rgb32(const AVS_VideoInfo * p) - { return (p->pixel_type & AVS_CS_BGR32) == AVS_CS_BGR32 ; } - -AVSC_INLINE int avs_is_yuv(const AVS_VideoInfo * p) - { return !!(p->pixel_type&AVS_CS_YUV ); } - -AVSC_INLINE int avs_is_yuy2(const AVS_VideoInfo * p) - { return (p->pixel_type & AVS_CS_YUY2) == AVS_CS_YUY2; } - -AVSC_INLINE int avs_is_yv24(const AVS_VideoInfo * p) - { return (p->pixel_type & AVS_CS_PLANAR_MASK) == (AVS_CS_YV24 & AVS_CS_PLANAR_FILTER); } - -AVSC_INLINE int avs_is_yv16(const AVS_VideoInfo * p) - { return (p->pixel_type & AVS_CS_PLANAR_MASK) == (AVS_CS_YV16 & AVS_CS_PLANAR_FILTER); } - -AVSC_INLINE int avs_is_yv12(const AVS_VideoInfo * p) - { return (p->pixel_type & AVS_CS_PLANAR_MASK) == (AVS_CS_YV12 & AVS_CS_PLANAR_FILTER); } - -AVSC_INLINE int avs_is_yv411(const AVS_VideoInfo * p) - { return (p->pixel_type & AVS_CS_PLANAR_MASK) == (AVS_CS_YV411 & AVS_CS_PLANAR_FILTER); } - -AVSC_INLINE int avs_is_y8(const AVS_VideoInfo * p) - { return (p->pixel_type & AVS_CS_PLANAR_MASK) == (AVS_CS_Y8 & AVS_CS_PLANAR_FILTER); } - -AVSC_INLINE int avs_is_property(const AVS_VideoInfo * p, int property) - { return ((p->pixel_type & property)==property ); } - -AVSC_INLINE int avs_is_planar(const AVS_VideoInfo * p) - { return !!(p->pixel_type & AVS_CS_PLANAR); } - -AVSC_INLINE int avs_is_color_space(const AVS_VideoInfo * p, int c_space) - { return avs_is_planar(p) ? ((p->pixel_type & AVS_CS_PLANAR_MASK) == (c_space & AVS_CS_PLANAR_FILTER)) : ((p->pixel_type & c_space) == c_space); } - -AVSC_INLINE int avs_is_field_based(const AVS_VideoInfo * p) - { return !!(p->image_type & AVS_IT_FIELDBASED); } - -AVSC_INLINE int avs_is_parity_known(const AVS_VideoInfo * p) - { return ((p->image_type & AVS_IT_FIELDBASED)&&(p->image_type & (AVS_IT_BFF | AVS_IT_TFF))); } - -AVSC_INLINE int avs_is_bff(const AVS_VideoInfo * p) - { return !!(p->image_type & AVS_IT_BFF); } - -AVSC_INLINE int avs_is_tff(const AVS_VideoInfo * p) - { return !!(p->image_type & AVS_IT_TFF); } - -AVSC_INLINE int avs_bits_per_pixel(const AVS_VideoInfo * p) -{ - switch (p->pixel_type) { - case AVS_CS_BGR24: return 24; - case AVS_CS_BGR32: return 32; - case AVS_CS_YUY2: return 16; - case AVS_CS_YV12: - case AVS_CS_I420: return 12; - default: return 0; - } -} -AVSC_INLINE int avs_bytes_from_pixels(const AVS_VideoInfo * p, int pixels) - { return pixels * (avs_bits_per_pixel(p)>>3); } // Will work on planar images, but will return only luma planes - -AVSC_INLINE int avs_row_size(const AVS_VideoInfo * p) - { return avs_bytes_from_pixels(p,p->width); } // Also only returns first plane on planar images - -AVSC_INLINE int avs_bmp_size(const AVS_VideoInfo * vi) - { if (avs_is_planar(vi)) {int p = vi->height * ((avs_row_size(vi)+3) & ~3); p+=p>>1; return p; } return vi->height * ((avs_row_size(vi)+3) & ~3); } - -AVSC_INLINE int avs_samples_per_second(const AVS_VideoInfo * p) - { return p->audio_samples_per_second; } - - -AVSC_INLINE int avs_bytes_per_channel_sample(const AVS_VideoInfo * p) -{ - switch (p->sample_type) { - case AVS_SAMPLE_INT8: return sizeof(signed char); - case AVS_SAMPLE_INT16: return sizeof(signed short); - case AVS_SAMPLE_INT24: return 3; - case AVS_SAMPLE_INT32: return sizeof(signed int); - case AVS_SAMPLE_FLOAT: return sizeof(float); - default: return 0; - } -} -AVSC_INLINE int avs_bytes_per_audio_sample(const AVS_VideoInfo * p) - { return p->nchannels*avs_bytes_per_channel_sample(p);} - -AVSC_INLINE INT64 avs_audio_samples_from_frames(const AVS_VideoInfo * p, INT64 frames) - { return ((INT64)(frames) * p->audio_samples_per_second * p->fps_denominator / p->fps_numerator); } - -AVSC_INLINE int avs_frames_from_audio_samples(const AVS_VideoInfo * p, INT64 samples) - { return (int)(samples * (INT64)p->fps_numerator / (INT64)p->fps_denominator / (INT64)p->audio_samples_per_second); } - -AVSC_INLINE INT64 avs_audio_samples_from_bytes(const AVS_VideoInfo * p, INT64 bytes) - { return bytes / avs_bytes_per_audio_sample(p); } - -AVSC_INLINE INT64 avs_bytes_from_audio_samples(const AVS_VideoInfo * p, INT64 samples) - { return samples * avs_bytes_per_audio_sample(p); } - -AVSC_INLINE int avs_audio_channels(const AVS_VideoInfo * p) - { return p->nchannels; } - -AVSC_INLINE int avs_sample_type(const AVS_VideoInfo * p) - { return p->sample_type;} - -// useful mutator -AVSC_INLINE void avs_set_property(AVS_VideoInfo * p, int property) - { p->image_type|=property; } - -AVSC_INLINE void avs_clear_property(AVS_VideoInfo * p, int property) - { p->image_type&=~property; } - -AVSC_INLINE void avs_set_field_based(AVS_VideoInfo * p, int isfieldbased) - { if (isfieldbased) p->image_type|=AVS_IT_FIELDBASED; else p->image_type&=~AVS_IT_FIELDBASED; } - -AVSC_INLINE void avs_set_fps(AVS_VideoInfo * p, unsigned numerator, unsigned denominator) -{ - unsigned x=numerator, y=denominator; - while (y) { // find gcd - unsigned t = x%y; x = y; y = t; - } - p->fps_numerator = numerator/x; - p->fps_denominator = denominator/x; -} - -AVSC_INLINE int avs_is_same_colorspace(AVS_VideoInfo * x, AVS_VideoInfo * y) -{ - return (x->pixel_type == y->pixel_type) - || (avs_is_yv12(x) && avs_is_yv12(y)); -} - -///////////////////////////////////////////////////////////////////// -// -// AVS_VideoFrame -// - -// VideoFrameBuffer holds information about a memory block which is used -// for video data. For efficiency, instances of this class are not deleted -// when the refcount reaches zero; instead they're stored in a linked list -// to be reused. The instances are deleted when the corresponding AVS -// file is closed. - -// AVS_VideoFrameBuffer is layed out identicly to VideoFrameBuffer -// DO NOT USE THIS STRUCTURE DIRECTLY -typedef struct AVS_VideoFrameBuffer { - BYTE * data; - int data_size; - // sequence_number is incremented every time the buffer is changed, so - // that stale views can tell they're no longer valid. - volatile long sequence_number; - - volatile long refcount; -} AVS_VideoFrameBuffer; - -// VideoFrame holds a "window" into a VideoFrameBuffer. - -// AVS_VideoFrame is layed out identicly to IVideoFrame -// DO NOT USE THIS STRUCTURE DIRECTLY -typedef struct AVS_VideoFrame { - volatile long refcount; - AVS_VideoFrameBuffer * vfb; - int offset, pitch, row_size, height, offsetU, offsetV, pitchUV; // U&V offsets are from top of picture. - int row_sizeUV, heightUV; -} AVS_VideoFrame; - -// Access functions for AVS_VideoFrame -AVSC_INLINE int avs_get_pitch(const AVS_VideoFrame * p) { - return p->pitch;} - -AVSC_INLINE int avs_get_pitch_p(const AVS_VideoFrame * p, int plane) { - switch (plane) { - case AVS_PLANAR_U: case AVS_PLANAR_V: return p->pitchUV;} - return p->pitch;} - -AVSC_INLINE int avs_get_row_size(const AVS_VideoFrame * p) { - return p->row_size; } - -AVSC_INLINE int avs_get_row_size_p(const AVS_VideoFrame * p, int plane) { - int r; - switch (plane) { - case AVS_PLANAR_U: case AVS_PLANAR_V: - if (p->pitchUV) return p->row_sizeUV; - else return 0; - case AVS_PLANAR_U_ALIGNED: case AVS_PLANAR_V_ALIGNED: - if (p->pitchUV) { - r = (p->row_sizeUV+AVS_FRAME_ALIGN-1)&(~(AVS_FRAME_ALIGN-1)); // Aligned rowsize - if (r < p->pitchUV) - return r; - return p->row_sizeUV; - } else return 0; - case AVS_PLANAR_Y_ALIGNED: - r = (p->row_size+AVS_FRAME_ALIGN-1)&(~(AVS_FRAME_ALIGN-1)); // Aligned rowsize - if (r <= p->pitch) - return r; - return p->row_size; - } - return p->row_size; -} - -AVSC_INLINE int avs_get_height(const AVS_VideoFrame * p) { - return p->height;} - -AVSC_INLINE int avs_get_height_p(const AVS_VideoFrame * p, int plane) { - switch (plane) { - case AVS_PLANAR_U: case AVS_PLANAR_V: - if (p->pitchUV) return p->heightUV; - return 0; - } - return p->height;} - -AVSC_INLINE const BYTE* avs_get_read_ptr(const AVS_VideoFrame * p) { - return p->vfb->data + p->offset;} - -AVSC_INLINE const BYTE* avs_get_read_ptr_p(const AVS_VideoFrame * p, int plane) -{ - switch (plane) { - case AVS_PLANAR_U: return p->vfb->data + p->offsetU; - case AVS_PLANAR_V: return p->vfb->data + p->offsetV; - default: return p->vfb->data + p->offset;} -} - -AVSC_INLINE int avs_is_writable(const AVS_VideoFrame * p) { - return (p->refcount == 1 && p->vfb->refcount == 1);} - -AVSC_INLINE BYTE* avs_get_write_ptr(const AVS_VideoFrame * p) -{ - if (avs_is_writable(p)) { - ++p->vfb->sequence_number; - return p->vfb->data + p->offset; - } else - return 0; -} - -AVSC_INLINE BYTE* avs_get_write_ptr_p(const AVS_VideoFrame * p, int plane) -{ - if (plane==AVS_PLANAR_Y && avs_is_writable(p)) { - ++p->vfb->sequence_number; - return p->vfb->data + p->offset; - } else if (plane==AVS_PLANAR_Y) { - return 0; - } else { - switch (plane) { - case AVS_PLANAR_U: return p->vfb->data + p->offsetU; - case AVS_PLANAR_V: return p->vfb->data + p->offsetV; - default: return p->vfb->data + p->offset; - } - } -} - - -AVSC_API(void, avs_release_video_frame)(AVS_VideoFrame *); -// makes a shallow copy of a video frame -AVSC_API(AVS_VideoFrame *, avs_copy_video_frame)(AVS_VideoFrame *); - -#ifndef AVSC_NO_DECLSPEC -AVSC_INLINE void avs_release_frame(AVS_VideoFrame * f) - {avs_release_video_frame(f);} -AVSC_INLINE AVS_VideoFrame * avs_copy_frame(AVS_VideoFrame * f) - {return avs_copy_video_frame(f);} -#endif - -///////////////////////////////////////////////////////////////////// -// -// AVS_Value -// - -// Treat AVS_Value as a fat pointer. That is use avs_copy_value -// and avs_release_value appropiaty as you would if AVS_Value was -// a pointer. - -// To maintain source code compatibility with future versions of the -// avisynth_c API don't use the AVS_Value directly. Use the helper -// functions below. - -// AVS_Value is layed out identicly to AVSValue -typedef struct AVS_Value AVS_Value; -struct AVS_Value { - short type; // 'a'rray, 'c'lip, 'b'ool, 'i'nt, 'f'loat, 's'tring, 'v'oid, or 'l'ong - // for some function e'rror - short array_size; - union { - void * clip; // do not use directly, use avs_take_clip - char boolean; - int integer; - float floating_pt; - const char * string; - const AVS_Value * array; - } d; -}; - -// AVS_Value should be initilized with avs_void. -// Should also set to avs_void after the value is released -// with avs_copy_value. Consider it the equalvent of setting -// a pointer to NULL -static const AVS_Value avs_void = {'v'}; - -AVSC_API(void, avs_copy_value)(AVS_Value * dest, AVS_Value src); -AVSC_API(void, avs_release_value)(AVS_Value); - -AVSC_INLINE int avs_defined(AVS_Value v) { return v.type != 'v'; } -AVSC_INLINE int avs_is_clip(AVS_Value v) { return v.type == 'c'; } -AVSC_INLINE int avs_is_bool(AVS_Value v) { return v.type == 'b'; } -AVSC_INLINE int avs_is_int(AVS_Value v) { return v.type == 'i'; } -AVSC_INLINE int avs_is_float(AVS_Value v) { return v.type == 'f' || v.type == 'i'; } -AVSC_INLINE int avs_is_string(AVS_Value v) { return v.type == 's'; } -AVSC_INLINE int avs_is_array(AVS_Value v) { return v.type == 'a'; } -AVSC_INLINE int avs_is_error(AVS_Value v) { return v.type == 'e'; } - -AVSC_API(AVS_Clip *, avs_take_clip)(AVS_Value, AVS_ScriptEnvironment *); -AVSC_API(void, avs_set_to_clip)(AVS_Value *, AVS_Clip *); - -AVSC_INLINE int avs_as_bool(AVS_Value v) - { return v.d.boolean; } -AVSC_INLINE int avs_as_int(AVS_Value v) - { return v.d.integer; } -AVSC_INLINE const char * avs_as_string(AVS_Value v) - { return avs_is_error(v) || avs_is_string(v) ? v.d.string : 0; } -AVSC_INLINE double avs_as_float(AVS_Value v) - { return avs_is_int(v) ? v.d.integer : v.d.floating_pt; } -AVSC_INLINE const char * avs_as_error(AVS_Value v) - { return avs_is_error(v) ? v.d.string : 0; } -AVSC_INLINE const AVS_Value * avs_as_array(AVS_Value v) - { return v.d.array; } -AVSC_INLINE int avs_array_size(AVS_Value v) - { return avs_is_array(v) ? v.array_size : 1; } -AVSC_INLINE AVS_Value avs_array_elt(AVS_Value v, int index) - { return avs_is_array(v) ? v.d.array[index] : v; } - -// only use these functions on an AVS_Value that does not already have -// an active value. Remember, treat AVS_Value as a fat pointer. -AVSC_INLINE AVS_Value avs_new_value_bool(int v0) - { AVS_Value v; v.type = 'b'; v.d.boolean = v0 == 0 ? 0 : 1; return v; } -AVSC_INLINE AVS_Value avs_new_value_int(int v0) - { AVS_Value v; v.type = 'i'; v.d.integer = v0; return v; } -AVSC_INLINE AVS_Value avs_new_value_string(const char * v0) - { AVS_Value v; v.type = 's'; v.d.string = v0; return v; } -AVSC_INLINE AVS_Value avs_new_value_float(float v0) - { AVS_Value v; v.type = 'f'; v.d.floating_pt = v0; return v;} -AVSC_INLINE AVS_Value avs_new_value_error(const char * v0) - { AVS_Value v; v.type = 'e'; v.d.string = v0; return v; } -#ifndef AVSC_NO_DECLSPEC -AVSC_INLINE AVS_Value avs_new_value_clip(AVS_Clip * v0) - { AVS_Value v; avs_set_to_clip(&v, v0); return v; } -#endif -AVSC_INLINE AVS_Value avs_new_value_array(AVS_Value * v0, int size) - { AVS_Value v; v.type = 'a'; v.d.array = v0; v.array_size = size; return v; } - -///////////////////////////////////////////////////////////////////// -// -// AVS_Clip -// - -AVSC_API(void, avs_release_clip)(AVS_Clip *); -AVSC_API(AVS_Clip *, avs_copy_clip)(AVS_Clip *); - -AVSC_API(const char *, avs_clip_get_error)(AVS_Clip *); // return 0 if no error - -AVSC_API(const AVS_VideoInfo *, avs_get_video_info)(AVS_Clip *); - -AVSC_API(int, avs_get_version)(AVS_Clip *); - -AVSC_API(AVS_VideoFrame *, avs_get_frame)(AVS_Clip *, int n); -// The returned video frame must be released with avs_release_video_frame - -AVSC_API(int, avs_get_parity)(AVS_Clip *, int n); -// return field parity if field_based, else parity of first field in frame - -AVSC_API(int, avs_get_audio)(AVS_Clip *, void * buf, - INT64 start, INT64 count); -// start and count are in samples - -AVSC_API(int, avs_set_cache_hints)(AVS_Clip *, - int cachehints, int frame_range); - -// This is the callback type used by avs_add_function -typedef AVS_Value (AVSC_CC * AVS_ApplyFunc) - (AVS_ScriptEnvironment *, AVS_Value args, void * user_data); - -typedef struct AVS_FilterInfo AVS_FilterInfo; -struct AVS_FilterInfo -{ - // these members should not be modified outside of the AVS_ApplyFunc callback - AVS_Clip * child; - AVS_VideoInfo vi; - AVS_ScriptEnvironment * env; - AVS_VideoFrame * (AVSC_CC * get_frame)(AVS_FilterInfo *, int n); - int (AVSC_CC * get_parity)(AVS_FilterInfo *, int n); - int (AVSC_CC * get_audio)(AVS_FilterInfo *, void * buf, - INT64 start, INT64 count); - int (AVSC_CC * set_cache_hints)(AVS_FilterInfo *, int cachehints, - int frame_range); - void (AVSC_CC * free_filter)(AVS_FilterInfo *); - - // Should be set when ever there is an error to report. - // It is cleared before any of the above methods are called - const char * error; - // this is to store whatever and may be modified at will - void * user_data; -}; - -// Create a new filter -// fi is set to point to the AVS_FilterInfo so that you can -// modify it once it is initilized. -// store_child should generally be set to true. If it is not -// set than ALL methods (the function pointers) must be defined -// If it is set than you do not need to worry about freeing the child -// clip. -AVSC_API(AVS_Clip *, avs_new_c_filter)(AVS_ScriptEnvironment * e, - AVS_FilterInfo * * fi, - AVS_Value child, int store_child); - -///////////////////////////////////////////////////////////////////// -// -// AVS_ScriptEnvironment -// - -// For GetCPUFlags. These are backwards-compatible with those in VirtualDub. -enum { - /* slowest CPU to support extension */ - AVS_CPU_FORCE = 0x01, // N/A - AVS_CPU_FPU = 0x02, // 386/486DX - AVS_CPU_MMX = 0x04, // P55C, K6, PII - AVS_CPU_INTEGER_SSE = 0x08, // PIII, Athlon - AVS_CPU_SSE = 0x10, // PIII, Athlon XP/MP - AVS_CPU_SSE2 = 0x20, // PIV, Hammer - AVS_CPU_3DNOW = 0x40, // K6-2 - AVS_CPU_3DNOW_EXT = 0x80, // Athlon - AVS_CPU_X86_64 = 0xA0, // Hammer (note: equiv. to 3DNow + SSE2, - // which only Hammer will have anyway) - AVS_CPUF_SSE3 = 0x100, // PIV+, K8 Venice - AVS_CPUF_SSSE3 = 0x200, // Core 2 - AVS_CPUF_SSE4 = 0x400, // Penryn, Wolfdale, Yorkfield - AVS_CPUF_SSE4_1 = 0x400, - AVS_CPUF_SSE4_2 = 0x800, // Nehalem -}; - -AVSC_API(const char *, avs_get_error)(AVS_ScriptEnvironment *); // return 0 if no error - -AVSC_API(long, avs_get_cpu_flags)(AVS_ScriptEnvironment *); -AVSC_API(int, avs_check_version)(AVS_ScriptEnvironment *, int version); - -AVSC_API(char *, avs_save_string)(AVS_ScriptEnvironment *, const char* s, int length); -AVSC_API(char *, avs_sprintf)(AVS_ScriptEnvironment *, const char * fmt, ...); - -AVSC_API(char *, avs_vsprintf)(AVS_ScriptEnvironment *, const char * fmt, void* val); - // note: val is really a va_list; I hope everyone typedefs va_list to a pointer - -AVSC_API(int, avs_add_function)(AVS_ScriptEnvironment *, - const char * name, const char * params, - AVS_ApplyFunc apply, void * user_data); - -AVSC_API(int, avs_function_exists)(AVS_ScriptEnvironment *, const char * name); - -AVSC_API(AVS_Value, avs_invoke)(AVS_ScriptEnvironment *, const char * name, - AVS_Value args, const char** arg_names); -// The returned value must be be released with avs_release_value - -AVSC_API(AVS_Value, avs_get_var)(AVS_ScriptEnvironment *, const char* name); -// The returned value must be be released with avs_release_value - -AVSC_API(int, avs_set_var)(AVS_ScriptEnvironment *, const char* name, AVS_Value val); - -AVSC_API(int, avs_set_global_var)(AVS_ScriptEnvironment *, const char* name, const AVS_Value val); - -//void avs_push_context(AVS_ScriptEnvironment *, int level=0); -//void avs_pop_context(AVS_ScriptEnvironment *); - -AVSC_API(AVS_VideoFrame *, avs_new_video_frame_a)(AVS_ScriptEnvironment *, - const AVS_VideoInfo * vi, int align); -// align should be at least 16 - -#ifndef AVSC_NO_DECLSPEC -AVSC_INLINE -AVS_VideoFrame * avs_new_video_frame(AVS_ScriptEnvironment * env, - const AVS_VideoInfo * vi) - {return avs_new_video_frame_a(env,vi,AVS_FRAME_ALIGN);} - -AVSC_INLINE -AVS_VideoFrame * avs_new_frame(AVS_ScriptEnvironment * env, - const AVS_VideoInfo * vi) - {return avs_new_video_frame_a(env,vi,AVS_FRAME_ALIGN);} -#endif - - -AVSC_API(int, avs_make_writable)(AVS_ScriptEnvironment *, AVS_VideoFrame * * pvf); - -AVSC_API(void, avs_bit_blt)(AVS_ScriptEnvironment *, BYTE* dstp, int dst_pitch, const BYTE* srcp, int src_pitch, int row_size, int height); - -typedef void (AVSC_CC *AVS_ShutdownFunc)(void* user_data, AVS_ScriptEnvironment * env); -AVSC_API(void, avs_at_exit)(AVS_ScriptEnvironment *, AVS_ShutdownFunc function, void * user_data); - -AVSC_API(AVS_VideoFrame *, avs_subframe)(AVS_ScriptEnvironment *, AVS_VideoFrame * src, int rel_offset, int new_pitch, int new_row_size, int new_height); -// The returned video frame must be be released - -AVSC_API(int, avs_set_memory_max)(AVS_ScriptEnvironment *, int mem); - -AVSC_API(int, avs_set_working_dir)(AVS_ScriptEnvironment *, const char * newdir); - -// avisynth.dll exports this; it's a way to use it as a library, without -// writing an AVS script or without going through AVIFile. -AVSC_API(AVS_ScriptEnvironment *, avs_create_script_environment)(int version); - -// this symbol is the entry point for the plugin and must -// be defined -AVSC_EXPORT -const char * AVSC_CC avisynth_c_plugin_init(AVS_ScriptEnvironment* env); - - -AVSC_API(void, avs_delete_script_environment)(AVS_ScriptEnvironment *); - - -AVSC_API(AVS_VideoFrame *, avs_subframe_planar)(AVS_ScriptEnvironment *, AVS_VideoFrame * src, int rel_offset, int new_pitch, int new_row_size, int new_height, int rel_offsetU, int rel_offsetV, int new_pitchUV); -// The returned video frame must be be released - -#ifdef AVSC_NO_DECLSPEC -// use LoadLibrary and related functions to dynamically load Avisynth instead of declspec(dllimport) -/* - The following functions needs to have been declared, probably from windows.h - - void* malloc(size_t) - void free(void*); - - HMODULE LoadLibrary(const char*); - void* GetProcAddress(HMODULE, const char*); - FreeLibrary(HMODULE); -*/ - - -typedef struct AVS_Library AVS_Library; - -#define AVSC_DECLARE_FUNC(name) name##_func name - -struct AVS_Library { - HMODULE handle; - - AVSC_DECLARE_FUNC(avs_add_function); - AVSC_DECLARE_FUNC(avs_at_exit); - AVSC_DECLARE_FUNC(avs_bit_blt); - AVSC_DECLARE_FUNC(avs_check_version); - AVSC_DECLARE_FUNC(avs_clip_get_error); - AVSC_DECLARE_FUNC(avs_copy_clip); - AVSC_DECLARE_FUNC(avs_copy_value); - AVSC_DECLARE_FUNC(avs_copy_video_frame); - AVSC_DECLARE_FUNC(avs_create_script_environment); - AVSC_DECLARE_FUNC(avs_delete_script_environment); - AVSC_DECLARE_FUNC(avs_function_exists); - AVSC_DECLARE_FUNC(avs_get_audio); - AVSC_DECLARE_FUNC(avs_get_cpu_flags); - AVSC_DECLARE_FUNC(avs_get_error); - AVSC_DECLARE_FUNC(avs_get_frame); - AVSC_DECLARE_FUNC(avs_get_parity); - AVSC_DECLARE_FUNC(avs_get_var); - AVSC_DECLARE_FUNC(avs_get_version); - AVSC_DECLARE_FUNC(avs_get_video_info); - AVSC_DECLARE_FUNC(avs_invoke); - AVSC_DECLARE_FUNC(avs_make_writable); - AVSC_DECLARE_FUNC(avs_new_c_filter); - AVSC_DECLARE_FUNC(avs_new_video_frame_a); - AVSC_DECLARE_FUNC(avs_release_clip); - AVSC_DECLARE_FUNC(avs_release_value); - AVSC_DECLARE_FUNC(avs_release_video_frame); - AVSC_DECLARE_FUNC(avs_save_string); - AVSC_DECLARE_FUNC(avs_set_cache_hints); - AVSC_DECLARE_FUNC(avs_set_global_var); - AVSC_DECLARE_FUNC(avs_set_memory_max); - AVSC_DECLARE_FUNC(avs_set_to_clip); - AVSC_DECLARE_FUNC(avs_set_var); - AVSC_DECLARE_FUNC(avs_set_working_dir); - AVSC_DECLARE_FUNC(avs_sprintf); - AVSC_DECLARE_FUNC(avs_subframe); - AVSC_DECLARE_FUNC(avs_subframe_planar); - AVSC_DECLARE_FUNC(avs_take_clip); - AVSC_DECLARE_FUNC(avs_vsprintf); -}; - -#undef AVSC_DECLARE_FUNC - - -AVSC_INLINE AVS_Library * avs_load_library() { - AVS_Library *library = (AVS_Library *)malloc(sizeof(AVS_Library)); - if (!library) - return NULL; - library->handle = LoadLibrary("avisynth"); - if (library->handle == NULL) - goto fail; - -#define __AVSC_STRINGIFY(x) #x -#define AVSC_STRINGIFY(x) __AVSC_STRINGIFY(x) -#define AVSC_LOAD_FUNC(name) {\ - library->name = (name##_func) GetProcAddress(library->handle, AVSC_STRINGIFY(name));\ - if (library->name == NULL)\ - goto fail;\ -} - - AVSC_LOAD_FUNC(avs_add_function); - AVSC_LOAD_FUNC(avs_at_exit); - AVSC_LOAD_FUNC(avs_bit_blt); - AVSC_LOAD_FUNC(avs_check_version); - AVSC_LOAD_FUNC(avs_clip_get_error); - AVSC_LOAD_FUNC(avs_copy_clip); - AVSC_LOAD_FUNC(avs_copy_value); - AVSC_LOAD_FUNC(avs_copy_video_frame); - AVSC_LOAD_FUNC(avs_create_script_environment); - AVSC_LOAD_FUNC(avs_delete_script_environment); - AVSC_LOAD_FUNC(avs_function_exists); - AVSC_LOAD_FUNC(avs_get_audio); - AVSC_LOAD_FUNC(avs_get_cpu_flags); - AVSC_LOAD_FUNC(avs_get_error); - AVSC_LOAD_FUNC(avs_get_frame); - AVSC_LOAD_FUNC(avs_get_parity); - AVSC_LOAD_FUNC(avs_get_var); - AVSC_LOAD_FUNC(avs_get_version); - AVSC_LOAD_FUNC(avs_get_video_info); - AVSC_LOAD_FUNC(avs_invoke); - AVSC_LOAD_FUNC(avs_make_writable); - AVSC_LOAD_FUNC(avs_new_c_filter); - AVSC_LOAD_FUNC(avs_new_video_frame_a); - AVSC_LOAD_FUNC(avs_release_clip); - AVSC_LOAD_FUNC(avs_release_value); - AVSC_LOAD_FUNC(avs_release_video_frame); - AVSC_LOAD_FUNC(avs_save_string); - AVSC_LOAD_FUNC(avs_set_cache_hints); - AVSC_LOAD_FUNC(avs_set_global_var); - AVSC_LOAD_FUNC(avs_set_memory_max); - AVSC_LOAD_FUNC(avs_set_to_clip); - AVSC_LOAD_FUNC(avs_set_var); - AVSC_LOAD_FUNC(avs_set_working_dir); - AVSC_LOAD_FUNC(avs_sprintf); - AVSC_LOAD_FUNC(avs_subframe); - AVSC_LOAD_FUNC(avs_subframe_planar); - AVSC_LOAD_FUNC(avs_take_clip); - AVSC_LOAD_FUNC(avs_vsprintf); - -#undef __AVSC_STRINGIFY -#undef AVSC_STRINGIFY -#undef AVSC_LOAD_FUNC - - return library; - -fail: - free(library); - return NULL; -} - -AVSC_INLINE void avs_free_library(AVS_Library *library) { - if (!library) - return; - FreeLibrary(library->handle); - free(library); -} -#endif - -#endif diff -Nru ffmpeg-2.5/compat/avisynth/avxsynth_c.h ffmpeg-0.10.12/compat/avisynth/avxsynth_c.h --- ffmpeg-2.5/compat/avisynth/avxsynth_c.h 2014-12-01 00:21:37.000000000 +0000 +++ ffmpeg-0.10.12/compat/avisynth/avxsynth_c.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,728 +0,0 @@ -// Avisynth C Interface Version 0.20 -// Copyright 2003 Kevin Atkinson - -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -// This program 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 General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, -// MA 02110-1301 USA, or visit -// http://www.gnu.org/copyleft/gpl.html . -// -// As a special exception, I give you permission to link to the -// Avisynth C interface with independent modules that communicate with -// the Avisynth C interface solely through the interfaces defined in -// avisynth_c.h, regardless of the license terms of these independent -// modules, and to copy and distribute the resulting combined work -// under terms of your choice, provided that every copy of the -// combined work is accompanied by a complete copy of the source code -// of the Avisynth C interface and Avisynth itself (with the version -// used to produce the combined work), being distributed under the -// terms of the GNU General Public License plus this exception. An -// independent module is a module which is not derived from or based -// on Avisynth C Interface, such as 3rd-party filters, import and -// export plugins, or graphical user interfaces. - -#ifndef __AVXSYNTH_C__ -#define __AVXSYNTH_C__ - -#include "windowsPorts/windows2linux.h" -#include - -#ifdef __cplusplus -# define EXTERN_C extern "C" -#else -# define EXTERN_C -#endif - -#define AVSC_USE_STDCALL 1 - -#ifndef AVSC_USE_STDCALL -# define AVSC_CC __cdecl -#else -# define AVSC_CC __stdcall -#endif - -#define AVSC_INLINE static __inline - -#ifdef AVISYNTH_C_EXPORTS -# define AVSC_EXPORT EXTERN_C -# define AVSC_API(ret, name) EXTERN_C __declspec(dllexport) ret AVSC_CC name -#else -# define AVSC_EXPORT EXTERN_C __declspec(dllexport) -# ifndef AVSC_NO_DECLSPEC -# define AVSC_API(ret, name) EXTERN_C __declspec(dllimport) ret AVSC_CC name -# else -# define AVSC_API(ret, name) typedef ret (AVSC_CC *name##_func) -# endif -#endif - -#ifdef __GNUC__ -typedef long long int INT64; -#else -typedef __int64 INT64; -#endif - - -///////////////////////////////////////////////////////////////////// -// -// Constants -// - -#ifndef __AVXSYNTH_H__ -enum { AVISYNTH_INTERFACE_VERSION = 3 }; -#endif - -enum {AVS_SAMPLE_INT8 = 1<<0, - AVS_SAMPLE_INT16 = 1<<1, - AVS_SAMPLE_INT24 = 1<<2, - AVS_SAMPLE_INT32 = 1<<3, - AVS_SAMPLE_FLOAT = 1<<4}; - -enum {AVS_PLANAR_Y=1<<0, - AVS_PLANAR_U=1<<1, - AVS_PLANAR_V=1<<2, - AVS_PLANAR_ALIGNED=1<<3, - AVS_PLANAR_Y_ALIGNED=AVS_PLANAR_Y|AVS_PLANAR_ALIGNED, - AVS_PLANAR_U_ALIGNED=AVS_PLANAR_U|AVS_PLANAR_ALIGNED, - AVS_PLANAR_V_ALIGNED=AVS_PLANAR_V|AVS_PLANAR_ALIGNED}; - - // Colorspace properties. -enum {AVS_CS_BGR = 1<<28, - AVS_CS_YUV = 1<<29, - AVS_CS_INTERLEAVED = 1<<30, - AVS_CS_PLANAR = 1<<31}; - - // Specific colorformats -enum { - AVS_CS_UNKNOWN = 0, - AVS_CS_BGR24 = 1<<0 | AVS_CS_BGR | AVS_CS_INTERLEAVED, - AVS_CS_BGR32 = 1<<1 | AVS_CS_BGR | AVS_CS_INTERLEAVED, - AVS_CS_YUY2 = 1<<2 | AVS_CS_YUV | AVS_CS_INTERLEAVED, - AVS_CS_YV12 = 1<<3 | AVS_CS_YUV | AVS_CS_PLANAR, // y-v-u, planar - AVS_CS_I420 = 1<<4 | AVS_CS_YUV | AVS_CS_PLANAR, // y-u-v, planar - AVS_CS_IYUV = 1<<4 | AVS_CS_YUV | AVS_CS_PLANAR // same as above -}; - -enum { - AVS_IT_BFF = 1<<0, - AVS_IT_TFF = 1<<1, - AVS_IT_FIELDBASED = 1<<2}; - -enum { - AVS_FILTER_TYPE=1, - AVS_FILTER_INPUT_COLORSPACE=2, - AVS_FILTER_OUTPUT_TYPE=9, - AVS_FILTER_NAME=4, - AVS_FILTER_AUTHOR=5, - AVS_FILTER_VERSION=6, - AVS_FILTER_ARGS=7, - AVS_FILTER_ARGS_INFO=8, - AVS_FILTER_ARGS_DESCRIPTION=10, - AVS_FILTER_DESCRIPTION=11}; - -enum { //SUBTYPES - AVS_FILTER_TYPE_AUDIO=1, - AVS_FILTER_TYPE_VIDEO=2, - AVS_FILTER_OUTPUT_TYPE_SAME=3, - AVS_FILTER_OUTPUT_TYPE_DIFFERENT=4}; - -enum { - AVS_CACHE_NOTHING=0, - AVS_CACHE_RANGE=1, - AVS_CACHE_ALL=2, - AVS_CACHE_AUDIO=3, - AVS_CACHE_AUDIO_NONE=4, - AVS_CACHE_AUDIO_AUTO=5 -}; - -#define AVS_FRAME_ALIGN 16 - -typedef struct AVS_Clip AVS_Clip; -typedef struct AVS_ScriptEnvironment AVS_ScriptEnvironment; - -///////////////////////////////////////////////////////////////////// -// -// AVS_VideoInfo -// - -// AVS_VideoInfo is layed out identicly to VideoInfo -typedef struct AVS_VideoInfo { - int width, height; // width=0 means no video - unsigned fps_numerator, fps_denominator; - int num_frames; - - int pixel_type; - - int audio_samples_per_second; // 0 means no audio - int sample_type; - INT64 num_audio_samples; - int nchannels; - - // Imagetype properties - - int image_type; -} AVS_VideoInfo; - -// useful functions of the above -AVSC_INLINE int avs_has_video(const AVS_VideoInfo * p) - { return (p->width!=0); } - -AVSC_INLINE int avs_has_audio(const AVS_VideoInfo * p) - { return (p->audio_samples_per_second!=0); } - -AVSC_INLINE int avs_is_rgb(const AVS_VideoInfo * p) - { return !!(p->pixel_type&AVS_CS_BGR); } - -AVSC_INLINE int avs_is_rgb24(const AVS_VideoInfo * p) - { return (p->pixel_type&AVS_CS_BGR24)==AVS_CS_BGR24; } // Clear out additional properties - -AVSC_INLINE int avs_is_rgb32(const AVS_VideoInfo * p) - { return (p->pixel_type & AVS_CS_BGR32) == AVS_CS_BGR32 ; } - -AVSC_INLINE int avs_is_yuv(const AVS_VideoInfo * p) - { return !!(p->pixel_type&AVS_CS_YUV ); } - -AVSC_INLINE int avs_is_yuy2(const AVS_VideoInfo * p) - { return (p->pixel_type & AVS_CS_YUY2) == AVS_CS_YUY2; } - -AVSC_INLINE int avs_is_yv12(const AVS_VideoInfo * p) - { return ((p->pixel_type & AVS_CS_YV12) == AVS_CS_YV12)||((p->pixel_type & AVS_CS_I420) == AVS_CS_I420); } - -AVSC_INLINE int avs_is_color_space(const AVS_VideoInfo * p, int c_space) - { return ((p->pixel_type & c_space) == c_space); } - -AVSC_INLINE int avs_is_property(const AVS_VideoInfo * p, int property) - { return ((p->pixel_type & property)==property ); } - -AVSC_INLINE int avs_is_planar(const AVS_VideoInfo * p) - { return !!(p->pixel_type & AVS_CS_PLANAR); } - -AVSC_INLINE int avs_is_field_based(const AVS_VideoInfo * p) - { return !!(p->image_type & AVS_IT_FIELDBASED); } - -AVSC_INLINE int avs_is_parity_known(const AVS_VideoInfo * p) - { return ((p->image_type & AVS_IT_FIELDBASED)&&(p->image_type & (AVS_IT_BFF | AVS_IT_TFF))); } - -AVSC_INLINE int avs_is_bff(const AVS_VideoInfo * p) - { return !!(p->image_type & AVS_IT_BFF); } - -AVSC_INLINE int avs_is_tff(const AVS_VideoInfo * p) - { return !!(p->image_type & AVS_IT_TFF); } - -AVSC_INLINE int avs_bits_per_pixel(const AVS_VideoInfo * p) -{ - switch (p->pixel_type) { - case AVS_CS_BGR24: return 24; - case AVS_CS_BGR32: return 32; - case AVS_CS_YUY2: return 16; - case AVS_CS_YV12: - case AVS_CS_I420: return 12; - default: return 0; - } -} -AVSC_INLINE int avs_bytes_from_pixels(const AVS_VideoInfo * p, int pixels) - { return pixels * (avs_bits_per_pixel(p)>>3); } // Will work on planar images, but will return only luma planes - -AVSC_INLINE int avs_row_size(const AVS_VideoInfo * p) - { return avs_bytes_from_pixels(p,p->width); } // Also only returns first plane on planar images - -AVSC_INLINE int avs_bmp_size(const AVS_VideoInfo * vi) - { if (avs_is_planar(vi)) {int p = vi->height * ((avs_row_size(vi)+3) & ~3); p+=p>>1; return p; } return vi->height * ((avs_row_size(vi)+3) & ~3); } - -AVSC_INLINE int avs_samples_per_second(const AVS_VideoInfo * p) - { return p->audio_samples_per_second; } - - -AVSC_INLINE int avs_bytes_per_channel_sample(const AVS_VideoInfo * p) -{ - switch (p->sample_type) { - case AVS_SAMPLE_INT8: return sizeof(signed char); - case AVS_SAMPLE_INT16: return sizeof(signed short); - case AVS_SAMPLE_INT24: return 3; - case AVS_SAMPLE_INT32: return sizeof(signed int); - case AVS_SAMPLE_FLOAT: return sizeof(float); - default: return 0; - } -} -AVSC_INLINE int avs_bytes_per_audio_sample(const AVS_VideoInfo * p) - { return p->nchannels*avs_bytes_per_channel_sample(p);} - -AVSC_INLINE INT64 avs_audio_samples_from_frames(const AVS_VideoInfo * p, INT64 frames) - { return ((INT64)(frames) * p->audio_samples_per_second * p->fps_denominator / p->fps_numerator); } - -AVSC_INLINE int avs_frames_from_audio_samples(const AVS_VideoInfo * p, INT64 samples) - { return (int)(samples * (INT64)p->fps_numerator / (INT64)p->fps_denominator / (INT64)p->audio_samples_per_second); } - -AVSC_INLINE INT64 avs_audio_samples_from_bytes(const AVS_VideoInfo * p, INT64 bytes) - { return bytes / avs_bytes_per_audio_sample(p); } - -AVSC_INLINE INT64 avs_bytes_from_audio_samples(const AVS_VideoInfo * p, INT64 samples) - { return samples * avs_bytes_per_audio_sample(p); } - -AVSC_INLINE int avs_audio_channels(const AVS_VideoInfo * p) - { return p->nchannels; } - -AVSC_INLINE int avs_sample_type(const AVS_VideoInfo * p) - { return p->sample_type;} - -// useful mutator -AVSC_INLINE void avs_set_property(AVS_VideoInfo * p, int property) - { p->image_type|=property; } - -AVSC_INLINE void avs_clear_property(AVS_VideoInfo * p, int property) - { p->image_type&=~property; } - -AVSC_INLINE void avs_set_field_based(AVS_VideoInfo * p, int isfieldbased) - { if (isfieldbased) p->image_type|=AVS_IT_FIELDBASED; else p->image_type&=~AVS_IT_FIELDBASED; } - -AVSC_INLINE void avs_set_fps(AVS_VideoInfo * p, unsigned numerator, unsigned denominator) -{ - unsigned x=numerator, y=denominator; - while (y) { // find gcd - unsigned t = x%y; x = y; y = t; - } - p->fps_numerator = numerator/x; - p->fps_denominator = denominator/x; -} - -AVSC_INLINE int avs_is_same_colorspace(AVS_VideoInfo * x, AVS_VideoInfo * y) -{ - return (x->pixel_type == y->pixel_type) - || (avs_is_yv12(x) && avs_is_yv12(y)); -} - -///////////////////////////////////////////////////////////////////// -// -// AVS_VideoFrame -// - -// VideoFrameBuffer holds information about a memory block which is used -// for video data. For efficiency, instances of this class are not deleted -// when the refcount reaches zero; instead they're stored in a linked list -// to be reused. The instances are deleted when the corresponding AVS -// file is closed. - -// AVS_VideoFrameBuffer is layed out identicly to VideoFrameBuffer -// DO NOT USE THIS STRUCTURE DIRECTLY -typedef struct AVS_VideoFrameBuffer { - unsigned char * data; - int data_size; - // sequence_number is incremented every time the buffer is changed, so - // that stale views can tell they're no longer valid. - long sequence_number; - - long refcount; -} AVS_VideoFrameBuffer; - -// VideoFrame holds a "window" into a VideoFrameBuffer. - -// AVS_VideoFrame is layed out identicly to IVideoFrame -// DO NOT USE THIS STRUCTURE DIRECTLY -typedef struct AVS_VideoFrame { - int refcount; - AVS_VideoFrameBuffer * vfb; - int offset, pitch, row_size, height, offsetU, offsetV, pitchUV; // U&V offsets are from top of picture. -} AVS_VideoFrame; - -// Access functions for AVS_VideoFrame -AVSC_INLINE int avs_get_pitch(const AVS_VideoFrame * p) { - return p->pitch;} - -AVSC_INLINE int avs_get_pitch_p(const AVS_VideoFrame * p, int plane) { - switch (plane) { - case AVS_PLANAR_U: case AVS_PLANAR_V: return p->pitchUV;} - return p->pitch;} - -AVSC_INLINE int avs_get_row_size(const AVS_VideoFrame * p) { - return p->row_size; } - -AVSC_INLINE int avs_get_row_size_p(const AVS_VideoFrame * p, int plane) { - int r; - switch (plane) { - case AVS_PLANAR_U: case AVS_PLANAR_V: - if (p->pitchUV) return p->row_size>>1; - else return 0; - case AVS_PLANAR_U_ALIGNED: case AVS_PLANAR_V_ALIGNED: - if (p->pitchUV) { - r = ((p->row_size+AVS_FRAME_ALIGN-1)&(~(AVS_FRAME_ALIGN-1)) )>>1; // Aligned rowsize - if (r < p->pitchUV) - return r; - return p->row_size>>1; - } else return 0; - case AVS_PLANAR_Y_ALIGNED: - r = (p->row_size+AVS_FRAME_ALIGN-1)&(~(AVS_FRAME_ALIGN-1)); // Aligned rowsize - if (r <= p->pitch) - return r; - return p->row_size; - } - return p->row_size; -} - -AVSC_INLINE int avs_get_height(const AVS_VideoFrame * p) { - return p->height;} - -AVSC_INLINE int avs_get_height_p(const AVS_VideoFrame * p, int plane) { - switch (plane) { - case AVS_PLANAR_U: case AVS_PLANAR_V: - if (p->pitchUV) return p->height>>1; - return 0; - } - return p->height;} - -AVSC_INLINE const unsigned char* avs_get_read_ptr(const AVS_VideoFrame * p) { - return p->vfb->data + p->offset;} - -AVSC_INLINE const unsigned char* avs_get_read_ptr_p(const AVS_VideoFrame * p, int plane) -{ - switch (plane) { - case AVS_PLANAR_U: return p->vfb->data + p->offsetU; - case AVS_PLANAR_V: return p->vfb->data + p->offsetV; - default: return p->vfb->data + p->offset;} -} - -AVSC_INLINE int avs_is_writable(const AVS_VideoFrame * p) { - return (p->refcount == 1 && p->vfb->refcount == 1);} - -AVSC_INLINE unsigned char* avs_get_write_ptr(const AVS_VideoFrame * p) -{ - if (avs_is_writable(p)) { - ++p->vfb->sequence_number; - return p->vfb->data + p->offset; - } else - return 0; -} - -AVSC_INLINE unsigned char* avs_get_write_ptr_p(const AVS_VideoFrame * p, int plane) -{ - if (plane==AVS_PLANAR_Y && avs_is_writable(p)) { - ++p->vfb->sequence_number; - return p->vfb->data + p->offset; - } else if (plane==AVS_PLANAR_Y) { - return 0; - } else { - switch (plane) { - case AVS_PLANAR_U: return p->vfb->data + p->offsetU; - case AVS_PLANAR_V: return p->vfb->data + p->offsetV; - default: return p->vfb->data + p->offset; - } - } -} - -#if defined __cplusplus -extern "C" -{ -#endif // __cplusplus -AVSC_API(void, avs_release_video_frame)(AVS_VideoFrame *); -// makes a shallow copy of a video frame -AVSC_API(AVS_VideoFrame *, avs_copy_video_frame)(AVS_VideoFrame *); -#if defined __cplusplus -} -#endif // __cplusplus - -#ifndef AVSC_NO_DECLSPEC -AVSC_INLINE void avs_release_frame(AVS_VideoFrame * f) - {avs_release_video_frame(f);} -AVSC_INLINE AVS_VideoFrame * avs_copy_frame(AVS_VideoFrame * f) - {return avs_copy_video_frame(f);} -#endif - -///////////////////////////////////////////////////////////////////// -// -// AVS_Value -// - -// Treat AVS_Value as a fat pointer. That is use avs_copy_value -// and avs_release_value appropiaty as you would if AVS_Value was -// a pointer. - -// To maintain source code compatibility with future versions of the -// avisynth_c API don't use the AVS_Value directly. Use the helper -// functions below. - -// AVS_Value is layed out identicly to AVSValue -typedef struct AVS_Value AVS_Value; -struct AVS_Value { - short type; // 'a'rray, 'c'lip, 'b'ool, 'i'nt, 'f'loat, 's'tring, 'v'oid, or 'l'ong - // for some function e'rror - short array_size; - union { - void * clip; // do not use directly, use avs_take_clip - char boolean; - int integer; - INT64 integer64; // match addition of __int64 to avxplugin.h - float floating_pt; - const char * string; - const AVS_Value * array; - } d; -}; - -// AVS_Value should be initilized with avs_void. -// Should also set to avs_void after the value is released -// with avs_copy_value. Consider it the equalvent of setting -// a pointer to NULL -static const AVS_Value avs_void = {'v'}; - -AVSC_API(void, avs_copy_value)(AVS_Value * dest, AVS_Value src); -AVSC_API(void, avs_release_value)(AVS_Value); - -AVSC_INLINE int avs_defined(AVS_Value v) { return v.type != 'v'; } -AVSC_INLINE int avs_is_clip(AVS_Value v) { return v.type == 'c'; } -AVSC_INLINE int avs_is_bool(AVS_Value v) { return v.type == 'b'; } -AVSC_INLINE int avs_is_int(AVS_Value v) { return v.type == 'i'; } -AVSC_INLINE int avs_is_float(AVS_Value v) { return v.type == 'f' || v.type == 'i'; } -AVSC_INLINE int avs_is_string(AVS_Value v) { return v.type == 's'; } -AVSC_INLINE int avs_is_array(AVS_Value v) { return v.type == 'a'; } -AVSC_INLINE int avs_is_error(AVS_Value v) { return v.type == 'e'; } - -#if defined __cplusplus -extern "C" -{ -#endif // __cplusplus -AVSC_API(AVS_Clip *, avs_take_clip)(AVS_Value, AVS_ScriptEnvironment *); -AVSC_API(void, avs_set_to_clip)(AVS_Value *, AVS_Clip *); -#if defined __cplusplus -} -#endif // __cplusplus - -AVSC_INLINE int avs_as_bool(AVS_Value v) - { return v.d.boolean; } -AVSC_INLINE int avs_as_int(AVS_Value v) - { return v.d.integer; } -AVSC_INLINE const char * avs_as_string(AVS_Value v) - { return avs_is_error(v) || avs_is_string(v) ? v.d.string : 0; } -AVSC_INLINE double avs_as_float(AVS_Value v) - { return avs_is_int(v) ? v.d.integer : v.d.floating_pt; } -AVSC_INLINE const char * avs_as_error(AVS_Value v) - { return avs_is_error(v) ? v.d.string : 0; } -AVSC_INLINE const AVS_Value * avs_as_array(AVS_Value v) - { return v.d.array; } -AVSC_INLINE int avs_array_size(AVS_Value v) - { return avs_is_array(v) ? v.array_size : 1; } -AVSC_INLINE AVS_Value avs_array_elt(AVS_Value v, int index) - { return avs_is_array(v) ? v.d.array[index] : v; } - -// only use these functions on am AVS_Value that does not already have -// an active value. Remember, treat AVS_Value as a fat pointer. -AVSC_INLINE AVS_Value avs_new_value_bool(int v0) - { AVS_Value v; v.type = 'b'; v.d.boolean = v0 == 0 ? 0 : 1; return v; } -AVSC_INLINE AVS_Value avs_new_value_int(int v0) - { AVS_Value v; v.type = 'i'; v.d.integer = v0; return v; } -AVSC_INLINE AVS_Value avs_new_value_string(const char * v0) - { AVS_Value v; v.type = 's'; v.d.string = v0; return v; } -AVSC_INLINE AVS_Value avs_new_value_float(float v0) - { AVS_Value v; v.type = 'f'; v.d.floating_pt = v0; return v;} -AVSC_INLINE AVS_Value avs_new_value_error(const char * v0) - { AVS_Value v; v.type = 'e'; v.d.string = v0; return v; } -#ifndef AVSC_NO_DECLSPEC -AVSC_INLINE AVS_Value avs_new_value_clip(AVS_Clip * v0) - { AVS_Value v; avs_set_to_clip(&v, v0); return v; } -#endif -AVSC_INLINE AVS_Value avs_new_value_array(AVS_Value * v0, int size) - { AVS_Value v; v.type = 'a'; v.d.array = v0; v.array_size = size; return v; } - -///////////////////////////////////////////////////////////////////// -// -// AVS_Clip -// -#if defined __cplusplus -extern "C" -{ -#endif // __cplusplus -AVSC_API(void, avs_release_clip)(AVS_Clip *); -AVSC_API(AVS_Clip *, avs_copy_clip)(AVS_Clip *); - -AVSC_API(const char *, avs_clip_get_error)(AVS_Clip *); // return 0 if no error - -AVSC_API(const AVS_VideoInfo *, avs_get_video_info)(AVS_Clip *); - -AVSC_API(int, avs_get_version)(AVS_Clip *); - -AVSC_API(AVS_VideoFrame *, avs_get_frame)(AVS_Clip *, int n); -// The returned video frame must be released with avs_release_video_frame - -AVSC_API(int, avs_get_parity)(AVS_Clip *, int n); -// return field parity if field_based, else parity of first field in frame - -AVSC_API(int, avs_get_audio)(AVS_Clip *, void * buf, - INT64 start, INT64 count); -// start and count are in samples - -AVSC_API(int, avs_set_cache_hints)(AVS_Clip *, - int cachehints, size_t frame_range); -#if defined __cplusplus -} -#endif // __cplusplus - -// This is the callback type used by avs_add_function -typedef AVS_Value (AVSC_CC * AVS_ApplyFunc) - (AVS_ScriptEnvironment *, AVS_Value args, void * user_data); - -typedef struct AVS_FilterInfo AVS_FilterInfo; -struct AVS_FilterInfo -{ - // these members should not be modified outside of the AVS_ApplyFunc callback - AVS_Clip * child; - AVS_VideoInfo vi; - AVS_ScriptEnvironment * env; - AVS_VideoFrame * (AVSC_CC * get_frame)(AVS_FilterInfo *, int n); - int (AVSC_CC * get_parity)(AVS_FilterInfo *, int n); - int (AVSC_CC * get_audio)(AVS_FilterInfo *, void * buf, - INT64 start, INT64 count); - int (AVSC_CC * set_cache_hints)(AVS_FilterInfo *, int cachehints, - int frame_range); - void (AVSC_CC * free_filter)(AVS_FilterInfo *); - - // Should be set when ever there is an error to report. - // It is cleared before any of the above methods are called - const char * error; - // this is to store whatever and may be modified at will - void * user_data; -}; - -// Create a new filter -// fi is set to point to the AVS_FilterInfo so that you can -// modify it once it is initilized. -// store_child should generally be set to true. If it is not -// set than ALL methods (the function pointers) must be defined -// If it is set than you do not need to worry about freeing the child -// clip. -#if defined __cplusplus -extern "C" -{ -#endif // __cplusplus -AVSC_API(AVS_Clip *, avs_new_c_filter)(AVS_ScriptEnvironment * e, - AVS_FilterInfo * * fi, - AVS_Value child, int store_child); -#if defined __cplusplus -} -#endif // __cplusplus - - -///////////////////////////////////////////////////////////////////// -// -// AVS_ScriptEnvironment -// - -// For GetCPUFlags. These are backwards-compatible with those in VirtualDub. -enum { - /* slowest CPU to support extension */ - AVS_CPU_FORCE = 0x01, // N/A - AVS_CPU_FPU = 0x02, // 386/486DX - AVS_CPU_MMX = 0x04, // P55C, K6, PII - AVS_CPU_INTEGER_SSE = 0x08, // PIII, Athlon - AVS_CPU_SSE = 0x10, // PIII, Athlon XP/MP - AVS_CPU_SSE2 = 0x20, // PIV, Hammer - AVS_CPU_3DNOW = 0x40, // K6-2 - AVS_CPU_3DNOW_EXT = 0x80, // Athlon - AVS_CPU_X86_64 = 0xA0, // Hammer (note: equiv. to 3DNow + SSE2, - // which only Hammer will have anyway) -}; - -#if defined __cplusplus -extern "C" -{ -#endif // __cplusplus -AVSC_API(const char *, avs_get_error)(AVS_ScriptEnvironment *); // return 0 if no error - -AVSC_API(long, avs_get_cpu_flags)(AVS_ScriptEnvironment *); -AVSC_API(int, avs_check_version)(AVS_ScriptEnvironment *, int version); - -AVSC_API(char *, avs_save_string)(AVS_ScriptEnvironment *, const char* s, int length); -AVSC_API(char *, avs_sprintf)(AVS_ScriptEnvironment *, const char * fmt, ...); - -AVSC_API(char *, avs_vsprintf)(AVS_ScriptEnvironment *, const char * fmt, va_list val); - // note: val is really a va_list; I hope everyone typedefs va_list to a pointer - -AVSC_API(int, avs_add_function)(AVS_ScriptEnvironment *, - const char * name, const char * params, - AVS_ApplyFunc apply, void * user_data); - -AVSC_API(int, avs_function_exists)(AVS_ScriptEnvironment *, const char * name); - -AVSC_API(AVS_Value, avs_invoke)(AVS_ScriptEnvironment *, const char * name, - AVS_Value args, const char** arg_names); -// The returned value must be be released with avs_release_value - -AVSC_API(AVS_Value, avs_get_var)(AVS_ScriptEnvironment *, const char* name); -// The returned value must be be released with avs_release_value - -AVSC_API(int, avs_set_var)(AVS_ScriptEnvironment *, const char* name, AVS_Value val); - -AVSC_API(int, avs_set_global_var)(AVS_ScriptEnvironment *, const char* name, const AVS_Value val); - -//void avs_push_context(AVS_ScriptEnvironment *, int level=0); -//void avs_pop_context(AVS_ScriptEnvironment *); - -AVSC_API(AVS_VideoFrame *, avs_new_video_frame_a)(AVS_ScriptEnvironment *, - const AVS_VideoInfo * vi, int align); -// align should be at least 16 -#if defined __cplusplus -} -#endif // __cplusplus - -#ifndef AVSC_NO_DECLSPEC -AVSC_INLINE -AVS_VideoFrame * avs_new_video_frame(AVS_ScriptEnvironment * env, - const AVS_VideoInfo * vi) - {return avs_new_video_frame_a(env,vi,AVS_FRAME_ALIGN);} - -AVSC_INLINE -AVS_VideoFrame * avs_new_frame(AVS_ScriptEnvironment * env, - const AVS_VideoInfo * vi) - {return avs_new_video_frame_a(env,vi,AVS_FRAME_ALIGN);} -#endif - -#if defined __cplusplus -extern "C" -{ -#endif // __cplusplus -AVSC_API(int, avs_make_writable)(AVS_ScriptEnvironment *, AVS_VideoFrame * * pvf); - -AVSC_API(void, avs_bit_blt)(AVS_ScriptEnvironment *, unsigned char* dstp, int dst_pitch, const unsigned char* srcp, int src_pitch, int row_size, int height); - -typedef void (AVSC_CC *AVS_ShutdownFunc)(void* user_data, AVS_ScriptEnvironment * env); -AVSC_API(void, avs_at_exit)(AVS_ScriptEnvironment *, AVS_ShutdownFunc function, void * user_data); - -AVSC_API(AVS_VideoFrame *, avs_subframe)(AVS_ScriptEnvironment *, AVS_VideoFrame * src, int rel_offset, int new_pitch, int new_row_size, int new_height); -// The returned video frame must be be released - -AVSC_API(int, avs_set_memory_max)(AVS_ScriptEnvironment *, int mem); - -AVSC_API(int, avs_set_working_dir)(AVS_ScriptEnvironment *, const char * newdir); - -// avisynth.dll exports this; it's a way to use it as a library, without -// writing an AVS script or without going through AVIFile. -AVSC_API(AVS_ScriptEnvironment *, avs_create_script_environment)(int version); -#if defined __cplusplus -} -#endif // __cplusplus - -// this symbol is the entry point for the plugin and must -// be defined -AVSC_EXPORT -const char * AVSC_CC avisynth_c_plugin_init(AVS_ScriptEnvironment* env); - - -#if defined __cplusplus -extern "C" -{ -#endif // __cplusplus -AVSC_API(void, avs_delete_script_environment)(AVS_ScriptEnvironment *); - - -AVSC_API(AVS_VideoFrame *, avs_subframe_planar)(AVS_ScriptEnvironment *, AVS_VideoFrame * src, int rel_offset, int new_pitch, int new_row_size, int new_height, int rel_offsetU, int rel_offsetV, int new_pitchUV); -// The returned video frame must be be released -#if defined __cplusplus -} -#endif // __cplusplus - -#endif //__AVXSYNTH_C__ diff -Nru ffmpeg-2.5/compat/avisynth/windowsPorts/basicDataTypeConversions.h ffmpeg-0.10.12/compat/avisynth/windowsPorts/basicDataTypeConversions.h --- ffmpeg-2.5/compat/avisynth/windowsPorts/basicDataTypeConversions.h 2014-12-01 00:21:37.000000000 +0000 +++ ffmpeg-0.10.12/compat/avisynth/windowsPorts/basicDataTypeConversions.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,85 +0,0 @@ -#ifndef __DATA_TYPE_CONVERSIONS_H__ -#define __DATA_TYPE_CONVERSIONS_H__ - -#include -#include - -#ifdef __cplusplus -namespace avxsynth { -#endif // __cplusplus - -typedef int64_t __int64; -typedef int32_t __int32; -#ifdef __cplusplus -typedef bool BOOL; -#else -typedef uint32_t BOOL; -#endif // __cplusplus -typedef void* HMODULE; -typedef void* LPVOID; -typedef void* PVOID; -typedef PVOID HANDLE; -typedef HANDLE HWND; -typedef HANDLE HINSTANCE; -typedef void* HDC; -typedef void* HBITMAP; -typedef void* HICON; -typedef void* HFONT; -typedef void* HGDIOBJ; -typedef void* HBRUSH; -typedef void* HMMIO; -typedef void* HACMSTREAM; -typedef void* HACMDRIVER; -typedef void* HIC; -typedef void* HACMOBJ; -typedef HACMSTREAM* LPHACMSTREAM; -typedef void* HACMDRIVERID; -typedef void* LPHACMDRIVER; -typedef unsigned char BYTE; -typedef BYTE* LPBYTE; -typedef char TCHAR; -typedef TCHAR* LPTSTR; -typedef const TCHAR* LPCTSTR; -typedef char* LPSTR; -typedef LPSTR LPOLESTR; -typedef const char* LPCSTR; -typedef LPCSTR LPCOLESTR; -typedef wchar_t WCHAR; -typedef unsigned short WORD; -typedef unsigned int UINT; -typedef UINT MMRESULT; -typedef uint32_t DWORD; -typedef DWORD COLORREF; -typedef DWORD FOURCC; -typedef DWORD HRESULT; -typedef DWORD* LPDWORD; -typedef DWORD* DWORD_PTR; -typedef int32_t LONG; -typedef int32_t* LONG_PTR; -typedef LONG_PTR LRESULT; -typedef uint32_t ULONG; -typedef uint32_t* ULONG_PTR; -//typedef __int64_t intptr_t; -typedef uint64_t _fsize_t; - - -// -// Structures -// - -typedef struct _GUID { - DWORD Data1; - WORD Data2; - WORD Data3; - BYTE Data4[8]; -} GUID; - -typedef GUID REFIID; -typedef GUID CLSID; -typedef CLSID* LPCLSID; -typedef GUID IID; - -#ifdef __cplusplus -}; // namespace avxsynth -#endif // __cplusplus -#endif // __DATA_TYPE_CONVERSIONS_H__ diff -Nru ffmpeg-2.5/compat/avisynth/windowsPorts/windows2linux.h ffmpeg-0.10.12/compat/avisynth/windowsPorts/windows2linux.h --- ffmpeg-2.5/compat/avisynth/windowsPorts/windows2linux.h 2014-12-01 00:21:37.000000000 +0000 +++ ffmpeg-0.10.12/compat/avisynth/windowsPorts/windows2linux.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,77 +0,0 @@ -#ifndef __WINDOWS2LINUX_H__ -#define __WINDOWS2LINUX_H__ - -/* - * LINUX SPECIFIC DEFINITIONS -*/ -// -// Data types conversions -// -#include -#include -#include "basicDataTypeConversions.h" - -#ifdef __cplusplus -namespace avxsynth { -#endif // __cplusplus -// -// purposefully define the following MSFT definitions -// to mean nothing (as they do not mean anything on Linux) -// -#define __stdcall -#define __cdecl -#define noreturn -#define __declspec(x) -#define STDAPI extern "C" HRESULT -#define STDMETHODIMP HRESULT __stdcall -#define STDMETHODIMP_(x) x __stdcall - -#define STDMETHOD(x) virtual HRESULT x -#define STDMETHOD_(a, x) virtual a x - -#ifndef TRUE -#define TRUE true -#endif - -#ifndef FALSE -#define FALSE false -#endif - -#define S_OK (0x00000000) -#define S_FALSE (0x00000001) -#define E_NOINTERFACE (0X80004002) -#define E_POINTER (0x80004003) -#define E_FAIL (0x80004005) -#define E_OUTOFMEMORY (0x8007000E) - -#define INVALID_HANDLE_VALUE ((HANDLE)((LONG_PTR)-1)) -#define FAILED(hr) ((hr) & 0x80000000) -#define SUCCEEDED(hr) (!FAILED(hr)) - - -// -// Functions -// -#define MAKEDWORD(a,b,c,d) ((a << 24) | (b << 16) | (c << 8) | (d)) -#define MAKEWORD(a,b) ((a << 8) | (b)) - -#define lstrlen strlen -#define lstrcpy strcpy -#define lstrcmpi strcasecmp -#define _stricmp strcasecmp -#define InterlockedIncrement(x) __sync_fetch_and_add((x), 1) -#define InterlockedDecrement(x) __sync_fetch_and_sub((x), 1) -// Windows uses (new, old) ordering but GCC has (old, new) -#define InterlockedCompareExchange(x,y,z) __sync_val_compare_and_swap(x,z,y) - -#define UInt32x32To64(a, b) ( (uint64_t) ( ((uint64_t)((uint32_t)(a))) * ((uint32_t)(b)) ) ) -#define Int64ShrlMod32(a, b) ( (uint64_t) ( (uint64_t)(a) >> (b) ) ) -#define Int32x32To64(a, b) ((__int64)(((__int64)((long)(a))) * ((long)(b)))) - -#define MulDiv(nNumber, nNumerator, nDenominator) (int32_t) (((int64_t) (nNumber) * (int64_t) (nNumerator) + (int64_t) ((nDenominator)/2)) / (int64_t) (nDenominator)) - -#ifdef __cplusplus -}; // namespace avxsynth -#endif // __cplusplus - -#endif // __WINDOWS2LINUX_H__ diff -Nru ffmpeg-2.5/compat/float/float.h ffmpeg-0.10.12/compat/float/float.h --- ffmpeg-2.5/compat/float/float.h 2014-12-01 00:21:37.000000000 +0000 +++ ffmpeg-0.10.12/compat/float/float.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,35 +0,0 @@ -/* - * Work around broken floating point limits on some systems. - * - * 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 - */ - -#include_next - -#ifdef FLT_MAX -#undef FLT_MAX -#define FLT_MAX 3.40282346638528859812e+38F - -#undef FLT_MIN -#define FLT_MIN 1.17549435082228750797e-38F - -#undef DBL_MAX -#define DBL_MAX ((double)1.79769313486231570815e+308L) - -#undef DBL_MIN -#define DBL_MIN ((double)2.22507385850720138309e-308L) -#endif diff -Nru ffmpeg-2.5/compat/float/limits.h ffmpeg-0.10.12/compat/float/limits.h --- ffmpeg-2.5/compat/float/limits.h 2014-12-01 00:21:37.000000000 +0000 +++ ffmpeg-0.10.12/compat/float/limits.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,22 +0,0 @@ -/* - * Work around broken floating point limits on some systems. - * - * 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 - */ - -#include_next -#include diff -Nru ffmpeg-2.5/compat/getopt.c ffmpeg-0.10.12/compat/getopt.c --- ffmpeg-2.5/compat/getopt.c 2014-12-01 00:21:37.000000000 +0000 +++ ffmpeg-0.10.12/compat/getopt.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,84 +0,0 @@ -/* - * 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 - */ - -/* - * This file was copied from the following newsgroup posting: - * - * Newsgroups: mod.std.unix - * Subject: public domain AT&T getopt source - * Date: 3 Nov 85 19:34:15 GMT - * - * Here's something you've all been waiting for: the AT&T public domain - * source for getopt(3). It is the code which was given out at the 1985 - * UNIFORUM conference in Dallas. I obtained it by electronic mail - * directly from AT&T. The people there assure me that it is indeed - * in the public domain. - */ - -#include -#include - -static int opterr = 1; -static int optind = 1; -static int optopt; -static char *optarg; - -static int getopt(int argc, char *argv[], char *opts) -{ - static int sp = 1; - int c; - char *cp; - - if (sp == 1) { - if (optind >= argc || - argv[optind][0] != '-' || argv[optind][1] == '\0') - return EOF; - else if (!strcmp(argv[optind], "--")) { - optind++; - return EOF; - } - } - optopt = c = argv[optind][sp]; - if (c == ':' || !(cp = strchr(opts, c))) { - fprintf(stderr, ": illegal option -- %c\n", c); - if (argv[optind][++sp] == '\0') { - optind++; - sp = 1; - } - return '?'; - } - if (*++cp == ':') { - if (argv[optind][sp+1] != '\0') - optarg = &argv[optind++][sp+1]; - else if(++optind >= argc) { - fprintf(stderr, ": option requires an argument -- %c\n", c); - sp = 1; - return '?'; - } else - optarg = argv[optind++]; - sp = 1; - } else { - if (argv[optind][++sp] == '\0') { - sp = 1; - optind++; - } - optarg = NULL; - } - - return c; -} diff -Nru ffmpeg-2.5/compat/msvcrt/snprintf.c ffmpeg-0.10.12/compat/msvcrt/snprintf.c --- ffmpeg-2.5/compat/msvcrt/snprintf.c 2014-12-01 00:21:37.000000000 +0000 +++ ffmpeg-0.10.12/compat/msvcrt/snprintf.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,71 +0,0 @@ -/* - * C99-compatible snprintf() and vsnprintf() implementations - * Copyright (c) 2012 Ronald S. Bultje - * - * 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 - */ - -#include -#include -#include -#include - -#include "compat/va_copy.h" -#include "libavutil/error.h" - -#if defined(__MINGW32__) -#define EOVERFLOW EFBIG -#endif - -int avpriv_snprintf(char *s, size_t n, const char *fmt, ...) -{ - va_list ap; - int ret; - - va_start(ap, fmt); - ret = avpriv_vsnprintf(s, n, fmt, ap); - va_end(ap); - - return ret; -} - -int avpriv_vsnprintf(char *s, size_t n, const char *fmt, - va_list ap) -{ - int ret; - va_list ap_copy; - - if (n == 0) - return _vscprintf(fmt, ap); - else if (n > INT_MAX) - return AVERROR(EOVERFLOW); - - /* we use n - 1 here because if the buffer is not big enough, the MS - * runtime libraries don't add a terminating zero at the end. MSDN - * recommends to provide _snprintf/_vsnprintf() a buffer size that - * is one less than the actual buffer, and zero it before calling - * _snprintf/_vsnprintf() to workaround this problem. - * See http://msdn.microsoft.com/en-us/library/1kt27hek(v=vs.80).aspx */ - memset(s, 0, n); - va_copy(ap_copy, ap); - ret = _vsnprintf(s, n - 1, fmt, ap_copy); - va_end(ap_copy); - if (ret == -1) - ret = _vscprintf(fmt, ap); - - return ret; -} diff -Nru ffmpeg-2.5/compat/msvcrt/snprintf.h ffmpeg-0.10.12/compat/msvcrt/snprintf.h --- ffmpeg-2.5/compat/msvcrt/snprintf.h 2014-12-01 00:21:37.000000000 +0000 +++ ffmpeg-0.10.12/compat/msvcrt/snprintf.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,38 +0,0 @@ -/* - * C99-compatible snprintf() and vsnprintf() implementations - * Copyright (c) 2012 Ronald S. Bultje - * - * 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 COMPAT_SNPRINTF_H -#define COMPAT_SNPRINTF_H - -#include -#include - -int avpriv_snprintf(char *s, size_t n, const char *fmt, ...); -int avpriv_vsnprintf(char *s, size_t n, const char *fmt, va_list ap); - -#undef snprintf -#undef _snprintf -#undef vsnprintf -#define snprintf avpriv_snprintf -#define _snprintf avpriv_snprintf -#define vsnprintf avpriv_vsnprintf - -#endif /* COMPAT_SNPRINTF_H */ diff -Nru ffmpeg-2.5/compat/os2threads.h ffmpeg-0.10.12/compat/os2threads.h --- ffmpeg-2.5/compat/os2threads.h 2014-12-01 00:21:37.000000000 +0000 +++ ffmpeg-0.10.12/compat/os2threads.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,164 +0,0 @@ -/* - * Copyright (c) 2011 KO Myung-Hun - * - * 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 - * os2threads to pthreads wrapper - */ - -#ifndef AVCODEC_OS2PTHREADS_H -#define AVCODEC_OS2PTHREADS_H - -#define INCL_DOS -#include - -#undef __STRICT_ANSI__ /* for _beginthread() */ -#include - -#include "libavutil/mem.h" - -typedef TID pthread_t; -typedef void pthread_attr_t; - -typedef HMTX pthread_mutex_t; -typedef void pthread_mutexattr_t; - -typedef struct { - HEV event_sem; - int wait_count; -} pthread_cond_t; - -typedef void pthread_condattr_t; - -struct thread_arg { - void *(*start_routine)(void *); - void *arg; -}; - -static void thread_entry(void *arg) -{ - struct thread_arg *thread_arg = arg; - - thread_arg->start_routine(thread_arg->arg); - - av_free(thread_arg); -} - -static av_always_inline int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine)(void*), void *arg) -{ - struct thread_arg *thread_arg; - - thread_arg = av_mallocz(sizeof(struct thread_arg)); - - thread_arg->start_routine = start_routine; - thread_arg->arg = arg; - - *thread = _beginthread(thread_entry, NULL, 256 * 1024, thread_arg); - - return 0; -} - -static av_always_inline int pthread_join(pthread_t thread, void **value_ptr) -{ - DosWaitThread((PTID)&thread, DCWW_WAIT); - - return 0; -} - -static av_always_inline int pthread_mutex_init(pthread_mutex_t *mutex, const pthread_mutexattr_t *attr) -{ - DosCreateMutexSem(NULL, (PHMTX)mutex, 0, FALSE); - - return 0; -} - -static av_always_inline int pthread_mutex_destroy(pthread_mutex_t *mutex) -{ - DosCloseMutexSem(*(PHMTX)mutex); - - return 0; -} - -static av_always_inline int pthread_mutex_lock(pthread_mutex_t *mutex) -{ - DosRequestMutexSem(*(PHMTX)mutex, SEM_INDEFINITE_WAIT); - - return 0; -} - -static av_always_inline int pthread_mutex_unlock(pthread_mutex_t *mutex) -{ - DosReleaseMutexSem(*(PHMTX)mutex); - - return 0; -} - -static av_always_inline int pthread_cond_init(pthread_cond_t *cond, const pthread_condattr_t *attr) -{ - DosCreateEventSem(NULL, &cond->event_sem, DCE_POSTONE, FALSE); - - cond->wait_count = 0; - - return 0; -} - -static av_always_inline int pthread_cond_destroy(pthread_cond_t *cond) -{ - DosCloseEventSem(cond->event_sem); - - return 0; -} - -static av_always_inline int pthread_cond_signal(pthread_cond_t *cond) -{ - if (cond->wait_count > 0) { - DosPostEventSem(cond->event_sem); - - cond->wait_count--; - } - - return 0; -} - -static av_always_inline int pthread_cond_broadcast(pthread_cond_t *cond) -{ - while (cond->wait_count > 0) { - DosPostEventSem(cond->event_sem); - - cond->wait_count--; - } - - return 0; -} - -static av_always_inline int pthread_cond_wait(pthread_cond_t *cond, pthread_mutex_t *mutex) -{ - cond->wait_count++; - - pthread_mutex_unlock(mutex); - - DosWaitEventSem(cond->event_sem, SEM_INDEFINITE_WAIT); - - pthread_mutex_lock(mutex); - - return 0; -} - -#endif /* AVCODEC_OS2PTHREADS_H */ diff -Nru ffmpeg-2.5/compat/plan9/head ffmpeg-0.10.12/compat/plan9/head --- ffmpeg-2.5/compat/plan9/head 2014-12-01 00:21:37.000000000 +0000 +++ ffmpeg-0.10.12/compat/plan9/head 1970-01-01 00:00:00.000000000 +0000 @@ -1,10 +0,0 @@ -#!/bin/sh - -n=10 - -case "$1" in - -n) n=$2; shift 2 ;; - -n*) n=${1#-n}; shift ;; -esac - -exec sed ${n}q "$@" diff -Nru ffmpeg-2.5/compat/plan9/main.c ffmpeg-0.10.12/compat/plan9/main.c --- ffmpeg-2.5/compat/plan9/main.c 2014-12-01 00:21:37.000000000 +0000 +++ ffmpeg-0.10.12/compat/plan9/main.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,34 +0,0 @@ -/* - * 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 - */ - -int plan9_main(int argc, char **argv); - -#undef main -int main(int argc, char **argv) -{ - /* The setfcr() function in lib9 is broken, must use asm. */ -#ifdef __i386 - short fcr; - __asm__ volatile ("fstcw %0 \n" - "or $63, %0 \n" - "fldcw %0 \n" - : "=m"(fcr)); -#endif - - return plan9_main(argc, argv); -} diff -Nru ffmpeg-2.5/compat/plan9/printf ffmpeg-0.10.12/compat/plan9/printf --- ffmpeg-2.5/compat/plan9/printf 2014-12-01 00:21:37.000000000 +0000 +++ ffmpeg-0.10.12/compat/plan9/printf 1970-01-01 00:00:00.000000000 +0000 @@ -1,2 +0,0 @@ -#!/bin/sh -exec awk "BEGIN { for (i = 2; i < ARGC; i++) printf \"$1\", ARGV[i] }" "$@" diff -Nru ffmpeg-2.5/compat/strtod.c ffmpeg-0.10.12/compat/strtod.c --- ffmpeg-2.5/compat/strtod.c 2014-12-01 00:21:37.000000000 +0000 +++ ffmpeg-0.10.12/compat/strtod.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,93 +0,0 @@ -/* - * C99-compatible strtod() implementation - * Copyright (c) 2012 Ronald S. Bultje - * - * 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 - */ - -#include -#include - -#include "libavutil/avstring.h" -#include "libavutil/mathematics.h" - -static char *check_nan_suffix(char *s) -{ - char *start = s; - - if (*s++ != '(') - return start; - - while ((*s >= 'a' && *s <= 'z') || (*s >= 'A' && *s <= 'Z') || - (*s >= '0' && *s <= '9') || *s == '_') - s++; - - return *s == ')' ? s + 1 : start; -} - -#undef strtod -double strtod(const char *, char **); - -double avpriv_strtod(const char *nptr, char **endptr) -{ - char *end; - double res; - - /* Skip leading spaces */ - while (av_isspace(*nptr)) - nptr++; - - if (!av_strncasecmp(nptr, "infinity", 8)) { - end = nptr + 8; - res = INFINITY; - } else if (!av_strncasecmp(nptr, "inf", 3)) { - end = nptr + 3; - res = INFINITY; - } else if (!av_strncasecmp(nptr, "+infinity", 9)) { - end = nptr + 9; - res = INFINITY; - } else if (!av_strncasecmp(nptr, "+inf", 4)) { - end = nptr + 4; - res = INFINITY; - } else if (!av_strncasecmp(nptr, "-infinity", 9)) { - end = nptr + 9; - res = -INFINITY; - } else if (!av_strncasecmp(nptr, "-inf", 4)) { - end = nptr + 4; - res = -INFINITY; - } else if (!av_strncasecmp(nptr, "nan", 3)) { - end = check_nan_suffix(nptr + 3); - res = NAN; - } else if (!av_strncasecmp(nptr, "+nan", 4) || - !av_strncasecmp(nptr, "-nan", 4)) { - end = check_nan_suffix(nptr + 4); - res = NAN; - } else if (!av_strncasecmp(nptr, "0x", 2) || - !av_strncasecmp(nptr, "-0x", 3) || - !av_strncasecmp(nptr, "+0x", 3)) { - /* FIXME this doesn't handle exponents, non-integers (float/double) - * and numbers too large for long long */ - res = strtoll(nptr, &end, 16); - } else { - res = strtod(nptr, &end); - } - - if (endptr) - *endptr = end; - - return res; -} diff -Nru ffmpeg-2.5/compat/tms470/math.h ffmpeg-0.10.12/compat/tms470/math.h --- ffmpeg-2.5/compat/tms470/math.h 2014-12-01 00:21:37.000000000 +0000 +++ ffmpeg-0.10.12/compat/tms470/math.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,30 +0,0 @@ -/* - * 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 FFMPEG_COMPAT_TMS470_MATH_H -#define FFMPEG_COMPAT_TMS470_MATH_H - -#include_next - -#undef INFINITY -#undef NAN - -#define INFINITY (*(const float*)((const unsigned []){ 0x7f800000 })) -#define NAN (*(const float*)((const unsigned []){ 0x7fc00000 })) - -#endif /* FFMPEG_COMPAT_TMS470_MATH_H */ diff -Nru ffmpeg-2.5/compat/va_copy.h ffmpeg-0.10.12/compat/va_copy.h --- ffmpeg-2.5/compat/va_copy.h 2014-12-01 00:21:37.000000000 +0000 +++ ffmpeg-0.10.12/compat/va_copy.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,29 +0,0 @@ -/* - * MSVC Compatible va_copy macro - * Copyright (c) 2012 Derek Buitenhuis - * - * 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 - */ - -#include - -#if !defined(va_copy) && defined(_MSC_VER) -#define va_copy(dst, src) ((dst) = (src)) -#endif -#if !defined(va_copy) && defined(__GNUC__) && __GNUC__ < 3 -#define va_copy(dst, src) __va_copy(dst, src) -#endif diff -Nru ffmpeg-2.5/compat/w32pthreads.h ffmpeg-0.10.12/compat/w32pthreads.h --- ffmpeg-2.5/compat/w32pthreads.h 2014-12-04 00:24:39.000000000 +0000 +++ ffmpeg-0.10.12/compat/w32pthreads.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,316 +0,0 @@ -/* - * Copyright (C) 2010-2011 x264 project - * - * Authors: Steven Walters - * Pegasys Inc. - * - * 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 - * w32threads to pthreads wrapper - */ - -#ifndef FFMPEG_COMPAT_W32PTHREADS_H -#define FFMPEG_COMPAT_W32PTHREADS_H - -/* Build up a pthread-like API using underlying Windows API. Have only static - * methods so as to not conflict with a potentially linked in pthread-win32 - * library. - * As most functions here are used without checking return values, - * only implement return values as necessary. */ - -#define WIN32_LEAN_AND_MEAN -#include -#include - -#include "libavutil/attributes.h" -#include "libavutil/common.h" -#include "libavutil/internal.h" -#include "libavutil/mem.h" - -typedef struct pthread_t { - void *handle; - void *(*func)(void* arg); - void *arg; - void *ret; -} pthread_t; - -/* the conditional variable api for windows 6.0+ uses critical sections and - * not mutexes */ -typedef CRITICAL_SECTION pthread_mutex_t; - -/* This is the CONDITION_VARIABLE typedef for using Windows' native - * conditional variables on kernels 6.0+. */ -#if HAVE_CONDITION_VARIABLE_PTR -typedef CONDITION_VARIABLE pthread_cond_t; -#else -typedef struct pthread_cond_t { - void *Ptr; -} pthread_cond_t; -#endif - -#if _WIN32_WINNT >= 0x0600 -#define InitializeCriticalSection(x) InitializeCriticalSectionEx(x, 0, 0) -#define WaitForSingleObject(a, b) WaitForSingleObjectEx(a, b, FALSE) -#endif - -static av_unused unsigned __stdcall attribute_align_arg win32thread_worker(void *arg) -{ - pthread_t *h = arg; - h->ret = h->func(h->arg); - return 0; -} - -static av_unused int pthread_create(pthread_t *thread, const void *unused_attr, - void *(*start_routine)(void*), void *arg) -{ - thread->func = start_routine; - thread->arg = arg; - thread->handle = (void*)_beginthreadex(NULL, 0, win32thread_worker, thread, - 0, NULL); - return !thread->handle; -} - -static av_unused void pthread_join(pthread_t thread, void **value_ptr) -{ - DWORD ret = WaitForSingleObject(thread.handle, INFINITE); - if (ret != WAIT_OBJECT_0) - return; - if (value_ptr) - *value_ptr = thread.ret; - CloseHandle(thread.handle); -} - -static inline int pthread_mutex_init(pthread_mutex_t *m, void* attr) -{ - InitializeCriticalSection(m); - return 0; -} -static inline int pthread_mutex_destroy(pthread_mutex_t *m) -{ - DeleteCriticalSection(m); - return 0; -} -static inline int pthread_mutex_lock(pthread_mutex_t *m) -{ - EnterCriticalSection(m); - return 0; -} -static inline int pthread_mutex_unlock(pthread_mutex_t *m) -{ - LeaveCriticalSection(m); - return 0; -} - -#if _WIN32_WINNT >= 0x0600 -static inline int pthread_cond_init(pthread_cond_t *cond, const void *unused_attr) -{ - InitializeConditionVariable(cond); - return 0; -} - -/* native condition variables do not destroy */ -static inline void pthread_cond_destroy(pthread_cond_t *cond) -{ - return; -} - -static inline void pthread_cond_broadcast(pthread_cond_t *cond) -{ - WakeAllConditionVariable(cond); -} - -static inline int pthread_cond_wait(pthread_cond_t *cond, pthread_mutex_t *mutex) -{ - SleepConditionVariableCS(cond, mutex, INFINITE); - return 0; -} - -static inline void pthread_cond_signal(pthread_cond_t *cond) -{ - WakeConditionVariable(cond); -} - -#else // _WIN32_WINNT < 0x0600 -/* for pre-Windows 6.0 platforms we need to define and use our own condition - * variable and api */ -typedef struct win32_cond_t { - pthread_mutex_t mtx_broadcast; - pthread_mutex_t mtx_waiter_count; - volatile int waiter_count; - HANDLE semaphore; - HANDLE waiters_done; - volatile int is_broadcast; -} win32_cond_t; - -/* function pointers to conditional variable API on windows 6.0+ kernels */ -static void (WINAPI *cond_broadcast)(pthread_cond_t *cond); -static void (WINAPI *cond_init)(pthread_cond_t *cond); -static void (WINAPI *cond_signal)(pthread_cond_t *cond); -static BOOL (WINAPI *cond_wait)(pthread_cond_t *cond, pthread_mutex_t *mutex, - DWORD milliseconds); - -static av_unused int pthread_cond_init(pthread_cond_t *cond, const void *unused_attr) -{ - win32_cond_t *win32_cond = NULL; - if (cond_init) { - cond_init(cond); - return 0; - } - - /* non native condition variables */ - win32_cond = av_mallocz(sizeof(win32_cond_t)); - if (!win32_cond) - return ENOMEM; - cond->Ptr = win32_cond; - win32_cond->semaphore = CreateSemaphore(NULL, 0, 0x7fffffff, NULL); - if (!win32_cond->semaphore) - return ENOMEM; - win32_cond->waiters_done = CreateEvent(NULL, TRUE, FALSE, NULL); - if (!win32_cond->waiters_done) - return ENOMEM; - - pthread_mutex_init(&win32_cond->mtx_waiter_count, NULL); - pthread_mutex_init(&win32_cond->mtx_broadcast, NULL); - return 0; -} - -static av_unused void pthread_cond_destroy(pthread_cond_t *cond) -{ - win32_cond_t *win32_cond = cond->Ptr; - /* native condition variables do not destroy */ - if (cond_init) - return; - - /* non native condition variables */ - CloseHandle(win32_cond->semaphore); - CloseHandle(win32_cond->waiters_done); - pthread_mutex_destroy(&win32_cond->mtx_waiter_count); - pthread_mutex_destroy(&win32_cond->mtx_broadcast); - av_freep(&win32_cond); - cond->Ptr = NULL; -} - -static av_unused void pthread_cond_broadcast(pthread_cond_t *cond) -{ - win32_cond_t *win32_cond = cond->Ptr; - int have_waiter; - - if (cond_broadcast) { - cond_broadcast(cond); - return; - } - - /* non native condition variables */ - pthread_mutex_lock(&win32_cond->mtx_broadcast); - pthread_mutex_lock(&win32_cond->mtx_waiter_count); - have_waiter = 0; - - if (win32_cond->waiter_count) { - win32_cond->is_broadcast = 1; - have_waiter = 1; - } - - if (have_waiter) { - ReleaseSemaphore(win32_cond->semaphore, win32_cond->waiter_count, NULL); - pthread_mutex_unlock(&win32_cond->mtx_waiter_count); - WaitForSingleObject(win32_cond->waiters_done, INFINITE); - ResetEvent(win32_cond->waiters_done); - win32_cond->is_broadcast = 0; - } else - pthread_mutex_unlock(&win32_cond->mtx_waiter_count); - pthread_mutex_unlock(&win32_cond->mtx_broadcast); -} - -static av_unused int pthread_cond_wait(pthread_cond_t *cond, pthread_mutex_t *mutex) -{ - win32_cond_t *win32_cond = cond->Ptr; - int last_waiter; - if (cond_wait) { - cond_wait(cond, mutex, INFINITE); - return 0; - } - - /* non native condition variables */ - pthread_mutex_lock(&win32_cond->mtx_broadcast); - pthread_mutex_lock(&win32_cond->mtx_waiter_count); - win32_cond->waiter_count++; - pthread_mutex_unlock(&win32_cond->mtx_waiter_count); - pthread_mutex_unlock(&win32_cond->mtx_broadcast); - - // unlock the external mutex - pthread_mutex_unlock(mutex); - WaitForSingleObject(win32_cond->semaphore, INFINITE); - - pthread_mutex_lock(&win32_cond->mtx_waiter_count); - win32_cond->waiter_count--; - last_waiter = !win32_cond->waiter_count || !win32_cond->is_broadcast; - pthread_mutex_unlock(&win32_cond->mtx_waiter_count); - - if (last_waiter) - SetEvent(win32_cond->waiters_done); - - // lock the external mutex - return pthread_mutex_lock(mutex); -} - -static av_unused void pthread_cond_signal(pthread_cond_t *cond) -{ - win32_cond_t *win32_cond = cond->Ptr; - int have_waiter; - if (cond_signal) { - cond_signal(cond); - return; - } - - pthread_mutex_lock(&win32_cond->mtx_broadcast); - - /* non-native condition variables */ - pthread_mutex_lock(&win32_cond->mtx_waiter_count); - have_waiter = win32_cond->waiter_count; - pthread_mutex_unlock(&win32_cond->mtx_waiter_count); - - if (have_waiter) { - ReleaseSemaphore(win32_cond->semaphore, 1, NULL); - WaitForSingleObject(win32_cond->waiters_done, INFINITE); - ResetEvent(win32_cond->waiters_done); - } - - pthread_mutex_unlock(&win32_cond->mtx_broadcast); -} -#endif - -static av_unused void w32thread_init(void) -{ -#if _WIN32_WINNT < 0x0600 - HANDLE kernel_dll = GetModuleHandle(TEXT("kernel32.dll")); - /* if one is available, then they should all be available */ - cond_init = - (void*)GetProcAddress(kernel_dll, "InitializeConditionVariable"); - cond_broadcast = - (void*)GetProcAddress(kernel_dll, "WakeAllConditionVariable"); - cond_signal = - (void*)GetProcAddress(kernel_dll, "WakeConditionVariable"); - cond_wait = - (void*)GetProcAddress(kernel_dll, "SleepConditionVariableCS"); -#endif - -} - -#endif /* FFMPEG_COMPAT_W32PTHREADS_H */ diff -Nru ffmpeg-2.5/compat/windows/makedef ffmpeg-0.10.12/compat/windows/makedef --- ffmpeg-2.5/compat/windows/makedef 2014-12-01 00:21:37.000000000 +0000 +++ ffmpeg-0.10.12/compat/windows/makedef 1970-01-01 00:00:00.000000000 +0000 @@ -1,132 +0,0 @@ -#!/bin/sh - -# Copyright (c) 2013, Derek Buitenhuis -# -# Permission to use, copy, modify, and/or distribute this software for any -# purpose with or without fee is hereby granted, provided that the above -# copyright notice and this permission notice appear in all copies. -# -# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF -# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - -# mktemp isn't POSIX, so supply an implementation -mktemp() { - echo "${2%%XXX*}.${HOSTNAME}.${UID}.$$" -} - -if [ $# -lt 2 ]; then - echo "Usage: makedef " >&2 - exit 0 -fi - -vscript=$1 -shift - -if [ ! -f "$vscript" ]; then - echo "Version script does not exist" >&2 - exit 1 -fi - -for object in "$@"; do - if [ ! -f "$object" ]; then - echo "Object does not exist: ${object}" >&2 - exit 1 - fi -done - -# Create a lib temporarily to dump symbols from. -# It's just much easier to do it this way -libname=$(mktemp -u "library").lib - -trap 'rm -f -- $libname' EXIT - -lib -out:${libname} $@ >/dev/null -if [ $? != 0 ]; then - echo "Could not create temporary library." >&2 - exit 1 -fi - -IFS=' -' - -# Determine if we're building for x86 or x86_64 and -# set the symbol prefix accordingly. -prefix="" -arch=$(dumpbin -headers ${libname} | - tr '\t' ' ' | - grep '^ \+.\+machine \+(.\+)' | - head -1 | - sed -e 's/^ \{1,\}.\{1,\} \{1,\}machine \{1,\}(\(...\)).*/\1/') - -if [ "${arch}" = "x86" ]; then - prefix="_" -else - if [ "${arch}" != "ARM" ] && [ "${arch}" != "x64" ]; then - echo "Unknown machine type." >&2 - exit 1 - fi -fi - -started=0 -regex="none" - -for line in $(cat ${vscript} | tr '\t' ' '); do - # We only care about global symbols - echo "${line}" | grep -q '^ \+global:' - if [ $? = 0 ]; then - started=1 - line=$(echo "${line}" | sed -e 's/^ \{1,\}global: *//') - else - echo "${line}" | grep -q '^ \+local:' - if [ $? = 0 ]; then - started=0 - fi - fi - - if [ ${started} = 0 ]; then - continue - fi - - # Handle multiple symbols on one line - IFS=';' - - # Work around stupid expansion to filenames - line=$(echo "${line}" | sed -e 's/\*/.\\+/g') - for exp in ${line}; do - # Remove leading and trailing whitespace - exp=$(echo "${exp}" | sed -e 's/^ *//' -e 's/ *$//') - - if [ "${regex}" = "none" ]; then - regex="${exp}" - else - regex="${regex};${exp}" - fi - done - - IFS=' -' -done - -dump=$(dumpbin -linkermember:1 ${libname}) - -rm ${libname} - -IFS=';' -list="" -for exp in ${regex}; do - list="${list}"' -'$(echo "${dump}" | - sed -e '/public symbols/,$!d' -e '/^ \{1,\}Summary/,$d' -e "s/ \{1,\}${prefix}/ /" -e 's/ \{1,\}/ /g' | - tail -n +2 | - cut -d' ' -f3 | - grep "^${exp}" | - sed -e 's/^/ /') -done - -echo "EXPORTS" -echo "${list}" | sort | uniq | tail -n +2 diff -Nru ffmpeg-2.5/configure ffmpeg-0.10.12/configure --- ffmpeg-2.5/configure 2014-12-04 00:24:39.000000000 +0000 +++ ffmpeg-0.10.12/configure 2014-03-10 19:10:11.000000000 +0000 @@ -54,107 +54,71 @@ exit 1 fi -test -d /usr/xpg4/bin && PATH=/usr/xpg4/bin:$PATH - show_help(){ - cat <>file; - } else if (file ~ /\\.asm\$/) { - printf(\"%%define %s %d\\n\", c, v) >>file; - } else if (file ~ /\\.mak\$/) { - n = -v ? \"\" : \"!\"; - printf(\"%s%s=yes\\n\", n, c) >>file; - } else if (file ~ /\\.texi\$/) { - pre = -v ? \"\" : \"@c \"; - yesno = \$2; - c2 = tolower(c); - gsub(/_/, \"-\", c2); - printf(\"%s@set %s %s\\n\", pre, c2, yesno) >>file; - } - } - }" + for cfg; do + ucname="$(toupper $cfg)" + for f in $files; do + "print_config_${f##*.}" $cfg ${pfx}${ucname} >>$f + done + done } print_enabled(){ + test "$1" = -n && end=" " && shift || end="\n" suf=$1 shift for v; do - enabled $v && printf "%s\n" ${v%$suf}; + enabled $v && printf "%s$end" ${v%$suf}; done } @@ -738,63 +599,28 @@ eval "$var=\"$* \$$var\"" } -unique(){ - var=$1 - uniq_list="" - for tok in $(eval echo \$$var); do - uniq_list="$(filter_out $tok $uniq_list) $tok" - done - eval "$var=\"${uniq_list}\"" -} - add_cppflags(){ - append CPPFLAGS "$@" + append CPPFLAGS $($filter_cppflags "$@") } add_cflags(){ - append CFLAGS $($cflags_filter "$@") + append CFLAGS $($filter_cflags "$@") } add_cxxflags(){ - append CXXFLAGS $($cflags_filter "$@") + append CXXFLAGS $($filter_cflags "$@") } add_asflags(){ - append ASFLAGS $($asflags_filter "$@") + append ASFLAGS $($filter_asflags "$@") } add_ldflags(){ - append LDFLAGS $($ldflags_filter "$@") -} - -add_ldexeflags(){ - append LDEXEFLAGS $($ldflags_filter "$@") -} - -add_stripflags(){ - append ASMSTRIPFLAGS "$@" + append LDFLAGS "$@" } add_extralibs(){ - prepend extralibs $($ldflags_filter "$@") -} - -add_host_cppflags(){ - append host_cppflags "$@" -} - -add_host_cflags(){ - append host_cflags $($host_cflags_filter "$@") -} - -add_host_ldflags(){ - append host_ldflags $($host_ldflags_filter "$@") -} - -add_compat(){ - append compat_objs $1 - shift - map 'add_cppflags -D$v' "$@" + prepend extralibs "$@" } check_cmd(){ @@ -802,143 +628,85 @@ "$@" >> $logfile 2>&1 } -check_stat(){ - log check_stat "$@" - stat "$1" >> $logfile 2>&1 -} - -cc_o(){ - eval printf '%s\\n' $CC_O -} - -cc_e(){ - eval printf '%s\\n' $CC_E -} - check_cc(){ log check_cc "$@" cat > $TMPC log_file $TMPC - check_cmd $cc $CPPFLAGS $CFLAGS "$@" $CC_C $(cc_o $TMPO) $TMPC + check_cmd $cc $CPPFLAGS $CFLAGS "$@" -c -o $TMPO $TMPC } check_cxx(){ log check_cxx "$@" cat > $TMPCPP log_file $TMPCPP - check_cmd $cxx $CPPFLAGS $CFLAGS $CXXFLAGS "$@" $CXX_C -o $TMPO $TMPCPP -} - -check_oc(){ - log check_oc "$@" - cat > $TMPM - log_file $TMPM - check_cmd $cc -Werror=missing-prototypes $CPPFLAGS $CFLAGS "$@" $CC_C $(cc_o $TMPO) $TMPM + check_cmd $cxx $CPPFLAGS $CFLAGS $CXXFLAGS "$@" -c -o $TMPO $TMPCPP } check_cpp(){ log check_cpp "$@" cat > $TMPC log_file $TMPC - check_cmd $cc $CPPFLAGS $CFLAGS "$@" $(cc_e $TMPO) $TMPC -} - -as_o(){ - eval printf '%s\\n' $AS_O + check_cmd $cc $CPPFLAGS $CFLAGS "$@" -E -o $TMPO $TMPC } check_as(){ log check_as "$@" - cat > $TMPS - log_file $TMPS - check_cmd $as $CPPFLAGS $ASFLAGS "$@" $AS_C $(as_o $TMPO) $TMPS + cat > $TMPC + log_file $TMPC + check_cmd $as $CPPFLAGS $ASFLAGS "$@" -c -o $TMPO $TMPC } -check_inline_asm(){ - log check_inline_asm "$@" +check_asm(){ + log check_asm "$@" name="$1" code="$2" shift 2 disable $name - check_cc "$@" < $TMPS log_file $TMPS shift 1 - check_cmd $yasmexe $YASMFLAGS -Werror "$@" -o $TMPO $TMPS -} - -ld_o(){ - eval printf '%s\\n' $LD_O + check_cmd $yasmexe $YASMFLAGS "$@" -o $TMPO $TMPS } check_ld(){ log check_ld "$@" type=$1 shift 1 - flags=$(filter_out '-l*|*.so' $@) - libs=$(filter '-l*|*.so' $@) - check_$type $($cflags_filter $flags) || return - flags=$($ldflags_filter $flags) - libs=$($ldflags_filter $libs) - check_cmd $ld $LDFLAGS $flags $(ld_o $TMPE) $TMPO $libs $extralibs -} - -print_include(){ - hdr=$1 - test "${hdr%.h}" = "${hdr}" && - echo "#include $hdr" || - echo "#include <$hdr>" -} - -check_code(){ - log check_code "$@" - check=$1 - headers=$2 - code=$3 - shift 3 - { - for hdr in $headers; do - print_include $hdr - done - echo "int main(void) { $code; return 0; }" - } | check_$check "$@" + flags='' + libs='' + for f; do + test "${f}" = "${f#-l}" && flags="$flags $f" || libs="$libs $f" + done + check_$type $($filter_cflags $flags) || return + check_cmd $ld $LDFLAGS $flags -o $TMPE $TMPO $libs $extralibs } check_cppflags(){ log check_cppflags "$@" + set -- $($filter_cppflags "$@") check_cc "$@" <" - echo "int main(void) { return 0; }" - } | check_oc && check_stat "$TMPO" && enable_safe $headers -} - check_func(){ log check_func "$@" func=$1 @@ -1007,13 +749,11 @@ check_mathfunc(){ log check_mathfunc "$@" func=$1 - narg=$2 - shift 2 - test $narg = 2 && args="f, g" || args="f" + shift disable $func check_ld "cc" "$@" < -float foo(float f, float g) { return $func($args); } +float foo(float f) { return $func(f); } int main(void){ return (int) foo; } EOF } @@ -1025,7 +765,7 @@ shift 2 { for hdr in $headers; do - print_include $hdr + echo "#include <$hdr>" done for func in $funcs; do echo "long check_$func(void) { return (long) $func; }" @@ -1058,7 +798,7 @@ header=$1 condition=$2 shift 2 - check_cpp "$@" < #if !($condition) #error "unsatisfied condition: $condition" @@ -1092,14 +832,13 @@ check_pkg_config(){ log check_pkg_config "$@" - pkgandversion="$1" - pkg="${1%% *}" + pkg="$1" headers="$2" funcs="$3" shift 3 - check_cmd $pkg_config --exists --print-errors $pkgandversion || return - pkg_cflags=$($pkg_config --cflags $pkg_config_flags $pkg) - pkg_libs=$($pkg_config --libs $pkg_config_flags $pkg) + $pkg_config --exists $pkg 2>/dev/null || return + pkg_cflags=$($pkg_config --cflags $pkg) + pkg_libs=$($pkg_config --libs $pkg) check_func_headers "$headers" "$funcs" $pkg_cflags $pkg_libs "$@" && set_safe ${pkg}_cflags $pkg_cflags && set_safe ${pkg}_libs $pkg_libs @@ -1123,10 +862,9 @@ static void sighandler(int sig){ raise(SIGTERM); } -int foo(void){ +int func(void){ $code } -int (*func_ptr)(void) = foo; int main(void){ signal(SIGILL, sighandler); signal(SIGFPE, sighandler); @@ -1134,7 +872,7 @@ #ifdef SIGBUS signal(SIGBUS, sighandler); #endif - return func_ptr(); + return func(); } EOF } @@ -1145,38 +883,33 @@ type=$2 shift 2 disable_safe "$type" - check_code cc "$headers" "$type v" "$@" && enable_safe "$type" + incs="" + for hdr in $headers; do + incs="$incs +#include <$hdr>" + done + check_cc "$@" <$member" "$@" && - enable_safe "${struct}_${member}" -} - -check_builtin(){ - log check_builtin "$@" - name=$1 - headers=$2 - builtin=$3 - shift 3 - disable "$name" - check_code ld "$headers" "$builtin" "cc" "$@" && enable "$name" -} - -check_compile_assert(){ - log check_compile_assert "$@" - name=$1 - headers=$2 - condition=$3 - shift 3 - disable "$name" - check_code cc "$headers" "char c[2 * !!($condition) - 1]" "$@" && enable "$name" + incs="" + for hdr in $headers; do + incs="$incs +#include <$hdr>" + done + check_cc "$@" <$member; +EOF } require(){ @@ -1203,87 +936,27 @@ check_lib_cpp "$headers" "$classes" "$@" || die "ERROR: $name not found" } -use_pkg_config(){ - pkg="$1" - check_pkg_config "$@" || return 1 - add_cflags $(get_safe ${pkg}_cflags) - add_extralibs $(get_safe ${pkg}_libs) -} - require_pkg_config(){ - use_pkg_config "$@" || die "ERROR: $pkg not found using pkg-config$pkg_config_fail_message" -} - -require_libfreetype(){ - log require_libfreetype "$@" - pkg="freetype2" - check_cmd $pkg_config --exists --print-errors $pkg \ - || die "ERROR: $pkg not found" - pkg_cflags=$($pkg_config --cflags $pkg_config_flags $pkg) - pkg_libs=$($pkg_config --libs $pkg_config_flags $pkg) - { - echo "#include " - echo "#include FT_FREETYPE_H" - echo "long check_func(void) { return (long) FT_Init_FreeType; }" - echo "int main(void) { return 0; }" - } | check_ld "cc" $pkg_cflags $pkg_libs \ - && set_safe ${pkg}_cflags $pkg_cflags \ - && set_safe ${pkg}_libs $pkg_libs \ - || die "ERROR: $pkg not found" + pkg="$1" + check_pkg_config "$@" || die "ERROR: $pkg not found" add_cflags $(get_safe ${pkg}_cflags) add_extralibs $(get_safe ${pkg}_libs) } -hostcc_e(){ - eval printf '%s\\n' $HOSTCC_E -} - -hostcc_o(){ - eval printf '%s\\n' $HOSTCC_O -} - check_host_cc(){ log check_host_cc "$@" cat > $TMPC log_file $TMPC - check_cmd $host_cc $host_cflags "$@" $HOSTCC_C $(hostcc_o $TMPO) $TMPC -} - -check_host_cpp(){ - log check_host_cpp "$@" - cat > $TMPC - log_file $TMPC - check_cmd $host_cc $host_cppflags $host_cflags "$@" $(hostcc_e $TMPO) $TMPC -} - -check_host_cppflags(){ - log check_host_cppflags "$@" - check_host_cc "$@" < -#if !($condition) -#error "unsatisfied condition: $condition" -#endif -EOF -} - apply(){ file=$1 shift @@ -1293,7 +966,7 @@ cp_if_changed(){ cmp -s "$1" "$2" && echo "$2 is unchanged" && return mkdir -p "$(dirname $2)" - $cp_f "$1" "$2" + cp -f "$1" "$2" } # CONFIG_LIST contains configurable options, while HAVE_LIST is for @@ -1313,50 +986,53 @@ protocols " -EXAMPLE_LIST=" - avio_reading_example - decoding_encoding_example - demuxing_decoding_example - extract_mvs_example - filter_audio_example - filtering_audio_example - filtering_video_example - metadata_example - muxing_example - remuxing_example - resampling_audio_example - scaling_video_example - transcode_aac_example - transcoding_example +PROGRAM_LIST=" + ffplay + ffprobe + ffserver + ffmpeg " -EXTERNAL_LIBRARY_LIST=" +CONFIG_LIST=" + $COMPONENT_LIST + $PROGRAM_LIST + avplay + avprobe + avserver + aandct + ac3dsp + avcodec + avdevice + avfilter + avformat avisynth bzlib crystalhd - decklink + dct + doc + dwt + dxva2 + fastdiv + fft frei0r gnutls - iconv - ladspa + golomb + gpl + gray + h264chroma + h264dsp + h264pred + hardcoded_tables + huffman libaacplus libass - libbluray - libbs2b - libcaca libcdio libcelt libdc1394 + libdirac libfaac - libfdk_aac - libflite - libfontconfig libfreetype - libfribidi - libgme libgsm - libiec61883 - libilbc libmodplug libmp3lame libnut @@ -1364,154 +1040,61 @@ libopencore_amrwb libopencv libopenjpeg - libopus libpulse - libquvi librtmp libschroedinger - libshine - libsmbclient - libsoxr libspeex - libssh libstagefright_h264 libtheora - libtwolame libutvideo libv4l2 - libvidstab libvo_aacenc libvo_amrwbenc libvorbis libvpx - libwavpack - libwebp libx264 - libx265 libxavs - libxcb - libxcb_shm - libxcb_shape - libxcb_xfixes libxvid - libzmq - libzvbi - lzma + lpc + lsp + mdct + memalign_hack + mlib + mpegaudiodsp + network + nonfree openal - opencl - opengl openssl - sdl - x11grab - xlib - zlib -" - -DOCUMENT_LIST=" - doc - htmlpages - manpages - podpages - txtpages -" - -FEATURE_LIST=" - ftrapv - gray - hardcoded_tables + pic + postproc + rdft + rtpdec runtime_cpudetect safe_bitstream_reader shared + sinewin small + sram static + swresample + swscale swscale_alpha -" - -HWACCEL_LIST=" - dxva2 + thumb vaapi vda vdpau - xvmc -" - -LIBRARY_LIST=" - avcodec - avdevice - avfilter - avformat - avresample - avutil - postproc - swresample - swscale -" - -LICENSE_LIST=" - gpl - nonfree version3 + x11grab + zlib " -PROGRAM_LIST=" - ffplay - ffprobe - ffserver - ffmpeg -" - -SUBSYSTEM_LIST=" - dct - dwt - error_resilience - faan - fast_unaligned - fft - lsp - lzo - mdct - pixelutils - network - rdft -" - -CONFIG_LIST=" - $COMPONENT_LIST - $DOCUMENT_LIST - $EXAMPLE_LIST - $EXTERNAL_LIBRARY_LIST - $FEATURE_LIST - $HWACCEL_LIST - $LICENSE_LIST - $LIBRARY_LIST - $PROGRAM_LIST - $SUBSYSTEM_LIST - fontconfig - incompatible_libav_abi - memalign_hack - memory_poisoning - neon_clobber_test - pic - pod2man - raise_major - thumb - xmm_clobber_test -" - -THREADS_LIST=" +THREADS_LIST=' pthreads - os2threads w32threads -" - -ATOMICS_LIST=" - atomics_gcc - atomics_suncc - atomics_win32 -" + os2threads +' -ARCH_LIST=" - aarch64 +ARCH_LIST=' alpha arm avr32 @@ -1529,410 +1112,197 @@ sh4 sparc sparc64 - tilegx - tilepro tomi x86 x86_32 x86_64 -" +' -ARCH_EXT_LIST_ARM=" +ARCH_EXT_LIST=' + altivec + amd3dnow + amd3dnowext armv5te armv6 armv6t2 - armv8 - neon - vfp - vfpv3 - setend -" - -ARCH_EXT_LIST_MIPS=" - mipsfpu - mips32r2 - mipsdspr1 - mipsdspr2 -" - -ARCH_EXT_LIST_X86_SIMD=" - amd3dnow - amd3dnowext + armvfp avx - avx2 - fma3 - fma4 + iwmmxt + mmi mmx - mmxext + mmx2 + neon + ppc4xx sse - sse2 - sse3 - sse4 - sse42 ssse3 - xop -" - -ARCH_EXT_LIST_PPC=" - altivec - dcbzl - ldbrx - ppc4xx - vsx -" - -ARCH_EXT_LIST_X86=" - $ARCH_EXT_LIST_X86_SIMD - cpunop - i686 -" - -ARCH_EXT_LIST=" - $ARCH_EXT_LIST_ARM - $ARCH_EXT_LIST_PPC - $ARCH_EXT_LIST_X86 - $ARCH_EXT_LIST_MIPS - loongson -" - -ARCH_FEATURES=" - aligned_stack - fast_64bit - fast_clz - fast_cmov - local_aligned_8 - local_aligned_16 - local_aligned_32 - simd_align_16 -" - -BUILTIN_LIST=" - atomic_cas_ptr - atomic_compare_exchange - machine_rw_barrier - MemoryBarrier - mm_empty - rdtsc - sarestart - sync_val_compare_and_swap -" -HAVE_LIST_CMDLINE=" - inline_asm - symver - yasm -" + vfpv3 + vis +' -HAVE_LIST_PUB=" +HAVE_LIST_PUB=' bigendian fast_unaligned - incompatible_libav_abi -" +' -HEADERS_LIST=" +HAVE_LIST=" + $ARCH_EXT_LIST + $HAVE_LIST_PUB + $THREADS_LIST + aligned_stack alsa_asoundlib_h altivec_h arpa_inet_h + asm_mod_y asm_types_h - cdio_paranoia_h - cdio_paranoia_paranoia_h - CL_cl_h + attribute_may_alias + attribute_packed + cbrtf + closesocket + cmov + dcbzl dev_bktr_ioctl_bt848_h dev_bktr_ioctl_meteor_h dev_ic_bt8xx_h dev_video_bktr_ioctl_bt848_h dev_video_meteor_ioctl_meteor_h - direct_h dlfcn_h + dlopen + dos_paths dxva_h - ES2_gl_h - gsm_h - io_h - mach_mach_time_h - machine_ioctl_bt848_h - machine_ioctl_meteor_h - malloc_h - openjpeg_1_5_openjpeg_h - OpenGL_gl3_h - poll_h - sndio_h - soundcard_h - sys_mman_h - sys_param_h - sys_resource_h - sys_select_h - sys_soundcard_h - sys_time_h - sys_un_h - sys_videoio_h - termios_h - udplite_h - unistd_h - windows_h - winsock2_h -" - -INTRINSICS_LIST=" - intrinsics_neon -" - -MATH_FUNCS=" - atanf - atan2f - cbrt - cbrtf - cosf + ebp_available + ebx_available exp2 exp2f - expf - isinf - isnan - ldexpf - llrint - llrintf - log2 - log2f - log10f - lrint - lrintf - powf - rint - round - roundf - sinf - trunc - truncf -" - -SYSTEM_FUNCS=" - access - aligned_malloc - clock_gettime - closesocket - CommandLineToArgvW - CoTaskMemFree - CryptGenRandom - dlopen + fast_64bit + fast_clz + fast_cmov fcntl - flt_lim fork getaddrinfo gethrtime - getopt GetProcessAffinityMask GetProcessMemoryInfo GetProcessTimes getrusage - getservbyport - GetSystemTimeAsFileTime - gettimeofday - glob - glXGetProcAddress - gmtime_r + gnu_as + ibm_asm inet_aton + inline_asm isatty - jack_port_get_latency_range kbhit + ldbrx + llrint + llrintf + local_aligned_16 + local_aligned_8 localtime_r + log2 + log2f + loongson + lrint + lrintf lzo1x_999_compress - mach_absolute_time + machine_ioctl_bt848_h + machine_ioctl_meteor_h + makeinfo + malloc_h MapViewOfFile - MoveFileExA memalign mkstemp mmap - mprotect - nanosleep PeekNamedPipe + poll_h posix_memalign - pthread_cancel + round + roundf sched_getaffinity - SetConsoleTextAttribute + sdl + sdl_video_size setmode setrlimit - Sleep - strerror_r - sysconf - sysctl - usleep - VirtualAlloc - wglGetProcAddress -" - -TOOLCHAIN_FEATURES=" - as_dn_directive - as_func - asm_mod_q - attribute_may_alias - attribute_packed - ebp_available - ebx_available - gnu_as - gnu_windres - ibm_asm - inline_asm_labels - inline_asm_nonlocal_labels - inline_asm_direct_symbol_refs - pragma_deprecated - rsync_contimeout - symver_asm_label - symver_gnu_asm - vfp_args - xform_asm - xmm_clobbers -" - -TYPES_LIST=" - CONDITION_VARIABLE_Ptr + sndio_h socklen_t + soundcard_h + strerror_r + strptime struct_addrinfo - struct_group_source_req - struct_ip_mreq_source struct_ipv6_mreq - struct_pollfd struct_rusage_ru_maxrss - struct_sctp_event_subscribe struct_sockaddr_in6 struct_sockaddr_sa_len struct_sockaddr_storage - struct_stat_st_mtim_tv_nsec struct_v4l2_frmivalenum_discrete -" - -HAVE_LIST=" - $ARCH_EXT_LIST - $(add_suffix _external $ARCH_EXT_LIST) - $(add_suffix _inline $ARCH_EXT_LIST) - $ARCH_FEATURES - $ATOMICS_LIST - $BUILTIN_LIST - $HAVE_LIST_CMDLINE - $HAVE_LIST_PUB - $HEADERS_LIST - $INTRINSICS_LIST - $MATH_FUNCS - $SYSTEM_FUNCS - $THREADS_LIST - $TOOLCHAIN_FEATURES - $TYPES_LIST - atomics_native - dos_paths - dxva2api_cobj - dxva2_lib - libc_msvcrt - libdc1394_1 - libdc1394_2 - makeinfo - makeinfo_html - perl - pod2man - sdl - texi2html + symver + symver_asm_label + symver_gnu_asm + sysconf + sysctl + sys_mman_h + sys_param_h + sys_resource_h + sys_select_h + sys_soundcard_h + sys_videoio_h + termios_h threads - vdpau_x11 - xlib + trunc + truncf + vfp_args + VirtualAlloc + winsock2_h + xform_asm + xmm_clobbers + yasm " -# options emitted with CONFIG_ prefix but not available on the command line +# options emitted with CONFIG_ prefix but not available on command line CONFIG_EXTRA=" - aandcttables - ac3dsp - audio_frame_queue - audiodsp - blockdsp - bswapdsp - cabac - dvprofile - exif - faandct - faanidct - fdctdsp - frame_thread_encoder - gcrypt - golomb + avutil gplv3 - h263dsp - h264chroma - h264dsp - h264pred - h264qpel - hpeldsp - huffman - huffyuvdsp - huffyuvencdsp - idctdsp - iirfilter - intrax8 lgplv3 - llauddsp - llviddsp - lpc - me_cmp - mpeg_er - mpegaudio - mpegaudiodsp - mpegvideo - mpegvideoenc - nettle - pixblockdsp - qpeldsp - rangecoder - riffdec - riffenc - rtpdec - rtpenc_chain - sinewin - startcode - tpeldsp - videodsp - vp3dsp - wma_freqs " CMDLINE_SELECT=" $ARCH_EXT_LIST $CONFIG_LIST - $HAVE_LIST_CMDLINE $THREADS_LIST asm + coverage cross_compile debug extra_warnings logging - lto optimizations - rpath stripping + symver + yasm " -PATHS_LIST=" +PATHS_LIST=' bindir datadir - docdir incdir libdir mandir prefix shlibdir -" +' CMDLINE_SET=" $PATHS_LIST ar arch as - assert_level build_suffix + progs_suffix cc cpu cross_prefix cxx dep_cc - doxygen extra_version - gas host_cc host_cflags - host_ld host_ldflags host_libs host_os @@ -1943,21 +1313,14 @@ nm optflags pkg_config - pkg_config_flags - progs_suffix - random_seed - ranlib samples strip - sws_max_filter_size sysinclude sysroot target_exec target_os target_path - target_samples - tempprefix - toolchain + postproc_version valgrind yasmexe " @@ -1965,7 +1328,6 @@ CMDLINE_APPEND=" extra_cflags extra_cxxflags - host_cppflags " # code dependency declarations @@ -1975,694 +1337,446 @@ armv5te_deps="arm" armv6_deps="arm" armv6t2_deps="arm" -armv8_deps="aarch64" -neon_deps_any="aarch64 arm" -intrinsics_neon_deps="neon" -vfp_deps_any="aarch64 arm" -vfpv3_deps="vfp" -setend_deps="arm" - -map 'eval ${v}_inline_deps=inline_asm' $ARCH_EXT_LIST_ARM - -mipsfpu_deps="mips" -mips32r2_deps="mips" -mipsdspr1_deps="mips" -mipsdspr2_deps="mips" +armvfp_deps="arm" +iwmmxt_deps="arm" +neon_deps="arm" +vfpv3_deps="armvfp" + +mmi_deps="mips" altivec_deps="ppc" ppc4xx_deps="ppc" -vsx_deps="ppc" -cpunop_deps="i686" -x86_64_select="i686" -x86_64_suggest="fast_cmov" +vis_deps="sparc" +x86_64_suggest="cmov fast_cmov" amd3dnow_deps="mmx" amd3dnowext_deps="amd3dnow" -i686_deps="x86" mmx_deps="x86" -mmxext_deps="mmx" -sse_deps="mmxext" -sse2_deps="sse" -sse3_deps="sse2" -ssse3_deps="sse3" -sse4_deps="ssse3" -sse42_deps="sse4" -avx_deps="sse42" -xop_deps="avx" -fma3_deps="avx" -fma4_deps="avx" -avx2_deps="avx" - -mmx_external_deps="yasm" -mmx_inline_deps="inline_asm" -mmx_suggest="mmx_external mmx_inline" - -for ext in $(filter_out mmx $ARCH_EXT_LIST_X86_SIMD); do - eval dep=\$${ext}_deps - eval ${ext}_external_deps='"${dep}_external"' - eval ${ext}_inline_deps='"${dep}_inline"' - eval ${ext}_suggest='"${ext}_external ${ext}_inline"' -done - -aligned_stack_if_any="aarch64 ppc x86" -fast_64bit_if_any="aarch64 alpha ia64 mips64 parisc64 ppc64 sparc64 x86_64" -fast_clz_if_any="aarch64 alpha avr32 mips ppc x86" -fast_unaligned_if_any="aarch64 ppc x86" -simd_align_16_if_any="altivec neon sse" +mmx2_deps="mmx" +sse_deps="mmx" +ssse3_deps="sse" +avx_deps="ssse3" + +aligned_stack_if_any="ppc x86" +fast_64bit_if_any="alpha ia64 mips64 parisc64 ppc64 sparc64 x86_64" +fast_clz_if_any="alpha armv5te avr32 mips ppc x86" +fast_unaligned_if_any="armv6 ppc x86" -# system capabilities +inline_asm_deps="!tms470" +need_memalign="altivec neon sse" symver_if_any="symver_asm_label symver_gnu_asm" -# threading support -atomics_gcc_if_any="sync_val_compare_and_swap atomic_compare_exchange" -atomics_suncc_if="atomic_cas_ptr machine_rw_barrier" -atomics_win32_if="MemoryBarrier" -atomics_native_if_any="$ATOMICS_LIST" -w32threads_deps="atomics_native" -threads_if_any="$THREADS_LIST" - # subsystems dct_select="rdft" -error_resilience_select="me_cmp" -faandct_deps="faan fdctdsp" -faanidct_deps="faan idctdsp" -frame_thread_encoder_deps="encoders threads" -intrax8_select="error_resilience" mdct_select="fft" rdft_select="fft" -me_cmp_select="fdctdsp idctdsp pixblockdsp" -mpeg_er_select="error_resilience" -mpegaudio_select="mpegaudiodsp" mpegaudiodsp_select="dct" -mpegvideo_select="blockdsp h264chroma hpeldsp idctdsp me_cmp videodsp" -mpegvideoenc_select="me_cmp mpegvideo pixblockdsp qpeldsp" -# decoders / encoders +# decoders / encoders / hardware accelerators aac_decoder_select="mdct sinewin" -aac_encoder_select="audio_frame_queue iirfilter mdct sinewin" +aac_encoder_select="mdct sinewin" aac_latm_decoder_select="aac_decoder aac_latm_parser" -ac3_decoder_select="ac3_parser ac3dsp bswapdsp mdct" -ac3_fixed_decoder_select="ac3_parser ac3dsp bswapdsp mdct" -ac3_encoder_select="ac3dsp audiodsp mdct me_cmp" -ac3_fixed_encoder_select="ac3dsp audiodsp mdct me_cmp" -aic_decoder_select="golomb idctdsp" +ac3_decoder_select="mdct ac3dsp ac3_parser" +ac3_encoder_select="mdct ac3dsp" +ac3_fixed_encoder_select="mdct ac3dsp" alac_encoder_select="lpc" -als_decoder_select="bswapdsp" amrnb_decoder_select="lsp" amrwb_decoder_select="lsp" -amv_decoder_select="sp5x_decoder exif" -amv_encoder_select="aandcttables mpegvideoenc" -ape_decoder_select="bswapdsp llauddsp" -apng_decoder_select="zlib" -asv1_decoder_select="blockdsp bswapdsp idctdsp" -asv1_encoder_select="bswapdsp fdctdsp pixblockdsp" -asv2_decoder_select="blockdsp bswapdsp idctdsp" -asv2_encoder_select="bswapdsp fdctdsp pixblockdsp" atrac1_decoder_select="mdct sinewin" atrac3_decoder_select="mdct" -atrac3p_decoder_select="mdct sinewin" -avrn_decoder_select="exif" -bink_decoder_select="blockdsp hpeldsp" -binkaudio_dct_decoder_select="mdct rdft dct sinewin wma_freqs" -binkaudio_rdft_decoder_select="mdct rdft sinewin wma_freqs" -cavs_decoder_select="blockdsp golomb h264chroma idctdsp qpeldsp videodsp" -cllc_decoder_select="bswapdsp" -comfortnoise_encoder_select="lpc" -cook_decoder_select="audiodsp mdct sinewin" -cscd_decoder_select="lzo" +binkaudio_dct_decoder_select="mdct rdft dct sinewin" +binkaudio_rdft_decoder_select="mdct rdft sinewin" +cavs_decoder_select="golomb" +cook_decoder_select="mdct sinewin" cscd_decoder_suggest="zlib" dca_decoder_select="mdct" -dirac_decoder_select="dwt golomb videodsp mpegvideoenc" -dnxhd_decoder_select="blockdsp idctdsp" -dnxhd_encoder_select="aandcttables blockdsp fdctdsp idctdsp mpegvideoenc pixblockdsp" -dvvideo_decoder_select="dvprofile idctdsp" -dvvideo_encoder_select="dvprofile fdctdsp me_cmp pixblockdsp" +dnxhd_encoder_select="aandct" dxa_decoder_select="zlib" eac3_decoder_select="ac3_decoder" -eac3_encoder_select="ac3_encoder" -eamad_decoder_select="aandcttables blockdsp bswapdsp idctdsp mpegvideo" -eatgq_decoder_select="aandcttables" -eatqi_decoder_select="aandcttables blockdsp bswapdsp idctdsp mpeg1video_decoder" -exr_decoder_select="zlib" -ffv1_decoder_select="golomb rangecoder" -ffv1_encoder_select="rangecoder" -ffvhuff_decoder_select="huffyuv_decoder" -ffvhuff_encoder_select="huffyuv_encoder" -fic_decoder_select="golomb" +eac3_encoder_select="mdct ac3dsp" +eamad_decoder_select="aandct" +eatgq_decoder_select="aandct" +eatqi_decoder_select="aandct" +ffv1_decoder_select="golomb" flac_decoder_select="golomb" -flac_encoder_select="bswapdsp golomb lpc" +flac_encoder_select="golomb lpc" flashsv_decoder_select="zlib" flashsv_encoder_select="zlib" flashsv2_encoder_select="zlib" flashsv2_decoder_select="zlib" flv_decoder_select="h263_decoder" flv_encoder_select="h263_encoder" -fourxm_decoder_select="blockdsp bswapdsp" -fraps_decoder_select="bswapdsp huffman" -g2m_decoder_select="blockdsp idctdsp zlib" -g729_decoder_select="audiodsp" -h261_decoder_select="mpeg_er mpegvideo" -h261_encoder_select="aandcttables mpegvideoenc" -h263_decoder_select="error_resilience h263_parser h263dsp mpeg_er mpegvideo qpeldsp" -h263_encoder_select="aandcttables h263dsp mpegvideoenc" +fraps_decoder_select="huffman" +h261_encoder_select="aandct" +h263_decoder_select="h263_parser" +h263_encoder_select="aandct" +h263_vaapi_hwaccel_select="vaapi h263_decoder" h263i_decoder_select="h263_decoder" h263p_encoder_select="h263_encoder" -h264_decoder_select="cabac golomb h264chroma h264dsp h264pred h264qpel startcode videodsp" -h264_decoder_suggest="error_resilience" -hevc_decoder_select="bswapdsp cabac golomb videodsp" -huffyuv_decoder_select="bswapdsp huffyuvdsp llviddsp" -huffyuv_encoder_select="bswapdsp huffman huffyuvencdsp llviddsp" -iac_decoder_select="imc_decoder" -imc_decoder_select="bswapdsp fft mdct sinewin" -indeo3_decoder_select="hpeldsp" -interplay_video_decoder_select="hpeldsp" -jpegls_decoder_select="golomb mjpeg_decoder" +h264_crystalhd_decoder_select="crystalhd h264_mp4toannexb_bsf h264_parser" +h264_decoder_select="golomb h264chroma h264dsp h264pred" +h264_dxva2_hwaccel_deps="dxva2api_h" +h264_dxva2_hwaccel_select="dxva2 h264_decoder" +h264_vaapi_hwaccel_select="vaapi h264_decoder" +h264_vda_hwaccel_deps="VideoDecodeAcceleration_VDADecoder_h pthreads" +h264_vda_hwaccel_select="vda h264_decoder" +h264_vdpau_decoder_select="vdpau h264_decoder" +imc_decoder_select="fft mdct sinewin" +jpegls_decoder_select="golomb" jpegls_encoder_select="golomb" -jv_decoder_select="blockdsp" -lagarith_decoder_select="huffyuvdsp" -ljpeg_encoder_select="aandcttables idctdsp" +ljpeg_encoder_select="aandct" loco_decoder_select="golomb" -mdec_decoder_select="blockdsp idctdsp mpegvideo" -metasound_decoder_select="lsp mdct sinewin" -mimic_decoder_select="blockdsp bswapdsp hpeldsp idctdsp" -mjpeg_decoder_select="blockdsp hpeldsp exif idctdsp" -mjpeg_encoder_select="aandcttables mpegvideoenc" -mjpegb_decoder_select="mjpeg_decoder" +mjpeg_encoder_select="aandct" mlp_decoder_select="mlp_parser" -motionpixels_decoder_select="bswapdsp" -mp1_decoder_select="mpegaudio" -mp1float_decoder_select="mpegaudio" -mp2_decoder_select="mpegaudio" -mp2float_decoder_select="mpegaudio" -mp3_decoder_select="mpegaudio" -mp3adu_decoder_select="mpegaudio" -mp3adufloat_decoder_select="mpegaudio" -mp3float_decoder_select="mpegaudio" -mp3on4_decoder_select="mpegaudio" -mp3on4float_decoder_select="mpegaudio" -mpc7_decoder_select="bswapdsp mpegaudiodsp" +mp1_decoder_select="mpegaudiodsp" +mp1float_decoder_select="mpegaudiodsp" +mp2_decoder_select="mpegaudiodsp" +mp2float_decoder_select="mpegaudiodsp" +mp3_decoder_select="mpegaudiodsp" +mp3adu_decoder_select="mpegaudiodsp" +mp3adufloat_decoder_select="mpegaudiodsp" +mp3float_decoder_select="mpegaudiodsp" +mp3on4_decoder_select="mpegaudiodsp" +mp3on4float_decoder_select="mpegaudiodsp" +mpc7_decoder_select="mpegaudiodsp" mpc8_decoder_select="mpegaudiodsp" +mpeg_vdpau_decoder_select="vdpau mpegvideo_decoder" mpeg_xvmc_decoder_deps="X11_extensions_XvMClib_h" -mpeg_xvmc_decoder_select="mpeg2video_decoder" -mpegvideo_decoder_select="error_resilience mpeg_er mpegvideo" -mpeg1video_decoder_select="error_resilience mpeg_er mpegvideo" -mpeg1video_encoder_select="aandcttables mpegvideoenc h263dsp" -mpeg2video_decoder_select="error_resilience mpeg_er mpegvideo" -mpeg2video_encoder_select="aandcttables mpegvideoenc h263dsp" +mpeg_xvmc_decoder_select="mpegvideo_decoder" +mpeg1_vdpau_decoder_select="vdpau mpeg1video_decoder" +mpeg1_vdpau_hwaccel_select="vdpau mpeg1video_decoder" +mpeg1video_encoder_select="aandct" +mpeg2_crystalhd_decoder_select="crystalhd" +mpeg2_dxva2_hwaccel_deps="dxva2api_h" +mpeg2_dxva2_hwaccel_select="dxva2 mpeg2video_decoder" +mpeg2_vdpau_hwaccel_select="vdpau mpeg2video_decoder" +mpeg2_vaapi_hwaccel_select="vaapi mpeg2video_decoder" +mpeg2video_encoder_select="aandct" +mpeg4_crystalhd_decoder_select="crystalhd" mpeg4_decoder_select="h263_decoder mpeg4video_parser" mpeg4_encoder_select="h263_encoder" +mpeg4_vaapi_hwaccel_select="vaapi mpeg4_decoder" +mpeg4_vdpau_decoder_select="vdpau mpeg4_decoder" +msmpeg4_crystalhd_decoder_select="crystalhd" msmpeg4v1_decoder_select="h263_decoder" +msmpeg4v1_encoder_select="h263_encoder" msmpeg4v2_decoder_select="h263_decoder" msmpeg4v2_encoder_select="h263_encoder" msmpeg4v3_decoder_select="h263_decoder" msmpeg4v3_encoder_select="h263_encoder" -mss2_decoder_select="error_resilience mpeg_er qpeldsp vc1_decoder" -mxpeg_decoder_select="mjpeg_decoder" nellymoser_decoder_select="mdct sinewin" -nellymoser_encoder_select="audio_frame_queue mdct sinewin" -nuv_decoder_select="idctdsp lzo" -on2avc_decoder_select="mdct" -opus_decoder_deps="swresample" +nellymoser_encoder_select="mdct sinewin" png_decoder_select="zlib" -png_encoder_select="huffyuvencdsp zlib" -prores_decoder_select="blockdsp idctdsp" -prores_encoder_select="fdctdsp" +png_encoder_select="zlib" qcelp_decoder_select="lsp" qdm2_decoder_select="mdct rdft mpegaudiodsp" -ra_144_encoder_select="audio_frame_queue lpc audiodsp" -ra_144_decoder_select="audiodsp" -ralf_decoder_select="golomb" -rawvideo_decoder_select="bswapdsp" -rtjpeg_decoder_select="me_cmp" -rv10_decoder_select="error_resilience h263_decoder h263dsp mpeg_er" +ra_144_encoder_select="lpc" +rv10_decoder_select="h263_decoder" rv10_encoder_select="h263_encoder" -rv20_decoder_select="error_resilience h263_decoder h263dsp mpeg_er" +rv20_decoder_select="h263_decoder" rv20_encoder_select="h263_encoder" -rv30_decoder_select="error_resilience golomb h264chroma h264pred h264qpel mpeg_er mpegvideo videodsp" -rv40_decoder_select="error_resilience golomb h264chroma h264pred h264qpel mpeg_er mpegvideo videodsp" +rv30_decoder_select="golomb h264chroma h264pred" +rv40_decoder_select="golomb h264chroma h264pred" shorten_decoder_select="golomb" sipr_decoder_select="lsp" -snow_decoder_select="dwt h264qpel hpeldsp me_cmp rangecoder videodsp" -snow_encoder_select="aandcttables dwt h264qpel hpeldsp me_cmp mpegvideoenc rangecoder" -sonic_decoder_select="golomb rangecoder" -sonic_encoder_select="golomb rangecoder" -sonic_ls_encoder_select="golomb rangecoder" -sp5x_decoder_select="mjpeg_decoder" -svq1_decoder_select="hpeldsp" -svq1_encoder_select="aandcttables hpeldsp me_cmp mpegvideoenc" -svq3_decoder_select="h264_decoder hpeldsp tpeldsp" +snow_decoder_select="dwt" +snow_encoder_select="aandct dwt" +sonic_decoder_select="golomb" +sonic_encoder_select="golomb" +sonic_ls_encoder_select="golomb" +svq1_encoder_select="aandct" +svq3_decoder_select="golomb h264chroma h264dsp h264pred" svq3_decoder_suggest="zlib" -tak_decoder_select="audiodsp" theora_decoder_select="vp3_decoder" -thp_decoder_select="mjpeg_decoder" -tiff_decoder_suggest="zlib lzma" +tiff_decoder_suggest="zlib" tiff_encoder_suggest="zlib" -truehd_decoder_select="mlp_parser" -truemotion2_decoder_select="bswapdsp" -truespeech_decoder_select="bswapdsp" +truehd_decoder_select="mlp_decoder" tscc_decoder_select="zlib" twinvq_decoder_select="mdct lsp sinewin" -utvideo_decoder_select="bswapdsp" -utvideo_encoder_select="bswapdsp huffman huffyuvencdsp" -vble_decoder_select="huffyuvdsp" -vc1_decoder_select="blockdsp error_resilience h263_decoder h264chroma h264qpel intrax8 mpeg_er qpeldsp startcode" +vc1_crystalhd_decoder_select="crystalhd" +vc1_decoder_select="h263_decoder h264chroma" +vc1_dxva2_hwaccel_deps="dxva2api_h" +vc1_dxva2_hwaccel_select="dxva2 vc1_decoder" +vc1_vaapi_hwaccel_select="vaapi vc1_decoder" +vc1_vdpau_decoder_select="vdpau vc1_decoder" vc1image_decoder_select="vc1_decoder" vorbis_decoder_select="mdct" vorbis_encoder_select="mdct" -vp3_decoder_select="hpeldsp vp3dsp videodsp" -vp5_decoder_select="h264chroma hpeldsp videodsp vp3dsp" -vp6_decoder_select="h264chroma hpeldsp huffman videodsp vp3dsp" +vp6_decoder_select="huffman" vp6a_decoder_select="vp6_decoder" vp6f_decoder_select="vp6_decoder" -vp7_decoder_select="h264pred videodsp" -vp8_decoder_select="h264pred videodsp" -vp9_decoder_select="videodsp vp9_parser" -webp_decoder_select="vp8_decoder" -wmalossless_decoder_select="llauddsp" -wmapro_decoder_select="mdct sinewin wma_freqs" -wmav1_decoder_select="mdct sinewin wma_freqs" -wmav1_encoder_select="mdct sinewin wma_freqs" -wmav2_decoder_select="mdct sinewin wma_freqs" -wmav2_encoder_select="mdct sinewin wma_freqs" +vp8_decoder_select="h264pred" +wmapro_decoder_select="mdct sinewin" +wmav1_decoder_select="mdct sinewin" +wmav1_encoder_select="mdct sinewin" +wmav2_decoder_select="mdct sinewin" +wmav2_encoder_select="mdct sinewin" wmavoice_decoder_select="lsp rdft dct mdct sinewin" wmv1_decoder_select="h263_decoder" wmv1_encoder_select="h263_encoder" -wmv2_decoder_select="blockdsp h263_decoder idctdsp intrax8 videodsp" +wmv2_decoder_select="h263_decoder" wmv2_encoder_select="h263_encoder" wmv3_decoder_select="vc1_decoder" +wmv3_crystalhd_decoder_select="crystalhd" +wmv3_dxva2_hwaccel_select="vc1_dxva2_hwaccel" +wmv3_vaapi_hwaccel_select="vc1_vaapi_hwaccel" +wmv3_vdpau_decoder_select="vc1_vdpau_decoder" wmv3image_decoder_select="wmv3_decoder" -zerocodec_decoder_select="zlib" zlib_decoder_select="zlib" zlib_encoder_select="zlib" zmbv_decoder_select="zlib" zmbv_encoder_select="zlib" -# hardware accelerators crystalhd_deps="libcrystalhd_libcrystalhd_if_h" -dxva2_deps="dxva2api_h" vaapi_deps="va_va_h" vda_deps="VideoDecodeAcceleration_VDADecoder_h pthreads" -vda_extralibs="-framework CoreFoundation -framework VideoDecodeAcceleration -framework QuartzCore" vdpau_deps="vdpau_vdpau_h vdpau_vdpau_x11_h" -xvmc_deps="X11_extensions_XvMClib_h" - -h263_vaapi_hwaccel_deps="vaapi" -h263_vaapi_hwaccel_select="h263_decoder" -h263_vdpau_hwaccel_deps="vdpau" -h263_vdpau_hwaccel_select="h263_decoder" -h264_crystalhd_decoder_select="crystalhd h264_mp4toannexb_bsf h264_parser" -h264_dxva2_hwaccel_deps="dxva2" -h264_dxva2_hwaccel_select="h264_decoder" -h264_vaapi_hwaccel_deps="vaapi" -h264_vaapi_hwaccel_select="h264_decoder" -h264_vda_decoder_deps="vda" -h264_vda_decoder_select="h264_decoder" -h264_vda_hwaccel_deps="vda" -h264_vda_hwaccel_select="h264_decoder" -h264_vda_old_hwaccel_deps="vda" -h264_vda_old_hwaccel_select="h264_decoder" -h264_vdpau_decoder_deps="vdpau" -h264_vdpau_decoder_select="h264_decoder" -h264_vdpau_hwaccel_deps="vdpau" -h264_vdpau_hwaccel_select="h264_decoder" -mpeg_vdpau_decoder_deps="vdpau" -mpeg_vdpau_decoder_select="mpeg2video_decoder" -mpeg_xvmc_hwaccel_deps="xvmc" -mpeg_xvmc_hwaccel_select="mpeg2video_decoder" -mpeg1_vdpau_decoder_deps="vdpau" -mpeg1_vdpau_decoder_select="mpeg1video_decoder" -mpeg1_vdpau_hwaccel_deps="vdpau" -mpeg1_vdpau_hwaccel_select="mpeg1video_decoder" -mpeg1_xvmc_hwaccel_deps="xvmc" -mpeg1_xvmc_hwaccel_select="mpeg1video_decoder" -mpeg2_crystalhd_decoder_select="crystalhd" -mpeg2_dxva2_hwaccel_deps="dxva2" -mpeg2_dxva2_hwaccel_select="mpeg2video_decoder" -mpeg2_vaapi_hwaccel_deps="vaapi" -mpeg2_vaapi_hwaccel_select="mpeg2video_decoder" -mpeg2_vdpau_hwaccel_deps="vdpau" -mpeg2_vdpau_hwaccel_select="mpeg2video_decoder" -mpeg2_xvmc_hwaccel_deps="xvmc" -mpeg2_xvmc_hwaccel_select="mpeg2video_decoder" -mpeg4_crystalhd_decoder_select="crystalhd" -mpeg4_vaapi_hwaccel_deps="vaapi" -mpeg4_vaapi_hwaccel_select="mpeg4_decoder" -mpeg4_vdpau_decoder_deps="vdpau" -mpeg4_vdpau_decoder_select="mpeg4_decoder" -mpeg4_vdpau_hwaccel_deps="vdpau" -mpeg4_vdpau_hwaccel_select="mpeg4_decoder" -msmpeg4_crystalhd_decoder_select="crystalhd" -vc1_crystalhd_decoder_select="crystalhd" -vc1_dxva2_hwaccel_deps="dxva2" -vc1_dxva2_hwaccel_select="vc1_decoder" -vc1_vaapi_hwaccel_deps="vaapi" -vc1_vaapi_hwaccel_select="vc1_decoder" -vc1_vdpau_decoder_deps="vdpau" -vc1_vdpau_decoder_select="vc1_decoder" -vc1_vdpau_hwaccel_deps="vdpau" -vc1_vdpau_hwaccel_select="vc1_decoder" -wmv3_crystalhd_decoder_select="crystalhd" -wmv3_dxva2_hwaccel_select="vc1_dxva2_hwaccel" -wmv3_vaapi_hwaccel_select="vc1_vaapi_hwaccel" -wmv3_vdpau_decoder_select="vc1_vdpau_decoder" -wmv3_vdpau_hwaccel_select="vc1_vdpau_hwaccel" # parsers -h264_parser_select="h264_decoder" -hevc_parser_select="hevc_decoder" -mpegvideo_parser_select="mpegvideo" -mpeg4video_parser_select="error_resilience h263dsp mpeg_er mpegvideo qpeldsp" -vc1_parser_select="mpegvideo startcode vc1_decoder" +h264_parser_select="golomb h264chroma h264dsp h264pred" # external libraries libaacplus_encoder_deps="libaacplus" libcelt_decoder_deps="libcelt" +libdirac_decoder_deps="libdirac !libschroedinger" +libdirac_encoder_deps="libdirac" libfaac_encoder_deps="libfaac" -libfaac_encoder_select="audio_frame_queue" -libfdk_aac_decoder_deps="libfdk_aac" -libfdk_aac_encoder_deps="libfdk_aac" -libfdk_aac_encoder_select="audio_frame_queue" -libgme_demuxer_deps="libgme" libgsm_decoder_deps="libgsm" libgsm_encoder_deps="libgsm" libgsm_ms_decoder_deps="libgsm" libgsm_ms_encoder_deps="libgsm" -libilbc_decoder_deps="libilbc" -libilbc_encoder_deps="libilbc" libmodplug_demuxer_deps="libmodplug" libmp3lame_encoder_deps="libmp3lame" -libmp3lame_encoder_select="audio_frame_queue" libopencore_amrnb_decoder_deps="libopencore_amrnb" libopencore_amrnb_encoder_deps="libopencore_amrnb" -libopencore_amrnb_encoder_select="audio_frame_queue" libopencore_amrwb_decoder_deps="libopencore_amrwb" libopenjpeg_decoder_deps="libopenjpeg" libopenjpeg_encoder_deps="libopenjpeg" -libopus_decoder_deps="libopus" -libopus_encoder_deps="libopus" -libopus_encoder_select="audio_frame_queue" -libquvi_demuxer_deps="libquvi" libschroedinger_decoder_deps="libschroedinger" libschroedinger_encoder_deps="libschroedinger" -libshine_encoder_deps="libshine" -libshine_encoder_select="audio_frame_queue" libspeex_decoder_deps="libspeex" libspeex_encoder_deps="libspeex" -libspeex_encoder_select="audio_frame_queue" libstagefright_h264_decoder_deps="libstagefright_h264" libtheora_encoder_deps="libtheora" -libtwolame_encoder_deps="libtwolame" libvo_aacenc_encoder_deps="libvo_aacenc" -libvo_aacenc_encoder_select="audio_frame_queue" libvo_amrwbenc_encoder_deps="libvo_amrwbenc" -libvorbis_decoder_deps="libvorbis" libvorbis_encoder_deps="libvorbis" -libvorbis_encoder_select="audio_frame_queue" -libvpx_vp8_decoder_deps="libvpx" -libvpx_vp8_encoder_deps="libvpx" -libvpx_vp9_decoder_deps="libvpx" -libvpx_vp9_encoder_deps="libvpx" -libwavpack_encoder_deps="libwavpack" -libwebp_encoder_deps="libwebp" +libvpx_decoder_deps="libvpx" +libvpx_encoder_deps="libvpx" libx264_encoder_deps="libx264" libx264rgb_encoder_deps="libx264" -libx265_encoder_deps="libx265" libxavs_encoder_deps="libxavs" libxvid_encoder_deps="libxvid" -libutvideo_decoder_deps="libutvideo" -libutvideo_encoder_deps="libutvideo" -libzvbi_teletext_decoder_deps="libzvbi" +libutvideo_decoder_deps="libutvideo gpl" # demuxers / muxers ac3_demuxer_select="ac3_parser" -asf_demuxer_select="riffdec" -asf_muxer_select="riffenc" asf_stream_muxer_select="asf_muxer" -avi_demuxer_select="riffdec exif" -avi_muxer_select="riffenc" avisynth_demuxer_deps="avisynth" -avisynth_demuxer_select="riffdec" -caf_demuxer_select="riffdec" -dash_muxer_select="mp4_muxer" dirac_demuxer_select="dirac_parser" -dts_demuxer_select="dca_parser" -dtshd_demuxer_select="dca_parser" -dv_demuxer_select="dvprofile" -dv_muxer_select="dvprofile" -dxa_demuxer_select="riffdec" eac3_demuxer_select="ac3_parser" -f4v_muxer_select="mov_muxer" flac_demuxer_select="flac_parser" -hds_muxer_select="flv_muxer" -hls_muxer_select="mpegts_muxer" -image2_alias_pix_demuxer_select="image2_demuxer" -image2_brender_pix_demuxer_select="image2_demuxer" ipod_muxer_select="mov_muxer" -ismv_muxer_select="mov_muxer" libnut_demuxer_deps="libnut" libnut_muxer_deps="libnut" matroska_audio_muxer_select="matroska_muxer" -matroska_demuxer_select="riffdec" -matroska_demuxer_suggest="bzlib lzo zlib" -matroska_muxer_select="riffenc" -mmf_muxer_select="riffenc" -mov_demuxer_select="riffdec" +matroska_demuxer_suggest="zlib bzlib" mov_demuxer_suggest="zlib" -mov_muxer_select="riffenc rtpenc_chain ac3_parser" mp3_demuxer_select="mpegaudio_parser" mp4_muxer_select="mov_muxer" -mpegts_muxer_select="adts_muxer latm_muxer" mpegtsraw_demuxer_select="mpegts_demuxer" mxf_d10_muxer_select="mxf_muxer" -nut_muxer_select="riffenc" -nuv_demuxer_select="riffdec" -oga_muxer_select="ogg_muxer" ogg_demuxer_select="golomb" -opus_muxer_select="ogg_muxer" psp_muxer_select="mov_muxer" rtp_demuxer_select="sdp_demuxer" rtpdec_select="asf_demuxer rm_demuxer rtp_protocol mpegts_demuxer mov_demuxer" rtsp_demuxer_select="http_protocol rtpdec" -rtsp_muxer_select="rtp_muxer http_protocol rtp_protocol rtpenc_chain" +rtsp_muxer_select="rtp_muxer http_protocol rtp_protocol" sap_demuxer_select="sdp_demuxer" -sap_muxer_select="rtp_muxer rtp_protocol rtpenc_chain" +sap_muxer_select="rtp_muxer rtp_protocol" sdp_demuxer_select="rtpdec" -smoothstreaming_muxer_select="ismv_muxer" spdif_muxer_select="aac_parser" -spx_muxer_select="ogg_muxer" -tak_demuxer_select="tak_parser" tg2_muxer_select="mov_muxer" tgp_muxer_select="mov_muxer" -vobsub_demuxer_select="mpegps_demuxer" -w64_demuxer_select="wav_demuxer" -w64_muxer_select="wav_muxer" -wav_demuxer_select="riffdec" -wav_muxer_select="riffenc" -webm_muxer_select="riffenc" -wtv_demuxer_select="riffdec" -wtv_muxer_select="riffenc" -xmv_demuxer_select="riffdec" -xwma_demuxer_select="riffdec" +w64_demuxer_deps="wav_demuxer" # indevs / outdevs alsa_indev_deps="alsa_asoundlib_h snd_pcm_htimestamp" alsa_outdev_deps="alsa_asoundlib_h" -avfoundation_indev_extralibs="-framework CoreVideo -framework Foundation -framework AVFoundation -framework CoreMedia -framework CoreGraphics" -avfoundation_indev_select="avfoundation" bktr_indev_deps_any="dev_bktr_ioctl_bt848_h machine_ioctl_bt848_h dev_video_bktr_ioctl_bt848_h dev_ic_bt8xx_h" -caca_outdev_deps="libcaca" -decklink_outdev_deps="decklink pthreads" -decklink_outdev_extralibs="-lstdc++" -decklink_indev_deps="decklink pthreads" -decklink_indev_extralibs="-lstdc++" dshow_indev_deps="IBaseFilter" dshow_indev_extralibs="-lpsapi -lole32 -lstrmiids -luuid" -dv1394_indev_deps="dv1394" -dv1394_indev_select="dv_demuxer" +dv1394_indev_deps="dv1394 dv_demuxer" fbdev_indev_deps="linux_fb_h" -fbdev_outdev_deps="linux_fb_h" -gdigrab_indev_deps="CreateDIBSection" -gdigrab_indev_extralibs="-lgdi32" -gdigrab_indev_select="bmp_decoder" -iec61883_indev_deps="libiec61883" jack_indev_deps="jack_jack_h sem_timedwait" lavfi_indev_deps="avfilter" libcdio_indev_deps="libcdio" libdc1394_indev_deps="libdc1394" libv4l2_indev_deps="libv4l2" openal_indev_deps="openal" -opengl_outdev_deps="opengl" oss_indev_deps_any="soundcard_h sys_soundcard_h" oss_outdev_deps_any="soundcard_h sys_soundcard_h" pulse_indev_deps="libpulse" -pulse_outdev_deps="libpulse" -qtkit_indev_extralibs="-framework QTKit -framework Foundation -framework QuartzCore" -qtkit_indev_select="qtkit" sdl_outdev_deps="sdl" sndio_indev_deps="sndio_h" sndio_outdev_deps="sndio_h" v4l_indev_deps="linux_videodev_h" v4l2_indev_deps_any="linux_videodev2_h sys_videoio_h" -v4l2_outdev_deps_any="linux_videodev2_h sys_videoio_h" vfwcap_indev_deps="capCreateCaptureWindow vfwcap_defines" vfwcap_indev_extralibs="-lavicap32" -xv_outdev_deps="X11_extensions_Xvlib_h XvGetPortAttribute" -xv_outdev_extralibs="-lXv -lX11 -lXext" -x11grab_indev_deps="x11grab" -x11grab_xcb_indev_deps="libxcb" +x11_grab_device_indev_deps="x11grab XShmCreateImage" +x11_grab_device_indev_extralibs="-lX11 -lXext -lXfixes" # protocols -bluray_protocol_deps="libbluray" -ffrtmpcrypt_protocol_deps="!librtmp_protocol" -ffrtmpcrypt_protocol_deps_any="gcrypt nettle openssl" -ffrtmpcrypt_protocol_select="tcp_protocol" -ffrtmphttp_protocol_deps="!librtmp_protocol" -ffrtmphttp_protocol_select="http_protocol" -ftp_protocol_select="tcp_protocol" -gopher_protocol_select="network" -http_protocol_select="tcp_protocol" +gopher_protocol_deps="network" +httpproxy_protocol_deps="network" httpproxy_protocol_select="tcp_protocol" +http_protocol_deps="network" +http_protocol_select="tcp_protocol" https_protocol_select="tls_protocol" -icecast_protocol_select="http_protocol" -librtmp_protocol_deps="librtmp" -librtmpe_protocol_deps="librtmp" -librtmps_protocol_deps="librtmp" -librtmpt_protocol_deps="librtmp" -librtmpte_protocol_deps="librtmp" -libsmbclient_protocol_deps="libsmbclient gplv3" -libssh_protocol_deps="libssh" mmsh_protocol_select="http_protocol" -mmst_protocol_select="network" -rtmp_protocol_deps="!librtmp_protocol" +mmst_protocol_deps="network" rtmp_protocol_select="tcp_protocol" -rtmpe_protocol_select="ffrtmpcrypt_protocol" -rtmps_protocol_deps="!librtmp_protocol" -rtmps_protocol_select="tls_protocol" -rtmpt_protocol_select="ffrtmphttp_protocol" -rtmpte_protocol_select="ffrtmpcrypt_protocol ffrtmphttp_protocol" -rtmpts_protocol_select="ffrtmphttp_protocol https_protocol" rtp_protocol_select="udp_protocol" -sctp_protocol_deps="struct_sctp_event_subscribe" -sctp_protocol_select="network" -srtp_protocol_select="rtp_protocol" -tcp_protocol_select="network" +tcp_protocol_deps="network" tls_protocol_deps_any="openssl gnutls" tls_protocol_select="tcp_protocol" -udp_protocol_select="network" -udplite_protocol_select="network" -unix_protocol_deps="sys_un_h" -unix_protocol_select="network" +udp_protocol_deps="network" # filters amovie_filter_deps="avcodec avformat" -aresample_filter_deps="swresample" ass_filter_deps="libass" -asyncts_filter_deps="avresample" -atempo_filter_deps="avcodec" -atempo_filter_select="rdft" -azmq_filter_deps="libzmq" blackframe_filter_deps="gpl" boxblur_filter_deps="gpl" -bs2b_filter_deps="libbs2b" -colormatrix_filter_deps="gpl" cropdetect_filter_deps="gpl" delogo_filter_deps="gpl" -deshake_filter_select="pixelutils" drawtext_filter_deps="libfreetype" -ebur128_filter_deps="gpl" -flite_filter_deps="libflite" frei0r_filter_deps="frei0r dlopen" frei0r_src_filter_deps="frei0r dlopen" -geq_filter_deps="gpl" -histeq_filter_deps="gpl" hqdn3d_filter_deps="gpl" -interlace_filter_deps="gpl" -kerndeint_filter_deps="gpl" -ladspa_filter_deps="ladspa dlopen" -mcdeint_filter_deps="avcodec gpl" movie_filter_deps="avcodec avformat" -mp_filter_deps="gpl avcodec swscale" -mpdecimate_filter_deps="gpl" -mpdecimate_filter_select="pixelutils" +mp_filter_deps="gpl avcodec" mptestsrc_filter_deps="gpl" negate_filter_deps="lut_filter" -perspective_filter_deps="gpl" ocv_filter_deps="libopencv" -owdenoise_filter_deps="gpl" pan_filter_deps="swresample" -phase_filter_deps="gpl" -pp_filter_deps="gpl postproc" -pullup_filter_deps="gpl" -removelogo_filter_deps="avcodec avformat swscale" -resample_filter_deps="avresample" -sab_filter_deps="gpl swscale" scale_filter_deps="swscale" -select_filter_select="pixelutils" -smartblur_filter_deps="gpl swscale" -showspectrum_filter_deps="avcodec" -showspectrum_filter_select="rdft" -spp_filter_deps="gpl avcodec" -spp_filter_select="fft idctdsp fdctdsp me_cmp pixblockdsp" -stereo3d_filter_deps="gpl" -subtitles_filter_deps="avformat avcodec libass" -super2xsai_filter_deps="gpl" tinterlace_filter_deps="gpl" -vidstabdetect_filter_deps="libvidstab" -vidstabtransform_filter_deps="libvidstab" -pixfmts_super2xsai_test_deps="super2xsai_filter" -tinterlace_merge_test_deps="tinterlace_filter" -tinterlace_pad_test_deps="tinterlace_filter" -zmq_filter_deps="libzmq" -zoompan_filter_deps="swscale" - -# examples -avio_reading="avformat avcodec avutil" -avcodec_example_deps="avcodec avutil" -decoding_encoding_example_deps="avcodec avformat avutil" -demuxing_decoding_example_deps="avcodec avformat avutil" -extract_mvs_example_deps="avcodec avformat avutil" -filter_audio_example_deps="avfilter avutil" -filtering_audio_example_deps="avfilter avcodec avformat avutil" -filtering_video_example_deps="avfilter avcodec avformat avutil" -metadata_example_deps="avformat avutil" -muxing_example_deps="avcodec avformat avutil swscale" -remuxing_example_deps="avcodec avformat avutil" -resampling_audio_example_deps="avutil swresample" -scaling_video_example_deps="avutil swscale" -transcode_aac_example_deps="avcodec avformat swresample" -transcoding_example_deps="avfilter avcodec avformat avutil" - -# libraries, in linking order -avcodec_deps="avutil" -avdevice_deps="avformat avcodec avutil" -avfilter_deps="avutil" -avformat_deps="avcodec avutil" -avresample_deps="avutil" -postproc_deps="avutil gpl" -swresample_deps="avutil" -swscale_deps="avutil" +yadif_filter_deps="gpl" + +# libraries +avdevice_deps="avcodec avformat" +avformat_deps="avcodec" +postproc_deps="gpl" # programs -ffmpeg_deps="avcodec avfilter avformat swresample" -ffmpeg_select="aformat_filter anull_filter atrim_filter format_filter - null_filter - setpts_filter trim_filter" -ffplay_deps="avcodec avformat swscale swresample sdl" -ffplay_libs='$sdl_libs' -ffplay_select="rdft crop_filter transpose_filter hflip_filter vflip_filter rotate_filter" +ffplay_deps="avcodec avformat swscale sdl" +ffplay_select="buffersink_filter rdft" ffprobe_deps="avcodec avformat" -ffserver_deps="avformat fork sarestart" -ffserver_select="ffm_muxer rtp_protocol rtsp_demuxer" +ffserver_deps="avformat ffm_muxer fork rtp_protocol rtsp_demuxer" +ffserver_extralibs='$ldl' +ffmpeg_deps="avcodec avformat swscale swresample" +ffmpeg_select="buffersink_filter" + +doc_deps="texi2html" + +# tests + +test_deps(){ + suf1=$1 + suf2=$2 + shift 2 + for v; do + dep=${v%=*} + tests=${v#*=} + for name in ${tests}; do + append ${name}_test_deps ${dep}$suf1 ${dep}$suf2 + done + done +} + +mxf_d10_test_deps="avfilter" +seek_lavf_mxf_d10_test_deps="mxf_d10_test" + +test_deps _encoder _decoder \ + adpcm_ima_qt \ + adpcm_ima_wav \ + adpcm_ms \ + adpcm_swf \ + adpcm_yamaha=adpcm_yam \ + alac \ + asv1 \ + asv2 \ + bmp \ + dnxhd="dnxhd_1080i dnxhd_720p dnxhd_720p_rd" \ + dvvideo="dv dv_411 dv50" \ + ffv1 \ + flac \ + flashsv \ + flv \ + adpcm_g726=g726 \ + gif \ + h261 \ + h263="h263 h263p" \ + huffyuv \ + jpegls \ + mjpeg="jpg mjpeg ljpeg" \ + mp2 \ + mpeg1video="mpeg mpeg1b" \ + mpeg2video="mpeg2 mpeg2_422 mpeg2_idct_int mpeg2_ilace mpeg2_ivlc_qprd" \ + mpeg2video="mpeg2thread mpeg2thread_ilace" \ + mpeg4="mpeg4 mpeg4_adap mpeg4_qpel mpeg4_qprd mpeg4adv mpeg4nr" \ + mpeg4="mpeg4thread error rc" \ + msmpeg4v3=msmpeg4 \ + msmpeg4v2 \ + pbm=pbmpipe \ + pcx \ + pgm="pgm pgmpipe" \ + png \ + ppm="ppm ppmpipe" \ + rawvideo="rgb yuv" \ + roq \ + rv10 \ + rv20 \ + sgi \ + snow="snow snowll" \ + svq1 \ + targa=tga \ + tiff \ + wmav1 \ + wmav2 \ + wmv1 \ + wmv2 \ + +test_deps _muxer _demuxer \ + aiff \ + pcm_alaw=alaw \ + asf \ + au \ + avi \ + dv=dv_fmt \ + ffm \ + flv=flv_fmt \ + gxf \ + matroska=mkv \ + mmf \ + mov \ + pcm_mulaw=mulaw \ + mxf="mxf mxf_d10" \ + nut \ + ogg \ + rawvideo=pixfmt \ + rm \ + swf \ + mpegts=ts \ + voc \ + wav \ + yuv4mpegpipe=yuv4mpeg \ -# documentation -podpages_deps="perl" -manpages_deps="perl pod2man" -htmlpages_deps="perl" -htmlpages_deps_any="makeinfo_html texi2html" -txtpages_deps="perl makeinfo" -doc_deps_any="manpages htmlpages podpages txtpages" +ac3_fixed_test_deps="ac3_fixed_encoder ac3_decoder rm_muxer rm_demuxer" +mpg_test_deps="mpeg1system_muxer mpegps_demuxer" # default parameters @@ -2672,69 +1786,70 @@ prefix_default="/usr/local" bindir_default='${prefix}/bin' datadir_default='${prefix}/share/ffmpeg' -docdir_default='${prefix}/share/doc/ffmpeg' incdir_default='${prefix}/include' libdir_default='${prefix}/lib' mandir_default='${prefix}/share/man' shlibdir_default="$libdir_default" +postproc_version_default="current" # toolchain ar_default="ar" cc_default="gcc" cxx_default="g++" +cc_version=\"unknown\" host_cc_default="gcc" -cp_f="cp -f" -doxygen_default="doxygen" install="install" -ln_s="ln -s -f" -nm_default="nm -g" +ln_s="ln -sf" +nm_default="nm" objformat="elf" pkg_config_default=pkg-config -ranlib_default="ranlib" +ranlib="ranlib" strip_default="strip" yasmexe_default="yasm" -windres_default="windres" + +nm_opts='-g' +nogas=":" + +# machine +arch_default=$(uname -m) +cpu="generic" # OS target_os_default=$(tolower $(uname -s)) host_os=$target_os_default -# machine -if test "$target_os_default" = aix; then - arch_default=$(uname -p) - strip_default="strip -X32_64" -else - arch_default=$(uname -m) -fi -cpu="generic" -intrinsics="none" +# alternative libpostproc version +ALT_PP_VER_MAJOR=51 +ALT_PP_VER_MINOR=2 +ALT_PP_VER_MICRO=101 +ALT_PP_VER=$ALT_PP_VER_MAJOR.$ALT_PP_VER_MINOR.$ALT_PP_VER_MICRO # configurable options enable $PROGRAM_LIST -enable $DOCUMENT_LIST -enable $EXAMPLE_LIST -enable $(filter_out avresample $LIBRARY_LIST) + +enable avcodec +enable avdevice +enable avfilter +enable avformat +enable avutil +enable postproc enable stripping +enable swresample +enable swscale enable asm enable debug enable doc -enable faan faandct faanidct +enable fastdiv +enable network enable optimizations -enable runtime_cpudetect enable safe_bitstream_reader enable static enable swscale_alpha -sws_max_filter_size_default=256 -set_default sws_max_filter_size - -# Enable hwaccels by default. -enable dxva2 vaapi vda vdpau xvmc -enable xlib - # build settings SHFLAGS='-shared -Wl,-soname,$$(@F)' +FFSERVERLDFLAGS=-Wl,-E LIBPREF="lib" LIBSUF=".a" FULLNAME='$(NAME)$(BUILDSUF)' @@ -2748,35 +1863,19 @@ SLIB_INSTALL_NAME='$(SLIBNAME_WITH_VERSION)' SLIB_INSTALL_LINKS='$(SLIBNAME_WITH_MAJOR) $(SLIBNAME)' -asflags_filter=echo -cflags_filter=echo -ldflags_filter=echo - -AS_C='-c' AS_O='-o $@' -CC_C='-c' -CC_E='-E -o $@' CC_O='-o $@' -CXX_C='-c' CXX_O='-o $@' -LD_O='-o $@' -LD_LIB='-l%' -LD_PATH='-L' -HOSTCC_C='-c' -HOSTCC_E='-E -o $@' -HOSTCC_O='-o $@' -HOSTLD_O='-o $@' +host_cflags='-D_ISOC99_SOURCE -O3 -g' host_libs='-lm' -host_cflags_filter=echo -host_ldflags_filter=echo target_path='$(CURDIR)' # since the object filename is not given with the -MM flag, the compiler # is only able to print the basename, and we must add the path ourselves -DEPCMD='$(DEP$(1)) $(DEP$(1)FLAGS) $($(1)DEP_FLAGS) $< | sed -e "/^\#.*/d" -e "s,^[[:space:]]*$(*F)\\.o,$(@D)/$(*F).o," > $(@:.o=.d)' -DEPFLAGS='-MM' +DEPEND_CMD='$(DEPCC) $(DEPFLAGS) $< | sed -e "/^\#.*/d" -e "s,^[[:space:]]*$(*F)\\.o,$(@D)/$(*F).o," > $(@:.o=.d)' +DEPFLAGS='$(CPPFLAGS) $(CFLAGS) -MM' # find source path if test -f configure; then @@ -2829,13 +1928,27 @@ $PROTOCOL_LIST " +find_tests(){ + map "echo ${2}\${v}_test" $(ls "$source_path"/tests/ref/$1 | grep -v '[^-a-z0-9_]') +} + +ACODEC_TESTS=$(find_tests acodec) +VCODEC_TESTS=$(find_tests vsynth1) +LAVF_TESTS=$(find_tests lavf) +LAVFI_TESTS=$(find_tests lavfi) +SEEK_TESTS=$(find_tests seek seek_) + +ALL_TESTS="$ACODEC_TESTS $VCODEC_TESTS $LAVF_TESTS $LAVFI_TESTS $SEEK_TESTS" + +pcm_test_deps=$(map 'echo ${v%_*}_decoder $v' $(filter pcm_* $ENCODER_LIST)) + for n in $COMPONENT_LIST; do v=$(toupper ${n%s})_LIST eval enable \$$v eval ${n}_if_any="\$$v" done -enable $ARCH_EXT_LIST +enable $ARCH_EXT_LIST $ALL_TESTS die_unknown(){ echo "Unknown option \"$1\"." @@ -2843,116 +1956,65 @@ exit 1 } -print_3_columns() { - cat | tr ' ' '\n' | sort | pr -r -3 -t -} - show_list() { suffix=_$1 shift - echo $* | sed s/$suffix//g | print_3_columns + echo $* | sed s/$suffix//g | tr ' ' '\n' | sort | pr -3 -t exit 0 } -rand_list(){ - IFS=', ' - set -- $* - unset IFS - for thing; do - comp=${thing%:*} - prob=${thing#$comp} - prob=${prob#:} - is_in ${comp} $COMPONENT_LIST && eval comp=\$$(toupper ${comp%s})_LIST - echo "prob ${prob:-0.5}" - printf '%s\n' $comp - done -} - -do_random(){ - action=$1 - shift - random_seed=$(awk "BEGIN { srand($random_seed); print srand() }") - $action $(rand_list "$@" | awk "BEGIN { srand($random_seed) } \$1 == \"prob\" { prob = \$2; next } rand() < prob { print }") -} - for opt do optval="${opt#*=}" case "$opt" in - --extra-ldflags=*) - add_ldflags $optval - ;; - --extra-ldexeflags=*) - add_ldexeflags $optval - ;; - --extra-libs=*) - add_extralibs $optval - ;; - --disable-devices) - disable $INDEV_LIST $OUTDEV_LIST - ;; - --enable-debug=*) - debuglevel="$optval" - ;; - --disable-programs) - disable $PROGRAM_LIST - ;; - --disable-everything) - map 'eval unset \${$(toupper ${v%s})_LIST}' $COMPONENT_LIST - ;; - --disable-all) - map 'eval unset \${$(toupper ${v%s})_LIST}' $COMPONENT_LIST - disable $LIBRARY_LIST $PROGRAM_LIST doc - ;; - --enable-random|--disable-random) - action=${opt%%-random} - do_random ${action#--} $COMPONENT_LIST - ;; - --enable-random=*|--disable-random=*) - action=${opt%%-random=*} - do_random ${action#--} $optval - ;; - --enable-*=*|--disable-*=*) - eval $(echo "${opt%%=*}" | sed 's/--/action=/;s/-/ thing=/') - is_in "${thing}s" $COMPONENT_LIST || die_unknown "$opt" - eval list=\$$(toupper $thing)_LIST - name=$(echo "${optval}" | sed "s/,/_${thing}|/g")_${thing} - list=$(filter "$name" $list) - [ "$list" = "" ] && warn "Option $opt did not match anything" - $action $list - ;; - --enable-?*|--disable-?*) - eval $(echo "$opt" | sed 's/--/action=/;s/-/ option=/;s/-/_/g') - if is_in $option $COMPONENT_LIST; then - test $action = disable && action=unset - eval $action \$$(toupper ${option%s})_LIST - elif is_in $option $CMDLINE_SELECT; then - $action $option - else - die_unknown $opt - fi - ;; - --list-*) - NAME="${opt#--list-}" - is_in $NAME $COMPONENT_LIST || die_unknown $opt - NAME=${NAME%s} - eval show_list $NAME \$$(toupper $NAME)_LIST - ;; - --help|-h) show_help - ;; - --fatal-warnings) enable fatal_warnings - ;; - *) - optname="${opt%%=*}" - optname="${optname#--}" - optname=$(echo "$optname" | sed 's/-/_/g') - if is_in $optname $CMDLINE_SET; then - eval $optname='$optval' - elif is_in $optname $CMDLINE_APPEND; then - append $optname "$optval" - else - die_unknown $opt - fi - ;; + --extra-ldflags=*) add_ldflags $optval + ;; + --extra-libs=*) add_extralibs $optval + ;; + --disable-devices) disable $INDEV_LIST $OUTDEV_LIST + ;; + --enable-debug=*) debuglevel="$optval" + ;; + --disable-everything) + map 'eval unset \${$(toupper ${v%s})_LIST}' $COMPONENT_LIST + ;; + --enable-*=*|--disable-*=*) + eval $(echo "${opt%%=*}" | sed 's/--/action=/;s/-/ thing=/') + is_in "${thing}s" $COMPONENT_LIST || die_unknown "$opt" + eval list=\$$(toupper $thing)_LIST + name=$(echo "${optval}" | sed "s/,/_${thing}|/g")_${thing} + $action $(filter "$name" $list) + ;; + --enable-?*|--disable-?*) + eval $(echo "$opt" | sed 's/--/action=/;s/-/ option=/;s/-/_/g') + if is_in $option $COMPONENT_LIST; then + test $action = disable && action=unset + eval $action \$$(toupper ${option%s})_LIST + elif is_in $option $CMDLINE_SELECT; then + $action $option + else + die_unknown $opt + fi + ;; + --list-*) + NAME="${opt#--list-}" + is_in $NAME $COMPONENT_LIST || die_unknown $opt + NAME=${NAME%s} + eval show_list $NAME \$$(toupper $NAME)_LIST + ;; + --help|-h) show_help + ;; + *) + optname="${opt%%=*}" + optname="${optname#--}" + optname=$(echo "$optname" | sed 's/-/_/g') + if is_in $optname $CMDLINE_SET; then + eval $optname='$optval' + elif is_in $optname $CMDLINE_APPEND; then + append $optname "$optval" + else + die_unknown $opt + fi + ;; esac done @@ -2968,125 +2030,40 @@ die "Must specify target arch and OS when cross-compiling" fi +set_default arch target_os postproc_version + +# Check if we should build alternative libpostproc version instead of current +if test "$postproc_version" = $ALT_PP_VER; then + LIBPOSTPROC_VERSION=$ALT_PP_VER + LIBPOSTPROC_VERSION_MAJOR=$ALT_PP_VER_MAJOR + LIBPOSTPROC_VERSION_MINOR=$ALT_PP_VER_MINOR + LIBPOSTPROC_VERSION_MICRO=$ALT_PP_VER_MICRO +elif test "$postproc_version" != current; then + die "Invalid argument to --postproc-version. See --help output." +fi + ar_default="${cross_prefix}${ar_default}" cc_default="${cross_prefix}${cc_default}" cxx_default="${cross_prefix}${cxx_default}" nm_default="${cross_prefix}${nm_default}" pkg_config_default="${cross_prefix}${pkg_config_default}" -ranlib_default="${cross_prefix}${ranlib_default}" +ranlib="${cross_prefix}${ranlib}" strip_default="${cross_prefix}${strip_default}" -windres_default="${cross_prefix}${windres_default}" sysinclude_default="${sysroot}/usr/include" -test -n "$valgrind" && toolchain="valgrind-memcheck" - -case "$toolchain" in - clang-asan) - cc_default="clang" - add_cflags -fsanitize=address - add_ldflags -fsanitize=address - ;; - clang-tsan) - cc_default="clang" - add_cflags -fsanitize=thread -pie - add_ldflags -fsanitize=thread -pie - ;; - clang-usan) - cc_default="clang" - add_cflags -fsanitize=undefined - add_ldflags -fsanitize=undefined - ;; - gcc-asan) - cc_default="gcc" - add_cflags -fsanitize=address - add_ldflags -fsanitize=address - ;; - gcc-tsan) - cc_default="gcc" - add_cflags -fsanitize=thread -pie -fPIC - add_ldflags -fsanitize=thread -pie -fPIC - ;; - gcc-usan) - cc_default="gcc" - add_cflags -fsanitize=undefined - add_ldflags -fsanitize=undefined - ;; - valgrind-massif) - target_exec_default=${valgrind:-"valgrind"} - target_exec_args="--tool=massif --alloc-fn=av_malloc --alloc-fn=av_mallocz --alloc-fn=av_calloc --alloc-fn=av_fast_padded_malloc --alloc-fn=av_fast_malloc --alloc-fn=av_realloc_f --alloc-fn=av_fast_realloc --alloc-fn=av_realloc" - ;; - valgrind-memcheck) - target_exec_default=${valgrind:-"valgrind"} - target_exec_args="--error-exitcode=1 --malloc-fill=0x2a --track-origins=yes --leak-check=full --gen-suppressions=all --suppressions=$source_path/tests/fate-valgrind.supp" - ;; - msvc) - # Check whether the current MSVC version needs the C99 converter. - # From MSVC 2013 (compiler major version 18) onwards, it does actually - # support enough of C99 to build ffmpeg. Default to the new - # behaviour if the regexp was unable to match anything, since this - # successfully parses the version number of existing supported - # versions that require the converter (MSVC 2010 and 2012). - cl_major_ver=$(cl 2>&1 | sed -n 's/.*Version \([[:digit:]]\{1,\}\)\..*/\1/p') - if [ -z "$cl_major_ver" ] || [ $cl_major_ver -ge 18 ]; then - cc_default="cl" - else - cc_default="c99wrap cl" - fi - ld_default="link" - nm_default="dumpbin -symbols" - ar_default="lib" - target_os_default="win32" - # Use a relative path for TMPDIR. This makes sure all the - # ffconf temp files are written with a relative path, avoiding - # issues with msys/win32 path conversion for MSVC parameters - # such as -Fo or -out:. - TMPDIR=. - ;; - icl) - cc_default="icl" - ld_default="xilink" - nm_default="dumpbin -symbols" - ar_default="xilib" - target_os_default="win32" - TMPDIR=. - ;; - gcov) - add_cflags -fprofile-arcs -ftest-coverage - add_ldflags -fprofile-arcs -ftest-coverage - ;; - hardened) - add_cppflags -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 - add_cflags -fno-strict-overflow -fstack-protector-all - add_ldflags -Wl,-z,relro -Wl,-z,now - ;; - ?*) - die "Unknown toolchain $toolchain" - ;; -esac - -set_default arch cc cxx doxygen pkg_config ranlib strip sysinclude \ - target_exec target_os yasmexe +set_default cc cxx nm pkg_config strip sysinclude yasmexe enabled cross_compile || host_cc_default=$cc set_default host_cc -pkg_config_fail_message="" if ! $pkg_config --version >/dev/null 2>&1; then warn "$pkg_config not found, library detection may fail." pkg_config=false -elif is_in -static $cc $LDFLAGS && ! is_in --static $pkg_config $pkg_config_flags; then - pkg_config_fail_message=" -Note: When building a static binary, add --pkg-config-flags=\"--static\"." -fi - -if test $doxygen != $doxygen_default && \ - ! $doxygen --version >/dev/null 2>&1; then - warn "Specified doxygen \"$doxygen\" not found, API documentation will fail to build." fi exesuf() { case $1 in - mingw32*|win32|win64|cygwin*|*-dos|freedos|opendos|os/2*|symbian) echo .exe ;; + mingw32*|cygwin*|*-dos|freedos|opendos|os/2*|symbian) echo .exe ;; esac } @@ -3098,11 +2075,7 @@ : ${TMPDIR:=$TMP} : ${TMPDIR:=/tmp} -if [ -n "$tempprefix" ] ; then - mktemp(){ - echo $tempprefix.${HOSTNAME}.${UID} - } -elif ! check_cmd mktemp -u XXXXXX; then +if ! check_cmd mktemp -u XXXXXX; then # simple replacement for missing mktemp # NOT SAFE FOR GENERAL USE mktemp(){ @@ -3125,7 +2098,6 @@ tmpfile TMPCPP .cpp tmpfile TMPE $EXESUF tmpfile TMPH .h -tmpfile TMPM .m tmpfile TMPO .o tmpfile TMPS .S tmpfile TMPSH .sh @@ -3148,401 +2120,188 @@ die "Sanity test failed." fi -armasm_flags(){ - for flag; do - case $flag in - # Filter out MSVC cl.exe options from cflags that shouldn't - # be passed to gas-preprocessor - -M[TD]*) ;; - *) echo $flag ;; - esac - done -} - -ccc_flags(){ - for flag; do - case $flag in - -std=c99) echo -c99 ;; - -mcpu=*) echo -arch ${flag#*=} ;; - -mieee) echo -ieee ;; - -O*|-fast) echo $flag ;; - -fno-math-errno) echo -assume nomath_errno ;; - -g) echo -g3 ;; - -Wall) echo -msg_enable level2 ;; - -Wno-pointer-sign) echo -msg_disable ptrmismatch1 ;; - -Wl,*) echo $flag ;; - -f*|-W*) ;; - *) echo $flag ;; - esac - done -} - -cparser_flags(){ - for flag; do - case $flag in - -Wno-switch) echo -Wno-switch-enum ;; - -Wno-format-zero-length) ;; - -Wdisabled-optimization) ;; - -Wno-pointer-sign) echo -Wno-other ;; - *) echo $flag ;; - esac - done -} - -msvc_common_flags(){ - for flag; do - case $flag in - # In addition to specifying certain flags under the compiler - # specific filters, they must be specified here as well or else the - # generic catch all at the bottom will print the original flag. - -Wall) ;; - -std=c99) ;; - # Common flags - -fomit-frame-pointer) ;; - -g) echo -Z7 ;; - -fno-math-errno) ;; - -fno-common) ;; - -fno-signed-zeros) ;; - -fPIC) ;; - -mthumb) ;; - -march=*) ;; - -lz) echo zlib.lib ;; - -lavifil32) echo vfw32.lib ;; - -lavicap32) echo vfw32.lib user32.lib ;; - -l*) echo ${flag#-l}.lib ;; - *) echo $flag ;; - esac - done -} - -msvc_flags(){ - msvc_common_flags "$@" - for flag; do - case $flag in - -Wall) echo -W4 -wd4244 -wd4127 -wd4018 -wd4389 \ - -wd4146 -wd4057 -wd4204 -wd4706 -wd4305 \ - -wd4152 -wd4324 -we4013 -wd4100 -wd4214 \ - -wd4554 \ - -wd4273 -wd4701 ;; - esac - done -} - -icl_flags(){ - msvc_common_flags "$@" - for flag; do - case $flag in - # Despite what Intel's documentation says -Wall, which is supported - # on Windows, does enable remarks so disable them here. - -Wall) echo $flag -Qdiag-disable:remark ;; - -std=c99) echo -Qstd=c99 ;; - -flto) echo -ipo ;; - esac - done -} - -icc_flags(){ - for flag; do - case $flag in - -flto) echo -ipo ;; - *) echo $flag ;; - esac - done -} - -pgi_flags(){ - for flag; do - case $flag in - -flto) echo -Mipa=fast,libopt,libinline,vestigial ;; - -fomit-frame-pointer) echo -Mnoframe ;; - -g) echo -gopt ;; - *) echo $flag ;; - esac - done -} - -suncc_flags(){ - for flag; do - case $flag in - -march=*|-mcpu=*) - case "${flag#*=}" in - native) echo -xtarget=native ;; - v9|niagara) echo -xarch=sparc ;; - ultrasparc) echo -xarch=sparcvis ;; - ultrasparc3|niagara2) echo -xarch=sparcvis2 ;; - i586|pentium) echo -xchip=pentium ;; - i686|pentiumpro|pentium2) echo -xtarget=pentium_pro ;; - pentium3*|c3-2) echo -xtarget=pentium3 ;; - pentium-m) echo -xarch=sse2 -xchip=pentium3 ;; - pentium4*) echo -xtarget=pentium4 ;; - prescott|nocona) echo -xarch=sse3 -xchip=pentium4 ;; - *-sse3) echo -xarch=sse3 ;; - core2) echo -xarch=ssse3 -xchip=core2 ;; - bonnell) echo -xarch=ssse3 ;; - corei7|nehalem) echo -xtarget=nehalem ;; - westmere) echo -xtarget=westmere ;; - silvermont) echo -xarch=sse4_2 ;; - corei7-avx|sandybridge) echo -xtarget=sandybridge ;; - core-avx*|ivybridge|haswell|broadwell) - echo -xarch=avx ;; - amdfam10|barcelona) echo -xtarget=barcelona ;; - btver1) echo -xarch=amdsse4a ;; - btver2|bdver*) echo -xarch=avx ;; - athlon-4|athlon-[mx]p) echo -xarch=ssea ;; - k8|opteron|athlon64|athlon-fx) - echo -xarch=sse2a ;; - athlon*) echo -xarch=pentium_proa ;; - esac - ;; - -std=c99) echo -xc99 ;; - -fomit-frame-pointer) echo -xregs=frameptr ;; - -fPIC) echo -KPIC -xcode=pic32 ;; - -W*,*) echo $flag ;; - -f*-*|-W*|-mimpure-text) ;; - -shared) echo -G ;; - *) echo $flag ;; - esac - done -} - -tms470_flags(){ - for flag; do - case $flag in - -march=*|-mcpu=*) - case "${flag#*=}" in - armv7-a|cortex-a*) echo -mv=7a8 ;; - armv7-r|cortex-r*) echo -mv=7r4 ;; - armv7-m|cortex-m*) echo -mv=7m3 ;; - armv6*|arm11*) echo -mv=6 ;; - armv5*e|arm[79]*e*|arm9[24]6*|arm96*|arm102[26]) - echo -mv=5e ;; - armv4*|arm7*|arm9[24]*) echo -mv=4 ;; - esac - ;; - -mfpu=neon) echo --float_support=vfpv3 --neon ;; - -mfpu=vfp) echo --float_support=vfpv2 ;; - -mfpu=vfpv3) echo --float_support=vfpv3 ;; - -mfpu=vfpv3-d16) echo --float_support=vfpv3d16 ;; - -msoft-float) echo --float_support=vfplib ;; - -O[0-3]|-mf=*) echo $flag ;; - -g) echo -g -mn ;; - -pds=*) echo $flag ;; - -D*|-I*) echo $flag ;; - --gcc|--abi=*) echo $flag ;; - -me) echo $flag ;; - esac - done -} - -probe_cc(){ - pfx=$1 - _cc=$2 - - unset _type _ident _cc_c _cc_e _cc_o _flags _cflags - unset _ld_o _ldflags _ld_lib _ld_path - unset _depflags _DEPCMD _DEPFLAGS - _flags_filter=echo - - if $_cc --version 2>&1 | grep -q '^GNU assembler'; then - true # no-op to avoid reading stdin in following checks - elif $_cc -v 2>&1 | grep -q '^gcc.*LLVM'; then - _type=llvm_gcc - gcc_extra_ver=$(expr "$($_cc --version | head -n1)" : '.*\((.*)\)') - _ident="llvm-gcc $($_cc -dumpversion) $gcc_extra_ver" - _depflags='-MMD -MF $(@:.o=.d) -MT $@' - _cflags_speed='-O3' - _cflags_size='-Os' - elif $_cc -v 2>&1 | grep -qi ^gcc; then - _type=gcc - gcc_version=$($_cc --version | head -n1) - gcc_basever=$($_cc -dumpversion) - gcc_pkg_ver=$(expr "$gcc_version" : '[^ ]* \(([^)]*)\)') - gcc_ext_ver=$(expr "$gcc_version" : ".*$gcc_pkg_ver $gcc_basever \\(.*\\)") - _ident=$(cleanws "gcc $gcc_basever $gcc_pkg_ver $gcc_ext_ver") - if ! $_cc -dumpversion | grep -q '^2\.'; then - _depflags='-MMD -MF $(@:.o=.d) -MT $@' - fi - _cflags_speed='-O3' - _cflags_size='-Os' - elif $_cc --version 2>/dev/null | grep -q ^icc; then - _type=icc - _ident=$($_cc --version | head -n1) - _depflags='-MMD' - _cflags_speed='-O3' - _cflags_size='-Os' - _cflags_noopt='-O1' - _flags_filter=icc_flags - elif $_cc -v 2>&1 | grep -q xlc; then - _type=xlc - _ident=$($_cc -qversion 2>/dev/null | head -n1) - _cflags_speed='-O5' - _cflags_size='-O5 -qcompact' - elif $_cc -V 2>/dev/null | grep -q Compaq; then - _type=ccc - _ident=$($_cc -V | head -n1 | cut -d' ' -f1-3) - _DEPFLAGS='-M' - _cflags_speed='-fast' - _cflags_size='-O1' - _flags_filter=ccc_flags - elif $_cc --vsn 2>/dev/null | grep -Eq "ARM (C/C\+\+ )?Compiler"; then - test -d "$sysroot" || die "No valid sysroot specified." - _type=armcc - _ident=$($_cc --vsn | grep -i build | head -n1 | sed 's/.*: //') - armcc_conf="$PWD/armcc.conf" - $_cc --arm_linux_configure \ - --arm_linux_config_file="$armcc_conf" \ - --configure_sysroot="$sysroot" \ - --configure_cpp_headers="$sysinclude" >>$logfile 2>&1 || - die "Error creating armcc configuration file." - $_cc --vsn | grep -q RVCT && armcc_opt=rvct || armcc_opt=armcc - _flags="--arm_linux_config_file=$armcc_conf --translate_gcc" - as_default="${cross_prefix}gcc" - _depflags='-MMD' - _cflags_speed='-O3' - _cflags_size='-Os' - elif $_cc -version 2>/dev/null | grep -Eq 'TMS470|TI ARM'; then - _type=tms470 - _ident=$($_cc -version | head -n1 | tr -s ' ') - _flags='--gcc --abi=eabi -me' - _cc_e='-ppl -fe=$@' - _cc_o='-fe=$@' - _depflags='-ppa -ppd=$(@:.o=.d)' - _cflags_speed='-O3 -mf=5' - _cflags_size='-O3 -mf=2' - _flags_filter=tms470_flags - elif $_cc -v 2>&1 | grep -q clang; then - _type=clang - _ident=$($_cc --version | head -n1) - _depflags='-MMD -MF $(@:.o=.d) -MT $@' - _cflags_speed='-O3' - _cflags_size='-Os' - elif $_cc -V 2>&1 | grep -q Sun; then - _type=suncc - _ident=$($_cc -V 2>&1 | head -n1 | cut -d' ' -f 2-) - _DEPCMD='$(DEP$(1)) $(DEP$(1)FLAGS) $($(1)DEP_FLAGS) $< | sed -e "1s,^.*: ,$@: ," -e "\$$!s,\$$, \\\," -e "1!s,^.*: , ," > $(@:.o=.d)' - _DEPFLAGS='-xM1 -xc99' - _ldflags='-std=c99' - _cflags_speed='-O5' - _cflags_size='-O5 -xspace' - _flags_filter=suncc_flags - elif $_cc -v 2>&1 | grep -q 'PathScale\|Path64'; then - _type=pathscale - _ident=$($_cc -v 2>&1 | head -n1 | tr -d :) - _depflags='-MMD -MF $(@:.o=.d) -MT $@' - _cflags_speed='-O2' - _cflags_size='-Os' - _flags_filter='filter_out -Wdisabled-optimization' - elif $_cc -v 2>&1 | grep -q Open64; then - _type=open64 - _ident=$($_cc -v 2>&1 | head -n1 | tr -d :) - _depflags='-MMD -MF $(@:.o=.d) -MT $@' - _cflags_speed='-O2' - _cflags_size='-Os' - _flags_filter='filter_out -Wdisabled-optimization|-Wtype-limits|-fno-signed-zeros' - elif $_cc -V 2>&1 | grep -q Portland; then - _type=pgi - _ident="PGI $($_cc -V 2>&1 | awk '/^pgcc/ { print $2; exit }')" - opt_common='-alias=ansi -Mdse -Mlre -Mpre' - _cflags_speed="-O3 -Mautoinline -Munroll=c:4 $opt_common" - _cflags_size="-O2 -Munroll=c:1 $opt_common" - _cflags_noopt="-O" - _flags_filter=pgi_flags - elif $_cc 2>&1 | grep -q 'Microsoft.*ARM.*Assembler'; then - _type=armasm - _ident=$($_cc | head -n1) - # 4509: "This form of conditional instruction is deprecated" - _flags="-nologo -ignore 4509" - _flags_filter=armasm_flags - elif $_cc 2>&1 | grep -q Intel; then - _type=icl - _ident=$($cc 2>&1 | head -n1) - _depflags='-QMMD -QMF$(@:.o=.d) -QMT$@' - # Not only is O3 broken on 13.x+ but it is slower on all previous - # versions (tested) as well. - _cflags_speed="-O2" - _cflags_size="-O1 -Oi" # -O1 without -Oi miscompiles stuff - if $_cc 2>&1 | grep -q Linker; then - _ld_o='-out:$@' - else - _ld_o='-Fe$@' - fi - _cc_o='-Fo$@' - _cc_e='-P' - _flags_filter=icl_flags - _ld_lib='lib%.a' - _ld_path='-libpath:' - # -Qdiag-error to make icl error when seeing certain unknown arguments - _flags='-nologo -Qdiag-error:4044,10157' - # -Qvec- -Qsimd- to prevent miscompilation, -GS, fp:precise for consistency - # with MSVC which enables it by default. - _cflags='-D_USE_MATH_DEFINES -FIstdlib.h -Dstrtoll=_strtoi64 -Qms0 -Qvec- -Qsimd- -GS -fp:precise' - if [ $pfx = hostcc ]; then - append _cflags -Dsnprintf=_snprintf - fi - disable stripping - elif $_cc 2>&1 | grep -q Microsoft; then - _type=msvc - _ident=$($cc 2>&1 | head -n1) - _DEPCMD='$(DEP$(1)) $(DEP$(1)FLAGS) $($(1)DEP_FLAGS) $< 2>&1 | awk '\''/including/ { sub(/^.*file: */, ""); gsub(/\\/, "/"); if (!match($$0, / /)) print "$@:", $$0 }'\'' > $(@:.o=.d)' - _DEPFLAGS='$(CPPFLAGS) $(CFLAGS) -showIncludes -Zs' - _cflags_speed="-O2" - _cflags_size="-O1" - if $_cc 2>&1 | grep -q Linker; then - _ld_o='-out:$@' - else - _ld_o='-Fe$@' - fi - _cc_o='-Fo$@' - _cc_e='-P -Fi$@' - _flags_filter=msvc_flags - _ld_lib='lib%.a' - _ld_path='-libpath:' - _flags='-nologo' - _cflags='-D_USE_MATH_DEFINES -D_CRT_SECURE_NO_WARNINGS -Dinline=__inline -FIstdlib.h -Dstrtoll=_strtoi64' - if [ $pfx = hostcc ]; then - append _cflags -Dsnprintf=_snprintf - fi - disable stripping - elif $_cc --version 2>/dev/null | grep -q ^cparser; then - _type=cparser - _ident=$($_cc --version | head -n1) - _depflags='-MMD' - _cflags_speed='-O4' - _cflags_size='-O2' - _flags_filter=cparser_flags - fi - - eval ${pfx}_type=\$_type - eval ${pfx}_ident=\$_ident -} - -set_ccvars(){ - eval ${1}_C=\${_cc_c-\${${1}_C}} - eval ${1}_E=\${_cc_e-\${${1}_E}} - eval ${1}_O=\${_cc_o-\${${1}_O}} - - if [ -n "$_depflags" ]; then - eval ${1}_DEPFLAGS=\$_depflags - else - eval ${1}DEP=\${_DEPCMD:-\$DEPCMD} - eval ${1}DEP_FLAGS=\${_DEPFLAGS:-\$DEPFLAGS} - eval DEP${1}FLAGS=\$_flags +filter_asflags=echo +filter_cflags=echo +filter_cppflags=echo + +if $cc -v 2>&1 | grep -q '^gcc.*LLVM'; then + cc_type=llvm_gcc + cc_version=__VERSION__ + gcc_extra_ver=$(expr "$($cc --version | head -n1)" : '.*\((.*)\)') + cc_ident="llvm-gcc $($cc -dumpversion) $gcc_extra_ver" + CC_DEPFLAGS='-MMD -MF $(@:.o=.d) -MT $@' + AS_DEPFLAGS='-MMD -MF $(@:.o=.d) -MT $@' + speed_cflags='-O3' + size_cflags='-Os' +elif $cc -v 2>&1 | grep -qi ^gcc; then + cc_type=gcc + cc_version=__VERSION__ + gcc_version=$($cc --version | head -n1) + gcc_basever=$($cc -dumpversion) + gcc_pkg_ver=$(expr "$gcc_version" : '[^ ]* \(([^)]*)\)') + gcc_ext_ver=$(expr "$gcc_version" : ".*$gcc_pkg_ver $gcc_basever \\(.*\\)") + cc_ident=$(cleanws "gcc $gcc_basever $gcc_pkg_ver $gcc_ext_ver") + if ! $cc -dumpversion | grep -q '^2\.'; then + CC_DEPFLAGS='-MMD -MF $(@:.o=.d) -MT $@' + AS_DEPFLAGS='-MMD -MF $(@:.o=.d) -MT $@' fi -} - -probe_cc cc "$cc" -cflags_filter=$_flags_filter -cflags_speed=$_cflags_speed -cflags_size=$_cflags_size -cflags_noopt=$_cflags_noopt -add_cflags $_flags $_cflags -cc_ldflags=$_ldflags -set_ccvars CC - -probe_cc hostcc "$host_cc" -host_cflags_filter=$_flags_filter -add_host_cflags $_flags $_cflags -set_ccvars HOSTCC + speed_cflags='-O3' + size_cflags='-Os' +elif $cc --version 2>/dev/null | grep -q Intel; then + cc_type=icc + cc_version="AV_STRINGIFY(__INTEL_COMPILER)" + cc_ident=$($cc --version | head -n1) + icc_version=$($cc -dumpversion) + CC_DEPFLAGS='-MMD' + AS_DEPFLAGS='-MMD' + speed_cflags='-O3' + size_cflags='-Os' + noopt_cflags='-O1' +elif $cc -v 2>&1 | grep -q xlc; then + cc_type=xlc + cc_version="AV_STRINGIFY(__IBMC__)" + cc_ident=$($cc -qversion 2>/dev/null | head -n1) + speed_cflags='-O5' + size_cflags='-O5 -qcompact' +elif $cc -V 2>/dev/null | grep -q Compaq; then + cc_type=ccc + cc_version="AV_STRINGIFY(__DECC_VER)" + cc_ident=$($cc -V | head -n1 | cut -d' ' -f1-3) + DEPFLAGS='$(CPPFLAGS) $(CFLAGS) -M' + debuglevel=3 + add_ldflags -Wl,-z,now # calls to libots crash without this + speed_cflags='-fast' + size_cflags='-O1' +elif $cc --vsn 2>/dev/null | grep -q "ARM C/C++ Compiler"; then + test -d "$sysroot" || die "No valid sysroot specified." + cc_type=armcc + cc_version="AV_STRINGIFY(__ARMCC_VERSION)" + cc_ident=$($cc --vsn | head -n1) + armcc_conf="$PWD/armcc.conf" + $cc --arm_linux_configure \ + --arm_linux_config_file="$armcc_conf" \ + --configure_sysroot="$sysroot" \ + --configure_cpp_headers="$sysinclude" >>$logfile 2>&1 || + die "Error creating armcc configuration file." + $cc --vsn | grep -q RVCT && armcc_opt=rvct || armcc_opt=armcc + cc="$cc --arm_linux_config_file=$armcc_conf --translate_gcc" + as_default="${cross_prefix}gcc" + CC_DEPFLAGS='-MMD' + AS_DEPFLAGS='-MMD' + speed_cflags='-O3' + size_cflags='-Os' + filter_asflags="filter_out -W${armcc_opt}*" +elif $cc -version 2>/dev/null | grep -q TMS470; then + cc_type=tms470 + cc_version="AV_STRINGIFY(__TI_COMPILER_VERSION__)" + cc_ident=$($cc -version | head -n1 | tr -s ' ') + cc="$cc --gcc --abi=eabi -eo=.o -mc -me" + CC_O='-fr=$(@D)' + as_default="${cross_prefix}gcc" + ld_default="${cross_prefix}gcc" + TMPO=$(basename $TMPC .c).o + append TMPFILES $TMPO + add_cflags -D__gnuc_va_list=va_list -D__USER_LABEL_PREFIX__= + CC_DEPFLAGS='-ppa -ppd=$(@:.o=.d)' + AS_DEPFLAGS='-MMD' + speed_cflags='-O3 -mf=5' + size_cflags='-O3 -mf=2' + filter_cflags=tms470_flags + tms470_flags(){ + for flag; do + case $flag in + -march=*|-mcpu=*) + case "${flag#*=}" in + armv7-a|cortex-a*) echo -mv=7a8 ;; + armv7-r|cortex-r*) echo -mv=7r4 ;; + armv7-m|cortex-m*) echo -mv=7m3 ;; + armv6*|arm11*) echo -mv=6 ;; + armv5*e|arm[79]*e*|arm9[24]6*|arm96*|arm102[26]) + echo -mv=5e ;; + armv4*|arm7*|arm9[24]*) echo -mv=4 ;; + esac + ;; + -mfpu=neon) echo --float_support=vfpv3 --neon ;; + -mfpu=vfp) echo --float_support=vfpv2 ;; + -mfpu=vfpv3) echo --float_support=vfpv3 ;; + -msoft-float) echo --float_support=vfplib ;; + -O[0-3]|-mf=*) echo $flag ;; + -g) echo -g -mn ;; + -pds=*) echo $flag ;; + esac + done + } +elif $cc -v 2>&1 | grep -q clang; then + cc_type=clang + $cc -dM -E $TMPC | grep -q __clang_version__ && + cc_version=__clang_version__ || cc_version=__VERSION__ + cc_ident=$($cc --version | head -n1) + CC_DEPFLAGS='-MMD' + AS_DEPFLAGS='-MMD' + speed_cflags='-O3' + size_cflags='-Os' +elif $cc -V 2>&1 | grep -q Sun; then + cc_type=suncc + cc_version="AV_STRINGIFY(__SUNPRO_C)" + cc_ident=$($cc -V 2>&1 | head -n1 | cut -d' ' -f 2-) + DEPEND_CMD='$(DEPCC) $(DEPFLAGS) $< | sed -e "1s,^.*: ,$@: ," -e "\$$!s,\$$, \\\," -e "1!s,^.*: , ," > $(@:.o=.d)' + DEPFLAGS='$(CPPFLAGS) $(CFLAGS) -xM1' + add_ldflags -xc99 + speed_cflags='-O5' + size_cflags='-O5 -xspace' + filter_cflags=suncc_flags + suncc_flags(){ + for flag; do + case $flag in + -march=*|-mcpu=*) + case "${flag#*=}" in + native) echo -xtarget=native ;; + v9|niagara) echo -xarch=sparc ;; + ultrasparc) echo -xarch=sparcvis ;; + ultrasparc3|niagara2) echo -xarch=sparcvis2 ;; + i586|pentium) echo -xchip=pentium ;; + i686|pentiumpro|pentium2) echo -xtarget=pentium_pro ;; + pentium3*|c3-2) echo -xtarget=pentium3 ;; + pentium-m) echo -xarch=sse2 -xchip=pentium3 ;; + pentium4*) echo -xtarget=pentium4 ;; + prescott|nocona) echo -xarch=sse3 -xchip=pentium4 ;; + *-sse3) echo -xarch=sse3 ;; + core2) echo -xarch=ssse3 -xchip=core2 ;; + amdfam10|barcelona) echo -xarch=sse4_1 ;; + athlon-4|athlon-[mx]p) echo -xarch=ssea ;; + k8|opteron|athlon64|athlon-fx) + echo -xarch=sse2a ;; + athlon*) echo -xarch=pentium_proa ;; + esac + ;; + -std=c99) echo -xc99 ;; + -fomit-frame-pointer) echo -xregs=frameptr ;; + -fPIC) echo -KPIC -xcode=pic32 ;; + -W*,*) echo $flag ;; + -f*-*|-W*) ;; + *) echo $flag ;; + esac + done + } +elif $cc -v 2>&1 | grep -q 'PathScale\|Path64'; then + cc_type=pathscale + cc_version=__PATHSCALE__ + cc_ident=$($cc -v 2>&1 | head -n1 | tr -d :) + CC_DEPFLAGS='-MMD -MF $(@:.o=.d) -MT $@' + AS_DEPFLAGS='-MMD -MF $(@:.o=.d) -MT $@' + speed_cflags='-O2' + size_cflags='-Os' + filter_cflags='filter_out -Wdisabled-optimization' +elif $cc -v 2>&1 | grep -q Open64; then + cc_type=open64 + cc_version=__OPEN64__ + cc_ident=$($cc -v 2>&1 | head -n1 | tr -d :) + CC_DEPFLAGS='-MMD -MF $(@:.o=.d) -MT $@' + AS_DEPFLAGS='-MMD -MF $(@:.o=.d) -MT $@' + speed_cflags='-O2' + size_cflags='-Os' + filter_cflags='filter_out -Wdisabled-optimization|-Wtype-limits|-fno-signed-zeros' +fi test -n "$cc_type" && enable $cc_type || warn "Unknown C compiler $cc, unable to select optimal CFLAGS" @@ -3550,47 +2309,11 @@ : ${as_default:=$cc} : ${dep_cc_default:=$cc} : ${ld_default:=$cc} -: ${host_ld_default:=$host_cc} -set_default ar as dep_cc ld host_ld windres +set_default ar as dep_cc ld -probe_cc as "$as" -asflags_filter=$_flags_filter -add_asflags $_flags $_cflags -set_ccvars AS - -probe_cc ld "$ld" -ldflags_filter=$_flags_filter -add_ldflags $_flags $_ldflags -test "$cc_type" != "$ld_type" && add_ldflags $cc_ldflags -LD_O=${_ld_o-$LD_O} -LD_LIB=${_ld_lib-$LD_LIB} -LD_PATH=${_ld_path-$LD_PATH} - -probe_cc hostld "$host_ld" -host_ldflags_filter=$_flags_filter -add_host_ldflags $_flags $_ldflags -HOSTLD_O=${_ld_o-$HOSTLD_O} - -if [ -z "$CC_DEPFLAGS" ] && [ "$dep_cc" != "$cc" ]; then - probe_cc depcc "$dep_cc" - CCDEP=${_DEPCMD:-$DEPCMD} - CCDEP_FLAGS=${_DEPFLAGS:=$DEPFLAGS} - DEPCCFLAGS=$_flags -fi - -if $ar 2>&1 | grep -q Microsoft; then - arflags="-nologo" - ar_o='-out:$@' -elif $ar 2>&1 | grep -q 'Texas Instruments'; then - arflags="rq" - ar_o='$@' -elif $ar 2>&1 | grep -q 'Usage: ar.*-X.*any'; then - arflags='-Xany -r -c' - ar_o='$@' -else - arflags="rc" - ar_o='$@' -fi +test -n "$CC_DEPFLAGS" || CCDEP=$DEPEND_CMD +test -n "$CXX_DEPFLAGS" || CXXDEP=$DEPEND_CMD +test -n "$AS_DEPFLAGS" || ASDEP=$DEPEND_CMD add_cflags $extra_cflags add_cxxflags $extra_cxxflags @@ -3601,9 +2324,6 @@ gcc|llvm_gcc|clang) add_cppflags --sysroot="$sysroot" add_ldflags --sysroot="$sysroot" -# On Darwin --sysroot may be ignored, -isysroot always affects headers and linking - add_cppflags -isysroot "$sysroot" - add_ldflags -isysroot "$sysroot" ;; tms470) add_cppflags -I"$sysinclude" @@ -3613,8 +2333,7 @@ fi if test "$cpu" = host; then - enabled cross_compile && - die "--cpu=host makes no sense when cross-compiling." + enabled cross_compile && die "--cpu=host makes no sense when cross-compiling." case "$cc_type" in gcc|llvm_gcc) @@ -3630,25 +2349,29 @@ ;; esac - test "${cpu:-host}" = host && - die "--cpu=host not supported with compiler $cc" + test "${cpu:-host}" = host && die "--cpu=host not supported with compiler $cc" fi # Deal with common $arch aliases case "$arch" in - aarch64|arm64) - arch="aarch64" - ;; - arm*|iPad*|iPhone*) + arm*|iPad*) arch="arm" ;; - mips*|IP*) + mips|mipsel|IP*) arch="mips" ;; - parisc*|hppa*) + mips64*) + arch="mips" + subarch="mips64" + ;; + parisc|hppa) + arch="parisc" + ;; + parisc64|hppa64) arch="parisc" + subarch="parisc64" ;; - "Power Macintosh"|ppc*|powerpc*) + "Power Macintosh"|ppc|powerpc|ppc64|powerpc64) arch="ppc" ;; s390|s390x) @@ -3657,13 +2380,11 @@ sh4|sh) arch="sh4" ;; - sun4u|sparc*) + sun4u|sparc64) arch="sparc" + subarch="sparc64" ;; - tilegx|tile-gx) - arch="tilegx" - ;; - i[3-6]86*|i86pc|BePC|x86pc|x86_64|x86_32|amd64) + i[3-6]86|i86pc|BePC|x86pc|x86_64|x86_32|amd64) arch="x86" ;; esac @@ -3672,137 +2393,10 @@ enable $arch # Add processor-specific flags -if enabled aarch64; then - - case $cpu in - armv*) - cpuflags="-march=$cpu" - ;; - *) - cpuflags="-mcpu=$cpu" - ;; - esac - -elif enabled alpha; then - - cpuflags="-mcpu=$cpu" - -elif enabled arm; then - - check_arm_arch() { - check_cpp_condition stddef.h \ - "defined __ARM_ARCH_${1}__ || defined __TARGET_ARCH_${2:-$1}" \ - $cpuflags - } - - probe_arm_arch() { - if check_arm_arch 4; then echo armv4; - elif check_arm_arch 4T; then echo armv4t; - elif check_arm_arch 5; then echo armv5; - elif check_arm_arch 5E; then echo armv5e; - elif check_arm_arch 5T; then echo armv5t; - elif check_arm_arch 5TE; then echo armv5te; - elif check_arm_arch 5TEJ; then echo armv5te; - elif check_arm_arch 6; then echo armv6; - elif check_arm_arch 6J; then echo armv6j; - elif check_arm_arch 6K; then echo armv6k; - elif check_arm_arch 6Z; then echo armv6z; - elif check_arm_arch 6ZK; then echo armv6zk; - elif check_arm_arch 6T2; then echo armv6t2; - elif check_arm_arch 7; then echo armv7; - elif check_arm_arch 7A 7_A; then echo armv7-a; - elif check_arm_arch 7R 7_R; then echo armv7-r; - elif check_arm_arch 7M 7_M; then echo armv7-m; - elif check_arm_arch 7EM 7E_M; then echo armv7-m; - elif check_arm_arch 8A 8_A; then echo armv8-a; - fi - } - - [ "$cpu" = generic ] && cpu=$(probe_arm_arch) - - case $cpu in - armv*) - cpuflags="-march=$cpu" - subarch=$(echo $cpu | sed 's/[^a-z0-9]//g') - ;; - *) - cpuflags="-mcpu=$cpu" - case $cpu in - cortex-a*) subarch=armv7a ;; - cortex-r*) subarch=armv7r ;; - cortex-m*) enable thumb; subarch=armv7m ;; - arm11*) subarch=armv6 ;; - arm[79]*e*|arm9[24]6*|arm96*|arm102[26]) subarch=armv5te ;; - armv4*|arm7*|arm9[24]*) subarch=armv4 ;; - *) subarch=$(probe_arm_arch) ;; - esac - ;; - esac - - case "$subarch" in - armv5t*) enable fast_clz ;; - armv[6-8]*) - enable fast_clz - disabled fast_unaligned || enable fast_unaligned - ;; - esac - -elif enabled avr32; then - - case $cpu in - ap7[02]0[0-2]) - subarch="avr32_ap" - cpuflags="-mpart=$cpu" - ;; - ap) - subarch="avr32_ap" - cpuflags="-march=$cpu" - ;; - uc3[ab]*) - subarch="avr32_uc" - cpuflags="-mcpu=$cpu" - ;; - uc) - subarch="avr32_uc" - cpuflags="-march=$cpu" - ;; - esac - -elif enabled bfin; then - - cpuflags="-mcpu=$cpu" - -elif enabled mips; then - - cpuflags="-march=$cpu" - - case $cpu in - 24kc) - disable mipsfpu - disable mipsdspr1 - disable mipsdspr2 - ;; - 24kf*) - disable mipsdspr1 - disable mipsdspr2 - ;; - 24kec|34kc|1004kc) - disable mipsfpu - disable mipsdspr2 - ;; - 24kef*|34kf*|1004kf*) - disable mipsdspr2 - ;; - 74kc) - disable mipsfpu - ;; - esac - +if test "$cpu" = generic; then + : do nothing elif enabled ppc; then - disable ldbrx - disable vsx - case $(tolower $cpu) in 601|ppc601|powerpc601) cpuflags="-mcpu=601" @@ -3817,49 +2411,29 @@ disable altivec ;; g3|75*|ppc75*|powerpc75*) - cpuflags="-mcpu=750" + cpuflags="-mcpu=750 -mpowerpc-gfxopt" disable altivec ;; g4|745*|ppc745*|powerpc745*) - cpuflags="-mcpu=7450" + cpuflags="-mcpu=7450 -mpowerpc-gfxopt" ;; 74*|ppc74*|powerpc74*) - cpuflags="-mcpu=7400" + cpuflags="-mcpu=7400 -mpowerpc-gfxopt" ;; - g5|970|ppc970|powerpc970) - cpuflags="-mcpu=970" - ;; - power[3-8]*) - cpuflags="-mcpu=$cpu" + g5|970|ppc970|powerpc970|power4*) + cpuflags="-mcpu=970 -mpowerpc-gfxopt -mpowerpc64" ;; cell) cpuflags="-mcpu=cell" enable ldbrx ;; - e500mc) - cpuflags="-mcpu=e500mc" - disable altivec - ;; e500v2) cpuflags="-mcpu=8548 -mhard-float -mfloat-gprs=double" disable altivec - disable dcbzl ;; e500) cpuflags="-mcpu=8540 -mhard-float" disable altivec - disable dcbzl - ;; - esac - -elif enabled sparc; then - - case $cpu in - cypress|f93[04]|tsc701|sparcl*|supersparc|hypersparc|niagara|v[789]) - cpuflags="-mcpu=$cpu" - ;; - ultrasparc*|niagara[234]) - cpuflags="-mcpu=$cpu" ;; esac @@ -3868,35 +2442,96 @@ case $cpu in i[345]86|pentium) cpuflags="-march=$cpu" - disable i686 disable mmx ;; - # targets that do NOT support nopl and conditional mov (cmov) + # targets that do NOT support conditional mov (cmov) pentium-mmx|k6|k6-[23]|winchip-c6|winchip2|c3) cpuflags="-march=$cpu" - disable i686 + disable cmov ;; - # targets that do support nopl and conditional mov (cmov) - i686|pentiumpro|pentium[23]|pentium-m|athlon|athlon-tbird|athlon-4|athlon-[mx]p|athlon64*|k8*|opteron*|athlon-fx\ - |core*|atom|bonnell|nehalem|westmere|silvermont|sandybridge|ivybridge|haswell|broadwell|amdfam10|barcelona|b[dt]ver*) + # targets that do support conditional mov (cmov) + i686|pentiumpro|pentium[23]|pentium-m|athlon|athlon-tbird|athlon-4|athlon-[mx]p|athlon64*|k8*|opteron*|athlon-fx|core2|amdfam10|barcelona|atom) cpuflags="-march=$cpu" - enable i686 + enable cmov enable fast_cmov ;; # targets that do support conditional mov but on which it's slow pentium4|pentium4m|prescott|nocona) cpuflags="-march=$cpu" - enable i686 - disable fast_cmov + enable cmov + disable fast_cmov + ;; + esac + +elif enabled sparc; then + + case $cpu in + niagara) + cpuflags="-mcpu=$cpu" + disable vis + ;; + sparc64) + cpuflags="-mcpu=v9" + ;; + esac + +elif enabled arm; then + + case $cpu in + armv*) + cpuflags="-march=$cpu" + subarch=$(echo $cpu | sed 's/[^a-z0-9]//g') + ;; + *) + cpuflags="-mcpu=$cpu" + case $cpu in + cortex-a*) subarch=armv7a ;; + cortex-r*) subarch=armv7r ;; + cortex-m*) enable thumb; subarch=armv7m ;; + arm11*) subarch=armv6 ;; + arm[79]*e*|arm9[24]6*|arm96*|arm102[26]) subarch=armv5te ;; + armv4*|arm7*|arm9[24]*) subarch=armv4 ;; + esac + ;; + esac + +elif enabled alpha; then + + enabled ccc && cpuflags="-arch $cpu" || cpuflags="-mcpu=$cpu" + +elif enabled bfin; then + + cpuflags="-mcpu=$cpu" + +elif enabled mips; then + + cpuflags="-march=$cpu" + +elif enabled avr32; then + + case $cpu in + ap7[02]0[0-2]) + subarch="avr32_ap" + cpuflags="-mpart=$cpu" + ;; + ap) + subarch="avr32_ap" + cpuflags="-march=$cpu" + ;; + uc3[ab]*) + subarch="avr32_uc" + cpuflags="-mcpu=$cpu" + ;; + uc) + subarch="avr32_uc" + cpuflags="-march=$cpu" ;; esac fi -if [ "$cpu" != generic ]; then - add_cflags $cpuflags - add_asflags $cpuflags -fi +add_cflags $cpuflags +add_asflags $cpuflags # compiler sanity check check_exec < EOF -add_host_cppflags -D_ISOC99_SOURCE check_host_cflags -std=c99 check_host_cflags -Wall -check_host_cflags -O3 - -check_64bit(){ - arch32=$1 - arch64=$2 - expr=$3 - check_code cc "" "int test[2*($expr) - 1]" && - subarch=$arch64 || subarch=$arch32 -} case "$arch" in - aarch64|alpha|ia64) - spic=$shared - ;; - mips) - check_64bit mips mips64 '_MIPS_SIM > 1' - spic=$shared - ;; - parisc) - check_64bit parisc parisc64 'sizeof(void *) > 4' - spic=$shared - ;; - ppc) - check_64bit ppc ppc64 'sizeof(void *) > 4' - spic=$shared - ;; - s390) - check_64bit s390 s390x 'sizeof(void *) > 4' - spic=$shared - ;; - sparc) - check_64bit sparc sparc64 'sizeof(void *) > 4' + alpha|ia64|mips|parisc|ppc|sparc) spic=$shared ;; x86) - check_64bit x86_32 x86_64 'sizeof(void *) > 4' - # Treat x32 as x64 for now. Note it also needs spic=$shared - test "$subarch" = "x86_32" && check_cpp_condition stddef.h 'defined(__x86_64__)' && - subarch=x86_64 + subarch="x86_32" + check_cc < mapfile && - add_ldflags -Wl,-M,mapfile - nm_default='nm -P -g' + enabled_all suncc x86 && echo "hwcap_1 = OVERRIDE;" > mapfile && add_ldflags -Wl,-M,mapfile + nm_opts='-P -g' ;; netbsd) disable symver oss_indev_extralibs="-lossaudio" oss_outdev_extralibs="-lossaudio" - enabled gcc || check_ldflags -Wl,-zmuldefs ;; - openbsd|bitrig) + openbsd) + enable malloc_aligned + # On OpenBSD 4.5. the compiler does not use PIC unless + # explicitly using -fPIC. FFmpeg builds fine without PIC, + # however the generated executable will not do anything + # (simply quits with exit-code 1, no crash, no output). + # Thus explicitly enable PIC here. + enable pic disable symver SHFLAGS='-shared' - SLIB_INSTALL_NAME='$(SLIBNAME).$(LIBMAJOR).$(LIBMINOR)' - SLIB_INSTALL_LINKS= oss_indev_extralibs="-lossaudio" oss_outdev_extralibs="-lossaudio" ;; dragonfly) + enable malloc_aligned disable symver ;; freebsd) + enable malloc_aligned ;; bsd/os) add_extralibs -lpoll -lgnugetopt strip="strip -d" ;; darwin) + enable malloc_aligned + gas="gas-preprocessor.pl $cc" enabled ppc && add_asflags -force_cpusubtype_ALL - SHFLAGS='-dynamiclib -Wl,-single_module -Wl,-install_name,$(SHLIBDIR)/$(SLIBNAME_WITH_MAJOR),-current_version,$(LIBVERSION),-compatibility_version,$(LIBMAJOR)' + SHFLAGS='-dynamiclib -Wl,-single_module -Wl,-install_name,$(SHLIBDIR)/$(SLIBNAME),-current_version,$(LIBVERSION),-compatibility_version,$(LIBMAJOR)' enabled x86_32 && append SHFLAGS -Wl,-read_only_relocs,suppress strip="${strip} -x" add_ldflags -Wl,-dynamic,-search_paths_first SLIBSUF=".dylib" SLIBNAME_WITH_VERSION='$(SLIBPREF)$(FULLNAME).$(LIBVERSION)$(SLIBSUF)' SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(FULLNAME).$(LIBMAJOR)$(SLIBSUF)' + FFSERVERLDFLAGS=-Wl,-bind_at_load objformat="macho" enabled x86_64 && objformat="macho64" enabled_any pic shared || @@ -4055,61 +2657,29 @@ fi LIBTARGET=i386 if enabled x86_64; then - LIBTARGET="i386:x86-64" + enable malloc_aligned + LIBTARGET=x64 elif enabled arm; then LIBTARGET=arm-wince fi - enabled shared && ! enabled small && check_cmd $windres --version && enable gnu_windres - check_ldflags -Wl,--nxcompat - check_ldflags -Wl,--dynamicbase - enabled x86_32 && check_ldflags -Wl,--large-address-aware shlibdir_default="$bindir_default" SLIBPREF="" SLIBSUF=".dll" SLIBNAME_WITH_VERSION='$(SLIBPREF)$(FULLNAME)-$(LIBVERSION)$(SLIBSUF)' SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(FULLNAME)-$(LIBMAJOR)$(SLIBSUF)' - dlltool="${cross_prefix}dlltool" - if check_cmd lib.exe -list; then - SLIB_EXTRA_CMD=-'sed -e "s/ @[^ ]*//" $$(@:$(SLIBSUF)=.orig.def) > $$(@:$(SLIBSUF)=.def); lib.exe /machine:$(LIBTARGET) /def:$$(@:$(SLIBSUF)=.def) /out:$(SUBDIR)$(SLIBNAME:$(SLIBSUF)=.lib)' - if enabled x86_64; then - LIBTARGET=x64 - fi - elif check_cmd $dlltool --version; then - SLIB_EXTRA_CMD=-'sed -e "s/ @[^ ]*//" $$(@:$(SLIBSUF)=.orig.def) > $$(@:$(SLIBSUF)=.def); $(DLLTOOL) -m $(LIBTARGET) -d $$(@:$(SLIBSUF)=.def) -l $(SUBDIR)$(SLIBNAME:$(SLIBSUF)=.lib) -D $(SLIBNAME_WITH_MAJOR)' - fi + SLIB_EXTRA_CMD='-lib.exe /machine:$(LIBTARGET) /def:$$(@:$(SLIBSUF)=.def) /out:$(SUBDIR)$(SLIBNAME:$(SLIBSUF)=.lib)' SLIB_INSTALL_NAME='$(SLIBNAME_WITH_MAJOR)' SLIB_INSTALL_LINKS= SLIB_INSTALL_EXTRA_SHLIB='$(SLIBNAME:$(SLIBSUF)=.lib)' SLIB_INSTALL_EXTRA_LIB='lib$(SLIBNAME:$(SLIBSUF)=.dll.a) $(SLIBNAME_WITH_MAJOR:$(SLIBSUF)=.def)' - SHFLAGS='-shared -Wl,--output-def,$$(@:$(SLIBSUF)=.orig.def) -Wl,--out-implib,$(SUBDIR)lib$(SLIBNAME:$(SLIBSUF)=.dll.a) -Wl,--enable-runtime-pseudo-reloc -Wl,--enable-auto-image-base' - objformat="win32" - ranlib=: - enable dos_paths - ;; - win32|win64) - disable symver - if enabled shared; then - # Link to the import library instead of the normal static library - # for shared libs. - LD_LIB='%.lib' - # Cannot build both shared and static libs with MSVC or icl. - disable static - fi - enabled x86_32 && check_ldflags -LARGEADDRESSAWARE - shlibdir_default="$bindir_default" - SLIBPREF="" - SLIBSUF=".dll" - SLIBNAME_WITH_VERSION='$(SLIBPREF)$(FULLNAME)-$(LIBVERSION)$(SLIBSUF)' - SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(FULLNAME)-$(LIBMAJOR)$(SLIBSUF)' - SLIB_CREATE_DEF_CMD='$(SRC_PATH)/compat/windows/makedef $(SUBDIR)lib$(NAME).ver $(OBJS) > $$(@:$(SLIBSUF)=.def)' - SLIB_INSTALL_NAME='$(SLIBNAME_WITH_MAJOR)' - SLIB_INSTALL_LINKS= - SLIB_INSTALL_EXTRA_SHLIB='$(SLIBNAME:$(SLIBSUF)=.lib)' - SLIB_INSTALL_EXTRA_LIB='$(SLIBNAME_WITH_MAJOR:$(SLIBSUF)=.def)' - SHFLAGS='-dll -def:$$(@:$(SLIBSUF)=.def) -implib:$(SUBDIR)$(SLIBNAME:$(SLIBSUF)=.lib)' + SHFLAGS='-shared -Wl,--output-def,$$(@:$(SLIBSUF)=.def) -Wl,--out-implib,$(SUBDIR)lib$(SLIBNAME:$(SLIBSUF)=.dll.a) -Wl,--enable-runtime-pseudo-reloc -Wl,--enable-auto-image-base' objformat="win32" - ranlib=: enable dos_paths + check_cflags -fno-common + check_cpp_condition _mingw.h "defined (__MINGW64_VERSION_MAJOR) || (__MINGW32_MAJOR_VERSION > 3) \ + || (__MINGW32_MAJOR_VERSION == 3 && __MINGW32_MINOR_VERSION >= 15)" || + die "ERROR: MinGW runtime version must be >= 3.15." + add_cppflags -U__STRICT_ANSI__ ;; cygwin*) target_os=cygwin @@ -4118,13 +2688,11 @@ SLIBSUF=".dll" SLIBNAME_WITH_VERSION='$(SLIBPREF)$(FULLNAME)-$(LIBVERSION)$(SLIBSUF)' SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(FULLNAME)-$(LIBMAJOR)$(SLIBSUF)' - SLIB_INSTALL_NAME='$(SLIBNAME_WITH_MAJOR)' - SLIB_INSTALL_LINKS= - SLIB_INSTALL_EXTRA_LIB='lib$(FULLNAME).dll.a' - SHFLAGS='-shared -Wl,--out-implib,$(SUBDIR)lib$(FULLNAME).dll.a' + SHFLAGS='-shared -Wl,--enable-auto-image-base' objformat="win32" enable dos_paths - enabled shared && ! enabled small && check_cmd $windres --version && enable gnu_windres + check_cflags -fno-common + add_cppflags -U__STRICT_ANSI__ ;; *-dos|freedos|opendos) network_extralibs="-lsocket" @@ -4133,6 +2701,7 @@ add_cppflags -U__STRICT_ANSI__ ;; linux) + add_cppflags -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 enable dv1394 ;; irix*) @@ -4146,27 +2715,29 @@ add_cppflags -D_GNU_SOURCE add_ldflags -Zomf -Zbin-files -Zargs-wild -Zmap SHFLAGS='$(SUBDIR)$(NAME).def -Zdll -Zomf' + FFSERVERLDFLAGS="" LIBSUF="_s.a" SLIBPREF="" SLIBSUF=".dll" SLIBNAME_WITH_VERSION='$(SLIBPREF)$(NAME)-$(LIBVERSION)$(SLIBSUF)' SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(shell echo $(NAME) | cut -c1-6)$(LIBMAJOR)$(SLIBSUF)' SLIB_CREATE_DEF_CMD='echo LIBRARY $(SLIBNAME_WITH_MAJOR) INITINSTANCE TERMINSTANCE > $(SUBDIR)$(NAME).def; \ - echo PROTMODE >> $(SUBDIR)$(NAME).def; \ - echo CODE PRELOAD MOVEABLE DISCARDABLE >> $(SUBDIR)$(NAME).def; \ - echo DATA PRELOAD MOVEABLE MULTIPLE NONSHARED >> $(SUBDIR)$(NAME).def; \ - echo EXPORTS >> $(SUBDIR)$(NAME).def; \ - emxexp -o $(OBJS) >> $(SUBDIR)$(NAME).def' + echo PROTMODE >> $(SUBDIR)$(NAME).def; \ + echo CODE PRELOAD MOVEABLE DISCARDABLE >> $(SUBDIR)$(NAME).def; \ + echo DATA PRELOAD MOVEABLE MULTIPLE NONSHARED >> $(SUBDIR)$(NAME).def; \ + echo EXPORTS >> $(SUBDIR)$(NAME).def; \ + emxexp -o $(OBJS) >> $(SUBDIR)$(NAME).def' SLIB_EXTRA_CMD='emximp -o $(SUBDIR)$(LIBPREF)$(NAME)_dll.a $(SUBDIR)$(NAME).def; \ - emximp -o $(SUBDIR)$(LIBPREF)$(NAME)_dll.lib $(SUBDIR)$(NAME).def;' + emximp -o $(SUBDIR)$(LIBPREF)$(NAME)_dll.lib $(SUBDIR)$(NAME).def;' SLIB_INSTALL_EXTRA_LIB='$(LIBPREF)$(NAME)_dll.a $(LIBPREF)$(NAME)_dll.lib' enable dos_paths enable_weak os2threads ;; gnu/kfreebsd) - add_cppflags -D_BSD_SOURCE + add_cppflags -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -D_BSD_SOURCE ;; gnu) + add_cppflags -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 ;; qnx) add_cppflags -D_QNX_SOURCE @@ -4184,23 +2755,6 @@ -l:drtaeabi.dso -l:scppnwdl.dso -lsupc++ -lgcc \ -l:libc.dso -l:libm.dso -l:euser.dso -l:libcrt0.lib ;; - osf1) - add_cppflags -D_OSF_SOURCE -D_POSIX_PII -D_REENTRANT - ;; - minix) - ;; - plan9) - add_cppflags -D_C99_SNPRINTF_EXTENSION \ - -D_REENTRANT_SOURCE \ - -D_RESEARCH_SOURCE \ - -DFD_SETSIZE=96 \ - -DHAVE_SOCK_OPTS - add_compat strtod.o strtod=avpriv_strtod - network_extralibs='-lbsd' - exeobjs=compat/plan9/main.o - disable ffserver - cp_f='cp' - ;; none) ;; *) @@ -4208,114 +2762,11 @@ ;; esac -# determine libc flavour - -probe_libc(){ - pfx=$1 - pfx_no_=${pfx%_} - # uclibc defines __GLIBC__, so it needs to be checked before glibc. - if check_${pfx}cpp_condition features.h "defined __UCLIBC__"; then - eval ${pfx}libc_type=uclibc - add_${pfx}cppflags -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 - elif check_${pfx}cpp_condition features.h "defined __GLIBC__"; then - eval ${pfx}libc_type=glibc - add_${pfx}cppflags -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 - # MinGW headers can be installed on Cygwin, so check for newlib first. - elif check_${pfx}cpp_condition newlib.h "defined _NEWLIB_VERSION"; then - eval ${pfx}libc_type=newlib - add_${pfx}cppflags -U__STRICT_ANSI__ - # MinGW64 is backwards compatible with MinGW32, so check for it first. - elif check_${pfx}cpp_condition _mingw.h "defined __MINGW64_VERSION_MAJOR"; then - eval ${pfx}libc_type=mingw64 - if check_${pfx}cpp_condition _mingw.h "__MINGW64_VERSION_MAJOR < 3"; then - add_compat msvcrt/snprintf.o - add_cflags "-include $source_path/compat/msvcrt/snprintf.h" - fi - add_${pfx}cppflags -U__STRICT_ANSI__ -D__USE_MINGW_ANSI_STDIO=1 - eval test \$${pfx_no_}cc_type = "gcc" && - add_${pfx}cppflags -D__printf__=__gnu_printf__ - elif check_${pfx}cpp_condition _mingw.h "defined __MINGW_VERSION" || - check_${pfx}cpp_condition _mingw.h "defined __MINGW32_VERSION"; then - eval ${pfx}libc_type=mingw32 - check_${pfx}cpp_condition _mingw.h "__MINGW32_MAJOR_VERSION > 3 || \ - (__MINGW32_MAJOR_VERSION == 3 && __MINGW32_MINOR_VERSION >= 15)" || - die "ERROR: MinGW32 runtime version must be >= 3.15." - add_${pfx}cppflags -U__STRICT_ANSI__ -D__USE_MINGW_ANSI_STDIO=1 - eval test \$${pfx_no_}cc_type = "gcc" && - add_${pfx}cppflags -D__printf__=__gnu_printf__ - elif check_${pfx}cpp_condition crtversion.h "defined _VC_CRT_MAJOR_VERSION"; then - eval ${pfx}libc_type=msvcrt - # The MSVC 2010 headers (Win 7.0 SDK) set _WIN32_WINNT to - # 0x601 by default unless something else is set by the user. - # This can easily lead to us detecting functions only present - # in such new versions and producing binaries requiring windows 7.0. - # Therefore explicitly set the default to XP unless the user has - # set something else on the command line. - check_${pfx}cpp_condition stdlib.h "defined(_WIN32_WINNT)" || - add_${pfx}cppflags -D_WIN32_WINNT=0x0502 - elif check_${pfx}cpp_condition stddef.h "defined __KLIBC__"; then - eval ${pfx}libc_type=klibc - elif check_${pfx}cpp_condition sys/cdefs.h "defined __BIONIC__"; then - eval ${pfx}libc_type=bionic - elif check_${pfx}cpp_condition sys/brand.h "defined LABELED_BRAND_NAME"; then - eval ${pfx}libc_type=solaris - add_${pfx}cppflags -D__EXTENSIONS__ -D_XOPEN_SOURCE=600 - fi - check_${pfx}cc < -void *v = localtime_r; -EOF -test "$?" != 0 && check_${pfx}cc -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 < -void *v = localtime_r; -EOF - -} - -probe_libc -test -n "$libc_type" && enable libc_$libc_type -probe_libc host_ -test -n "$host_libc_type" && enable host_libc_$host_libc_type - -case $libc_type in - bionic) - add_compat strtod.o strtod=avpriv_strtod - ;; - msvcrt) - add_compat strtod.o strtod=avpriv_strtod - add_compat msvcrt/snprintf.o snprintf=avpriv_snprintf \ - _snprintf=avpriv_snprintf \ - vsnprintf=avpriv_vsnprintf - ;; -esac - -# hacks for compiler/libc/os combinations - -if enabled_all tms470 libc_glibc; then - CPPFLAGS="-I${source_path}/compat/tms470 ${CPPFLAGS}" - add_cppflags -D__USER_LABEL_PREFIX__= - add_cppflags -D__builtin_memset=memset - add_cppflags -D__gnuc_va_list=va_list -D_VA_LIST_DEFINED - add_cflags -pds=48 # incompatible redefinition of macro -fi - -if enabled_all ccc libc_glibc; then - add_ldflags -Wl,-z,now # calls to libots crash without this -fi - -check_compile_assert flt_lim "float.h limits.h" "DBL_MAX == (double)DBL_MAX" || - add_cppflags '-I\$(SRC_PATH)/compat/float' - -esc(){ - echo "$*" | sed 's/%/%25/g;s/:/%3a/g' -} - -echo "config:$arch:$subarch:$cpu:$target_os:$(esc $cc_ident):$(esc $FFMPEG_CONFIGURATION)" >config.fate +echo "config:$arch:$subarch:$cpu:$target_os:$cc_ident:$FFMPEG_CONFIGURATION" >config.fate -check_cpp_condition stdlib.h "defined(__PIC__) || defined(__pic__) || defined(PIC)" && enable_weak pic +check_cpp_condition stdlib.h "defined(__PIC__) || defined(__pic__) || defined(PIC)" && enable pic set_default $PATHS_LIST -set_default nm # we need to build at least one lib type if ! enabled_any static shared; then @@ -4332,30 +2783,18 @@ enabled $1 || { enabled $2 && die "$2 is $1 and --enable-$1 is not specified."; } } -die_license_disabled_gpl() { - enabled $1 || { enabled $2 && die "$2 is incompatible with the gpl and --enable-$1 is not specified."; } -} - -die_license_disabled gpl frei0r die_license_disabled gpl libcdio -die_license_disabled gpl libsmbclient -die_license_disabled gpl libutvideo -die_license_disabled gpl libvidstab die_license_disabled gpl libx264 -die_license_disabled gpl libx265 die_license_disabled gpl libxavs die_license_disabled gpl libxvid -die_license_disabled gpl libzvbi die_license_disabled gpl x11grab die_license_disabled nonfree libaacplus die_license_disabled nonfree libfaac -enabled gpl && die_license_disabled_gpl nonfree libfdk_aac -enabled gpl && die_license_disabled_gpl nonfree openssl +die_license_disabled nonfree openssl die_license_disabled version3 libopencore_amrnb die_license_disabled version3 libopencore_amrwb -die_license_disabled version3 libsmbclient die_license_disabled version3 libvo_aacenc die_license_disabled version3 libvo_amrwbenc @@ -4363,29 +2802,22 @@ disabled optimizations || check_cflags -fomit-frame-pointer -enable_weak_pic() { - disabled pic && return +enable_pic() { enable pic add_cppflags -DPIC - case "$target_os" in - mingw*|cygwin*) - ;; - *) - add_cflags -fPIC - ;; - esac + add_cflags -fPIC add_asflags -fPIC } -enabled pic && enable_weak_pic +enabled pic && enable_pic check_cc <= 2.0.0" aacplus.h aacplusEncOpen -laacplus -enabled libass && require_pkg_config libass ass/ass.h ass_library_init -enabled libbluray && require_pkg_config libbluray libbluray/bluray.h bd_open -enabled libbs2b && require_pkg_config libbs2b bs2b.h bs2b_open -enabled libcelt && require libcelt celt/celt.h celt_decode -lcelt0 && - { check_lib celt/celt.h celt_decoder_create_custom -lcelt0 || - die "ERROR: libcelt must be installed and version must be >= 0.11.0."; } -enabled libcaca && require_pkg_config caca caca.h caca_create_canvas -enabled libfaac && require2 libfaac "stdint.h faac.h" faacEncGetVersion -lfaac -enabled libfdk_aac && require libfdk_aac fdk-aac/aacenc_lib.h aacEncOpen -lfdk-aac -flite_libs="-lflite_cmu_time_awb -lflite_cmu_us_awb -lflite_cmu_us_kal -lflite_cmu_us_kal16 -lflite_cmu_us_rms -lflite_cmu_us_slt -lflite_usenglish -lflite_cmulex -lflite" -enabled libflite && require2 libflite "flite/flite.h" flite_init $flite_libs -enabled fontconfig && enable libfontconfig -enabled libfontconfig && require_pkg_config fontconfig "fontconfig/fontconfig.h" FcInit -enabled libfreetype && require_libfreetype -enabled libfribidi && require_pkg_config fribidi fribidi.h fribidi_version_info -enabled libgme && require libgme gme/gme.h gme_new_emu -lgme -lstdc++ -enabled libgsm && { for gsm_hdr in "gsm.h" "gsm/gsm.h"; do - check_lib "${gsm_hdr}" gsm_create -lgsm && break; - done || die "ERROR: libgsm not found"; } -enabled libilbc && require libilbc ilbc.h WebRtcIlbcfix_InitDecode -lilbc -enabled libmodplug && require_pkg_config libmodplug libmodplug/modplug.h ModPlug_Load -enabled libmp3lame && require "libmp3lame >= 3.98.3" lame/lame.h lame_set_VBR_quality -lmp3lame -enabled libnut && require libnut libnut.h nut_demuxer_init -lnut -enabled libopencore_amrnb && require libopencore_amrnb opencore-amrnb/interf_dec.h Decoder_Interface_init -lopencore-amrnb -enabled libopencore_amrwb && require libopencore_amrwb opencore-amrwb/dec_if.h D_IF_init -lopencore-amrwb -enabled libopencv && require_pkg_config opencv opencv/cxcore.h cvCreateImageHeader -enabled libopenjpeg && { check_lib openjpeg.h opj_version -lopenmj2 -DOPJ_STATIC || - check_lib openjpeg-1.5/openjpeg.h opj_version -lopenjpeg -DOPJ_STATIC || - check_lib openjpeg.h opj_version -lopenjpeg -DOPJ_STATIC || - die "ERROR: libopenjpeg not found"; } -enabled libopus && require_pkg_config opus opus_multistream.h opus_multistream_decoder_create -enabled libpulse && require_pkg_config libpulse pulse/pulseaudio.h pa_context_new -enabled libquvi && require_pkg_config libquvi quvi/quvi.h quvi_init -enabled librtmp && require_pkg_config librtmp librtmp/rtmp.h RTMP_Socket -enabled libschroedinger && require_pkg_config schroedinger-1.0 schroedinger/schro.h schro_init -enabled libshine && require_pkg_config shine shine/layer3.h shine_encode_buffer -enabled libsmbclient && { check_pkg_config smbclient libsmbclient.h smbc_init || - require smbclient libsmbclient.h smbc_init -lsmbclient; } -enabled libsoxr && require libsoxr soxr.h soxr_create -lsoxr -enabled libssh && require_pkg_config libssh libssh/sftp.h sftp_init -enabled libspeex && require_pkg_config speex speex/speex.h speex_decoder_init -lspeex -enabled libstagefright_h264 && require_cpp libstagefright_h264 "binder/ProcessState.h media/stagefright/MetaData.h +enabled avisynth && require2 vfw32 "windows.h vfw.h" AVIFileInit -lavifil32 +enabled frei0r && { check_header frei0r.h || die "ERROR: frei0r.h header not found"; } +enabled gnutls && require_pkg_config gnutls gnutls/gnutls.h gnutls_global_init +enabled libaacplus && require "libaacplus >= 2.0.0" aacplus.h aacplusEncOpen -laacplus +enabled libass && require_pkg_config libass ass/ass.h ass_library_init +enabled libcelt && require libcelt celt/celt.h celt_decode -lcelt0 && + { check_lib celt/celt.h celt_decoder_create_custom -lcelt0 || + die "ERROR: libcelt version must be >= 0.11.0."; } +enabled libdc1394 && require_pkg_config libdc1394-2 dc1394/dc1394.h dc1394_new +enabled libdirac && require_pkg_config dirac \ + "libdirac_decoder/dirac_parser.h libdirac_encoder/dirac_encoder.h" \ + "dirac_decoder_init dirac_encoder_init" +enabled libfaac && require2 libfaac "stdint.h faac.h" faacEncGetVersion -lfaac +enabled libfreetype && require_pkg_config freetype2 "ft2build.h freetype/freetype.h" FT_Init_FreeType +enabled libgsm && require libgsm gsm/gsm.h gsm_create -lgsm +enabled libmodplug && require libmodplug libmodplug/modplug.h ModPlug_Load -lmodplug +enabled libmp3lame && require "libmp3lame >= 3.98.3" lame/lame.h lame_set_VBR_quality -lmp3lame +enabled libnut && require libnut libnut.h nut_demuxer_init -lnut +enabled libopencore_amrnb && require libopencore_amrnb opencore-amrnb/interf_dec.h Decoder_Interface_init -lopencore-amrnb +enabled libopencore_amrwb && require libopencore_amrwb opencore-amrwb/dec_if.h D_IF_init -lopencore-amrwb +enabled libopencv && require_pkg_config opencv opencv/cxcore.h cvCreateImageHeader +enabled libopenjpeg && require libopenjpeg openjpeg.h opj_version -lopenjpeg +enabled libpulse && require_pkg_config libpulse-simple pulse/simple.h pa_simple_new +enabled librtmp && require_pkg_config librtmp librtmp/rtmp.h RTMP_Socket +enabled libschroedinger && require_pkg_config schroedinger-1.0 schroedinger/schro.h schro_init +enabled libspeex && require libspeex speex/speex.h speex_decoder_init -lspeex +enabled libstagefright_h264 && require_cpp libstagefright_h264 "binder/ProcessState.h media/stagefright/MetaData.h media/stagefright/MediaBufferGroup.h media/stagefright/MediaDebug.h media/stagefright/MediaDefs.h - media/stagefright/OMXClient.h media/stagefright/OMXCodec.h" android::OMXClient -lstagefright -lmedia -lutils -lbinder -lgnustl_static -enabled libtheora && require libtheora theora/theoraenc.h th_info_init -ltheoraenc -ltheoradec -logg -enabled libtwolame && require libtwolame twolame.h twolame_init -ltwolame && - { check_lib twolame.h twolame_encode_buffer_float32_interleaved -ltwolame || - die "ERROR: libtwolame must be installed and version must be >= 0.3.10"; } -enabled libutvideo && require_cpp utvideo "stdint.h stdlib.h utvideo/utvideo.h utvideo/Codec.h" 'CCodec*' -lutvideo -lstdc++ -enabled libv4l2 && require_pkg_config libv4l2 libv4l2.h v4l2_ioctl -enabled libvidstab && require_pkg_config "vidstab >= 0.98" vid.stab/libvidstab.h vsMotionDetectInit -enabled libvo_aacenc && require libvo_aacenc vo-aacenc/voAAC.h voGetAACEncAPI -lvo-aacenc -enabled libvo_amrwbenc && require libvo_amrwbenc vo-amrwbenc/enc_if.h E_IF_init -lvo-amrwbenc -enabled libvorbis && require libvorbis vorbis/vorbisenc.h vorbis_info_init -lvorbisenc -lvorbis -logg -enabled libvpx && { - enabled libvpx_vp8_decoder && { check_lib2 "vpx/vpx_decoder.h vpx/vp8dx.h" vpx_codec_dec_init_ver -lvpx || - die "ERROR: libvpx decoder version must be >=0.9.1"; } - enabled libvpx_vp8_encoder && { check_lib2 "vpx/vpx_encoder.h vpx/vp8cx.h" "vpx_codec_enc_init_ver VP8E_SET_MAX_INTRA_BITRATE_PCT" -lvpx || - die "ERROR: libvpx encoder version must be >=0.9.7"; } - enabled libvpx_vp9_decoder && { check_lib2 "vpx/vpx_decoder.h vpx/vp8dx.h" "vpx_codec_vp9_dx" -lvpx || disable libvpx_vp9_decoder; } - enabled libvpx_vp9_encoder && { check_lib2 "vpx/vpx_encoder.h vpx/vp8cx.h" "vpx_codec_vp9_cx VP9E_SET_AQ_MODE" -lvpx || disable libvpx_vp9_encoder; } } -enabled libwavpack && require libwavpack wavpack/wavpack.h WavpackOpenFileOutput -lwavpack -enabled libwebp && require_pkg_config "libwebp >= 0.2.0" webp/encode.h WebPGetEncoderVersion -enabled libx264 && { use_pkg_config x264 "stdint.h x264.h" x264_encoder_encode || - { require libx264 x264.h x264_encoder_encode -lx264 && - warn "using libx264 without pkg-config"; } } && - { check_cpp_condition x264.h "X264_BUILD >= 118" || - die "ERROR: libx264 must be installed and version must be >= 0.118."; } -enabled libx265 && require_pkg_config x265 x265.h x265_encoder_encode && - { check_cpp_condition x265.h "X265_BUILD >= 17" || - die "ERROR: libx265 version must be >= 17."; } -enabled libxavs && require libxavs xavs.h xavs_encoder_encode -lxavs -enabled libxvid && require libxvid xvid.h xvid_global -lxvidcore -enabled libzmq && require_pkg_config libzmq zmq.h zmq_ctx_new -enabled libzvbi && require libzvbi libzvbi.h vbi_decoder_new -lzvbi -enabled openal && { { for al_libs in "${OPENAL_LIBS}" "-lopenal" "-lOpenAL32"; do - check_lib 'AL/al.h' alGetError "${al_libs}" && break; done } || - die "ERROR: openal not found"; } && - { check_cpp_condition "AL/al.h" "defined(AL_VERSION_1_1)" || - die "ERROR: openal must be installed and version must be 1.1 or compatible"; } -enabled opencl && { check_lib2 OpenCL/cl.h clEnqueueNDRangeKernel -Wl,-framework,OpenCL || - check_lib2 CL/cl.h clEnqueueNDRangeKernel -lOpenCL || - die "ERROR: opencl not found"; } && - { check_cpp_condition "OpenCL/cl.h" "defined(CL_VERSION_1_2)" || - check_cpp_condition "CL/cl.h" "defined(CL_VERSION_1_2)" || - die "ERROR: opencl must be installed and version must be 1.2 or compatible"; } -enabled opengl && { check_lib GL/glx.h glXGetProcAddress "-lGL" || - check_lib2 windows.h wglGetProcAddress "-lopengl32 -lgdi32" || - check_lib2 OpenGL/gl3.h glGetError "-Wl,-framework,OpenGL" || - check_lib2 ES2/gl.h glGetError "-isysroot=${sysroot} -Wl,-framework,OpenGLES" || - die "ERROR: opengl not found." - } -enabled openssl && { check_lib openssl/ssl.h SSL_library_init -lssl -lcrypto || - check_lib openssl/ssl.h SSL_library_init -lssl32 -leay32 || - check_lib openssl/ssl.h SSL_library_init -lssl -lcrypto -lws2_32 -lgdi32 || - die "ERROR: openssl not found"; } -enabled qtkit_indev && { check_header_oc QTKit/QTKit.h || disable qtkit_indev; } - -if enabled gnutls; then - { check_lib nettle/bignum.h nettle_mpz_get_str_256 -lnettle -lhogweed -lgmp && enable nettle; } || - { check_lib gcrypt.h gcry_mpi_new -lgcrypt && enable gcrypt; } -fi - -# libdc1394 check -if enabled libdc1394; then - { check_lib dc1394/dc1394.h dc1394_new -ldc1394 -lraw1394 && - enable libdc1394_2; } || - { check_lib libdc1394/dc1394_control.h dc1394_create_handle -ldc1394_control -lraw1394 && - enable libdc1394_1; } || - die "ERROR: No version of libdc1394 found " -fi -if ! disabled sdl; then - SDL_CONFIG="${cross_prefix}sdl-config" - if check_pkg_config sdl SDL_events.h SDL_PollEvent; then - check_cpp_condition SDL.h "(SDL_MAJOR_VERSION<<16 | SDL_MINOR_VERSION<<8 | SDL_PATCHLEVEL) >= 0x010201" $sdl_cflags && - check_cpp_condition SDL.h "(SDL_MAJOR_VERSION<<16 | SDL_MINOR_VERSION<<8 | SDL_PATCHLEVEL) < 0x010300" $sdl_cflags && - enable sdl - else - if "${SDL_CONFIG}" --version > /dev/null 2>&1; then - sdl_cflags=$("${SDL_CONFIG}" --cflags) - sdl_libs=$("${SDL_CONFIG}" --libs) - check_func_headers SDL_version.h SDL_Linked_Version $sdl_cflags $sdl_libs && - check_cpp_condition SDL.h "(SDL_MAJOR_VERSION<<16 | SDL_MINOR_VERSION<<8 | SDL_PATCHLEVEL) >= 0x010201" $sdl_cflags && - check_cpp_condition SDL.h "(SDL_MAJOR_VERSION<<16 | SDL_MINOR_VERSION<<8 | SDL_PATCHLEVEL) < 0x010300" $sdl_cflags && - enable sdl - elif enabled sdl ; then - die "ERROR: SDL not found" - else - disable sdl - fi - fi + media/stagefright/OMXClient.h media/stagefright/OMXCodec.h" android::OMXClient -lstagefright -lmedia -lutils -lbinder +enabled libtheora && require libtheora theora/theoraenc.h th_info_init -ltheoraenc -ltheoradec -logg +enabled libutvideo && require_cpp utvideo "stdint.h stdlib.h utvideo/utvideo.h utvideo/Codec.h" 'CCodec*' -lutvideo -lstdc++ +enabled libv4l2 && require_pkg_config libv4l2 libv4l2.h v4l2_ioctl +enabled libvo_aacenc && require libvo_aacenc vo-aacenc/voAAC.h voGetAACEncAPI -lvo-aacenc +enabled libvo_amrwbenc && require libvo_amrwbenc vo-amrwbenc/enc_if.h E_IF_init -lvo-amrwbenc +enabled libvorbis && require libvorbis vorbis/vorbisenc.h vorbis_info_init -lvorbisenc -lvorbis -logg +enabled libvpx && { + enabled libvpx_decoder && { check_lib2 "vpx/vpx_decoder.h vpx/vp8dx.h" vpx_codec_dec_init_ver -lvpx || + die "ERROR: libvpx decoder version must be >=0.9.1"; } + enabled libvpx_encoder && { check_lib2 "vpx/vpx_encoder.h vpx/vp8cx.h" "vpx_codec_enc_init_ver VPX_CQ" -lvpx || + die "ERROR: libvpx encoder version must be >=0.9.6"; } } +enabled libx264 && require libx264 x264.h x264_encoder_encode -lx264 && + { check_cpp_condition x264.h "X264_BUILD >= 118" || + die "ERROR: libx264 version must be >= 0.118."; } +enabled libxavs && require libxavs xavs.h xavs_encoder_encode -lxavs +enabled libxvid && require libxvid xvid.h xvid_global -lxvidcore +enabled openal && { { for al_libs in "${OPENAL_LIBS}" "-lopenal" "-lOpenAL32"; do + check_lib 'AL/al.h' alGetError "${al_libs}" && break; done } || + die "ERROR: openal not found"; } && + { check_cpp_condition "AL/al.h" "defined(AL_VERSION_1_1)" || + die "ERROR: openal version must be 1.1 or compatible"; } +enabled mlib && require mediaLib mlib_types.h mlib_VectorSub_S16_U8_Mod -lmlib +enabled openssl && { check_lib openssl/ssl.h SSL_library_init -lssl -lcrypto || + check_lib openssl/ssl.h SSL_library_init -lssl32 -leay32 || + check_lib openssl/ssl.h SSL_library_init -lssl -lcrypto -lws2_32 -lgdi32 || + die "ERROR: openssl not found"; } + +SDL_CONFIG="${cross_prefix}sdl-config" +if check_pkg_config sdl SDL_version.h SDL_Linked_Version; then + check_cpp_condition SDL.h "(SDL_MAJOR_VERSION<<16 | SDL_MINOR_VERSION<<8 | SDL_PATCHLEVEL) >= 0x010201" $sdl_cflags && + enable sdl && + check_struct SDL.h SDL_VideoInfo current_w $sdl_cflags && enable sdl_video_size +else + if "${SDL_CONFIG}" --version > /dev/null 2>&1; then + sdl_cflags=$("${SDL_CONFIG}" --cflags) + sdl_libs=$("${SDL_CONFIG}" --libs) + check_func_headers SDL_version.h SDL_Linked_Version $sdl_cflags $sdl_libs && + check_cpp_condition SDL.h "(SDL_MAJOR_VERSION<<16 | SDL_MINOR_VERSION<<8 | SDL_PATCHLEVEL) >= 0x010201" $sdl_cflags && + enable sdl && + check_struct SDL.h SDL_VideoInfo current_w $sdl_cflags && enable sdl_video_size + fi fi enabled sdl && add_cflags $sdl_cflags && add_extralibs $sdl_libs +texi2html -version > /dev/null 2>&1 && enable texi2html || disable texi2html makeinfo --version > /dev/null 2>&1 && enable makeinfo || disable makeinfo -enabled makeinfo && (makeinfo --version | \ - grep -q 'makeinfo (GNU texinfo) 5' > /dev/null 2>&1) \ - && enable makeinfo_html || disable makeinfo_html -disabled makeinfo_html && texi2html --help 2> /dev/null | grep -q 'init-file' && enable texi2html || disable texi2html -perl -v > /dev/null 2>&1 && enable perl || disable perl -pod2man --help > /dev/null 2>&1 && enable pod2man || disable pod2man -rsync --help 2> /dev/null | grep -q 'contimeout' && enable rsync_contimeout || disable rsync_contimeout check_header linux/fb.h check_header linux/videodev.h check_header linux/videodev2.h -check_code cc linux/videodev2.h "struct v4l2_frmsizeenum vfse; vfse.discrete.width = 0;" && enable_safe struct_v4l2_frmivalenum_discrete +check_cc < +int main(void) { +struct v4l2_frmsizeenum vfse; +vfse.discrete.width = 0; +return 0; +} +EOF check_header sys/videoio.h -check_code cc sys/videoio.h "struct v4l2_frmsizeenum vfse; vfse.discrete.width = 0;" && enable_safe struct_v4l2_frmivalenum_discrete check_func_headers "windows.h vfw.h" capCreateCaptureWindow "$vfwcap_indev_extralibs" # check that WM_CAP_DRIVER_CONNECT is defined to the proper value @@ -5025,146 +3238,65 @@ fi check_header soundcard.h -enabled_any alsa_indev alsa_outdev && - check_lib2 alsa/asoundlib.h snd_pcm_htimestamp -lasound +enabled_any alsa_indev alsa_outdev && check_lib2 alsa/asoundlib.h snd_pcm_htimestamp -lasound -enabled jack_indev && check_lib2 jack/jack.h jack_client_open -ljack && check_func sem_timedwait && - check_func jack_port_get_latency_range -ljack +enabled jack_indev && check_lib2 jack/jack.h jack_client_open -ljack && check_func sem_timedwait enabled_any sndio_indev sndio_outdev && check_lib2 sndio.h sio_open -lsndio -if enabled libcdio; then - check_lib2 "cdio/cdda.h cdio/paranoia.h" cdio_cddap_open -lcdio_paranoia -lcdio_cdda -lcdio || - check_lib2 "cdio/paranoia/cdda.h cdio/paranoia/paranoia.h" cdio_cddap_open -lcdio_paranoia -lcdio_cdda -lcdio || - die "ERROR: libcdio-paranoia not found" -fi - -enabled xlib && - check_lib X11/Xlib.h XOpenDisplay -lX11 || disable xlib - -if ! disabled libxcb; then - check_pkg_config xcb xcb/xcb.h xcb_connect || { - enabled libxcb && die "ERROR: libxcb not found"; - } && disable x11grab && enable libxcb - -if enabled libxcb; then - disabled libxcb_shm || { - check_pkg_config xcb-shm xcb/shm.h xcb_shm_attach || { - enabled libxcb_shm && die "ERROR: libxcb_shm not found"; - } && check_header sys/shm.h && enable libxcb_shm; } - - disabled libxcb_xfixes || { - check_pkg_config xcb-xfixes xcb/xfixes.h xcb_xfixes_get_cursor_image || { - enabled libxcb_xfixes && die "ERROR: libxcb_xfixes not found"; - } && enable libxcb_xfixes; } - - disabled libxcb_shape || { - check_pkg_config xcb-shape xcb/shape.h xcb_shape_get_rectangles || { - enabled libxcb_shape && die "ERROR: libxcb_shape not found"; - } && enable libxcb_shape; } - - add_cflags $xcb_cflags $xcb_shm_cflags $xcb_xfixes_cflags $xcb_shape_cflags - add_extralibs $xcb_libs $xcb_shm_libs $xcb_xfixes_libs $xcb_shape_libs -fi -fi +enabled libcdio && + check_lib2 "cdio/cdda.h cdio/paranoia.h" cdio_cddap_open "-lcdio_paranoia -lcdio_cdda -lcdio" -if enabled x11grab; then - enabled xlib || die "ERROR: Xlib not found" - require Xext X11/extensions/XShm.h XShmCreateImage -lXext - require Xfixes X11/extensions/Xfixes.h XFixesGetCursorImage -lXfixes +enabled x11grab && +check_header X11/Xlib.h && +check_header X11/extensions/XShm.h && +check_header X11/extensions/Xfixes.h && +check_func XOpenDisplay -lX11 && +check_func XShmCreateImage -lX11 -lXext && +check_func XFixesGetCursorImage -lX11 -lXext -lXfixes + +if ! disabled vaapi; then + check_lib va/va.h vaInitialize -lva && { + check_cpp_condition va/va_version.h "VA_CHECK_VERSION(0,32,0)" || + warn "Please upgrade to VA-API >= 0.32 if you would like full VA-API support."; + } || disable vaapi +fi + +if ! disabled vdpau && enabled vdpau_vdpau_h; then +check_cpp_condition \ + vdpau/vdpau.h "defined VDP_DECODER_PROFILE_MPEG4_PART2_ASP" || + { echolog "Please upgrade to libvdpau >= 0.2 if you would like vdpau support." && + disable vdpau; } fi -check_func_headers "windows.h" CreateDIBSection "$gdigrab_indev_extralibs" - -enabled dxva2api_h && - check_cc < -#include -#include -int main(void) { IDirectXVideoDecoder *o = NULL; IDirectXVideoDecoder_Release(o); return 0; } -EOF - -enabled vaapi && - check_lib va/va.h vaInitialize -lva || - disable vaapi - -enabled vdpau && - check_cpp_condition vdpau/vdpau.h "defined VDP_DECODER_PROFILE_MPEG4_PART2_ASP" || - disable vdpau - -enabled vdpau && enabled xlib && - check_func_headers "vdpau/vdpau.h vdpau/vdpau_x11.h" vdp_device_create_x11 -lvdpau && - prepend ffmpeg_libs $($ldflags_filter "-lvdpau") && - enable vdpau_x11 - -# Funny iconv installations are not unusual, so check it after all flags have been set -disabled iconv || check_func_headers iconv.h iconv || check_lib2 iconv.h iconv -liconv || disable iconv - enabled debug && add_cflags -g"$debuglevel" && add_asflags -g"$debuglevel" +enabled coverage && add_cflags "-fprofile-arcs -ftest-coverage" && add_ldflags "-fprofile-arcs -ftest-coverage" +test -n "$valgrind" && target_exec="$valgrind --error-exitcode=1 --malloc-fill=0x2a --track-origins=yes --leak-check=full --gen-suppressions=all --suppressions=$source_path/tests/fate-valgrind.supp" # add some useful compiler flags if supported check_cflags -Wdeclaration-after-statement check_cflags -Wall +check_cflags -Wno-parentheses +check_cflags -Wno-switch +check_cflags -Wno-format-zero-length check_cflags -Wdisabled-optimization check_cflags -Wpointer-arith check_cflags -Wredundant-decls +check_cflags -Wno-pointer-sign +check_cflags -Wcast-qual check_cflags -Wwrite-strings check_cflags -Wtype-limits check_cflags -Wundef check_cflags -Wmissing-prototypes check_cflags -Wno-pointer-to-int-cast check_cflags -Wstrict-prototypes -check_cflags -Wempty-body enabled extra_warnings && check_cflags -Winline -check_disable_warning(){ - warning_flag=-W${1#-Wno-} - test_cflags $warning_flag && add_cflags $1 -} - -check_disable_warning -Wno-parentheses -check_disable_warning -Wno-switch -check_disable_warning -Wno-format-zero-length -check_disable_warning -Wno-pointer-sign - # add some linker flags check_ldflags -Wl,--warn-common -check_ldflags -Wl,-rpath-link=libpostproc:libswresample:libswscale:libavfilter:libavdevice:libavformat:libavcodec:libavutil:libavresample -enabled rpath && add_ldexeflags -Wl,-rpath,$libdir +check_ldflags -Wl,-rpath-link=libpostproc:libswresample:libswscale:libavfilter:libavdevice:libavformat:libavcodec:libavutil test_ldflags -Wl,-Bsymbolic && append SHFLAGS -Wl,-Bsymbolic -# add some strip flags -# -wN '..@*' is more selective than -x, but not available everywhere. -check_stripflags -wN \'..@*\' || check_stripflags -x - -enabled neon_clobber_test && - check_ldflags -Wl,--wrap,avcodec_open2 \ - -Wl,--wrap,avcodec_decode_audio4 \ - -Wl,--wrap,avcodec_decode_video2 \ - -Wl,--wrap,avcodec_decode_subtitle2 \ - -Wl,--wrap,avcodec_encode_audio2 \ - -Wl,--wrap,avcodec_encode_video2 \ - -Wl,--wrap,avcodec_encode_subtitle \ - -Wl,--wrap,swr_convert \ - -Wl,--wrap,avresample_convert || - disable neon_clobber_test - -enabled xmm_clobber_test && - check_ldflags -Wl,--wrap,avcodec_open2 \ - -Wl,--wrap,avcodec_decode_audio4 \ - -Wl,--wrap,avcodec_decode_video2 \ - -Wl,--wrap,avcodec_decode_subtitle2 \ - -Wl,--wrap,avcodec_encode_audio2 \ - -Wl,--wrap,avcodec_encode_video \ - -Wl,--wrap,avcodec_encode_video2 \ - -Wl,--wrap,avcodec_encode_subtitle \ - -Wl,--wrap,swr_convert \ - -Wl,--wrap,avresample_convert \ - -Wl,--wrap,sws_scale || - disable xmm_clobber_test - echo "X{};" > $TMPV if test_ldflags -Wl,--version-script,$TMPV; then append SHFLAGS '-Wl,--version-script,\$(SUBDIR)lib\$(NAME).ver' @@ -5178,35 +3310,17 @@ EOF fi -if [ -z "$optflags" ]; then - if enabled small; then - optflags=$cflags_size - elif enabled optimizations; then - optflags=$cflags_speed - else - optflags=$cflags_noopt - fi -fi - -check_optflags(){ - check_cflags "$@" - enabled lto && check_ldflags "$@" -} - - -if enabled lto; then - test "$cc_type" != "$ld_type" && die "LTO requires same compiler and linker" - check_cflags -flto - check_ldflags -flto $cpuflags - disable inline_asm_direct_symbol_refs +if [ -n "$optflags" ]; then + add_cflags $optflags +elif enabled small; then + add_cflags $size_cflags +elif enabled optimizations; then + add_cflags $speed_cflags +else + add_cflags $noopt_cflags fi - -check_optflags $optflags -check_optflags -fno-math-errno -check_optflags -fno-signed-zeros - -enabled ftrapv && check_cflags -ftrapv - +check_cflags -fno-math-errno +check_cflags -fno-signed-zeros check_cc -mno-red-zone <= 1400" && - add_cflags -Qansi-alias - # Some inline asm is not compilable in debug - if enabled debug; then - disable ebp_available - disable ebx_available - fi - fi - # msvcrt10 x64 incorrectly enables log2, only msvcrt12 onwards actually has log2. - check_cpp_condition crtversion.h "_VC_CRT_MAJOR_VERSION >= 12" || disable log2 fi -case $as_type in - clang) - add_asflags -Qunused-arguments - ;; -esac - -case $ld_type in - clang) - check_ldflags -Qunused-arguments - ;; -esac - -case $target_os in - osf1) - enabled ccc && add_ldflags '-Wl,-expect_unresolved,*' - ;; - plan9) - add_cppflags -Dmain=plan9_main - ;; -esac - -enable frame_thread_encoder - -enabled asm || { arch=c; disable $ARCH_LIST $ARCH_EXT_LIST; } +enabled_any $THREADS_LIST && enable threads check_deps $CONFIG_LIST \ $CONFIG_EXTRA \ $HAVE_LIST \ $ALL_COMPONENTS \ + $ALL_TESTS \ -enabled threads && ! enabled pthreads && ! enabled atomics_native && die "non pthread threading without atomics not supported, try adding --enable-pthreads or --cpu=i486 or higher if you are on x86" - +enabled asm || { arch=c; disable $ARCH_LIST $ARCH_EXT_LIST; } if test $target_os = "haiku"; then disable memalign disable posix_memalign fi -enabled_all dxva2 dxva2api_cobj CoTaskMemFree && - prepend ffmpeg_libs $($ldflags_filter "-lole32") && - enable dxva2_lib - -! enabled_any memalign posix_memalign aligned_malloc && - enabled simd_align_16 && enable memalign_hack - -# add_dep lib dep -# -> enable ${lib}_deps_${dep} -# -> add $dep to ${lib}_deps only once -add_dep() { - lib=$1 - dep=$2 - enabled "${lib}_deps_${dep}" && return 0 - enable "${lib}_deps_${dep}" - prepend "${lib}_deps" $dep -} - -# merge deps lib components -# merge all ${component}_deps into ${lib}_deps and ${lib}_deps_* -merge_deps() { - lib=$1 - shift - for comp in $*; do - enabled $comp || continue - eval "dep=\"\$${comp}_deps\"" - for d in $dep; do - add_dep $lib $d - done - done -} - -merge_deps libavfilter $FILTER_LIST - -map 'enabled $v && intrinsics=${v#intrinsics_}' $INTRINSICS_LIST - -for thread in $THREADS_LIST; do - if enabled $thread; then - test -n "$thread_type" && - die "ERROR: Only one thread type must be selected." || - thread_type="$thread" - fi -done - -enabled zlib && add_cppflags -DZLIB_CONST - -# conditional library dependencies, in linking order -enabled amovie_filter && prepend avfilter_deps "avformat avcodec" -enabled aresample_filter && prepend avfilter_deps "swresample" -enabled asyncts_filter && prepend avfilter_deps "avresample" -enabled atempo_filter && prepend avfilter_deps "avcodec" -enabled ebur128_filter && enabled swresample && prepend avfilter_deps "swresample" -enabled elbg_filter && prepend avfilter_deps "avcodec" -enabled mcdeint_filter && prepend avfilter_deps "avcodec" -enabled movie_filter && prepend avfilter_deps "avformat avcodec" -enabled mp_filter && prepend avfilter_deps "avcodec" -enabled pan_filter && prepend avfilter_deps "swresample" -enabled pp_filter && prepend avfilter_deps "postproc" -enabled removelogo_filter && prepend avfilter_deps "avformat avcodec swscale" -enabled resample_filter && prepend avfilter_deps "avresample" -enabled sab_filter && prepend avfilter_deps "swscale" -enabled scale_filter && prepend avfilter_deps "swscale" -enabled showspectrum_filter && prepend avfilter_deps "avcodec" -enabled smartblur_filter && prepend avfilter_deps "swscale" -enabled subtitles_filter && prepend avfilter_deps "avformat avcodec" - -enabled lavfi_indev && prepend avdevice_deps "avfilter" - -enabled opus_decoder && prepend avcodec_deps "swresample" - -expand_deps(){ - lib_deps=${1}_deps - eval "deps=\$$lib_deps" - append $lib_deps $(map 'eval echo \$${v}_deps' $deps) - unique $lib_deps -} - -#we have to remove gpl from the deps here as some code assumes all lib deps are libs -postproc_deps="$(filter_out 'gpl' $postproc_deps)" - -map 'expand_deps $v' $LIBRARY_LIST +! enabled_any memalign posix_memalign malloc_aligned && + enabled_any $need_memalign && enable memalign_hack echo "install prefix $prefix" echo "source path $source_path" echo "C compiler $cc" -echo "C library $libc_type" -if test "$host_cc" != "$cc"; then - echo "host C compiler $host_cc" - echo "host C library $host_libc_type" -fi echo "ARCH $arch ($cpu)" if test "$build_suffix" != ""; then echo "build suffix $build_suffix" @@ -5441,44 +3417,36 @@ if enabled x86; then echo "${yasmexe} ${yasm-no}" echo "MMX enabled ${mmx-no}" - echo "MMXEXT enabled ${mmxext-no}" + echo "MMX2 enabled ${mmx2-no}" echo "3DNow! enabled ${amd3dnow-no}" echo "3DNow! extended enabled ${amd3dnowext-no}" echo "SSE enabled ${sse-no}" echo "SSSE3 enabled ${ssse3-no}" echo "AVX enabled ${avx-no}" - echo "XOP enabled ${xop-no}" - echo "FMA3 enabled ${fma3-no}" - echo "FMA4 enabled ${fma4-no}" - echo "i686 features enabled ${i686-no}" + echo "CMOV enabled ${cmov-no}" echo "CMOV is fast ${fast_cmov-no}" echo "EBX available ${ebx_available-no}" echo "EBP available ${ebp_available-no}" fi -if enabled aarch64; then - echo "NEON enabled ${neon-no}" - echo "VFP enabled ${vfp-no}" -fi if enabled arm; then echo "ARMv5TE enabled ${armv5te-no}" echo "ARMv6 enabled ${armv6-no}" echo "ARMv6T2 enabled ${armv6t2-no}" - echo "VFP enabled ${vfp-no}" + echo "ARM VFP enabled ${armvfp-no}" + echo "IWMMXT enabled ${iwmmxt-no}" echo "NEON enabled ${neon-no}" - echo "THUMB enabled ${thumb-no}" fi if enabled mips; then - echo "MIPS FPU enabled ${mipsfpu-no}" - echo "MIPS32R2 enabled ${mips32r2-no}" - echo "MIPS DSP R1 enabled ${mipsdspr1-no}" - echo "MIPS DSP R2 enabled ${mipsdspr2-no}" + echo "MMI enabled ${mmi-no}" fi if enabled ppc; then echo "AltiVec enabled ${altivec-no}" echo "PPC 4xx optimizations ${ppc4xx-no}" - echo "PPC VSX optimizations ${vsx-no}" echo "dcbzl available ${dcbzl-no}" fi +if enabled sparc; then + echo "VIS enabled ${vis-no}" +fi echo "debug symbols ${debug-no}" echo "strip symbols ${stripping-no}" echo "optimize for size ${small-no}" @@ -5491,24 +3459,53 @@ echo "threading support ${thread_type-no}" echo "safe bitstream reader ${safe_bitstream_reader-no}" echo "SDL support ${sdl-no}" -echo "opencl enabled ${opencl-no}" -echo "texi2html enabled ${texi2html-no}" -echo "perl enabled ${perl-no}" -echo "pod2man enabled ${pod2man-no}" -echo "makeinfo enabled ${makeinfo-no}" -echo "makeinfo supports HTML ${makeinfo_html-no}" -test -n "$random_seed" && - echo "random seed ${random_seed}" -echo - -echo "External libraries:" -print_enabled '' $EXTERNAL_LIBRARY_LIST | print_3_columns +echo "Sun medialib support ${mlib-no}" +echo "libdxva2 enabled ${dxva2-no}" +echo "libva enabled ${vaapi-no}" +echo "libvdpau enabled ${vdpau-no}" +echo "AVISynth enabled ${avisynth-no}" +echo "frei0r enabled ${frei0r-no}" +echo "gnutls enabled ${gnutls-no}" +echo "libaacplus enabled ${libaacplus-no}" +echo "libass enabled ${libass-no}" +echo "libcdio support ${libcdio-no}" +echo "libcelt enabled ${libcelt-no}" +echo "libdc1394 support ${libdc1394-no}" +echo "libdirac enabled ${libdirac-no}" +echo "libfaac enabled ${libfaac-no}" +echo "libgsm enabled ${libgsm-no}" +echo "libmodplug enabled ${libmodplug-no}" +echo "libmp3lame enabled ${libmp3lame-no}" +echo "libnut enabled ${libnut-no}" +echo "libopencore-amrnb support ${libopencore_amrnb-no}" +echo "libopencore-amrwb support ${libopencore_amrwb-no}" +echo "libopencv support ${libopencv-no}" +echo "libopenjpeg enabled ${libopenjpeg-no}" +echo "libpulse enabled ${libpulse-no}" +echo "librtmp enabled ${librtmp-no}" +echo "libschroedinger enabled ${libschroedinger-no}" +echo "libspeex enabled ${libspeex-no}" +echo "libstagefright-h264 enabled ${libstagefright_h264-no}" +echo "libtheora enabled ${libtheora-no}" +echo "libutvideo enabled ${libutvideo-no}" +echo "libv4l2 enabled ${libv4l2-no}" +echo "libvo-aacenc support ${libvo_aacenc-no}" +echo "libvo-amrwbenc support ${libvo_amrwbenc-no}" +echo "libvorbis enabled ${libvorbis-no}" +echo "libvpx enabled ${libvpx-no}" +echo "libx264 enabled ${libx264-no}" +echo "libxavs enabled ${libxavs-no}" +echo "libxvid enabled ${libxvid-no}" +echo "openal enabled ${openal-no}" +echo "openssl enabled ${openssl-no}" +echo "zlib enabled ${zlib-no}" +echo "bzlib enabled ${bzlib-no}" echo for type in decoder encoder hwaccel parser demuxer muxer protocol filter bsf indev outdev; do echo "Enabled ${type}s:" eval list=\$$(toupper $type)_LIST - print_enabled '_*' $list | print_3_columns + print_enabled '_*' $list | sort | pr -r -3 -t echo done @@ -5525,13 +3522,13 @@ echo "License: $license" -echo "Creating config.mak, config.h, and doc/config.texi..." +echo "Creating config.mak and config.h..." -test -e Makefile || echo "include $source_path/Makefile" > Makefile +test -e Makefile || $ln_s "$source_path/Makefile" . enabled stripping || strip="echo skipping strip" -config_files="$TMPH config.mak doc/config.texi" +config_files="$TMPH config.mak" cat > config.mak <> config.mak eval echo "${lcname}_VERSION_MAJOR=\$${name}_VERSION_MAJOR" >> config.mak - eval echo "${lcname}_VERSION_MINOR=\$${name}_VERSION_MINOR" >> config.mak } -map 'get_version $v' $LIBRARY_LIST - -map 'eval echo "${v}_FFLIBS=\$${v}_deps" >> config.mak' $LIBRARY_LIST - -print_program_libs(){ - eval "program_libs=\$${1}_libs" - eval echo "LIBS-${1}=${program_libs}" >> config.mak -} - -map 'print_program_libs $v' $PROGRAM_LIST +get_version LIBAVCODEC libavcodec/version.h +get_version LIBAVDEVICE libavdevice/avdevice.h +get_version LIBAVFILTER libavfilter/version.h +get_version LIBAVFORMAT libavformat/version.h +get_version LIBAVUTIL libavutil/avutil.h +get_version LIBPOSTPROC libpostproc/postprocess.h +get_version LIBSWRESAMPLE libswresample/swresample.h +get_version LIBSWSCALE libswscale/swscale.h cat > $TMPH <>$TMPH - test -n "$malloc_prefix" && echo "#define MALLOC_PREFIX $malloc_prefix" >>$TMPH +if enabled small || disabled optimizations; then + echo "#undef av_always_inline" >> $TMPH + if enabled small; then + echo "#define av_always_inline inline" >> $TMPH + else + echo "#define av_always_inline av_unused" >> $TMPH + fi +fi + if enabled yasm; then append config_files $TMPASM printf '' >$TMPASM fi -enabled getenv || echo "#define getenv(x) NULL" >> $TMPH - - -mkdir -p doc -echo "@c auto-generated by configure" > doc/config.texi - print_config ARCH_ "$config_files" $ARCH_LIST print_config HAVE_ "$config_files" $HAVE_LIST print_config CONFIG_ "$config_files" $CONFIG_LIST \ $CONFIG_EXTRA \ $ALL_COMPONENTS \ +cat >>config.mak <> $TMPH echo "endif # FFMPEG_CONFIG_MAK" >> config.mak @@ -5729,34 +3697,32 @@ #define AVUTIL_AVCONFIG_H EOF +test "$postproc_version" != current && cat >> $TMPH <> $TMPH cp_if_changed $TMPH libavutil/avconfig.h -if test -n "$WARNINGS"; then - printf "\n$WARNINGS" - enabled fatal_warnings && exit 1 -fi +test -n "$WARNINGS" && printf "\n$WARNINGS" # build pkg-config files -lib_version(){ - eval printf "\"lib${1}${build_suffix} >= \$LIB$(toupper ${1})_VERSION, \"" -} - pkgconfig_generate(){ - name=$1 - shortname=${name#lib}${build_suffix} - comment=$2 - version=$3 - libs=$4 - requires=$(map 'lib_version $v' $(eval echo \$${name#lib}_deps)) - requires=${requires%, } - enabled ${name#lib} || return 0 - mkdir -p $name - cat < $name/$name${build_suffix}.pc +name=$1 +shortname=${name#lib}${build_suffix} +comment=$2 +version=$3 +libs=$4 +requires=$5 +enabled ${name#lib} || return 0 +mkdir -p $name +cat < $name/$name.pc prefix=$prefix exec_prefix=\${prefix} libdir=$libdir @@ -5768,36 +3734,31 @@ Requires: $(enabled shared || echo $requires) Requires.private: $(enabled shared && echo $requires) Conflicts: -Libs: -L\${libdir} $(enabled rpath && echo "-Wl,-rpath,\${libdir}") -l${shortname} $(enabled shared || echo $libs) +Libs: -L\${libdir} -l${shortname} $(enabled shared || echo $libs) Libs.private: $(enabled shared && echo $libs) Cflags: -I\${includedir} EOF - -mkdir -p doc/examples/pc-uninstalled -includedir=${source_path} -[ "$includedir" = . ] && includedir="\${pcfiledir}/../../.." - cat < doc/examples/pc-uninstalled/$name.pc +cat < $name/$name-uninstalled.pc prefix= exec_prefix= -libdir=\${pcfiledir}/../../../$name -includedir=${includedir} +libdir=\${pcfiledir} +includedir=${source_path} Name: $name Description: $comment Version: $version Requires: $requires Conflicts: -Libs: -L\${libdir} -Wl,-rpath,\${libdir} -l${shortname} $(enabled shared || echo $libs) +Libs: \${libdir}/${LIBPREF}${shortname}${LIBSUF} $libs Cflags: -I\${includedir} EOF } -pkgconfig_generate libavutil "FFmpeg utility library" "$LIBAVUTIL_VERSION" "$LIBRT $LIBM" -pkgconfig_generate libavcodec "FFmpeg codec library" "$LIBAVCODEC_VERSION" "$extralibs" -pkgconfig_generate libavformat "FFmpeg container format library" "$LIBAVFORMAT_VERSION" "$extralibs" -pkgconfig_generate libavdevice "FFmpeg device handling library" "$LIBAVDEVICE_VERSION" "$extralibs" -pkgconfig_generate libavfilter "FFmpeg audio/video filtering library" "$LIBAVFILTER_VERSION" "$extralibs" -pkgconfig_generate libpostproc "FFmpeg postprocessing library" "$LIBPOSTPROC_VERSION" "" -pkgconfig_generate libavresample "Libav audio resampling library" "$LIBAVRESAMPLE_VERSION" "$LIBM" -pkgconfig_generate libswscale "FFmpeg image rescaling library" "$LIBSWSCALE_VERSION" "$LIBM" -pkgconfig_generate libswresample "FFmpeg audio resampling library" "$LIBSWRESAMPLE_VERSION" "$LIBM" +pkgconfig_generate libavutil "FFmpeg utility library" "$LIBAVUTIL_VERSION" "$LIBM" +pkgconfig_generate libavcodec "FFmpeg codec library" "$LIBAVCODEC_VERSION" "$extralibs" "libavutil = $LIBAVUTIL_VERSION" +pkgconfig_generate libavformat "FFmpeg container format library" "$LIBAVFORMAT_VERSION" "$extralibs" "libavcodec = $LIBAVCODEC_VERSION" +pkgconfig_generate libavdevice "FFmpeg device handling library" "$LIBAVDEVICE_VERSION" "$extralibs" "libavformat = $LIBAVFORMAT_VERSION" +pkgconfig_generate libavfilter "FFmpeg video filtering library" "$LIBAVFILTER_VERSION" "$extralibs" +pkgconfig_generate libpostproc "FFmpeg postprocessing library" "$LIBPOSTPROC_VERSION" "" "libavutil = $LIBAVUTIL_VERSION" +pkgconfig_generate libswscale "FFmpeg image rescaling library" "$LIBSWSCALE_VERSION" "$LIBM" "libavutil = $LIBAVUTIL_VERSION" +pkgconfig_generate libswresample "FFmpeg audio rescaling library" "$LIBSWRESAMPLE_VERSION" "$LIBM" "libavutil = $LIBAVUTIL_VERSION" diff -Nru ffmpeg-2.5/COPYING.LGPLv2.1 ffmpeg-0.10.12/COPYING.LGPLv2.1 --- ffmpeg-2.5/COPYING.LGPLv2.1 2014-12-01 00:21:37.000000000 +0000 +++ ffmpeg-0.10.12/COPYING.LGPLv2.1 2014-03-10 19:10:11.000000000 +0000 @@ -500,3 +500,5 @@ Ty Coon, President of Vice That's all there is to it! + + diff -Nru ffmpeg-2.5/CREDITS ffmpeg-0.10.12/CREDITS --- ffmpeg-2.5/CREDITS 2014-12-01 00:21:37.000000000 +0000 +++ ffmpeg-0.10.12/CREDITS 2014-03-07 03:18:50.000000000 +0000 @@ -1,6 +1,55 @@ -See the Git history of the project (git://source.ffmpeg.org/ffmpeg) to -get the names of people who have contributed to FFmpeg. +This file contains the names of some of the people who have contributed to +FFmpeg. The names are sorted alphabetically by last name. As this file is +currently quite outdated and git serves as a much better tool for determining +authorship, it remains here for historical reasons only. -To check the log, you can type the command "git log" in the FFmpeg -source directory, or browse the online repository at -http://source.ffmpeg.org. +DĂ©nes Balatoni +Michel Bardiaux +Fabrice Bellard +Patrice Bensoussan +Alex Beregszaszi +BERO +Thilo Borgmann +Mario Brito +Ronald Bultje +Alex Converse +Maarten Daniels +Reimar Doeffinger +Tim Ferguson +Brian Foley +Arpad Gereoffy +Philip Gladstone +Vladimir Gneushev +Roine Gustafsson +David Hammerton +Wolfgang Hesseler +Marc Hoffman +Falk Hueffner +AurĂ©lien Jacobs +Steven Johnson +Zdenek Kabelac +Robin Kay +Todd Kirby +Nick Kurshev +Benjamin Larsson +LoĂ¯c Le Loarer +Daniel Maas +Mike Melanson +Loren Merritt +Jeff Muizelaar +Michael Niedermayer +François Revol +Peter Ross +MĂ¥ns RullgĂ¥rd +Stefano Sabatini +Roman Shaposhnik +Oded Shimon +Dieter Shirley +Konstantin Shishkov +Juan J. Sierralta +Ewald Snel +Sascha Sommer +Leon van Stuivenberg +Roberto Togni +Lionel Ulmer +Reynaldo Verdejo diff -Nru ffmpeg-2.5/debian/changelog ffmpeg-0.10.12/debian/changelog --- ffmpeg-2.5/debian/changelog 2014-12-06 18:03:01.000000000 +0000 +++ ffmpeg-0.10.12/debian/changelog 2015-02-21 06:16:29.000000000 +0000 @@ -1,188 +1,2196 @@ -ffmpeg (7:2.5-1) unstable; urgency=medium +ffmpeg (7:0.10.12-0yavdr0~precise) precise; urgency=medium + + * rebuild for yaVDR + + -- Alexander Grothe Sat, 21 Feb 2015 07:15:31 +0100 + +ffmpeg (7:0.10.12-1~precise1) precise; urgency=low + + * Release to precise. + + -- Jon Severinsson Sat, 26 Apr 2014 08:00:00 +0200 + +ffmpeg (7:0.10.12-1) unstable; urgency=medium + + * Import upstream version 0.10.12 + - Drop 05-fix.713856.patch, applied upstream. + + -- Jon Severinsson Sat, 26 Apr 2014 08:00:00 +0200 + +ffmpeg (7:0.10.11-1) stable; urgency=low + + * Import upstream version 0.10.11 + + -- Jon Severinsson Thu, 06 Feb 2014 12:00:00 +0100 + +ffmpeg (7:0.10.9-1) stable; urgency=low + + * Import upstream version 0.10.9 + + -- Jon Severinsson Thu, 03 Oct 2013 18:00:00 +0200 + +ffmpeg (7:0.10.8-1) stable; urgency=low + + * Import upstream version 0.10.7 + * Rename source package. + * Update Maintainer field. + * Package ffmpeg rather than libav. + * Tighten dependencies to force ffmpeg, not libav, packages. + * Improve Description for some packages. + * Add libav-extra-dbg transitional package. + * Add libswresample0 and libswresample-dev binary packages. + * Introduce the libavcodec-extra meta-package + * Add missing dependency to ffmpeg-dbg. + * Have libav-tools and libavfilter2 suggest frei0r-plugins. + * Revert soname change in ffmpeg Replaces due to moving presets back to ffmpeg. + * Add dpkg (>= 1.15.6~) to Pre-Depends to ensure xz-compatibility. + * Drop 04-ffmpeg-warning-change.patch. + * Refresh 05-fix.713856.patch. + * Do not compile with -Werror=format-security. + * Re-enable --disable-stripping. + * Update list of optional dependencies. + * Only build executables and documentation once. + * Remove get-orig-source rule, it has no meaning anymore. + * Update files to install. + * Fix parallell build. + * Update source package section in README.Debian. + * Update list of GPL files in copyright file. + + -- Jon Severinsson Sun, 01 Sep 2013 18:00:00 +0200 + +libav (6:0.8.8-1) unstable; urgency=low + + * Imported Upstream version 0.8.7, new releases fixes a number of + security relevant patches. + * backport patch from upstream to make samplefmt auto-aling buffers + (Closes: #713856) + + -- Reinhard Tartler Fri, 12 Jul 2013 22:00:28 +0200 + +libav (6:0.8.7-1) unstable; urgency=medium + + * Imported Upstream version 0.8.7, new releases fixes: + - wav: Always seek to an even offset, Bug #500, LP: #1174737 + - A number of further security relevant patches. + + -- Reinhard Tartler Mon, 20 May 2013 11:04:00 +0200 + +libav (6:0.8.6-1) unstable; urgency=low + + * Imported Upstream version 0.8.6, new releases fixes: + - h264: check for luma and chroma bit depth being equal (CVE-2013-2277) + - iff: validate CMAP palette size (CVE-2013-2495) + - msrledec: convert to bytestream2 API and add proper bounds checking (CVE-2013-2496) + - vorbisdec: Error on bark_map_size equal to 0 (CVE-2013-0894) + - Thus, closes: #703200 + + -- Reinhard Tartler Sun, 24 Mar 2013 07:35:51 +0100 + +libav (6:0.8.5-1) unstable; urgency=low + + * New upstream security/bugfix release. New releases fixes + (bug numbers reference http://bugzilla.libav.org, Closes: #694483) + - Indeo 4 (CVE-2012-2791) + - VP5/VP6 (CVE-2012-2783) + - Indeo 3 (CVE-2012-2804) + - MPEG-1/2 (CVE-2012-2803) + - MP3 (CVE-2012-2797) + - AAC (CVE-2012-5144) + - AC-3 (CVE-2012-2802) + - AVS (CVE-2012-2801) + - DFA (CVE-2012-2798) + - ID3v2 (Bug 395) + - Serious Memory leaks on broken Ogg files + * drop recordshow script. This clearly undermaintained script has + unclear copyright status and is unlikely to work properly anyway. + + -- Reinhard Tartler Sun, 13 Jan 2013 11:56:59 +0100 + +libav (6:0.8.4-1) unstable; urgency=low + + * New upstream security/bugfix release. New release fixes: + (bug numbers reference http://bugzilla.libav.org, Closes: #688847) + - h264 (Bug 118), vc1dec (CVE-2012-2796), sipr, bmpdec (bug 367), alsdec + (CVE-2012-2775), rv34/rv40 (CVE-2012-2772), indeo3/indeo4 + (CVE-2012-2776, CVE-2012-2779, CVE-2012-2787, CVE-2012-2794, + CVE-2012-2800), vorbisenc, vorbisdec (Bug 277), snow, ac3dec + (CVE-2012-2802), avsdec (CVE-2012-2801), dfa (CVE-2012-2786, + CVE-2012-2798), lagrith (CVE-2012-2793), wmaprodec (CVE-2012-2789 & + Bug 327), avidec (CVE-2012-2788, CVE-2012-2790), cavsdec + (CVE-2012-2777, CVE-2012-2784), wav (Bug 379), yuff4mpeg (Bug 373), + mpegaudio, tiffenc, smacker (Bug 265). + - smaller bug fixes in avconv (Bug 352) + - fix lt() and lte() in function evaluator + - fix segfault in avformat_open_input() + - fix segfault in golomb decoder (bug 310) + - fix segfault (double free) in libavfilter + - convert dfa decoder to bytestream2 API to protect from overreads + - bugfix in vf_pad/scale filter (Bug 203 & 245) + - lavc: remove stats_out and stats_in from the options table. + (Bug 380, Closes: #690726) + * Drop patches applied upstream. + + -- Reinhard Tartler Mon, 22 Oct 2012 20:57:08 +0200 + +libav (6:0.8.3-7) unstable; urgency=low + + [ Fabian Greffrath ] + * Fix generation of shlibs file not only for libavcodec*, but for all the + other library packages as well. Really closes: #679542 + * Use xz compression for binary packages, thanks Ansgar Burchardt + (Closes: #683895). + + [ Reinhard Tartler ] + * use EPOCH macro in SHLIBS_VERSION + * Drop the package 'libav-regular-dbg'. It was not included in squeeze. + + -- Reinhard Tartler Sat, 25 Aug 2012 11:08:48 +0200 + +libav (6:0.8.3-6) unstable; urgency=low + + * Clarify the changes in the 6:0.8.3-5 upload, as discussed in bug + #683247. + * Make ffmpeg-dbg 'arch: all' for consistency with the libav-extra-dbg + package. + * Fix generation of shlibs file. (Closes: #679542) + Wrong make variables where used for the shlibs generation. + + -- Reinhard Tartler Sat, 04 Aug 2012 09:03:54 +0200 + +libav (6:0.8.3-5) unstable; urgency=low + + [ Reinhard Tartler ] + * Bug fix: "Multi-Arch: foreign libraries", thanks to Stepan Golosunov. + Make the transitional libavfoo-extra-NN packages 'arch: all' and + remove the 'Multi-Arch: foreign' fields to avoid that the dependency + can be satisfied by packages of other architectures, which would break + applications. Closes: #680613 + * Make libav-extra-dbg 'arch: all'. As empty, transitional package + without strict dependencies, we can safely ship it as arch:all + package. + + [ Fabian Greffrath ] + * Mention qt-faststart in the long description (Closes: #681491). + * Install all debug symbols into libav-dbg (Closes: #680602). + * Do not run doxygen if it is not installed. This does not change anything + for regular builds, but helps with bootstrapping the package to new + architectures that may not have doxygen available yet. + * Fix up debian/changelog and tighten dependencies. + * Do not declare "ffmpeg" as virtual package (provided by libav-tools). + Instead, we provide it as transitional package for libav-tools. Note + the next upstream version will no longer provide neither an 'ffmpeg' + package, nor a /usr/bin/ffmpeg binary. This means that front-end + applications in Debian that previously used this binary needs to be + ported to /usr/bin/avconv for jessie. + + -- Reinhard Tartler Sun, 15 Jul 2012 23:13:42 +0200 + +libav (6:0.8.3-4) unstable; urgency=low + + * Declare a 'Breaks' relationship against mplayer, Closes: #671934 + + -- Reinhard Tartler Tue, 26 Jun 2012 08:46:42 +0200 + +libav (6:0.8.3-3) unstable; urgency=low + + * Install the shared flavor last; the binaries from the optimized flavor(s) + would overwrite the ones from the shared baseline flavor causing SIGILL; + closes: #657885. + * control/Uploaders: update my email address + + -- LoĂ¯c Minier Mon, 25 Jun 2012 21:21:24 +0200 + +libav (6:0.8.3-2) unstable; urgency=low + + [ Fabian Greffrath ] + * Clarify relations between libavcodec53 and libavcodec-extra-53 + in debian/control. + * Use the cond_enable() macro for all additional features in debian/confflags. + * Tidy up and sort configuration flags. + * Add a debian/README.source file that describes how to rebuild libav + with a reduced feature set in order to avoid circular build-dependencies + for bootstrapping. + * Restrict Build-Depends to "yasm [any-amd64 any-i386]" + and explicitly disable it if not found. + + [ Reinhard Tartler ] + * add patch from upstream to fix playback of Canon AVHCD movies. + (Fixes: LP: #937561) + * fix location in ffmpeg.NEWS file + * add dependency on libavcodec53 to libav-dbg + * add Pre-Depend on dpkg to libav-tools to ensure smooth updates + * {ffmpeg,libav-tools}.install: make files to install more explicit + + -- Reinhard Tartler Mon, 25 Jun 2012 19:06:49 +0200 + +libav (6:0.8.3-1) unstable; urgency=medium + + [ Andres Mejia ] + * Update libav-doc doc base. (Closes: #674139) + + [ Reinhard Tartler ] + * New upstream release 0.8.3: + - Several bugs and crashes have been fixed in the following codecs: PNG, + Electronic Arts TQI, H.264 (CVE-2012-0851) and H.263 (CVE-2011-3937) + * Raising severity because of security issues. + + -- Reinhard Tartler Sat, 09 Jun 2012 13:25:31 +0200 + +libav (6:0.8.2-2) unstable; urgency=low + + * Revert "temporarily disable opencv to work around dependency troubles" + * Simplify internal dependencies (Closes: #672791) + + -- Reinhard Tartler Mon, 14 May 2012 21:37:59 +0200 + +libav (6:0.8.2-1) unstable; urgency=medium + + * New upstream release: + - Several bugs and crashes have been fixed in the following codecs: AAC, + APE, H.263, H.264, Indeo 4, Mimic, MJPEG, Motion Pixels Video, RAW, + TTA, VC1, VQA, WMA Voice, vqavideo (CVE-2012-0947). + - Several bugs and crashes have been fixed in the following formats: + ASF, ID3v2, MOV, xWMA + - This release additionally updates the following codecs to the + bytestream2 API, and therefore benefit from additional overflow + checks: truemotion2, utvideo, vqavideo + * drop 02-fix-avpreset-extension.patch, applied upstream + * Revert "Revert "temporarily disable opencv to work around dependency + troubles"" (Closes: #671302) + * Bumped urgency because of security issue. + + -- Reinhard Tartler Sat, 05 May 2012 11:08:44 +0200 + +libav (6:0.8.1-7) unstable; urgency=low + + * Fix build for hurd. Thanks to Samuel Thibault for patch. (Closes: #613034) + (Closes: #671038) + * Properly migrate /etc/ffserver.conf to /etc/avserver.conf. + (Closes: #660786) + * Renable opencv support. + + -- Andres Mejia Tue, 01 May 2012 21:33:13 -0400 + +libav (6:0.8.1-6) unstable; urgency=low + + * Fix epoch in strict internal dependencies. Closes: #670861 + * Temporarily disable opencv to work around dependency trouble + + -- Reinhard Tartler Mon, 30 Apr 2012 08:14:20 +0200 + +libav (6:0.8.1-5) unstable; urgency=low + + [ Andres Mejia ] + * Fix issue with file not being multiarch compatible. (Closes: #669988) + + [ Reinhard Tartler ] + * Bump epoch to fix messed upload to unstable (Closes: #670762) + + -- Reinhard Tartler Sun, 29 Apr 2012 10:30:26 +0200 + +libav (5:0.8.1-4) unstable; urgency=low + + * Use a Provides field to provide transitional packages instead of Conflicts. + (Closes: #666401) + * Have both libavcodec and libavcodec-extra package conflict with each other. + + -- Andres Mejia Fri, 30 Mar 2012 10:15:50 -0400 + +libav (5:0.8.1-3) unstable; urgency=low + + * Separate the ffmpeg program into the transitional package. + * Change ffmpeg warning so that it's clearer the program is + deprecated (LP: #939863) + + -- Andres Mejia Thu, 29 Mar 2012 13:13:01 -0400 + +libav (5:0.8.1-2) experimental; urgency=low + + [ Andres Mejia ] + * Merge libav-extra packages to libav. (Closes: #658084) + * Provide only libavcodec-extra package, the other packages are unnecessary. + * Remove libav-source package. No longer necessary. + * Remove dependencies and suggests of FAAD, no longer needed. + * Set Enhances field and update package description for libavcodec-extra + package. (Closes: #653451) + * Fix issue with installation of debug symbols. (Closes: #642798) + + [ Fabian Greffrath ] + * Mention license impact in libavcodec-extra-53's package description. + + -- Andres Mejia Wed, 21 Mar 2012 15:52:58 -0400 + +libav (4:0.8.1-1) unstable; urgency=medium + + [ Reinhard Tartler ] + * Bump shlibs (Closes: #662793) + * force upgrades of older libavcodec-extra-53 packages + * drop all post-0.8 patches, applied upstream + * bump standards version, no changes needed + * Imported Upstream version 0.8.1 + * Bumped urgency to medium because of included security fixes: + CVE-2012-0848, CVE-2012-0853, CVE-2012-0858, CVE-2011-3929, + CVE-2011-3936, CVE-2011-3937, CVE-2011-3940, CVE-2011-3945, + CVE-2011-3947, CVE-2011-3951, CVE-2011-3952 + + [ Andres Mejia ] + * Enable frei0r support. + * Enable tls support through gnutls. + * Enable libcdio support. + * Enable opencv support. + * Enable pulse support. + * Enable vaapi for all architectures. + + -- Reinhard Tartler Mon, 19 Mar 2012 08:39:18 +0100 + +libav (4:0.8-2) unstable; urgency=low + + [ Reinhard Tartler ] + * confflags: use --enable-pic instead of manually messing with cflags + * Import post 0.8 patches + * Bugfix: expects wrong preset file extension (Closes: #660978) + Thanks to Laurento for spotting this. + + [ Alessio Treglia ] + * Fix maintainer's name. + + [ Fabian Greffrath ] + * Enable hardened build flags through dpkg-buildflags (Closes: #658929). + * Fix format string vulnerability detected by -Wformat-security. + * Filter out system-wide setting of -Bsymbolic-functions to avoid FTBFS. + * Set CPPFLAGS separately. + + -- Reinhard Tartler Mon, 05 Mar 2012 19:47:54 +0100 + +libav (4:0.8-1) unstable; urgency=medium + + [ Fabian Greffrath ] + * Remove the last remainders of explicit quilt usage in + pre-3.0 source formats. + * Urgency bumped to medium because of RC bugs and unfixed security + issues in testing. + * Imported Upstream version 0.8 + - Bug fix: "Segfaults when using vaapi", thanks to Andrey Rahmatullin + (Closes: #656572). That crash is most likely caused by auto-enabling + multi-threading. This behavior got reverted just before this release. + * Drop post-0.8b2 patches + * Bump shlibs for addition of new audio encoding API + * Extend package descriptions to include a note what libav actually is + * debian/watch: fix mangling of '_' characters. + * drop unused lintian override in debian/control + * provide compatibility links for ffserver, ffplay and ffprobe + (Closes: #655683) + + -- Reinhard Tartler Sun, 22 Jan 2012 21:24:22 +0100 + +libav (4:0.8~beta2-3) unstable; urgency=low + + [ Fabian Greffrath ] + * Fix debian/*.install file generation on archs (e.g. armel) that build + more than only one optimized shared library (Closes: #656184). + + [ Reinhard Tartler ] + * add additional post-0.8b2 patches + + -- Reinhard Tartler Tue, 17 Jan 2012 22:31:32 +0100 + +libav (4:0.8~beta2-2) unstable; urgency=low + + [ Fabian Greffrath ] + * Properly set the library paths for multiarch and shared libs in + debian/*.install instead of using brace expansion and asterisks. + + [ Reinhard Tartler ] + * Fix upgrade path from earlier versions of the 'ffmpeg' package + (Closes: #655917) + * Sync post v0.8b2 commits + * extend package description to include a note what libav actuall is + * place transitional packages in oldlibs/extra section to assist package + managers + * drop unused lintian override in debian/control + + -- Reinhard Tartler Sun, 15 Jan 2012 16:19:41 +0100 + +libav (4:0.8~beta2-1) unstable; urgency=low + + * New Upstream version 0.8~beta2: + - Confirm that this release does not inhibit the following security issues: + - DoS in MKV demuxer, + - CVE-2011-3893, Closes: #654572 + - Double free vuln in the Theora decoder, + - CVE-2011-3892, Closes: #654571 + - heap-based buffer overflow in vorbis decoder: + - CVE-2011-3895, Closes: #654573 + - Closes: #654534 + - Bug fix: "libswscale crashes when upscaling pictures using + hyscale_fast2, MMX variant on amd64 with gcc-4.6 and later", + thanks to Harald Dunkel (Closes: #647824). + - Clarify that libavutil/avutil.h doesn't include mathematics.h any more in + APIchanges documentation. Thanks: Jonathan Nieder , + Closes: #654303 + * Disable configuration mismatch warnings (Closes: #619530) + * Rename package libav to libav-tools (Closes: #654984) + * Refresh patches + + -- Reinhard Tartler Wed, 11 Jan 2012 16:45:28 +0100 + +libav (4:0.8~beta1-2) experimental; urgency=low + + * fix build failures by dropping unnecessary configure flags + + -- Reinhard Tartler Sun, 01 Jan 2012 08:48:06 +0100 + +libav (4:0.8~beta1-1) experimental; urgency=low + + * New upstream release. + - too many changes to list, please refer to upstream's Changelog file + for details + + -- Reinhard Tartler Fri, 30 Dec 2011 23:45:34 +0100 + +libav (4:0.7.3-2) unstable; urgency=low + + * forcefully disable v4l on kfreebsd, fixes an FTBFS on kFreeBSD + + -- Reinhard Tartler Mon, 26 Dec 2011 10:50:36 +0100 + +libav (4:0.7.3-1) unstable; urgency=high + + * New upstream version. Includes fixes for: + - VP3 decoder (CVE-2011-4352) + - svq1 decoder (CVE-2011-4579) + - DoS in the VP5/VP6 decoders (CVE-2011-4353) + - QDM2 decoder (CVE-2011-4351) + - Sierra VMD decoder (CVE-2011-4364) + * Bumped urgency. + * Enable drawtext filter (Closes: #647132) + * Imported Upstream version 0.7.3 + * Bump shlibs for backported avcodec_open2() API + + -- Reinhard Tartler Sun, 25 Dec 2011 22:04:54 +0100 + +libav (4:0.7.2-1) unstable; urgency=low + + * New upstream release: 0.7.2 + - Security focused release + - Includes Matroska reallocation checks, Closes: #643859 + * Drop all post 0.7.1 patches, included upstream. + + -- Reinhard Tartler Fri, 30 Sep 2011 21:01:25 +0200 + +libav (4:0.7.1-7) unstable; urgency=medium + + * Add 63 (!) additional post 0.7.1 patches + - all scheduled for next upstream point release + - Fix missing CAVS boundary checks, Closes: #641478, Fixes: CVE-2011-3362 + * Medium urgency for fixing a security issue + * Drop debian/patches/03-fix-movrel.patch, better patch upstream + * prefer libtiff4 over libtiff5 for now + + -- Reinhard Tartler Mon, 26 Sep 2011 22:24:47 +0200 + +libav (4:0.7.1-6) unstable; urgency=low + + * Convert package to include multiarch support. + + -- Andres Mejia Fri, 23 Sep 2011 22:03:39 -0400 + +libav (4:0.7.1-5) unstable; urgency=low + + * sync patches with upstream release branch + * Fix segmentation fault on ppc32, Closes: #639948 + + -- Reinhard Tartler Mon, 05 Sep 2011 07:25:06 +0200 + +libav (4:0.7.1-4) unstable; urgency=low + + * upload to unstable + + -- Reinhard Tartler Thu, 01 Sep 2011 22:45:43 +0200 + +libav (4:0.7.1-3) experimental; urgency=low + + * add post 0.7.1 patches + * make MAP_ANONYMOUS available on Linux and the Hurd, Closes: #637516 + * libpostproc: filter name needs to be double 0 terminated + * relax dependencies in the shlibs file to accomodate + the new versioning scheme in libav-extra. Fixes LP: #818619 + * libswscale-dev: fix alternate on libswscale-extra-2, Fixes LP: #829857 + + -- Reinhard Tartler Thu, 25 Aug 2011 22:45:47 +0200 + +libav (4:0.7.1-2) experimental; urgency=low + + * Build against libx264. Closes: #418228, #440681 + * Build against libmp3lame, Closes: #587904 + * Build against xvidcore to enable xvid encoding + * use yasm on every architecture. Should allow building on the Hurd + + -- Reinhard Tartler Tue, 26 Jul 2011 21:58:18 +0200 + +libav (4:0.7.1-1) experimental; urgency=low + + [ Andres Mejia ] + * Update to my @debian.org email. + + [ Reinhard Tartler ] + * Pass --arch to configure + * no longer generate 'snapshot_version' + * disable jackd output support on the hurd + * Use proper architecture wildcards for Linux-only dependencies, + Closes: #634460 + * Drop "backported patches" + * Imported Upstream version 0.7.1 + * Fix installation of codecs.txt and formats.txt + + -- Reinhard Tartler Thu, 21 Jul 2011 12:18:48 +0200 + +libav (4:0.7-2) experimental; urgency=low + + [ Arnout Engelen ] + * libavformat-dev depends on libavutil-dev + + [ Reinhard Tartler ] + * Add backported patches for 0.7.1 + + -- Reinhard Tartler Sat, 16 Jul 2011 14:38:21 +0200 + +libav (4:0.7-1) experimental; urgency=low + + * New upstream release. + * Fixes several potential security issues, Closes: #628448 + * Much imporved libavfilter, Closes: #594108 + * Fixes some overlapping memcpys my using memmove instead, Closes: #627818 + * Bump libswscale SONAME + * Bump shlibs + * Bump Standards version to 3.9.2 + + -- Reinhard Tartler Tue, 21 Jun 2011 07:49:59 +0200 + +libav (4:0.7~rc1-1) experimental; urgency=low + + * New upstream version + * Bug fix: "Please add ffmpeg-mt for multithreading support", branch has + been finally merged now upstream properly (Closes: #575600). + * remove 02-Fix-kfreeBSD-FTBFS.patch, applied upstream + + -- Reinhard Tartler Tue, 14 Jun 2011 22:03:36 +0200 + +libav (4:0.7~beta2-2) experimental; urgency=low + + * refresh patches + * rename Tweak-doxygen-config patch + * add patch from upstream to fix build failure on kFreeBSD + * ignore quilt .pc status directory + + -- Reinhard Tartler Sun, 15 May 2011 10:49:54 +0200 + +libav (4:0.7~beta2-1) experimental; urgency=low + + [ Jonathan Nieder ] + * only install doc/APIChanges in *-dev and libav-doc packages + * move note on source package lineage to README.Debian + * install NEWS.Debian in libavcodec-dev + * use dpkg source format 3.0 (quilt) + * allow "debian/rules clean" as unprivileged user + + [ Reinhard Tartler ] + * New upstream release + + -- Reinhard Tartler Fri, 13 May 2011 12:31:33 +0200 + +libav (4:0.7~b1-2) experimental; urgency=low + + * don't try to install non-existing documentation, fixes FTBFS on powerpc + * add NEWS.Debian file + * install doc/APIChanges and refer to them in NEWS.Debian (Closes: #623682) + * readd deprecated avcodec_thread_init in libavformat + + -- Reinhard Tartler Sun, 01 May 2011 18:58:40 +0200 + +libav (4:0.7~b1-1) experimental; urgency=low + + * New upstream version + * bump SONAME and SHLIBS + * configure flags --disable-stripping was removed upstream + * the MAINTAINERS file was removed upstream + * remove patch disable-configuration-warning.patch + * drop avfilter confflags, it is enable by default in 0.7 + * libfaad wrapper has been removed upstream + * also update the *contents* of the lintian overrides + + -- Reinhard Tartler Tue, 19 Apr 2011 15:04:55 +0200 + +libav (4:0.6.2-1) unstable; urgency=medium + + [ Reinhard Tartler ] + * Imported Upstream version 0.6.2 + - include security fixes (Closes: #611495) + * rename source package to libav + * Switch to libav packages + * copy in changelog entries from the 0.5 packaging branch (Closes: #616190) + * update version numbering + * make buildlogs verbose + * Introduce 'libav-source', which contains the patched sources of libav + * rename source package to libav + + [ Fabian Greffrath ] + * Fix cp of doxy documentation fails with "Argument list too long" (Closes: #618679) + + -- Reinhard Tartler Sat, 19 Mar 2011 08:13:46 +0100 + +ffmpeg (4:0.6.1-5) unstable; urgency=low + + * don't enable vaapi support on the hurd, Closes: #613034 + * minor updates to libswscale0's package description + * Force upgrade of mplayer pre-rc4 for upgrades of libswscale, + Closes: #612292 + + -- Reinhard Tartler Sun, 13 Feb 2011 09:25:42 +0100 + +ffmpeg (4:0.6.1-4) unstable; urgency=low + + * no change rebuild to fix broken last upload. + + -- Reinhard Tartler Sun, 06 Feb 2011 09:20:39 +0100 + +ffmpeg (4:0.6.1-3) unstable; urgency=low + + * add libxfixes-dev to build depends + * minor packaging cleanups + * revised package description + * detect libopenjpeg and dirac at build-time + * remove note about packages being "Debian-specific" + * simplify lintian-overrides + * Sanitize LDFLAGS variable; it seems that dpkg-buildflags injects + -Wl,-Bsymbolic-functions to LDFLAGS, which breaks the build on amd64 + + -- Reinhard Tartler Sun, 30 Jan 2011 09:22:11 +0100 + +ffmpeg (4:0.6.1-2) experimental; urgency=low + + [ Jonas Smedegaard ] + * Relax mplayer Breaks to permit backports and other early releases. + + [ Reinhard Tartler ] + * Bump Standards-Version, no changes needed. + + [ Matthias Klose ] + * Configure with --enable-pic on powerpc. LP: #654666. + + -- Reinhard Tartler Fri, 19 Nov 2010 10:50:51 +0100 + +ffmpeg (4:0.6.1-1) experimental; urgency=low + + * Imported Upstream version 0.6.1 + * prepare new upload + * remove patches merged upstream + * add gitignore file + + -- Reinhard Tartler Mon, 01 Nov 2010 09:18:08 +0100 + +ffmpeg (4:0.6-2) experimental; urgency=low + + [ Fabian Greffrath ] + * Enable RTMP[E] support via librtmp. + * Disable aac encoder, see README.Debian. + * Fix obsolete-relation-form for the internal dependencies. + * Merge debian/README.Source into debian/README.source and add section + headers. + * Remove obsoleted support for the non-free libamr-nb/wb. + + [ Reinhard Tartler ] + * enable runtime-cpudetect + * conditionally build against opencore-amr if installed in the build + environment + * update upstream url in debian/copyright + * fix usage documentation in debian/get-orig-source.sh + * update dep3 headers for debian/patches/900_doxyfile + * add proper replaces for moving presets back to ffmpeg + * make debian/patches gbp-pq friendly + * Add VP80 fourcc to libavformat/riff.c + * Backport-AAC-HE-v2 + * bump Standards-Version, no changes needed + + -- Reinhard Tartler Tue, 29 Jun 2010 09:07:56 +0200 + +ffmpeg (4:0.6-1) experimental; urgency=low + + * new upstream release + - adds VP8 support via libvpx, Closes: #582274 + * depend on libavfilter-extra-1 instead of -0, Closes: #583728 + * add conflicts to the ffprobe package, it has been merged upstream now + + -- Reinhard Tartler Wed, 16 Jun 2010 09:25:28 +0200 + +ffmpeg (4:0.6~svn20100505-1) experimental; urgency=low + + * update to new upstream. Closes: #569727 + - fixes various segfaults and other minor feature improvements + Closes: #374931, #522449, #501891, #559712, #420231, #369127, #538082, + #298095, #294422, #561553, #525385, #495274, #420230 + LP: #305286, #457106, #529200, #301723, #305315, #336479, #420230, + #412063, #428912, #432181, #440591, #453732, #453732, #453732, + #514259, #515243, #521472, #530186, #530186, #197842, #483317, + #483317, #539407, #280098, #331255, #566107, #569823, #570305, + #573190 + * Fixup lintian overrides for new upstream snapshot + * Bump Standards-Version to 3.8.4 + * Many upstream changes, see upstream Changelog for details + + -- Reinhard Tartler Sun, 24 Jan 2010 21:24:56 +0100 + +ffmpeg (4:0.5.2-6) unstable; urgency=high + + * Fix several security issues in flicvideo.c. + Fixes: CVE-2010-3429, Closes: #598590 + * Raising severity to high because of security issue. + + -- Reinhard Tartler Sun, 03 Oct 2010 16:59:39 +0200 + +ffmpeg (4:0.5.2-5) unstable; urgency=low + + [ Dominic Evans ] + * add libxfixes-dev to build-depends to unbreak x11grab input, + Closes: #596342, LP: #631103 + + [ Reinhard Tartler ] + * fix x11grab example in e.g. the manpage so that they actually work + + -- Reinhard Tartler Mon, 13 Sep 2010 15:29:49 +0200 + +ffmpeg (4:0.5.2-4) unstable; urgency=low + + [ LoĂ¯c Minier ] + * Fix typo: use -march=armv7-a instead of -marmv7-a + + -- Reinhard Tartler Tue, 31 Aug 2010 15:31:05 +0200 + +ffmpeg (4:0.5.2-3) unstable; urgency=low + + [ Reinhard Tartler ] + * Move breaks declaration from libavformat to libavcodec to help the + apt solver, Closes: #591881 + + [ LoĂ¯c Minier ] + debian/confflags: detect whether the toolchain supports ARMv7 ("dmb") + by default as the NEON pass needs at least ARMv6t2; if it's not enabled by + default, pass -marmv7-a in extra-cflags for the NEON pass since NEON + implies ARMv7; closes: #594417. + + -- Reinhard Tartler Fri, 27 Aug 2010 01:24:10 +0200 + +ffmpeg (4:0.5.2-2) unstable; urgency=low + + * Enable some encoders: + - h263, h263p, mpeg2video, mpeg4, msmpeg4v1, msmpeg4v2, msmpeg4v3 + Closes: #418231, #433287, #440216, #587898, #525349 + * Bump Standards Version, no changes needed + + -- Reinhard Tartler Thu, 05 Aug 2010 11:59:26 -0400 + +ffmpeg (4:0.5.2-1) unstable; urgency=low + + [ Andres Mejia ] + * Fix dependency problem for ffmpeg so it can use extra ffmpeg libs. + + [ Reinhard Tartler ] + * move presets back to 'ffmpeg' package. Closes: #581748 + + [ Fabian Greffrath ] + * Imported Upstream version 0.5.2 + * Remove ffmpeg-debian_hurd.patch, applied upstream. + * Remove fix-ftbfs-altivec.patch, applied upstream. + + -- Reinhard Tartler Tue, 25 May 2010 23:01:08 +0200 + +ffmpeg (4:0.5.1-3) unstable; urgency=low + + * fix ftbfs on powerpc + + -- Reinhard Tartler Fri, 12 Mar 2010 21:43:55 +0100 + +ffmpeg (4:0.5.1-2) unstable; urgency=low + + * reintroduce gnu/hurd patch + * Fix compilation on powerpc with --disable-altivec + + -- Reinhard Tartler Wed, 10 Mar 2010 21:19:40 +0100 + +ffmpeg (4:0.5.1-1) unstable; urgency=low + + * new upstream release: + - clarifies documentation on metadata, Closes: #570050, LP: #501729 + - further security backports, Closes: #570713 + * adapt to new versioning scheme + * use '<<' instead of '<' relationship for internal shlib file + * merge changes from ubuntu packaging + * drop wmapro backport again as discussed with upstream. The unrelated + changes seem too risky for a stable release. + + -- Reinhard Tartler Wed, 03 Mar 2010 22:28:24 +0100 + +ffmpeg (4:0.5+svn20090706-6) unstable; urgency=low + + [ Fabian Greffrath ] + * debian/patches/901-fix-misc-typos.patch: New patch taken from + upstream GIT (slightly modified) to fix some spelling errors. + * Document our calling of debhelper programs in an odd order in + debian/rules. + + [ Reinhard Tartler ] + * document some unattributed patches + * enable cpu autodetection in libswscale, Closes: #567725, LP: #386397 + + [ Christopher Martin ] + * backport wmapro codec from ffmpeg trunk + + -- Reinhard Tartler Sun, 31 Jan 2010 16:53:47 +0100 + +ffmpeg (4:0.5+svn20090706-5) unstable; urgency=medium + + * Upload to unstable + * Urgency medium because of fixed RC bugs (security issues) + + -- Reinhard Tartler Fri, 22 Jan 2010 16:04:39 +0000 + +ffmpeg (4:0.5+svn20090706-4) experimental; urgency=low + + [ LoĂ¯c Minier ] + * Use default toolchain setup on ARM flavors for noopt and only add FPU + CFLAGS in the VFP and NEON flavors; this is ok since internally, cpu will + be set to "generic" but -march=generic or -mcpu=generic will NOT be added + to the build flags. + * Build all armel flavours with -marm since ffmpeg has a lot of hand crafted + assembly which doesn't build in the new lucid default mode (Thumb 2); + LP: #488267 + * Build all armel flavours with -fPIC -DPIC instead of just the neon flavour + as the new flags/toolchain require this in Ubuntu lucid. + * Build some assembly test code -- just like configure -- to decide whether + the *default* toolchain uses vfp or neon to decided whether to build the + vfp and neon flavors. + * Drop --disable/--enable opt flags such as --disable-neon or + --enable-armvfp on ARM since the upstream configure script will do the + right thing when the proper flags are set. + + [ Reinhard Tartler ] + * build with PIC on powerpc (Closes: #561956) + + -- Reinhard Tartler Fri, 15 Jan 2010 21:46:49 +0100 + +ffmpeg (4:0.5+svn20090706-3) experimental; urgency=low + + [ LoĂ¯c Minier ] + * Disable more autodetecter ARM arch features + * Enable neon flavour + * Update NEON confflags to assume v7 and VFP + * Add backported NEON patches from ffmpeg trunk + * Pass proper --cpu and --extra-flags on armel + * Pass -fPIC -DPIC to neon pass + + [ Fabian Greffrath ] + * Initialize the FLAVORS variable to static instead of appending to + it. Also, we do not support the internalencoders variable anymore. + + [ Andres Mejia ] + * Remove unused patches from packaging. + * Update Vcs-* entries to new location. + * Bump Standards-Version to 3.8.3. + + [ Reinhard Tartler ] + * change shlibs file to make applications depend on the -extra- packages + * loosen dependencies further, so that the -dev packages remain + installable even if ffmpeg-extra is 'out-of-date' + * add patch for issue1245: Make arguments of av_set_pts_info() unsigned. + * Support constant-quant encoding for libtheora, LP: #356322 + * increase swscale compile time width (VOF/VOFW), LP: #443264 + * Backports of various security patches, Closes: #550442, including: + - backport fixes for vorbis_dec + - backport oggparsevorbis fix + - backport vp3 fixes + - backport ffv1 fix + - libavcodec/mpegaudiodec.c backports + - h264 security backports + - backported libavformat/mov.c security fixes + - backported libavformat/oggdec.c security fixes + - backport svn r18016 aka 'MOV-Support-stz2-Compact-Sample-Size-Box' + to fix FTBFS + * enable symbol versioning + * bump shlibs version + * add README.source describing how this source package manages patches + * make sure the ${misc:Depends} substvar is used for each binary package + + -- Reinhard Tartler Wed, 06 Jan 2010 16:27:40 +0100 + +ffmpeg (4:0.5+svn20090706-2) unstable; urgency=low + + [ Fabian Greffrath ] + * Enable support for libdirac, now that it has entered Debian. + + [ Andres Mejia ] + * Fix ordering of FLAVORS that are installed. (Closes: #543595) + + [ Reinhard Tartler ] + * prepare new upload + * simply debian/confflags by removing the case of renaming the source + package + + -- Reinhard Tartler Wed, 26 Aug 2009 09:12:49 +0200 + +ffmpeg (4:0.5+svn20090706-1) unstable; urgency=low + + * preparing new upstream version, 0.5 release branch, rev 19352 + - this version is capable of compiling swscale in LGPL mode + * rename source package back + - The replacement package with the 'missing bits' will be called + 'ffmpeg-extra' + - simplify README.upstream-upgrade + - rename the source package from 'ffmpeg-debian' -> 'ffmpeg' + * fix aac playback regression, thanks to Matthew Wakeling for reporting + (Closes: #540729) + * fix seeking in DIF (DV) movies + Thanks to Dan Dennedy for identifying the patch! (Closes: #540424) + * debian/rules: + - merge cond_enable_nf macro from master.extra branch + - don't disable ffserver in various optimized variants + - don't disable building of statically linked helper binaries + - simply by removing the case of renaming the source package + - change the shlibs file: s/-unstripped-/-extra-/ + + -- Reinhard Tartler Thu, 13 Aug 2009 12:48:27 +0200 + +ffmpeg-debian (4:0.5+svn20090609-2) unstable; urgency=low + + [ Fabian Greffrath ] + * Remove .install files for unstripped packages that we do not build + from this branch anyway. + * Remove debian/fixup-config.sh which was only a hack needed to repair + the crippled config.h + * Finally remove strip.sh. + + [ Andres Mejia ] + * Add vdpau support by including vdpau headers in deb packaging. + (Closes: #511544) + * Don't disable encoders if internalencoders is set in + DEB_BUILD_OPTIONS. + * Enable yasm for i386 and amd64. + + [ Reinhard Tartler ] + * clarifications suggested by upstream in README.Source + * refresh patches + + [ Fabian Greffrath ] + * Document the copyright notice and license for the VDPAU headers in + debian/copyright. + * Remove parallel make support from debian/confflags, it's overridden + in debian/rules anyway. + * Quote opts in debian/watch. + * Bump debhelper compat to 7. + * Clean up clean target in debian/rules in favour of debian/clean. + * Replace "dh_clean -k" by dh_prep. + + [ Reinhard Tartler ] + * remove duplicated libxvmc-dev build dependency + * sort build dependencies alphabetically + * remove section numbering from README.Debian + * add note about the lintian override + + -- Reinhard Tartler Thu, 13 Aug 2009 12:46:46 +0200 + +ffmpeg-debian (4:0.5+svn20090609-1) unstable; urgency=low + + [ Andres Mejia ] + * Add myself to Uploaders list. + * Reorder when dh_strip is done so qt-faststart is also + stripped. + * Update to control files. + * Add new confflags for new build dependencies. + * Use .docs files to add ffmpeg and ffmpeg-doc documentation. + * Use .docs files for installing documentation. + * Add comment to 900_doxyfile patch. + * Add man page for qt-faststart. + * Bump version in changelog to prepare new release + * Fix FTBFS for ffmpeg source package with -dev packages (Closes: #527761) + * Use dh_lintian to install lintian overrides + * Update comment on fpic-* patches + * Build-Depend on debhelper (>= 6.0.7~) for dh_lintian. + * Add lintian overrides for remaining fpic lintian errors. + * Shorten comment on lintian-overrides. + * Allow passing in extra confflags, removes the need for fix-fpic + DEB_BUILD_OPTIONS. + * Fix FTBFS on kfreebsd. (Closes: #528591) + * Include patches to allow us to use opencore-amr libraries. + + [ Reinhard Tartler ] + * remove debian/control.* mechanism + * improve patch description for debian/patches/100_kfreebsd + + [ Andres Mejia ] + * Add lintian overrides for ffmpeg-debian source warnings. + * Only use .svnrevision if it's readable. + * Update source lintian-overrides for modifications to debian/rules. + * Add fix for FTBFS for GNU Hurd OS. Thanks Marc Dequènes. + (Closes: #530436) + + [ Felipe Sateler ] + * Don't add -unstripped to the unstripped variant version number + in debian/README.upstream-upgrade. + * In the same file, pass explicit version to git-import-orig + + [ Fabian Greffrath ] + * Cleaned up debian/watch file. + * Add notes why we no longer strip the orig.tar.gz. + + [ Andres Mejia ] + * Fix watch file to ignore daily snapshots. + * Make get-orig-source.sh executable. + + [ Reinhard Tartler ] + * add patch for qtrle encoding (Closes: #530016) + * Enable xvmc support by adding libxvmc-dev to build dependencies + * really add libopenjpeg-dev to build depends, actually enabling + the openjpeg decoder. + * reorganise README.Debian for the new plan [tm] + * no longer strip the source on upstream upgrades + * Imported Upstream version 0.5+svn20090609 + * adjust notes in README.upstream-upgrade for the now unstripped + debian source package + * remove hack to build with stripped sources + * bump standards version, no changes needed + + -- Reinhard Tartler Sun, 05 Jul 2009 22:52:43 +0200 + +ffmpeg-debian (4:0.5+svn20090420-2) unstable; urgency=low + + * debian/control: fix dependencies for libavutil-dev and libavfilter-dev + so that they can be used with the unstripped variants properly. + * debian/rules: set nooptflags only for relevant architectures. + * explicitly disable 'dangerous' encoders on the --configure line. + * fix SHLIBS_VERSION in debian/rules (Closes: #527350). + + -- Reinhard Tartler Mon, 04 May 2009 07:41:19 +0200 + +ffmpeg-debian (4:0.5+svn20090420-1) unstable; urgency=low + + [ Fabian Greffrath ] + * Merge the contents of patents.txt into README.Debian and change some + paragraphs to (hopefully) add some more clarity on the removed encoders + and the package naming scheme. Based on suggestions by Xavier Douville + , thank you very much for the review. (Closes: #519025) + * Reorder some confflags to account for GPL licensed libraries. + * Remove patents.txt + * Explicitely mention that no decoders are disabled in our packages. + + [ LoĂ¯c Minier ] + * Disable more autodetecter ARM arch features + * Add neon and vfp flavors to armel disabled for now + * vfp CFLAGS: add "-mfpu=vfp -mfloat-abi=softfp" + + [ Reinhard Tartler ] + * New Upstream Version (svn revision 18630) + * bump epoch as 0.5 was released. Future version will use '+' to indicate + that the package is based on a release branch and '~' to indicate that + the package is based on the 'trunk' branch. + * update from the upstream release branch to generate a new upstream + tarball. + * add a git-buildpackage config file at debian/gbp.conf + * beautify identification string + * debian/rules: bump epoch to '4' + * update section names in control file + * update upstream svn server url + * fixup get-orig-source rules in debian/rules + * create right filenames for the orig.tar.gz files + * update README.upstream-upgrate for new versioning scheme + * remove debian/005_release_branch_changes.diff + * remove reference to 020_visibility_patch + * install the upstream license file and release notes + * allow -dev packages be installed with the unstripped variants + Closes: #526007, LP: #312898 + * be more careful with svn:externals in debian/get-orig-source.sh. + (Closes: #525348) + + -- Reinhard Tartler Sat, 02 May 2009 09:09:54 +0200 + +ffmpeg-debian (3:0.svn20090303-1) unstable; urgency=low + + * New Upstream Version (svn revision 17737 libswscale revision 28799) + - Electronic Arts TQI decoder + - OpenJPEG based JPEG 2000 decoder + - NC (NC4600) camera file demuxer + - Gopher client support + - MXF D-10 muxer + - generic metadata API + * debian/get-orig-source.sh: Track the version 0.5 release branch. The + version number does not really reflect this, but this package is + actually very close to the 0.5 release branch. + * various cleanups to improve get-orig-source.sh + * Remove liba52 from the suggests field in debian/control.ffmpeg, as + ffmpeg does no longer use it since upload 0.svn20080206-10. + * Fix the Vcs-Git urls to the correct locations. + * The libavformat52 now links against libavcodec52, which breaks + applications that *ALSO* link against libavcodec51. Adding a + Breaks: libavcodec51 should prevent this and (hopefully) Closes: #516885. + * improve parallel builds on SMP/multicores by supporting the parallel + flag in DEB_BUILD_OPTIONS, and default to the number of available CPUs + on i386 and amd64. + * Drop unapplied patches from debian/patches. + * bump shlibs version. + + -- Reinhard Tartler Tue, 03 Mar 2009 21:01:25 +0100 + +ffmpeg-debian (3:0.svn20090204-3) unstable; urgency=low + + [ Fabian Greffrath ] + * remove libasound2-dev from build-depends on non-Linux archs + + [ Reinhard Tartler ] + * fix postinst generation by calling dh_installdeb after dh_makeshlibs + * upload to unstable + + -- Reinhard Tartler Sun, 22 Feb 2009 09:32:49 +0100 + +ffmpeg-debian (3:0.svn20090204-2) experimental; urgency=low + + * add libxvmc-dev to build-depends in the 'ffmpeg' variant + * add libasound2-dev to build-depends. This means that ffplay is now able to + actually play using alsa directly instead only via libsdl + * add epochs for the "internal" shlibs dependencies + + -- Reinhard Tartler Thu, 05 Feb 2009 20:30:05 +0100 + +ffmpeg-debian (3:0.svn20090204-1) experimental; urgency=low + + [ Reinhard Tartler ] + * New Upstream Version (svn revision 16978 libswscale revision 28461) + + Upstream Changes: + - R3D REDCODE demuxer + - ALSA support for playback and record + + * strighten internal dependencies by using a shlibs.local file + Closes: #512844, #512466 + * New upstream version reintroduces a compatibility symbol ff_gcd + Closes: #512946 + * Bump shlibs because of changes of the Metadata API in libavformat. + Actually no other package should use them yet, but let's better play safe + here... + * no longer install dsputil.h. It exposes lots of function that are private + to ffmpeg and may change on any new upstream revision. Please get in touch + with the ffmpeg maintainers if you maintain packages that rely on that + ffmpeg internal headers like this. + * simplify debian/confflags by doing autodetection of headers: + - xvid.h + - lame/lame.h + - faac.h + - x264.h + - vdpau/vdpau.h + Also remove the setting externalcodecs from DEB_BUILD_OPTIONS. The codecs + will be enabled as soon as the headers are installed on the filesystem, + so there is no need in enabling that separately. + * install ffpresets in /usr/share/ffmpeg/. Currently only presets for + x264 are avaiable, so a libx264 enabled libavcodec (like + libavcodec-unstripped-52) is needed to actually use them. + + [ Fabian Greffrath ] + * Enabled Speex decoding via libspeex. + * Use an alternative approach to achieve strict internal dependencies + by calling dh_makeshlibs twice in debian/rules instead of a + debian/shlibs.local file. + + -- Reinhard Tartler Sun, 01 Feb 2009 19:54:27 +0100 + +ffmpeg-debian (3:0.svn20090119-1) experimental; urgency=low + + * New Upstream Version (svn revision 16681 libswscale revision 28341) + * update Vcs-Git tags. Packaging has now moved to git + * updates to packaging that faciliate building the unstripped and ubuntu + variants of this package + * enable xvmc support + + Upstream Changes: + - SVQ3 watermark decoding support + - hybrid WavPack support + + -- Reinhard Tartler Tue, 20 Jan 2009 00:55:26 +0100 + +ffmpeg-debian (3:0.svn20090110-1) experimental; urgency=low + + * new upstream svn snapshot (svn revision 16508, libswscale revision 28286) + + Upstream Changes: + - RV30 and RV40 decoder + - QCELP / PureVoice decoder + + * removed patch 050_fix_pkgconfig_files.patch. Merged upstream + * disabled patch 020_visibility_patch. It needs to be adapted to the new + upstream changes. Hopefully it will get merged into ffmpeg properly. + * install formats.txt in the libavcodec52 package to document what + formats this version of ffmpeg has enabled. + + -- Reinhard Tartler Sun, 11 Jan 2009 20:55:48 +0100 + +ffmpeg-debian (3:0.svn20081115-1) experimental; urgency=low + + * new upstream svn snapshot (svn revision 15824, libswscale revision 27910) + * bump standards version to version 3.8.0, no changes needed + * Adjust pkg-files to no longer put unnecessary dependencies in the generated + .pc files. Closes: #504220 + + -- Reinhard Tartler Mon, 10 Nov 2008 21:37:16 +0100 + +ffmpeg-debian (3:0.svn20081108-1) experimental; urgency=low + + * upstream svn snapshot (svn revision 15786, libswscale revision 27900). + * apply visibility patch from ffmpeg-devel mailing list. This reduces the + number of symbols that are exposed to other applications. Please file + bugs if applications fail to link against ffmpeg because of that. + * remove 001_fixup_version.diff patch and use upstream --extra-version + configure flag instead. + * now really remove 015_img_convert.patch from source package. + + -- Reinhard Tartler Sat, 08 Nov 2008 16:38:23 +0100 + +ffmpeg-debian (3:0.svn20080925-1) experimental; urgency=low + + [ Loic Minier ] + * Tweak sed versions regexps to deal with epochs and upstream revisions with + dashes and be generally stricter. + * Large cleanup to rules logic: drop some cruft, rewrite some small chunks + in a slightly more readable manner, whitespaces, .PHONY fixes, + internalencoders handling, shlibs logic... + * Rename SRC_VERSION to UPSTREAM_VERSION in rules. + * Use DEB_SOURCE from the Source: field of dpkg-parsechangelog's output + instead of hardcoding the name of the source. + + [ Reinhard Tartler ] + * new svn snapshot (svn revision 15404, libswscale revision 27636). + * SONAME change: libavcodec51 -> libavcodec52 + * drop old scaler (imgres/imgconvert). Upstream is about to remove it + completely. + - reporter claims that a newer snapshot fixes a crash in the dca decoder. + Thanks to "Alexander E. Patrakov" (Closes: #496612) + * reenable h261 encoder (Closes: #459073) + + [ Fabian Greffrath ] + * debian/{ffmpeg,lib*-dev}.install: + + Simplified, e.g. install the whole /usr/include/ sub-directory for each + particular library instead of single header files one by one. + * debian/control, debian/confflags: + + Enabled Dirac support via libschroedinger. (Closes: #499785) + * debian/changelog: + + Added an epoch needed for Ubuntu. + * debian/control: + + Removed Conflicts and Replaces against packages that either aren't even + in Debian 4.0 "Etch" anymore or that use the deprecated naming scheme + from . + + Since ffmpeg-config has been removed from our packages, all inter-package + Conflicts and Replaces may be removed, too. + + Removed Build-Conflicts against libdc1394-13-dev, because + libdc1394-22-dev already does this for us. + + Updated inter-package dependencies and demoted Depends on external + library packages to Suggests, since we shouldn't encourage package + maintainers to link statically against libav*. + * debian/confflags, debian/control, debian/rules, debian/libavfilter*: + + Built libavfilter and disabled vhook in turn (Closes: #499787). + + [ Loic Minier ] + * Remove debug echo which broke shlibs, sorry. + * Fix Vcs-* control fields; thanks Gerfried Fuchs. + * Mention upstream SVN in debian/copyright; thanks Gerfried Fuchs; + closes: #499914. + + -- Reinhard Tartler Sat, 06 Sep 2008 20:07:01 +0200 + +ffmpeg-debian (0.svn20080206-12) unstable; urgency=low + + * enable vhook in all flavors. (Closes: #490272, LP: #260296) + * make ffmpeg output a proper version number. (Closes: #496133, #483923) + + -- Reinhard Tartler Sat, 23 Aug 2008 10:49:10 +0200 + +ffmpeg-debian (0.svn20080206-11) unstable; urgency=low + + [ Reinhard Tartler ] + * new patch: patches/010_fix_ftbfs_hppa.diff: On hppa shared objects + do required object files to be build "-fPIC -DPIC". Patch taken + from upstream svn. + * bugfix: libraries linked with libX11 on GNU/kFreeBSD. Thanks to + Aurelien Jarno for the patch. (Closes: #487252) + + [ Fabian Greffrath ] + * debian/confflags, debian/control: + + Build-Depend on libdc1394-22-dev explicitely and add + Build-Conflicts on libdc1394-13-dev (Closes: #490319). + + -- Reinhard Tartler Wed, 16 Jul 2008 10:41:49 +0200 + +ffmpeg-debian (0.svn20080206-10) unstable; urgency=high + + * enable mmx and sse3 in builds. These CPU features are autodetected + at runtime on amd64 and i386 using the 'cpuid' instrcution. + (Closes: #489732) + * disable support for liba52-dev. ffmpeg has its own implementation. + * don't add -fPIC -DPIC forcefully to ./configure. upstream claim that + the configure script gets this right on all architectures itself. + * Add patch 020_bug489965_bufferoverflow_str_demuxer.diff. Fixes a + buffer overflow in the STR demuxer. Thanks to Moritz Muehlenhoff for + reporting the issue. (Closes: #489965) + * Raising severity to high because of security issue. + * rework the shlibs file. Make applications linking against libraries + produced by this source package generate an alternate dependency on + the 'unstripped' variants of this package. They actually do not exist + yet at this point, but this way reverse dependencies are enabled to + use them when they eventually appear. + + -- Reinhard Tartler Wed, 09 Jul 2008 14:04:06 +0200 + +ffmpeg-debian (0.svn20080206-9) unstable; urgency=low + + [ Reinhard Tartler ] + * cleanup 010_proper_rpath.diff: remove spurious linker search paths. + * debian/strip.sh: no need to remove the glue code for x264 and xvid. + However, since that code is not built in debian anyway, the orig.tar.gz + was not rebuilt with this change. + * provide mmx-enabled shared objects on amd64. AFAIK all amd64 machines + do support MMX. + * Provide optimized versions of the libraries along the unoptimized + ones. They are installed in machines and architecture specific + directories. Optimized for further target will be added per request, + please file bugs to request them. + * rename the source package (again), this time on upstream's request. + The former name was considered insulting by upstream, because it + somewhat indicated the original source was somehow 'non-free', which is + not the case. The new name now represents that we modified the package + so that it becomes acceptable for debian. + * Cleanups in debian/rules file. + * Add verbose explanations about the renaming in README.Debian. + + [ Fabian Greffrath ] + * debian/control: + + Added Conflicts and Replaces against obsolete library packages from + wearing the 'cvs' suffix in their names + (Closes: #484585, #484586, #484587, #484776, #484778). + + Added doxygen to Build-Depends. + + Introduced new package 'ffmpeg-doc' that contains html doxygen + documentation of the ffmpeg API (Closes: #438369). + + Changed Build-Depends from libdc1394-13-dev to libdc1394-22-dev, + which is supported upstream since r11501. + * debian/ffmpeg-doc.install: + + Added. + * debian/rules: + + Build and install html doxygen documentation. + + Avoid dependency of build-stamp rule on phony targets. + * debian/libavutil-dev.install, debian/rules, + debian/patches/010_ffmpeg-config.diff: + + Removed ffmpeg-config, use pkg-config instead (maintainers of affected + packages have been informed, see #487917 to #487922). + + [ Darren Salt ] + * Added patch 900_doxyfile: tell doxyfile to ignore debian* directories. + * debian/rules: + - Reworked building so that separate source & build directories are + used. This makes cleanup simpler and speeds up maintenance by avoiding + complete rebuilds when using "debuild binary". + - Removed some file installation 'cp' commands, made unnecessary due to + the build reworking. + - Unpatching is now done *after* cleaning. + + -- Reinhard Tartler Mon, 30 Jun 2008 15:27:50 +0200 + +ffmpeg-free (0.svn20080206-8) unstable; urgency=low + + [ Fabian Greffrath ] + + * debian/control: + + Added Conflicts and Replaces on libavutil-dev (<< 0.svn20080206-7) + to libavcodec-dev (Closes: #483548). + + [ Reinhard Tartler ] + + * remove patches from the debian package as disussed with upstream: + - 005_runtime_cpudetect.diff: it is supposed to fix runtime cpu detection + on i386. The code (and the define) has undergone large refactoring wrt. + the define RUNTIME_CPUDETECT. It is very likely to have undisired + side-effects with this version of ffmpeg. It therefore seem more safe + to me to actually remove this patch for now, and reinvestigate the + problems that occur, if they do. (Related to: #482717) + - 005_m68k_workaround.diff: works around bugs in gcc for m68k. + - 006_mips_pthreads.diff: was an workaround for (now fixed) #428741. + - 020_fix_sws_scale_crash: patch has been rejected upstream: + http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/2008-May/047846.html + - 054_h264_mmx_chroma_mc_crash.diff. According to upstream, this has + been fixed in a different way and is not reproducible. Verified that + the file referenced in bug #404176 does not crash anymore even + without this patch. + * new patch: 015_reenable-img_convert.diff. Unlike previous version of this + patch, this uses a more lightweight approach. With building imgresample, a + few symbol clashes occur with libswscale. We therefore strip off symbols + that are already provided by libswscale. (Closes: #483960). + * remove 011_link_plugins.diff. It is completely unnecessary now. + * refactor quilt usage: use /usr/share/quilt/quilt.make. + * support building in paralell. make snippet taken from the qemu package. + * cleanups in debian/rules. + * Move ffmpeg-config back to libavutil. This way we can avoid a circular + dependency between libavutil-dev and libavcodec-dev. (Closes: #484132). + libavcodec uses libavutil internally, so this dependency cannot be avoided. + * disable altivec, at least for now. (Closes: #482717) + * always compile with --disable-strip. We strip the binaries afterwards using + dh_strip anyways. + * Remove depdency substitutions ${shlibs:Depends} and ${misc:Depends} from the + -dev packages. + + -- Reinhard Tartler Wed, 04 Jun 2008 00:04:08 +0200 + +ffmpeg-free (0.svn20080206-7) unstable; urgency=low + + * debian/control: + + Removed unnecessary Conflicts and Replaces from libswscale0 + (Closes: #481908), thanks Guillem Jover. + + Made libavutil-dev depend on libavcodec-dev. + * debian/libavcodec.install, debian/libavutil.install: + + Moved ffmpeg-config (script and manpage) from libavutil-dev to + libavcodec-dev (really Closes: #482213, #482214). + + -- Fabian Greffrath Tue, 28 May 2008 16:02:03 +0200 + +ffmpeg-free (0.svn20080206-6) unstable; urgency=low + + * Bug fix: "libavg: FTBFS: ld: cannot find -ldts", thanks to Lucas + Nussbaum (Closes: #482213, 482214). Fixed by removing -ldts from + ffmpeg-config. + + -- Reinhard Tartler Tue, 27 May 2008 12:45:10 +0200 + +ffmpeg-free (0.svn20080206-5) unstable; urgency=low + + [ Fabian Greffrath ] + * debian/control: + + Fixed dependency typo, libswscale0 conflicts with libswsacle1d but not + libswscale1d (Closes: #481908). + + [ Reinhard Tartler ] + * disable 015_build_imgresample.diff. Please port all applications + needing the symbols sws_{scale,getContext}, + sws_{getCachedContext,freeContext} to use libswscale instead. + * downgrade debhelper depencency to level 5. We don't use any of the + level 6 features, and level 5 faciliates backporting to earlier + releases massively. + * remove unapplied patches from source to reduce the size of the + .diff.gz. The old patches can be retrieved from branches in our svn. + + -- Reinhard Tartler Thu, 22 May 2008 09:26:06 +0200 + +ffmpeg-free (0.svn20080206-4) unstable; urgency=low + + * debian/rules: + + Moved confflags, that result in GPL versions of the libraries, into a + dedicated variable gpl_confflags. Add this to the common confflags. + + Moved --prefix=/usr to the common confflags. + + Added some comments and whitespace (nothing special). + + Renamed the "risky" keyword to "internalencoders". Set this in + DEB_BUILD_OPTIONS in order to create and build from an unstripped tarball + in the get-orig-source and build rules (Closes: #478010). + + Introduced the "externalcodecs" keyword. Set this in DEB_BUILD_OPTIONS to + enable support for additional codecs via external libraries. + + Commented out the amr?b codecs among the external codecs, because the + resulting packages will be unredistributable. + + -- Fabian Greffrath Tue, 29 Apr 2008 09:07:11 +0100 + +ffmpeg-free (0.svn20080206-3) experimental; urgency=low + + * install qt-faststart. Thanks Stefan Hermann for the patch from ubuntu. + (Closes: #470484) + * Reenable 020_fix_libswscale_pic_code, fixes FTBFS on amd64. + * Reenable altivec, fixes FTBFS on powerpc. + * Add some notes about the removed mpeg encoders (Closes: #440702) + + -- Reinhard Tartler Fri, 18 Apr 2008 23:02:24 +0200 + +ffmpeg-free (0.svn20080206-2) experimental; urgency=low + + [ Reinhard Tartler ] + * patches/020_fix_sws_scale_crash: if sws_scale is given an invalid context + (e.g. a null pointer), the function will crash because of a null pointer + dereference. Add a check for that here. + * add Conflicts/Replaces for libswscale1d. + * Due to the fact that we no longer build the shared version of ffmpeg with + mmx optimisations, the following patches have been dropped: + - 020_mmx_optims.diff + - 020_mmx_pic_code.diff + - 020_disable_snow_mmx_in_pic.diff + - 020_fix_libswscale_pic_code + + [ Fabian Greffrath ] + * debian/control: + + Added libx11-dev and libxext-dev to Build-Depends. + * debian/rules: + + Build with --enable-x11grab (Closes: #441983). + + Build ffmpeg and shared libraries with --extra-cflags="-fPIC -DPIC" + (feeling confident that this closes: #472613) and "drop the surgery + regarding Makefile.pic and config.mak.pic". + + In this context, cleaned up build rule: Run '$(MAKE)' and '$(MAKE) clean' + from the top source directory instead of diving into the library + directories; force move during backup and recovery of the static + libraries; let the build rule itself depend on config-extra-includes.h + (instead of build-stamp) to avoid being run again from the binary rule; + some more minor changes of cosmetic type. + + Renamed config-extra-includes rule to config-extra-includes.h to + reflect the file name of the created file (also changed to override it + instead of appending) and to avoid the rule to be run twice. + + Disabled all architecture-specific optimizations for the time being. + + -- Fabian Greffrath Fri, 1 Apr 2008 17:22:00 +0100 + +ffmpeg-free (0.svn20080206-1) experimental; urgency=low + + [ Reinhard Tartler ] + * new upstream release (Closes: #471136) + * refreshed patches + * libogg was dropped upstream + * no longer install integer.h, as it is not part of the public API (see + upstream r11642). + * no longer install rtp.h, as it is not part of the public API (see + upstream r11505). + * install crc.h and sha1.h to libavutil-dev, since it is part of the + public API now. + * introduce new package: libavdevice52 and libavdevice-dev. + * Implemented debian/get-orig-source.sh and adjusted the get-orig-source + target in debian/rules to use that. + * fix invocation of the testsuite. + * bump standards version to 3.7.3 (no changes needed). + * add script recordshow.sh (Closes: 461434). Thanks to + Daniel Dickinson + * Introdcue binary package ffmpeg-dbg, which contains debugging symbols + of the shared library packages. + + [ Fabian Greffrath ] + * debian/changelog: + + Source is exported from SVN, not CVS. Reflect this in the versioning + scheme (Closes: #468319). + * debian/control: + + Changed Build-Depends to liba52-0.7.4-dev | liba52-dev. + + Improved descriptions and dependencies for libavdevice packages. + * debian/control, debian/compat: + + Bumped debhelper Build-Depends to (>= 6.0.0). + * debian/control, debian/*.install: + + Adopted shared library package names to upstream SONAMEs. + * debian/README.Debian: + + Updated, since AAC decoding (through FAAD) is now enabled. + + Updated URL for unofficial ffmpeg packages. + * debian/rules: + + Reordered confflags to optionally build LGPL versions of the libraries. + + Removed trailing whitespace. + + Removed unused strip rule. + + Added libxvidcore4-dev to weak-build-deps and fixed confflags + in DEB_BUILD_OPTIONS=risky accordingly. + + Added a get-orig-source rule to reproduce the source tarball. Produce an + unstripped tarball if DEB_BUILD_OPTIONS=risky. + + Do not run debian/fixup-config.sh if DEB_BUILD_OPTIONS=risky. + * debian/patches/011_link_plugins.diff: + + Updated to link all plugins against libavutil since they all use symbols + from this library. Resolves "symbols found in none of the libraries" + warnings from dpkg-shlibdeps. + + -- Reinhard Tartler Thu, 20 Mar 2008 17:57:21 +0100 + +ffmpeg-free (0.cvs20071007-4) experimental; urgency=low + + [ Fabian Greffrath ] + * debian/control: + + Wrapped Uploaders, Build-Depends and Depends, + Conflicts and Replaces fields. + + Added libfaad-dev to Build-Depends. + + Added Homepage field. + + Added ${misc:Depends} to all Depends. + * debian/rules: + + Enabled faad support via libfaad + (Closes: #400094, #418230, #447089, #448068, #449387). + + Added libmp3lame-dev to weak-build-deps in DEB_BUILD_OPTIONS=risky. + + Added support for amrnb, amrwb and x264 (Closes: #432170) in + DEB_BUILD_OPTIONS=risky. + + [ Reinhard Tartler ] + * added Fabian Greffrath to Uploaders + + -- Reinhard Tartler Thu, 20 Mar 2008 15:55:11 +0100 + +ffmpeg-free (0.cvs20071007-3) experimental; urgency=low + + * disable armv6 code generation. Thanks to Joey Hess for the patch + (Closes: #438923). + + -- Reinhard Tartler Sun, 13 Jan 2008 23:28:25 +0100 + +ffmpeg-free (0.cvs20071007-2) experimental; urgency=low + + * restore soname on libavutil. got dropped on previous upload. + * Bug fix: "needs libavutil-dev headers but doesn't depend on it", + thanks to rmh@aybabtu.com (Closes: #434494). This was actually already + fixed in a previous upload. + * build dependencies in debian/control are now multiline. + * Drop the XS- from the Vcs-Browser and Vcs-Svn field. + + -- Reinhard Tartler Sun, 16 Dec 2007 21:36:49 +0100 + +ffmpeg-free (0.cvs20071007-1) experimental; urgency=low + + * new upstream snapshot, using the same day as the mplayer release + * Refreshing patches: + -005_altivec_flags.diff: dropped, merged upstream + -005_m68k_workaround.diff: refreshed + -005_runtime_cpudetect.diff: refreshed + -006_mips_pthreads.diff: refreshed + -010_proper_rpath.diff: refreshed + -010_shared_library_versioning.diff: refreshed + -011_link_plugins.diff: refreshed (moved to top level makefile) + -015_build_imgresample.diff: refreshed + -020_disable_snow_mmx_in_pic.diff: refreshed + -020_fix_libswscale_pic_code.diff: refreshed + -020_mmx_optims.diff: refreshed + -020_mmx_pic_code.diff: refreshed + -040_early_altivec_detection.diff: disabled, doesn't apply anymore + -040_only_use_maltivec_when_needed.diff disabled, (causes ftbfs, needs revising) + -040_only_use_maltivec_when_needed.diff: refresh + -051_mjpeg_gray_support.diff, removed applied upstream + -053_rm_demux_crash.diff removed, applied upstream. + -060_fix_avi_skip.diff removed, does not apply anymore + * remove --enable-libdts. ffmpeg now has an internal dts decoder since + r9051 (2007-05-17). It seems that at least some packages link to libdts and + rely on the transitive dependency via ffmpeg. Please add explicit dependencies + on libdts instead! + * Don't ignore errors in upstream Makefile. Bug found via lintian. + + -- Reinhard Tartler Wed, 05 Dec 2007 17:33:34 +0100 + +ffmpeg-free (0.cvs20070307-7) UNRELEASED; urgency=low + + * debian/patches/051_mjpeg_gray_support.diff: + + Support grayscale MJPEG streams as sent by Axis cameras. + + -- Sam Hocevar (Debian packages) Tue, 31 Jul 2007 18:55:31 +0200 + +ffmpeg-free (0.cvs20070307-6) unstable; urgency=low + + * Rename the source package. We are (again) no longer shipping the + 'real' upstream source of ffmpeg. + * Add debian/strip.sh to strip ffmpeg upstream source disabling mpeg + based encoders as discussed with ftp-master at debconf7 + * update XS-Vcs tags in debian/control. + * make ffmpeg binNMU-able by using ${binary:Version} rather than + ${Source-Version} + + -- Reinhard Tartler Sat, 23 Jun 2007 15:11:21 +0100 + +ffmpeg (0.cvs20070307-5) unstable; urgency=low + + * upload to unstable + * remove x264 support, as it has been removed from unstable + + -- Reinhard Tartler Wed, 30 May 2007 15:19:20 +0200 + +ffmpeg (0.cvs20070307-4) experimental; urgency=low + + * added myself to uploaders + + * 020_fix_libswscale_pic_code: + + added, avoid some MMX code to avoid PIC code + + [ Sam Hocevar ] + + * fixed path in library installation. + + -- Reinhard Tartler Wed, 11 Apr 2007 23:17:47 +0200 + +ffmpeg (0.cvs20070307-3) experimental; urgency=low + + * debian/patches/015_build_imgresample.diff: + + Build imgresample functions even with swscaler activated, or legacy + applications will stop working. + + * debian/patches/053_rm_demux_crash.diff: + + New patch: fix a double free with corrupted rm files (Closes: #379922). + + * debian/patches/054_h264_mmx_chroma_mc_crash.diff: + + New patch: workaround for a buffer overflow in the MMX H264 chroma + motion compensation until upstream fixes it properly (Closes: #404176). + + * debian/patches/300_c++_compliant_headers.diff: + + Define INT64_C() when the system headers don't provide it, for instance + when building C++ code. + + * debian/control: + + Set pkg-multimedia-maintainers as main maintainer. + + Updated VCS fields. + * debian/rules: + + Huge cleanup. + + -- Sam Hocevar (Debian packages) Wed, 14 Mar 2007 19:40:42 +0100 + +ffmpeg (0.cvs20070307-2) experimental; urgency=low + + * debian/rules: + + Activate x264 support now that it is in unstable. + * debian/control: + + Build-depend on libx264-dev. + + -- Sam Hocevar (Debian packages) Mon, 12 Mar 2007 21:10:45 +0100 + +ffmpeg (0.cvs20070307-1) experimental; urgency=low + + [ Sam Hocevar ] + + * New upstream snapshot (Closes: #403330, #404788). + * This snapshot fixes numerous file parsing crashes (Closes: #404176, + Closes: #407003, #396282, #365006, #403398). + + * debian/patches/010_proper_rpath.diff: + + New patch. Link objects with the libraries that we generate, not the + ones installed on the system. + + * debian/patches/010_shared_library_versioning.diff: + + Strip unneeded prefix from .pc files (Closes: #404758). + + * debian/patches/011_link_plugins.diff: + + New patch. Link vhook plugins with the appropriate libraries. + + * debian/patches/013_strip_unneeded_linker_flags.diff: + + Remove unneeded -l flags from .pc files (Closes: #373986). + + * debian/patches/020_mmx_optims.diff: + * debian/patches/020_disable_snow_mmx_in_pic.diff: + + Sync patches. + + * debian/patches/020_really_use_liba52.diff: + * debian/patches/050_h264-misc-security-fixes.diff: + * debian/patches/051_asf-misc-security-fixes.diff: + + Drop patches, applied upstream or no longer relevant. + + * debian/patches/040_only_use_maltivec_when_needed.diff: + + Upgraded patch to cover libswscale. + + * debian/libavcodec-dev.install: + + Ship lzo.h and random.h. + + * debian/rules: + + Fix syntax for a few --enable flags. + + Only ship ffmpeg_powerpc_performance_evaluation_howto.txt.gz on + powerpc machines (Closes: #385079). + + Readded --enable-libtheora, it's here again. + + Activate --enable-swscaler (Closes: #399141, #398442). + + [ Reinhard Tartler ] + + * debian/rules: + + Ignore libswscale.pc and rgb2rgb.h. + + * debian/libavcodec-dev.install: + + Ship fifo.h and opt.h. + + * debian/patches/005_altivec_flags.diff: + * debian/patches/005_m68k_workaround.diff: + * debian/patches/005_runtime_cpudetect.diff: + * debian/patches/006_mips_pthreads.diff: + * debian/patches/020_really_use_liba52.diff: + + Sync patches. + + * debian/patches/007_disable_ffmpeg_option.diff: + * debian/patches/030_arm_cpu_detect.diff: + * debian/patches/030_arm_workaround.diff: + + Drop patches, applied upstream or no longer relevant. + + -- Sam Hocevar (Debian packages) Fri, 9 Mar 2007 15:13:16 +0100 + +ffmpeg (0.cvs20060823-7) unstable; urgency=high + + * debian/patches/040_only_use_maltivec_when_needed.diff: + + Fix a static function prototype that prevented programs using libpostproc + from working on PowerPC (Closes: #412214). + + * debian/control: + + Added Xs-Vcs-Browser and XS-Vcs-Svn fields. + + -- Sam Hocevar (Debian packages) Thu, 8 Mar 2007 17:51:37 +0100 + +ffmpeg (0.cvs20060823-6) unstable; urgency=high - * Import new major upstream release 2.5. - * Update debian/changelog. - * Add new symbols to the symbols files. - * Disable rtmp on powerpcspe and sparc64 as librtmp-dev is currently - uninstallable there. - * Disable opencv on powerpcspe, as it is currently uninstallable. - * Enable x265 on mips, mipsel and powerpc, as it's now available there. - - -- Andreas Cadhalpun Sat, 06 Dec 2014 14:07:28 +0100 - -ffmpeg (7:2.4.4-1) unstable; urgency=medium - - * New upstream bugfix release 2.4.4. - * Drop fix-hppa-tests.patch included upstream. - * Do not enable gnutls on sparc64 and libzvbi on m68k, because they are - not available there. Thanks to Carl Eugen Hoyos. - * Do not enable libsdl and libvpx on x32, because they are not available. - * Add explicit build-dependencies on libfontconfig1-dev, libfreetype6-dev, - libgl1-mesa-dev, libpulse-dev and libxext-dev. - * Add build-dependency on libx265-dev on the architectures, where it is - already available. - - -- Andreas Cadhalpun Wed, 03 Dec 2014 00:29:36 +0100 - -ffmpeg (7:2.4.3-1) unstable; urgency=medium - - * Import new upstream bugfix release 2.4.3. - - Refresh Change-symbol-versioning.patch. - - Add new symbols to the libavdevice symbols file. - * Enable libbs2b on arm64, since it is now available. - * Disable frei0r and libx264 on x32, libsoxr and openal on sparc64 - and libopencv on m68k, sh4, sparc64 and x32, because they are not - (yet) avialable there. - * Disable assembler optimizations on x32, as they wouldn't work there. - * Include config.log in the build-log, when compiling fails. - * Add fix-hppa-tests.patch to work around a gcc bug on hppa. - - -- Andreas Cadhalpun Wed, 05 Nov 2014 01:18:23 +0100 - -ffmpeg (7:2.4.2-1) unstable; urgency=medium - - * Import new upstream bugfix release 2.4.2. - * Drop tests_Cat-err-file-in-case-of-error.patch included upstream. - * Disable assembler optimizations on armel to fix the tests. - - -- Andreas Cadhalpun Mon, 06 Oct 2014 21:13:39 +0200 - -ffmpeg (7:2.4.1-1) unstable; urgency=medium - - * Import new upstream bugfix release 2.4.1. - * Drop patches included upstream: - - avcodec-x86-vp9lpf_Always-include-x86util.asm.patch - - fix-build-when-AV_READ_TIME-is-unavailable.patch - - vf_deshake-rename-Transform.vector-to-Transform.vec.patch - * Disable Altivec on powerpc to fix test failures. - * Cherry-pick tests_Cat-err-file-in-case-of-error.patch to ease debugging - of test failures. - * Add Breaks and Replaces on old ffmpeg packages to qt-faststart. - * Disable optimizations on mips(el) to fix test failures. - * Don't enable libbs2b on arm64, because it is not (yet) available there. - * Disable assembler optimizations on ppc64el to (hopefully) fix the tests. * Upload to unstable. - -- Andreas Cadhalpun Fri, 26 Sep 2014 21:58:10 +0200 + -- Loic Minier Thu, 1 Feb 2007 21:36:47 +0100 + +ffmpeg (0.cvs20060823-5) testing-proposed-updates; urgency=high + + [ LoĂ¯c Minier ] + * Add myself to Uploaders. + * Exclude firewire libs from ffmpeg-config under kFreeBSD; based on a patch + by Petr Salinger; closes: #399701. + * Fix handling of debug in DEB_BUILD_OPTIONS; thanks Andreas Henriksson; + closes: #406474. + * SECURITY: New patch, 050_h264-misc-security-fixes, to properly check the + sps and pps ids before use and to check more bitstram values and fix + potential security holes; from upstream SVN r7585, r7586, and r7591. + * SECURITY: New patch, 051_asf-misc-security-fixes, to properly check + packet sizes, chunk sizes, and fragment positions; from upstream SVN r7640 + and r7650. + + [ Sam Hocevar ] + * debian/copyright: + + Fix typo and clarify licensing terms (Closes: #398235). + * debian/README.Debian: + + Removed mention of ffmpeg-config now that we ship .pc files. + * debian/patches/020_mmx_optims.diff: + + New patch, fix FTBFS with DEB_BUILD_OPTIONS=debug. + * debian/patches/040_early_altivec_detection.diff: + + New patch, detect AltiVec earlier on and only once so that we don't + risk using signal handlers in a multithreaded environment or when + the caller already installed a SIGILL handler. + * debian/patches/040_only_use_maltivec_when_needed.diff: + + New patch, only use -maltivec with files that use AltiVec intrinsics, + and make sure no codepath leads to these files on a non-AltiVec + machine (Closes: #405926). + * debian/patches/060_fix_avi_skip.diff: + + New patch, courtesy of Ben Hutchings: do not attempt to skip the ODML + if the current seek offset is already beyond it (Closes: #383734). + + -- Sam Hocevar (Debian packages) Mon, 29 Jan 2007 16:58:44 +0100 + +ffmpeg (0.cvs20060823-4) unstable; urgency=high + + * Maintainer upload. + * Acknowledging NMU (Closes: #386458). + + * High urgency because of FTBFS fix. + + * debian/patches/030_arm_workaround.diff: + + New patch courtesy of AurĂ©lien Jarno: disable the broken ARM assembly + code in libavcodec/mpegaudiodec.c. + + * debian/patches/030_arm_cpu_detect.diff: + + New patch courtesy of AurĂ©lien Jarno: correctly detect the newer ARM + CPUs. + + -- Sam Hocevar (Debian packages) Sun, 24 Sep 2006 23:38:29 +0200 + +ffmpeg (0.cvs20060823-3.1) unstable; urgency=medium + + * Non-maintainer upload. + * Fix variable substitution trick in debian/rules (Closes: #386458). + + -- Luk Claes Fri, 15 Sep 2006 21:29:07 +0200 + +ffmpeg (0.cvs20060823-3) unstable; urgency=low + + * debian/rules: + + Take local packages into account when computing shlibs dependencies, so + that ffplay/ffserver depend on the proper libraries (Closes: #386029). + + -- Sam Hocevar (Debian packages) Tue, 5 Sep 2006 17:44:00 +0200 + +ffmpeg (0.cvs20060823-2) unstable; urgency=low + + * debian/patches/020_really_use_liba52.diff: + + New patch: link with the shared liba52 instead of the built-in one. + + * debian/patches/006_mips_pthreads.diff: + + New patch: link libraries with -lpthreads on Linux MIPS because of a + known ld bug. + + * debian/patches/007_disable_ffmpeg_option.diff: + + New patch: add a --disable-ffmpeg option. + + -- Sam Hocevar (Debian packages) Wed, 30 Aug 2006 18:36:52 +0200 + +ffmpeg (0.cvs20060823-1) unstable; urgency=low + + * New SVN snapshot (Closes: #368904). + * debian/control: + + Set policy to 3.7.2. + + Do not build 1394 support on GNU/kFreeBSD or Hurd. Patch courtesy of + Petr Salinger (Closes: #372290). + * debian/rules: + + Minor cleanup. + + Removed --enable-theora, upstream dropped that option. + + * debian/patches/020_mmx_intrinsics.diff: + + Disabled intrinsics workaround because it is no longer necessary and it + causes trouble with some codecs such as H264 (Closes: #373765). + + -- Sam Hocevar (Debian packages) Wed, 23 Aug 2006 12:09:58 +0200 + +ffmpeg (0.cvs20060329-4) unstable; urgency=low + + * debian/control: + + Make each -dev package depend on the corresponding shared library + package (Closes: #361348). + + Moved libavutil files from libavformat-dev to libavcodec-dev which is + the real common dependency (Closes: #361269). + + -- Sam Hocevar (Debian packages) Sun, 9 Apr 2006 15:23:37 +0200 + +ffmpeg (0.cvs20060329-3) unstable; urgency=low + + * debian/rules: that build system is hopeless. We now run configure and + make twice, backup static libraries inbetween, then update timestamps + to fool make. That should fix the FTBFS (Closes: #361215). + + -- Sam Hocevar (Debian packages) Fri, 7 Apr 2006 11:33:15 +0200 + +ffmpeg (0.cvs20060329-2) unstable; urgency=low + + * debian/rules: fixed Makefile.pic generation. + + -- Sam Hocevar (Debian packages) Thu, 6 Apr 2006 16:37:05 +0200 + +ffmpeg (0.cvs20060329-1) unstable; urgency=low + + * New CVS snapshot. + * Upstream fixed a double free in img.c (Closes: #351455). + * Upstream fixed the libvorbisenc dependency in libavcodec.pc + (Closes: #357352). + + * debian/rules: + + Activated threading support (Closes: #335677). + + Manually reinstall dsputil.h. + + * debian/README.Debian: + + Removed mention of --plugin-libs. + + Added a note about the unofficial packages (Closes: #306752). + + * 020_disable_snow_mmx_in_pic.diff: (new patch) disable MMX acceleration in + the Snow encoder in PIC mode. + + -- Sam Hocevar (Debian packages) Thu, 30 Mar 2006 10:41:17 +0200 + +ffmpeg (0.cvs20060306-3) unstable; urgency=low + + * Switched patch system to quilt. + * debian/control: + + Build-depend on quilt. + + * 005_altivec_flags.diff: (new patch from old diff.gz) proper gcc flags to + only generate AltiVec code when explicitely asked. + + * 005_m68k_workaround.diff: (new patch from old diff.gz) use -O2 instead of + -O3 on m68k. + + * 005_runtime_cpudetect.diff: (new patch from old diff.gz) fix runtime CPU + detection on m68k and x86. + + * 010_ffmpeg-config.diff: (new patch from old diff.gz) the ffmpeg-config + script and associated manpage (legacy). + + * 010_shared_library_versioning.diff: (new patch from old diff.gz) use a + Debian-specific scheme for shared library versioning to avoid spreading + libraries incompatible with every other version. + + * 020_mmx_intrinsics.diff: (new patch from old diff.gz) use MMX intrinsics + in dsputil_mmx.c because gcc is unable to compute some register constraints + in PIC mode. + + * 020_mmx_pic_code.diff: (new patch from old diff.gz) ported some MMX code + to be PIC. + + -- Sam Hocevar (Debian packages) Wed, 29 Mar 2006 18:53:35 +0200 + +ffmpeg (0.cvs20060306-2) unstable; urgency=low + + * ffmpeg-config.in: removed references to _pic libraries. + + -- Sam Hocevar (Debian packages) Fri, 17 Mar 2006 20:08:29 +0100 + +ffmpeg (0.cvs20060306-1) unstable; urgency=low + + * New CVS snapshot. + * Upstream now properly installs dsputil.h (Closes: #354391). + * debian/control: + + Distribute shared versions of the libraries with a Debian-specific + soname. + * debian/rules: + + Removed all custom PIC rules. + + Moved ffmpeg-config to libavformat-dev instead of libavcodec-dev so that + it is present by default (Closes: #350750). + + Include apiexample.c in libavcodec-dev (Closes: #350027). + + -- Sam Hocevar (Debian packages) Mon, 6 Mar 2006 11:05:26 +0100 + +ffmpeg (0.cvs20050918-6) unstable; urgency=low + + * Developer upload. + * Acknowledge NMU. Thanks to Samuel Mimram (Closes: #342207). + * configure: + + Set RUNTIME_CPUDETECT (except on m68k where it ICEs and on x86 where it + fails to build some asm constructs) (Closes: #337846). + * debian/rules: + + Make the build process aware of DEB_BUILD_OPTIONS, thanks to Timo + Lindfors (Closes: #338895). + + -- Sam Hocevar (Debian packages) Sat, 21 Jan 2006 16:51:26 +0100 + +ffmpeg (0.cvs20050918-5.1) unstable; urgency=low + + * NMU. + * Fix exploitable heap overflow in libavcodec's handling of images with + PIX_FMT_PAL8 pixel formats (CVE-2005-4048), closes: #342207. + + -- Samuel Mimram Sun, 15 Jan 2006 14:44:36 +0100 + +ffmpeg (0.cvs20050918-5) unstable; urgency=low + + * ffmpeg-config.1: fixed the examples and added a note that static libraries + should be put after the objects that refer to them (Closes: #339803). + + -- Sam Hocevar (Debian packages) Fri, 18 Nov 2005 23:58:16 +0100 + +ffmpeg (0.cvs20050918-4) unstable; urgency=low + + * configure: + + Tell the configure script about m68k, ia64 and others. + + -- Sam Hocevar (Debian packages) Thu, 22 Sep 2005 14:43:59 +0200 + +ffmpeg (0.cvs20050918-3) unstable; urgency=low + + * configure: + + Use -O2 instead of -O3 on m68k to avoid ICEs. + + -- Sam Hocevar (Debian packages) Tue, 20 Sep 2005 17:33:14 +0200 + +ffmpeg (0.cvs20050918-2) unstable; urgency=low + + * libavcodec/i386/dsputil_mmx.c: + + Reworked the MMX intrinsics. + * tests/libav.regression.ref: + + Minor cosmetic fix to use double-digit numbers in test sequences. + * debian/control: + + PowerPC no longer needs to use gcc-3.4, since 4.x is the default. + * libavcodec/Makefile: + + Removed special compilation case for HPPA now that we use 4.x. + + -- Sam Hocevar (Debian packages) Sun, 18 Sep 2005 17:43:48 +0200 + +ffmpeg (0.cvs20050918-1) unstable; urgency=low + + * New CVS snapshot. + * Upstream applied most Debian patches. + * configure: + + Do not use -mabi=altivec (-maltivec is enough for our AltiVec code) so + that our code still runs on a G3 computer (Closes: #319151). + * debian/rules: + + When not cross-compiling, run the regression tests (Closes: #292102). + * debian/changelog: + + Updated the FSF address. + * ffmpeg-config.in: + + Fixed avcodec linkage (Closes: #328505). + * libavcodec/i386/mpegvideo_mmx_template.c: + + Applied patch from Tobias Grimm to fix the PIC MMX code for MPEG + encoding (Closes: #318493). + * libavcodec/i386/dsputil_mmx.c: + + Applied patch from Joshua Kwan to fix the AMD64 build (Closes: #324026). + + Reworked that patch so that it still compiles on x86. + + -- Sam Hocevar (Debian packages) Fri, 16 Sep 2005 13:03:47 +0200 + +ffmpeg (0.cvs20050811-2) unstable; urgency=low + + * ffmpeg-config.in: added a missing -lgsm. + + -- Sam Hocevar (Debian packages) Mon, 22 Aug 2005 19:51:53 +0200 + +ffmpeg (0.cvs20050811-1) unstable; urgency=low + + * New CVS snapshot. + * Upstream fixed an integer overflow in the MPEG encoder (Closes: #320150). + * debian/rules: + + Activated libgsm support. + + Fixed theora support. + + Switched installation method to dh_install. + * Applied patch from Christian Aichinger and others to fix the clobbering + of the %ebx register during build (Closes: #319563). + + -- Sam Hocevar (Debian packages) Thu, 11 Aug 2005 14:22:03 +0200 + +ffmpeg (0.cvs20050626-2) unstable; urgency=low + + * ffmpeg-config.in: fixed the theora link that caused FTBFS. + + -- Sam Hocevar (Debian packages) Fri, 1 Jul 2005 17:20:59 +0200 + +ffmpeg (0.cvs20050626-1) unstable; urgency=low + + * New CVS snapshot. + * debian/control: + + Set policy to 3.6.2.1. + * debian/rules: + + Fixed Vorbis support (Closes: #306023). + + Patch by Jonas Smedegaard : conditionally enable these + unofficial libraries if DEB_BUILD_OPTIONS includes "risky": + o Mpeg2 layer 3 / MP3 (liblame-dev). + o FAAD (libfaad2-dev). + o FAAC (libfaac-dev). + o XviD (libxvidcore-dev). + + Activated theora support. + + Activated IEEE 1394 support (Closes: #296737). + + -- Sam Hocevar (Debian packages) Sun, 26 Jun 2005 15:46:54 +0200 + +ffmpeg (0.cvs20050313-2) unstable; urgency=low + + * libavcodec/libpostproc/postprocess_template.c + libavcodec/i386/mpegvideo_mmx_template.c: fixed my PIC MMX code (Closes: #299700). + * debian/rules: use gcc-3.4 on PowerPC (Closes: #300686). + + -- Sam Hocevar (Debian packages) Mon, 21 Mar 2005 23:38:46 +0100 + +ffmpeg (0.cvs20050313-1) unstable; urgency=low + + * New CVS snapshot. + * configure: fixed the builtin vector test (Closes: #293284), thanks + to Jacob L. Anawalt. + * libavcodec/libpostproc/postprocess_template.c + libavcodec/i386/mpegvideo_mmx_template.c: fixed MMX code so that it can + be compiled in PIC mode, and reactivated MMX (Closes: #290447, #290358). + + -- Sam Hocevar (Debian packages) Sat, 12 Mar 2005 18:34:29 +0100 + +ffmpeg (0.cvs20050121-1) unstable; urgency=low + + * New CVS snapshot. + * This snapshot fixes integer overflows that may lead to arbitrary code + execution (Closes: #291566). + + -- Sam Hocevar (Debian packages) Fri, 21 Jan 2005 17:41:47 +0100 + +ffmpeg (0.cvs20050108-1) unstable; urgency=low + + * Re-done tarball snapshot so that it does not contain binaries. + * ffmpeg-config.in: + + Added missing -lvorbisenc (Closes: #289030). + * debian/rules: + + Install missing headers that are not in the install rule: bwswap.h, + dsputil.h, os_support.h (Closes: #289033). + + -- Sam Hocevar (Debian packages) Sat, 8 Jan 2005 11:30:58 +0100 + +ffmpeg (0.cvs20050106-1) unstable; urgency=low + + * New upstream snapshot. + * The extern/static declaration conflict was fixed upstream (Closes: #288906). + + -- Sam Hocevar (Debian packages) Thu, 6 Jan 2005 15:44:49 +0100 + +ffmpeg (0.cvs20040716-2) unstable; urgency=low + + * debian/rules: + + Include missing rtp.h / rtsp.h in libavformat-dev. + * ffmpeg-config.in: + + Added -lz to the libavcodec linking flags. + + Added -ldts / -ldts_pic, -la52, -lvorbis to the libavcodec linking flags. + + -- Sam Hocevar (Debian packages) Tue, 17 Aug 2004 13:27:41 +0200 + +ffmpeg (0.cvs20040716-1) unstable; urgency=low -ffmpeg (7:2.4-2) experimental; urgency=medium + * Initial release (Closes: #199266). - * Cherrypick patches from upstream: - - fix-build-when-AV_READ_TIME-is-unavailable.patch: - This fixes building on armel, mipsel and s390x. - - vf_deshake-rename-Transform.vector-to-Transform.vec.patch: - This fixes building on powerpc and ppc64el. - - avcodec-x86-vp9lpf_Always-include-x86util.asm.patch: - This fixes the executable stack lintian warning for libavcodec on i386. - * Add lintian overrides for shlib-with-non-pic-code on i386, where non-PIC - code is allowed. - * Don't enable opencl, because it is considered experimental. - * Bump policy to 3.9.6 (no changes required). - * Mark ffmpeg-doc as Multi-Arch: foreign. - * Install the headers in the triplet subdirectory of /usr/include. - This is necessary, because some headers (e.g. libavutil/avconfig.h) - are architecture-dependant. - - -- Andreas Cadhalpun Thu, 18 Sep 2014 21:54:12 +0200 - -ffmpeg (7:2.4-1) experimental; urgency=medium - - * Import new major upstream release 2.4. (Closes: #729203) - - Fixes CVE-2014-5271: proresenc_ks: fix buffer overflow - - Fixes CVE-2014-5272: iff: fix out of array access - - The non-free image tests/lena.pnm is not shipped anymore. - * Switch Vcs-Browser to the cgit interface. - * In the development packages add symbolic links from the standard lib*.so - library names to the suffixed ones. - This makes it possible to use the normal linker flags, e.g. '-lavcodec', - to link against the FFmpeg libraries with '-ffmpeg' suffix. - * Add missing copyright holders/years to debian/copyright. - * Fix wildcard-matches-nothing-in-dep5-copyright lintian warnings. - * Add qt-faststart to the Recommends: of the ffmpeg binary package. - * Configure with --enable-libshine, since libshine >= 3.0.0 is now available - in Debian. - * Drop pkg-config_file_without_build_suffix.patch and instead create symlinks - from the lib*.pc files to the suffixed lib*-ffmpeg.pc files. - * Install similar symlinks for the static libraries. - * Don't hardcode default.css as CSS filename in debian/ffmpeg-doc.install. - * Drop patches included upstream: - - makeinfo.patch - - Fix-spelling.patch - * Update Change-symbol-versioning.patch. - * Adapt the packaging to the changed library soversions. - * Generalize ffmpeg.lintian-overrides with wildcards. - * Add debian/missing-sources with the sources of the minified CSS files in - the upstream tarball. - * Create the minified CSS files during package build instead of using the - ones shipped in the tarball. - For this add cleancss and node-less to Build-Depends-Indep. - * Update debian/copyright. - - -- Andreas Cadhalpun Sun, 14 Sep 2014 23:53:23 +0200 - -ffmpeg (7:2.3.1-1) experimental; urgency=medium - - * Import new upstream release 2.3.1. (Closes: #729203) - - Fix integer overflow in LZO code. (CVE-2014-4610) - * Fix FTBFS in Ubuntu caused by the -Bsymbolic-functions linker flag. - Thanks to Guillaume Martres for pointing out the fix that Fabian Greffrath - created for the Libav package. - * Don't ignore test failures anymore, since gcc-4.9 has been fixed to - compile FFmpeg correctly. (see #746944) - * Enable libdc1394 only on linux. This fixes FTBFS on !linux-any. - * Use wildcards instead of multiarch paths and sonames in lintian - overrides. - * Fix building on hurd (patch included upstream in 2.2.3). - * Improve the description of the debug package. - * Drop fix-tests.patch. Instead export the LD_LIBRARY_PATH in debian/rules. - * Improve the comment in debian/copyright, explaining the effective license - of the binary packages. - * Change 'Comments:' to the correct 'Comment:' in debian/copyright. - * Add some missing files to debian/copyright. - * Call the upstream Makefile from debian/rules to build the apidoc - instead of calling the doxy-wrapper directly. - * Add _FFMPEG to the symbol versions of the libraries to ensure that there - is no confusion, if a binary is linked against FFmpeg and another shared - library, which is linked against Libav. - * Update patches to apply cleanly to 2.3. - * Add new symbols to the .symbols files. - * Update lintian overrides. - * Include config.log in the build-log, when configure fails. - * Add libgnutls28-dev build-dependency, which was previously pulled in as - a dependency of another build-dependency. - * Install the release notes into /usr/share/doc/ffmpeg. - * Add build-dependencies and enable in debian/rules: - - libbs2b - - libfribidi - * Update debian/copyright. - * Update the dependencies of the *-dev packages. - * Use packaged libjs-jquery instead of the jquery created by doxygen. - * Add Fix-spelling patch to fix spelling errors. - * Mark architecture-dependent symbols as optional. - - -- Andreas Cadhalpun Sat, 09 Aug 2014 14:00:38 +0200 - -ffmpeg (7:2.2.1-1) experimental; urgency=medium - - * Reintroduce FFmpeg to Debian. (Closes: #729203) - There are far to many changes since FFmpeg 0.5 to mention them here, see: - https://git.videolan.org/?p=ffmpeg.git;a=shortlog;h=n2.2.1 - Many security issues have been fixed as well, see: - https://ffmpeg.org/security.html - Among them are: - - 0.5: CVE-2008-4610 - - 0.10: CVE-2011-3941, CVE-2011-3944, CVE-2011-3934, CVE-2011-3946 - - 0.11: CVE-2012-5359, CVE-2012-5360, CVE-2012-5361 - - 1.1: CVE-2012-6618, CVE-2013-0844, CVE-2013-0846, CVE-2013-0848, - CVE-2013-0849, CVE-2013-0850, CVE-2013-0854, CVE-2013-0856, - CVE-2013-0858 - - 1.1.1: CVE-2013-0860 - - 1.1.2: CVE-2013-0865, CVE-2013-0867, CVE-2013-0868, CVE-2013-0869 - - 1.1.3: CVE-2013-0873, CVE-2013-2277 - - 1.2: CVE-2012-5150, CVE-2013-0894, CVE-2013-2495, CVE-2013-2496 - - 2.0: CVE-2013-3670, CVE-2013-3672 - - 2.1: CVE-2013-7009, CVE-2013-7010, CVE-2013-7011, CVE-2013-7015, - CVE-2013-7020 - - 2.1.4: CVE-2014-2263 + -- Sam Hocevar (Debian packages) Fri, 16 Jul 2004 12:47:27 +0200 - -- Andreas Cadhalpun Wed, 07 May 2014 16:40:18 +0200 diff -Nru ffmpeg-2.5/debian/clean ffmpeg-0.10.12/debian/clean --- ffmpeg-2.5/debian/clean 1970-01-01 00:00:00.000000000 +0000 +++ ffmpeg-0.10.12/debian/clean 2014-04-26 06:23:55.000000000 +0000 @@ -0,0 +1,4 @@ +config-extra-includes.h +EXTRA +codecs.txt +formats.txt diff -Nru ffmpeg-2.5/debian/confflags ffmpeg-0.10.12/debian/confflags --- ffmpeg-2.5/debian/confflags 1970-01-01 00:00:00.000000000 +0000 +++ ffmpeg-0.10.12/debian/confflags 2014-04-26 06:23:55.000000000 +0000 @@ -0,0 +1,248 @@ +# -*- mode: makefile -*- +# vim:syntax=make + +export DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH) +export DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE) +export DEB_HOST_ARCH ?= $(shell dpkg-architecture -qDEB_HOST_ARCH) +export DEB_HOST_ARCH_CPU ?= $(shell dpkg-architecture -qDEB_HOST_ARCH_CPU) +export DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE) + +SVNREVISION=$(shell cat .svnrevision 2>/dev/null || echo "UNKNOWN") + +CROSS := +ifneq ($(DEB_BUILD_GNU_TYPE),$(DEB_HOST_GNU_TYPE)) + CROSS := $(DEB_HOST_GNU_TYPE)- +endif + +# list of flavors we want to build +FLAVORS := + +# this outputs 0 or 1 depending on whether a macro appears in the *default* cpp +# -dM -P output; this is used to test the toolchain *default* configuration +check_cpp = $(shell $(CROSS)cpp -dM -P /dev/null | grep -q '^\#define $(1)' && echo 1 || echo 0) + +# this outputs 0 or 1 depending on whether a piece of assembly can be compiled +# with the *default* gcc flags; this is used to test the toolchain *default* +# configuration +check_asm = $(shell echo 'void foo(void) { __asm__ volatile("$(1)"); }' | $(CROSS)gcc -x c -c - -o /dev/null 2>/dev/null && echo 1 || echo 0) + +# the other flavors always build dynamic versions +# Also, disable architecture-specific optimizations for default shared build +ifeq ($(DEB_HOST_ARCH_CPU),arm) + # whether the toolchain *default* configuration includes vfp + vfp_asm := fadds s0, s0, s0 + has_vfp := $(call check_asm, $(vfp_asm)) + # whether the toolchain *default* configuration includes neon + neon_asm := vadd.i16 q0, q0, q0 + has_neon := $(call check_asm, $(neon_asm)) + # whether the toolchain *default* configuration enables ARMv7 + v7_asm := dmb + has_v7 := $(call check_asm, $(v7_asm)) + # whether the toolchain *default* configuration uses -mfloat-abi=soft + has_soft := $(call check_cpp,__SOFTFP__ 1) + + # only build a VFP flavour if the toolchain doesn't enable VFP by default + ifneq ($(has_vfp),1) + FLAVORS += vfp + endif + # only build a NEON flavour if the toolchain doesn't enable NEON by default + ifneq ($(has_neon),1) + FLAVORS += neon + endif + # calling-conventions for VFP and NEON flavours: if the toolchain uses + # -mfloat-abi=soft, we want to use softfp, otherwise we want to use the + # toolchain default (either softfp or hardfp) + ifeq ($(has_soft),1) + float_abi := -mfloat-abi=softfp + else + float_abi := + endif +else ifeq ($(DEB_HOST_ARCH),i386) + FLAVORS += cmov +else ifeq ($(DEB_HOST_ARCH),powerpc) + FLAVORS += altivec + nooptflags += --disable-altivec +else ifeq ($(DEB_HOST_ARCH),sparc) + FLAVORS += vis + nooptflags += --disable-vis +endif + +# build a static version on every architecture in the 'debian' ffmpeg package +FLAVORS += static + +# shared is generic, i.e. without arch specific opcodes +# /!\ order matters, you want to list the shared flavor *last* so that the +# binaries from this flavor overwrite the ones from the optional optimized +# flavor(s) and from the static flavor +FLAVORS += shared + +$(info Building FLAVORS=$(FLAVORS)) + +# Conditionally enable certain features depending on +# the corresponding header file being installed or not +define cond_enable + $(shell test -r $(1) && echo --enable-$(2) ) +endef + +# Common configuration flags +confflags += --arch='$(DEB_HOST_ARCH_CPU)' +confflags += --disable-stripping +confflags += --enable-pthreads +confflags += --enable-runtime-cpudetect +confflags += --extra-version='$(DEB_VERSION)' +confflags += --libdir=/usr/lib/$(DEB_HOST_MULTIARCH) +confflags += --prefix=/usr +confflags += $(shell test -x /usr/bin/yasm || echo --disable-yasm ) + +ifeq ($(DEB_HOST_ARCH),armel) +# this is required on Ubuntu lucid as it defaults to thumb2 and ffmpeg has +# plenty of incompatible assembly; not sure how to detect that properly +confflags += --enable-pic +endif + +ifeq ($(DEB_HOST_ARCH),powerpc) +confflags += --enable-pic +endif + +# Additional features +confflags += $(call cond_enable,/usr/include/bzlib.h,bzlib) +confflags += $(call cond_enable,/usr/include/dc1394/dc1394.h,libdc1394) +confflags += $(call cond_enable,/usr/include/freetype2/freetype/freetype.h,libfreetype) +confflags += $(call cond_enable,/usr/include/frei0r.h,frei0r) +confflags += $(call cond_enable,/usr/include/gnutls/gnutls.h,gnutls) +confflags += $(call cond_enable,/usr/include/gsm/gsm.h,libgsm) +confflags += $(call cond_enable,/usr/include/lame/lame.h,libmp3lame) +confflags += $(call cond_enable,/usr/include/librtmp/http.h,librtmp) +confflags += $(call cond_enable,/usr/include/opencv/cv.hpp,libopencv) +confflags += $(call cond_enable,/usr/include/openjpeg.h,libopenjpeg) +confflags += $(call cond_enable,/usr/include/pulse/simple.h,libpulse) +confflags += $(call cond_enable,/usr/include/schroedinger-1.0/schroedinger/schro.h,libschroedinger) +confflags += $(call cond_enable,/usr/include/speex/speex.h,libspeex) +confflags += $(call cond_enable,/usr/include/theora/theoraenc.h,libtheora) +confflags += $(call cond_enable,/usr/include/va/va.h,vaapi) +confflags += $(call cond_enable,/usr/include/vdpau/vdpau.h,vdpau) +confflags += $(call cond_enable,/usr/include/vorbis/vorbisenc.h,libvorbis) +confflags += $(call cond_enable,/usr/include/vpx/vpx_encoder.h,libvpx) +confflags += $(call cond_enable,/usr/include/zlib.h,zlib) + +# Configuration flags causing the libs to be GPL tainted +gpl_confflags += --enable-gpl +gpl_confflags += --enable-postproc +gpl_confflags += $(call cond_enable,/usr/include/cdio/paranoia.h,libcdio) +gpl_confflags += $(call cond_enable,/usr/include/X11/extensions/XShm.h,x11grab) +gpl_confflags += $(call cond_enable,/usr/include/x264.h,libx264) +# comment out following line for LGPL versions of the libraries +confflags += $(gpl_confflags) + +# Features that require (L)GPL v3 +v3_confflags += --enable-version3 +v3_confflags += $(call cond_enable,/usr/include/opencore-amrnb/interf_dec.h,libopencore-amrnb) +v3_confflags += $(call cond_enable,/usr/include/opencore-amrwb/dec_if.h,libopencore-amrwb) +v3_confflags += $(call cond_enable,/usr/include/vo-aacenc/voAAC.h,libvo-aacenc) +v3_confflags += $(call cond_enable,/usr/include/vo-amrwbenc/enc_if.h,libvo-amrwbenc) + +# Enable hardened build flags through dpkg-buildflags +CFLAGS := $(filter-out -Werror=format-security -g -O2,$(shell dpkg-buildflags --get CFLAGS)) +CPPFLAGS := $(shell dpkg-buildflags --get CPPFLAGS) +LDFLAGS := $(filter-out %-Bsymbolic-functions,$(shell dpkg-buildflags --get LDFLAGS)) + +ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS))) +# Various parts of ffmpeg (and swscale) FTBFS when compiling with -fPIC +# and with mmx code enabled. + confflags += --disable-optimizations + confflags += --disable-mmx +endif + +# Configuration flags for the static libraries +static_build_confflags += $(confflags) +static_build_confflags += --disable-ffmpeg +static_build_confflags += --disable-ffplay +static_build_confflags += --disable-ffprobe +static_build_confflags += --disable-ffserver +static_build_confflags += --disable-doc + +# Configuration flags for the non-optimized shared libraries +shared_build_confflags += $(confflags) --shlibdir=/usr/lib/$(DEB_HOST_MULTIARCH) +# amd64 has no problems with optimized shared libs. i386 and arm do. +ifneq ($(DEB_HOST_ARCH),amd64) +shared_build_confflags += $(nooptflags) +endif +shared_build_confflags += --enable-shared +shared_build_confflags += --disable-static + +## specific to arm architectures +# Configuration flags for the optimised shared libraries +vfp_shlibdir := vfp +vfp_build_confflags += $(confflags) +vfp_build_confflags += --shlibdir=/usr/lib/$(DEB_HOST_MULTIARCH)/$(vfp_shlibdir) +vfp_build_confflags += --enable-shared +vfp_build_confflags += --disable-static +vfp_build_confflags += --extra-cflags="-mfpu=vfp $(float_abi)" +vfp_build_confflags += --disable-ffmpeg +vfp_build_confflags += --disable-ffplay +vfp_build_confflags += --disable-ffprobe +vfp_build_confflags += --disable-ffserver +vfp_build_confflags += --disable-doc +# NB: NEON always implies v7+ and ffmpeg's NEON implementation requires VFP +neon_shlibdir := neon/vfp +neon_build_confflags += $(confflags) +neon_build_confflags += --shlibdir=/usr/lib/$(DEB_HOST_MULTIARCH)/$(neon_shlibdir) +# the NEON pass now requires ubfx which was introduced in armv6t2; we need to +# enable at least armv6t2 for the NEON pass to build, but NEON implies armv7-a +# so pass armv7-a if it's not already enabled +ifneq ($(has_v7),1) +neon_build_confflags += --cpu='armv7-a' +endif +neon_build_confflags += --extra-cflags="-mfpu=neon $(float_abi) -fPIC -DPIC" +neon_build_confflags += --enable-shared +neon_build_confflags += --disable-static +neon_build_confflags += --disable-ffmpeg +neon_build_confflags += --disable-ffplay +neon_build_confflags += --disable-ffprobe +neon_build_confflags += --disable-ffserver +neon_build_confflags += --disable-doc + +## i386 architecture specific +# Configuration flags for the optimized shared libraries +cmov_shlibdir := i686/cmov +cmov_build_confflags += $(confflags) +cmov_build_confflags += $(nooptflags) +cmov_build_confflags += --shlibdir=/usr/lib/$(DEB_HOST_MULTIARCH)/$(cmov_shlibdir) +cmov_build_confflags += --cpu='i686' +cmov_build_confflags += --enable-shared +cmov_build_confflags += --disable-static +cmov_build_confflags += --disable-ffmpeg +cmov_build_confflags += --disable-ffplay +cmov_build_confflags += --disable-ffprobe +cmov_build_confflags += --disable-ffserver +cmov_build_confflags += --disable-doc + +## powerpc architecture specific +# Configuration flags for the optimized shared libraries +altivec_shlibdir := altivec +altivec_build_confflags += $(confflags) +altivec_build_confflags += --shlibdir=/usr/lib/$(DEB_HOST_MULTIARCH)/$(altivec_shlibdir) +altivec_build_confflags += --cpu='g4' +altivec_build_confflags += --enable-shared +altivec_build_confflags += --disable-static +altivec_build_confflags += --enable-altivec +altivec_build_confflags += --disable-ffmpeg +altivec_build_confflags += --disable-ffplay +altivec_build_confflags += --disable-ffprobe +altivec_build_confflags += --disable-ffserver +altivec_build_confflags += --disable-doc + +## sparc architecture specific +# Configuration flags for the optimized shared libraries +vis_shlibdir := v9 +vis_build_confflags += $(confflags) +vis_build_confflags += --shlibdir=/usr/lib/$(DEB_HOST_MULTIARCH)/$(vis_shlibdir) +vis_build_confflags += --cpu='sparc64' +vis_build_confflags += --enable-shared +vis_build_confflags += --disable-static +vis_build_confflags += --extra-cflags="-fPIC -DPIC" +vis_build_confflags += --disable-ffmpeg +vis_build_confflags += --disable-ffplay +vis_build_confflags += --disable-ffprobe +vis_build_confflags += --disable-ffserver +vis_build_confflags += --disable-doc diff -Nru ffmpeg-2.5/debian/control ffmpeg-0.10.12/debian/control --- ffmpeg-2.5/debian/control 2014-12-06 17:23:36.000000000 +0000 +++ ffmpeg-0.10.12/debian/control 2014-04-26 06:23:55.000000000 +0000 @@ -1,681 +1,650 @@ Source: ffmpeg -Section: video +Section: libs Priority: optional -Maintainer: Andreas Cadhalpun -Uploaders: Alexander Strasser -Homepage: https://ffmpeg.org/ -Standards-Version: 3.9.6 -Vcs-Git: git://anonscm.debian.org/collab-maint/ffmpeg.git -Vcs-Browser: https://anonscm.debian.org/cgit/collab-maint/ffmpeg.git +Maintainer: Jon Severinsson +XSBC-Original-Maintainer: Debian Multimedia Maintainers +DM-Upload-Allowed: yes +Standards-Version: 3.9.3 +Vcs-Git: git://git.debian.org/git/pkg-multimedia/libav.git +Vcs-Browser: http://git.debian.org/?p=pkg-multimedia/libav.git;a=summary +Homepage: http://ffmpeg.org/ Build-Depends-Indep: -# needed to minify the CSS files - cleancss, -# Autogenerated documentation - doxygen, -# needed to create the CSS files for the HTML manuals - node-less + doxygen Build-Depends: -# needed for some tests: fate-swr-resample-*, fate-acodec-* - bc, -# needed for dh - debhelper (>= 9), -# --enable-libflite - flite1-dev, -# --enable-frei0r - frei0r-plugins-dev [!x32], -# --enable-ladspa - ladspa-sdk, -# --enable-libass - libass-dev, -# --enable-libbluray - libbluray-dev, -# --enable-libbs2b - libbs2b-dev, -# autodetected: external library 'bzlib' + debhelper (>= 8.1.3~), + frei0r-plugins-dev, + libasound2-dev [linux-any], libbz2-dev, -# --enable-libcaca - libcaca-dev, -# --enable-libcdio + libcdio-cdda-dev, + libcdio-dev, libcdio-paranoia-dev, -# autodetected 'crystalhd' - libcrystalhd-dev [amd64 i386], -# --enable-libdc1394 + libcv-dev, libdc1394-22-dev [linux-any], -# --enable-libfontconfig - libfontconfig1-dev, -# --enable-libfreetype libfreetype6-dev, -# --enable-fribidi - libfribidi-dev, -# --enable-opengl - libgl1-mesa-dev, -# --enable-libgme - libgme-dev, -# --enable-gnutls - libgnutls28-dev [!sparc64] | libgnutls-dev [!sparc64], -# --enable-libgsm + libgnutls-dev, libgsm1-dev, -# Fails to be detected by configure script, if not also libavc1394-dev is installed. -# --enable-libiec61883 - libiec61883-dev [linux-any], - libavc1394-dev [linux-any], -# autodetected: indev 'jack' - libjack-jackd2-dev, -# --enable-libmodplug - libmodplug-dev, -# --enable-libmp3lame - libmp3lame-dev, -# --enable-openal - libopenal-dev [!sparc64], -# --enable-libopencv - libopencv-dev [!m68k !powerpcspe !sh4 !sparc64 !x32], -# --enable-libopenjpeg + libimlib2-dev, + libjack-dev, + liblzo2-dev, + libmp3lame-dev (>= 3.98.3), + libopencore-amrnb-dev, + libopencore-amrwb-dev, + libopencv-dev, libopenjpeg-dev, -# --enable-libopus - libopus-dev, -# Disabled, as it might produce problems. -# # --enable-libquvi -# libquvi-dev, -# --enable-libpulse libpulse-dev, -# --enable-librtmp - librtmp-dev [!powerpcspe !sparc64], -# --enable-libschroedinger + libraw1394-dev [linux-any], + librtmp-dev, libschroedinger-dev, -# autodetected: protocol 'sctp' - libsctp-dev [linux-any], -# autodetected: SDL support - libsdl-dev [!x32], -# --enable-libshine - libshine-dev (>= 3.0.0), -# --enable-libsoxr - libsoxr-dev [!sparc64], -# --enable-libspeex + libsdl1.2-dev, libspeex-dev, -# --enable-libssh - libssh-dev, -# --enable-libtheora libtheora-dev, -# --enable-libtwolame - libtwolame-dev, -# This is not necessary, see explanation in debian/rules. -# # --enable-libv4l2 -# libv4l-dev [!hurd-any], -# autodetected: hwaccels 'h263_vaapi, mpeg2_vaapi, vc1_vaapi, h264_vaapi, mpeg4_vaapi, wmv3_vaapi' + libtiff-dev | libtiff4-dev | libtiff5-dev, libva-dev [!hurd-any], -# autodetected: hwaccels 'h263_vdpau, mpeg2_vdpau, vc1_vdpau, h264_vdpau, mpeg4_vdpau, wmv3_vdpau, mpeg1_vdpau', decoders 'h264_vdpau, mpeg1_vdpau, mpeg4_vdpau, mpeg_vdpau, vc1_vdpau, wmv3_vdpau' libvdpau-dev, -# --enable-libvorbis + libvo-aacenc-dev, + libvo-amrwbenc-dev, libvorbis-dev, -# --enable-libvpx - libvpx-dev [!x32], -# --enable-libwavpack - libwavpack-dev, -# --enable-libwebp - libwebp-dev, -# --enable-libx264 - libx264-dev [!x32], -# --enable-libx265 - libx265-dev [!sparc !hppa !m68k !powerpcspe !sh4 !sparc64 !x32], -# --enable-x11grab + libvpx-dev (>= 0.9.6), + libx11-dev, + libx264-dev (>= 2:0.118), libxext-dev, -# --enable-libxvid - libxvidcore-dev, -# autodetected: decoder 'mpeg_xvmc'; outdev 'xv' + libxfixes-dev, libxvmc-dev, -# --enable-libzmq - libzmq3-dev [!hurd-any], -# --enable-libzvbi - libzvbi-dev [!hurd-any !kfreebsd-any !m68k], -# The opencl API is considered experimental. -# # --enable-opencl -# ocl-icd-opencl-dev [!hurd-any] | opencl-dev [!hurd-any], -# HTML documentation - texinfo, -# assembler optimizations - yasm, -# make build more binary-reproducible - faketime + texi2html, + yasm [any-amd64 any-i386], + zlib1g-dev Package: ffmpeg +Section: video Architecture: any -Multi-Arch: foreign +Replaces: + libav-tools (<< 7:0.10~), + libavcodec-extra-52 (<< 4:0.6~), + libavcodec52 (<< 4:0.6-2~) +Pre-Depends: + dpkg (>= 1.15.6~), + ${misc:Pre-Depends} +Depends: + ${misc:Depends}, + ${shlibs:Depends} +Breaks: + libav-tools (<< 7:0.10~) +Suggests: + frei0r-plugins +Conflicts: + ffprobe +Description: Multimedia player, server, encoder and transcoder + FFmpeg is a complete, cross-platform solution to decode, encode, record, + convert and stream audio and video. + . + This package contains the ffplay multimedia player, the ffserver + streaming server, the ffmpeg audio and video encoder, and the ffprobe + stream analyzer. They support most existing file formats (AVI, MPEG, + OGG, Matroska, ASF...) and encoding formats (MPEG, DivX, MPEG4, AC3, + DV...). Additionally, it contains the qt-faststart utility which + rearranges Quicktime files to facilitate network streaming. + +Package: libav-tools +Section: oldlibs +Priority: extra +Architecture: all Depends: - ${shlibs:Depends}, + ffmpeg (>= 7:0.10~), ${misc:Depends} -Recommends: - qt-faststart -Description: Tools for transcoding, streaming and playing of multimedia files - FFmpeg is the leading multimedia framework, able to decode, encode, transcode, - mux, demux, stream, filter and play pretty much anything that humans and - machines have created. It supports the most obscure ancient formats up to the - cutting edge. - . - This package contains: - * ffmpeg: a command line tool to convert multimedia files between formats - * ffserver: a multimedia streaming server for live broadcasts - * ffplay: a simple media player based on SDL and the FFmpeg libraries - * ffprobe: a simple multimedia stream analyzer - . - NOTE: It does not contain qt-faststart to avoid a conflict with libav-tools. - If you need qt-faststart from FFmpeg, install the package qt-faststart, - which is recommended by this package. - -Package: qt-faststart -Architecture: any -Multi-Arch: foreign -Depends: - ${shlibs:Depends}, - ${misc:Depends} -Breaks: ffmpeg (<< 7:2) -Replaces: ffmpeg (<< 7:2) -Description: Utility to rearrange a Quicktime file - FFmpeg is the leading multimedia framework, able to decode, encode, transcode, - mux, demux, stream, filter and play pretty much anything that humans and - machines have created. It supports the most obscure ancient formats up to the - cutting edge. - . - This package contains qt-faststart, a utility that rearranges a Quicktime - file such that the moov atom is in front of the data, thus facilitating - network streaming. +Description: Multimedia player, server, encoder and transcoder (transitional package) + FFmpeg is a complete, cross-platform solution to decode, encode, record, + convert and stream audio and video. . - NOTE: It diverts the qt-faststart from libav-tools to qt-faststart.libav. + This package is only used for transitional purposes and can be safely + removed when no other packages depend on this package. + +Package: libav-dbg +Section: oldlibs +Priority: extra +Architecture: all +Depends: + ffmpeg-dbg (>= 7:0.10~), + ${misc:Depends} +Description: Debug symbols for FFmpeg related packages (transitional package) + FFmpeg is a complete, cross-platform solution to decode, encode, record, + convert and stream audio and video. + . + This package is only used for transitional purposes and can be safely + removed when no other packages depend on this package. Package: ffmpeg-dbg Section: debug Priority: extra Architecture: any -Multi-Arch: same +Replaces: + libav-dbg (<< 7:0.10~), + libav-extra-dbg (<< 7:0.10~), + ffmpeg-extra-dbg (<< 7:0.10~) +Breaks: + libav-dbg (<< 7:0.10~), + libav-extra-dbg (<< 7:0.10~), + ffmpeg-extra-dbg (<< 7:0.10~) +Pre-Depends: + dpkg (>= 1.15.6~), + ${misc:Pre-Depends} Depends: ffmpeg (= ${binary:Version}), - libavcodec-ffmpeg56 (= ${binary:Version}), - libavdevice-ffmpeg56 (= ${binary:Version}), - libavfilter-ffmpeg5 (= ${binary:Version}), - libavformat-ffmpeg56 (= ${binary:Version}), - libavutil-ffmpeg54 (= ${binary:Version}), - libpostproc-ffmpeg53 (= ${binary:Version}), - libswresample-ffmpeg1 (= ${binary:Version}), - libswscale-ffmpeg3 (= ${binary:Version}), - ${misc:Depends} -Description: Debug symbols for the FFmpeg multimedia framework - FFmpeg is the leading multimedia framework, able to decode, encode, transcode, - mux, demux, stream, filter and play pretty much anything that humans and - machines have created. It supports the most obscure ancient formats up to the - cutting edge. + libavcodec53 (= ${binary:Version}) | libavcodec-extra-53 (= ${binary:Version}), + libavdevice53 (= ${binary:Version}), + libavformat53 (= ${binary:Version}), + libavfilter2 (= ${binary:Version}), + libavutil51 (= ${binary:Version}), + libpostproc52 (= ${binary:Version}), + libswscale2 (= ${binary:Version}), + libswresample0 (= ${binary:Version}), + ${misc:Depends} +Description: Debug symbols for FFmpeg related packages + FFmpeg is a complete, cross-platform solution to decode, encode, record, + convert and stream audio and video. . - This package contains the debug symbols used to produce useful debugging - back-traces. + This package contains debug data of the FFmpeg related shared libraries. + . + Most people will not need this package. Please install it to produce useful + stacktraces to help debugging the FFmpeg library. -Package: ffmpeg-doc -Section: doc +Package: libav-extra-dbg +Section: oldlibs +Priority: extra Architecture: all -Multi-Arch: foreign Depends: - libjs-jquery, + ffmpeg-dbg (>= 7:0.10~), ${misc:Depends} -Description: Documentation of the FFmpeg multimedia framework - FFmpeg is the leading multimedia framework, able to decode, encode, transcode, - mux, demux, stream, filter and play pretty much anything that humans and - machines have created. It supports the most obscure ancient formats up to the - cutting edge. +Description: Debug symbols for FFmpeg related packages (transitional package) + FFmpeg is a complete, cross-platform solution to decode, encode, record, + convert and stream audio and video. . - This package contains the HTML documentation for the FFmpeg multimedia - framework including the API documentation created by doxygen and the manpages - for the libraries. + This package is only used for transitional purposes and can be safely + removed when no other packages depend on this package. -Package: libavcodec-ffmpeg56 -Architecture: any -Section: libs -Multi-Arch: same +Package: ffmpeg-extra-dbg +Section: oldlibs +Priority: extra +Architecture: all +Depends: + ffmpeg-dbg (>= 7:0.10~), + ${misc:Depends} +Description: Debug symbols for FFmpeg related packages (transitional package) + FFmpeg is a complete, cross-platform solution to decode, encode, record, + convert and stream audio and video. + . + This package is only used for transitional purposes and can be safely + removed when no other packages depend on this package. + +Package: libav-doc +Section: oldlibs +Priority: extra +Architecture: all +Depends: + ffmpeg-doc (>= 7:0.10~), + ${misc:Depends} +Description: Documentation of the FFmpeg API (transitional package) + FFmpeg is a complete, cross-platform solution to decode, encode, record, + convert and stream audio and video. + . + This package is only used for transitional purposes and can be safely + removed when no other packages depend on this package. + +Package: ffmpeg-doc +Section: doc +Architecture: all Pre-Depends: + dpkg (>= 1.15.6~), ${misc:Pre-Depends} Depends: - ${shlibs:Depends}, ${misc:Depends} -Description: FFmpeg library with de/encoders for audio/video codecs - runtime files - FFmpeg is the leading multimedia framework, able to decode, encode, transcode, - mux, demux, stream, filter and play pretty much anything that humans and - machines have created. It supports the most obscure ancient formats up to the - cutting edge. +Breaks: + libav-doc (<< 7:0.10~) +Replaces: + libav-doc (<< 7:0.10~) +Description: Documentation of the FFmpeg API + FFmpeg is a complete, cross-platform solution to decode, encode, record, + convert and stream audio and video. . - This library provides a generic encoding/decoding framework and - contains multiple decoders and encoders for audio, video and subtitle streams, - and several bitstream filters. + This package contains the html doxygen documentation of the FFmpeg API. . - The shared architecture provides various services ranging from bit stream I/O - to DSP optimizations, and makes it suitable for implementing robust and fast - codecs as well as for experimentation. - . - This package contains the runtime files. + Only application developers will find this package useful. -Package: libavcodec-ffmpeg-dev +Package: libavutil51 Architecture: any -Section: libdevel Multi-Arch: same -Conflicts: - libavcodec-dev +Pre-Depends: + dpkg (>= 1.15.6~), + ${misc:Pre-Depends} Depends: - libavcodec-ffmpeg56 (= ${binary:Version}), - libavutil-ffmpeg-dev (= ${binary:Version}), - libswresample-ffmpeg-dev (= ${binary:Version}), - ${misc:Depends} -Description: FFmpeg library with de/encoders for audio/video codecs - development files - FFmpeg is the leading multimedia framework, able to decode, encode, transcode, - mux, demux, stream, filter and play pretty much anything that humans and - machines have created. It supports the most obscure ancient formats up to the - cutting edge. - . - This library provides a generic encoding/decoding framework and - contains multiple decoders and encoders for audio, video and subtitle streams, - and several bitstream filters. + ${misc:Depends}, + ${shlibs:Depends} +Provides: + libavutil-extra-51 +Replaces: + libavutil-extra-51 +Breaks: + libavutil-extra-51 (<< 7:0.10~) +Description: FFmpeg utility library + FFmpeg is a complete, cross-platform solution to decode, encode, record, + convert and stream audio and video. . - The shared architecture provides various services ranging from bit stream I/O - to DSP optimizations, and makes it suitable for implementing robust and fast - codecs as well as for experimentation. - . - This package contains the development files. + This is the common utility library from FFmpeg. It contains shared code + used by all other FFmpeg libraries. -Package: libavdevice-ffmpeg56 +Package: libavcodec53 Architecture: any -Section: libs Multi-Arch: same Pre-Depends: + dpkg (>= 1.15.6~), ${misc:Pre-Depends} Depends: - ${shlibs:Depends}, - ${misc:Depends} -Description: FFmpeg library for handling input and output devices - runtime files - FFmpeg is the leading multimedia framework, able to decode, encode, transcode, - mux, demux, stream, filter and play pretty much anything that humans and - machines have created. It supports the most obscure ancient formats up to the - cutting edge. + ${misc:Depends}, + ${shlibs:Depends} +Breaks: + libavcodec-extra-53, + mplayer (<< 2:1.0~rc4.dfsg1+svn34540-1~) +Description: FFmpeg codec library + FFmpeg is a complete, cross-platform solution to decode, encode, record, + convert and stream audio and video. . - This library provides a generic framework for grabbing from and rendering to - many common multimedia input/output devices, and supports several input and - output devices, including Video4Linux2, VfW, DShow, and ALSA. + This is the codec library from FFmpeg (both encoding and decoding). . - This package contains the runtime files. + It supports most existing codecs (MPEG, MPEG2, MPEG4, AC3, DV...). -Package: libavdevice-ffmpeg-dev +Package: libavdevice53 Architecture: any -Section: libdevel Multi-Arch: same -Conflicts: - libavdevice-dev +Pre-Depends: + dpkg (>= 1.15.6~), + ${misc:Pre-Depends} Depends: - libavcodec-ffmpeg-dev (= ${binary:Version}), - libavdevice-ffmpeg56 (= ${binary:Version}), - libavfilter-ffmpeg-dev (= ${binary:Version}), - libavformat-ffmpeg-dev (= ${binary:Version}), - libavresample-ffmpeg-dev (= ${binary:Version}), - libavutil-ffmpeg-dev (= ${binary:Version}), - libpostproc-ffmpeg-dev (= ${binary:Version}), - libswscale-ffmpeg-dev (= ${binary:Version}), - libswresample-ffmpeg-dev (= ${binary:Version}), - ${misc:Depends} -Description: FFmpeg library for handling input and output devices - development files - FFmpeg is the leading multimedia framework, able to decode, encode, transcode, - mux, demux, stream, filter and play pretty much anything that humans and - machines have created. It supports the most obscure ancient formats up to the - cutting edge. - . - This library provides a generic framework for grabbing from and rendering to - many common multimedia input/output devices, and supports several input and - output devices, including Video4Linux2, VfW, DShow, and ALSA. + ${misc:Depends}, + ${shlibs:Depends} +Provides: + libavdevice-extra-53 +Replaces: + libavdevice-extra-53 +Breaks: + libavdevice-extra-53 (<< 7:0.10~) +Description: FFmpeg device handling library + FFmpeg is a complete, cross-platform solution to decode, encode, record, + convert and stream audio and video. . - This package contains the development files. + This is the device handling library from FFmpeg. -Package: libavfilter-ffmpeg5 +Package: libavformat53 Architecture: any -Section: libs Multi-Arch: same Pre-Depends: + dpkg (>= 1.15.6~), ${misc:Pre-Depends} Depends: - ${shlibs:Depends}, - ${misc:Depends} -Description: FFmpeg library containing media filters - runtime files - FFmpeg is the leading multimedia framework, able to decode, encode, transcode, - mux, demux, stream, filter and play pretty much anything that humans and - machines have created. It supports the most obscure ancient formats up to the - cutting edge. + ${misc:Depends}, + ${shlibs:Depends} +Provides: + libavformat-extra-53 +Replaces: + libavformat-extra-53 +Breaks: + libavformat-extra-53 (<< 7:0.10~) +Description: FFmpeg file format library + FFmpeg is a complete, cross-platform solution to decode, encode, record, + convert and stream audio and video. . - This library provides a generic audio/video filtering framework containing - several filters, sources and sinks. + This is the library for handling file formats from FFmpeg. . - This package contains the runtime files. + It supports most existing file formats (AVI, MPEG, OGG, Matroska, + ASF...). -Package: libavfilter-ffmpeg-dev +Package: libavfilter2 Architecture: any -Section: libdevel Multi-Arch: same -Conflicts: - libavfilter-dev +Pre-Depends: + dpkg (>= 1.15.6~), + ${misc:Pre-Depends} Depends: - libavcodec-ffmpeg-dev (= ${binary:Version}), - libavfilter-ffmpeg5 (= ${binary:Version}), - libavformat-ffmpeg-dev (= ${binary:Version}), - libavresample-ffmpeg-dev (= ${binary:Version}), - libavutil-ffmpeg-dev (= ${binary:Version}), - libpostproc-ffmpeg-dev (= ${binary:Version}), - libswresample-ffmpeg-dev (= ${binary:Version}), - libswscale-ffmpeg-dev (= ${binary:Version}), - ${misc:Depends} -Description: FFmpeg library containing media filters - development files - FFmpeg is the leading multimedia framework, able to decode, encode, transcode, - mux, demux, stream, filter and play pretty much anything that humans and - machines have created. It supports the most obscure ancient formats up to the - cutting edge. - . - This library provides a generic audio/video filtering framework containing - several filters, sources and sinks. + ${misc:Depends}, + ${shlibs:Depends} +Suggests: + frei0r-plugins (>= 1.3) +Provides: + libavfilter-extra-2 +Replaces: + libavfilter-extra-2 +Breaks: + libavfilter-extra-2 (<< 7:0.10~) +Description: FFmpeg video filtering library + FFmpeg is a complete, cross-platform solution to decode, encode, record, + convert and stream audio and video. . - This package contains the development files. + This is the video filtering library from FFmpeg. -Package: libavformat-ffmpeg56 +Package: libpostproc52 Architecture: any -Section: libs Multi-Arch: same Pre-Depends: + dpkg (>= 1.15.6~), ${misc:Pre-Depends} Depends: - ${shlibs:Depends}, - ${misc:Depends} -Description: FFmpeg library with (de)muxers for multimedia containers - runtime files - FFmpeg is the leading multimedia framework, able to decode, encode, transcode, - mux, demux, stream, filter and play pretty much anything that humans and - machines have created. It supports the most obscure ancient formats up to the - cutting edge. - . - This library provides a generic framework for multiplexing and demultiplexing - (muxing and demuxing) audio, video and subtitle streams. It encompasses - multiple muxers and demuxers for multimedia container formats. It also - supports several input and output protocols to access a media resource. + ${misc:Depends}, + ${shlibs:Depends} +Provides: + libpostproc-extra-52 +Replaces: + libpostproc-extra-52 +Breaks: + libpostproc-extra-52 (<< 7:0.10~) +Description: FFmpeg video postprocessing library + FFmpeg is a complete, cross-platform solution to decode, encode, record, + convert and stream audio and video. . - This package contains the runtime files. + This is the video postprocessing library from FFmpeg. -Package: libavformat-ffmpeg-dev +Package: libswscale2 Architecture: any -Section: libdevel Multi-Arch: same -Conflicts: - libavformat-dev +Pre-Depends: + dpkg (>= 1.15.6~), + ${misc:Pre-Depends} Depends: - libavcodec-ffmpeg-dev (= ${binary:Version}), - libavformat-ffmpeg56 (= ${binary:Version}), - libavutil-ffmpeg-dev (= ${binary:Version}), - libswresample-ffmpeg-dev (= ${binary:Version}), - ${misc:Depends} -Description: FFmpeg library with (de)muxers for multimedia containers - development files - FFmpeg is the leading multimedia framework, able to decode, encode, transcode, - mux, demux, stream, filter and play pretty much anything that humans and - machines have created. It supports the most obscure ancient formats up to the - cutting edge. - . - This library provides a generic framework for multiplexing and demultiplexing - (muxing and demuxing) audio, video and subtitle streams. It encompasses - multiple muxers and demuxers for multimedia container formats. It also - supports several input and output protocols to access a media resource. + ${misc:Depends}, + ${shlibs:Depends} +Provides: + libswscale-extra-2 +Replaces: + libswscale-extra-2 +Breaks: + libswscale-extra-2 (<< 7:0.10~) +Description: FFmpeg video software scaling library + FFmpeg is a complete, cross-platform solution to decode, encode, record, + convert and stream audio and video. . - This package contains the development files. + This is the video software scaling library from FFmpeg. -Package: libavresample-ffmpeg2 +Package: libswresample0 Architecture: any -Section: libs Multi-Arch: same Pre-Depends: + dpkg (>= 1.15.6~), ${misc:Pre-Depends} Depends: - ${shlibs:Depends}, + ${misc:Depends}, + ${shlibs:Depends} +Description: FFmpeg video software resampling library + FFmpeg is a complete, cross-platform solution to decode, encode, record, + convert and stream audio and video. + . + This is the video software resampling library from FFmpeg. + +Package: libavutil-dev +Section: libdevel +Architecture: any +Depends: + libavutil51 (= ${binary:Version}), ${misc:Depends} -Description: FFmpeg compatibility library for resampling - runtime files - FFmpeg is the leading multimedia framework, able to decode, encode, transcode, - mux, demux, stream, filter and play pretty much anything that humans and - machines have created. It supports the most obscure ancient formats up to the - cutting edge. +Description: Development files for libavutil + FFmpeg is a complete, cross-platform solution to decode, encode, record, + convert and stream audio and video. . - This library is provided for compatibility reasons only. - The FFmpeg project advises to use libswresample instead. + This is the common utility library from FFmpeg. . - This package contains the runtime files. + This package contains the header files and static libraries needed to + compile applications or shared objects that use libavutil. -Package: libavresample-ffmpeg-dev -Architecture: any +Package: libavcodec-dev Section: libdevel -Multi-Arch: same -Conflicts: - libavresample-dev +Architecture: any Depends: - libavutil-ffmpeg-dev (= ${binary:Version}), - libavresample-ffmpeg2 (= ${binary:Version}), + libavcodec53 (<= ${source:Upstream-Version}-99) | libavcodec-extra-53 (<= ${source:Upstream-Version}-99), + libavcodec53 (>= ${binary:Version}) | libavcodec-extra-53 (>= ${binary:Version}), + libavutil-dev (= ${binary:Version}), ${misc:Depends} -Description: FFmpeg compatibility library for resampling - development files - FFmpeg is the leading multimedia framework, able to decode, encode, transcode, - mux, demux, stream, filter and play pretty much anything that humans and - machines have created. It supports the most obscure ancient formats up to the - cutting edge. +Suggests: + libdc1394-22-dev [linux-any], + libgsm1-dev, + libogg-dev, + libraw1394-dev [linux-any], + libschroedinger-dev, + libspeex-dev, + libtheora-dev (>> 0.0.0.alpha4), + libvorbis-dev, + libx11-dev, + libxext-dev, + zlib1g-dev +Description: Development files for libavcodec + FFmpeg is a complete, cross-platform solution to decode, encode, record, + convert and stream audio and video. . - This library is provided for compatibility reasons only. - The FFmpeg project advises to use libswresample instead. + This is the codec library from FFmpeg. It supports most existing + encoding formats (MPEG, DivX, MPEG4, AC3, DV...). . - This package contains the development files. + This package contains the header files and static libraries needed to + compile applications or shared objects that use libavcodec. -Package: libavutil-ffmpeg54 +Package: libavdevice-dev +Section: libdevel Architecture: any -Section: libs -Multi-Arch: same -Pre-Depends: - ${misc:Pre-Depends} Depends: - ${shlibs:Depends}, + libavdevice53 (= ${binary:Version}), + libavformat-dev (= ${binary:Version}), ${misc:Depends} -Description: FFmpeg library with functions for simplifying programming - runtime files - FFmpeg is the leading multimedia framework, able to decode, encode, transcode, - mux, demux, stream, filter and play pretty much anything that humans and - machines have created. It supports the most obscure ancient formats up to the - cutting edge. - . - This library is a utility library to aid portable multimedia programming. - It contains safe portable string functions, random number generators, data - structures, additional mathematics functions, cryptography and multimedia - related functionality (like enumerations for pixel and sample formats). - It is not a library for code needed by both libavcodec and libavformat. - The goal for this library is to be modular, small, efficient and useful. +Description: Development files for libavdevice + FFmpeg is a complete, cross-platform solution to decode, encode, record, + convert and stream audio and video. + . + This is the device handling library from FFmpeg. . - This package contains the runtime files. + This package contains the header files and static libraries needed to + compile applications or shared objects that use libavdevice. -Package: libavutil-ffmpeg-dev -Architecture: any +Package: libavformat-dev Section: libdevel -Multi-Arch: same -Conflicts: - libavutil-dev +Architecture: any Depends: - libavutil-ffmpeg54 (= ${binary:Version}), + libavcodec-dev (= ${binary:Version}), + libavformat53 (= ${binary:Version}), + libavutil-dev (= ${binary:Version}), ${misc:Depends} -Description: FFmpeg library with functions for simplifying programming - development files - FFmpeg is the leading multimedia framework, able to decode, encode, transcode, - mux, demux, stream, filter and play pretty much anything that humans and - machines have created. It supports the most obscure ancient formats up to the - cutting edge. - . - This library is a utility library to aid portable multimedia programming. - It contains safe portable string functions, random number generators, data - structures, additional mathematics functions, cryptography and multimedia - related functionality (like enumerations for pixel and sample formats). - It is not a library for code needed by both libavcodec and libavformat. - The goal for this library is to be modular, small, efficient and useful. +Description: Development files for libavformat + FFmpeg is a complete, cross-platform solution to decode, encode, record, + convert and stream audio and video. . - This package contains the development files. + This is the demuxer library from FFmpeg. It supports most + existing file formats (AVI, MPEG, OGG, Matroska, ASF...). + . + This package contains the header files and static libraries needed to + compile applications or shared objects that use libavformat. -Package: libpostproc-ffmpeg53 +Package: libavfilter-dev +Section: libdevel Architecture: any -Section: libs -Multi-Arch: same -Pre-Depends: - ${misc:Pre-Depends} Depends: - ${shlibs:Depends}, + libavcodec-dev (= ${binary:Version}), + libavfilter2 (= ${binary:Version}), ${misc:Depends} -Description: FFmpeg library for post processing - runtime files - FFmpeg is the leading multimedia framework, able to decode, encode, transcode, - mux, demux, stream, filter and play pretty much anything that humans and - machines have created. It supports the most obscure ancient formats up to the - cutting edge. +Description: Development files for libavfilter + FFmpeg is a complete, cross-platform solution to decode, encode, record, + convert and stream audio and video. . - This library provides video post processing. + This is the video filtering library from FFmpeg. . - This package contains the runtime files. + This package contains the header files and static libraries needed to + compile applications or shared objects that use libavfilter. -Package: libpostproc-ffmpeg-dev -Architecture: any +Package: libpostproc-dev Section: libdevel -Multi-Arch: same -Conflicts: - libpostproc-dev +Architecture: any Depends: - libavutil-ffmpeg-dev (= ${binary:Version}), - libpostproc-ffmpeg53 (= ${binary:Version}), + libavutil-dev (= ${binary:Version}), + libpostproc52 (= ${binary:Version}), ${misc:Depends} -Description: FFmpeg library for post processing - development files - FFmpeg is the leading multimedia framework, able to decode, encode, transcode, - mux, demux, stream, filter and play pretty much anything that humans and - machines have created. It supports the most obscure ancient formats up to the - cutting edge. +Description: Development files for libpostproc + FFmpeg is a complete, cross-platform solution to decode, encode, record, + convert and stream audio and video. . - This library provides video post processing. + This is the video postprocessing library from FFmpeg. . - This package contains the development files. + This package contains the header files and static libraries needed to + compile applications or shared objects that use libpostproc. -Package: libswresample-ffmpeg1 +Package: libswscale-dev +Section: libdevel Architecture: any -Section: libs -Multi-Arch: same -Pre-Depends: - ${misc:Pre-Depends} Depends: - ${shlibs:Depends}, + libavutil-dev (= ${binary:Version}), + libswscale2 (= ${binary:Version}), ${misc:Depends} -Description: FFmpeg library for audio resampling, rematrixing etc. - runtime files - FFmpeg is the leading multimedia framework, able to decode, encode, transcode, - mux, demux, stream, filter and play pretty much anything that humans and - machines have created. It supports the most obscure ancient formats up to the - cutting edge. - . - This library provides performs highly optimized audio resampling, rematrixing - and sample format conversion operations. - Specifically, this library performs the following conversions: - * Resampling is the process of changing the audio rate, for example from a - high sample rate of 44100Hz to 8000Hz. Audio conversion from high to low - sample rate is a lossy process. Several resampling options and algorithms - are available. - * Rematrixing is the process of changing the channel layout, for example from - stereo to mono. When the input channels cannot be mapped to the output - streams, the process is lossy, since it involves different gain factors - and mixing. Various other audio conversions (e.g. stretching and padding) - are enabled through dedicated options. - * Format conversion is the process of converting the type of samples, for - example from 16-bit signed samples to unsigned 8-bit or float samples. - It also handles packing conversion, when passing from packed layout (all - samples belonging to distinct channels interleaved in the same buffer), to - planar layout (all samples belonging to the same channel stored in a - dedicated buffer or "plane"). +Description: Development files for libswscale + FFmpeg is a complete, cross-platform solution to decode, encode, record, + convert and stream audio and video. . - This package contains the runtime files. + This is the video software scaling library from FFmpeg. + . + This package contains the header files and static libraries needed to + compile applications or shared objects that use libswscale. -Package: libswresample-ffmpeg-dev -Architecture: any +Package: libswresample-dev Section: libdevel -Multi-Arch: same +Architecture: any Depends: - libavutil-ffmpeg-dev (= ${binary:Version}), - libswresample-ffmpeg1 (= ${binary:Version}), + libavutil-dev (= ${binary:Version}), + libswresample0 (= ${binary:Version}), ${misc:Depends} -Description: FFmpeg library for audio resampling, rematrixing etc. - development files - FFmpeg is the leading multimedia framework, able to decode, encode, transcode, - mux, demux, stream, filter and play pretty much anything that humans and - machines have created. It supports the most obscure ancient formats up to the - cutting edge. - . - This library provides performs highly optimized audio resampling, rematrixing - and sample format conversion operations. - Specifically, this library performs the following conversions: - * Resampling is the process of changing the audio rate, for example from a - high sample rate of 44100Hz to 8000Hz. Audio conversion from high to low - sample rate is a lossy process. Several resampling options and algorithms - are available. - * Rematrixing is the process of changing the channel layout, for example from - stereo to mono. When the input channels cannot be mapped to the output - streams, the process is lossy, since it involves different gain factors - and mixing. Various other audio conversions (e.g. stretching and padding) - are enabled through dedicated options. - * Format conversion is the process of converting the type of samples, for - example from 16-bit signed samples to unsigned 8-bit or float samples. - It also handles packing conversion, when passing from packed layout (all - samples belonging to distinct channels interleaved in the same buffer), to - planar layout (all samples belonging to the same channel stored in a - dedicated buffer or "plane"). +Description: Development files for libswresample + FFmpeg is a complete, cross-platform solution to decode, encode, record, + convert and stream audio and video. . - This package contains the development files. + This is the video software resampling library from FFmpeg. + . + This package contains the header files and static libraries needed to + compile applications or shared objects that use libswresample. + +Package: libavutil-extra-51 +Section: oldlibs +Priority: extra +Architecture: all +Depends: + libavutil51, + ${misc:Depends}, +Description: FFmpeg utility library (transitional package) + FFmpeg is a complete, cross-platform solution to decode, encode, record, + convert and stream audio and video. + . + This package is only used for transitional purposes and can be safely + removed when no other packages depend on this package. -Package: libswscale-ffmpeg3 +Package: libavcodec-extra-53 Architecture: any -Section: libs Multi-Arch: same Pre-Depends: + dpkg (>= 1.15.6~), ${misc:Pre-Depends} Depends: - ${shlibs:Depends}, - ${misc:Depends} -Description: FFmpeg library for image scaling and various conversions - runtime files - FFmpeg is the leading multimedia framework, able to decode, encode, transcode, - mux, demux, stream, filter and play pretty much anything that humans and - machines have created. It supports the most obscure ancient formats up to the - cutting edge. - . - This library performs highly optimized image scaling and colorspace and pixel - format conversion operations. - Specifically, this library performs the following conversions: - * Rescaling is the process of changing the video size. Several rescaling - options and algorithms are available. This is usually a lossy process. - * Pixel format conversion is the process of converting the image format and - colorspace of the image, for example from planar YUV420P to RGB24 packed. - It also handles packing conversion, that is converts from packed layout - (all pixels belonging to distinct planes interleaved in the same buffer), - to planar layout (all samples belonging to the same plane stored in a - dedicated buffer or "plane"). This is usually a lossy process in case the - source and destination colorspaces differ. + ${misc:Depends}, + ${shlibs:Depends} +Replaces: + libavcodec53 +Breaks: + libavcodec53, + mplayer (<< 2:1.0~rc4.dfsg1+svn34540-1~) +Description: FFmpeg codec library (additional codecs) + FFmpeg is a complete, cross-platform solution to decode, encode, record, + convert and stream audio and video. + . + This is the codec library from FFmpeg (both encoding and decoding). + . + This package is a replacement for the regular libavcodec53 library package; + it contains the following additional codecs: + . + * OpenCORE Adaptive Multi-Rate (AMR) Narrow-Band (Encoder/Decoder) + * OpenCORE Adaptive Multi-Rate (AMR) Wide-Band (Decoder) + * Android VisualOn AAC (Encoder) + * Android VisualOn Adaptive Multi-Rate (AMR) Wide-Band (Encoder) + . + Because this package links against libraries that are licensed under + Apache License 2.0, the resulting binaries are distributed under the + GPL version 3 or later. + +Package: libavdevice-extra-53 +Section: oldlibs +Priority: extra +Architecture: all +Depends: + libavdevice53, + ${misc:Depends}, +Description: FFmpeg device handling library (transitional package) + FFmpeg is a complete, cross-platform solution to decode, encode, record, + convert and stream audio and video. . - This package contains the runtime files. + This package is only used for transitional purposes and can be safely + removed when no other packages depend on this package. -Package: libswscale-ffmpeg-dev -Architecture: any -Section: libdevel -Multi-Arch: same -Conflicts: - libswscale-dev +Package: libavfilter-extra-2 +Section: oldlibs +Priority: extra +Architecture: all Depends: - libavutil-ffmpeg-dev (= ${binary:Version}), - libswscale-ffmpeg3 (= ${binary:Version}), - ${misc:Depends} -Description: FFmpeg library for image scaling and various conversions - development files - FFmpeg is the leading multimedia framework, able to decode, encode, transcode, - mux, demux, stream, filter and play pretty much anything that humans and - machines have created. It supports the most obscure ancient formats up to the - cutting edge. - . - This library performs highly optimized image scaling and colorspace and pixel - format conversion operations. - Specifically, this library performs the following conversions: - * Rescaling is the process of changing the video size. Several rescaling - options and algorithms are available. This is usually a lossy process. - * Pixel format conversion is the process of converting the image format and - colorspace of the image, for example from planar YUV420P to RGB24 packed. - It also handles packing conversion, that is converts from packed layout - (all pixels belonging to distinct planes interleaved in the same buffer), - to planar layout (all samples belonging to the same plane stored in a - dedicated buffer or "plane"). This is usually a lossy process in case the - source and destination colorspaces differ. + libavfilter2, + ${misc:Depends}, +Description: FFmpeg filter library (transitional package) + FFmpeg is a complete, cross-platform solution to decode, encode, record, + convert and stream audio and video. . - This package contains the development files. + This package is only used for transitional purposes and can be safely + removed when no other packages depend on this package. +Package: libpostproc-extra-52 +Section: oldlibs +Priority: extra +Architecture: all +Depends: + libpostproc52, + ${misc:Depends}, +Description: FFmpeg video postprocessing library (transitional package) + FFmpeg is a complete, cross-platform solution to decode, encode, record, + convert and stream audio and video. + . + This package is only used for transitional purposes and can be safely + removed when no other packages depend on this package. + +Package: libavformat-extra-53 +Section: oldlibs +Priority: extra +Architecture: all +Depends: + libavformat53, + ${misc:Depends}, +Description: FFmpeg file format library (transitional package) + FFmpeg is a complete, cross-platform solution to decode, encode, record, + convert and stream audio and video. + . + This package is only used for transitional purposes and can be safely + removed when no other packages depend on this package. + +Package: libswscale-extra-2 +Section: oldlibs +Priority: extra +Architecture: all +Depends: + libswscale2, + ${misc:Depends}, +Description: FFmpeg video software scaling library (transitional package) + FFmpeg is a complete, cross-platform solution to decode, encode, record, + convert and stream audio and video. + . + This package is only used for transitional purposes and can be safely + removed when no other packages depend on this package. + +Package: libavcodec-extra +Priority: extra +Architecture: all +Depends: + libavcodec-extra-53, + ${misc:Depends}, +Description: FFmpeg codec library (additional codecs meta-package) + FFmpeg is a complete, cross-platform solution to decode, encode, record, + convert and stream audio and video. + . + This package depends on the latest version of the libavcodec variant + that offers additional codec support. Application packages can depend + on it if they require or suggest this variant in a robust manner. diff -Nru ffmpeg-2.5/debian/copyright ffmpeg-0.10.12/debian/copyright --- ffmpeg-2.5/debian/copyright 2014-12-06 17:23:36.000000000 +0000 +++ ffmpeg-0.10.12/debian/copyright 2014-04-26 06:23:55.000000000 +0000 @@ -1,1041 +1,91 @@ -Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ -Upstream-Name: FFmpeg -Upstream-Contact: ffmpeg-devel@ffmpeg.org -Source: https://ffmpeg.org -Comment: - Most files in FFmpeg are licensed under the GNU Lesser General Public License - version 2.1 or later (LGPL v2.1+), but some optional parts of FFmpeg are - licensed under the GNU General Public License version 2 or later (GPL v2+) - and a few have different, but compatible licenses. - . - For building the Debian packages some of the GPL licensed files are used, - so the resulting binaries are licensed under GPL v2+. - The HTML documention /usr/share/doc/ffmpeg-doc/manual/*.html in the ffmpeg-doc - package is effectively licensed under GPL-3+, because during its creation - the GPL-3+ licensed file doc/t2h.pm is used. - . - FFmpeg can also be combined with external libraries licensed under the - Apache License 2.0, which would make the resulting binaries effectively - licensed under the GPL v3+, or even with non-free libraries, which would - make the resulting binaries unredistributable. - But this is not done for the Debian packages. +This package was downloaded from http://ffmpeg.org/ -Files: * -Copyright: - Sebastien Bechet - 1990, James Ashton - Sydney University - 1993, Computer Science, Speech Group - 1994-2012, by the Xiph.Org Foundation and contributors - 1997-1999, H. Dietz - 1997-1999, R. Fisher - 1998-2009, Conifer Software - 1999-2001, Chris Bagwell - 1999, Intel Corporation - 1999, Nick Bailey - 1999, Roger Hardiman - 1999-2000, Sebastien Rougeaux - 2000, Edward Beingessner And Sundry Contributors - 2000-2003, 2005, Fabrice Bellard - 2000-2001, Michel Lespinasse - 2000-2001, 2003, Nick Kurshev - 2000-2001, Peter Gubanov - 2001-2003, BERO - 2001, Daniel Maas - 2001, Heikki Leinonen - 2001, Juan J. Sierralta P - 2001, Lionel Ulmer - 2001-2014, Michael Niedermayer - 2001, 2005-2014, Peter Ross - 2001, Tim Ferguson - 2002-2006, Alex Beregszaszi - 2002, Anders Johansson - 2002, Falk Hueffner - 2002, 2005, Francois Revol - 2002, Frederic 'dilb' Boulay - 2002, Gunnar Monell - 2002, Laszlo Torok - 2002, Lennert Buytenhek - 2002, Mark Hills - 2002-2004, 2006-2013, Maxim Poliakovski - 2002, Remi Guyomarch - 2002-2005, Roberto Togni - 2002, Steve O'Hara-Smith - 2002, The Xine project - 2002, Zdenek Kabelac - 2003-2005, by Christopher R. Hertel - 2003, Donnie Smith - 2003, Dr. Tim Ferguson - 2003, Ewald Snel - 2003, Gustavo Sverzut Barbieri - 2003, Ivan Kalvachev - 2003, James Klicman - 2003, Max Krasnyansky - 2003, 2004, 2007, Mike Melanson - 2003, 2014, Pascal Massimino - 2003-2004, 2006, Roman Shaposhnik - 2003, Rich Felker - 2003-2004, Romain Dolbeau - 2003, 2008-2011, Sascha Sommer - 2003, Tinic Uro - 2003, Thomas Raivio - 2003-2013, x264 project - 2004, Adam Thayer - 2004, AGAWA Koji - 2004, 2007, Benjamin Zores - 2004-2005, Denes Balatoni - 2004-2007, Eric Lasota - 2004, Gildas Bazin - 2004-2006, Lennart Poettering - 2004-2010, 2013, Loren Merritt - 2004, Maarten Daniels - 2004, 2007, Marc Hoffman - 2004-2014, Konstantin Shishkov - 2005, Alban Bedel - 2005, Anonymous - 2005-2011, Benjamin Larsson - 2005, David Hammerton - 2005, DivX, Inc - 2005, 2007-2008, Ian Caulfield - 2005, Jeff Muizelaar - 2005-2007, 2013-2014, Luca Barbato - 2005-2012, Mans Rullgard - 2005, Matthieu CASTET - 2005-2006, Oded Shimon - 2005, Ole AndrĂ© Vadla RavnĂ¥s - 2005, 2007-2011, 2013-2014, Reimar Döffinger - 2005-2006, Robert Edele - 2005, Steve Underwood - 2005, Vidar Madsen - 2005, Wim Taymans - 2005, 2007, Wolfram Gloger - 2005, Zoltan Hidvegi - 2006-2010, Aurelien Jacobs - 2006-2011, Baptiste Coudurier - 2006, Corey Hickey - 2006, Cyril Zorin - 2006, 2008, Gregory Montoir - 2006-2013, Justin Ruggles - 2006, Kartikey Mahendra BHATT - 2006-2007, Maxim Gavrilov - 2006, 2007, Michel Bardiaux - 2006, Michael Benjamin - 2006, Patrick Guimond - 2006, Paul Richards - 2006, Guillaume Poirier - 2006-2010, Prakash Punnoor - 2006-2010, 2013-2014, Ramiro Polla - 2006-2007, Reynaldo H. Verdejo Pinochet - 2006-2009, 2012, Rob Sykes - 2006-2009, Robert Swain - 2006-2007, Ryan Martell - 2006, Smartjog S.A.S, Baptiste Coudurier - 2006-2007, SmartJog S.A., Baptiste Coudurier - 2006, Stefan Gehrer - 2006, Steve Lhomme - 2006, Thijs Vermeir - 2006-2011, Xvid Solutions GmbH - 2007, Alexis Ballier - 2007, 2010, 2013, Anssi Hannula - 2007-2009, Bartlomiej Wolowiec - 2007, 2014, Benoit Fouet - 2007, 2009, Björn Axelsson - 2007, Bobby Bingham - 2007-2009, Bartlomiej Wolowiec - 2007, Christian Ohm - 2007, Collabora Ltd, Philippe Kalaf - 2007, Edward Hervey - 2007-2008, Ivo van Poorten - 2007-2008, Joseph Artsimovich - 2007, Kamil Nowosad - 2007-2009, Luca Abeni - 2007-2008, Marco Gerards - 2007, Nicholas Tung - 2007, 2010-2014, Nicolas George - 2007, Nokia Corporation - 2007, Richard Spindler - 2007-2010, 2012-2014, Ronald S. Bultje - 2007-2008, Siarhei Siamashka - 2007-2013, Stefano Sabatini - 2007-2008, UAB "DKD" - 2007, Ulion - 2007-2011, Vitor Sessak - 2007-2008, 2011, Vladimir Voroshilov - 2008, Affine Systems, Inc (Michael Sullivan, Bobby Impollonia) - 2008, Alessandro Sappia - 2008-2013, Alex Converse - 2008-2012, Alexander E. Patrakov - 2008, 2010, Alexander Strange - 2008-2009, Andrej Stepanchuk - 2008, BBC, Anuradha Suraparaju - 2008-2010, David Conrad - 2008, 2010, Eli Friedman - 2008, GUCAS, Zhentan Feng - 2008-2010, Laurent Aimar - 2008, NVIDIA - 2008-2009, Jaikrishnan Menon - 2008-2010, Paul Kendall - 2008, Robert Marston - 2008, Sisir Koppaka - 2008-2009, Splitted-Desktop Systems - 2008, Victor Paesa - 2008, vmrsss - 2009, Colin McQuillan - 2009-2010, 2013, Daniel Verkamp - 2009, Dylan Yudaken - 2009, Giliard B. de Freitas - 2009-2010, Howard Chu - 2009, Ivan Schreter - 2009-2013, James Darnley - 2009, Jimmy Christensen - 2009, Joshua Warner - 2009, Kenan Gillet - 2009-2014, Martin Storsjo - 2009, Michael Tison - 2009, Naotoshi Nojiri - 2009, 2012, Nathan Caldwell - 2009, Nicolas Martin - 2009, Samalyse - 2009, 2011, Sebastian Gesemann - 2009, Sebastien Lucas - 2009, Stephen Backway - 2009-2010, 2013-2014, Thilo Borgmann - 2009, Thomas P. Higdon - 2009, Tobias Bindhammer - 2009, Toshimitsu Kimura - 2009, Xuggle Incorporated - 2009, Zuxy Meng - 2010, Adrian Daerr - 2010, Amanda, Y.N. Wu - 2010-2011, Anatoly Nenashev - 2010, Brandon Mintern - 2010-2012, Carl Eugen Hoyos - 2010, Daniel G. Taylor - 2010-2011, Elvis Presley - 2010, Fiona Glaser - 2010, Francesco Lavra - 2010, 2013, Georg Martius - 2010, 2012, Google, Inc - 2010, Hans de Goede - 2010, Holger Lubitz - 2010-2011, 2013-2014, Janne Grunau - 2010, Jacob Meuser - 2010, Josh Allmann - 2010, Marcelo Galvao Povoa - 2010, Mark Heath - 2010, Mark Nauwelaerts - 2010, Michele OrrĂ¹ - 2010-2011, Mohamed Naufal Basheer - 2010, Nolan Lum - 2010-2012, Philip Langdale - 2010, Rafael Carre - 2010, Rob Clark - 2010, S.N. Hemanth Meenakshisundaram - 2010, Sebastian Vater - 2010, tipok - 2010, Tomas Härdin - 2010-2011, Zhentan Feng - 2011, Anatoliy Wasserman - 2011, Andreas Ă–man - 2011-2013, Anton Khirnov - 2011-2014, ClĂ©ment BÅ“sch - 2011-2014, Derek Buitenhuis - 2011-2012, Hyllian/Jararaca - 2011, Jordi Ortiz - 2011, Juan Carlos Rodriguez - 2011, 2014, Kieran Kunhya - 2011, KO Myung-Hun - 2011, Mark Himsley - 2011-2012, Mashiat Sarker Shakkhar - 2011, Matthew Hoops - 2011, Max Horn - 2011-2012, Michael Bradshaw - 2011, Michael Karcher - 2011, Mina Nagy Zaki - 2011, MirriAd Ltd - 2011, Oskar Arvidsson - 2011-2014, Paul B Mahol - 2011, Roger Pau MonnĂ© - 2011, Sebastien Zwickert - 2011-2012, Smartjog S.A.S, ClĂ©ment BÅ“sch - 2011, Sven Hesse - 2011, Thomas Kuehnel - 2012, Aleksi Nurmi - 2012, Andrew D'Addesio - 2012-2013, Andrey Utkin - 2012-2013, Aneesh Dogra (lionaneesh) - 2012, Antti Seppälä - 2012, AvxSynth Team. - 2012, British Broadcasting Corporation - 2012-2014, Christophe Gisquet - 2012-2013, Daniel Kang - 2012, David Kment - 2012, Fredrik Mellbin - 2012, 2014, Georg Lippitsch - 2012-2013, Gildas Cocherel - 2012-2013, Guillaume Martres - 2012-2014, James Almer - 2012, Jan Ekström - 2012, Li Cao - 2012-2013, Mickael Raulet - 2012, Pavel Koshevoy - 2012, Peng Gao - 2012, Petri Hintukainen - 2012, Robert Nagy - 2012-2013, Rudolf Polzer - 2012, Samuel Pitoiset - 2012, Steven Robertson - 2012, Vitaliy E Sugrobov - 2012-2013, Wassim Hamidouche - 2012-2013, Wei Gao - 2012, Xidorn Quan - 2013, Anand Meher Kotra - 2013-2014, Andrew Kelley - 2013, Ash Hughes - 2013, Calvin Walton - 2013, Christian Schmidt - 2013, Darryl Wallace - 2013-2014, Deti Fliegl - 2013, Diego Biurrun - 2013, Dirk Farin - 2013, Jeff Moguillansky - 2013, Lenny Wang - 2013-2014, Lukasz Marek - 2013, Matthew Heaney - 2013-2014, Mozilla Corporation - 2013, Nicolas Bertrand - 2013-2014, Pierre-Edouard Lepere - 2013, RĂ©mi Denis-Courmont - 2013-2014, RISC OS Open Ltd - 2013, Rl, Aetey Global Technologies AB - 2013, Seppo Tomperi - 2013-2014, Tiancheng "Timothy" Gu - 2013, Vadim Kalinsky - 2013, VTT - 2013-2014, Vittorio Giovara - 2013, Xiaolei Yu - 2014, Aman Gupta - 2014, Arwa Arif - 2014, Daniel Oberhoff - 2014, Dave Rice @dericed - 2014, Eejya Singh - 2014, James Yu - 2014, Marvin Scholz - 2014, Muhammad Faiz - 2014, Neil Birkbeck - 2014, Nicholas Robbins - 2014, Rong Yan - 2014, Samsung Electronics - 2014, StarBrilliant - 2014, Supraja Meedinti - 2014, Thomas Volkert - 2014, Tim Walker - 2014, Vignesh Venkatasubramanian -License: LGPL-2.1+ - 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. -Comment: - 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 - . - On Debian systems, the full text of the GNU Lesser General Public License - version 2.1 can be found in the file `/usr/share/common-licenses/LGPL-2.1'. - . - The copyright details for Joseph Artsimovich and UAB "DKD" were extracted - from the referenced source: - . - -Files: libavcodec/libzvbi-teletextdec.c -Copyright: - 2005-2010, 2012, Wolfram Gloger - 2013, Marton Balint -License: LGPL-2+ - 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 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. -Comment: - On Debian systems, the full text of the GNU Lesser General Public License - version 2 can be found in the file `/usr/share/common-licenses/GPL-2'. - . - 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 - -Files: - libavcodec/ac3dec_fixed.c - libavcodec/fft_init_table.c - libavcodec/fft_fixed_32.c - libavcodec/fft_table.h - libavcodec/mdct_fixed_32.c - libavcodec/mips/aaccoder_mips.c - libavcodec/mips/aacdec_mips.c - libavcodec/mips/aacdec_mips.h - libavcodec/mips/aacpsdsp_mips.c - libavcodec/mips/aacpsy_mips.h - libavcodec/mips/aacsbr_mips.c - libavcodec/mips/aacsbr_mips.h - libavcodec/mips/ac3dsp_mips.c - libavcodec/mips/acelp_filters_mips.c - libavcodec/mips/acelp_vectors_mips.c - libavcodec/mips/amrwbdec_mips.c - libavcodec/mips/amrwbdec_mips.h - libavcodec/mips/celp_filters_mips.c - libavcodec/mips/celp_math_mips.c - libavcodec/mips/compute_antialias_fixed.h - libavcodec/mips/compute_antialias_float.h - libavcodec/mips/fft_mips.c - libavcodec/mips/fmtconvert_mips.c - libavcodec/mips/iirfilter_mips.c - libavcodec/mips/lsp_mips.h - libavcodec/mips/mpegaudiodsp_mips_fixed.c - libavcodec/mips/mpegaudiodsp_mips_float.c - libavcodec/mips/sbrdsp_mips.c - libavutil/fixed_dsp.c - libavutil/fixed_dsp.h - libavutil/mips/float_dsp_mips.c - libavutil/mips/libm_mips.h -Copyright: 2012, MIPS Technologies, Inc., California. -License: BSD-3-Clause and LGPL-2.1+ - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - 3. Neither the name of the MIPS Technologies, Inc., nor the names of its - contributors may be used to endorse or promote products derived from - this software without specific prior written permission. - . - THIS SOFTWARE IS PROVIDED BY THE MIPS TECHNOLOGIES, INC. ``AS IS'' AND - ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE MIPS TECHNOLOGIES, INC. BE LIABLE - FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - SUCH DAMAGE. - . - 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. -Comment: - On Debian systems, the full text of the GNU Lesser General Public License - version 2.1 can be found in the file `/usr/share/common-licenses/LGPL-2.1'. - . - 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 - -Files: libavcodec/arm/vp8dsp_armv6.S -Copyright: - 2010, Google Inc. - 2010, Rob Clark - 2011, Mans Rullgard -License: LGPL-2.1+ and BSD-3-Clause - 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. - . - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are - met: - . - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - . - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - . - * Neither the name of Google nor the names of its contributors may - be used to endorse or promote products derived from this software - without specific prior written permission. - . - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -Comment: - On Debian systems, the full text of the GNU Lesser General Public License - version 2.1 can be found in the file `/usr/share/common-licenses/LGPL-2.1'. - . - 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 - -Files: - libavcodec/x86/flac_dsp_gpl.asm - libavdevice/x11grab.c - libavfilter/f_ebur128.c - libavfilter/vf_blackframe.c - libavfilter/vf_boxblur.c - libavfilter/vf_cropdetect.c - libavfilter/vf_delogo.c - libavfilter/vf_geq.c - libavfilter/vf_histeq.c - libavfilter/vf_hqdn3d.c - libavfilter/vf_hqdn3d.h - libavfilter/vf_interlace.c - libavfilter/vf_kerndeint.c - libavfilter/vf_mcdeint.c - libavfilter/vf_mp.c - libavfilter/vf_mpdecimate.c - libavfilter/vf_owdenoise.c - libavfilter/vf_perspective.c - libavfilter/vf_phase.c - libavfilter/vf_pp.c - libavfilter/vf_pullup.c - libavfilter/vf_pullup.h - libavfilter/vf_sab.c - libavfilter/vf_smartblur.c - libavfilter/vf_spp.c - libavfilter/vf_spp.h - libavfilter/vf_stereo3d.c - libavfilter/vf_super2xsai.c - libavfilter/vf_tinterlace.c - libavfilter/vsrc_mptestsrc.c - libavfilter/x86/vf_hqdn3d_init.c - libavfilter/x86/vf_pullup.asm - libavfilter/x86/vf_pullup_init.c - libavfilter/x86/vf_spp.c - libavfilter/yadif.h - libpostproc/postprocess_altivec_template.c - libpostproc/postprocess.c - libpostproc/postprocess.h - libpostproc/postprocess_internal.h - libpostproc/postprocess_template.c -Copyright: - 1997-1998, Rasca, Berlin - 1997-2001, ZSNES Team <_demo_@zsnes.com> - 2000-2001, Fabrice Bellard - 2001, 2006, Daniel Maas - 2001, 2003, Donald A. Graft - 2001-2003, 2005-2007, 2011-2012 Michael Niedermayer (michaelni@gmx.at) - 2002, A'rpi - 2002, Brian Foley - 2002-2003, Brian J. Murrell - 2002, Dieter Shirley - 2002, Jindrich Makovicka - 2001-2008, 2013, The FFmpeg Project - 2003, Daniel Moreno - 2003-2004, Karl H. Beckers, Frankfurt - 2003, Michael Zucchi - 2003, Rich Felker - 2003-2004, Romain Dolbeau - 2004-2005, 2007, Denes Balatoni - 2004, Tobias Diedrich - 2004, Ville Saari - 2006, Clemens Fruhwirth - 2006, Edouard Gomez - 2006, Ivo van Poorten - 2006, Julian Hall - 2010, Baptiste Coudurier - 2010, Gordon Schmidt - 2010, Laurent Aimar - 2010, Michael Chinen - 2010, Niel van der Westhuizen - 2010-2012, Stefano Sabatini - 2012-2013, ClĂ©ment BÅ“sch - 2012, Jeremy Tran - 2012, 2014, Loren Merritt - 2013, Jean Delvare - 2013-2014, Paul B Mahol - 2013, Vittorio Giovara - 2014, James Darnley -License: GPL-2+ - FFmpeg is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 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 General Public License for more details. -Comment: - On Debian systems, the full text of the GNU General Public License - version 2 can be found in the file `/usr/share/common-licenses/GPL-2'. - . - You should have received a copy of the GNU 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 - -Files: libavfilter/vf_colormatrix.c -Copyright: - 2006-2007, Kevin Stone - Wilbert Dijkhof -License: GPL-2+ - This program is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - . - This program is distributed in the hope that it will be useful, but - OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public - License for more details. -Comment: - On Debian systems, the full text of the GNU General Public License - version 2 can be found in the file `/usr/share/common-licenses/GPL-2'. - . - You should have received a copy of the GNU 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 - -Files: - compat/avisynth/avisynth_c.h - compat/avisynth/avxsynth_c.h -Copyright: 2003, Kevin Atkinson -License: GPL-2+ with Avisynth exception - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - . - This program 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 General Public License for more details. - . - As a special exception, I give you permission to link to the - Avisynth C interface with independent modules that communicate with - the Avisynth C interface solely through the interfaces defined in - avisynth_c.h, regardless of the license terms of these independent - modules, and to copy and distribute the resulting combined work - under terms of your choice, provided that every copy of the - combined work is accompanied by a complete copy of the source code - of the Avisynth C interface and Avisynth itself (with the version - used to produce the combined work), being distributed under the - terms of the GNU General Public License plus this exception. An - independent module is a module which is not derived from or based - on Avisynth C Interface, such as 3rd-party filters, import and - export plugins, or graphical user interfaces. -Comment: - On Debian systems, the full text of the GNU General Public License - version 2 can be found in the file `/usr/share/common-licenses/GPL-2'. - . - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA, - or visit . - -Files: doc/texi2pod.pl -Copyright: 1999-2001, Free Software Foundation, Inc -License: GPL-2+ - GNU CC is free software; you can redistribute it and/or modify it under - the terms of the GNU General Public License as published by the Free - Software Foundation; either version 2, or (at your option) any later - version. - . - GNU CC 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 General Public License - for more details. -Comment: - On Debian systems, the full text of the GNU General Public License - version 2 can be found in the file `/usr/share/common-licenses/GPL-2'. - . - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA, - or visit . - -Files: - libavfilter/libmpcodecs/* -Copyright: - MPlayer developers - 1999, Aaron Holtzman - 2003, 2005, Michael Niedermayer - 2005, Nikolaj Poroshin -License: GPL-2+ - MPlayer is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - . - MPlayer 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 General Public License for more details. -Comment: - On Debian systems, the full text of the GNU General Public License - version 2 can be found in the file `/usr/share/common-licenses/GPL-2'. - . - You should have received a copy of the GNU General Public License along - with MPlayer; if not, write to the Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - -Files: libswresample/swresample-test.c -Copyright: - 2002, Fabrice Bellard - 2011-2012, Michael Niedermayer -License: GPL-2+ - libswresample is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - . - libswresample 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 General Public License for more details. -Comment: - On Debian systems, the full text of the GNU General Public License - version 2 can be found in the file `/usr/share/common-licenses/GPL-2'. - . - You should have received a copy of the GNU General Public License - along with libswresample; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - -Files: tests/tiny_ssim.c -Copyright: 2003-2013, Loren Merritt -License: GPL-2+ - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - . - This program 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 General Public License for more details. -Comment: - On Debian systems, the full text of the GNU General Public License - version 2 can be found in the file `/usr/share/common-licenses/GPL-2'. - . - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110 USA - -Files: - libavcodec/libutvideodec.cpp - libavcodec/libutvideoenc.cpp - libavcodec/libutvideo.h -Copyright: - 2011-2012, Derek Buitenhuis -License: GPL-2 - FFmpeg is free software; you can redistribute it and/or - modify it under the terms of the GNU General Public - License as published by the Free Software Foundation; - version 2 of the License. - . - 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 - General Public License for more details. -Comment: - On Debian systems, the full text of the GNU General Public License - version 2 can be found in the file `/usr/share/common-licenses/GPL-2'. - . - You should have received a copy of the GNU 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 - -Files: doc/t2h.pm -Copyright: - 2011, 2012, Free Software Foundation, Inc. - 2014, Andreas Cadhalpun - 2014, Tiancheng "Timothy" Gu -License: GPL-3+ - FFmpeg is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 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. -Comment: - On Debian systems, the full text of the GNU General Public License - version 3 can be found in the file `/usr/share/common-licenses/GPL-3'. - . - You should have received a copy of the GNU 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 - -Files: - compat/avisynth/avisynth_c_25.h - doc/bootstrap.min.css - doc/examples/avio_reading.c - doc/examples/decoding_encoding.c - doc/examples/demuxing_decoding.c - doc/examples/filtering_audio.c - doc/examples/extract_mvs.c - doc/examples/filtering_video.c - doc/examples/metadata.c - doc/examples/muxing.c - doc/examples/remuxing.c - doc/examples/resampling_audio.c - doc/examples/scaling_video.c - doc/examples/transcoding.c - doc/style.min.css - libavcodec/arm/jrevdct_arm.S - libavcodec/cinepakenc.c - libavcodec/nellymoser.c - libavcodec/nellymoserdec.c - libavcodec/nellymoser.h - libavcodec/x86/vc1dsp_init.c - libavcodec/x86/vc1dsp_mmx.c - libavformat/oggdec.c - libavformat/oggdec.h - libavformat/oggparseogm.c - libavformat/oggparsespeex.c - libavformat/oggparsetheora.c - libavformat/oggparsevorbis.c - tests/reference.pnm -Copyright: - 2001, 2003, Fabrice Bellard - 2001, Lionel Ulmer - 2005, Alex Beregszaszi - 2005, MĂ¥ns RullgĂ¥rd - 2005, Matthieu CASTET - 2005, Michael Ahlberg - 2007, a840bda5870ba11f19698ff6eb9581dfb0f95fa5 - 2007, 520e17cd55896441042b14df2566a6eb610ed444 - 2007, 539459aeb7d425140b62a3ec7dbf6dc8e408a306 - 2007, Benjamin Larsson - 2007, Christophe GISQUET - 2007, Loic Minier - 2008, Reimar Döffinger - 2010, Nicolas George - 2011, FFmpegSource Project - 2011, Jonathan Baldwin - 2011, 2014, Reinhard Tartler - 2011-2014, Stefano Sabatini - 2011, Tomas Härdin - 2011-2014, Twitter, Inc - 2012, 2014, ClĂ©ment BÅ“sch - 2013-2014, Rl, Aetey Global Technologies AB - 2014, Andrey Utkin - 2014, Barbara Lepage -License: Expat - Permission is hereby granted, free of charge, to any person obtaining a copy - of this software and associated documentation files (the "Software"), to deal - in the Software without restriction, including without limitation the rights - to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - copies of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - . - The above copyright notice and this permission notice shall be included in - all copies or substantial portions of the Software. - . - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - THE SOFTWARE. - -Files: - tools/cws2fws.c - tools/qt-faststart.c -Copyright: - Alex Beregszaszi - Mike Melanson -License: public-domain - This file is placed in the public domain. Use the program however you see fit. - -Files: - compat/windows/makedef - libavcodec/faandct.c - libavcodec/libfdk-aacdec.c - libavcodec/libfdk-aacenc.c - libavcodec/zerocodec.c - libavdevice/openal-dec.c - libavfilter/vf_hqx.c - libavutil/x86/x86inc.asm -Copyright: - 2003, Michael Niedermayer - 2003, Roman Shaposhnik - 2005-2013, x264 project - 2011, Jonathan Baldwin - 2012-2013, Derek Buitenhuis - 2012, Martin Storsjo - 2014, ClĂ©ment BÅ“sch -License: ISC - Permission to use, copy, modify, and/or distribute this software for any - purpose with or without fee is hereby granted, provided that the above - copyright notice and this permission notice appear in all copies. - . - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - -Files: libavutil/adler32.c -Copyright: 1995, Mark Adler -License: Zlib - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - . - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - . - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. - -Files: - libavcodec/jfdctfst.c - libavcodec/jfdctint_template.c - libavcodec/jrevdct.c -Copyright: 1991-1996, Thomas G. Lane -License: IJG - The authors make NO WARRANTY or representation, either express or implied, - with respect to this software, its quality, accuracy, merchantability, or - fitness for a particular purpose. This software is provided "AS IS", and - you, its user, assume the entire risk as to its quality and accuracy. - . - Permission is hereby granted to use, copy, modify, and distribute this - software (or portions thereof) for any purpose, without fee, subject to - these conditions: - (1) If any part of the source code for this software is distributed, then - this README file must be included, with this copyright and no-warranty - notice unaltered; and any additions, deletions, or changes to the original - files must be clearly indicated in accompanying documentation. - (2) If only executable code is distributed, then the accompanying - documentation must state that "this software is based in part on the work - of the Independent JPEG Group". - (3) Permission for use of this software is granted only if the user accepts - full responsibility for any undesirable consequences; the authors accept - NO LIABILITY for damages of any kind. - . - These conditions apply to any software derived from or based on the IJG - code, not just to the unmodified library. If you use our work, you ought - to acknowledge us. - . - Permission is NOT granted for the use of any IJG author's name or company - name in advertising or publicity relating to this software or products - derived from it. This software may be referred to only as "the Independent - JPEG Group's software". - . - We specifically permit and encourage the use of this software as the basis - of commercial products, provided that all warranty or liability claims are - assumed by the product vendor. - -Files: debian/* -Copyright: 2014, Andreas Cadhalpun -License: LGPL-2.1+ - This packaging 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 packaging 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. -Comment: - On Debian systems, the full text of the GNU Lesser General Public License - version 2.1 can be found in the file `/usr/share/common-licenses/LGPL-2.1'. - . - You should have received a copy of the GNU Lesser General Public - License along with this packaging; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - -Files: debian/missing-sources/ffmpeg-web/src/less/style.less -Copyright: 2014, Barbara Lepage -License: Expat - Permission is hereby granted, free of charge, to any person obtaining a copy - of this software and associated documentation files (the "Software"), to deal - in the Software without restriction, including without limitation the rights - to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - copies of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - . - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - . - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. -Comment: - This is the source of doc/style.min.css. - It was obtained from the FFmpeg web repository: - - -Files: debian/missing-sources/bootstrap* -Copyright: 2011-2014, Twitter, Inc. -License: Expat - Permission is hereby granted, free of charge, to any person obtaining a copy - of this software and associated documentation files (the "Software"), to deal - in the Software without restriction, including without limitation the rights - to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - copies of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - . - The above copyright notice and this permission notice shall be included in - all copies or substantial portions of the Software. - . - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - THE SOFTWARE. -Comment: - This is the source of doc/bootstrap.min.css. - It was obtained from the Bootstrap repository: - - The full text of the license was obtained from: - - -Files: debian/qt-faststart.1 -Copyright: Andres Mejia -License: man-page - This manual page was written by Andres Mejia - for the Debian GNU/Linux system, but may be used by others. +Upstream Authors: Fabrice Bellard + Alex Beregszaszi + BERO + Mario Brito + Ronald Bultje + Tim Ferguson + Brian Foley + Arpad Gereoffy + Philip Gladstone + Vladimir Gneushev + Wolfgang Hesseler + Falk Hueffner + Zdenek Kabelac + Robin Kay + Todd Kirby + Nick Kurshev + Mike Melanson + Michael Niedermayer + François Revol + Roman Shaposhnik + Dieter Shirley + Juan J. Sierralta + Ewald Snel + Leon van Stuivenberg + Roberto Togni + Lionel Ulmer + +Copyright (c) 2000-2004 Fabrice Bellard et al. + +The following files are licensed under the GNU GPL, as clarified below: + + * libavcodec: + + x86/idct_mmx.c + * libavdevice: + + x11grab.c + * libavfilter: + + libmpcodecs/*.[ch] + + af_pan.c + + vf_blackframe.c + + vf_boxblur.c + + vf_cropdetect.c + + vf_delogo.c + + vf_hqdn3d.c + + vf_mp.c + + vf_yadif.c + + vsrc_mptestsrc.c + + yadif.h + + x86/yadif.c + + x86/yadif_template.c + * libpostproc: + + *.[ch] + + | This library is free software; you can redistribute it and/or + | modify it under the terms of the GNU General Public License as + | published by the Free Software Foundation; either version 2 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 General Public License + | along with this program; if not, write to the Free Software + | Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +The rest of the code is licensed under the GNU LGPL: + + | 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 General Public License + | along with this program; if not, write to the Free Software + | Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +On Debian GNU/Linux systems, the complete text of the GNU General Public +License can be found in `/usr/share/common-licenses/GPL' and the text of the +GNU Lesser General Public License is in `/usr/share/common-licenses/LGPL'. + +Note: Because the libavcodec-extra-53 package links against libraries that +are licensed under Apache License 2.0, it is distributed under the GPL +version 3. The libav-dbg package does also contain its debug symbols. diff -Nru ffmpeg-2.5/debian/ffmpeg-doc.doc-base ffmpeg-0.10.12/debian/ffmpeg-doc.doc-base --- ffmpeg-2.5/debian/ffmpeg-doc.doc-base 2014-04-27 19:06:27.000000000 +0000 +++ ffmpeg-0.10.12/debian/ffmpeg-doc.doc-base 2014-02-06 14:17:23.000000000 +0000 @@ -1,9 +1,9 @@ Document: ffmpeg-doc Title: FFmpeg API Documentation Author: FFmpeg Developers -Abstract: This is the API documentation for FFmpeg. +Abstract: This is the main documentation for the FFmpeg API. Section: Programming Format: HTML -Index: /usr/share/doc/ffmpeg-doc/api/index.html -Files: /usr/share/doc/ffmpeg-doc/api/*.html +Index: /usr/share/doc/ffmpeg-doc/html/index.html +Files: /usr/share/doc/ffmpeg-doc/html/*.html diff -Nru ffmpeg-2.5/debian/ffmpeg-doc.install ffmpeg-0.10.12/debian/ffmpeg-doc.install --- ffmpeg-2.5/debian/ffmpeg-doc.install 2014-09-15 15:02:53.000000000 +0000 +++ ffmpeg-0.10.12/debian/ffmpeg-doc.install 1970-01-01 00:00:00.000000000 +0000 @@ -1,10 +0,0 @@ -doc/doxy/html/* usr/share/doc/ffmpeg-doc/api -doc/examples/*.c usr/share/doc/ffmpeg-doc/examples -doc/examples/Makefile usr/share/doc/ffmpeg-doc/examples -doc/examples/README usr/share/doc/ffmpeg-doc/examples -doc/examples/pc-uninstalled usr/share/doc/ffmpeg-doc/examples -doc/*.html usr/share/doc/ffmpeg-doc/manual -doc/*.css usr/share/doc/ffmpeg-doc/manual -doc/APIchanges usr/share/doc/ffmpeg-doc/developer-info -doc/*.txt usr/share/doc/ffmpeg-doc/developer-info -usr/share/man/man3 diff -Nru ffmpeg-2.5/debian/ffmpeg-doc.links ffmpeg-0.10.12/debian/ffmpeg-doc.links --- ffmpeg-2.5/debian/ffmpeg-doc.links 2014-08-09 15:29:44.000000000 +0000 +++ ffmpeg-0.10.12/debian/ffmpeg-doc.links 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -usr/share/javascript/jquery/jquery.min.js usr/share/doc/ffmpeg-doc/api/jquery.js diff -Nru ffmpeg-2.5/debian/ffmpeg.install ffmpeg-0.10.12/debian/ffmpeg.install --- ffmpeg-2.5/debian/ffmpeg.install 2014-08-09 15:29:44.000000000 +0000 +++ ffmpeg-0.10.12/debian/ffmpeg.install 2014-04-26 06:23:55.000000000 +0000 @@ -1,5 +1,5 @@ -doc/ffserver.conf etc -usr/bin/ff* -usr/share/man/man1 +etc +usr/bin +usr/share/ffmpeg/ffprobe.xsd usr/share/ffmpeg/*.ffpreset -RELEASE_NOTES usr/share/doc/ffmpeg +usr/share/man diff -Nru ffmpeg-2.5/debian/ffmpeg.lintian-overrides ffmpeg-0.10.12/debian/ffmpeg.lintian-overrides --- ffmpeg-2.5/debian/ffmpeg.lintian-overrides 2014-09-15 15:02:53.000000000 +0000 +++ ffmpeg-0.10.12/debian/ffmpeg.lintian-overrides 1970-01-01 00:00:00.000000000 +0000 @@ -1,9 +0,0 @@ -# These are due to two too long lines in upstream texi files, but shortening these lines wouldn't make much sense. -# docs/ffmpeg.texi: @item -map_channel [@var{input_file_id}.@var{stream_specifier}.@var{channel_id}|-1][:@var{output_file_id}.@var{stream_specifier}] -ffmpeg: manpage-has-errors-from-man usr/share/man/man1/ffmpeg.1.gz * can't break line -ffmpeg: manpage-has-errors-from-man usr/share/man/man1/ffmpeg-all.1.gz * can't break line -# docs/filters.texi: [@var{in_link_1}]...[@var{in_link_N}]@var{filter_name}=@var{arguments}[@var{out_link_1}]...[@var{out_link_M}] -ffmpeg: manpage-has-errors-from-man usr/share/man/man1/ffmpeg-filters.1.gz * can't break line -ffmpeg: manpage-has-errors-from-man usr/share/man/man1/ffplay-all.1.gz * can't break line -ffmpeg: manpage-has-errors-from-man usr/share/man/man1/ffprobe-all.1.gz * can't break line -ffmpeg: manpage-has-errors-from-man usr/share/man/man1/ffserver-all.1.gz * can't break line diff -Nru ffmpeg-2.5/debian/ffmpeg.postinst ffmpeg-0.10.12/debian/ffmpeg.postinst --- ffmpeg-2.5/debian/ffmpeg.postinst 1970-01-01 00:00:00.000000000 +0000 +++ ffmpeg-0.10.12/debian/ffmpeg.postinst 2014-04-26 06:23:55.000000000 +0000 @@ -0,0 +1,8 @@ +#!/bin/sh -e + +if dpkg-maintscript-helper supports mv_conffile 2>/dev/null; then + dpkg-maintscript-helper mv_conffile /etc/avserver.conf /etc/ffserver.conf 7:0.10~ -- "$@" +fi + +#DEBHELPER# + diff -Nru ffmpeg-2.5/debian/ffmpeg.postrm ffmpeg-0.10.12/debian/ffmpeg.postrm --- ffmpeg-2.5/debian/ffmpeg.postrm 1970-01-01 00:00:00.000000000 +0000 +++ ffmpeg-0.10.12/debian/ffmpeg.postrm 2014-04-26 06:23:55.000000000 +0000 @@ -0,0 +1,7 @@ +#!/bin/sh -e + +if dpkg-maintscript-helper supports mv_conffile 2>/dev/null; then + dpkg-maintscript-helper mv_conffile /etc/avserver.conf /etc/ffserver.conf 7:0.10~ -- "$@" +fi + +#DEBHELPER# diff -Nru ffmpeg-2.5/debian/ffmpeg.preinst ffmpeg-0.10.12/debian/ffmpeg.preinst --- ffmpeg-2.5/debian/ffmpeg.preinst 1970-01-01 00:00:00.000000000 +0000 +++ ffmpeg-0.10.12/debian/ffmpeg.preinst 2014-04-26 06:23:55.000000000 +0000 @@ -0,0 +1,7 @@ +#!/bin/sh -e + +if dpkg-maintscript-helper supports mv_conffile 2>/dev/null; then + dpkg-maintscript-helper mv_conffile /etc/avserver.conf /etc/ffserver.conf 7:0.10~ -- "$@" +fi + +#DEBHELPER# diff -Nru ffmpeg-2.5/debian/gbp.conf ffmpeg-0.10.12/debian/gbp.conf --- ffmpeg-2.5/debian/gbp.conf 2014-05-07 19:24:36.000000000 +0000 +++ ffmpeg-0.10.12/debian/gbp.conf 2014-04-26 06:23:55.000000000 +0000 @@ -1,2 +1,8 @@ [DEFAULT] +upstream-branch = upstream-0.10 +debian-branch = debian-0.10 +upstream-tag = upstream/%(version)s +debian-tag = debian/%(version)s pristine-tar = True +compression = xz + diff -Nru ffmpeg-2.5/debian/libavcodec53.install.in ffmpeg-0.10.12/debian/libavcodec53.install.in --- ffmpeg-2.5/debian/libavcodec53.install.in 1970-01-01 00:00:00.000000000 +0000 +++ ffmpeg-0.10.12/debian/libavcodec53.install.in 2014-04-26 06:23:55.000000000 +0000 @@ -0,0 +1 @@ +usr/lib/@DEB_HOST_MULTIARCH_OPT@/libavcodec.so.* diff -Nru ffmpeg-2.5/debian/libavcodec53.lintian-overrides ffmpeg-0.10.12/debian/libavcodec53.lintian-overrides --- ffmpeg-2.5/debian/libavcodec53.lintian-overrides 1970-01-01 00:00:00.000000000 +0000 +++ ffmpeg-0.10.12/debian/libavcodec53.lintian-overrides 2014-04-26 06:23:55.000000000 +0000 @@ -0,0 +1,2 @@ +# Overriding these fpic lintian errors. Please see bug #528080. +libavcodec53: shlib-with-non-pic-code diff -Nru ffmpeg-2.5/debian/libavcodec-dev.install.in ffmpeg-0.10.12/debian/libavcodec-dev.install.in --- ffmpeg-2.5/debian/libavcodec-dev.install.in 1970-01-01 00:00:00.000000000 +0000 +++ ffmpeg-0.10.12/debian/libavcodec-dev.install.in 2014-04-26 06:23:55.000000000 +0000 @@ -0,0 +1,4 @@ +usr/include/libavcodec +usr/lib/@DEB_HOST_MULTIARCH@/libavcodec.a +usr/lib/@DEB_HOST_MULTIARCH_OPT@/libavcodec.so +usr/lib/@DEB_HOST_MULTIARCH@/pkgconfig/libavcodec.pc diff -Nru ffmpeg-2.5/debian/libavcodec-dev.NEWS ffmpeg-0.10.12/debian/libavcodec-dev.NEWS --- ffmpeg-2.5/debian/libavcodec-dev.NEWS 1970-01-01 00:00:00.000000000 +0000 +++ ffmpeg-0.10.12/debian/libavcodec-dev.NEWS 2014-02-06 14:16:33.000000000 +0000 @@ -0,0 +1,9 @@ +libav (4:0.7~b1-1) experimental; urgency=low + + The 0.7 release series of Libav has a number of old and deprecated + APIs removed, so your packages might need some adaptations. Please see + the file APIChanges.gz for a list of API additions and removals. More + detailed information about the new API is provided in the shipped + doxygen documentation. + + -- Reinhard Tartler Tue, 19 Apr 2011 15:04:55 +0200 diff -Nru ffmpeg-2.5/debian/libavcodec-extra-53.install.in ffmpeg-0.10.12/debian/libavcodec-extra-53.install.in --- ffmpeg-2.5/debian/libavcodec-extra-53.install.in 1970-01-01 00:00:00.000000000 +0000 +++ ffmpeg-0.10.12/debian/libavcodec-extra-53.install.in 2014-04-26 06:23:55.000000000 +0000 @@ -0,0 +1 @@ +usr/lib/@DEB_HOST_MULTIARCH_OPT@/libavcodec.so.* diff -Nru ffmpeg-2.5/debian/libavcodec-ffmpeg56.install ffmpeg-0.10.12/debian/libavcodec-ffmpeg56.install --- ffmpeg-2.5/debian/libavcodec-ffmpeg56.install 2014-09-15 15:02:53.000000000 +0000 +++ ffmpeg-0.10.12/debian/libavcodec-ffmpeg56.install 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -usr/lib/*/libavcodec-ffmpeg.so.* diff -Nru ffmpeg-2.5/debian/libavcodec-ffmpeg56.lintian-overrides ffmpeg-0.10.12/debian/libavcodec-ffmpeg56.lintian-overrides --- ffmpeg-2.5/debian/libavcodec-ffmpeg56.lintian-overrides 2014-09-18 20:34:50.000000000 +0000 +++ ffmpeg-0.10.12/debian/libavcodec-ffmpeg56.lintian-overrides 1970-01-01 00:00:00.000000000 +0000 @@ -1,6 +0,0 @@ -# According to Debian policy [1], non position independent code is permitted -# in a shared library on i386 and position independent code may have a -# performance penalty, especially on i386. -# Therefore -fPIC is not used by the upstream build system on i386. -# 1: https://www.debian.org/doc/debian-policy/footnotes.html#f83 -libavcodec-ffmpeg56: shlib-with-non-pic-code usr/lib/i386*/libavcodec-ffmpeg.so.* diff -Nru ffmpeg-2.5/debian/libavcodec-ffmpeg56.symbols ffmpeg-0.10.12/debian/libavcodec-ffmpeg56.symbols --- ffmpeg-2.5/debian/libavcodec-ffmpeg56.symbols 2014-12-06 17:23:36.000000000 +0000 +++ ffmpeg-0.10.12/debian/libavcodec-ffmpeg56.symbols 1970-01-01 00:00:00.000000000 +0000 @@ -1,222 +0,0 @@ -libavcodec-ffmpeg.so.56 libavcodec-ffmpeg56 #MINVER# - LIBAVCODEC_FFMPEG_56@LIBAVCODEC_FFMPEG_56 7:2.4 - audio_resample@LIBAVCODEC_FFMPEG_56 7:2.4 - audio_resample_close@LIBAVCODEC_FFMPEG_56 7:2.4 - (optional)av_alloc_vdpaucontext@LIBAVCODEC_FFMPEG_56 7:2.4 - av_audio_convert@LIBAVCODEC_FFMPEG_56 7:2.4 - av_audio_convert_alloc@LIBAVCODEC_FFMPEG_56 7:2.4 - av_audio_convert_free@LIBAVCODEC_FFMPEG_56 7:2.4 - av_audio_resample_init@LIBAVCODEC_FFMPEG_56 7:2.4 - av_bitstream_filter_close@LIBAVCODEC_FFMPEG_56 7:2.4 - av_bitstream_filter_filter@LIBAVCODEC_FFMPEG_56 7:2.4 - av_bitstream_filter_init@LIBAVCODEC_FFMPEG_56 7:2.4 - av_bitstream_filter_next@LIBAVCODEC_FFMPEG_56 7:2.4 - av_codec_get_chroma_intra_matrix@LIBAVCODEC_FFMPEG_56 7:2.4 - av_codec_get_codec_descriptor@LIBAVCODEC_FFMPEG_56 7:2.4 - av_codec_get_lowres@LIBAVCODEC_FFMPEG_56 7:2.4 - av_codec_get_max_lowres@LIBAVCODEC_FFMPEG_56 7:2.4 - av_codec_get_pkt_timebase@LIBAVCODEC_FFMPEG_56 7:2.4 - av_codec_get_seek_preroll@LIBAVCODEC_FFMPEG_56 7:2.4 - av_codec_is_decoder@LIBAVCODEC_FFMPEG_56 7:2.4 - av_codec_is_encoder@LIBAVCODEC_FFMPEG_56 7:2.4 - av_codec_next@LIBAVCODEC_FFMPEG_56 7:2.4 - av_codec_set_chroma_intra_matrix@LIBAVCODEC_FFMPEG_56 7:2.4 - av_codec_set_codec_descriptor@LIBAVCODEC_FFMPEG_56 7:2.4 - av_codec_set_lowres@LIBAVCODEC_FFMPEG_56 7:2.4 - av_codec_set_pkt_timebase@LIBAVCODEC_FFMPEG_56 7:2.4 - av_codec_set_seek_preroll@LIBAVCODEC_FFMPEG_56 7:2.4 - av_copy_packet@LIBAVCODEC_FFMPEG_56 7:2.4 - av_copy_packet_side_data@LIBAVCODEC_FFMPEG_56 7:2.4 - av_dct_calc@LIBAVCODEC_FFMPEG_56 7:2.4 - av_dct_end@LIBAVCODEC_FFMPEG_56 7:2.4 - av_dct_init@LIBAVCODEC_FFMPEG_56 7:2.4 - av_destruct_packet@LIBAVCODEC_FFMPEG_56 7:2.4 - av_dup_packet@LIBAVCODEC_FFMPEG_56 7:2.4 - av_dv_codec_profile@LIBAVCODEC_FFMPEG_56 7:2.4 - av_dv_frame_profile@LIBAVCODEC_FFMPEG_56 7:2.4 - av_fast_padded_malloc@LIBAVCODEC_FFMPEG_56 7:2.4 - av_fast_padded_mallocz@LIBAVCODEC_FFMPEG_56 7:2.4 - av_fft_calc@LIBAVCODEC_FFMPEG_56 7:2.4 - av_fft_end@LIBAVCODEC_FFMPEG_56 7:2.4 - av_fft_init@LIBAVCODEC_FFMPEG_56 7:2.4 - av_fft_permute@LIBAVCODEC_FFMPEG_56 7:2.4 - av_free_packet@LIBAVCODEC_FFMPEG_56 7:2.4 - av_get_audio_frame_duration@LIBAVCODEC_FFMPEG_56 7:2.4 - av_get_bits_per_sample@LIBAVCODEC_FFMPEG_56 7:2.4 - av_get_codec_tag_string@LIBAVCODEC_FFMPEG_56 7:2.4 - av_get_exact_bits_per_sample@LIBAVCODEC_FFMPEG_56 7:2.4 - av_get_pcm_codec@LIBAVCODEC_FFMPEG_56 7:2.4 - av_get_profile_name@LIBAVCODEC_FFMPEG_56 7:2.4 - av_grow_packet@LIBAVCODEC_FFMPEG_56 7:2.4 - av_hwaccel_next@LIBAVCODEC_FFMPEG_56 7:2.4 - av_imdct_calc@LIBAVCODEC_FFMPEG_56 7:2.4 - av_imdct_half@LIBAVCODEC_FFMPEG_56 7:2.4 - av_init_packet@LIBAVCODEC_FFMPEG_56 7:2.4 - av_lockmgr_register@LIBAVCODEC_FFMPEG_56 7:2.4 - av_log_ask_for_sample@LIBAVCODEC_FFMPEG_56 7:2.4 - av_log_missing_feature@LIBAVCODEC_FFMPEG_56 7:2.4 - av_mdct_calc@LIBAVCODEC_FFMPEG_56 7:2.4 - av_mdct_end@LIBAVCODEC_FFMPEG_56 7:2.4 - av_mdct_init@LIBAVCODEC_FFMPEG_56 7:2.4 - av_new_packet@LIBAVCODEC_FFMPEG_56 7:2.4 - av_packet_copy_props@LIBAVCODEC_FFMPEG_56 7:2.4 - av_packet_free_side_data@LIBAVCODEC_FFMPEG_56 7:2.4 - av_packet_from_data@LIBAVCODEC_FFMPEG_56 7:2.4 - av_packet_get_side_data@LIBAVCODEC_FFMPEG_56 7:2.4 - av_packet_merge_side_data@LIBAVCODEC_FFMPEG_56 7:2.4 - av_packet_move_ref@LIBAVCODEC_FFMPEG_56 7:2.4 - av_packet_new_side_data@LIBAVCODEC_FFMPEG_56 7:2.4 - av_packet_pack_dictionary@LIBAVCODEC_FFMPEG_56 7:2.4 - av_packet_ref@LIBAVCODEC_FFMPEG_56 7:2.4 - av_packet_rescale_ts@LIBAVCODEC_FFMPEG_56 7:2.4 - av_packet_shrink_side_data@LIBAVCODEC_FFMPEG_56 7:2.4 - av_packet_split_side_data@LIBAVCODEC_FFMPEG_56 7:2.4 - av_packet_unpack_dictionary@LIBAVCODEC_FFMPEG_56 7:2.4 - av_packet_unref@LIBAVCODEC_FFMPEG_56 7:2.4 - av_parser_change@LIBAVCODEC_FFMPEG_56 7:2.4 - av_parser_close@LIBAVCODEC_FFMPEG_56 7:2.4 - av_parser_init@LIBAVCODEC_FFMPEG_56 7:2.4 - av_parser_next@LIBAVCODEC_FFMPEG_56 7:2.4 - av_parser_parse2@LIBAVCODEC_FFMPEG_56 7:2.4 - av_picture_copy@LIBAVCODEC_FFMPEG_56 7:2.4 - av_picture_crop@LIBAVCODEC_FFMPEG_56 7:2.4 - av_picture_pad@LIBAVCODEC_FFMPEG_56 7:2.4 - av_rdft_calc@LIBAVCODEC_FFMPEG_56 7:2.4 - av_rdft_end@LIBAVCODEC_FFMPEG_56 7:2.4 - av_rdft_init@LIBAVCODEC_FFMPEG_56 7:2.4 - av_register_bitstream_filter@LIBAVCODEC_FFMPEG_56 7:2.4 - av_register_codec_parser@LIBAVCODEC_FFMPEG_56 7:2.4 - av_register_hwaccel@LIBAVCODEC_FFMPEG_56 7:2.4 - av_resample@LIBAVCODEC_FFMPEG_56 7:2.4 - av_resample_close@LIBAVCODEC_FFMPEG_56 7:2.4 - av_resample_compensate@LIBAVCODEC_FFMPEG_56 7:2.4 - av_resample_init@LIBAVCODEC_FFMPEG_56 7:2.4 - av_shrink_packet@LIBAVCODEC_FFMPEG_56 7:2.4 - (optional)av_vdpau_alloc_context@LIBAVCODEC_FFMPEG_56 7:2.4 - av_vdpau_bind_context@LIBAVCODEC_FFMPEG_56 7:2.5 - (optional)av_vdpau_get_profile@LIBAVCODEC_FFMPEG_56 7:2.4 - (optional)av_vdpau_hwaccel_get_render2@LIBAVCODEC_FFMPEG_56 7:2.4 - (optional)av_vdpau_hwaccel_set_render2@LIBAVCODEC_FFMPEG_56 7:2.4 - av_vorbis_parse_frame@LIBAVCODEC_FFMPEG_56 7:2.5 - av_vorbis_parse_frame_flags@LIBAVCODEC_FFMPEG_56 7:2.5 - av_vorbis_parse_free@LIBAVCODEC_FFMPEG_56 7:2.5 - av_vorbis_parse_init@LIBAVCODEC_FFMPEG_56 7:2.5 - av_vorbis_parse_reset@LIBAVCODEC_FFMPEG_56 7:2.5 - av_xiphlacing@LIBAVCODEC_FFMPEG_56 7:2.4 - avcodec_align_dimensions2@LIBAVCODEC_FFMPEG_56 7:2.4 - avcodec_align_dimensions@LIBAVCODEC_FFMPEG_56 7:2.4 - avcodec_alloc_context3@LIBAVCODEC_FFMPEG_56 7:2.4 - avcodec_alloc_frame@LIBAVCODEC_FFMPEG_56 7:2.4 - avcodec_chroma_pos_to_enum@LIBAVCODEC_FFMPEG_56 7:2.4 - avcodec_close@LIBAVCODEC_FFMPEG_56 7:2.4 - avcodec_configuration@LIBAVCODEC_FFMPEG_56 7:2.4 - avcodec_copy_context@LIBAVCODEC_FFMPEG_56 7:2.4 - avcodec_dct_alloc@LIBAVCODEC_FFMPEG_56 7:2.4 - avcodec_dct_get_class@LIBAVCODEC_FFMPEG_56 7:2.4 - avcodec_dct_init@LIBAVCODEC_FFMPEG_56 7:2.4 - avcodec_decode_audio3@LIBAVCODEC_FFMPEG_56 7:2.4 - avcodec_decode_audio4@LIBAVCODEC_FFMPEG_56 7:2.4 - avcodec_decode_subtitle2@LIBAVCODEC_FFMPEG_56 7:2.4 - avcodec_decode_video2@LIBAVCODEC_FFMPEG_56 7:2.4 - avcodec_default_execute2@LIBAVCODEC_FFMPEG_56 7:2.4 - avcodec_default_execute@LIBAVCODEC_FFMPEG_56 7:2.4 - avcodec_default_get_buffer2@LIBAVCODEC_FFMPEG_56 7:2.4 - avcodec_default_get_buffer@LIBAVCODEC_FFMPEG_56 7:2.4 - avcodec_default_get_format@LIBAVCODEC_FFMPEG_56 7:2.4 - avcodec_default_reget_buffer@LIBAVCODEC_FFMPEG_56 7:2.4 - avcodec_default_release_buffer@LIBAVCODEC_FFMPEG_56 7:2.4 - avcodec_descriptor_get@LIBAVCODEC_FFMPEG_56 7:2.4 - avcodec_descriptor_get_by_name@LIBAVCODEC_FFMPEG_56 7:2.4 - avcodec_descriptor_next@LIBAVCODEC_FFMPEG_56 7:2.4 - avcodec_encode_audio2@LIBAVCODEC_FFMPEG_56 7:2.4 - avcodec_encode_audio@LIBAVCODEC_FFMPEG_56 7:2.4 - avcodec_encode_subtitle@LIBAVCODEC_FFMPEG_56 7:2.4 - avcodec_encode_video2@LIBAVCODEC_FFMPEG_56 7:2.4 - avcodec_encode_video@LIBAVCODEC_FFMPEG_56 7:2.4 - avcodec_enum_to_chroma_pos@LIBAVCODEC_FFMPEG_56 7:2.4 - avcodec_fill_audio_frame@LIBAVCODEC_FFMPEG_56 7:2.4 - avcodec_find_best_pix_fmt2@LIBAVCODEC_FFMPEG_56 7:2.4 - avcodec_find_best_pix_fmt_of_2@LIBAVCODEC_FFMPEG_56 7:2.4 - avcodec_find_best_pix_fmt_of_list@LIBAVCODEC_FFMPEG_56 7:2.4 - avcodec_find_decoder@LIBAVCODEC_FFMPEG_56 7:2.4 - avcodec_find_decoder_by_name@LIBAVCODEC_FFMPEG_56 7:2.4 - avcodec_find_encoder@LIBAVCODEC_FFMPEG_56 7:2.4 - avcodec_find_encoder_by_name@LIBAVCODEC_FFMPEG_56 7:2.4 - avcodec_flush_buffers@LIBAVCODEC_FFMPEG_56 7:2.4 - avcodec_free_context@LIBAVCODEC_FFMPEG_56 7:2.4 - avcodec_free_frame@LIBAVCODEC_FFMPEG_56 7:2.4 - avcodec_get_chroma_sub_sample@LIBAVCODEC_FFMPEG_56 7:2.4 - avcodec_get_class@LIBAVCODEC_FFMPEG_56 7:2.4 - avcodec_get_context_defaults3@LIBAVCODEC_FFMPEG_56 7:2.4 - avcodec_get_edge_width@LIBAVCODEC_FFMPEG_56 7:2.4 - avcodec_get_frame_class@LIBAVCODEC_FFMPEG_56 7:2.4 - avcodec_get_frame_defaults@LIBAVCODEC_FFMPEG_56 7:2.4 - avcodec_get_name@LIBAVCODEC_FFMPEG_56 7:2.4 - avcodec_get_pix_fmt_loss@LIBAVCODEC_FFMPEG_56 7:2.4 - avcodec_get_subtitle_rect_class@LIBAVCODEC_FFMPEG_56 7:2.4 - avcodec_get_type@LIBAVCODEC_FFMPEG_56 7:2.4 - avcodec_is_open@LIBAVCODEC_FFMPEG_56 7:2.4 - avcodec_license@LIBAVCODEC_FFMPEG_56 7:2.4 - avcodec_open2@LIBAVCODEC_FFMPEG_56 7:2.4 - avcodec_pix_fmt_to_codec_tag@LIBAVCODEC_FFMPEG_56 7:2.4 - avcodec_register@LIBAVCODEC_FFMPEG_56 7:2.4 - avcodec_register_all@LIBAVCODEC_FFMPEG_56 7:2.4 - avcodec_set_dimensions@LIBAVCODEC_FFMPEG_56 7:2.4 - avcodec_string@LIBAVCODEC_FFMPEG_56 7:2.4 - avcodec_version@LIBAVCODEC_FFMPEG_56 7:2.4 - avpicture_alloc@LIBAVCODEC_FFMPEG_56 7:2.4 - avpicture_deinterlace@LIBAVCODEC_FFMPEG_56 7:2.4 - avpicture_fill@LIBAVCODEC_FFMPEG_56 7:2.4 - avpicture_free@LIBAVCODEC_FFMPEG_56 7:2.4 - avpicture_get_size@LIBAVCODEC_FFMPEG_56 7:2.4 - avpicture_layout@LIBAVCODEC_FFMPEG_56 7:2.4 - avpriv_aac_parse_header@LIBAVCODEC_FFMPEG_56 7:2.4 - avpriv_ac3_channel_layout_tab@LIBAVCODEC_FFMPEG_56 7:2.4 - avpriv_ac3_parse_header2@LIBAVCODEC_FFMPEG_56 7:2.4 - avpriv_ac3_parse_header@LIBAVCODEC_FFMPEG_56 7:2.4 - avpriv_align_put_bits@LIBAVCODEC_FFMPEG_56 7:2.4 - avpriv_bprint_to_extradata@LIBAVCODEC_FFMPEG_56 7:2.4 - avpriv_color_frame@LIBAVCODEC_FFMPEG_56 7:2.4 - avpriv_copy_bits@LIBAVCODEC_FFMPEG_56 7:2.4 - avpriv_copy_pce_data@LIBAVCODEC_FFMPEG_56 7:2.4 - avpriv_dca_convert_bitstream@LIBAVCODEC_FFMPEG_56 7:2.4 - avpriv_dca_sample_rates@LIBAVCODEC_FFMPEG_56 7:2.4 - avpriv_dirac_parse_sequence_header@LIBAVCODEC_FFMPEG_56 7:2.4 - avpriv_dnxhd_get_frame_size@LIBAVCODEC_FFMPEG_56 7:2.4 - avpriv_do_elbg@LIBAVCODEC_FFMPEG_56 7:2.4 - avpriv_dv_frame_profile2@LIBAVCODEC_FFMPEG_56 7:2.4 - avpriv_exif_decode_ifd@LIBAVCODEC_FFMPEG_56 7:2.4 - avpriv_find_pix_fmt@LIBAVCODEC_FFMPEG_56 7:2.4 - avpriv_find_start_code@LIBAVCODEC_FFMPEG_56 7:2.4 - avpriv_flac_is_extradata_valid@LIBAVCODEC_FFMPEG_56 7:2.4 - avpriv_flac_parse_streaminfo@LIBAVCODEC_FFMPEG_56 7:2.4 - avpriv_get_raw_pix_fmt_tags@LIBAVCODEC_FFMPEG_56 7:2.4 - avpriv_h264_has_num_reorder_frames@LIBAVCODEC_FFMPEG_56 7:2.4 - avpriv_init_elbg@LIBAVCODEC_FFMPEG_56 7:2.4 - avpriv_lock_avformat@LIBAVCODEC_FFMPEG_56 7:2.4 - avpriv_mjpeg_bits_ac_chrominance@LIBAVCODEC_FFMPEG_56 7:2.4 - avpriv_mjpeg_bits_ac_luminance@LIBAVCODEC_FFMPEG_56 7:2.4 - avpriv_mjpeg_bits_dc_chrominance@LIBAVCODEC_FFMPEG_56 7:2.4 - avpriv_mjpeg_bits_dc_luminance@LIBAVCODEC_FFMPEG_56 7:2.4 - avpriv_mjpeg_val_ac_chrominance@LIBAVCODEC_FFMPEG_56 7:2.4 - avpriv_mjpeg_val_ac_luminance@LIBAVCODEC_FFMPEG_56 7:2.4 - avpriv_mjpeg_val_dc@LIBAVCODEC_FFMPEG_56 7:2.4 - avpriv_mpa_bitrate_tab@LIBAVCODEC_FFMPEG_56 7:2.4 - avpriv_mpa_decode_header2@LIBAVCODEC_FFMPEG_56 7:2.4 - avpriv_mpa_decode_header@LIBAVCODEC_FFMPEG_56 7:2.4 - avpriv_mpa_freq_tab@LIBAVCODEC_FFMPEG_56 7:2.4 - avpriv_mpeg4audio_get_config@LIBAVCODEC_FFMPEG_56 7:2.4 - avpriv_mpeg4audio_sample_rates@LIBAVCODEC_FFMPEG_56 7:2.4 - avpriv_mpegaudio_decode_header@LIBAVCODEC_FFMPEG_56 7:2.4 - avpriv_pix_fmt_bps_avi@LIBAVCODEC_FFMPEG_56 7:2.4 - avpriv_pix_fmt_bps_mov@LIBAVCODEC_FFMPEG_56 7:2.4 - avpriv_put_string@LIBAVCODEC_FFMPEG_56 7:2.4 - avpriv_split_xiph_headers@LIBAVCODEC_FFMPEG_56 7:2.4 - avpriv_tak_parse_streaminfo@LIBAVCODEC_FFMPEG_56 7:2.4 - avpriv_toupper4@LIBAVCODEC_FFMPEG_56 7:2.4 - avpriv_unlock_avformat@LIBAVCODEC_FFMPEG_56 7:2.4 - avpriv_vorbis_parse_extradata@LIBAVCODEC_FFMPEG_56 7:2.4 - avpriv_vorbis_parse_frame@LIBAVCODEC_FFMPEG_56 7:2.4 - avpriv_vorbis_parse_frame_flags@LIBAVCODEC_FFMPEG_56 7:2.4 - avpriv_vorbis_parse_reset@LIBAVCODEC_FFMPEG_56 7:2.4 - avsubtitle_free@LIBAVCODEC_FFMPEG_56 7:2.4 diff -Nru ffmpeg-2.5/debian/libavcodec-ffmpeg-dev.install ffmpeg-0.10.12/debian/libavcodec-ffmpeg-dev.install --- ffmpeg-2.5/debian/libavcodec-ffmpeg-dev.install 2014-09-18 20:34:50.000000000 +0000 +++ ffmpeg-0.10.12/debian/libavcodec-ffmpeg-dev.install 1970-01-01 00:00:00.000000000 +0000 @@ -1,4 +0,0 @@ -usr/include/*/libavcodec -usr/lib/*/libavcodec*.a -usr/lib/*/libavcodec*.so -usr/lib/*/pkgconfig/libavcodec*.pc diff -Nru ffmpeg-2.5/debian/libavdevice53.install.in ffmpeg-0.10.12/debian/libavdevice53.install.in --- ffmpeg-2.5/debian/libavdevice53.install.in 1970-01-01 00:00:00.000000000 +0000 +++ ffmpeg-0.10.12/debian/libavdevice53.install.in 2014-02-06 14:16:33.000000000 +0000 @@ -0,0 +1 @@ +usr/lib/@DEB_HOST_MULTIARCH_OPT@/libavdevice.so.* diff -Nru ffmpeg-2.5/debian/libavdevice53.lintian-overrides ffmpeg-0.10.12/debian/libavdevice53.lintian-overrides --- ffmpeg-2.5/debian/libavdevice53.lintian-overrides 1970-01-01 00:00:00.000000000 +0000 +++ ffmpeg-0.10.12/debian/libavdevice53.lintian-overrides 2014-02-06 14:16:33.000000000 +0000 @@ -0,0 +1,2 @@ +# Overriding these fpic lintian errors. Please see bug #528080. +libavdevice53: shlib-with-non-pic-code diff -Nru ffmpeg-2.5/debian/libavdevice-dev.install.in ffmpeg-0.10.12/debian/libavdevice-dev.install.in --- ffmpeg-2.5/debian/libavdevice-dev.install.in 1970-01-01 00:00:00.000000000 +0000 +++ ffmpeg-0.10.12/debian/libavdevice-dev.install.in 2014-04-26 06:23:55.000000000 +0000 @@ -0,0 +1,4 @@ +usr/include/libavdevice +usr/lib/@DEB_HOST_MULTIARCH@/libavdevice.a +usr/lib/@DEB_HOST_MULTIARCH_OPT@/libavdevice.so +usr/lib/@DEB_HOST_MULTIARCH@/pkgconfig/libavdevice.pc diff -Nru ffmpeg-2.5/debian/libavdevice-ffmpeg56.install ffmpeg-0.10.12/debian/libavdevice-ffmpeg56.install --- ffmpeg-2.5/debian/libavdevice-ffmpeg56.install 2014-09-15 15:02:53.000000000 +0000 +++ ffmpeg-0.10.12/debian/libavdevice-ffmpeg56.install 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -usr/lib/*/libavdevice-ffmpeg.so.* diff -Nru ffmpeg-2.5/debian/libavdevice-ffmpeg56.lintian-overrides ffmpeg-0.10.12/debian/libavdevice-ffmpeg56.lintian-overrides --- ffmpeg-2.5/debian/libavdevice-ffmpeg56.lintian-overrides 2014-09-18 20:34:50.000000000 +0000 +++ ffmpeg-0.10.12/debian/libavdevice-ffmpeg56.lintian-overrides 1970-01-01 00:00:00.000000000 +0000 @@ -1,10 +0,0 @@ -# This is a bug in lintian thinking only libav (and not also FFmpeg) build libavdevice. -# See: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=729203#430 -libavdevice-ffmpeg56: embedded-library usr/lib/*/libavdevice-ffmpeg.so.*: libavdevice - -# According to Debian policy [1], non position independent code is permitted -# in a shared library on i386 and position independent code may have a -# performance penalty, especially on i386. -# Therefore -fPIC is not used by the upstream build system on i386. -# 1: https://www.debian.org/doc/debian-policy/footnotes.html#f83 -libavdevice-ffmpeg56: shlib-with-non-pic-code usr/lib/i386*/libavdevice-ffmpeg.so.* diff -Nru ffmpeg-2.5/debian/libavdevice-ffmpeg56.symbols ffmpeg-0.10.12/debian/libavdevice-ffmpeg56.symbols --- ffmpeg-2.5/debian/libavdevice-ffmpeg56.symbols 2014-11-05 14:29:19.000000000 +0000 +++ ffmpeg-0.10.12/debian/libavdevice-ffmpeg56.symbols 1970-01-01 00:00:00.000000000 +0000 @@ -1,17 +0,0 @@ -libavdevice-ffmpeg.so.56 libavdevice-ffmpeg56 #MINVER# - LIBAVDEVICE_FFMPEG_56@LIBAVDEVICE_FFMPEG_56 7:2.4 - av_device_capabilities@LIBAVDEVICE_FFMPEG_56 7:2.4.3 - av_input_audio_device_next@LIBAVDEVICE_FFMPEG_56 7:2.4.3 - av_input_video_device_next@LIBAVDEVICE_FFMPEG_56 7:2.4.3 - av_output_audio_device_next@LIBAVDEVICE_FFMPEG_56 7:2.4.3 - av_output_video_device_next@LIBAVDEVICE_FFMPEG_56 7:2.4.3 - avdevice_app_to_dev_control_message@LIBAVDEVICE_FFMPEG_56 7:2.4 - avdevice_capabilities_create@LIBAVDEVICE_FFMPEG_56 7:2.4 - avdevice_capabilities_free@LIBAVDEVICE_FFMPEG_56 7:2.4 - avdevice_configuration@LIBAVDEVICE_FFMPEG_56 7:2.4 - avdevice_dev_to_app_control_message@LIBAVDEVICE_FFMPEG_56 7:2.4 - avdevice_free_list_devices@LIBAVDEVICE_FFMPEG_56 7:2.4 - avdevice_license@LIBAVDEVICE_FFMPEG_56 7:2.4 - avdevice_list_devices@LIBAVDEVICE_FFMPEG_56 7:2.4 - avdevice_register_all@LIBAVDEVICE_FFMPEG_56 7:2.4 - avdevice_version@LIBAVDEVICE_FFMPEG_56 7:2.4 diff -Nru ffmpeg-2.5/debian/libavdevice-ffmpeg-dev.install ffmpeg-0.10.12/debian/libavdevice-ffmpeg-dev.install --- ffmpeg-2.5/debian/libavdevice-ffmpeg-dev.install 2014-09-18 20:34:50.000000000 +0000 +++ ffmpeg-0.10.12/debian/libavdevice-ffmpeg-dev.install 1970-01-01 00:00:00.000000000 +0000 @@ -1,4 +0,0 @@ -usr/include/*/libavdevice -usr/lib/*/libavdevice*.a -usr/lib/*/libavdevice*.so -usr/lib/*/pkgconfig/libavdevice*.pc diff -Nru ffmpeg-2.5/debian/libavfilter2.install.in ffmpeg-0.10.12/debian/libavfilter2.install.in --- ffmpeg-2.5/debian/libavfilter2.install.in 1970-01-01 00:00:00.000000000 +0000 +++ ffmpeg-0.10.12/debian/libavfilter2.install.in 2014-04-26 06:23:55.000000000 +0000 @@ -0,0 +1 @@ +usr/lib/@DEB_HOST_MULTIARCH_OPT@/libavfilter.so.* diff -Nru ffmpeg-2.5/debian/libavfilter2.lintian-overrides ffmpeg-0.10.12/debian/libavfilter2.lintian-overrides --- ffmpeg-2.5/debian/libavfilter2.lintian-overrides 1970-01-01 00:00:00.000000000 +0000 +++ ffmpeg-0.10.12/debian/libavfilter2.lintian-overrides 2014-04-26 06:23:55.000000000 +0000 @@ -0,0 +1,2 @@ +# Overriding these fpic lintian errors. Please see bug #528080. +libavfilter2: shlib-with-non-pic-code diff -Nru ffmpeg-2.5/debian/libavfilter-dev.install.in ffmpeg-0.10.12/debian/libavfilter-dev.install.in --- ffmpeg-2.5/debian/libavfilter-dev.install.in 1970-01-01 00:00:00.000000000 +0000 +++ ffmpeg-0.10.12/debian/libavfilter-dev.install.in 2014-04-26 06:23:55.000000000 +0000 @@ -0,0 +1,4 @@ +usr/include/libavfilter +usr/lib/@DEB_HOST_MULTIARCH@/libavfilter.a +usr/lib/@DEB_HOST_MULTIARCH_OPT@/libavfilter.so +usr/lib/@DEB_HOST_MULTIARCH@/pkgconfig/libavfilter.pc diff -Nru ffmpeg-2.5/debian/libavfilter-ffmpeg5.install ffmpeg-0.10.12/debian/libavfilter-ffmpeg5.install --- ffmpeg-2.5/debian/libavfilter-ffmpeg5.install 2014-09-15 15:02:53.000000000 +0000 +++ ffmpeg-0.10.12/debian/libavfilter-ffmpeg5.install 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -usr/lib/*/libavfilter-ffmpeg.so.* diff -Nru ffmpeg-2.5/debian/libavfilter-ffmpeg5.lintian-overrides ffmpeg-0.10.12/debian/libavfilter-ffmpeg5.lintian-overrides --- ffmpeg-2.5/debian/libavfilter-ffmpeg5.lintian-overrides 2014-09-18 20:34:50.000000000 +0000 +++ ffmpeg-0.10.12/debian/libavfilter-ffmpeg5.lintian-overrides 1970-01-01 00:00:00.000000000 +0000 @@ -1,10 +0,0 @@ -# This is a bug in lintian thinking only libav (and not also FFmpeg) build libavfilter. -# See: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=729203#430 -libavfilter-ffmpeg5: embedded-library usr/lib/*/libavfilter-ffmpeg.so.*: libavfilter - -# According to Debian policy [1], non position independent code is permitted -# in a shared library on i386 and position independent code may have a -# performance penalty, especially on i386. -# Therefore -fPIC is not used by the upstream build system on i386. -# 1: https://www.debian.org/doc/debian-policy/footnotes.html#f83 -libavfilter-ffmpeg5: shlib-with-non-pic-code usr/lib/i386*/libavfilter-ffmpeg.so.* diff -Nru ffmpeg-2.5/debian/libavfilter-ffmpeg5.symbols ffmpeg-0.10.12/debian/libavfilter-ffmpeg5.symbols --- ffmpeg-2.5/debian/libavfilter-ffmpeg5.symbols 2014-09-15 15:02:53.000000000 +0000 +++ ffmpeg-0.10.12/debian/libavfilter-ffmpeg5.symbols 1970-01-01 00:00:00.000000000 +0000 @@ -1,81 +0,0 @@ -libavfilter-ffmpeg.so.5 libavfilter-ffmpeg5 #MINVER# - LIBAVFILTER_FFMPEG_5@LIBAVFILTER_FFMPEG_5 7:2.4 - av_abuffersink_params_alloc@LIBAVFILTER_FFMPEG_5 7:2.4 - av_buffersink_get_buffer_ref@LIBAVFILTER_FFMPEG_5 7:2.4 - av_buffersink_get_frame@LIBAVFILTER_FFMPEG_5 7:2.4 - av_buffersink_get_frame_flags@LIBAVFILTER_FFMPEG_5 7:2.4 - av_buffersink_get_frame_rate@LIBAVFILTER_FFMPEG_5 7:2.4 - av_buffersink_get_samples@LIBAVFILTER_FFMPEG_5 7:2.4 - av_buffersink_params_alloc@LIBAVFILTER_FFMPEG_5 7:2.4 - av_buffersink_poll_frame@LIBAVFILTER_FFMPEG_5 7:2.4 - av_buffersink_read@LIBAVFILTER_FFMPEG_5 7:2.4 - av_buffersink_read_samples@LIBAVFILTER_FFMPEG_5 7:2.4 - av_buffersink_set_frame_size@LIBAVFILTER_FFMPEG_5 7:2.4 - av_buffersrc_add_frame@LIBAVFILTER_FFMPEG_5 7:2.4 - av_buffersrc_add_frame_flags@LIBAVFILTER_FFMPEG_5 7:2.4 - av_buffersrc_add_ref@LIBAVFILTER_FFMPEG_5 7:2.4 - av_buffersrc_buffer@LIBAVFILTER_FFMPEG_5 7:2.4 - av_buffersrc_get_nb_failed_requests@LIBAVFILTER_FFMPEG_5 7:2.4 - av_buffersrc_write_frame@LIBAVFILTER_FFMPEG_5 7:2.4 - av_filter_next@LIBAVFILTER_FFMPEG_5 7:2.4 - avfilter_add_matrix@LIBAVFILTER_FFMPEG_5 7:2.4 - avfilter_all_channel_layouts@LIBAVFILTER_FFMPEG_5 7:2.4 - avfilter_config_links@LIBAVFILTER_FFMPEG_5 7:2.4 - avfilter_configuration@LIBAVFILTER_FFMPEG_5 7:2.4 - avfilter_copy_buf_props@LIBAVFILTER_FFMPEG_5 7:2.4 - avfilter_copy_buffer_ref_props@LIBAVFILTER_FFMPEG_5 7:2.4 - avfilter_copy_frame_props@LIBAVFILTER_FFMPEG_5 7:2.4 - avfilter_free@LIBAVFILTER_FFMPEG_5 7:2.4 - avfilter_get_audio_buffer_ref_from_arrays@LIBAVFILTER_FFMPEG_5 7:2.4 - avfilter_get_audio_buffer_ref_from_arrays_channels@LIBAVFILTER_FFMPEG_5 7:2.4 - avfilter_get_audio_buffer_ref_from_frame@LIBAVFILTER_FFMPEG_5 7:2.4 - avfilter_get_buffer_ref_from_frame@LIBAVFILTER_FFMPEG_5 7:2.4 - avfilter_get_by_name@LIBAVFILTER_FFMPEG_5 7:2.4 - avfilter_get_class@LIBAVFILTER_FFMPEG_5 7:2.4 - avfilter_get_matrix@LIBAVFILTER_FFMPEG_5 7:2.4 - avfilter_get_video_buffer_ref_from_arrays@LIBAVFILTER_FFMPEG_5 7:2.4 - avfilter_get_video_buffer_ref_from_frame@LIBAVFILTER_FFMPEG_5 7:2.4 - avfilter_graph_add_filter@LIBAVFILTER_FFMPEG_5 7:2.4 - avfilter_graph_alloc@LIBAVFILTER_FFMPEG_5 7:2.4 - avfilter_graph_alloc_filter@LIBAVFILTER_FFMPEG_5 7:2.4 - avfilter_graph_config@LIBAVFILTER_FFMPEG_5 7:2.4 - avfilter_graph_create_filter@LIBAVFILTER_FFMPEG_5 7:2.4 - avfilter_graph_dump@LIBAVFILTER_FFMPEG_5 7:2.4 - avfilter_graph_free@LIBAVFILTER_FFMPEG_5 7:2.4 - avfilter_graph_get_filter@LIBAVFILTER_FFMPEG_5 7:2.4 - avfilter_graph_parse2@LIBAVFILTER_FFMPEG_5 7:2.4 - avfilter_graph_parse@LIBAVFILTER_FFMPEG_5 7:2.4 - avfilter_graph_parse_ptr@LIBAVFILTER_FFMPEG_5 7:2.4 - avfilter_graph_queue_command@LIBAVFILTER_FFMPEG_5 7:2.4 - avfilter_graph_request_oldest@LIBAVFILTER_FFMPEG_5 7:2.4 - avfilter_graph_send_command@LIBAVFILTER_FFMPEG_5 7:2.4 - avfilter_graph_set_auto_convert@LIBAVFILTER_FFMPEG_5 7:2.4 - avfilter_init_dict@LIBAVFILTER_FFMPEG_5 7:2.4 - avfilter_init_filter@LIBAVFILTER_FFMPEG_5 7:2.4 - avfilter_init_str@LIBAVFILTER_FFMPEG_5 7:2.4 - avfilter_inout_alloc@LIBAVFILTER_FFMPEG_5 7:2.4 - avfilter_inout_free@LIBAVFILTER_FFMPEG_5 7:2.4 - avfilter_insert_filter@LIBAVFILTER_FFMPEG_5 7:2.4 - avfilter_license@LIBAVFILTER_FFMPEG_5 7:2.4 - avfilter_link@LIBAVFILTER_FFMPEG_5 7:2.4 - avfilter_link_free@LIBAVFILTER_FFMPEG_5 7:2.4 - avfilter_link_get_channels@LIBAVFILTER_FFMPEG_5 7:2.4 - avfilter_link_set_closed@LIBAVFILTER_FFMPEG_5 7:2.4 - avfilter_make_format64_list@LIBAVFILTER_FFMPEG_5 7:2.4 - avfilter_mul_matrix@LIBAVFILTER_FFMPEG_5 7:2.4 - avfilter_next@LIBAVFILTER_FFMPEG_5 7:2.4 - avfilter_open@LIBAVFILTER_FFMPEG_5 7:2.4 - avfilter_pad_count@LIBAVFILTER_FFMPEG_5 7:2.4 - avfilter_pad_get_name@LIBAVFILTER_FFMPEG_5 7:2.4 - avfilter_pad_get_type@LIBAVFILTER_FFMPEG_5 7:2.4 - avfilter_process_command@LIBAVFILTER_FFMPEG_5 7:2.4 - avfilter_ref_buffer@LIBAVFILTER_FFMPEG_5 7:2.4 - avfilter_ref_get_channels@LIBAVFILTER_FFMPEG_5 7:2.4 - avfilter_register@LIBAVFILTER_FFMPEG_5 7:2.4 - avfilter_register_all@LIBAVFILTER_FFMPEG_5 7:2.4 - avfilter_sub_matrix@LIBAVFILTER_FFMPEG_5 7:2.4 - avfilter_transform@LIBAVFILTER_FFMPEG_5 7:2.4 - avfilter_uninit@LIBAVFILTER_FFMPEG_5 7:2.4 - avfilter_unref_buffer@LIBAVFILTER_FFMPEG_5 7:2.4 - avfilter_unref_bufferp@LIBAVFILTER_FFMPEG_5 7:2.4 - avfilter_version@LIBAVFILTER_FFMPEG_5 7:2.4 diff -Nru ffmpeg-2.5/debian/libavfilter-ffmpeg-dev.install ffmpeg-0.10.12/debian/libavfilter-ffmpeg-dev.install --- ffmpeg-2.5/debian/libavfilter-ffmpeg-dev.install 2014-09-18 20:34:50.000000000 +0000 +++ ffmpeg-0.10.12/debian/libavfilter-ffmpeg-dev.install 1970-01-01 00:00:00.000000000 +0000 @@ -1,4 +0,0 @@ -usr/include/*/libavfilter -usr/lib/*/libavfilter*.a -usr/lib/*/libavfilter*.so -usr/lib/*/pkgconfig/libavfilter*.pc diff -Nru ffmpeg-2.5/debian/libavformat53.install.in ffmpeg-0.10.12/debian/libavformat53.install.in --- ffmpeg-2.5/debian/libavformat53.install.in 1970-01-01 00:00:00.000000000 +0000 +++ ffmpeg-0.10.12/debian/libavformat53.install.in 2014-04-26 06:23:55.000000000 +0000 @@ -0,0 +1 @@ +usr/lib/@DEB_HOST_MULTIARCH_OPT@/libavformat.so.* diff -Nru ffmpeg-2.5/debian/libavformat53.lintian-overrides ffmpeg-0.10.12/debian/libavformat53.lintian-overrides --- ffmpeg-2.5/debian/libavformat53.lintian-overrides 1970-01-01 00:00:00.000000000 +0000 +++ ffmpeg-0.10.12/debian/libavformat53.lintian-overrides 2014-04-26 06:23:55.000000000 +0000 @@ -0,0 +1,2 @@ +# Overriding these fpic lintian errors. Please see bug #528080. +libavformat53: shlib-with-non-pic-code diff -Nru ffmpeg-2.5/debian/libavformat-dev.install.in ffmpeg-0.10.12/debian/libavformat-dev.install.in --- ffmpeg-2.5/debian/libavformat-dev.install.in 1970-01-01 00:00:00.000000000 +0000 +++ ffmpeg-0.10.12/debian/libavformat-dev.install.in 2014-04-26 06:23:55.000000000 +0000 @@ -0,0 +1,4 @@ +usr/include/libavformat +usr/lib/@DEB_HOST_MULTIARCH@/libavformat.a +usr/lib/@DEB_HOST_MULTIARCH_OPT@/libavformat.so +usr/lib/@DEB_HOST_MULTIARCH@/pkgconfig/libavformat.pc diff -Nru ffmpeg-2.5/debian/libavformat-ffmpeg56.install ffmpeg-0.10.12/debian/libavformat-ffmpeg56.install --- ffmpeg-2.5/debian/libavformat-ffmpeg56.install 2014-09-15 15:02:53.000000000 +0000 +++ ffmpeg-0.10.12/debian/libavformat-ffmpeg56.install 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -usr/lib/*/libavformat-ffmpeg.so.* diff -Nru ffmpeg-2.5/debian/libavformat-ffmpeg56.lintian-overrides ffmpeg-0.10.12/debian/libavformat-ffmpeg56.lintian-overrides --- ffmpeg-2.5/debian/libavformat-ffmpeg56.lintian-overrides 2014-09-18 20:34:50.000000000 +0000 +++ ffmpeg-0.10.12/debian/libavformat-ffmpeg56.lintian-overrides 1970-01-01 00:00:00.000000000 +0000 @@ -1,9 +0,0 @@ -# [67] = "Psychadelic", /* sic, the misspelling is used in the specification */ -libavformat-ffmpeg56: spelling-error-in-binary usr/lib/*/libavformat-ffmpeg.so.* Psychadelic Psychedelic - -# According to Debian policy [1], non position independent code is permitted -# in a shared library on i386 and position independent code may have a -# performance penalty, especially on i386. -# Therefore -fPIC is not used by the upstream build system on i386. -# 1: https://www.debian.org/doc/debian-policy/footnotes.html#f83 -libavformat-ffmpeg56: shlib-with-non-pic-code usr/lib/i386*/libavformat-ffmpeg.so.* diff -Nru ffmpeg-2.5/debian/libavformat-ffmpeg56.symbols ffmpeg-0.10.12/debian/libavformat-ffmpeg56.symbols --- ffmpeg-2.5/debian/libavformat-ffmpeg56.symbols 2014-12-06 17:23:36.000000000 +0000 +++ ffmpeg-0.10.12/debian/libavformat-ffmpeg56.symbols 1970-01-01 00:00:00.000000000 +0000 @@ -1,161 +0,0 @@ -libavformat-ffmpeg.so.56 libavformat-ffmpeg56 #MINVER# - LIBAVFORMAT_FFMPEG_56@LIBAVFORMAT_FFMPEG_56 7:2.4 - av_add_index_entry@LIBAVFORMAT_FFMPEG_56 7:2.4 - av_append_packet@LIBAVFORMAT_FFMPEG_56 7:2.4 - av_codec_get_id@LIBAVFORMAT_FFMPEG_56 7:2.4 - av_codec_get_tag2@LIBAVFORMAT_FFMPEG_56 7:2.4 - av_codec_get_tag@LIBAVFORMAT_FFMPEG_56 7:2.4 - av_convert_lang_to@LIBAVFORMAT_FFMPEG_56 7:2.4 - av_demuxer_open@LIBAVFORMAT_FFMPEG_56 7:2.4 - av_dump_format@LIBAVFORMAT_FFMPEG_56 7:2.4 - av_filename_number_test@LIBAVFORMAT_FFMPEG_56 7:2.4 - av_find_best_stream@LIBAVFORMAT_FFMPEG_56 7:2.4 - av_find_default_stream_index@LIBAVFORMAT_FFMPEG_56 7:2.4 - av_find_input_format@LIBAVFORMAT_FFMPEG_56 7:2.4 - av_find_program_from_stream@LIBAVFORMAT_FFMPEG_56 7:2.4 - av_fmt_ctx_get_duration_estimation_method@LIBAVFORMAT_FFMPEG_56 7:2.4 - av_format_get_audio_codec@LIBAVFORMAT_FFMPEG_56 7:2.4 - av_format_get_control_message_cb@LIBAVFORMAT_FFMPEG_56 7:2.4 - av_format_get_metadata_header_padding@LIBAVFORMAT_FFMPEG_56 7:2.4 - av_format_get_opaque@LIBAVFORMAT_FFMPEG_56 7:2.4 - av_format_get_probe_score@LIBAVFORMAT_FFMPEG_56 7:2.4 - av_format_get_subtitle_codec@LIBAVFORMAT_FFMPEG_56 7:2.4 - av_format_get_video_codec@LIBAVFORMAT_FFMPEG_56 7:2.4 - av_format_inject_global_side_data@LIBAVFORMAT_FFMPEG_56 7:2.4 - av_format_set_audio_codec@LIBAVFORMAT_FFMPEG_56 7:2.4 - av_format_set_control_message_cb@LIBAVFORMAT_FFMPEG_56 7:2.4 - av_format_set_metadata_header_padding@LIBAVFORMAT_FFMPEG_56 7:2.4 - av_format_set_opaque@LIBAVFORMAT_FFMPEG_56 7:2.4 - av_format_set_subtitle_codec@LIBAVFORMAT_FFMPEG_56 7:2.4 - av_format_set_video_codec@LIBAVFORMAT_FFMPEG_56 7:2.4 - av_get_frame_filename@LIBAVFORMAT_FFMPEG_56 7:2.4 - av_get_output_timestamp@LIBAVFORMAT_FFMPEG_56 7:2.4 - av_get_packet@LIBAVFORMAT_FFMPEG_56 7:2.4 - av_guess_codec@LIBAVFORMAT_FFMPEG_56 7:2.4 - av_guess_format@LIBAVFORMAT_FFMPEG_56 7:2.4 - av_guess_frame_rate@LIBAVFORMAT_FFMPEG_56 7:2.4 - av_guess_sample_aspect_ratio@LIBAVFORMAT_FFMPEG_56 7:2.4 - av_hex_dump@LIBAVFORMAT_FFMPEG_56 7:2.4 - av_hex_dump_log@LIBAVFORMAT_FFMPEG_56 7:2.4 - av_iformat_next@LIBAVFORMAT_FFMPEG_56 7:2.4 - av_index_search_timestamp@LIBAVFORMAT_FFMPEG_56 7:2.4 - av_interleaved_write_frame@LIBAVFORMAT_FFMPEG_56 7:2.4 - av_interleaved_write_uncoded_frame@LIBAVFORMAT_FFMPEG_56 7:2.4 - av_match_ext@LIBAVFORMAT_FFMPEG_56 7:2.4 - av_new_program@LIBAVFORMAT_FFMPEG_56 7:2.4 - av_oformat_next@LIBAVFORMAT_FFMPEG_56 7:2.4 - av_pkt_dump2@LIBAVFORMAT_FFMPEG_56 7:2.4 - av_pkt_dump_log2@LIBAVFORMAT_FFMPEG_56 7:2.4 - av_probe_input_buffer2@LIBAVFORMAT_FFMPEG_56 7:2.4 - av_probe_input_buffer@LIBAVFORMAT_FFMPEG_56 7:2.4 - av_probe_input_format2@LIBAVFORMAT_FFMPEG_56 7:2.4 - av_probe_input_format3@LIBAVFORMAT_FFMPEG_56 7:2.4 - av_probe_input_format@LIBAVFORMAT_FFMPEG_56 7:2.4 - av_read_frame@LIBAVFORMAT_FFMPEG_56 7:2.4 - av_read_pause@LIBAVFORMAT_FFMPEG_56 7:2.4 - av_read_play@LIBAVFORMAT_FFMPEG_56 7:2.4 - av_register_all@LIBAVFORMAT_FFMPEG_56 7:2.4 - av_register_input_format@LIBAVFORMAT_FFMPEG_56 7:2.4 - av_register_output_format@LIBAVFORMAT_FFMPEG_56 7:2.4 - av_sdp_create@LIBAVFORMAT_FFMPEG_56 7:2.4 - av_seek_frame@LIBAVFORMAT_FFMPEG_56 7:2.4 - av_stream_get_end_pts@LIBAVFORMAT_FFMPEG_56 7:2.4 - av_stream_get_r_frame_rate@LIBAVFORMAT_FFMPEG_56 7:2.4 - av_stream_get_recommended_encoder_configuration@LIBAVFORMAT_FFMPEG_56 7:2.5 - av_stream_get_side_data@LIBAVFORMAT_FFMPEG_56 7:2.4 - av_stream_set_r_frame_rate@LIBAVFORMAT_FFMPEG_56 7:2.4 - av_stream_set_recommended_encoder_configuration@LIBAVFORMAT_FFMPEG_56 7:2.5 - av_url_split@LIBAVFORMAT_FFMPEG_56 7:2.4 - av_write_frame@LIBAVFORMAT_FFMPEG_56 7:2.4 - av_write_trailer@LIBAVFORMAT_FFMPEG_56 7:2.4 - av_write_uncoded_frame@LIBAVFORMAT_FFMPEG_56 7:2.4 - av_write_uncoded_frame_query@LIBAVFORMAT_FFMPEG_56 7:2.4 - avformat_alloc_context@LIBAVFORMAT_FFMPEG_56 7:2.4 - avformat_alloc_output_context2@LIBAVFORMAT_FFMPEG_56 7:2.4 - avformat_close_input@LIBAVFORMAT_FFMPEG_56 7:2.4 - avformat_configuration@LIBAVFORMAT_FFMPEG_56 7:2.4 - avformat_find_stream_info@LIBAVFORMAT_FFMPEG_56 7:2.4 - avformat_free_context@LIBAVFORMAT_FFMPEG_56 7:2.4 - avformat_get_class@LIBAVFORMAT_FFMPEG_56 7:2.4 - avformat_get_mov_audio_tags@LIBAVFORMAT_FFMPEG_56 7:2.4 - avformat_get_mov_video_tags@LIBAVFORMAT_FFMPEG_56 7:2.4 - avformat_get_riff_audio_tags@LIBAVFORMAT_FFMPEG_56 7:2.4 - avformat_get_riff_video_tags@LIBAVFORMAT_FFMPEG_56 7:2.4 - avformat_license@LIBAVFORMAT_FFMPEG_56 7:2.4 - avformat_match_stream_specifier@LIBAVFORMAT_FFMPEG_56 7:2.4 - avformat_network_deinit@LIBAVFORMAT_FFMPEG_56 7:2.4 - avformat_network_init@LIBAVFORMAT_FFMPEG_56 7:2.4 - avformat_new_stream@LIBAVFORMAT_FFMPEG_56 7:2.4 - avformat_open_input@LIBAVFORMAT_FFMPEG_56 7:2.4 - avformat_query_codec@LIBAVFORMAT_FFMPEG_56 7:2.4 - avformat_queue_attached_pictures@LIBAVFORMAT_FFMPEG_56 7:2.4 - avformat_seek_file@LIBAVFORMAT_FFMPEG_56 7:2.4 - avformat_version@LIBAVFORMAT_FFMPEG_56 7:2.4 - avformat_write_header@LIBAVFORMAT_FFMPEG_56 7:2.4 - avio_alloc_context@LIBAVFORMAT_FFMPEG_56 7:2.4 - avio_check@LIBAVFORMAT_FFMPEG_56 7:2.4 - avio_close@LIBAVFORMAT_FFMPEG_56 7:2.4 - avio_close_dyn_buf@LIBAVFORMAT_FFMPEG_56 7:2.4 - avio_closep@LIBAVFORMAT_FFMPEG_56 7:2.4 - avio_enum_protocols@LIBAVFORMAT_FFMPEG_56 7:2.4 - avio_feof@LIBAVFORMAT_FFMPEG_56 7:2.4 - avio_find_protocol_name@LIBAVFORMAT_FFMPEG_56 7:2.4 - avio_flush@LIBAVFORMAT_FFMPEG_56 7:2.4 - avio_get_str16be@LIBAVFORMAT_FFMPEG_56 7:2.4 - avio_get_str16le@LIBAVFORMAT_FFMPEG_56 7:2.4 - avio_get_str@LIBAVFORMAT_FFMPEG_56 7:2.4 - avio_open2@LIBAVFORMAT_FFMPEG_56 7:2.4 - avio_open@LIBAVFORMAT_FFMPEG_56 7:2.4 - avio_open_dyn_buf@LIBAVFORMAT_FFMPEG_56 7:2.4 - avio_pause@LIBAVFORMAT_FFMPEG_56 7:2.4 - avio_printf@LIBAVFORMAT_FFMPEG_56 7:2.4 - avio_put_str16le@LIBAVFORMAT_FFMPEG_56 7:2.4 - avio_put_str@LIBAVFORMAT_FFMPEG_56 7:2.4 - avio_r8@LIBAVFORMAT_FFMPEG_56 7:2.4 - avio_rb16@LIBAVFORMAT_FFMPEG_56 7:2.4 - avio_rb24@LIBAVFORMAT_FFMPEG_56 7:2.4 - avio_rb32@LIBAVFORMAT_FFMPEG_56 7:2.4 - avio_rb64@LIBAVFORMAT_FFMPEG_56 7:2.4 - avio_read@LIBAVFORMAT_FFMPEG_56 7:2.4 - avio_read_to_bprint@LIBAVFORMAT_FFMPEG_56 7:2.4 - avio_rl16@LIBAVFORMAT_FFMPEG_56 7:2.4 - avio_rl24@LIBAVFORMAT_FFMPEG_56 7:2.4 - avio_rl32@LIBAVFORMAT_FFMPEG_56 7:2.4 - avio_rl64@LIBAVFORMAT_FFMPEG_56 7:2.4 - avio_seek@LIBAVFORMAT_FFMPEG_56 7:2.4 - avio_seek_time@LIBAVFORMAT_FFMPEG_56 7:2.4 - avio_size@LIBAVFORMAT_FFMPEG_56 7:2.4 - avio_skip@LIBAVFORMAT_FFMPEG_56 7:2.4 - avio_w8@LIBAVFORMAT_FFMPEG_56 7:2.4 - avio_wb16@LIBAVFORMAT_FFMPEG_56 7:2.4 - avio_wb24@LIBAVFORMAT_FFMPEG_56 7:2.4 - avio_wb32@LIBAVFORMAT_FFMPEG_56 7:2.4 - avio_wb64@LIBAVFORMAT_FFMPEG_56 7:2.4 - avio_wl16@LIBAVFORMAT_FFMPEG_56 7:2.4 - avio_wl24@LIBAVFORMAT_FFMPEG_56 7:2.4 - avio_wl32@LIBAVFORMAT_FFMPEG_56 7:2.4 - avio_wl64@LIBAVFORMAT_FFMPEG_56 7:2.4 - avio_write@LIBAVFORMAT_FFMPEG_56 7:2.4 - avpriv_dv_get_packet@LIBAVFORMAT_FFMPEG_56 7:2.4 - avpriv_dv_init_demux@LIBAVFORMAT_FFMPEG_56 7:2.4 - avpriv_dv_produce_packet@LIBAVFORMAT_FFMPEG_56 7:2.4 - avpriv_mpegts_parse_close@LIBAVFORMAT_FFMPEG_56 7:2.4 - avpriv_mpegts_parse_open@LIBAVFORMAT_FFMPEG_56 7:2.4 - avpriv_mpegts_parse_packet@LIBAVFORMAT_FFMPEG_56 7:2.4 - avpriv_new_chapter@LIBAVFORMAT_FFMPEG_56 7:2.4 - avpriv_set_pts_info@LIBAVFORMAT_FFMPEG_56 7:2.4 - av_stream_get_parser@LIBAVFORMAT_FFMPEG_56 7:2.4 - ff_inet_aton@LIBAVFORMAT_FFMPEG_56 7:2.4 - ff_rtp_get_local_rtcp_port@LIBAVFORMAT_FFMPEG_56 7:2.4 - ff_rtp_get_local_rtp_port@LIBAVFORMAT_FFMPEG_56 7:2.4 - ff_rtsp_parse_line@LIBAVFORMAT_FFMPEG_56 7:2.4 - ff_socket_nonblock@LIBAVFORMAT_FFMPEG_56 7:2.4 - ffio_open_dyn_packet_buf@LIBAVFORMAT_FFMPEG_56 7:2.4 - ffio_set_buf_size@LIBAVFORMAT_FFMPEG_56 7:2.4 - ffurl_close@LIBAVFORMAT_FFMPEG_56 7:2.4 - ffurl_open@LIBAVFORMAT_FFMPEG_56 7:2.4 - ffurl_read_complete@LIBAVFORMAT_FFMPEG_56 7:2.4 - ffurl_seek@LIBAVFORMAT_FFMPEG_56 7:2.4 - ffurl_size@LIBAVFORMAT_FFMPEG_56 7:2.4 - ffurl_write@LIBAVFORMAT_FFMPEG_56 7:2.4 - url_feof@LIBAVFORMAT_FFMPEG_56 7:2.4 diff -Nru ffmpeg-2.5/debian/libavformat-ffmpeg-dev.install ffmpeg-0.10.12/debian/libavformat-ffmpeg-dev.install --- ffmpeg-2.5/debian/libavformat-ffmpeg-dev.install 2014-09-18 20:34:50.000000000 +0000 +++ ffmpeg-0.10.12/debian/libavformat-ffmpeg-dev.install 1970-01-01 00:00:00.000000000 +0000 @@ -1,4 +0,0 @@ -usr/include/*/libavformat -usr/lib/*/libavformat*.a -usr/lib/*/libavformat*.so -usr/lib/*/pkgconfig/libavformat*.pc diff -Nru ffmpeg-2.5/debian/libavresample-ffmpeg2.install ffmpeg-0.10.12/debian/libavresample-ffmpeg2.install --- ffmpeg-2.5/debian/libavresample-ffmpeg2.install 2014-09-15 15:02:53.000000000 +0000 +++ ffmpeg-0.10.12/debian/libavresample-ffmpeg2.install 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -usr/lib/*/libavresample-ffmpeg.so.* diff -Nru ffmpeg-2.5/debian/libavresample-ffmpeg2.lintian-overrides ffmpeg-0.10.12/debian/libavresample-ffmpeg2.lintian-overrides --- ffmpeg-2.5/debian/libavresample-ffmpeg2.lintian-overrides 2014-09-18 20:34:50.000000000 +0000 +++ ffmpeg-0.10.12/debian/libavresample-ffmpeg2.lintian-overrides 1970-01-01 00:00:00.000000000 +0000 @@ -1,6 +0,0 @@ -# According to Debian policy [1], non position independent code is permitted -# in a shared library on i386 and position independent code may have a -# performance penalty, especially on i386. -# Therefore -fPIC is not used by the upstream build system on i386. -# 1: https://www.debian.org/doc/debian-policy/footnotes.html#f83 -libavresample-ffmpeg2: shlib-with-non-pic-code usr/lib/i386*/libavresample-ffmpeg.so.* diff -Nru ffmpeg-2.5/debian/libavresample-ffmpeg2.symbols ffmpeg-0.10.12/debian/libavresample-ffmpeg2.symbols --- ffmpeg-2.5/debian/libavresample-ffmpeg2.symbols 2014-09-15 15:02:53.000000000 +0000 +++ ffmpeg-0.10.12/debian/libavresample-ffmpeg2.symbols 1970-01-01 00:00:00.000000000 +0000 @@ -1,23 +0,0 @@ -libavresample-ffmpeg.so.2 libavresample-ffmpeg2 #MINVER# - LIBAVRESAMPLE_FFMPEG_2@LIBAVRESAMPLE_FFMPEG_2 7:2.4 - avresample_alloc_context@LIBAVRESAMPLE_FFMPEG_2 7:2.4 - avresample_available@LIBAVRESAMPLE_FFMPEG_2 7:2.4 - avresample_build_matrix@LIBAVRESAMPLE_FFMPEG_2 7:2.4 - avresample_close@LIBAVRESAMPLE_FFMPEG_2 7:2.4 - avresample_config@LIBAVRESAMPLE_FFMPEG_2 7:2.4 - avresample_configuration@LIBAVRESAMPLE_FFMPEG_2 7:2.4 - avresample_convert@LIBAVRESAMPLE_FFMPEG_2 7:2.4 - avresample_convert_frame@LIBAVRESAMPLE_FFMPEG_2 7:2.4 - avresample_free@LIBAVRESAMPLE_FFMPEG_2 7:2.4 - avresample_get_class@LIBAVRESAMPLE_FFMPEG_2 7:2.4 - avresample_get_delay@LIBAVRESAMPLE_FFMPEG_2 7:2.4 - avresample_get_matrix@LIBAVRESAMPLE_FFMPEG_2 7:2.4 - avresample_get_out_samples@LIBAVRESAMPLE_FFMPEG_2 7:2.4 - avresample_is_open@LIBAVRESAMPLE_FFMPEG_2 7:2.4 - avresample_license@LIBAVRESAMPLE_FFMPEG_2 7:2.4 - avresample_open@LIBAVRESAMPLE_FFMPEG_2 7:2.4 - avresample_read@LIBAVRESAMPLE_FFMPEG_2 7:2.4 - avresample_set_channel_mapping@LIBAVRESAMPLE_FFMPEG_2 7:2.4 - avresample_set_compensation@LIBAVRESAMPLE_FFMPEG_2 7:2.4 - avresample_set_matrix@LIBAVRESAMPLE_FFMPEG_2 7:2.4 - avresample_version@LIBAVRESAMPLE_FFMPEG_2 7:2.4 diff -Nru ffmpeg-2.5/debian/libavresample-ffmpeg-dev.install ffmpeg-0.10.12/debian/libavresample-ffmpeg-dev.install --- ffmpeg-2.5/debian/libavresample-ffmpeg-dev.install 2014-09-18 20:34:50.000000000 +0000 +++ ffmpeg-0.10.12/debian/libavresample-ffmpeg-dev.install 1970-01-01 00:00:00.000000000 +0000 @@ -1,4 +0,0 @@ -usr/include/*/libavresample -usr/lib/*/libavresample*.a -usr/lib/*/libavresample*.so -usr/lib/*/pkgconfig/libavresample*.pc diff -Nru ffmpeg-2.5/debian/libav-tools.links ffmpeg-0.10.12/debian/libav-tools.links --- ffmpeg-2.5/debian/libav-tools.links 1970-01-01 00:00:00.000000000 +0000 +++ ffmpeg-0.10.12/debian/libav-tools.links 2014-02-06 14:17:24.000000000 +0000 @@ -0,0 +1,8 @@ +usr/bin/ffmpeg usr/bin/avconv +usr/bin/ffserver usr/bin/avserver +usr/bin/ffplay usr/bin/avplay +usr/bin/ffprobe usr/bin/avprobe +usr/share/man/man1/ffmpeg.1.gz usr/share/man/man1/avconv.1.gz +usr/share/man/man1/ffplay.1.gz usr/share/man/man1/avplay.1.gz +usr/share/man/man1/ffprobe.1.gz usr/share/man/man1/avprobe.1.gz +usr/share/man/man1/ffserver.1.gz usr/share/man/man1/avserver.1.gz diff -Nru ffmpeg-2.5/debian/libavutil51.install.in ffmpeg-0.10.12/debian/libavutil51.install.in --- ffmpeg-2.5/debian/libavutil51.install.in 1970-01-01 00:00:00.000000000 +0000 +++ ffmpeg-0.10.12/debian/libavutil51.install.in 2014-04-26 06:23:55.000000000 +0000 @@ -0,0 +1 @@ +usr/lib/@DEB_HOST_MULTIARCH_OPT@/libavutil.so.* diff -Nru ffmpeg-2.5/debian/libavutil51.lintian-overrides ffmpeg-0.10.12/debian/libavutil51.lintian-overrides --- ffmpeg-2.5/debian/libavutil51.lintian-overrides 1970-01-01 00:00:00.000000000 +0000 +++ ffmpeg-0.10.12/debian/libavutil51.lintian-overrides 2014-04-26 06:23:55.000000000 +0000 @@ -0,0 +1,2 @@ +# Overriding these fpic lintian errors. Please see bug #528080. +libavutil51: shlib-with-non-pic-code diff -Nru ffmpeg-2.5/debian/libavutil-dev.install.in ffmpeg-0.10.12/debian/libavutil-dev.install.in --- ffmpeg-2.5/debian/libavutil-dev.install.in 1970-01-01 00:00:00.000000000 +0000 +++ ffmpeg-0.10.12/debian/libavutil-dev.install.in 2014-04-26 06:23:55.000000000 +0000 @@ -0,0 +1,4 @@ +usr/include/libavutil +usr/lib/@DEB_HOST_MULTIARCH@/libavutil.a +usr/lib/@DEB_HOST_MULTIARCH_OPT@/libavutil.so +usr/lib/@DEB_HOST_MULTIARCH@/pkgconfig/libavutil.pc diff -Nru ffmpeg-2.5/debian/libavutil-ffmpeg54.install ffmpeg-0.10.12/debian/libavutil-ffmpeg54.install --- ffmpeg-2.5/debian/libavutil-ffmpeg54.install 2014-09-15 15:02:53.000000000 +0000 +++ ffmpeg-0.10.12/debian/libavutil-ffmpeg54.install 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -usr/lib/*/libavutil-ffmpeg.so.* diff -Nru ffmpeg-2.5/debian/libavutil-ffmpeg54.lintian-overrides ffmpeg-0.10.12/debian/libavutil-ffmpeg54.lintian-overrides --- ffmpeg-2.5/debian/libavutil-ffmpeg54.lintian-overrides 2014-09-18 20:34:50.000000000 +0000 +++ ffmpeg-0.10.12/debian/libavutil-ffmpeg54.lintian-overrides 1970-01-01 00:00:00.000000000 +0000 @@ -1,10 +0,0 @@ -# This is a bug in lintian thinking only libav (and not also FFmpeg) build libavutil. -# See: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=729203#430 -libavutil-ffmpeg54: embedded-library usr/lib/*/libavutil-ffmpeg.so.*: libavutil - -# According to Debian policy [1], non position independent code is permitted -# in a shared library on i386 and position independent code may have a -# performance penalty, especially on i386. -# Therefore -fPIC is not used by the upstream build system on i386. -# 1: https://www.debian.org/doc/debian-policy/footnotes.html#f83 -libavutil-ffmpeg54: shlib-with-non-pic-code usr/lib/i386*/libavutil-ffmpeg.so.* diff -Nru ffmpeg-2.5/debian/libavutil-ffmpeg54.symbols ffmpeg-0.10.12/debian/libavutil-ffmpeg54.symbols --- ffmpeg-2.5/debian/libavutil-ffmpeg54.symbols 2014-12-06 17:23:36.000000000 +0000 +++ ffmpeg-0.10.12/debian/libavutil-ffmpeg54.symbols 1970-01-01 00:00:00.000000000 +0000 @@ -1,436 +0,0 @@ -libavutil-ffmpeg.so.54 libavutil-ffmpeg54 #MINVER# - LIBAVUTIL_FFMPEG_54@LIBAVUTIL_FFMPEG_54 7:2.4 - av_add_q@LIBAVUTIL_FFMPEG_54 7:2.4 - av_add_stable@LIBAVUTIL_FFMPEG_54 7:2.4 - av_adler32_update@LIBAVUTIL_FFMPEG_54 7:2.4 - av_aes_alloc@LIBAVUTIL_FFMPEG_54 7:2.4 - av_aes_crypt@LIBAVUTIL_FFMPEG_54 7:2.4 - av_aes_init@LIBAVUTIL_FFMPEG_54 7:2.4 - av_aes_size@LIBAVUTIL_FFMPEG_54 7:2.4 - av_asprintf@LIBAVUTIL_FFMPEG_54 7:2.4 - av_audio_fifo_alloc@LIBAVUTIL_FFMPEG_54 7:2.4 - av_audio_fifo_drain@LIBAVUTIL_FFMPEG_54 7:2.4 - av_audio_fifo_free@LIBAVUTIL_FFMPEG_54 7:2.4 - av_audio_fifo_read@LIBAVUTIL_FFMPEG_54 7:2.4 - av_audio_fifo_realloc@LIBAVUTIL_FFMPEG_54 7:2.4 - av_audio_fifo_reset@LIBAVUTIL_FFMPEG_54 7:2.4 - av_audio_fifo_size@LIBAVUTIL_FFMPEG_54 7:2.4 - av_audio_fifo_space@LIBAVUTIL_FFMPEG_54 7:2.4 - av_audio_fifo_write@LIBAVUTIL_FFMPEG_54 7:2.4 - av_base64_decode@LIBAVUTIL_FFMPEG_54 7:2.4 - av_base64_encode@LIBAVUTIL_FFMPEG_54 7:2.4 - av_basename@LIBAVUTIL_FFMPEG_54 7:2.4 - av_blowfish_crypt@LIBAVUTIL_FFMPEG_54 7:2.4 - av_blowfish_crypt_ecb@LIBAVUTIL_FFMPEG_54 7:2.4 - av_blowfish_init@LIBAVUTIL_FFMPEG_54 7:2.4 - av_bmg_get@LIBAVUTIL_FFMPEG_54 7:2.4 - av_bprint_append_data@LIBAVUTIL_FFMPEG_54 7:2.4 - av_bprint_channel_layout@LIBAVUTIL_FFMPEG_54 7:2.4 - av_bprint_chars@LIBAVUTIL_FFMPEG_54 7:2.4 - av_bprint_clear@LIBAVUTIL_FFMPEG_54 7:2.4 - av_bprint_escape@LIBAVUTIL_FFMPEG_54 7:2.4 - av_bprint_finalize@LIBAVUTIL_FFMPEG_54 7:2.4 - av_bprint_get_buffer@LIBAVUTIL_FFMPEG_54 7:2.4 - av_bprint_init@LIBAVUTIL_FFMPEG_54 7:2.4 - av_bprint_init_for_buffer@LIBAVUTIL_FFMPEG_54 7:2.4 - av_bprint_strftime@LIBAVUTIL_FFMPEG_54 7:2.4 - av_bprintf@LIBAVUTIL_FFMPEG_54 7:2.4 - av_buffer_alloc@LIBAVUTIL_FFMPEG_54 7:2.4 - av_buffer_allocz@LIBAVUTIL_FFMPEG_54 7:2.4 - av_buffer_create@LIBAVUTIL_FFMPEG_54 7:2.4 - av_buffer_default_free@LIBAVUTIL_FFMPEG_54 7:2.4 - av_buffer_get_opaque@LIBAVUTIL_FFMPEG_54 7:2.4 - av_buffer_get_ref_count@LIBAVUTIL_FFMPEG_54 7:2.4 - av_buffer_is_writable@LIBAVUTIL_FFMPEG_54 7:2.4 - av_buffer_make_writable@LIBAVUTIL_FFMPEG_54 7:2.4 - av_buffer_pool_get@LIBAVUTIL_FFMPEG_54 7:2.4 - av_buffer_pool_init@LIBAVUTIL_FFMPEG_54 7:2.4 - av_buffer_pool_uninit@LIBAVUTIL_FFMPEG_54 7:2.4 - av_buffer_realloc@LIBAVUTIL_FFMPEG_54 7:2.4 - av_buffer_ref@LIBAVUTIL_FFMPEG_54 7:2.4 - av_buffer_unref@LIBAVUTIL_FFMPEG_54 7:2.4 - av_calloc@LIBAVUTIL_FFMPEG_54 7:2.4 - av_cast5_alloc@LIBAVUTIL_FFMPEG_54 7:2.5 - av_cast5_crypt@LIBAVUTIL_FFMPEG_54 7:2.5 - av_cast5_init@LIBAVUTIL_FFMPEG_54 7:2.5 - av_cast5_size@LIBAVUTIL_FFMPEG_54 7:2.5 - av_channel_layout_extract_channel@LIBAVUTIL_FFMPEG_54 7:2.4 - av_chroma_location_name@LIBAVUTIL_FFMPEG_54 7:2.5 - av_color_primaries_name@LIBAVUTIL_FFMPEG_54 7:2.5 - av_color_range_name@LIBAVUTIL_FFMPEG_54 7:2.5 - av_color_space_name@LIBAVUTIL_FFMPEG_54 7:2.5 - av_color_transfer_name@LIBAVUTIL_FFMPEG_54 7:2.5 - av_compare_mod@LIBAVUTIL_FFMPEG_54 7:2.4 - av_compare_ts@LIBAVUTIL_FFMPEG_54 7:2.4 - av_cpu_count@LIBAVUTIL_FFMPEG_54 7:2.4 - av_crc@LIBAVUTIL_FFMPEG_54 7:2.4 - av_crc_get_table@LIBAVUTIL_FFMPEG_54 7:2.4 - av_crc_init@LIBAVUTIL_FFMPEG_54 7:2.4 - av_ctz@LIBAVUTIL_FFMPEG_54 7:2.4 - av_d2q@LIBAVUTIL_FFMPEG_54 7:2.4 - av_d2str@LIBAVUTIL_FFMPEG_54 7:2.4 - av_default_get_category@LIBAVUTIL_FFMPEG_54 7:2.4 - av_default_item_name@LIBAVUTIL_FFMPEG_54 7:2.4 - av_des_crypt@LIBAVUTIL_FFMPEG_54 7:2.4 - av_des_init@LIBAVUTIL_FFMPEG_54 7:2.4 - av_des_mac@LIBAVUTIL_FFMPEG_54 7:2.4 - av_dict_copy@LIBAVUTIL_FFMPEG_54 7:2.4 - av_dict_count@LIBAVUTIL_FFMPEG_54 7:2.4 - av_dict_free@LIBAVUTIL_FFMPEG_54 7:2.4 - av_dict_get@LIBAVUTIL_FFMPEG_54 7:2.4 - av_dict_get_string@LIBAVUTIL_FFMPEG_54 7:2.5 - av_dict_parse_string@LIBAVUTIL_FFMPEG_54 7:2.4 - av_dict_set@LIBAVUTIL_FFMPEG_54 7:2.4 - av_dict_set_int@LIBAVUTIL_FFMPEG_54 7:2.4 - av_dirname@LIBAVUTIL_FFMPEG_54 7:2.4 - av_display_matrix_flip@LIBAVUTIL_FFMPEG_54 7:2.4 - av_display_rotation_get@LIBAVUTIL_FFMPEG_54 7:2.4 - av_display_rotation_set@LIBAVUTIL_FFMPEG_54 7:2.4 - av_div_q@LIBAVUTIL_FFMPEG_54 7:2.4 - av_downmix_info_update_side_data@LIBAVUTIL_FFMPEG_54 7:2.4 - av_dynarray2_add@LIBAVUTIL_FFMPEG_54 7:2.4 - av_dynarray_add@LIBAVUTIL_FFMPEG_54 7:2.4 - av_dynarray_add_nofree@LIBAVUTIL_FFMPEG_54 7:2.4 - av_escape@LIBAVUTIL_FFMPEG_54 7:2.4 - av_expr_eval@LIBAVUTIL_FFMPEG_54 7:2.4 - av_expr_free@LIBAVUTIL_FFMPEG_54 7:2.4 - av_expr_parse@LIBAVUTIL_FFMPEG_54 7:2.4 - av_expr_parse_and_eval@LIBAVUTIL_FFMPEG_54 7:2.4 - av_fast_malloc@LIBAVUTIL_FFMPEG_54 7:2.4 - av_fast_realloc@LIBAVUTIL_FFMPEG_54 7:2.4 - av_fifo_alloc@LIBAVUTIL_FFMPEG_54 7:2.4 - av_fifo_alloc_array@LIBAVUTIL_FFMPEG_54 7:2.4 - av_fifo_drain@LIBAVUTIL_FFMPEG_54 7:2.4 - av_fifo_free@LIBAVUTIL_FFMPEG_54 7:2.4 - av_fifo_freep@LIBAVUTIL_FFMPEG_54 7:2.4 - av_fifo_generic_read@LIBAVUTIL_FFMPEG_54 7:2.4 - av_fifo_generic_write@LIBAVUTIL_FFMPEG_54 7:2.4 - av_fifo_grow@LIBAVUTIL_FFMPEG_54 7:2.4 - av_fifo_realloc2@LIBAVUTIL_FFMPEG_54 7:2.4 - av_fifo_reset@LIBAVUTIL_FFMPEG_54 7:2.4 - av_fifo_size@LIBAVUTIL_FFMPEG_54 7:2.4 - av_fifo_space@LIBAVUTIL_FFMPEG_54 7:2.4 - av_file_map@LIBAVUTIL_FFMPEG_54 7:2.4 - av_file_unmap@LIBAVUTIL_FFMPEG_54 7:2.4 - av_find_best_pix_fmt_of_2@LIBAVUTIL_FFMPEG_54 7:2.4 - av_find_info_tag@LIBAVUTIL_FFMPEG_54 7:2.4 - av_find_nearest_q_idx@LIBAVUTIL_FFMPEG_54 7:2.4 - av_fopen_utf8@LIBAVUTIL_FFMPEG_54 7:2.4 - av_force_cpu_flags@LIBAVUTIL_FFMPEG_54 7:2.4 - av_frame_alloc@LIBAVUTIL_FFMPEG_54 7:2.4 - av_frame_clone@LIBAVUTIL_FFMPEG_54 7:2.4 - av_frame_copy@LIBAVUTIL_FFMPEG_54 7:2.4 - av_frame_copy_props@LIBAVUTIL_FFMPEG_54 7:2.4 - av_frame_free@LIBAVUTIL_FFMPEG_54 7:2.4 - av_frame_get_best_effort_timestamp@LIBAVUTIL_FFMPEG_54 7:2.4 - av_frame_get_buffer@LIBAVUTIL_FFMPEG_54 7:2.4 - av_frame_get_channel_layout@LIBAVUTIL_FFMPEG_54 7:2.4 - av_frame_get_channels@LIBAVUTIL_FFMPEG_54 7:2.4 - av_frame_get_color_range@LIBAVUTIL_FFMPEG_54 7:2.4 - av_frame_get_colorspace@LIBAVUTIL_FFMPEG_54 7:2.4 - av_frame_get_decode_error_flags@LIBAVUTIL_FFMPEG_54 7:2.4 - av_frame_get_metadata@LIBAVUTIL_FFMPEG_54 7:2.4 - av_frame_get_pkt_duration@LIBAVUTIL_FFMPEG_54 7:2.4 - av_frame_get_pkt_pos@LIBAVUTIL_FFMPEG_54 7:2.4 - av_frame_get_pkt_size@LIBAVUTIL_FFMPEG_54 7:2.4 - av_frame_get_plane_buffer@LIBAVUTIL_FFMPEG_54 7:2.4 - av_frame_get_qp_table@LIBAVUTIL_FFMPEG_54 7:2.4 - av_frame_get_sample_rate@LIBAVUTIL_FFMPEG_54 7:2.4 - av_frame_get_side_data@LIBAVUTIL_FFMPEG_54 7:2.4 - av_frame_is_writable@LIBAVUTIL_FFMPEG_54 7:2.4 - av_frame_make_writable@LIBAVUTIL_FFMPEG_54 7:2.4 - av_frame_move_ref@LIBAVUTIL_FFMPEG_54 7:2.4 - av_frame_new_side_data@LIBAVUTIL_FFMPEG_54 7:2.4 - av_frame_ref@LIBAVUTIL_FFMPEG_54 7:2.4 - av_frame_remove_side_data@LIBAVUTIL_FFMPEG_54 7:2.4 - av_frame_set_best_effort_timestamp@LIBAVUTIL_FFMPEG_54 7:2.4 - av_frame_set_channel_layout@LIBAVUTIL_FFMPEG_54 7:2.4 - av_frame_set_channels@LIBAVUTIL_FFMPEG_54 7:2.4 - av_frame_set_color_range@LIBAVUTIL_FFMPEG_54 7:2.4 - av_frame_set_colorspace@LIBAVUTIL_FFMPEG_54 7:2.4 - av_frame_set_decode_error_flags@LIBAVUTIL_FFMPEG_54 7:2.4 - av_frame_set_metadata@LIBAVUTIL_FFMPEG_54 7:2.4 - av_frame_set_pkt_duration@LIBAVUTIL_FFMPEG_54 7:2.4 - av_frame_set_pkt_pos@LIBAVUTIL_FFMPEG_54 7:2.4 - av_frame_set_pkt_size@LIBAVUTIL_FFMPEG_54 7:2.4 - av_frame_set_qp_table@LIBAVUTIL_FFMPEG_54 7:2.4 - av_frame_set_sample_rate@LIBAVUTIL_FFMPEG_54 7:2.4 - av_frame_side_data_name@LIBAVUTIL_FFMPEG_54 7:2.4 - av_frame_unref@LIBAVUTIL_FFMPEG_54 7:2.4 - av_free@LIBAVUTIL_FFMPEG_54 7:2.4 - av_freep@LIBAVUTIL_FFMPEG_54 7:2.4 - av_gcd@LIBAVUTIL_FFMPEG_54 7:2.4 - av_get_alt_sample_fmt@LIBAVUTIL_FFMPEG_54 7:2.4 - av_get_bits_per_pixel@LIBAVUTIL_FFMPEG_54 7:2.4 - av_get_bytes_per_sample@LIBAVUTIL_FFMPEG_54 7:2.4 - av_get_channel_description@LIBAVUTIL_FFMPEG_54 7:2.4 - av_get_channel_layout@LIBAVUTIL_FFMPEG_54 7:2.4 - av_get_channel_layout_channel_index@LIBAVUTIL_FFMPEG_54 7:2.4 - av_get_channel_layout_nb_channels@LIBAVUTIL_FFMPEG_54 7:2.4 - av_get_channel_layout_string@LIBAVUTIL_FFMPEG_54 7:2.4 - av_get_channel_name@LIBAVUTIL_FFMPEG_54 7:2.4 - av_get_colorspace_name@LIBAVUTIL_FFMPEG_54 7:2.4 - av_get_cpu_flags@LIBAVUTIL_FFMPEG_54 7:2.4 - av_get_default_channel_layout@LIBAVUTIL_FFMPEG_54 7:2.4 - av_get_double@LIBAVUTIL_FFMPEG_54 7:2.4 - av_get_int@LIBAVUTIL_FFMPEG_54 7:2.4 - av_get_known_color_name@LIBAVUTIL_FFMPEG_54 7:2.4 - av_get_media_type_string@LIBAVUTIL_FFMPEG_54 7:2.4 - av_get_packed_sample_fmt@LIBAVUTIL_FFMPEG_54 7:2.4 - av_get_padded_bits_per_pixel@LIBAVUTIL_FFMPEG_54 7:2.4 - av_get_picture_type_char@LIBAVUTIL_FFMPEG_54 7:2.4 - av_get_pix_fmt@LIBAVUTIL_FFMPEG_54 7:2.4 - av_get_pix_fmt_loss@LIBAVUTIL_FFMPEG_54 7:2.4 - av_get_pix_fmt_name@LIBAVUTIL_FFMPEG_54 7:2.4 - av_get_pix_fmt_string@LIBAVUTIL_FFMPEG_54 7:2.4 - av_get_planar_sample_fmt@LIBAVUTIL_FFMPEG_54 7:2.4 - av_get_q@LIBAVUTIL_FFMPEG_54 7:2.4 - av_get_random_seed@LIBAVUTIL_FFMPEG_54 7:2.4 - av_get_sample_fmt@LIBAVUTIL_FFMPEG_54 7:2.4 - av_get_sample_fmt_name@LIBAVUTIL_FFMPEG_54 7:2.4 - av_get_sample_fmt_string@LIBAVUTIL_FFMPEG_54 7:2.4 - av_get_standard_channel_layout@LIBAVUTIL_FFMPEG_54 7:2.4 - av_get_string@LIBAVUTIL_FFMPEG_54 7:2.4 - av_get_time_base_q@LIBAVUTIL_FFMPEG_54 7:2.4 - av_get_token@LIBAVUTIL_FFMPEG_54 7:2.4 - av_gettime@LIBAVUTIL_FFMPEG_54 7:2.4 - av_gettime_relative@LIBAVUTIL_FFMPEG_54 7:2.4 - av_gettime_relative_is_monotonic@LIBAVUTIL_FFMPEG_54 7:2.4 - av_hash_alloc@LIBAVUTIL_FFMPEG_54 7:2.4 - av_hash_final@LIBAVUTIL_FFMPEG_54 7:2.4 - av_hash_final_b64@LIBAVUTIL_FFMPEG_54 7:2.4 - av_hash_final_bin@LIBAVUTIL_FFMPEG_54 7:2.4 - av_hash_final_hex@LIBAVUTIL_FFMPEG_54 7:2.4 - av_hash_freep@LIBAVUTIL_FFMPEG_54 7:2.4 - av_hash_get_name@LIBAVUTIL_FFMPEG_54 7:2.4 - av_hash_get_size@LIBAVUTIL_FFMPEG_54 7:2.4 - av_hash_init@LIBAVUTIL_FFMPEG_54 7:2.4 - av_hash_names@LIBAVUTIL_FFMPEG_54 7:2.4 - av_hash_update@LIBAVUTIL_FFMPEG_54 7:2.4 - av_hmac_alloc@LIBAVUTIL_FFMPEG_54 7:2.4 - av_hmac_calc@LIBAVUTIL_FFMPEG_54 7:2.4 - av_hmac_final@LIBAVUTIL_FFMPEG_54 7:2.4 - av_hmac_free@LIBAVUTIL_FFMPEG_54 7:2.4 - av_hmac_init@LIBAVUTIL_FFMPEG_54 7:2.4 - av_hmac_update@LIBAVUTIL_FFMPEG_54 7:2.4 - av_image_alloc@LIBAVUTIL_FFMPEG_54 7:2.4 - av_image_check_sar@LIBAVUTIL_FFMPEG_54 7:2.4 - av_image_check_size@LIBAVUTIL_FFMPEG_54 7:2.4 - av_image_copy@LIBAVUTIL_FFMPEG_54 7:2.4 - av_image_copy_plane@LIBAVUTIL_FFMPEG_54 7:2.4 - av_image_copy_to_buffer@LIBAVUTIL_FFMPEG_54 7:2.4 - av_image_fill_arrays@LIBAVUTIL_FFMPEG_54 7:2.4 - av_image_fill_linesizes@LIBAVUTIL_FFMPEG_54 7:2.4 - av_image_fill_max_pixsteps@LIBAVUTIL_FFMPEG_54 7:2.4 - av_image_fill_pointers@LIBAVUTIL_FFMPEG_54 7:2.4 - av_image_get_buffer_size@LIBAVUTIL_FFMPEG_54 7:2.4 - av_image_get_linesize@LIBAVUTIL_FFMPEG_54 7:2.4 - av_int_list_length_for_size@LIBAVUTIL_FFMPEG_54 7:2.4 - av_isdigit@LIBAVUTIL_FFMPEG_54 7:2.4 - av_isgraph@LIBAVUTIL_FFMPEG_54 7:2.4 - av_isspace@LIBAVUTIL_FFMPEG_54 7:2.4 - av_isxdigit@LIBAVUTIL_FFMPEG_54 7:2.4 - av_lfg_init@LIBAVUTIL_FFMPEG_54 7:2.4 - av_log2@LIBAVUTIL_FFMPEG_54 7:2.4 - av_log2_16bit@LIBAVUTIL_FFMPEG_54 7:2.4 - av_log@LIBAVUTIL_FFMPEG_54 7:2.4 - av_log_default_callback@LIBAVUTIL_FFMPEG_54 7:2.4 - av_log_format_line@LIBAVUTIL_FFMPEG_54 7:2.4 - av_log_get_flags@LIBAVUTIL_FFMPEG_54 7:2.4 - av_log_get_level@LIBAVUTIL_FFMPEG_54 7:2.4 - av_log_set_callback@LIBAVUTIL_FFMPEG_54 7:2.4 - av_log_set_flags@LIBAVUTIL_FFMPEG_54 7:2.4 - av_log_set_level@LIBAVUTIL_FFMPEG_54 7:2.4 - av_lzo1x_decode@LIBAVUTIL_FFMPEG_54 7:2.4 - av_malloc@LIBAVUTIL_FFMPEG_54 7:2.4 - av_mallocz@LIBAVUTIL_FFMPEG_54 7:2.4 - av_match_list@LIBAVUTIL_FFMPEG_54 7:2.5 - av_match_name@LIBAVUTIL_FFMPEG_54 7:2.4 - av_max_alloc@LIBAVUTIL_FFMPEG_54 7:2.4 - av_md5_alloc@LIBAVUTIL_FFMPEG_54 7:2.4 - av_md5_final@LIBAVUTIL_FFMPEG_54 7:2.4 - av_md5_init@LIBAVUTIL_FFMPEG_54 7:2.4 - av_md5_size@LIBAVUTIL_FFMPEG_54 7:2.4 - av_md5_sum@LIBAVUTIL_FFMPEG_54 7:2.4 - av_md5_update@LIBAVUTIL_FFMPEG_54 7:2.4 - av_memcpy_backptr@LIBAVUTIL_FFMPEG_54 7:2.4 - av_memdup@LIBAVUTIL_FFMPEG_54 7:2.4 - av_mul_q@LIBAVUTIL_FFMPEG_54 7:2.4 - av_murmur3_alloc@LIBAVUTIL_FFMPEG_54 7:2.4 - av_murmur3_final@LIBAVUTIL_FFMPEG_54 7:2.4 - av_murmur3_init@LIBAVUTIL_FFMPEG_54 7:2.4 - av_murmur3_init_seeded@LIBAVUTIL_FFMPEG_54 7:2.4 - av_murmur3_update@LIBAVUTIL_FFMPEG_54 7:2.4 - av_nearer_q@LIBAVUTIL_FFMPEG_54 7:2.4 - av_next_option@LIBAVUTIL_FFMPEG_54 7:2.4 - av_opt_child_class_next@LIBAVUTIL_FFMPEG_54 7:2.4 - av_opt_child_next@LIBAVUTIL_FFMPEG_54 7:2.4 - av_opt_copy@LIBAVUTIL_FFMPEG_54 7:2.4 - av_opt_eval_double@LIBAVUTIL_FFMPEG_54 7:2.4 - av_opt_eval_flags@LIBAVUTIL_FFMPEG_54 7:2.4 - av_opt_eval_float@LIBAVUTIL_FFMPEG_54 7:2.4 - av_opt_eval_int64@LIBAVUTIL_FFMPEG_54 7:2.4 - av_opt_eval_int@LIBAVUTIL_FFMPEG_54 7:2.4 - av_opt_eval_q@LIBAVUTIL_FFMPEG_54 7:2.4 - av_opt_find2@LIBAVUTIL_FFMPEG_54 7:2.4 - av_opt_find@LIBAVUTIL_FFMPEG_54 7:2.4 - av_opt_flag_is_set@LIBAVUTIL_FFMPEG_54 7:2.4 - av_opt_free@LIBAVUTIL_FFMPEG_54 7:2.4 - av_opt_freep_ranges@LIBAVUTIL_FFMPEG_54 7:2.4 - av_opt_get@LIBAVUTIL_FFMPEG_54 7:2.4 - av_opt_get_channel_layout@LIBAVUTIL_FFMPEG_54 7:2.4 - av_opt_get_dict_val@LIBAVUTIL_FFMPEG_54 7:2.4 - av_opt_get_double@LIBAVUTIL_FFMPEG_54 7:2.4 - av_opt_get_image_size@LIBAVUTIL_FFMPEG_54 7:2.4 - av_opt_get_int@LIBAVUTIL_FFMPEG_54 7:2.4 - av_opt_get_key_value@LIBAVUTIL_FFMPEG_54 7:2.4 - av_opt_get_pixel_fmt@LIBAVUTIL_FFMPEG_54 7:2.4 - av_opt_get_q@LIBAVUTIL_FFMPEG_54 7:2.4 - av_opt_get_sample_fmt@LIBAVUTIL_FFMPEG_54 7:2.4 - av_opt_get_video_rate@LIBAVUTIL_FFMPEG_54 7:2.4 - av_opt_is_set_to_default@LIBAVUTIL_FFMPEG_54 7:2.5 - av_opt_is_set_to_default_by_name@LIBAVUTIL_FFMPEG_54 7:2.5 - av_opt_next@LIBAVUTIL_FFMPEG_54 7:2.4 - av_opt_ptr@LIBAVUTIL_FFMPEG_54 7:2.4 - av_opt_query_ranges@LIBAVUTIL_FFMPEG_54 7:2.4 - av_opt_query_ranges_default@LIBAVUTIL_FFMPEG_54 7:2.4 - av_opt_serialize@LIBAVUTIL_FFMPEG_54 7:2.5 - av_opt_set@LIBAVUTIL_FFMPEG_54 7:2.4 - av_opt_set_bin@LIBAVUTIL_FFMPEG_54 7:2.4 - av_opt_set_channel_layout@LIBAVUTIL_FFMPEG_54 7:2.4 - av_opt_set_defaults2@LIBAVUTIL_FFMPEG_54 7:2.4 - av_opt_set_defaults@LIBAVUTIL_FFMPEG_54 7:2.4 - av_opt_set_dict2@LIBAVUTIL_FFMPEG_54 7:2.4 - av_opt_set_dict@LIBAVUTIL_FFMPEG_54 7:2.4 - av_opt_set_dict_val@LIBAVUTIL_FFMPEG_54 7:2.4 - av_opt_set_double@LIBAVUTIL_FFMPEG_54 7:2.4 - av_opt_set_from_string@LIBAVUTIL_FFMPEG_54 7:2.4 - av_opt_set_image_size@LIBAVUTIL_FFMPEG_54 7:2.4 - av_opt_set_int@LIBAVUTIL_FFMPEG_54 7:2.4 - av_opt_set_pixel_fmt@LIBAVUTIL_FFMPEG_54 7:2.4 - av_opt_set_q@LIBAVUTIL_FFMPEG_54 7:2.4 - av_opt_set_sample_fmt@LIBAVUTIL_FFMPEG_54 7:2.4 - av_opt_set_video_rate@LIBAVUTIL_FFMPEG_54 7:2.4 - av_opt_show2@LIBAVUTIL_FFMPEG_54 7:2.4 - av_parse_color@LIBAVUTIL_FFMPEG_54 7:2.4 - av_parse_cpu_caps@LIBAVUTIL_FFMPEG_54 7:2.4 - av_parse_cpu_flags@LIBAVUTIL_FFMPEG_54 7:2.4 - av_parse_ratio@LIBAVUTIL_FFMPEG_54 7:2.4 - av_parse_time@LIBAVUTIL_FFMPEG_54 7:2.4 - av_parse_video_rate@LIBAVUTIL_FFMPEG_54 7:2.4 - av_parse_video_size@LIBAVUTIL_FFMPEG_54 7:2.4 - av_pix_fmt_count_planes@LIBAVUTIL_FFMPEG_54 7:2.4 - av_pix_fmt_desc_get@LIBAVUTIL_FFMPEG_54 7:2.4 - av_pix_fmt_desc_get_id@LIBAVUTIL_FFMPEG_54 7:2.4 - av_pix_fmt_desc_next@LIBAVUTIL_FFMPEG_54 7:2.4 - av_pix_fmt_descriptors@LIBAVUTIL_FFMPEG_54 7:2.4 - av_pix_fmt_get_chroma_sub_sample@LIBAVUTIL_FFMPEG_54 7:2.4 - av_pix_fmt_swap_endianness@LIBAVUTIL_FFMPEG_54 7:2.4 - av_pixelutils_get_sad_fn@LIBAVUTIL_FFMPEG_54 7:2.4 - av_rc4_crypt@LIBAVUTIL_FFMPEG_54 7:2.4 - av_rc4_init@LIBAVUTIL_FFMPEG_54 7:2.4 - av_read_image_line@LIBAVUTIL_FFMPEG_54 7:2.4 - av_realloc@LIBAVUTIL_FFMPEG_54 7:2.4 - av_realloc_array@LIBAVUTIL_FFMPEG_54 7:2.4 - av_realloc_f@LIBAVUTIL_FFMPEG_54 7:2.4 - av_reallocp@LIBAVUTIL_FFMPEG_54 7:2.4 - av_reallocp_array@LIBAVUTIL_FFMPEG_54 7:2.4 - av_reduce@LIBAVUTIL_FFMPEG_54 7:2.4 - av_rescale@LIBAVUTIL_FFMPEG_54 7:2.4 - av_rescale_delta@LIBAVUTIL_FFMPEG_54 7:2.4 - av_rescale_q@LIBAVUTIL_FFMPEG_54 7:2.4 - av_rescale_q_rnd@LIBAVUTIL_FFMPEG_54 7:2.4 - av_rescale_rnd@LIBAVUTIL_FFMPEG_54 7:2.4 - av_reverse@LIBAVUTIL_FFMPEG_54 7:2.4 - av_ripemd_alloc@LIBAVUTIL_FFMPEG_54 7:2.4 - av_ripemd_final@LIBAVUTIL_FFMPEG_54 7:2.4 - av_ripemd_init@LIBAVUTIL_FFMPEG_54 7:2.4 - av_ripemd_size@LIBAVUTIL_FFMPEG_54 7:2.4 - av_ripemd_update@LIBAVUTIL_FFMPEG_54 7:2.4 - av_sample_fmt_is_planar@LIBAVUTIL_FFMPEG_54 7:2.4 - av_samples_alloc@LIBAVUTIL_FFMPEG_54 7:2.4 - av_samples_alloc_array_and_samples@LIBAVUTIL_FFMPEG_54 7:2.4 - av_samples_copy@LIBAVUTIL_FFMPEG_54 7:2.4 - av_samples_fill_arrays@LIBAVUTIL_FFMPEG_54 7:2.4 - av_samples_get_buffer_size@LIBAVUTIL_FFMPEG_54 7:2.4 - av_samples_set_silence@LIBAVUTIL_FFMPEG_54 7:2.4 - av_set_cpu_flags_mask@LIBAVUTIL_FFMPEG_54 7:2.4 - av_set_double@LIBAVUTIL_FFMPEG_54 7:2.4 - av_set_int@LIBAVUTIL_FFMPEG_54 7:2.4 - av_set_options_string@LIBAVUTIL_FFMPEG_54 7:2.4 - av_set_q@LIBAVUTIL_FFMPEG_54 7:2.4 - av_set_string3@LIBAVUTIL_FFMPEG_54 7:2.4 - av_sha512_alloc@LIBAVUTIL_FFMPEG_54 7:2.4 - av_sha512_final@LIBAVUTIL_FFMPEG_54 7:2.4 - av_sha512_init@LIBAVUTIL_FFMPEG_54 7:2.4 - av_sha512_size@LIBAVUTIL_FFMPEG_54 7:2.4 - av_sha512_update@LIBAVUTIL_FFMPEG_54 7:2.4 - av_sha_alloc@LIBAVUTIL_FFMPEG_54 7:2.4 - av_sha_final@LIBAVUTIL_FFMPEG_54 7:2.4 - av_sha_init@LIBAVUTIL_FFMPEG_54 7:2.4 - av_sha_size@LIBAVUTIL_FFMPEG_54 7:2.4 - av_sha_update@LIBAVUTIL_FFMPEG_54 7:2.4 - av_small_strptime@LIBAVUTIL_FFMPEG_54 7:2.4 - av_stereo3d_alloc@LIBAVUTIL_FFMPEG_54 7:2.4 - av_stereo3d_create_side_data@LIBAVUTIL_FFMPEG_54 7:2.4 - av_strcasecmp@LIBAVUTIL_FFMPEG_54 7:2.4 - av_strdup@LIBAVUTIL_FFMPEG_54 7:2.4 - av_strerror@LIBAVUTIL_FFMPEG_54 7:2.4 - av_stristart@LIBAVUTIL_FFMPEG_54 7:2.4 - av_stristr@LIBAVUTIL_FFMPEG_54 7:2.4 - av_strlcat@LIBAVUTIL_FFMPEG_54 7:2.4 - av_strlcatf@LIBAVUTIL_FFMPEG_54 7:2.4 - av_strlcpy@LIBAVUTIL_FFMPEG_54 7:2.4 - av_strncasecmp@LIBAVUTIL_FFMPEG_54 7:2.4 - av_strndup@LIBAVUTIL_FFMPEG_54 7:2.4 - av_strnstr@LIBAVUTIL_FFMPEG_54 7:2.4 - av_strstart@LIBAVUTIL_FFMPEG_54 7:2.4 - av_strtod@LIBAVUTIL_FFMPEG_54 7:2.4 - av_strtok@LIBAVUTIL_FFMPEG_54 7:2.4 - av_sub_q@LIBAVUTIL_FFMPEG_54 7:2.4 - av_tempfile@LIBAVUTIL_FFMPEG_54 7:2.4 - av_thread_message_queue_alloc@LIBAVUTIL_FFMPEG_54 7:2.4 - av_thread_message_queue_free@LIBAVUTIL_FFMPEG_54 7:2.4 - av_thread_message_queue_recv@LIBAVUTIL_FFMPEG_54 7:2.4 - av_thread_message_queue_send@LIBAVUTIL_FFMPEG_54 7:2.4 - av_thread_message_queue_set_err_recv@LIBAVUTIL_FFMPEG_54 7:2.4 - av_thread_message_queue_set_err_send@LIBAVUTIL_FFMPEG_54 7:2.4 - av_timecode_adjust_ntsc_framenum2@LIBAVUTIL_FFMPEG_54 7:2.4 - av_timecode_check_frame_rate@LIBAVUTIL_FFMPEG_54 7:2.4 - av_timecode_get_smpte_from_framenum@LIBAVUTIL_FFMPEG_54 7:2.4 - av_timecode_init@LIBAVUTIL_FFMPEG_54 7:2.4 - av_timecode_init_from_string@LIBAVUTIL_FFMPEG_54 7:2.4 - av_timecode_make_mpeg_tc_string@LIBAVUTIL_FFMPEG_54 7:2.4 - av_timecode_make_smpte_tc_string@LIBAVUTIL_FFMPEG_54 7:2.4 - av_timecode_make_string@LIBAVUTIL_FFMPEG_54 7:2.4 - av_timegm@LIBAVUTIL_FFMPEG_54 7:2.4 - av_tree_destroy@LIBAVUTIL_FFMPEG_54 7:2.4 - av_tree_enumerate@LIBAVUTIL_FFMPEG_54 7:2.4 - av_tree_find@LIBAVUTIL_FFMPEG_54 7:2.4 - av_tree_insert@LIBAVUTIL_FFMPEG_54 7:2.4 - av_tree_node_alloc@LIBAVUTIL_FFMPEG_54 7:2.4 - av_tree_node_size@LIBAVUTIL_FFMPEG_54 7:2.4 - av_usleep@LIBAVUTIL_FFMPEG_54 7:2.4 - av_utf8_decode@LIBAVUTIL_FFMPEG_54 7:2.4 - av_vbprintf@LIBAVUTIL_FFMPEG_54 7:2.4 - av_vlog@LIBAVUTIL_FFMPEG_54 7:2.4 - av_write_image_line@LIBAVUTIL_FFMPEG_54 7:2.4 - av_xtea_crypt@LIBAVUTIL_FFMPEG_54 7:2.4 - av_xtea_init@LIBAVUTIL_FFMPEG_54 7:2.4 - avpriv_alloc_fixed_dsp@LIBAVUTIL_FFMPEG_54 7:2.4 - avpriv_cga_font@LIBAVUTIL_FFMPEG_54 7:2.4 - (optional)avpriv_emms_yasm@LIBAVUTIL_FFMPEG_54 7:2.4 - avpriv_float_dsp_alloc@LIBAVUTIL_FFMPEG_54 7:2.5 - avpriv_float_dsp_init@LIBAVUTIL_FFMPEG_54 7:2.4 - avpriv_frame_get_metadatap@LIBAVUTIL_FFMPEG_54 7:2.4 - avpriv_init_lls@LIBAVUTIL_FFMPEG_54 7:2.4 - avpriv_open@LIBAVUTIL_FFMPEG_54 7:2.4 - avpriv_report_missing_feature@LIBAVUTIL_FFMPEG_54 7:2.4 - avpriv_request_sample@LIBAVUTIL_FFMPEG_54 7:2.4 - avpriv_scalarproduct_float_c@LIBAVUTIL_FFMPEG_54 7:2.4 - avpriv_set_systematic_pal2@LIBAVUTIL_FFMPEG_54 7:2.4 - avpriv_solve_lls@LIBAVUTIL_FFMPEG_54 7:2.4 - avpriv_vga16_font@LIBAVUTIL_FFMPEG_54 7:2.4 - avutil_configuration@LIBAVUTIL_FFMPEG_54 7:2.4 - avutil_license@LIBAVUTIL_FFMPEG_54 7:2.4 - avutil_version@LIBAVUTIL_FFMPEG_54 7:2.4 diff -Nru ffmpeg-2.5/debian/libavutil-ffmpeg-dev.install ffmpeg-0.10.12/debian/libavutil-ffmpeg-dev.install --- ffmpeg-2.5/debian/libavutil-ffmpeg-dev.install 2014-09-18 20:34:50.000000000 +0000 +++ ffmpeg-0.10.12/debian/libavutil-ffmpeg-dev.install 1970-01-01 00:00:00.000000000 +0000 @@ -1,4 +0,0 @@ -usr/include/*/libavutil -usr/lib/*/libavutil*.a -usr/lib/*/libavutil*.so -usr/lib/*/pkgconfig/libavutil*.pc diff -Nru ffmpeg-2.5/debian/libpostproc52.install.in ffmpeg-0.10.12/debian/libpostproc52.install.in --- ffmpeg-2.5/debian/libpostproc52.install.in 1970-01-01 00:00:00.000000000 +0000 +++ ffmpeg-0.10.12/debian/libpostproc52.install.in 2014-02-06 14:17:24.000000000 +0000 @@ -0,0 +1 @@ +usr/lib/@DEB_HOST_MULTIARCH_OPT@/libpostproc.so.* diff -Nru ffmpeg-2.5/debian/libpostproc52.lintian-overrides ffmpeg-0.10.12/debian/libpostproc52.lintian-overrides --- ffmpeg-2.5/debian/libpostproc52.lintian-overrides 1970-01-01 00:00:00.000000000 +0000 +++ ffmpeg-0.10.12/debian/libpostproc52.lintian-overrides 2014-02-06 14:17:24.000000000 +0000 @@ -0,0 +1,2 @@ +# Overriding these fpic lintian errors. Please see bug #528080. +libpostproc52: shlib-with-non-pic-code diff -Nru ffmpeg-2.5/debian/libpostproc-dev.install.in ffmpeg-0.10.12/debian/libpostproc-dev.install.in --- ffmpeg-2.5/debian/libpostproc-dev.install.in 1970-01-01 00:00:00.000000000 +0000 +++ ffmpeg-0.10.12/debian/libpostproc-dev.install.in 2014-02-06 14:17:24.000000000 +0000 @@ -0,0 +1,4 @@ +usr/include/libpostproc +usr/lib/@DEB_HOST_MULTIARCH@/libpostproc.a +usr/lib/@DEB_HOST_MULTIARCH_OPT@/libpostproc.so +usr/lib/@DEB_HOST_MULTIARCH@/pkgconfig/libpostproc.pc diff -Nru ffmpeg-2.5/debian/libpostproc-ffmpeg53.install ffmpeg-0.10.12/debian/libpostproc-ffmpeg53.install --- ffmpeg-2.5/debian/libpostproc-ffmpeg53.install 2014-09-15 15:02:53.000000000 +0000 +++ ffmpeg-0.10.12/debian/libpostproc-ffmpeg53.install 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -usr/lib/*/libpostproc-ffmpeg.so.* diff -Nru ffmpeg-2.5/debian/libpostproc-ffmpeg53.lintian-overrides ffmpeg-0.10.12/debian/libpostproc-ffmpeg53.lintian-overrides --- ffmpeg-2.5/debian/libpostproc-ffmpeg53.lintian-overrides 2014-09-18 20:34:50.000000000 +0000 +++ ffmpeg-0.10.12/debian/libpostproc-ffmpeg53.lintian-overrides 1970-01-01 00:00:00.000000000 +0000 @@ -1,10 +0,0 @@ -# This is a bug in lintian thinking only libav (and not also FFmpeg) build libpostproc. -# See: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=729203#430 -libpostproc-ffmpeg53: embedded-library usr/lib/*/libpostproc-ffmpeg.so.*: libpostproc - -# According to Debian policy [1], non position independent code is permitted -# in a shared library on i386 and position independent code may have a -# performance penalty, especially on i386. -# Therefore -fPIC is not used by the upstream build system on i386. -# 1: https://www.debian.org/doc/debian-policy/footnotes.html#f83 -libpostproc-ffmpeg53: shlib-with-non-pic-code usr/lib/i386*/libpostproc-ffmpeg.so.* diff -Nru ffmpeg-2.5/debian/libpostproc-ffmpeg53.symbols ffmpeg-0.10.12/debian/libpostproc-ffmpeg53.symbols --- ffmpeg-2.5/debian/libpostproc-ffmpeg53.symbols 2014-09-15 15:02:53.000000000 +0000 +++ ffmpeg-0.10.12/debian/libpostproc-ffmpeg53.symbols 1970-01-01 00:00:00.000000000 +0000 @@ -1,11 +0,0 @@ -libpostproc-ffmpeg.so.53 libpostproc-ffmpeg53 #MINVER# - LIBPOSTPROC_FFMPEG_53@LIBPOSTPROC_FFMPEG_53 7:2.4 - postproc_configuration@LIBPOSTPROC_FFMPEG_53 7:2.4 - postproc_license@LIBPOSTPROC_FFMPEG_53 7:2.4 - postproc_version@LIBPOSTPROC_FFMPEG_53 7:2.4 - pp_free_context@LIBPOSTPROC_FFMPEG_53 7:2.4 - pp_free_mode@LIBPOSTPROC_FFMPEG_53 7:2.4 - pp_get_context@LIBPOSTPROC_FFMPEG_53 7:2.4 - pp_get_mode_by_name_and_quality@LIBPOSTPROC_FFMPEG_53 7:2.4 - pp_help@LIBPOSTPROC_FFMPEG_53 7:2.4 - pp_postprocess@LIBPOSTPROC_FFMPEG_53 7:2.4 diff -Nru ffmpeg-2.5/debian/libpostproc-ffmpeg-dev.install ffmpeg-0.10.12/debian/libpostproc-ffmpeg-dev.install --- ffmpeg-2.5/debian/libpostproc-ffmpeg-dev.install 2014-09-18 20:34:50.000000000 +0000 +++ ffmpeg-0.10.12/debian/libpostproc-ffmpeg-dev.install 1970-01-01 00:00:00.000000000 +0000 @@ -1,4 +0,0 @@ -usr/include/*/libpostproc -usr/lib/*/libpostproc*.a -usr/lib/*/libpostproc*.so -usr/lib/*/pkgconfig/libpostproc*.pc diff -Nru ffmpeg-2.5/debian/libswresample0.install.in ffmpeg-0.10.12/debian/libswresample0.install.in --- ffmpeg-2.5/debian/libswresample0.install.in 1970-01-01 00:00:00.000000000 +0000 +++ ffmpeg-0.10.12/debian/libswresample0.install.in 2014-02-06 14:17:25.000000000 +0000 @@ -0,0 +1 @@ +usr/lib/@DEB_HOST_MULTIARCH_OPT@/libswresample.so.* diff -Nru ffmpeg-2.5/debian/libswresample0.lintian-overrides ffmpeg-0.10.12/debian/libswresample0.lintian-overrides --- ffmpeg-2.5/debian/libswresample0.lintian-overrides 1970-01-01 00:00:00.000000000 +0000 +++ ffmpeg-0.10.12/debian/libswresample0.lintian-overrides 2014-02-06 14:17:25.000000000 +0000 @@ -0,0 +1,2 @@ +# Overriding these fpic lintian errors. Please see bug #528080. +libswresample0: shlib-with-non-pic-code diff -Nru ffmpeg-2.5/debian/libswresample-dev.install.in ffmpeg-0.10.12/debian/libswresample-dev.install.in --- ffmpeg-2.5/debian/libswresample-dev.install.in 1970-01-01 00:00:00.000000000 +0000 +++ ffmpeg-0.10.12/debian/libswresample-dev.install.in 2014-04-26 06:23:55.000000000 +0000 @@ -0,0 +1,4 @@ +usr/include/libswresample +usr/lib/@DEB_HOST_MULTIARCH@/libswresample.a +usr/lib/@DEB_HOST_MULTIARCH_OPT@/libswresample.so +usr/lib/@DEB_HOST_MULTIARCH@/pkgconfig/libswresample.pc diff -Nru ffmpeg-2.5/debian/libswresample-ffmpeg1.install ffmpeg-0.10.12/debian/libswresample-ffmpeg1.install --- ffmpeg-2.5/debian/libswresample-ffmpeg1.install 2014-09-15 15:02:53.000000000 +0000 +++ ffmpeg-0.10.12/debian/libswresample-ffmpeg1.install 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -usr/lib/*/libswresample-ffmpeg.so.* diff -Nru ffmpeg-2.5/debian/libswresample-ffmpeg1.lintian-overrides ffmpeg-0.10.12/debian/libswresample-ffmpeg1.lintian-overrides --- ffmpeg-2.5/debian/libswresample-ffmpeg1.lintian-overrides 2014-09-18 20:34:50.000000000 +0000 +++ ffmpeg-0.10.12/debian/libswresample-ffmpeg1.lintian-overrides 1970-01-01 00:00:00.000000000 +0000 @@ -1,6 +0,0 @@ -# According to Debian policy [1], non position independent code is permitted -# in a shared library on i386 and position independent code may have a -# performance penalty, especially on i386. -# Therefore -fPIC is not used by the upstream build system on i386. -# 1: https://www.debian.org/doc/debian-policy/footnotes.html#f83 -libswresample-ffmpeg1: shlib-with-non-pic-code usr/lib/i386*/libswresample-ffmpeg.so.* diff -Nru ffmpeg-2.5/debian/libswresample-ffmpeg1.symbols ffmpeg-0.10.12/debian/libswresample-ffmpeg1.symbols --- ffmpeg-2.5/debian/libswresample-ffmpeg1.symbols 2014-09-15 15:02:53.000000000 +0000 +++ ffmpeg-0.10.12/debian/libswresample-ffmpeg1.symbols 1970-01-01 00:00:00.000000000 +0000 @@ -1,22 +0,0 @@ -libswresample-ffmpeg.so.1 libswresample-ffmpeg1 #MINVER# - LIBSWRESAMPLE_FFMPEG_1@LIBSWRESAMPLE_FFMPEG_1 7:2.4 - swr_alloc@LIBSWRESAMPLE_FFMPEG_1 7:2.4 - swr_alloc_set_opts@LIBSWRESAMPLE_FFMPEG_1 7:2.4 - swr_close@LIBSWRESAMPLE_FFMPEG_1 7:2.4 - swr_config_frame@LIBSWRESAMPLE_FFMPEG_1 7:2.4 - swr_convert@LIBSWRESAMPLE_FFMPEG_1 7:2.4 - swr_convert_frame@LIBSWRESAMPLE_FFMPEG_1 7:2.4 - swr_drop_output@LIBSWRESAMPLE_FFMPEG_1 7:2.4 - swr_free@LIBSWRESAMPLE_FFMPEG_1 7:2.4 - swr_get_class@LIBSWRESAMPLE_FFMPEG_1 7:2.4 - swr_get_delay@LIBSWRESAMPLE_FFMPEG_1 7:2.4 - swr_init@LIBSWRESAMPLE_FFMPEG_1 7:2.4 - swr_inject_silence@LIBSWRESAMPLE_FFMPEG_1 7:2.4 - swr_is_initialized@LIBSWRESAMPLE_FFMPEG_1 7:2.4 - swr_next_pts@LIBSWRESAMPLE_FFMPEG_1 7:2.4 - swr_set_channel_mapping@LIBSWRESAMPLE_FFMPEG_1 7:2.4 - swr_set_compensation@LIBSWRESAMPLE_FFMPEG_1 7:2.4 - swr_set_matrix@LIBSWRESAMPLE_FFMPEG_1 7:2.4 - swresample_configuration@LIBSWRESAMPLE_FFMPEG_1 7:2.4 - swresample_license@LIBSWRESAMPLE_FFMPEG_1 7:2.4 - swresample_version@LIBSWRESAMPLE_FFMPEG_1 7:2.4 diff -Nru ffmpeg-2.5/debian/libswresample-ffmpeg-dev.install ffmpeg-0.10.12/debian/libswresample-ffmpeg-dev.install --- ffmpeg-2.5/debian/libswresample-ffmpeg-dev.install 2014-09-18 20:34:50.000000000 +0000 +++ ffmpeg-0.10.12/debian/libswresample-ffmpeg-dev.install 1970-01-01 00:00:00.000000000 +0000 @@ -1,4 +0,0 @@ -usr/include/*/libswresample -usr/lib/*/libswresample*.a -usr/lib/*/libswresample*.so -usr/lib/*/pkgconfig/libswresample*.pc diff -Nru ffmpeg-2.5/debian/libswscale2.install.in ffmpeg-0.10.12/debian/libswscale2.install.in --- ffmpeg-2.5/debian/libswscale2.install.in 1970-01-01 00:00:00.000000000 +0000 +++ ffmpeg-0.10.12/debian/libswscale2.install.in 2014-02-06 14:16:33.000000000 +0000 @@ -0,0 +1 @@ +usr/lib/@DEB_HOST_MULTIARCH_OPT@/libswscale.so.* diff -Nru ffmpeg-2.5/debian/libswscale2.lintian-overrides ffmpeg-0.10.12/debian/libswscale2.lintian-overrides --- ffmpeg-2.5/debian/libswscale2.lintian-overrides 1970-01-01 00:00:00.000000000 +0000 +++ ffmpeg-0.10.12/debian/libswscale2.lintian-overrides 2014-02-06 14:16:33.000000000 +0000 @@ -0,0 +1,2 @@ +# Overriding these fpic lintian errors. Please see bug #528080. +libswscale2: shlib-with-non-pic-code diff -Nru ffmpeg-2.5/debian/libswscale-dev.install.in ffmpeg-0.10.12/debian/libswscale-dev.install.in --- ffmpeg-2.5/debian/libswscale-dev.install.in 1970-01-01 00:00:00.000000000 +0000 +++ ffmpeg-0.10.12/debian/libswscale-dev.install.in 2014-04-26 06:23:55.000000000 +0000 @@ -0,0 +1,4 @@ +usr/include/libswscale +usr/lib/@DEB_HOST_MULTIARCH@/libswscale.a +usr/lib/@DEB_HOST_MULTIARCH_OPT@/libswscale.so +usr/lib/@DEB_HOST_MULTIARCH@/pkgconfig/libswscale.pc diff -Nru ffmpeg-2.5/debian/libswscale-ffmpeg3.install ffmpeg-0.10.12/debian/libswscale-ffmpeg3.install --- ffmpeg-2.5/debian/libswscale-ffmpeg3.install 2014-09-15 15:02:53.000000000 +0000 +++ ffmpeg-0.10.12/debian/libswscale-ffmpeg3.install 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -usr/lib/*/libswscale-ffmpeg.so.* diff -Nru ffmpeg-2.5/debian/libswscale-ffmpeg3.lintian-overrides ffmpeg-0.10.12/debian/libswscale-ffmpeg3.lintian-overrides --- ffmpeg-2.5/debian/libswscale-ffmpeg3.lintian-overrides 2014-09-18 20:34:50.000000000 +0000 +++ ffmpeg-0.10.12/debian/libswscale-ffmpeg3.lintian-overrides 1970-01-01 00:00:00.000000000 +0000 @@ -1,6 +0,0 @@ -# According to Debian policy [1], non position independent code is permitted -# in a shared library on i386 and position independent code may have a -# performance penalty, especially on i386. -# Therefore -fPIC is not used by the upstream build system on i386. -# 1: https://www.debian.org/doc/debian-policy/footnotes.html#f83 -libswscale-ffmpeg3: shlib-with-non-pic-code usr/lib/i386*/libswscale-ffmpeg.so.* diff -Nru ffmpeg-2.5/debian/libswscale-ffmpeg3.symbols ffmpeg-0.10.12/debian/libswscale-ffmpeg3.symbols --- ffmpeg-2.5/debian/libswscale-ffmpeg3.symbols 2014-09-15 15:02:53.000000000 +0000 +++ ffmpeg-0.10.12/debian/libswscale-ffmpeg3.symbols 1970-01-01 00:00:00.000000000 +0000 @@ -1,37 +0,0 @@ -libswscale-ffmpeg.so.3 libswscale-ffmpeg3 #MINVER# - LIBSWSCALE_FFMPEG_3@LIBSWSCALE_FFMPEG_3 7:2.4 - sws_addVec@LIBSWSCALE_FFMPEG_3 7:2.4 - sws_allocVec@LIBSWSCALE_FFMPEG_3 7:2.4 - sws_alloc_context@LIBSWSCALE_FFMPEG_3 7:2.4 - sws_cloneVec@LIBSWSCALE_FFMPEG_3 7:2.4 - sws_context_class@LIBSWSCALE_FFMPEG_3 7:2.4 - sws_convVec@LIBSWSCALE_FFMPEG_3 7:2.4 - sws_convertPalette8ToPacked24@LIBSWSCALE_FFMPEG_3 7:2.4 - sws_convertPalette8ToPacked32@LIBSWSCALE_FFMPEG_3 7:2.4 - sws_freeContext@LIBSWSCALE_FFMPEG_3 7:2.4 - sws_freeFilter@LIBSWSCALE_FFMPEG_3 7:2.4 - sws_freeVec@LIBSWSCALE_FFMPEG_3 7:2.4 - sws_getCachedContext@LIBSWSCALE_FFMPEG_3 7:2.4 - sws_getCoefficients@LIBSWSCALE_FFMPEG_3 7:2.4 - sws_getColorspaceDetails@LIBSWSCALE_FFMPEG_3 7:2.4 - sws_getConstVec@LIBSWSCALE_FFMPEG_3 7:2.4 - sws_getContext@LIBSWSCALE_FFMPEG_3 7:2.4 - sws_getDefaultFilter@LIBSWSCALE_FFMPEG_3 7:2.4 - sws_getGaussianVec@LIBSWSCALE_FFMPEG_3 7:2.4 - sws_getIdentityVec@LIBSWSCALE_FFMPEG_3 7:2.4 - sws_get_class@LIBSWSCALE_FFMPEG_3 7:2.4 - sws_init_context@LIBSWSCALE_FFMPEG_3 7:2.4 - sws_isSupportedEndiannessConversion@LIBSWSCALE_FFMPEG_3 7:2.4 - sws_isSupportedInput@LIBSWSCALE_FFMPEG_3 7:2.4 - sws_isSupportedOutput@LIBSWSCALE_FFMPEG_3 7:2.4 - sws_normalizeVec@LIBSWSCALE_FFMPEG_3 7:2.4 - sws_printVec2@LIBSWSCALE_FFMPEG_3 7:2.4 - sws_rgb2rgb_init@LIBSWSCALE_FFMPEG_3 7:2.4 - sws_scale@LIBSWSCALE_FFMPEG_3 7:2.4 - sws_scaleVec@LIBSWSCALE_FFMPEG_3 7:2.4 - sws_setColorspaceDetails@LIBSWSCALE_FFMPEG_3 7:2.4 - sws_shiftVec@LIBSWSCALE_FFMPEG_3 7:2.4 - sws_subVec@LIBSWSCALE_FFMPEG_3 7:2.4 - swscale_configuration@LIBSWSCALE_FFMPEG_3 7:2.4 - swscale_license@LIBSWSCALE_FFMPEG_3 7:2.4 - swscale_version@LIBSWSCALE_FFMPEG_3 7:2.4 diff -Nru ffmpeg-2.5/debian/libswscale-ffmpeg-dev.install ffmpeg-0.10.12/debian/libswscale-ffmpeg-dev.install --- ffmpeg-2.5/debian/libswscale-ffmpeg-dev.install 2014-09-18 20:34:50.000000000 +0000 +++ ffmpeg-0.10.12/debian/libswscale-ffmpeg-dev.install 1970-01-01 00:00:00.000000000 +0000 @@ -1,4 +0,0 @@ -usr/include/*/libswscale -usr/lib/*/libswscale*.a -usr/lib/*/libswscale*.so -usr/lib/*/pkgconfig/libswscale*.pc diff -Nru ffmpeg-2.5/debian/missing-sources/bootstrap/less/alerts.less ffmpeg-0.10.12/debian/missing-sources/bootstrap/less/alerts.less --- ffmpeg-2.5/debian/missing-sources/bootstrap/less/alerts.less 2014-09-15 15:02:53.000000000 +0000 +++ ffmpeg-0.10.12/debian/missing-sources/bootstrap/less/alerts.less 1970-01-01 00:00:00.000000000 +0000 @@ -1,68 +0,0 @@ -// -// Alerts -// -------------------------------------------------- - - -// Base styles -// ------------------------- - -.alert { - padding: @alert-padding; - margin-bottom: @line-height-computed; - border: 1px solid transparent; - border-radius: @alert-border-radius; - - // Headings for larger alerts - h4 { - margin-top: 0; - // Specified for the h4 to prevent conflicts of changing @headings-color - color: inherit; - } - // Provide class for links that match alerts - .alert-link { - font-weight: @alert-link-font-weight; - } - - // Improve alignment and spacing of inner content - > p, - > ul { - margin-bottom: 0; - } - > p + p { - margin-top: 5px; - } -} - -// Dismissible alerts -// -// Expand the right padding and account for the close button's positioning. - -.alert-dismissable, // The misspelled .alert-dismissable was deprecated in 3.2.0. -.alert-dismissible { - padding-right: (@alert-padding + 20); - - // Adjust close link position - .close { - position: relative; - top: -2px; - right: -21px; - color: inherit; - } -} - -// Alternate styles -// -// Generate contextual modifier classes for colorizing the alert. - -.alert-success { - .alert-variant(@alert-success-bg; @alert-success-border; @alert-success-text); -} -.alert-info { - .alert-variant(@alert-info-bg; @alert-info-border; @alert-info-text); -} -.alert-warning { - .alert-variant(@alert-warning-bg; @alert-warning-border; @alert-warning-text); -} -.alert-danger { - .alert-variant(@alert-danger-bg; @alert-danger-border; @alert-danger-text); -} diff -Nru ffmpeg-2.5/debian/missing-sources/bootstrap/less/badges.less ffmpeg-0.10.12/debian/missing-sources/bootstrap/less/badges.less --- ffmpeg-2.5/debian/missing-sources/bootstrap/less/badges.less 2014-09-15 15:02:53.000000000 +0000 +++ ffmpeg-0.10.12/debian/missing-sources/bootstrap/less/badges.less 1970-01-01 00:00:00.000000000 +0000 @@ -1,55 +0,0 @@ -// -// Badges -// -------------------------------------------------- - - -// Base class -.badge { - display: inline-block; - min-width: 10px; - padding: 3px 7px; - font-size: @font-size-small; - font-weight: @badge-font-weight; - color: @badge-color; - line-height: @badge-line-height; - vertical-align: baseline; - white-space: nowrap; - text-align: center; - background-color: @badge-bg; - border-radius: @badge-border-radius; - - // Empty badges collapse automatically (not available in IE8) - &:empty { - display: none; - } - - // Quick fix for badges in buttons - .btn & { - position: relative; - top: -1px; - } - .btn-xs & { - top: 0; - padding: 1px 5px; - } - - // Hover state, but only for links - a& { - &:hover, - &:focus { - color: @badge-link-hover-color; - text-decoration: none; - cursor: pointer; - } - } - - // Account for badges in navs - a.list-group-item.active > &, - .nav-pills > .active > a > & { - color: @badge-active-color; - background-color: @badge-active-bg; - } - .nav-pills > li > a > & { - margin-left: 3px; - } -} diff -Nru ffmpeg-2.5/debian/missing-sources/bootstrap/less/bootstrap.less ffmpeg-0.10.12/debian/missing-sources/bootstrap/less/bootstrap.less --- ffmpeg-2.5/debian/missing-sources/bootstrap/less/bootstrap.less 2014-09-15 15:02:53.000000000 +0000 +++ ffmpeg-0.10.12/debian/missing-sources/bootstrap/less/bootstrap.less 1970-01-01 00:00:00.000000000 +0000 @@ -1,50 +0,0 @@ -// Core variables and mixins -@import "variables.less"; -@import "mixins.less"; - -// Reset and dependencies -@import "normalize.less"; -@import "print.less"; -@import "glyphicons.less"; - -// Core CSS -@import "scaffolding.less"; -@import "type.less"; -@import "code.less"; -@import "grid.less"; -@import "tables.less"; -@import "forms.less"; -@import "buttons.less"; - -// Components -@import "component-animations.less"; -@import "dropdowns.less"; -@import "button-groups.less"; -@import "input-groups.less"; -@import "navs.less"; -@import "navbar.less"; -@import "breadcrumbs.less"; -@import "pagination.less"; -@import "pager.less"; -@import "labels.less"; -@import "badges.less"; -@import "jumbotron.less"; -@import "thumbnails.less"; -@import "alerts.less"; -@import "progress-bars.less"; -@import "media.less"; -@import "list-group.less"; -@import "panels.less"; -@import "responsive-embed.less"; -@import "wells.less"; -@import "close.less"; - -// Components w/ JavaScript -@import "modals.less"; -@import "tooltip.less"; -@import "popovers.less"; -@import "carousel.less"; - -// Utility classes -@import "utilities.less"; -@import "responsive-utilities.less"; diff -Nru ffmpeg-2.5/debian/missing-sources/bootstrap/less/breadcrumbs.less ffmpeg-0.10.12/debian/missing-sources/bootstrap/less/breadcrumbs.less --- ffmpeg-2.5/debian/missing-sources/bootstrap/less/breadcrumbs.less 2014-09-15 15:02:53.000000000 +0000 +++ ffmpeg-0.10.12/debian/missing-sources/bootstrap/less/breadcrumbs.less 1970-01-01 00:00:00.000000000 +0000 @@ -1,26 +0,0 @@ -// -// Breadcrumbs -// -------------------------------------------------- - - -.breadcrumb { - padding: @breadcrumb-padding-vertical @breadcrumb-padding-horizontal; - margin-bottom: @line-height-computed; - list-style: none; - background-color: @breadcrumb-bg; - border-radius: @border-radius-base; - - > li { - display: inline-block; - - + li:before { - content: "@{breadcrumb-separator}\00a0"; // Unicode space added since inline-block means non-collapsing white-space - padding: 0 5px; - color: @breadcrumb-color; - } - } - - > .active { - color: @breadcrumb-active-color; - } -} diff -Nru ffmpeg-2.5/debian/missing-sources/bootstrap/less/button-groups.less ffmpeg-0.10.12/debian/missing-sources/bootstrap/less/button-groups.less --- ffmpeg-2.5/debian/missing-sources/bootstrap/less/button-groups.less 2014-09-15 15:02:53.000000000 +0000 +++ ffmpeg-0.10.12/debian/missing-sources/bootstrap/less/button-groups.less 1970-01-01 00:00:00.000000000 +0000 @@ -1,240 +0,0 @@ -// -// Button groups -// -------------------------------------------------- - -// Make the div behave like a button -.btn-group, -.btn-group-vertical { - position: relative; - display: inline-block; - vertical-align: middle; // match .btn alignment given font-size hack above - > .btn { - position: relative; - float: left; - // Bring the "active" button to the front - &:hover, - &:focus, - &:active, - &.active { - z-index: 2; - } - &:focus { - // Remove focus outline when dropdown JS adds it after closing the menu - outline: 0; - } - } -} - -// Prevent double borders when buttons are next to each other -.btn-group { - .btn + .btn, - .btn + .btn-group, - .btn-group + .btn, - .btn-group + .btn-group { - margin-left: -1px; - } -} - -// Optional: Group multiple button groups together for a toolbar -.btn-toolbar { - margin-left: -5px; // Offset the first child's margin - &:extend(.clearfix all); - - .btn-group, - .input-group { - float: left; - } - > .btn, - > .btn-group, - > .input-group { - margin-left: 5px; - } -} - -.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) { - border-radius: 0; -} - -// Set corners individual because sometimes a single button can be in a .btn-group and we need :first-child and :last-child to both match -.btn-group > .btn:first-child { - margin-left: 0; - &:not(:last-child):not(.dropdown-toggle) { - .border-right-radius(0); - } -} -// Need .dropdown-toggle since :last-child doesn't apply given a .dropdown-menu immediately after it -.btn-group > .btn:last-child:not(:first-child), -.btn-group > .dropdown-toggle:not(:first-child) { - .border-left-radius(0); -} - -// Custom edits for including btn-groups within btn-groups (useful for including dropdown buttons within a btn-group) -.btn-group > .btn-group { - float: left; -} -.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn { - border-radius: 0; -} -.btn-group > .btn-group:first-child { - > .btn:last-child, - > .dropdown-toggle { - .border-right-radius(0); - } -} -.btn-group > .btn-group:last-child > .btn:first-child { - .border-left-radius(0); -} - -// On active and open, don't show outline -.btn-group .dropdown-toggle:active, -.btn-group.open .dropdown-toggle { - outline: 0; -} - - -// Sizing -// -// Remix the default button sizing classes into new ones for easier manipulation. - -.btn-group-xs > .btn { &:extend(.btn-xs); } -.btn-group-sm > .btn { &:extend(.btn-sm); } -.btn-group-lg > .btn { &:extend(.btn-lg); } - - -// Split button dropdowns -// ---------------------- - -// Give the line between buttons some depth -.btn-group > .btn + .dropdown-toggle { - padding-left: 8px; - padding-right: 8px; -} -.btn-group > .btn-lg + .dropdown-toggle { - padding-left: 12px; - padding-right: 12px; -} - -// The clickable button for toggling the menu -// Remove the gradient and set the same inset shadow as the :active state -.btn-group.open .dropdown-toggle { - .box-shadow(inset 0 3px 5px rgba(0,0,0,.125)); - - // Show no shadow for `.btn-link` since it has no other button styles. - &.btn-link { - .box-shadow(none); - } -} - - -// Reposition the caret -.btn .caret { - margin-left: 0; -} -// Carets in other button sizes -.btn-lg .caret { - border-width: @caret-width-large @caret-width-large 0; - border-bottom-width: 0; -} -// Upside down carets for .dropup -.dropup .btn-lg .caret { - border-width: 0 @caret-width-large @caret-width-large; -} - - -// Vertical button groups -// ---------------------- - -.btn-group-vertical { - > .btn, - > .btn-group, - > .btn-group > .btn { - display: block; - float: none; - width: 100%; - max-width: 100%; - } - - // Clear floats so dropdown menus can be properly placed - > .btn-group { - &:extend(.clearfix all); - > .btn { - float: none; - } - } - - > .btn + .btn, - > .btn + .btn-group, - > .btn-group + .btn, - > .btn-group + .btn-group { - margin-top: -1px; - margin-left: 0; - } -} - -.btn-group-vertical > .btn { - &:not(:first-child):not(:last-child) { - border-radius: 0; - } - &:first-child:not(:last-child) { - border-top-right-radius: @border-radius-base; - .border-bottom-radius(0); - } - &:last-child:not(:first-child) { - border-bottom-left-radius: @border-radius-base; - .border-top-radius(0); - } -} -.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn { - border-radius: 0; -} -.btn-group-vertical > .btn-group:first-child:not(:last-child) { - > .btn:last-child, - > .dropdown-toggle { - .border-bottom-radius(0); - } -} -.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child { - .border-top-radius(0); -} - - - -// Justified button groups -// ---------------------- - -.btn-group-justified { - display: table; - width: 100%; - table-layout: fixed; - border-collapse: separate; - > .btn, - > .btn-group { - float: none; - display: table-cell; - width: 1%; - } - > .btn-group .btn { - width: 100%; - } - - > .btn-group .dropdown-menu { - left: auto; - } -} - - -// Checkbox and radio options -// -// In order to support the browser's form validation feedback, powered by the -// `required` attribute, we have to "hide" the inputs via `opacity`. We cannot -// use `display: none;` or `visibility: hidden;` as that also hides the popover. -// This way, we ensure a DOM element is visible to position the popover from. -// -// See https://github.com/twbs/bootstrap/pull/12794 for more. - -[data-toggle="buttons"] > .btn > input[type="radio"], -[data-toggle="buttons"] > .btn > input[type="checkbox"] { - position: absolute; - z-index: -1; - .opacity(0); -} diff -Nru ffmpeg-2.5/debian/missing-sources/bootstrap/less/buttons.less ffmpeg-0.10.12/debian/missing-sources/bootstrap/less/buttons.less --- ffmpeg-2.5/debian/missing-sources/bootstrap/less/buttons.less 2014-09-15 15:02:53.000000000 +0000 +++ ffmpeg-0.10.12/debian/missing-sources/bootstrap/less/buttons.less 1970-01-01 00:00:00.000000000 +0000 @@ -1,157 +0,0 @@ -// -// Buttons -// -------------------------------------------------- - - -// Base styles -// -------------------------------------------------- - -.btn { - display: inline-block; - margin-bottom: 0; // For input.btn - font-weight: @btn-font-weight; - text-align: center; - vertical-align: middle; - cursor: pointer; - background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214 - border: 1px solid transparent; - white-space: nowrap; - .button-size(@padding-base-vertical; @padding-base-horizontal; @font-size-base; @line-height-base; @border-radius-base); - .user-select(none); - - &, - &:active, - &.active { - &:focus { - .tab-focus(); - } - } - - &:hover, - &:focus { - color: @btn-default-color; - text-decoration: none; - } - - &:active, - &.active { - outline: 0; - background-image: none; - .box-shadow(inset 0 3px 5px rgba(0,0,0,.125)); - } - - &.disabled, - &[disabled], - fieldset[disabled] & { - cursor: not-allowed; - pointer-events: none; // Future-proof disabling of clicks - .opacity(.65); - .box-shadow(none); - } -} - - -// Alternate buttons -// -------------------------------------------------- - -.btn-default { - .button-variant(@btn-default-color; @btn-default-bg; @btn-default-border); -} -.btn-primary { - .button-variant(@btn-primary-color; @btn-primary-bg; @btn-primary-border); -} -// Success appears as green -.btn-success { - .button-variant(@btn-success-color; @btn-success-bg; @btn-success-border); -} -// Info appears as blue-green -.btn-info { - .button-variant(@btn-info-color; @btn-info-bg; @btn-info-border); -} -// Warning appears as orange -.btn-warning { - .button-variant(@btn-warning-color; @btn-warning-bg; @btn-warning-border); -} -// Danger and error appear as red -.btn-danger { - .button-variant(@btn-danger-color; @btn-danger-bg; @btn-danger-border); -} - - -// Link buttons -// ------------------------- - -// Make a button look and behave like a link -.btn-link { - color: @link-color; - font-weight: normal; - cursor: pointer; - border-radius: 0; - - &, - &:active, - &[disabled], - fieldset[disabled] & { - background-color: transparent; - .box-shadow(none); - } - &, - &:hover, - &:focus, - &:active { - border-color: transparent; - } - &:hover, - &:focus { - color: @link-hover-color; - text-decoration: underline; - background-color: transparent; - } - &[disabled], - fieldset[disabled] & { - &:hover, - &:focus { - color: @btn-link-disabled-color; - text-decoration: none; - } - } -} - - -// Button Sizes -// -------------------------------------------------- - -.btn-lg { - // line-height: ensure even-numbered height of button next to large input - .button-size(@padding-large-vertical; @padding-large-horizontal; @font-size-large; @line-height-large; @border-radius-large); -} -.btn-sm { - // line-height: ensure proper height of button next to small input - .button-size(@padding-small-vertical; @padding-small-horizontal; @font-size-small; @line-height-small; @border-radius-small); -} -.btn-xs { - .button-size(@padding-xs-vertical; @padding-xs-horizontal; @font-size-small; @line-height-small; @border-radius-small); -} - - -// Block button -// -------------------------------------------------- - -.btn-block { - display: block; - width: 100%; -} - -// Vertically space out multiple block buttons -.btn-block + .btn-block { - margin-top: 5px; -} - -// Specificity overrides -input[type="submit"], -input[type="reset"], -input[type="button"] { - &.btn-block { - width: 100%; - } -} diff -Nru ffmpeg-2.5/debian/missing-sources/bootstrap/less/carousel.less ffmpeg-0.10.12/debian/missing-sources/bootstrap/less/carousel.less --- ffmpeg-2.5/debian/missing-sources/bootstrap/less/carousel.less 2014-09-15 15:02:53.000000000 +0000 +++ ffmpeg-0.10.12/debian/missing-sources/bootstrap/less/carousel.less 1970-01-01 00:00:00.000000000 +0000 @@ -1,243 +0,0 @@ -// -// Carousel -// -------------------------------------------------- - - -// Wrapper for the slide container and indicators -.carousel { - position: relative; -} - -.carousel-inner { - position: relative; - overflow: hidden; - width: 100%; - - > .item { - display: none; - position: relative; - .transition(.6s ease-in-out left); - - // Account for jankitude on images - > img, - > a > img { - &:extend(.img-responsive); - line-height: 1; - } - } - - > .active, - > .next, - > .prev { - display: block; - } - - > .active { - left: 0; - } - - > .next, - > .prev { - position: absolute; - top: 0; - width: 100%; - } - - > .next { - left: 100%; - } - > .prev { - left: -100%; - } - > .next.left, - > .prev.right { - left: 0; - } - - > .active.left { - left: -100%; - } - > .active.right { - left: 100%; - } - -} - -// Left/right controls for nav -// --------------------------- - -.carousel-control { - position: absolute; - top: 0; - left: 0; - bottom: 0; - width: @carousel-control-width; - .opacity(@carousel-control-opacity); - font-size: @carousel-control-font-size; - color: @carousel-control-color; - text-align: center; - text-shadow: @carousel-text-shadow; - // We can't have this transition here because WebKit cancels the carousel - // animation if you trip this while in the middle of another animation. - - // Set gradients for backgrounds - &.left { - #gradient > .horizontal(@start-color: rgba(0,0,0,.5); @end-color: rgba(0,0,0,.0001)); - } - &.right { - left: auto; - right: 0; - #gradient > .horizontal(@start-color: rgba(0,0,0,.0001); @end-color: rgba(0,0,0,.5)); - } - - // Hover/focus state - &:hover, - &:focus { - outline: 0; - color: @carousel-control-color; - text-decoration: none; - .opacity(.9); - } - - // Toggles - .icon-prev, - .icon-next, - .glyphicon-chevron-left, - .glyphicon-chevron-right { - position: absolute; - top: 50%; - z-index: 5; - display: inline-block; - } - .icon-prev, - .glyphicon-chevron-left { - left: 50%; - margin-left: -10px; - } - .icon-next, - .glyphicon-chevron-right { - right: 50%; - margin-right: -10px; - } - .icon-prev, - .icon-next { - width: 20px; - height: 20px; - margin-top: -10px; - font-family: serif; - } - - - .icon-prev { - &:before { - content: '\2039';// SINGLE LEFT-POINTING ANGLE QUOTATION MARK (U+2039) - } - } - .icon-next { - &:before { - content: '\203a';// SINGLE RIGHT-POINTING ANGLE QUOTATION MARK (U+203A) - } - } -} - -// Optional indicator pips -// -// Add an unordered list with the following class and add a list item for each -// slide your carousel holds. - -.carousel-indicators { - position: absolute; - bottom: 10px; - left: 50%; - z-index: 15; - width: 60%; - margin-left: -30%; - padding-left: 0; - list-style: none; - text-align: center; - - li { - display: inline-block; - width: 10px; - height: 10px; - margin: 1px; - text-indent: -999px; - border: 1px solid @carousel-indicator-border-color; - border-radius: 10px; - cursor: pointer; - - // IE8-9 hack for event handling - // - // Internet Explorer 8-9 does not support clicks on elements without a set - // `background-color`. We cannot use `filter` since that's not viewed as a - // background color by the browser. Thus, a hack is needed. - // - // For IE8, we set solid black as it doesn't support `rgba()`. For IE9, we - // set alpha transparency for the best results possible. - background-color: #000 \9; // IE8 - background-color: rgba(0,0,0,0); // IE9 - } - .active { - margin: 0; - width: 12px; - height: 12px; - background-color: @carousel-indicator-active-bg; - } -} - -// Optional captions -// ----------------------------- -// Hidden by default for smaller viewports -.carousel-caption { - position: absolute; - left: 15%; - right: 15%; - bottom: 20px; - z-index: 10; - padding-top: 20px; - padding-bottom: 20px; - color: @carousel-caption-color; - text-align: center; - text-shadow: @carousel-text-shadow; - & .btn { - text-shadow: none; // No shadow for button elements in carousel-caption - } -} - - -// Scale up controls for tablets and up -@media screen and (min-width: @screen-sm-min) { - - // Scale up the controls a smidge - .carousel-control { - .glyphicon-chevron-left, - .glyphicon-chevron-right, - .icon-prev, - .icon-next { - width: 30px; - height: 30px; - margin-top: -15px; - font-size: 30px; - } - .glyphicon-chevron-left, - .icon-prev { - margin-left: -15px; - } - .glyphicon-chevron-right, - .icon-next { - margin-right: -15px; - } - } - - // Show and left align the captions - .carousel-caption { - left: 20%; - right: 20%; - padding-bottom: 30px; - } - - // Move up the indicators - .carousel-indicators { - bottom: 20px; - } -} diff -Nru ffmpeg-2.5/debian/missing-sources/bootstrap/less/close.less ffmpeg-0.10.12/debian/missing-sources/bootstrap/less/close.less --- ffmpeg-2.5/debian/missing-sources/bootstrap/less/close.less 2014-09-15 15:02:53.000000000 +0000 +++ ffmpeg-0.10.12/debian/missing-sources/bootstrap/less/close.less 1970-01-01 00:00:00.000000000 +0000 @@ -1,33 +0,0 @@ -// -// Close icons -// -------------------------------------------------- - - -.close { - float: right; - font-size: (@font-size-base * 1.5); - font-weight: @close-font-weight; - line-height: 1; - color: @close-color; - text-shadow: @close-text-shadow; - .opacity(.2); - - &:hover, - &:focus { - color: @close-color; - text-decoration: none; - cursor: pointer; - .opacity(.5); - } - - // Additional properties for button version - // iOS requires the button element instead of an anchor tag. - // If you want the anchor version, it requires `href="#"`. - button& { - padding: 0; - cursor: pointer; - background: transparent; - border: 0; - -webkit-appearance: none; - } -} diff -Nru ffmpeg-2.5/debian/missing-sources/bootstrap/less/code.less ffmpeg-0.10.12/debian/missing-sources/bootstrap/less/code.less --- ffmpeg-2.5/debian/missing-sources/bootstrap/less/code.less 2014-09-15 15:02:53.000000000 +0000 +++ ffmpeg-0.10.12/debian/missing-sources/bootstrap/less/code.less 1970-01-01 00:00:00.000000000 +0000 @@ -1,68 +0,0 @@ -// -// Code (inline and block) -// -------------------------------------------------- - - -// Inline and block code styles -code, -kbd, -pre, -samp { - font-family: @font-family-monospace; -} - -// Inline code -code { - padding: 2px 4px; - font-size: 90%; - color: @code-color; - background-color: @code-bg; - border-radius: @border-radius-base; -} - -// User input typically entered via keyboard -kbd { - padding: 2px 4px; - font-size: 90%; - color: @kbd-color; - background-color: @kbd-bg; - border-radius: @border-radius-small; - box-shadow: inset 0 -1px 0 rgba(0,0,0,.25); - - kbd { - padding: 0; - font-size: 100%; - box-shadow: none; - } -} - -// Blocks of code -pre { - display: block; - padding: ((@line-height-computed - 1) / 2); - margin: 0 0 (@line-height-computed / 2); - font-size: (@font-size-base - 1); // 14px to 13px - line-height: @line-height-base; - word-break: break-all; - word-wrap: break-word; - color: @pre-color; - background-color: @pre-bg; - border: 1px solid @pre-border-color; - border-radius: @border-radius-base; - - // Account for some code outputs that place code tags in pre tags - code { - padding: 0; - font-size: inherit; - color: inherit; - white-space: pre-wrap; - background-color: transparent; - border-radius: 0; - } -} - -// Enable scrollable blocks of code -.pre-scrollable { - max-height: @pre-scrollable-max-height; - overflow-y: scroll; -} diff -Nru ffmpeg-2.5/debian/missing-sources/bootstrap/less/component-animations.less ffmpeg-0.10.12/debian/missing-sources/bootstrap/less/component-animations.less --- ffmpeg-2.5/debian/missing-sources/bootstrap/less/component-animations.less 2014-09-15 15:02:53.000000000 +0000 +++ ffmpeg-0.10.12/debian/missing-sources/bootstrap/less/component-animations.less 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ -// -// Component animations -// -------------------------------------------------- - -// Heads up! -// -// We don't use the `.opacity()` mixin here since it causes a bug with text -// fields in IE7-8. Source: https://github.com/twbs/bootstrap/pull/3552. - -.fade { - opacity: 0; - .transition(opacity .15s linear); - &.in { - opacity: 1; - } -} - -.collapse { - display: none; - - &.in { display: block; } - tr&.in { display: table-row; } - tbody&.in { display: table-row-group; } -} - -.collapsing { - position: relative; - height: 0; - overflow: hidden; - .transition(height .35s ease); -} diff -Nru ffmpeg-2.5/debian/missing-sources/bootstrap/less/.csscomb.json ffmpeg-0.10.12/debian/missing-sources/bootstrap/less/.csscomb.json --- ffmpeg-2.5/debian/missing-sources/bootstrap/less/.csscomb.json 2014-09-15 15:02:53.000000000 +0000 +++ ffmpeg-0.10.12/debian/missing-sources/bootstrap/less/.csscomb.json 1970-01-01 00:00:00.000000000 +0000 @@ -1,297 +0,0 @@ -{ - "always-semicolon": true, - "block-indent": 2, - "colon-space": [0, 1], - "color-case": "lower", - "color-shorthand": true, - "combinator-space": true, - "element-case": "lower", - "eof-newline": true, - "leading-zero": false, - "remove-empty-rulesets": true, - "rule-indent": 2, - "stick-brace": " ", - "strip-spaces": true, - "unitless-zero": true, - "vendor-prefix-align": true, - "sort-order": [ - [ - "position", - "top", - "right", - "bottom", - "left", - "z-index", - "display", - "float", - "width", - "min-width", - "max-width", - "height", - "min-height", - "max-height", - "-webkit-box-sizing", - "-moz-box-sizing", - "box-sizing", - "-webkit-appearance", - "padding", - "padding-top", - "padding-right", - "padding-bottom", - "padding-left", - "margin", - "margin-top", - "margin-right", - "margin-bottom", - "margin-left", - "overflow", - "overflow-x", - "overflow-y", - "-webkit-overflow-scrolling", - "-ms-overflow-x", - "-ms-overflow-y", - "-ms-overflow-style", - "clip", - "clear", - "font", - "font-family", - "font-size", - "font-style", - "font-weight", - "font-variant", - "font-size-adjust", - "font-stretch", - "font-effect", - "font-emphasize", - "font-emphasize-position", - "font-emphasize-style", - "font-smooth", - "-webkit-hyphens", - "-moz-hyphens", - "hyphens", - "line-height", - "color", - "text-align", - "-webkit-text-align-last", - "-moz-text-align-last", - "-ms-text-align-last", - "text-align-last", - "text-emphasis", - "text-emphasis-color", - "text-emphasis-style", - "text-emphasis-position", - "text-decoration", - "text-indent", - "text-justify", - "text-outline", - "-ms-text-overflow", - "text-overflow", - "text-overflow-ellipsis", - "text-overflow-mode", - "text-shadow", - "text-transform", - "text-wrap", - "-webkit-text-size-adjust", - "-ms-text-size-adjust", - "letter-spacing", - "-ms-word-break", - "word-break", - "word-spacing", - "-ms-word-wrap", - "word-wrap", - "-moz-tab-size", - "-o-tab-size", - "tab-size", - "white-space", - "vertical-align", - "list-style", - "list-style-position", - "list-style-type", - "list-style-image", - "pointer-events", - "cursor", - "visibility", - "zoom", - "flex-direction", - "flex-order", - "flex-pack", - "flex-align", - "table-layout", - "empty-cells", - "caption-side", - "border-spacing", - "border-collapse", - "content", - "quotes", - "counter-reset", - "counter-increment", - "resize", - "-webkit-user-select", - "-moz-user-select", - "-ms-user-select", - "-o-user-select", - "user-select", - "nav-index", - "nav-up", - "nav-right", - "nav-down", - "nav-left", - "background", - "background-color", - "background-image", - "-ms-filter:\\'progid:DXImageTransform.Microsoft.gradient", - "filter:progid:DXImageTransform.Microsoft.gradient", - "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader", - "filter", - "background-repeat", - "background-attachment", - "background-position", - "background-position-x", - "background-position-y", - "-webkit-background-clip", - "-moz-background-clip", - "background-clip", - "background-origin", - "-webkit-background-size", - "-moz-background-size", - "-o-background-size", - "background-size", - "border", - "border-color", - "border-style", - "border-width", - "border-top", - "border-top-color", - "border-top-style", - "border-top-width", - "border-right", - "border-right-color", - "border-right-style", - "border-right-width", - "border-bottom", - "border-bottom-color", - "border-bottom-style", - "border-bottom-width", - "border-left", - "border-left-color", - "border-left-style", - "border-left-width", - "border-radius", - "border-top-left-radius", - "border-top-right-radius", - "border-bottom-right-radius", - "border-bottom-left-radius", - "-webkit-border-image", - "-moz-border-image", - "-o-border-image", - "border-image", - "-webkit-border-image-source", - "-moz-border-image-source", - "-o-border-image-source", - "border-image-source", - "-webkit-border-image-slice", - "-moz-border-image-slice", - "-o-border-image-slice", - "border-image-slice", - "-webkit-border-image-width", - "-moz-border-image-width", - "-o-border-image-width", - "border-image-width", - "-webkit-border-image-outset", - "-moz-border-image-outset", - "-o-border-image-outset", - "border-image-outset", - "-webkit-border-image-repeat", - "-moz-border-image-repeat", - "-o-border-image-repeat", - "border-image-repeat", - "outline", - "outline-width", - "outline-style", - "outline-color", - "outline-offset", - "-webkit-box-shadow", - "-moz-box-shadow", - "box-shadow", - "filter:progid:DXImageTransform.Microsoft.Alpha(Opacity", - "-ms-filter:\\'progid:DXImageTransform.Microsoft.Alpha", - "opacity", - "-ms-interpolation-mode", - "-webkit-transition", - "-moz-transition", - "-ms-transition", - "-o-transition", - "transition", - "-webkit-transition-delay", - "-moz-transition-delay", - "-ms-transition-delay", - "-o-transition-delay", - "transition-delay", - "-webkit-transition-timing-function", - "-moz-transition-timing-function", - "-ms-transition-timing-function", - "-o-transition-timing-function", - "transition-timing-function", - "-webkit-transition-duration", - "-moz-transition-duration", - "-ms-transition-duration", - "-o-transition-duration", - "transition-duration", - "-webkit-transition-property", - "-moz-transition-property", - "-ms-transition-property", - "-o-transition-property", - "transition-property", - "-webkit-transform", - "-moz-transform", - "-ms-transform", - "-o-transform", - "transform", - "-webkit-transform-origin", - "-moz-transform-origin", - "-ms-transform-origin", - "-o-transform-origin", - "transform-origin", - "-webkit-animation", - "-moz-animation", - "-ms-animation", - "-o-animation", - "animation", - "-webkit-animation-name", - "-moz-animation-name", - "-ms-animation-name", - "-o-animation-name", - "animation-name", - "-webkit-animation-duration", - "-moz-animation-duration", - "-ms-animation-duration", - "-o-animation-duration", - "animation-duration", - "-webkit-animation-play-state", - "-moz-animation-play-state", - "-ms-animation-play-state", - "-o-animation-play-state", - "animation-play-state", - "-webkit-animation-timing-function", - "-moz-animation-timing-function", - "-ms-animation-timing-function", - "-o-animation-timing-function", - "animation-timing-function", - "-webkit-animation-delay", - "-moz-animation-delay", - "-ms-animation-delay", - "-o-animation-delay", - "animation-delay", - "-webkit-animation-iteration-count", - "-moz-animation-iteration-count", - "-ms-animation-iteration-count", - "-o-animation-iteration-count", - "animation-iteration-count", - "-webkit-animation-direction", - "-moz-animation-direction", - "-ms-animation-direction", - "-o-animation-direction", - "animation-direction" - ] - ] -} diff -Nru ffmpeg-2.5/debian/missing-sources/bootstrap/less/.csslintrc ffmpeg-0.10.12/debian/missing-sources/bootstrap/less/.csslintrc --- ffmpeg-2.5/debian/missing-sources/bootstrap/less/.csslintrc 2014-09-15 15:02:53.000000000 +0000 +++ ffmpeg-0.10.12/debian/missing-sources/bootstrap/less/.csslintrc 1970-01-01 00:00:00.000000000 +0000 @@ -1,19 +0,0 @@ -{ - "adjoining-classes": false, - "box-sizing": false, - "box-model": false, - "compatible-vendor-prefixes": false, - "floats": false, - "font-sizes": false, - "gradients": false, - "important": false, - "known-properties": false, - "outline-none": false, - "qualified-headings": false, - "regex-selectors": false, - "shorthand": false, - "text-indent": false, - "unique-headings": false, - "universal-selector": false, - "unqualified-attributes": false -} diff -Nru ffmpeg-2.5/debian/missing-sources/bootstrap/less/dropdowns.less ffmpeg-0.10.12/debian/missing-sources/bootstrap/less/dropdowns.less --- ffmpeg-2.5/debian/missing-sources/bootstrap/less/dropdowns.less 2014-09-15 15:02:53.000000000 +0000 +++ ffmpeg-0.10.12/debian/missing-sources/bootstrap/less/dropdowns.less 1970-01-01 00:00:00.000000000 +0000 @@ -1,215 +0,0 @@ -// -// Dropdown menus -// -------------------------------------------------- - - -// Dropdown arrow/caret -.caret { - display: inline-block; - width: 0; - height: 0; - margin-left: 2px; - vertical-align: middle; - border-top: @caret-width-base solid; - border-right: @caret-width-base solid transparent; - border-left: @caret-width-base solid transparent; -} - -// The dropdown wrapper (div) -.dropdown { - position: relative; -} - -// Prevent the focus on the dropdown toggle when closing dropdowns -.dropdown-toggle:focus { - outline: 0; -} - -// The dropdown menu (ul) -.dropdown-menu { - position: absolute; - top: 100%; - left: 0; - z-index: @zindex-dropdown; - display: none; // none by default, but block on "open" of the menu - float: left; - min-width: 160px; - padding: 5px 0; - margin: 2px 0 0; // override default ul - list-style: none; - font-size: @font-size-base; - text-align: left; // Ensures proper alignment if parent has it changed (e.g., modal footer) - background-color: @dropdown-bg; - border: 1px solid @dropdown-fallback-border; // IE8 fallback - border: 1px solid @dropdown-border; - border-radius: @border-radius-base; - .box-shadow(0 6px 12px rgba(0,0,0,.175)); - background-clip: padding-box; - - // Aligns the dropdown menu to right - // - // Deprecated as of 3.1.0 in favor of `.dropdown-menu-[dir]` - &.pull-right { - right: 0; - left: auto; - } - - // Dividers (basically an hr) within the dropdown - .divider { - .nav-divider(@dropdown-divider-bg); - } - - // Links within the dropdown menu - > li > a { - display: block; - padding: 3px 20px; - clear: both; - font-weight: normal; - line-height: @line-height-base; - color: @dropdown-link-color; - white-space: nowrap; // prevent links from randomly breaking onto new lines - } -} - -// Hover/Focus state -.dropdown-menu > li > a { - &:hover, - &:focus { - text-decoration: none; - color: @dropdown-link-hover-color; - background-color: @dropdown-link-hover-bg; - } -} - -// Active state -.dropdown-menu > .active > a { - &, - &:hover, - &:focus { - color: @dropdown-link-active-color; - text-decoration: none; - outline: 0; - background-color: @dropdown-link-active-bg; - } -} - -// Disabled state -// -// Gray out text and ensure the hover/focus state remains gray - -.dropdown-menu > .disabled > a { - &, - &:hover, - &:focus { - color: @dropdown-link-disabled-color; - } -} -// Nuke hover/focus effects -.dropdown-menu > .disabled > a { - &:hover, - &:focus { - text-decoration: none; - background-color: transparent; - background-image: none; // Remove CSS gradient - .reset-filter(); - cursor: not-allowed; - } -} - -// Open state for the dropdown -.open { - // Show the menu - > .dropdown-menu { - display: block; - } - - // Remove the outline when :focus is triggered - > a { - outline: 0; - } -} - -// Menu positioning -// -// Add extra class to `.dropdown-menu` to flip the alignment of the dropdown -// menu with the parent. -.dropdown-menu-right { - left: auto; // Reset the default from `.dropdown-menu` - right: 0; -} -// With v3, we enabled auto-flipping if you have a dropdown within a right -// aligned nav component. To enable the undoing of that, we provide an override -// to restore the default dropdown menu alignment. -// -// This is only for left-aligning a dropdown menu within a `.navbar-right` or -// `.pull-right` nav component. -.dropdown-menu-left { - left: 0; - right: auto; -} - -// Dropdown section headers -.dropdown-header { - display: block; - padding: 3px 20px; - font-size: @font-size-small; - line-height: @line-height-base; - color: @dropdown-header-color; - white-space: nowrap; // as with > li > a -} - -// Backdrop to catch body clicks on mobile, etc. -.dropdown-backdrop { - position: fixed; - left: 0; - right: 0; - bottom: 0; - top: 0; - z-index: (@zindex-dropdown - 10); -} - -// Right aligned dropdowns -.pull-right > .dropdown-menu { - right: 0; - left: auto; -} - -// Allow for dropdowns to go bottom up (aka, dropup-menu) -// -// Just add .dropup after the standard .dropdown class and you're set, bro. -// TODO: abstract this so that the navbar fixed styles are not placed here? - -.dropup, -.navbar-fixed-bottom .dropdown { - // Reverse the caret - .caret { - border-top: 0; - border-bottom: @caret-width-base solid; - content: ""; - } - // Different positioning for bottom up menu - .dropdown-menu { - top: auto; - bottom: 100%; - margin-bottom: 1px; - } -} - - -// Component alignment -// -// Reiterate per navbar.less and the modified component alignment there. - -@media (min-width: @grid-float-breakpoint) { - .navbar-right { - .dropdown-menu { - .dropdown-menu-right(); - } - // Necessary for overrides of the default right aligned menu. - // Will remove come v4 in all likelihood. - .dropdown-menu-left { - .dropdown-menu-left(); - } - } -} - diff -Nru ffmpeg-2.5/debian/missing-sources/bootstrap/less/forms.less ffmpeg-0.10.12/debian/missing-sources/bootstrap/less/forms.less --- ffmpeg-2.5/debian/missing-sources/bootstrap/less/forms.less 2014-09-15 15:02:53.000000000 +0000 +++ ffmpeg-0.10.12/debian/missing-sources/bootstrap/less/forms.less 1970-01-01 00:00:00.000000000 +0000 @@ -1,540 +0,0 @@ -// -// Forms -// -------------------------------------------------- - - -// Normalize non-controls -// -// Restyle and baseline non-control form elements. - -fieldset { - padding: 0; - margin: 0; - border: 0; - // Chrome and Firefox set a `min-width: min-content;` on fieldsets, - // so we reset that to ensure it behaves more like a standard block element. - // See https://github.com/twbs/bootstrap/issues/12359. - min-width: 0; -} - -legend { - display: block; - width: 100%; - padding: 0; - margin-bottom: @line-height-computed; - font-size: (@font-size-base * 1.5); - line-height: inherit; - color: @legend-color; - border: 0; - border-bottom: 1px solid @legend-border-color; -} - -label { - display: inline-block; - max-width: 100%; // Force IE8 to wrap long content (see https://github.com/twbs/bootstrap/issues/13141) - margin-bottom: 5px; - font-weight: bold; -} - - -// Normalize form controls -// -// While most of our form styles require extra classes, some basic normalization -// is required to ensure optimum display with or without those classes to better -// address browser inconsistencies. - -// Override content-box in Normalize (* isn't specific enough) -input[type="search"] { - .box-sizing(border-box); -} - -// Position radios and checkboxes better -input[type="radio"], -input[type="checkbox"] { - margin: 4px 0 0; - margin-top: 1px \9; // IE8-9 - line-height: normal; -} - -// Set the height of file controls to match text inputs -input[type="file"] { - display: block; -} - -// Make range inputs behave like textual form controls -input[type="range"] { - display: block; - width: 100%; -} - -// Make multiple select elements height not fixed -select[multiple], -select[size] { - height: auto; -} - -// Focus for file, radio, and checkbox -input[type="file"]:focus, -input[type="radio"]:focus, -input[type="checkbox"]:focus { - .tab-focus(); -} - -// Adjust output element -output { - display: block; - padding-top: (@padding-base-vertical + 1); - font-size: @font-size-base; - line-height: @line-height-base; - color: @input-color; -} - - -// Common form controls -// -// Shared size and type resets for form controls. Apply `.form-control` to any -// of the following form controls: -// -// select -// textarea -// input[type="text"] -// input[type="password"] -// input[type="datetime"] -// input[type="datetime-local"] -// input[type="date"] -// input[type="month"] -// input[type="time"] -// input[type="week"] -// input[type="number"] -// input[type="email"] -// input[type="url"] -// input[type="search"] -// input[type="tel"] -// input[type="color"] - -.form-control { - display: block; - width: 100%; - height: @input-height-base; // Make inputs at least the height of their button counterpart (base line-height + padding + border) - padding: @padding-base-vertical @padding-base-horizontal; - font-size: @font-size-base; - line-height: @line-height-base; - color: @input-color; - background-color: @input-bg; - background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214 - border: 1px solid @input-border; - border-radius: @input-border-radius; - .box-shadow(inset 0 1px 1px rgba(0,0,0,.075)); - .transition(~"border-color ease-in-out .15s, box-shadow ease-in-out .15s"); - - // Customize the `:focus` state to imitate native WebKit styles. - .form-control-focus(); - - // Placeholder - .placeholder(); - - // Disabled and read-only inputs - // - // HTML5 says that controls under a fieldset > legend:first-child won't be - // disabled if the fieldset is disabled. Due to implementation difficulty, we - // don't honor that edge case; we style them as disabled anyway. - &[disabled], - &[readonly], - fieldset[disabled] & { - cursor: not-allowed; - background-color: @input-bg-disabled; - opacity: 1; // iOS fix for unreadable disabled content - } - - // Reset height for `textarea`s - textarea& { - height: auto; - } -} - - -// Search inputs in iOS -// -// This overrides the extra rounded corners on search inputs in iOS so that our -// `.form-control` class can properly style them. Note that this cannot simply -// be added to `.form-control` as it's not specific enough. For details, see -// https://github.com/twbs/bootstrap/issues/11586. - -input[type="search"] { - -webkit-appearance: none; -} - - -// Special styles for iOS temporal inputs -// -// In Mobile Safari, setting `display: block` on temporal inputs causes the -// text within the input to become vertically misaligned. -// As a workaround, we set a pixel line-height that matches the -// given height of the input. Since this fucks up everything else, we have to -// appropriately reset it for Internet Explorer and the size variations. - -input[type="date"], -input[type="time"], -input[type="datetime-local"], -input[type="month"] { - line-height: @input-height-base; - // IE8+ misaligns the text within date inputs, so we reset - line-height: @line-height-base ~"\0"; - - &.input-sm { - line-height: @input-height-small; - } - &.input-lg { - line-height: @input-height-large; - } -} - - -// Form groups -// -// Designed to help with the organization and spacing of vertical forms. For -// horizontal forms, use the predefined grid classes. - -.form-group { - margin-bottom: 15px; -} - - -// Checkboxes and radios -// -// Indent the labels to position radios/checkboxes as hanging controls. - -.radio, -.checkbox { - position: relative; - display: block; - min-height: @line-height-computed; // clear the floating input if there is no label text - margin-top: 10px; - margin-bottom: 10px; - - label { - padding-left: 20px; - margin-bottom: 0; - font-weight: normal; - cursor: pointer; - } -} -.radio input[type="radio"], -.radio-inline input[type="radio"], -.checkbox input[type="checkbox"], -.checkbox-inline input[type="checkbox"] { - position: absolute; - margin-left: -20px; - margin-top: 4px \9; -} - -.radio + .radio, -.checkbox + .checkbox { - margin-top: -5px; // Move up sibling radios or checkboxes for tighter spacing -} - -// Radios and checkboxes on same line -.radio-inline, -.checkbox-inline { - display: inline-block; - padding-left: 20px; - margin-bottom: 0; - vertical-align: middle; - font-weight: normal; - cursor: pointer; -} -.radio-inline + .radio-inline, -.checkbox-inline + .checkbox-inline { - margin-top: 0; - margin-left: 10px; // space out consecutive inline controls -} - -// Apply same disabled cursor tweak as for inputs -// Some special care is needed because