Compare commits

...

3835 Commits

Author SHA1 Message Date
Michael Niedermayer c0b47d1914 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  movenc: Don't write the 'wave' atom or its child 'enda' for lpcm audio.
  imc: some cosmetics
  rtmp: Pass the proper return code in rtmp_handshake
  rtmp: Check return codes of net IO operations

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-25 21:06:14 +02:00
Alex Converse ed7bdd8647 movenc: Don't write the 'wave' atom or its child 'enda' for lpcm audio.
It's left over from stsd v0. QuickTime 7 no longer writes 'wave' or 'enda'
when 'lpcm' is the audio tag.
2012-05-25 11:24:43 -07:00
Kostya Shishkov d073f122ea imc: some cosmetics 2012-05-25 20:18:02 +02:00
Michael Niedermayer e02e58fb1c libavfilter: export ff_default_query_formats()
Its needed for fate on shared versioned .so

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-25 18:54:01 +02:00
Michael Niedermayer 6bc485b86b release_notes: update
Note, if you want something mentioned in the release notes for 0.11
push it but be real quick ...

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-25 17:27:40 +02:00
Michael Niedermayer 5e50a5724b Revert "removing lowres support"
There have been multiple user complaints about loosing this feature
while its not clear the 3% speedloss claims where real or fabricated.
My own testing indicates no statistically significant speed difference
both with mpeg2 and mpeg4, and if at all the code with lowres support
is a tiny bit faster than without.

This reverts commit 92ef4be4ab, reversing
changes made to 2e07f42957.

Conflicts:

	cmdutils.c
	libavcodec/arm/vp8dsp_init_arm.c
	libavcodec/mpegvideo.c
	libavcodec/mpegvideo.h
	libavutil/arm/Makefile

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-25 13:40:12 +02:00
Michael Niedermayer f2c5383620 avdevice: bump soname due to lavf soname bump
avdevice is just a part of lavf and uses lavf API/ABI/structures

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-25 12:22:21 +02:00
Stefano Sabatini 171db366fd lavfi/pixdesctest: use AVPALETTE_SIZE macro 2012-05-25 11:16:40 +02:00
Stefano Sabatini e37bfc4925 lavfi/pixdesctest: fix SAME -> SAME memcpy
Fix pixdesctest output with pal8 input.

X-Cola-Count: +(10+i*PI)l
2012-05-25 11:04:34 +02:00
Stefano Sabatini ad12e9e8c0 lavfi/hflip: copy palette data in start_frame()
Fix trac ticket #1116.
2012-05-25 11:04:24 +02:00
Clément Bœsch b0b7a89b07 lavfi/aresample: print channel layouts and formats along with the rate. 2012-05-25 07:26:48 +02:00
Michael Bradshaw b0e1557fe7 Fixed warnings about int64 to int32 conversion
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-25 02:41:28 +02:00
Michael Niedermayer 65e63072f8 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  rtmp: Return a proper error code instead of -1
  rtmp: Check malloc calls
  rtmp: Check ff_rtmp_packet_create calls
  lavfi: add audio mix filter
  flvdec: Make sure sample_rate is set to the updated value
  tqi: Pass errors from the MB decoder

Conflicts:
	Changelog
	doc/filters.texi
	libavcodec/eatqi.c
	libavfilter/Makefile
	libavfilter/allfilters.c
	libavfilter/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-25 00:38:16 +02:00
Clément Bœsch ba4aa656ce doc/filters: move "aformat" before "amerge". 2012-05-24 23:55:32 +02:00
Clément Bœsch 42b2908d7b doc/filters: remove old aformat entry.
The new description is still available below.
2012-05-24 23:55:28 +02:00
Clément Bœsch 781fb46c56 lavfi/video: add avfilter.h include to fix make checkheaders. 2012-05-24 23:46:15 +02:00
Clément Bœsch d8e075b1a0 ffmpeg: use AUTO_INSERT_FILTER() for -async option. 2012-05-24 23:33:21 +02:00
Michael Niedermayer 2416cd4035 Changelog: update for 0.11
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-24 21:27:01 +02:00
Samuel Pitoiset 177bcc9593 rtmp: Pass the proper return code in rtmp_handshake
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-05-24 22:16:46 +03:00
Samuel Pitoiset bba287fdac rtmp: Check return codes of net IO operations
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-05-24 22:16:46 +03:00
Michael Niedermayer 4e84ab886b MAINTAINERS: update versions
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-24 21:15:01 +02:00
Michael Niedermayer 53285ced19 doc: remove ffmpeg-mt-authorship.txt from master (for upcoming 0.11)
This lists git history, which is better kept in the history itself
that is both ours as this file as well as the actual history of the
ffmpeg-mt project.
If someone thinks this is not ok, drop me a mail and ill put it back!

Also note this file was not carried in our previous release with noone
complaining

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-24 21:07:14 +02:00
Michael Niedermayer afe4d3bd54 ffplay: set base in dr1 allocation.
This matches the default non dr1 allocator

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-24 18:40:49 +02:00
Kyle 02cc66dd78 dshow: rename dshow.h to avoid conflict with system header of equal name
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-24 14:15:10 +02:00
Michael Niedermayer 2f6c5894f4 fate: update checksum after pal8 changes
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-24 14:15:10 +02:00
Carl Eugen Hoyos c0532f4bbc Build the aformat filter when ffmpeg is built. 2012-05-24 12:26:31 +02:00
Carl Eugen Hoyos 36d0f8c9db Do not disable ffmpeg with --disable-everything. 2012-05-24 08:14:48 +02:00
Carl Eugen Hoyos 001d9d5e93 Fix compilation with --disable-everything. 2012-05-24 08:08:31 +02:00
Michael Niedermayer d5802a59f7 lavfutils: fix copyright
git blame:
     77 Stefano Sabatini
      1 Michael Niedermayer

Initial commit:
commit 2f83681c79
Author: Stefano Sabatini <stefasab@gmail.com>
Date:   Sat Mar 10 14:01:28 2012 +0100

    lavfi: port libmpcodecs remove-logo filter

    The code is based on the remove-logo filter in MPlayer/libmpcodecs, by
    Robert Edele, relicensed to LGPL with consent of the author.

    Address trac issue #249.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-24 05:08:49 +02:00
Michael Niedermayer 7343727a8f lavfi/video: fix copyright
git blame:
    132 Stefano Sabatini
     77 Vitor Sessak
     49 Michael Niedermayer
     24 Anton Khirnov
     22 S.N. Hemanth Meenakshisundaram
     13 Bobby Bingham
      7 Luca Barbato
      2 Nicolas George
      2 Alex Converse
      1 Diego Elio Pettenò

Initial commit not traced as this file was split out.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-24 05:08:49 +02:00
Michael Niedermayer e92b48d40f drawutils: fix copyright
git blame:
    423 Nicolas George
     86 Stefano Sabatini
     19 Michael Niedermayer
      1 Reimar Döffinger

Initial commit:
commit bcfd9e821b
Author: Stefano Sabatini <stefano.sabatini-lala@poste.it>
Date:   Sun Feb 20 23:42:17 2011 +0100

    lavfi: add drawutils

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-24 05:08:49 +02:00
Michael Niedermayer cfb398bfc4 vf_fps: fix copyright
Only commit:
commit 54c5dd89e3
Author: Anton Khirnov <anton@khirnov.net>
Date:   Wed May 9 14:08:21 2012 +0200

    lavfi: Add fps filter.

    Partially based on a patch by Robert Nagy <ronag89@gmail.com>

also see [FFmpeg-devel] [PATCH 07/10] vf_fps: fix copyright

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-24 05:08:49 +02:00
Michael Niedermayer c836f28f33 vf_fps: license cleanup
The original patch was sent with FFmpeg in the license header.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-24 05:08:49 +02:00
Michael Niedermayer 81c23fec63 lavfi/buffer.c: fix copyright
git blame:
     75 Anton Khirnov
     72 Michael Niedermayer
     39 Stefano Sabatini
     23 S.N. Hemanth Meenakshisundaram
      9 Vitor Sessak
      6 Robert Nagy
      2 Diego Biurrun
      1 Andrey Utkin

Note:
commit ab165047a6
Author: Anton Khirnov <anton@khirnov.net>
Date:   Fri Apr 27 17:27:40 2012 +0200

    lavfi: add a function for copying properties from AVFilterBufferRef->AVFrame

    Based on a commit by Stefano Sabatini <stefano.sabatini-lala@poste.it>

commit 4a1ac8c43f
Author: Anton Khirnov <anton@khirnov.net>
Date:   Thu May 10 07:58:11 2012 +0200

    lavfi: move buffer management function to a separate file.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-24 05:08:49 +02:00
Michael Niedermayer 83995411f7 lavfi/avcodec.c: fix copyright
git blame:
     45 Stefano Sabatini
     23 Clément Bœsch
      4 Michael Niedermayer
      3 Robert Nagy
      3 Nicolas George
      2 Roger Pau Monné

Initial commit:
commit 566666caf3
Author: Stefano Sabatini <stefano.sabatini-lala@poste.it>
Date:   Sun May 1 14:47:05 2011 +0200

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-24 05:08:49 +02:00
Michael Niedermayer 20f991e0f6 asrc_anullsrc: fix copyright
git blame says:
    109 Stefano Sabatini
      7 Clément Bœsch
      2 Reimar Döffinger
      2 Michael Niedermayer
      1 Reinhard Tartler
      1 Mans Rullgard

Initial commit:
commit 1ee410f330
Author: Stefano Sabatini <stefano.sabatini-lala@poste.it>
Date:   Sat Sep 25 01:56:58 2010 +0000

    Add asrc_anullsrc - null audio source.

    Based on a patch by "S.N. Hemanth Meenakshisundaram" smeenaks!ucsd!edu.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-24 05:08:48 +02:00
Michael Niedermayer 77ba8af023 asink_anullsink: fix copyright
git blame says authors are:
     19 S.N. Hemanth Meenakshisundaram
      2 Reimar Döffinger

initial commit:
	commit f0a5543898
	Author: S.N. Hemanth Meenakshisundaram <smeenaks@ucsd.edu>
	Date:   Sat Sep 25 01:57:01 2010 +0000

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-24 05:08:48 +02:00
Michael Niedermayer 7ef5c80cb4 af_null: fix copyright
Authors according to blame are:
     16 S.N. Hemanth Meenakshisundaram
      4 Stefano Sabatini
      3 Anton Khirnov
      2 Reimar Döffinger

Initial commit was:
	commit 99046339fc
	Author: S.N. Hemanth Meenakshisundaram <smeenaks@ucsd.edu>
	Date:   Fri Aug 20 23:16:51 2010 +0000

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-24 05:08:48 +02:00
Stefano Sabatini fce30d8d73 lavfi: copy palette in start_frame()
Fix -vf copy with pal8 format.
2012-05-24 00:54:16 +02:00
Stefano Sabatini f2ee065638 lavu/pixfmt: move AVPALETTE_SIZE and _COUNT to pixfmt.h
Move AVPALETTE_SIZE and AVPALETTE_COUNT definition from
libavcodec/avcodec.h to libavutil/pixfmt.h.

The definition is more useful in libavutil, where it can be shared for
example by libavfilter and libswscale.
2012-05-24 00:42:31 +02:00
Samuel Pitoiset a4d3f3580b rtmp: Return a proper error code instead of -1
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-05-24 00:25:36 +03:00
Samuel Pitoiset 08e93f5b46 rtmp: Check malloc calls
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-05-24 00:25:35 +03:00
Samuel Pitoiset f645f1d6ea rtmp: Check ff_rtmp_packet_create calls
Check malloc calls used by ff_rtmp_packet_create, unify error
handling and pass on error codes.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-05-24 00:25:35 +03:00
Justin Ruggles c7448c182a lavfi: add audio mix filter 2012-05-23 16:37:34 -04:00
Michael Niedermayer d0ad91c258 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  os_support: Define SHUT_RD, SHUT_WR and SHUT_RDWR on OS/2
  http: Add support for reading http POST reply headers
  http: Add http_shutdown() for ending writing of posts
  tcp: Allow signalling end of reading/writing
  avio: Add a function for signalling end of reading/writing
  lavfi: fix comment, audio is supported now.
  lavfi: fix incorrect comment.
  lavfi: remove avfilter_null_* from public API on next bump.
  lavfi: remove avfilter_default_* from public API on next bump.
  lavfi: deprecate default config_props() callback and refactor avfilter_config_links()
  avfiltergraph: smarter sample format selection.
  avconv: rename transcode_audio/video to decode_audio/video.
  asyncts: reset delta to 0 when it's not used.
  x86: lavc: use %if HAVE_AVX guards around AVX functions in yasm code.
  dwt: return errors from ff_slice_buffer_init()

Conflicts:
	ffmpeg.c
	libavfilter/avfilter.c
	libavfilter/avfilter.h
	libavfilter/formats.c
	libavfilter/version.h
	libavfilter/vf_blackframe.c
	libavfilter/vf_drawtext.c
	libavfilter/vf_fade.c
	libavfilter/vf_format.c
	libavfilter/vf_showinfo.c
	libavfilter/video.c
	libavfilter/video.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-23 21:48:31 +02:00
Martin Storsjö 1e8561e369 flvdec: Make sure sample_rate is set to the updated value
The sample_rate variable is used for checks for audio format
changes at the end of the function.

This fixes cases where the sample rate was set from the codec
id by flv_set_audio_codec (as for nellymoser 8 kHz/16 kHz),
so the value set to last_sample_rate wasn't equal to sample_rate
at this point. This caused the demuxer otherwise reports a spurious
change to 5512 Hz and back to the correct one.

Updating channels in the same way is only done for consistency.
Currently, flv_set_audio_codec doesn't update that value.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-05-23 22:23:43 +03:00
Michael Niedermayer 90290a5150 tqi: Pass errors from the MB decoder
This silences some valgrind warnings.
CC: libav-stable@libav.org

Fixes second half of http://ffmpeg.org/trac/ffmpeg/ticket/794
Bug found by: Oana Stratulat

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Reinhard Tartler <siretart@tauware.de>
(cherry picked from commit f85334f58e)
2012-05-23 20:42:46 +02:00
Michael Niedermayer d0f78e77e1 avidec: simplify avi_read_idx1()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-23 19:49:25 +02:00
Michael Niedermayer 212f129fb8 avidec: discard 0 packets even for sample_size==0 NI
Fixes Ticket1332

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-23 19:04:23 +02:00
Michael Niedermayer 3cb83b225e xsubdec: print frame size when too small
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-23 19:04:23 +02:00
Michael Niedermayer 121d3875b6 lavf: print the invalid tb in avpriv_set_pts_info()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-23 19:04:23 +02:00
Carl Eugen Hoyos 5e268633d1 Do not leak extradata when encoding avui. 2012-05-23 16:48:40 +02:00
Carl Eugen Hoyos fb6c6b15d7 avuienc: Use field_order to determine if a stream is interlaced. 2012-05-23 16:36:53 +02:00
Carl Eugen Hoyos 7a0d00dc79 Fix compilation with --disable-everything --enable-demuxer=ogg (--disable-yasm). 2012-05-23 16:09:48 +02:00
Carl Eugen Hoyos 9ddc47227d Fix compilation with --disable-everything --enable-demuxer=flac (--disable-yasm). 2012-05-23 16:04:22 +02:00
Nicolas George 0da28d689c af_amerge: compute output timestamp.
Use the timestamps from the first input.
2012-05-23 14:56:51 +02:00
Nicolas George e6aee46760 af_amerge: set samples rate in query_formats. 2012-05-23 14:56:50 +02:00
Michael Niedermayer e15f1286e6 ffv1: fix decoder state_transition table
This fixes a regression with ffv1.1 coder=1 decoding

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-23 12:04:10 +02:00
Dave Yeo 3f9d6e4239 os_support: Define SHUT_RD, SHUT_WR and SHUT_RDWR on OS/2
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-05-23 10:38:14 +03:00
Michael Niedermayer 60c950ac08 dwt: use av_freep()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-22 23:58:46 +02:00
Michael Niedermayer ea5dab58e0 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  dwt: check malloc calls
  ppc: Drop unused header regs.h
  af_resample: remove an extra space in the log output
  Convert vector_fmul range of functions to YASM and add AVX versions
  lavfi: add an audio split filter
  lavfi: rename vf_split.c to split.c

Conflicts:
	doc/filters.texi
	libavcodec/ppc/regs.h
	libavfilter/Makefile
	libavfilter/allfilters.c
	libavfilter/f_split.c
	libavfilter/split.c
	libavfilter/version.h
	libavfilter/vf_split.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-22 23:42:17 +02:00
Samuel Pitoiset e5773d8bc3 http: Add support for reading http POST reply headers
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-05-22 23:16:46 +03:00
Samuel Pitoiset ba354a8cc0 http: Add http_shutdown() for ending writing of posts
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-05-22 23:16:44 +03:00
Samuel Pitoiset 4a9ca93556 tcp: Allow signalling end of reading/writing
tcp_shutdown() isn't needed at the moment, but is added for
consistency to explain how the function is supposed to be used.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-05-22 23:16:42 +03:00
Samuel Pitoiset 32d545e0a4 avio: Add a function for signalling end of reading/writing
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-05-22 23:16:41 +03:00
Anton Khirnov 0ce4a627c9 lavfi: fix comment, audio is supported now. 2012-05-22 21:37:44 +02:00
Anton Khirnov ce353a881f lavfi: fix incorrect comment.
poll_frame()/request_frame() are used for audio too.
2012-05-22 21:37:44 +02:00
Anton Khirnov c04c533f62 lavfi: remove avfilter_null_* from public API on next bump.
Those functions are only useful inside filters. It is better to not
support user filters until the API is more stable.
2012-05-22 21:36:23 +02:00
Anton Khirnov 43c7a01e98 lavfi: remove avfilter_default_* from public API on next bump.
Those functions are only useful inside filters. It is better to not
support user filters until the API is more stable.
2012-05-22 21:33:26 +02:00
Mina Nagy Zaki 88c3b87bd8 lavfi: deprecate default config_props() callback and refactor avfilter_config_links()
Link properties have to be checked after config_props() is called to
make sure everything is sane, so the default config_props() for output
links was redundant.

Remove now empty defaults.c

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-05-22 21:32:57 +02:00
Anton Khirnov ccefa89f39 avfiltergraph: smarter sample format selection. 2012-05-22 21:29:36 +02:00
Anton Khirnov 0629f6128e avconv: rename transcode_audio/video to decode_audio/video.
Those functions do only decoding now, encoding is run from
poll_filters().
2012-05-22 21:29:06 +02:00
Anton Khirnov f297dd3812 asyncts: reset delta to 0 when it's not used.
Fixes an invalid write.
2012-05-22 21:28:20 +02:00
Justin Ruggles 713548cbad x86: lavc: use %if HAVE_AVX guards around AVX functions in yasm code.
This is needed for older versions of yasm/nasm that do not support AVX.

Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-05-22 20:46:02 +02:00
Michael Niedermayer 841c1be57e swr: check return value of swr_inject_silence/drop_output.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-22 20:37:12 +02:00
Michael Niedermayer d9b92980c9 libvorbis: only store version string if bitexact is not set.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-22 20:37:12 +02:00
Michael Niedermayer a645049bd8 swr: check count argument of realloc_audio()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-22 20:37:12 +02:00
Carl Eugen Hoyos 50858a64bf Add Avid Meridien Uncompressed (AVUI) encoder. 2012-05-22 20:33:24 +02:00
Matthieu Bouron f452d6c34d mxfdec: fix frame height computation for mixed fields layout
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-22 15:04:59 +02:00
Robert Nagy 965b807278 vf_yadif: Fixed potential access violation on EOF.
The correct invariant is (cur != NULL -> next != NULL). Not the other way around.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-22 14:59:27 +02:00
Michael Niedermayer 1dd71e1cd5 rawdec: force timestamps from codec to be used
This fixes playback timing with at least m4v files

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-22 14:59:02 +02:00
Michael Niedermayer 035f6620ce mpeg4videoparser: support using timestamps from codec.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-22 14:59:02 +02:00
Michael Niedermayer a6b3471c44 avformat: add needs_parsing type to enable codec TS use.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-22 14:59:02 +02:00
Michael Niedermayer 696452e4c5 avcodec: add parser flag to indicate that codec TS are the only available and should be used
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-22 14:59:02 +02:00
Diego Biurrun cc7fac9970 dwt: return errors from ff_slice_buffer_init() 2012-05-22 14:01:56 +02:00
Paul B Mahol 672f8226bb shorten: fix lossy decoding
Closes #1299, #1300 and #1301.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-05-22 11:56:18 +00:00
Jordi Ortiz c89e428ed8 dwt: check malloc calls
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-05-22 13:27:06 +02:00
Diego Biurrun 3ea5429489 ppc: Drop unused header regs.h 2012-05-22 11:54:53 +02:00
Stefano Sabatini 27127ebe6c doc: add syntax.texi file 2012-05-22 00:39:53 +02:00
Justin Ruggles e0d8427dce af_resample: remove an extra space in the log output 2012-05-21 18:26:51 -04:00
Michael Niedermayer 938adb7abc Merge remote-tracking branch 'qatar/master'
* qatar/master:
  dwt: K&R prettyprinting cosmetics
  Remove libnut wrapper
  fate: change name of FATE samples location environment variable
  avformat: Add a flag to mark muxers that allow (non strict) monotone timestamps.
  http: Factorize the code by adding http_read_header()

Conflicts:
	configure
	doc/APIchanges
	doc/fate.texi
	libavcodec/dwt.c
	libavcodec/dwt.h
	libavformat/Makefile
	libavformat/avformat.h
	libavformat/libnut.c
	libavformat/matroskaenc.c
	libavformat/utils.c
	libavformat/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-21 23:53:39 +02:00
Kieran Kunhya 5ff01259a8 Convert vector_fmul range of functions to YASM and add AVX versions
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-05-21 17:13:05 -04:00
Michael Niedermayer faa2930f19 flvdec: reenable extradata passing code
This fixes passing junk in stream.
It should not have any user vissible effect.
We are discarding the new data in the decoder as no case is known
where it is needed but it causes problems if used.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-21 21:19:43 +02:00
Justin Ruggles afeb3590fc lavfi: add an audio split filter
Based on current version of the asplit filter in FFmpeg written by
Stefano Sabatini and others.
2012-05-21 14:49:52 -04:00
Justin Ruggles cc30080b3f lavfi: rename vf_split.c to split.c
This is in preparation for adding an audio split filter.
2012-05-21 14:49:52 -04:00
Michael Niedermayer a6f650af8d aac: fix SCE in stereo case, this is surprisingly actually needed
Fixes Ticket513

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-21 20:43:00 +02:00
Michael Niedermayer a3710f1ebb aacdec: print debug note when unexpected SCE/CPE is encountered
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-21 20:34:32 +02:00
Michael Niedermayer 3230590c5d libavcodec: fix side data split with 0 sized packets
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-21 20:34:32 +02:00
Michael Niedermayer a1bb0823a9 libavcodec: correct consumed bytes for decoders
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-21 20:34:32 +02:00
Michael Niedermayer 307562be98 mpeg4videodec: print more debug info for debug_pict_info
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-21 14:56:12 +02:00
Michael Niedermayer 8258697c49 ivi_common: skip null frames for all indeo variants
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-21 14:56:12 +02:00
Jordi Ortiz 13a867a63e dwt: K&R prettyprinting cosmetics
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-05-21 11:14:49 +02:00
Stefano Sabatini 6374ee72df ffprobe: remove ad-hoc behavior when nb_fmt_entries_to_show is 1
The special-case behavior may complicate parsing when the
-show_format_entry option is used programmatically in a script.

The option default=nk=1 achieves the same purpose, if the objective is to
skip printing the single field key.
2012-05-21 10:32:25 +02:00
Stefano Sabatini 3853e1d94e doc/ffprobe: document that ffprobe.xsd can be retrieved at a certain ffmpeg.org url
Address trac ticket #1265.
2012-05-21 10:32:08 +02:00
Diego Biurrun db9e00f469 Remove libnut wrapper
libnut is unmaintained and known to be buggy; native NUT code exists.
2012-05-21 08:51:50 +02:00
Diego Biurrun 9309bdfe2c fate: change name of FATE samples location environment variable
FATE_SAMPLES is now used directly by the Makefiles, which induces the test
system to run a test with the value of the environment variable as name.
Renaming the environment variable to LIBAV_SAMPLES avoids this problem.
2012-05-21 08:51:49 +02:00
James Zern e9cef89702 avformat: Add a flag to mark muxers that allow (non strict) monotone timestamps.
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-05-20 19:50:32 -04:00
Michael Niedermayer 349c62410b Merge remote-tracking branch 'qatar/master'
* qatar/master:
  indeo: Make ivi_calc_band_checksum() static, it is only used in one file.
  indeo: Drop unused debug function ivi_check_band().
  avcodec/utils: cast a function argument to shut up a compiler warning
  truemotion1: remove disabled code
  fix typo in comment
  fate: fix dependencies for non-SAMPLES avconv tests
  indeo: check for invalid motion vectors
  indeo: check that band output buffer exists
  indeo: clear allocated band buffers
  indeo: track tile macroblock size
  indeo: check custom Huffman tables for errors
  factor out common decoding code for Indeo 4 and Indeo 5
  mp3: fix start band index for block type 2 in 8kHz audio
  lavf: change some (de)muxer names to lowercase
  lavf: make output format matching case insensitive

Conflicts:
	libavcodec/indeo4.c
	libavcodec/indeo5.c
	libavcodec/ivi_common.c
	libavcodec/utils.c
	tests/fate/video.mak

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-20 22:58:04 +02:00
Matthieu Bouron 432fe9a38a ffmpeg: fix a crash with complex filters when pix_fmt is not specified
ffmpeg -i in.mxf -filter_complex "[0:0]fieldorder=tff" out.wav will
fail with an error message instead of crashing.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-20 19:36:00 +02:00
Michael Niedermayer 318e395764 ffmpeg: drop get_sync_ipts() and drop related special case for video
Idea found in a commit from Anton Khirnov
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-20 19:36:00 +02:00
Marton Balint b36a0a80fc lavf: also use codec aspect ratio in av_guess_sample_aspect_ratio
Use codec aspect ratio for frame aspect ratio if AVFrame is NULL.

Signed-off-by: Marton Balint <cus@passwd.hu>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-20 19:36:00 +02:00
Samuel Pitoiset 5d603f1b65 http: Factorize the code by adding http_read_header()
This function is used for reading http reply headers.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-05-20 20:20:50 +03:00
Nicolas George 4a5d18b6e2 vsrc_mandelbrot: use AV_OPT_TYPE_IMAGE_SIZE. 2012-05-20 18:24:20 +02:00
Nicolas George dc6a02de01 vsrc_life: use AV_OPT_TYPE_IMAGE_SIZE. 2012-05-20 18:24:20 +02:00
Nicolas George ca554fbc2f vsrc_cellauto: use AV_OPT_TYPE_IMAGE_SIZE. 2012-05-20 18:24:20 +02:00
Nicolas George 2987efe9ba vf_ass: use AV_OPT_TYPE_IMAGE_SIZE. 2012-05-20 18:24:20 +02:00
Nicolas George 5732f40e3f x11grab: use AV_OPT_TYPE_IMAGE_SIZE. 2012-05-20 18:24:20 +02:00
Nicolas George 3e63071115 v4l2: use AV_OPT_TYPE_IMAGE_SIZE. 2012-05-20 18:24:20 +02:00
Nicolas George 0ef4924db4 sdl: use AV_OPT_TYPE_IMAGE_SIZE. 2012-05-20 18:24:20 +02:00
Nicolas George 9bcd70aa23 bktr: use AV_OPT_TYPE_IMAGE_SIZE. 2012-05-20 18:24:20 +02:00
Nicolas George 16a44b41ab vsrc_testsrc: use AV_OPT_TYPE_IMAGE_SIZE. 2012-05-20 18:24:20 +02:00
Nicolas George 2ec3e5767e opt: add AV_OPT_TYPE_IMAGE_SIZE. 2012-05-20 18:24:20 +02:00
Jean First f7985f348f exr: fix header parsing
the header in the sample provided for ticket #1306 is not parsed correctly and thus
ffmpeg tries to decode the sample instead of abording the decoding.

I tested it with two other exr samples I have - one float, one half float - and
they still decode correctly.

Signed-off-by: Jean First <jeanfirst@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-20 16:39:08 +02:00
Michael Niedermayer 9225513242 vf_scale: support dynamically changing input parameters.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-20 16:39:03 +02:00
Michael Niedermayer 4b5ff9b63e ffplay: Use input picture parameters in input_request_frame().
Fixes Ticket122

Reviewed-by: Marton Balint <cus@passwd.hu>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-20 16:29:08 +02:00
Piotr Bandurski 4d18f4c15b id3v2: reject APICs with size of 0
fixes ticket #1324

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-20 16:29:08 +02:00
Piotr Bandurski cb7b0f3573 flicvideo: support 256-bytes extradata
sample:

http://www.datafilehost.com/download-ab1156a9.html

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-20 16:29:08 +02:00
Piotr Bandurski 718b90d4b9 aasc: support 16bpp
sample:

http://www.datafilehost.com/download-b881f3f6.html

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-20 16:29:07 +02:00
Michael Niedermayer cf9812d22b ffmpeg: move setting big_picture.pts up
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-20 16:29:07 +02:00
Stefano Sabatini cd945d2112 lavu/tree: perform minor fixes to av_tree_insert() documentation 2012-05-20 16:19:36 +02:00
Diego Biurrun 4f04f5cc8b indeo: Make ivi_calc_band_checksum() static, it is only used in one file. 2012-05-20 15:59:30 +02:00
Diego Biurrun 9ccbdc0aca indeo: Drop unused debug function ivi_check_band(). 2012-05-20 15:56:25 +02:00
Nicolas George 6adefeef45 buffersrc: cosmetic: reindent. 2012-05-20 15:41:58 +02:00
Diego Biurrun 0c517644b2 avcodec/utils: cast a function argument to shut up a compiler warning
libavcodec/utils.c:251: note: expected ‘const uint8_t *’ but argument is of type ‘const short int *’
2012-05-20 15:09:07 +02:00
Diego Biurrun 4466d0e84b truemotion1: remove disabled code 2012-05-20 15:04:43 +02:00
Kostya Shishkov f05b69a79f fix typo in comment 2012-05-20 14:15:14 +02:00
Mans Rullgard 4852cb37ce fate: fix dependencies for non-SAMPLES avconv tests
The encode/decode tests should all depend on avconv.  Since
avconv requires libavfilter, there is no need to enable those
tests selectively.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-05-20 12:54:31 +01:00
Nicolas George ea07063fd8 cmdutils: allow to specify a stream by its ID.
The stream can be specified as "#129" or "#0x81".
It is especially useful for VOBs dumped from a DVD,
where the language-id mapping is available externally
and the probing can find the streams in a random order.
2012-05-20 12:47:27 +02:00
Michael Niedermayer bf3dce6b59 ffmpeg: change AVFMT_RAWPICTURE pts to reduce diff to qatar
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-20 12:29:33 +02:00
Michael Niedermayer 13c254a216 ffmpeg: random cosmectics to reduce diff to qatar
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-20 12:24:49 +02:00
Michael Niedermayer 9ce3d03fc2 ffmpeg: cosmetics to reduce difference to qatar by 101 lines
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-20 12:12:13 +02:00
Michael Niedermayer 3ba90d9e97 ffmpeg: cosmetics to reduce difference to qatar by about 90 lines
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-20 12:12:13 +02:00
Michael Niedermayer c53326afad ffmpeg: move ost->frame_rate setting code before the filtergraph stuff
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-20 11:55:25 +02:00
Michael Niedermayer 953df5d962 ffmpeg: drop pkt_pts
Reduces diff to qatar by 9 lines
Should not change anything

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-20 11:40:05 +02:00
Michael Niedermayer ef7ac8e8ec ffmpeg: set the video filters timebase to the demuxers.
Inspired-by a change from Anton Khirnov
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-20 11:40:05 +02:00
Michael Niedermayer 3cf5591344 ffmpeg: reintroducing check_recording_time()
This reduces the difference to qatar by 27 lines
No functional change, the code should be unused

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-20 11:35:08 +02:00
Michael Niedermayer 8364cb9719 ffmpeg: fix uninitialized variable warning
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-20 11:35:08 +02:00
Kostya Shishkov cf61aaaca1 indeo: check for invalid motion vectors 2012-05-20 11:19:48 +02:00
Kostya Shishkov 9603738221 indeo: check that band output buffer exists 2012-05-20 11:19:48 +02:00
Kostya Shishkov 23ba1503f2 indeo: clear allocated band buffers 2012-05-20 11:19:48 +02:00
Kostya Shishkov a6e4ac40a6 indeo: track tile macroblock size 2012-05-20 11:19:48 +02:00
Kostya Shishkov fe7a37c36f indeo: check custom Huffman tables for errors 2012-05-20 11:19:47 +02:00
Kostya Shishkov aa372cf470 factor out common decoding code for Indeo 4 and Indeo 5 2012-05-20 11:19:30 +02:00
Kostya Shishkov b37d945dd4 mp3: fix start band index for block type 2 in 8kHz audio
In hybrid frames long window part ends at 36 samples for most of the cases
but at 72 for 8kHz case. For some reason decoder assumed it's 48 or even 36
samples, which caused wrong bitstream decoding for such blocks.

l3_25207.mpg from conformance suite demonstrates it the best.
2012-05-20 10:53:21 +02:00
Michael Niedermayer 31f3c94760 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  fate: fix dependencies on SAMPLES being set
  fate: remove unnecessary libavfilter dependency

Conflicts:
	ffmpeg.c
	tests/Makefile
	tests/fate/aac.mak
	tests/fate/audio.mak
	tests/fate/demux.mak
	tests/fate/ea.mak
	tests/fate/image.mak
	tests/fate/lossless-audio.mak
	tests/fate/lossless-video.mak
	tests/fate/microsoft.mak
	tests/fate/mpc.mak
	tests/fate/probe.mak
	tests/fate/qt.mak
	tests/fate/real.mak
	tests/fate/screen.mak
	tests/fate/video.mak
	tests/fate/voice.mak
	tests/fate/vqf.mak
	tests/ref/fate/idroq-video-encode
	tests/ref/fate/vc1-ism

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-20 10:21:52 +02:00
Michael Niedermayer d1384c00d4 swr: skip soft compensation when its disabled.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-19 22:42:32 +02:00
Michael Niedermayer c5371f775c mpegaudidec: 10l forgot buf_size
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-19 22:22:45 +02:00
Michael Niedermayer 43bc5cf9f4 mpegaudiodec: skip initial zeros.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-19 22:15:21 +02:00
Mans Rullgard 68aef0b481 lavf: change some (de)muxer names to lowercase
This is consistent with other format names.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-05-19 19:44:16 +01:00
Mans Rullgard 81ad97eeda lavf: make output format matching case insensitive
This is consistent with how input formats are matched.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-05-19 19:44:15 +01:00
Michael Niedermayer 040a796dab Merge commit '755cd4197d53946208e042f095b930dca18d9430'
* commit '755cd4197d53946208e042f095b930dca18d9430':
  mov: enable parsing for VC-1.
  lavfi: Add fps filter.
  lavfi: initialize pts to AV_NOPTS_VALUE when creating new buffer refs.
  avconv: add support for audio in complex filtergraphs.

Conflicts:
	ffmpeg.c
	libavfilter/version.h
	libavformat/mov.c
	tests/ref/fate/vc1-ism

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-19 20:31:24 +02:00
Carl Eugen Hoyos 612abe2773 Use a variable instead of a repeated calculation when decoding AVUI. 2012-05-19 20:07:28 +02:00
Carl Eugen Hoyos f1892348c2 avuidec.c: Fix indentation. 2012-05-19 20:07:28 +02:00
Carl Eugen Hoyos d9b2410f75 Simplify AVUI decoding, one skip value is enough. 2012-05-19 20:07:28 +02:00
Carl Eugen Hoyos 2596d7261d Fix interlaced AVUI decoding. 2012-05-19 20:07:28 +02:00
Michael Niedermayer 9d30a96aa1 ffmpeg: inject a aresample filter for -async
Based on similar code from anton

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-19 19:23:38 +02:00
Michael Niedermayer 21d8a80e30 af_aresample: use new swr API to pass and compensate PTS
This code is not only much more powerfull its also simpler

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-19 19:23:38 +02:00
Michael Niedermayer 087d09b6d5 af_aresample: allocate a larger buffer so accumulated data can be returned quicker
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-19 19:23:38 +02:00
Michael Niedermayer e17a039647 af_aresample: use extended_data
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-19 19:23:38 +02:00
Michael Niedermayer 72a242c998 swr: add swr_next_pts()
parameter descriptions partly reuse text from af_asyncts

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-19 19:23:37 +02:00
Michael Niedermayer f88f705abc swr: add swr_drop_output()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-19 19:23:37 +02:00
Michael Niedermayer 7a59964ba9 swr: add swr_inject_silence()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-19 19:23:37 +02:00
Michael Niedermayer 72872d0201 swr: Fix issue with injecting more data than can be used up in the next call.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-19 19:23:37 +02:00
Michael Niedermayer c5c355546d swr: add some asserts to resample()
These check that the internal and input buffers match in format

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-19 19:23:37 +02:00
Michael Niedermayer 75e25f8540 swr: add reversefill_audiodata()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-19 19:23:37 +02:00
Michael Niedermayer 5027e3daf7 swr: fix buf_set() so it works with input == output
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-19 19:23:37 +02:00
Michael Niedermayer bdbfd4569d swr: make literal 32 a named constant in realloc_audio()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-19 19:23:37 +02:00
Michael Niedermayer 186be49fd5 swr: fill_audio_data() support NULL
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-19 19:23:37 +02:00
Nicolas George 3d2515a8f3 f_split: fix output type.
The previous version checked the filter context name,
instead of checking the filter name.
The new version just uses the same type as the input.

Signed-off-by: Nicolas George <nicolas.george@normalesup.org>
2012-05-19 19:23:37 +02:00
Nicolas George 5ac9ef6493 avfilter: make AVFilterFormats compatible with libav.
The list goes back to being simple integers,
and avfilter_make_format64_list is fixed to work
with the correct structure directly.
2012-05-19 15:30:51 +02:00
Mans Rullgard 63dcd16d56 fate: fix dependencies on SAMPLES being set
This allows fate to run without errors with or without SAMPLES
being set.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-05-19 14:30:41 +01:00
Mans Rullgard 8ccc1c5975 fate: remove unnecessary libavfilter dependency
avconv now requires libavfilter so this dependency is redundant.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-05-19 14:25:00 +01:00
Stefano Sabatini 0e82d317eb lavfi: rename vf_split.c -> f_split.c
The file now contains both an audio and a video split filter.
2012-05-19 13:24:57 +02:00
Stefano Sabatini 150227e8ed lavfi/asplit: move asplit code to vf_split.c, and make it support N outputs
The move allows to share the init code already used by split.
2012-05-19 13:24:53 +02:00
Clément Bœsch e5fcf3646a lavf/id3v2: always strdup the value.
This simplifies the code but also fix a warning: ff_id3v1_genre_str
array contains const strings so do the string dup now instead of in
av_dict_set().
2012-05-19 12:29:30 +02:00
Clément Bœsch 6ad974ae1c lavf/id3v2: do not export empty fields.
This also avoids a memleak.
2012-05-19 12:29:30 +02:00
Clément Bœsch 4fd573970a doc/examples: make use of the parameter filters_descr parameter in init_filters(). 2012-05-19 12:29:05 +02:00
Clément Bœsch 0cc9ee5fab doc/examples: install them with the shared data. 2012-05-19 12:28:59 +02:00
Clément Bœsch e692b9d564 doc/examples: fix pts heuristic in filtering_video.
Note: the condition looked wrong in the first place ("if DTS is not
defined, then set PTS to that undefined value [...]").
2012-05-19 12:28:59 +02:00
Clément Bœsch 60ea6b0996 lavfi/buffersink: typo fix in a comment. 2012-05-19 12:28:59 +02:00
Clément Bœsch 5e82ec9b42 doc/examples: properly close input in metadata.
Avoid some memleaks.
2012-05-19 12:28:59 +02:00
Clément Bœsch 50df68fd50 doc/examples: print operation filename in decoding_encoding. 2012-05-19 12:28:59 +02:00
Clément Bœsch c6bbe3c2a7 doc/examples: add debug compilation flag. 2012-05-19 12:28:59 +02:00
Clément Bœsch 06e4b98382 build: remove non-existant examples rule. 2012-05-19 12:28:59 +02:00
Clément Bœsch 6c211085bb doc/examples: use system headers in decoding_encoding and muxing.
All the other examples already use the system installed headers.
2012-05-19 12:28:58 +02:00
Clément Bœsch 136ca0e5f8 doc/examples: remove explicit rules.
These rules are already in gmake builtins.
2012-05-19 12:28:58 +02:00
Clément Bœsch 7aedfeebfb doc/examples: add libavr to libraries to avoid link failures. 2012-05-19 12:28:48 +02:00
Clément Bœsch eb945ab484 ffmpeg: misc cosmetics.
Reduce diff against avconv, and change some doxycomments into normal
comments (no point in doxifying ffmpeg internal fields).
2012-05-19 12:05:05 +02:00
Nicolas George 00be2f5726 ffmpeg: adapt to the buffersrc API changes. 2012-05-19 10:59:52 +02:00
Nicolas George aa1246ea42 lavfi: unify src_buffer and buffersrc.
Most of the code is moved to buffersrc.c
to help Git see the similarities.

src_buffer.c still contains the obsolete compatibility functions.

The format change detection code was removed as it has been
implemented directly in ffmpeg.
It can easily be brought back from the history.
2012-05-19 10:59:52 +02:00
Nicolas George 7997fc49ef lavfi: remove stray reference to planar/packed. 2012-05-19 10:59:52 +02:00
Nicolas George 9567f410aa avfilter: move some fields in AVFilterLink.
It restores ABI compatibility with libav.

The fields that move were very recent or morally private.
2012-05-19 10:59:52 +02:00
Michael Niedermayer 31dfe20dd2 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  doc: Replace some @file tags by more suitable markup.
  fate: Set FUZZ factor of vorbis-13 test to 2.
  fate: Set FUZZ factor of (e)ac3-encode test to 3.
  fate: remove unused code from regressions-funcs.sh
  rtmp: Don't assume path points to a string of nonzero length
  avconv: fix behavior with -ss as an output option.

Conflicts:
	doc/platform.texi
	doc/protocols.texi
	ffmpeg.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-19 00:52:25 +02:00
Michael Niedermayer 48a40e09c4 ffmpeg: fix warning & bug for keep_pix_fmt
Found-by: ubitux
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-19 00:23:56 +02:00
Clément Bœsch 7f8bd16103 ffmpeg: remove unused variable i. 2012-05-18 23:40:59 +02:00
Clément Bœsch 9e2cee5770 ffmpeg: do not deprecate -vol and -map_channel.
These helpers are handy, just notice the user it is done using lavfi.
2012-05-18 23:40:03 +02:00
Clément Bœsch fa29ca5f55 ffmpeg: resurrect -map_channel. 2012-05-18 23:40:03 +02:00
Clément Bœsch 48f30595f5 pan: use ff_parse_channel_layout() instead of av_get_channel_layout().
This allow specifying hexadecimal channel layout, and also handle the
error printing internally.
2012-05-18 23:34:11 +02:00
Clément Bœsch 7c2bb79f3b lavu/error: fix make checkheaders.
The errors need to be defined before including functions depending on
them. See av_size_mult() for instance. stddef.h is included for the
prototype of av_sterror (use of size_t).
2012-05-18 23:34:11 +02:00
Clément Bœsch 1913989f56 build: add codec_names.h to SKIPHEADERS to fix make checkheaders. 2012-05-18 23:34:11 +02:00
Clément Bœsch 3dba3b265c lavc/vda: fix make checkheaders. 2012-05-18 23:34:11 +02:00
Clément Bœsch 08ad9f9a78 lavc/os2threads: fix make checkheaders. 2012-05-18 23:34:11 +02:00
Clément Bœsch b56f885a24 lavc/libutvideo: fix make checkheaders. 2012-05-18 23:34:11 +02:00
Clément Bœsch 5b70e28c6e lavc/libutvideo: protect header. 2012-05-18 23:34:11 +02:00
Clément Bœsch c8a7dd03f8 lavc/jacosub: fix make checkheaders. 2012-05-18 23:34:11 +02:00
Clément Bœsch 9ae47fbd9e lavc/dcaenc: fix make checkheaders. 2012-05-18 23:34:11 +02:00
Clément Bœsch 978c829431 lavc/g723.1: fix make checkheaders. 2012-05-18 23:34:11 +02:00
Clément Bœsch 02908a4bd0 lavc/g723: protect header. 2012-05-18 23:34:11 +02:00
Clément Bœsch 7b78cb3a70 lavc/g729postfilter: fix make checkheaders. 2012-05-18 23:34:11 +02:00
Clément Bœsch 1308fa42ad lavf/swf: fix make checkheaders. 2012-05-18 23:34:11 +02:00
Clément Bœsch 64ff8a7670 lavfi: rename all_channel_layouts.h to all_channel_layouts.inc.
all_channel_layouts.h is not a real header file and breaks make checkheaders.
2012-05-18 23:34:11 +02:00
Clément Bœsch f8f3deb731 lavfi/transform: fix make checkheaders. 2012-05-18 23:34:11 +02:00
Clément Bœsch cb9aed10f7 lavd/dshow: fix make checkheaders. 2012-05-18 23:34:11 +02:00
Clément Bœsch d1562d32cf lavd/dshow: protect header. 2012-05-18 23:34:11 +02:00
Michael Niedermayer 96ac8663de af_aresample: Consider the swresample delay during calculating timestamps.
The difference from this should be pretty small.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-18 23:03:27 +02:00
Michael Niedermayer 4def5d2b64 swr: add swr_get_delay() to find the exact delay the swresampler introduces.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-18 23:02:10 +02:00
Michael Niedermayer 6ba692f8a7 af_aresample: fix rounding that led to sample accumulation in the buffers.
This fixes a regression that apparently was missed when switching to the
in af resampler

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-18 22:57:02 +02:00
Anton Khirnov 39885a4bd7 avconv: reindent 2012-05-18 19:41:58 +02:00
Anton Khirnov 74b961db77 avconv: replace -vsync cfr code with the fps filter.
Invented timestamps for the h264 tests return to something resembling
sanity.

In the idroq-video-encode test when converting 25 fps -> 30 fps the
fifth frame gets duplicated instead of the sixth.
2012-05-18 19:38:40 +02:00
Anton Khirnov 755cd4197d mov: enable parsing for VC-1.
This makes lavf discard broken timestamps for non-B frames in
samples/isom/vc1-wmapro.ism.
2012-05-18 19:38:21 +02:00
Anton Khirnov 54c5dd89e3 lavfi: Add fps filter.
Partially based on a patch by Robert Nagy <ronag89@gmail.com>
2012-05-18 19:33:54 +02:00
Anton Khirnov 7b3b24a8ee lavfi: initialize pts to AV_NOPTS_VALUE when creating new buffer refs. 2012-05-18 19:29:39 +02:00
Anton Khirnov 0ad26cdf24 avconv: add support for audio in complex filtergraphs. 2012-05-18 19:27:00 +02:00
Diego Biurrun 90c9edba58 doc: Replace some @file tags by more suitable markup. 2012-05-18 16:08:41 +02:00
Diego Biurrun 1afc278994 fate: Set FUZZ factor of vorbis-13 test to 2.
This is necessary to account for different rounding done in the 3DNow!
Assembly optimizations.
2012-05-18 16:08:41 +02:00
Diego Biurrun 4cc8e15371 fate: Set FUZZ factor of (e)ac3-encode test to 3.
This is necessary to account for different rounding done in the 3DNow!
Assembly optimizations.
2012-05-18 16:08:40 +02:00
Nicolas George c0c2424f73 fate: ffprobe tests require SAMPLES. 2012-05-18 15:19:03 +02:00
Mans Rullgard ab5c38ec45 fate: remove unused code from regressions-funcs.sh
The only uses of the do_avconv_nomd5() function were removed in
85cf49f.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-05-18 14:00:36 +01:00
Michael Niedermayer ae1ab8265b Merge remote-tracking branch 'cus/stable'
* cus/stable:
  ffplay: put aspect ratio info to the VideoPicture struct
  ffplay: use AVFrame::width and height instead of using codec or filter settings
  ffplay: use stream sample_aspect_ratio if available in source frames
  ffplay: fix video_thread when no frame is returned in get_video_frame

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-18 04:45:18 +02:00
Michael Niedermayer db6ef054f5 af_aresample: 10l fix, wrong timebase for next_pts.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-18 04:45:08 +02:00
Stefano Sabatini 17d4233c9c lavfi/aevalsrc: reindent after the previous commit 2012-05-18 00:59:42 +02:00
Stefano Sabatini e1a8df70a2 lavfi/aevalsrc: add option channel_layout
Allow to explicitly specify the channel layout to select.
2012-05-18 00:58:41 +02:00
Stefano Sabatini cfde7395b1 lavfi/aevalsrc: remove limitation on the number of channels 2012-05-18 00:38:31 +02:00
Stefano Sabatini 47ef261288 lavu/parseutils: fix specification for av_parse_time() 2012-05-18 00:38:06 +02:00
Michael Niedermayer de2cfb744a Merge remote-tracking branch 'qatar/master'
* qatar/master:
  pcmenc: set correct bitrate value
  avprobe: don't print format entry name when only one was requested

Conflicts:
	ffprobe.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-17 23:45:00 +02:00
Michael Niedermayer 847943bc51 aresample: add code to flush the internal swr buffer.
Inspired-by code from af_resample.c written by Anton Khirnov

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-17 22:45:05 +02:00
Michael Niedermayer b3e1b95afa aresample: check return code of swr_convert()
Issue found by comparing af_resample.c and af_aresample.c

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-17 22:44:28 +02:00
Martin Storsjö 4b7304e80d rtmp: Don't assume path points to a string of nonzero length
If using the new -rtmp_app and -rtmp_playpath parameters,
one can in many cases set the main url to just rtmp://server/.
If the trailing slash is omitted, path is a string of zero length,
and using path+1 will end up reading uninitialized data.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-05-17 21:16:52 +03:00
Anton Khirnov 01e98b1b00 avconv: fix behavior with -ss as an output option.
Don't return from poll_filters() immediately, there may be other frames
and/or other streams to handle.

Fixes a memleak.
2012-05-17 19:37:58 +02:00
Clément Bœsch a99a3b1bb3 ffmpeg: automatically insert volume filter when -vol is used.
Deprecate -vol.

Inspired by asyncts auto-insert patch from Anton Khirnov.
2012-05-17 17:37:18 +02:00
Michael Niedermayer 22a3a5ee0c ffmpeg: use av_buffersrc_add_frame() for audio too
fixes a memleak

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-17 17:19:35 +02:00
Michael Niedermayer dc2e051c4f Merge branch 'audio-filters' of https://github.com/ubitux/FFmpeg
* 'audio-filters' of https://github.com/ubitux/FFmpeg:
  lavfi/pan: add supported sample rates to avoid a crash.
  ffmpeg: do not warn when expecting EOF from lavfi.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-17 16:55:01 +02:00
Michael Niedermayer b13d39bd81 av_aresample: Allow changing sample format and channel layout as well
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-17 16:46:15 +02:00
Michael Niedermayer a0493be10e swresample: set the default parameters to "none"
this way it can easily be detected when parameters have not been set

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-17 16:46:15 +02:00
Clément Bœsch 5dbd66395a lavfi/pan: add supported sample rates to avoid a crash. 2012-05-17 16:31:54 +02:00
Clément Bœsch 1bca73cf18 ffmpeg: do not warn when expecting EOF from lavfi. 2012-05-17 16:28:19 +02:00
Michael Niedermayer 7d12109542 ffmpeg: fix ;;
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-17 16:12:26 +02:00
Michael Niedermayer 3ae64dc48f avfiltergraph: use aresample not aconvert in the alternative merge code.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-17 13:11:13 +02:00
Michael Niedermayer e3c6b61263 af_aresample: support all swresample parameters.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-17 13:10:14 +02:00
Michael Niedermayer 47c2e52bc6 af_aresample: fix typo in query formats
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-17 13:09:39 +02:00
Michael Niedermayer ac87c273a6 src_buffer: propagate errors from copy_buffer_ref()
Fixes a null ptr deref

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-17 04:48:05 +02:00
Michael Niedermayer 3c0013213e ffmpeg: move audio timestamp roundup code.
This fixes a regression which lead to non monotone timestamps
at the end of a file.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-17 04:07:16 +02:00
Mans Rullgard 7d7b40f48a pcmenc: set correct bitrate value
This fixes a bogus bitrate value in the header of WAV files with
alaw/ulaw audio.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-05-17 02:34:57 +01:00
Anton Khirnov fc49f22c3b ffmpeg: add support for audio filters.
Some of the FATE changes are due to off-by-one different rounding being used
(lrintf vs av_rescale_q).
Some fate changes are due to 1 audio frame less being encoded (the new variant seems
matching what qatar does and according to ffprobe its closer to the requested duration)
the mapchan feature sadly is lost in this commit because it depends on resampling
being done in ffmpeg.c which is now moved completely into the av filter layer
-async is broken after this commit, this will be fixed in subsequent commits
the new filter reconfiguration system is flawed and will drop a frame on each
parameter change which is why the nelly moser checksums need updating.

Conflicts:

	ffmpeg.c
	tests/ref/fate/smjpeg
2012-05-17 03:29:21 +02:00
Michael Niedermayer dfa988ee5e libavfilter: src_buffer: add time_base for audio
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-17 02:55:57 +02:00
Michael Niedermayer aa69db3abf libavfilter: src_buffer: fix planar audio
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-17 02:55:57 +02:00
Michael Niedermayer 664f0aac62 libavfilter: src_buffer, use only aresample, not aconvert.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-17 02:55:57 +02:00
Michael Niedermayer 13fdb35535 src_buffer: fix query_formats_audio()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-17 02:55:57 +02:00
Michael Niedermayer 3448404a70 libavfilter: add ff_parse_time_base()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-17 02:55:57 +02:00
Michael Niedermayer 6579bc439b ffmpeg: allow switching to qatars buffersrc API
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-17 00:10:47 +02:00
Michael Niedermayer 3e2cf79e15 buffersrc: export forgotten function
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-16 23:13:44 +02:00
Michael Niedermayer 703e920bb7 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  fate: Work around non-standard wc implementations at more places
  fate: work around non-standard wc implementations
  x86: rv40: Mark rv40_weight functions as MMX2; they use MMX2 instructions.
  ac3dsp: simplify x86 versions of ac3_max_msb_abs_int16
  fate: use standard diff options
  tta: Fix comment about channel number; TTA supports >2 channels.
  avfilter: Move ff_get_ref_perms_string() to where it is used.
  build: Add 'check' target to run all compile and test targets.
  indeo3: validate new frame size before resetting decoder
  indeo3: when freeing buffers, set pointers referencing them to NULL as well
  indeo3: initialise pixel planes on allocation
  indeo3: ensure that decoded cell data is in 7-bit range as presumed by decoder
  fate: rename psx-str-v3-mdec to mdec-v3
  fate: convert psx-str to a demuxer test
  lavf: add mdec to is_intra_only() list

Conflicts:
	doc/developer.texi
	libavcodec/indeo3.c
	libavfilter/video.c
	libavformat/utils.c
	tests/fate/demux.mak
	tests/fate/video.mak
	tests/lavf-regression.sh
	tests/ref/vsynth1/cljr
	tests/ref/vsynth1/ffvhuff
	tests/ref/vsynth2/cljr
	tests/ref/vsynth2/ffvhuff

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-16 22:32:05 +02:00
Piotr Bandurski 4d37877632 aasc: support "Autodesk 24 bit RLE compressor" (FourCC: aas4)
fixes ticket #1310

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-16 22:15:59 +02:00
Anton Khirnov d894752387 avprobe: don't print format entry name when only one was requested
This is easier to parse with automated tools.
2012-05-16 18:35:05 +02:00
Stefano Sabatini e556121ec1 lavfi/aevalsrc: correct the supported sample format
The source supports *planar* double, fix regression introduced by me in
4d4098da.
2012-05-16 16:17:41 +02:00
Stefano Sabatini 986d2f6ec0 lavfi/aevalsrc: fix sample rate negotiation, after the last merge
Fix crash.
2012-05-16 15:28:43 +02:00
Martin Storsjö 6ce51a9b39 fate: Work around non-standard wc implementations at more places
This applies the same fix as in ed7409fe9d for lavf-regressions.sh.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-05-16 14:48:58 +03:00
Stefano Sabatini e109e392ba ffprobe: remove unused variable i in probe_file()
Fix warning:
ffprobe.c: In function ‘probe_file’:
ffprobe.c:1576:14: warning: unused variable ‘i’ [-Wunused-variable]
2012-05-16 13:20:21 +02:00
Stefano Sabatini 4d4098da00 lavfi: drop planar/packed negotiation support
The planar/packed switch and the packing_formats list is no longer
required, since the planar/packed information is now stored in the sample
format enum.

This is technically a major API break, possibly it should be not too
painful as we marked the audio filtering API as unstable.
2012-05-16 13:16:05 +02:00
Carl Eugen Hoyos 183596fa08 Support more Avid Meridien / AVUI samples.
Fixes ticket #1288.
2012-05-16 08:29:56 +02:00
Mans Rullgard ed7409fe9d fate: work around non-standard wc implementations
On some systems, the wc command prints spaces before the first
number causing mismatches with the test references.  Using the
output of wc as arguments to echo removes any extra whitespace.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-05-16 03:04:53 +01:00
Michael Niedermayer 88d5cfe7c8 avfiltergraph: switch to swresample by default
all known bugs in the interface code have been fixed

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-16 03:54:37 +02:00
Michael Niedermayer efdc895fbd lavfi: fix pts rescaling in the resampler
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-16 03:54:04 +02:00
Michael Niedermayer 75492cce8e lavfi: fix resample with differing formats
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-16 03:53:29 +02:00
Michael Bradshaw 1f3f7bd444 Add AVFMT_SEEK_TO_PTS to nut demuxer flags
Signed-off-by: Michael Bradshaw <mbradshaw@sorensonmedia.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-16 03:13:35 +02:00
Michael Bradshaw bb008f0ad1 Mention AVFMT_SEEK_TO_PTS in AVInputFormat flags docs
Signed-off-by: Michael Bradshaw <mbradshaw@sorensonmedia.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-16 03:12:45 +02:00
Piotr Bandurski e5e20a3d31 dv_profile: fix decoding of SoftLabDVCPRO codec (PAL mode)
fixes ticket #1307

Reviewed-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-16 03:10:16 +02:00
Michael Niedermayer 1cbf7fb434 Merge remote-tracking branch 'qatar/master'
* qatar/master: (26 commits)
  fate: use diff -b in oneline comparison
  Add missing version bumps and APIchanges/Changelog entries.
  lavfi: move buffer management function to a separate file.
  lavfi: move formats-related functions from default.c to formats.c
  lavfi: move video-related functions to a separate file.
  fate: make smjpeg a demux test
  fate: separate sierra-vmd audio and video tests
  fate: separate smacker audio and video tests
  libmp3lame: set supported channel layouts.
  avconv: automatically insert asyncts when -async is used.
  avconv: add support for audio filters.
  lavfi: add asyncts filter.
  lavfi: add aformat filter
  lavfi: add an audio buffer sink.
  lavfi: add an audio buffer source.
  buffersrc: add av_buffersrc_write_frame().
  buffersrc: fix invalid read in uninit if the fifo hasn't been allocated
  lavfi: rename vsrc_buffer.c to buffersrc.c
  avfiltergraph: reindent
  lavfi: add channel layout/sample rate negotiation.
  ...

Conflicts:
	Changelog
	doc/APIchanges
	doc/filters.texi
	ffmpeg.c
	ffprobe.c
	libavcodec/libmp3lame.c
	libavfilter/Makefile
	libavfilter/af_aformat.c
	libavfilter/allfilters.c
	libavfilter/avfilter.c
	libavfilter/avfilter.h
	libavfilter/avfiltergraph.c
	libavfilter/buffersrc.c
	libavfilter/defaults.c
	libavfilter/formats.c
	libavfilter/src_buffer.c
	libavfilter/version.h
	libavfilter/vf_yadif.c
	libavfilter/vsrc_buffer.c
	libavfilter/vsrc_buffer.h
	libavutil/avutil.h
	tests/fate/audio.mak
	tests/fate/demux.mak
	tests/fate/video.mak

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-16 02:27:31 +02:00
Clément Bœsch a48abf5e26 doc/filter_design: fix a few other typo. 2012-05-16 00:39:39 +02:00
Stefano Sabatini a28aa76ac8 doc/filtering_design: fix typo negociation -> negotiation 2012-05-16 00:41:39 +02:00
Michael Kostylev 6797d1948b x86: rv40: Mark rv40_weight functions as MMX2; they use MMX2 instructions. 2012-05-15 23:54:08 +02:00
Justin Ruggles 95a98ab3f0 ac3dsp: simplify x86 versions of ac3_max_msb_abs_int16
Simplifies the code by using cpuflags and a new macro.
Also fixes the invalid use of the MMX2 pshufw operation in the MMX-only
function.
2012-05-15 15:23:59 -04:00
Mans Rullgard 11e33402ca fate: use standard diff options
diff -w is not a standard option.  This fixes the reference files
to match what the tests actually output and switches to using the
standard diff -b which is sufficient to handle different line ending
styles.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-05-15 19:47:18 +01:00
Piotr Bandurski 6439ad495e Add SLDV FourCC for dvvideo. 2012-05-15 20:22:49 +02:00
Aneesh Dogra 46ea46357a tta: Fix comment about channel number; TTA supports >2 channels.
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-05-15 19:10:46 +02:00
Diego Biurrun 91791ac2ed avfilter: Move ff_get_ref_perms_string() to where it is used.
This fixes a compilation failure with -DDEBUG.
2012-05-15 19:10:46 +02:00
Diego Biurrun 4982e1ddfa build: Add 'check' target to run all compile and test targets. 2012-05-15 19:10:46 +02:00
Kostya Shishkov 6de226a2b8 indeo3: validate new frame size before resetting decoder 2012-05-15 19:05:39 +02:00
Kostya Shishkov bc00da2701 indeo3: when freeing buffers, set pointers referencing them to NULL as well 2012-05-15 19:05:39 +02:00
Kostya Shishkov 81064a8045 indeo3: initialise pixel planes on allocation
This prevents decoder from reading garbage from it in case of errors later.
2012-05-15 19:05:39 +02:00
Kostya Shishkov fc417db3f1 indeo3: ensure that decoded cell data is in 7-bit range as presumed by decoder 2012-05-15 19:05:39 +02:00
Michael Niedermayer 47aae2bc2e lavfi: switch to _alt functions
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-15 18:55:17 +02:00
Michael Niedermayer f8196759b4 fifo: add av_fifo_grow()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-15 18:08:32 +02:00
Mans Rullgard 6d042f7989 fate: rename psx-str-v3-mdec to mdec-v3
This name better reflects that it is v3 of mdec that is tested.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-05-15 15:49:56 +01:00
Mans Rullgard c68adc7b2f fate: convert psx-str to a demuxer test
While these codecs are covered elsewhere, the container is different
from the other psx-str file.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-05-15 15:49:56 +01:00
Mans Rullgard db465be45d lavf: add mdec to is_intra_only() list
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-05-15 15:49:56 +01:00
Mans Rullgard 0ff0af731c fate: use diff -b in oneline comparison
This is simpler and should take care of any problems with mixed
line ending styles.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-05-15 15:23:34 +01:00
Michael Niedermayer b9777797be mtv: make output endian independant
should fix fate-mtv test

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-15 11:16:34 +02:00
Carl Eugen Hoyos 86709ce3a9 Support NTSC forward dvcpro videos (PAL looks incorrect). 2012-05-15 08:09:48 +02:00
Carl Eugen Hoyos e013abed63 Read and write APRG mov atom to allow AVUI streamcopy. 2012-05-15 07:41:23 +02:00
Anton Khirnov d89eca507c Add missing version bumps and APIchanges/Changelog entries. 2012-05-15 06:57:31 +02:00
Anton Khirnov 4a1ac8c43f lavfi: move buffer management function to a separate file. 2012-05-15 06:53:22 +02:00
Anton Khirnov 4c64fed37c lavfi: move formats-related functions from default.c to formats.c
It's more convenient to have them all in one file.
2012-05-15 06:52:01 +02:00
Anton Khirnov c5432d3ca4 lavfi: move video-related functions to a separate file.
This is easier to follow than having them randomly scattered in
avfilter.c and defaults.c.
2012-05-15 06:51:23 +02:00
Michael Niedermayer c457a29ece ffprobe: add default_writer priv_size.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-15 03:53:53 +02:00
Michael Niedermayer dd20e7ede5 assdec: check that the alloc+init of the private data succeeded.
Fixes a part of Ticket1208

Found-by: John Villamil and Piotr Bandurski
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-15 02:31:52 +02:00
Michael Niedermayer 3938a0eeae audio_frame_queue: fix null ptr dereference
This happened when a frame was removed before any was added.
Fixes part of Ticket1208

Found-by: John Villamil, Piotr Bandurski and Carl Eugen Hoyos
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-15 02:31:28 +02:00
Mans Rullgard 7abf789975 fate: make smjpeg a demux test
These codecs are covered elsewhere so make this a pure demux test.
Also rename it accordingly.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-05-15 00:03:40 +01:00
Marton Balint 825ec16da9 ffplay: put aspect ratio info to the VideoPicture struct
Also use av_guess_sample_aspect_ratio for determining aspect ratio of the video
frame if not using avfilter.

Signed-off-by: Marton Balint <cus@passwd.hu>
2012-05-15 00:31:56 +02:00
Marton Balint 843509e264 ffplay: use AVFrame::width and height instead of using codec or filter settings
Codec values may not reflect the actual frame size, and it also enables us to
simplify code in the avfilter enabled and the avfilter disabled case.

Signed-off-by: Marton Balint <cus@passwd.hu>
2012-05-15 00:31:56 +02:00
Marton Balint 84087b243e ffplay: use stream sample_aspect_ratio if available in source frames
When we are using filter chains we have to set the aspect ratio of the source
to the best known value, we use the av_guess_sample_aspect_ratio function to
determine that.

Fixes ticket 1228.

Signed-off-by: Marton Balint <cus@passwd.hu>
2012-05-15 00:31:55 +02:00
Marton Balint 89080a0a5e ffplay: fix video_thread when no frame is returned in get_video_frame
Affects only ffplay build with avfilter disabled.

Signed-off-by: Marton Balint <cus@passwd.hu>
2012-05-15 00:31:55 +02:00
Matthieu Bouron 4c73b3b1e0 ffmpeg: affect computed filtered frame pts after filling frame from buffer
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-14 23:40:46 +02:00
Marton Balint 94a9ac1277 lavf: add av_guess_frame_sample_aspect_ratio function
Guesses the sample aspect ratio of a frame, based on both the stream and the
frame aspect ratio.

Since the frame aspect ratio is set by the codec but the stream aspect ratio
is set by the demuxer, these two may not be equal. This function tries to
return the value that you should use if you would like to display the frame.

Basic logic is to use the stream aspect ratio if it is set to something sane
otherwise use the frame aspect ratio. This way a container setting, which is
usually easy to modify can override the coded value in the frames.

Signed-off-by: Marton Balint <cus@passwd.hu>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-14 23:40:46 +02:00
Mans Rullgard b1c1d7dae7 fate: separate sierra-vmd audio and video tests
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-05-14 21:38:28 +01:00
Mans Rullgard 0b1c868508 fate: separate smacker audio and video tests
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-05-14 21:38:28 +01:00
Anton Khirnov e6694659fc libmp3lame: set supported channel layouts. 2012-05-14 21:36:11 +02:00
Anton Khirnov 6eeb9a0433 avconv: automatically insert asyncts when -async is used.
Deprecate -async.
2012-05-14 21:36:11 +02:00
Anton Khirnov 369cb092ec avconv: add support for audio filters.
The FATE changes are all off-by-one due to different rounding being used
(lrintf vs av_rescale_q).
2012-05-14 21:36:11 +02:00
Anton Khirnov 9f26421b0b lavfi: add asyncts filter. 2012-05-14 21:36:11 +02:00
Anton Khirnov fb604ae850 lavfi: add aformat filter
Based on a patch by Mina Nagy Zaki <mnzaki@gmail.com>
2012-05-14 21:36:11 +02:00
Anton Khirnov a2cd9be212 lavfi: add an audio buffer sink. 2012-05-14 21:36:11 +02:00
Anton Khirnov 4c66c40718 lavfi: add an audio buffer source. 2012-05-14 21:36:11 +02:00
Anton Khirnov 720c6b78d1 buffersrc: add av_buffersrc_write_frame().
It's the same as av_vsrc_buffer_add_frame(), except it doesn't take pts
or pixel_aspect parameters. Those are read from AVFrame.

Deprecate av_vsrc_buffer_add_frame().
2012-05-14 21:36:11 +02:00
Anton Khirnov 8b05e13df3 buffersrc: fix invalid read in uninit if the fifo hasn't been allocated 2012-05-14 21:36:10 +02:00
Anton Khirnov fad729fa50 lavfi: rename vsrc_buffer.c to buffersrc.c
Most of the code will be shared for both audio and video version.
2012-05-14 21:36:10 +02:00
Anton Khirnov fd127ede62 avfiltergraph: reindent 2012-05-14 21:36:10 +02:00
Anton Khirnov ff1f51a8aa lavfi: add channel layout/sample rate negotiation. 2012-05-14 21:36:10 +02:00
Anton Khirnov 5775a1832c lavfi: add types and functions for channel layout/samplerate negotiation 2012-05-14 21:36:10 +02:00
Robert Nagy 394a0267ab yadif: Flush filter on eof.
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-05-14 21:36:10 +02:00
Robert Nagy 7dd56d411e yadif: Improve pts accuracy.
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-05-14 21:36:10 +02:00
Nicolas George 9cf5bcded0 ffmpeg: accept + prefix to -pix_fmt option to disable automatic conversions. 2012-05-14 21:29:58 +02:00
Nicolas George 440af105f2 lavfi: add avfilter_graph_set_auto_convert(). 2012-05-14 21:29:58 +02:00
Mans Rullgard 7c6d240665 mtv: do not byteswap raw video in demuxer
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-05-14 20:26:39 +01:00
Michael Niedermayer 7e944159c6 Merge remote-tracking branch 'qatar/master'
* qatar/master: (25 commits)
  vcr1: Add vcr1_ prefixes to all static functions with generic names.
  vcr1: Fix return type of common_init to match the function pointer signature.
  vcr1enc: Replace obsolete get_bit_count by put_bits_count/flush_put_bits.
  motion-test: remove disabled code
  gxfenc: remove disabled half-implemented MJPEG tag
  x86: use more standard construct for setting ASM functions in FFT code
  fate: westwood-aud: disable decoding
  fate: caf: disable decoding
  fate: film-cvid: drop pcm audio and rename test
  fate: d-cinema-demux: drop unnecessary flags
  fate: split off dpcm-interplay from interplay-mve tests
  fate: rename funcom-iss to adpcm-ima-iss
  fate: rename cryo-apc to adpcm-ima-apc
  fate: rename adpcm-psx-str-v3 to adpcm-xa
  fate: split off adpcm-ms-mono test from dxa-feeble
  fate: split off adpcm-ima-ws test from vqa-cc
  fate: add adpcm-ima-smjpeg test
  fate: split off adpcm-ima-amv from amv test
  fate: separate bmv audio and video tests
  fate: separate delphine-cin audio and video tests
  ...

Conflicts:
	doc/platform.texi
	libavcodec/vcr1.c
	tests/fate/audio.mak
	tests/fate/demux.mak
	tests/fate/video.mak
	tests/ref/fate/ea-mad-pcm-planar
	tests/ref/fate/interplay-mve-16bit
	tests/ref/fate/interplay-mve-8bit
	tests/ref/fate/mtv
	tests/ref/fate/qtrle-1bit
	tests/ref/fate/qtrle-2bit
	tests/ref/fate/truemotion1-15
	tests/ref/fate/truemotion1-24
	tests/ref/fate/vqa-cc

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-14 20:17:24 +02:00
Nicolas George 281bde2789 udp: check for HAVE_PTHREAD_CANCEL instead of HAVE_PTHREADS.
Some environments, for example Android, pretend to have pthreads
but actually have only a partial implementation.
2012-05-14 19:32:43 +02:00
Nicolas George 83f954e859 configure: check for pthread_cancel. 2012-05-14 19:32:43 +02:00
Clément Bœsch b545b947dd ffprobe: replace fast_asprintf() with bprint utils.
Also remove the unused print_fmt_opt() in the process.
2012-05-14 19:11:39 +02:00
Clément Bœsch 9548deeea9 lavu/bprint: add av_bprint_reset(). 2012-05-14 19:11:39 +02:00
Nicolas George 7a44223319 lavfi: document filter design subtleties.
The details on reference ownership and permissions are missing.
2012-05-14 18:56:52 +02:00
Janne Grunau 31f2c0231f avprobe: free options at the end of main() 2012-05-14 18:37:20 +02:00
Janne Grunau 093c50a4f6 avprobe: close opened codecs after use
Fixes "memleak" on closing avprobe to make valgrind happy.
2012-05-14 18:37:20 +02:00
Michael Niedermayer 381cc4b1e6 update_initial_durations: use av_ts2str()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-14 17:51:05 +02:00
Michael Niedermayer c69b6649cf update_initial_durations: add some checks to ensure things match up.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-14 17:14:44 +02:00
Diego Biurrun 100c70b048 vcr1: Add vcr1_ prefixes to all static functions with generic names. 2012-05-14 16:19:16 +02:00
Diego Biurrun a761e5951c vcr1: Fix return type of common_init to match the function pointer signature.
libavcodec/vcr1.c:182: warning: initialization from incompatible pointer type
2012-05-14 16:19:16 +02:00
Diego Biurrun 55da88c5ab vcr1enc: Replace obsolete get_bit_count by put_bits_count/flush_put_bits. 2012-05-14 16:19:14 +02:00
Diego Biurrun 5aad8e80a7 motion-test: remove disabled code 2012-05-14 15:38:43 +02:00
Diego Biurrun 70be4dddc8 gxfenc: remove disabled half-implemented MJPEG tag 2012-05-14 15:38:42 +02:00
Vitor Sessak fcc456b829 x86: use more standard construct for setting ASM functions in FFT code
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-05-14 15:38:42 +02:00
Michael Niedermayer 6d49e819be ffmpeg: revert 492cc1
This restores correct block_align values in case of stream copy.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-14 15:15:11 +02:00
Michael Niedermayer 8443082db6 ogg: rewrite first timestamp reading code.
this is simpler and closer to how timestamps are found for seeking.

Fixes Ticket1186

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-14 14:15:34 +02:00
Michael Niedermayer 5931c754b8 ogg: in ogg_get_length() start from data_offset not 0.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-14 14:15:34 +02:00
Mans Rullgard 09a35f251a fate: westwood-aud: disable decoding
The codec (adpcm-ima-ws) is tested elsewhere.  Using framecrc output
provides more information than a single md5 if something goes wrong.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-05-14 13:06:05 +01:00
Mans Rullgard f70d91e268 fate: caf: disable decoding
This is intended as a demuxer test and the file contains pcm_s16be
audio which is tested elsewhere.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-05-14 13:05:30 +01:00
Mans Rullgard b809991a31 fate: film-cvid: drop pcm audio and rename test
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-05-14 13:05:07 +01:00
Mans Rullgard 0bbb330ee3 fate: d-cinema-demux: drop unnecessary flags
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-05-14 13:04:20 +01:00
Mans Rullgard cd7b82c5d1 fate: split off dpcm-interplay from interplay-mve tests
These two files use the same audio codec so only one test for
this is needed.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-05-14 13:02:02 +01:00
Mans Rullgard 838521e110 fate: rename funcom-iss to adpcm-ima-iss
This matches the name of the codec.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-05-14 13:01:01 +01:00
Mans Rullgard 9656b7f2ae fate: rename cryo-apc to adpcm-ima-apc
This matches the name of the tested codec.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-05-14 13:00:26 +01:00
Mans Rullgard 773459e757 fate: rename adpcm-psx-str-v3 to adpcm-xa
This matches the name of the codec tested.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-05-14 12:56:06 +01:00
Mans Rullgard 6a64ff74fe fate: split off adpcm-ms-mono test from dxa-feeble
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-05-14 12:55:47 +01:00
Mans Rullgard 95939bf565 fate: split off adpcm-ima-ws test from vqa-cc
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-05-14 12:55:33 +01:00
Mans Rullgard 88ae6178b1 fate: add adpcm-ima-smjpeg test
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-05-14 12:54:34 +01:00
Mans Rullgard cb0713fca2 fate: split off adpcm-ima-amv from amv test
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-05-14 12:53:46 +01:00
Mans Rullgard 35d88a86e3 fate: separate bmv audio and video tests
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-05-14 12:51:59 +01:00
Mans Rullgard bd7ac952b1 fate: separate delphine-cin audio and video tests
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-05-14 12:51:31 +01:00
Mans Rullgard f4d2b93be4 fate: truemotion1: disable audio
These tests include adpcm-ima-dk3 audio which is tested elsewhere.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-05-14 12:51:19 +01:00
Mans Rullgard 63322d8c89 fate: qtrle: disable audio in all tests
These files contain mace6 audio which is tested elsewhere.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-05-14 12:50:19 +01:00
Mans Rullgard 0c26380f4f fate: pcm-planar: disable video
This file has eamad video which is tested elsewhere.
Also rename the test to reflect this change.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-05-14 12:50:01 +01:00
Mans Rullgard 1c0e8b94ad fate: mtv: disable video decoding
This test contains raw rgb565le video.  Converting to rgb24 serves
no useful purpose here.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-05-14 12:49:42 +01:00
Diego Biurrun d19f3e9a2a doc: misc improvements for the Windows section
Fix some orthography, wording and grammar issues; update the SDL section
with more current instructions; simplify lib.exe example command line;
drop outdated comments about libnut.
2012-05-14 13:05:39 +02:00
Stefano Sabatini e73241ba89 doc/ffprobe: fix rendering of the timecode chapter in the man page 2012-05-14 12:59:51 +02:00
Stefano Sabatini 3946187d60 ffprobe: add "nokey" option to default writer
Help simplifying parsing in certain cases.
2012-05-14 12:59:51 +02:00
Stefano Sabatini f48f03a400 ffprobe: add "noprint_wrappers" option to default writer
The option is useful for simplifying parsing.

Also use the new option in fate, in order to fix the regression
introduced by the previous commit.
2012-05-14 12:59:51 +02:00
Stefano Sabatini 6cd06bd22c ffprobe: simplify/fix logic for the -show_format_entry option
Do not skip chapter header/footer printing, which breaks the parsing for
most writers.
2012-05-14 12:59:51 +02:00
Stefano Sabatini a0fd322195 ffprobe: remove unused print_format_entry() function
The function was introduced in 653d117c, but is not required.
2012-05-14 12:59:51 +02:00
Michael Niedermayer 4991cbafaf mpegvideo_enc: Fix chroma edge size
Fixes ticket1303

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-14 11:26:44 +02:00
Michael Niedermayer 04064e1c20 mpegts: fix handling of files smaller than 8kb
Fixes Ticket1094

Analyzed-by: mjs973
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-14 02:41:36 +02:00
Michael Niedermayer 0db047cd0f Merge remote-tracking branch 'qatar/master'
* qatar/master:
  doc: fix link to fate.libav.org

Conflicts:
	doc/fate.texi

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-14 01:53:11 +02:00
Michael Niedermayer 555e2921dd flac_parser: speedup fifo realloc
Fixes Ticket1121

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-14 01:42:51 +02:00
Clément Bœsch 5edd4fce40 lavf/utils: make use of av_ts2str() to print timestamps. 2012-05-13 22:38:31 +02:00
Michael Niedermayer a927641e7a libswresample-simd: Add ff_pack_6ch_float_to_int32_a_avx and ff_pack_6ch_float_to_int32_a_sse4
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-13 20:56:18 +02:00
Michael Niedermayer ca986a06ad libswresample-simd: add ff_pack_6ch_int32_to_float_a_avx and ff_pack_6ch_int32_to_float_a_sse4
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-13 20:53:30 +02:00
Michael Niedermayer c4047ad9e0 libswresample: make NOP_N macro less picky on its parameters
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-13 20:45:32 +02:00
Michael Niedermayer 57bc91c710 libswresample: Change FLOAT_TO_INT32_N to need 1 register less
same speed on sandy bridge

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-13 20:44:08 +02:00
Michael Niedermayer ecfdd125f1 libswresample-simd: rename 6ch pack to what it is
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-13 20:31:12 +02:00
Michael Niedermayer 429b964e25 libswresample-simd: make the converter registers parameters
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-13 20:30:13 +02:00
Michael Niedermayer b3915c4b70 libswresample: cosmetics
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-13 19:32:06 +02:00
Michael Niedermayer 24c0d1583c libswresample: unaligned AVX/SSE4 float and int32 6ch pack
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-13 19:31:59 +02:00
Justin Ruggles 6f67d9833b libswresample: Implement MMX, SSE4 and AVX 6ch float and int32 packing function.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-13 19:31:59 +02:00
Piotr Bandurski 6108e1be2f wmvenc: check if width is multiple of 2
The width of wmv1/2 video must be multiple of 2 or win32 codec will fail to decode it (WMP displays black screen).

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-13 19:30:32 +02:00
Clément Bœsch ca297513f0 lavf/mp3enc: support MPEG-2 and MPEG-2.5 sample rates when writing Xing header. 2012-05-13 16:49:17 +02:00
Carl Eugen Hoyos 1f2f031c2f Set bits_per_raw_sample when decoding libopenjpeg images.
Reviewed-by: Michael Bradshaw
2012-05-13 16:45:31 +02:00
Michael Niedermayer 1337c6cf15 mpeg1enc: dont use size extension.
the spec doesnt mention this extension for mpeg1

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-13 11:25:24 +02:00
Michael Niedermayer 038eb59b3a mpeg2dec: support slice_vertical_position_extension
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-13 11:24:46 +02:00
Michael Niedermayer 6b0a0dc555 mpeg2enc: check input dimensions
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-13 11:24:46 +02:00
Michael Niedermayer d5df0df848 mpeg1enc: check input dimensions
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-13 11:24:46 +02:00
Michael Niedermayer f153dfc9e4 h263enc: test that dimensions are a multiple of 4
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-13 11:24:46 +02:00
Diego Elio Pettenò 7b089b79e6 doc: fix link to fate.libav.org
Signed-off-by: Diego Elio Pettenò <flameeyes@flameeyes.eu>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2012-05-13 00:17:51 -07:00
Michael Niedermayer 1caf614bec Merge remote-tracking branch 'qatar/master'
* qatar/master:
  lavfi: autoinsert resample filter when necessary.
  lavfi: add lavr-based audio resampling filter.
  x86: vc1: drop MMX loop filter implementation, which uses MMX2 instructions.

Conflicts:
	configure
	doc/filters.texi
	libavcodec/x86/vc1dsp_mmx.c
	libavfilter/Makefile
	libavfilter/allfilters.c
	libavfilter/avfiltergraph.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-13 00:13:49 +02:00
Michael Niedermayer ad6f006081 avfilter: fix regression since addition of extended_data to audio
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-12 23:46:43 +02:00
Michael Niedermayer 70e9308dec ffmpeg: preserve bits_per_coded sample on stream copy.
Fixes Ticket1124

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-12 21:23:18 +02:00
Clément Bœsch be062de9d4 doc/examples: add libswresample in the libraries.
It is required for audio filtering.
2012-05-12 19:58:44 +02:00
Clément Bœsch 55e5f105d3 doc/examples: use buffersrc.h instead of deprecated asrc_abuffer.h. 2012-05-12 19:58:36 +02:00
Clément Bœsch 8c3c7dbbb9 doc/examples: add programs to .gitignore. 2012-05-12 19:58:33 +02:00
Michael Niedermayer 70f133fb54 h263enc: check w/h for validity
Fixes Ticket1063

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-12 18:49:34 +02:00
Anton Khirnov 012f04a277 lavfi: autoinsert resample filter when necessary. 2012-05-12 18:09:29 +02:00
Anton Khirnov d371e7b988 lavfi: add lavr-based audio resampling filter. 2012-05-12 18:09:28 +02:00
Clément Bœsch 9188294d30 doc/examples: fix typo. 2012-05-12 18:08:26 +02:00
Clément Bœsch 5b55c7f4e9 doc/examples: add -O2 in CFLAGS. 2012-05-12 17:59:41 +02:00
Clément Bœsch 072c2c08bf doc/examples: add missing math.h include in decoding/encoding example.
The header is required for the sin() function.
2012-05-12 17:59:41 +02:00
Clément Bœsch 2f197a20cf doc/examples: link decoding_encoding and muxing with math lib.
These two examples use the sin() function.
2012-05-12 17:59:41 +02:00
Clément Bœsch 9a19341e6e doc/examples: rename LDFLAGS to LDLIBS. 2012-05-12 17:59:41 +02:00
Clément Bœsch 4522df52aa lavfi: remove audio.h include from avfilter.h.
avfilter.h is a public header and the unexported audio.h header contains
only internal prototypes.
2012-05-12 17:59:41 +02:00
Michael Kostylev ea60dfe284 x86: vc1: drop MMX loop filter implementation, which uses MMX2 instructions. 2012-05-12 14:02:45 +02:00
Carl Eugen Hoyos db11fc5392 Fix flashsv2 encoder error message. 2012-05-12 13:11:56 +02:00
Michael Niedermayer 2a37ac042f flashsv2enc: fix division by zero
Fixes other half of Ticket1105

Found-by: ami_stuff
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-12 12:07:02 +02:00
Michael Niedermayer 40d8c89cb6 flashsvenc: fix image sizes below 192x192
Fixes half of Ticket1105

Found-by: ami_stuff
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-12 12:06:37 +02:00
Michael Niedermayer d04956344d tiffenc: fix out of array read
Fixes ticket1112

Found-by: ami_stuff
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-12 10:58:08 +02:00
Michael Niedermayer 3b5632479e snow: fix 32x32 encoding
Fixes ticket1083

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-12 03:36:17 +02:00
Michael Niedermayer 9eb99ab25b Merge remote-tracking branch 'qatar/master'
* qatar/master:
  fate: employ better names and add a convenient shorthand for vp6 tests
  arm/neon: dsputil: use correct size specifiers on vld1/vst1
  arm: dsputil: prettify some conditional instructions in put_pixels macros
  vqavideo: change x/y loop counters to the usual pattern
  avconv: use lrint() for rounding double timestamps

Conflicts:
	tests/ref/fate/vc1-ism

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-11 20:57:39 +02:00
Michael Niedermayer de1824e970 mpeg12: fix logic that prevents extradata from being parsed twice.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-11 18:46:56 +02:00
Michael Niedermayer e20f46481b mpeg12: print an error when there was a frame in extradata.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-11 18:46:56 +02:00
Carl Eugen Hoyos 6d376346eb Allow decoding of j2k images with bpp<8 and 8<bpp<16 with libopenjpeg.
Fixes one of several problems described in ticket #1279.
2012-05-11 17:50:28 +02:00
Michael Niedermayer 75a9479b39 lavf: extend the avi raw hack to mov
Fixes ticket1194

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-11 16:53:22 +02:00
Michael Niedermayer 30fc710556 lavf: print a matching tag in case of code tag validation failure
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-11 16:52:47 +02:00
Michael Niedermayer 44391f706b lavfutils: ff_load_image: Initialize context
should fix  ticket1264

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-11 15:07:26 +02:00
Michael Niedermayer 6bb35f4351 mpegtsenc: fix 10l typo, wrong stream
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-11 14:13:07 +02:00
Michael Niedermayer 3700f655c5 mpegtsenc: check max_delay in write_packet_internal().
Checking it during PES writing is too late.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-11 13:41:06 +02:00
Michael Niedermayer 9c409e568f mpegtsenc: fix delay type
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-11 13:40:40 +02:00
Diego Biurrun ec2dbec84d fate: employ better names and add a convenient shorthand for vp6 tests 2012-05-11 10:50:28 +02:00
Michael Niedermayer 940be96540 dcaenc: fix out of array read
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-11 03:33:59 +02:00
Michael Niedermayer 8616c44606 ffmpeg: fix deinterlace
Fixes ticket1295

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-11 02:45:34 +02:00
Mans Rullgard e54e6f25cf arm/neon: dsputil: use correct size specifiers on vld1/vst1
Change the size specifiers to match the actual element sizes
of the data.  This makes no practical difference with strict
alignment checking disabled (the default) other than somewhat
documenting the code.  With strict alignment checking on, it
avoids trapping the unaligned loads.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-05-10 22:56:37 +01:00
Mans Rullgard 2eba6898c9 arm: dsputil: prettify some conditional instructions in put_pixels macros
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-05-10 22:56:09 +01:00
Mans Rullgard c776531aef vqavideo: change x/y loop counters to the usual pattern
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-05-10 22:55:42 +01:00
Mans Rullgard 4f1500689d avconv: use lrint() for rounding double timestamps
Converting the double to float for lrintf() loses precision when
the value is not exactly representable as a single-precision float.
Apart from being inaccurate, this causes discrepancies in some
configurations due to differences in rounding.

Note that the changed timestamp in the vc1-ism test is a bogus,
made-up value.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-05-10 22:54:27 +01:00
Michael Niedermayer 015903294c Merge remote-tracking branch 'qatar/master'
* qatar/master: (25 commits)
  rv40dsp x86: MMX/MMX2/3DNow/SSE2/SSSE3 implementations of MC
  ape: Use unsigned integer maths
  arm: dsputil: fix overreads in put/avg_pixels functions
  h264: K&R formatting cosmetics for header files (part II/II)
  h264: K&R formatting cosmetics for header files (part I/II)
  rtmp: Implement check bandwidth notification.
  rtmp: Support 'rtmp_swfurl', an option which specifies the URL of the SWF player.
  rtmp: Support 'rtmp_flashver', an option which overrides the version of the Flash plugin.
  rtmp: Support 'rtmp_tcurl', an option which overrides the URL of the target stream.
  cmdutils: Add fallback case to switch in check_stream_specifier().
  sctp: be consistent with socket option level
  configure: Add _XOPEN_SOURCE=600 to Solaris preprocessor flags.
  vcr1enc: drop pointless empty encode_init() wrapper function
  vcr1: drop pointless write-only AVCodecContext member from VCR1Context
  vcr1: group encoder code together to save #ifdefs
  vcr1: cosmetics: K&R prettyprinting, typos, parentheses, dead code, comments
  mov: make one comment slightly more specific
  lavr: replace the SSE version of ff_conv_fltp_to_flt_6ch() with SSE4 and AVX
  lavfi: move audio-related functions to a separate file.
  lavfi: remove some audio-related function from public API.
  ...

Conflicts:
	cmdutils.c
	libavcodec/h264.h
	libavcodec/h264_mvpred.h
	libavcodec/vcr1.c
	libavfilter/avfilter.c
	libavfilter/avfilter.h
	libavfilter/defaults.c
	libavfilter/internal.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-10 23:30:42 +02:00
Michael Niedermayer 2a793ff2bf vf_lut: fix pointer type (const) warning
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-10 20:09:37 +02:00
Michael Niedermayer 98e409ecaa vf_idet: remove unused variables
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-10 20:07:23 +02:00
Michael Niedermayer 648dbae519 vf_idet: fix pointer type (const) warning
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-10 20:07:20 +02:00
Michael Niedermayer b7fe9c7a08 ffmpeg: fix pointer type (const) warning
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-10 20:03:29 +02:00
Michael Niedermayer 0ee32b9028 ffmpeg: remove unused variables
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-10 20:03:13 +02:00
Michael Niedermayer 36ab79488e ffmpeg: fix uninitialized variable warning
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-10 20:02:49 +02:00
Michael Niedermayer afcb67113d Revert "Remove libvorbis Vorbis decoding support. Our native decoder is complete"
Its useful to support the official decoder for comparission and debugging.

This reverts commit f9def9ccc6.

Conflicts:

	Changelog
	configure
	libavcodec/allcodecs.c
	libavcodec/libvorbis.c

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-10 19:24:32 +02:00
Michael Niedermayer 7c7c5b2415 avutil/log: allow av_log_set_callback (NULL)
Idea-by: Don Moir <donmoir@comcast.net>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-10 19:11:23 +02:00
Christophe Gisquet 110d0cdc9d rv40dsp x86: MMX/MMX2/3DNow/SSE2/SSSE3 implementations of MC
Code mostly inspired by vp8's MC, however:
- its MMX2 horizontal filter is worse because it can't take advantage of
  the coefficient redundancy
- that same coefficient redundancy allows better code for non-SSSE3 versions

Benchmark (rounded to tens of unit):
        V8x8  H8x8  2D8x8  V16x16  H16x16  2D16x16
C       445    358   985    1785    1559    3280
MMX*    219    271   478     714     929    1443
SSE2    131    158   294     425     515     892
SSSE3   120    122   248     387     390     763

End result is overall around a 15% speedup for SSSE3 version (on 6 sequences);
all loop filter functions now take around 55% of decoding time, while luma MC
dsp functions are around 6%, chroma ones are 1.3% and biweight around 2.3%.

Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-05-10 18:42:43 +02:00
Michael Niedermayer 8ea5df4fac lavc/utils: fix division by 0
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-10 17:36:49 +02:00
Michael Niedermayer 91e72e3514 omadec: Check geob datasize more completely
Fixes out of heap array read.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-10 17:22:27 +02:00
Christophe Gisquet 706b998cdc ape: Use unsigned integer maths
This involves a division that should be a shift.

Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-05-10 16:40:43 +02:00
Mans Rullgard cbc7d60afa arm: dsputil: fix overreads in put/avg_pixels functions
The vertically interpolating variants of these functions read
ahead one line to optimise the loop.  On the last line processed,
this might be outside the buffer.  Fix these invalid reads by
processing the last line outside the loop.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-05-10 14:39:34 +01:00
Diego Biurrun 1de53d006b h264: K&R formatting cosmetics for header files (part II/II) 2012-05-10 13:13:44 +02:00
Diego Biurrun be545b8a34 h264: K&R formatting cosmetics for header files (part I/II) 2012-05-10 13:02:47 +02:00
Samuel Pitoiset d55961fa82 rtmp: Implement check bandwidth notification.
According to the behaviour of librtmp, it is recommended to send this
message to the server after receiving the 'onBWDone' callback in order
to do bandwidth checking and improve compatibility with some servers.
2012-05-10 13:55:32 +03:00
Samuel Pitoiset 05945db9ce rtmp: Support 'rtmp_swfurl', an option which specifies the URL of the SWF player. 2012-05-10 13:55:31 +03:00
Samuel Pitoiset e64673e4f4 rtmp: Support 'rtmp_flashver', an option which overrides the version of the Flash plugin. 2012-05-10 13:55:30 +03:00
Samuel Pitoiset 55c9320e06 rtmp: Support 'rtmp_tcurl', an option which overrides the URL of the target stream.
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-05-10 13:55:26 +03:00
Michael Niedermayer eee89f691e cdg: fix pts
Fixes Ticket1226

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-10 04:17:03 +02:00
Michael Niedermayer 7610dee87b avfiltergraph: improve pick_format()
without this the recent changes to format/sink handling would cause a regression in fate

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-10 02:25:48 +02:00
Michael Niedermayer 61930bd0d7 Merge remote-tracking branch 'qatar/master'
* qatar/master: (27 commits)
  libxvid: Give more suitable names to libxvid-related files.
  libxvid: Separate libxvid encoder from libxvid rate control code.
  jpeglsdec: Remove write-only variable in ff_jpegls_decode_lse().
  fate: cosmetics: lowercase some comments
  fate: Give more consistent names to some RealVideo/RealAudio tests.
  lavfi: add avfilter_get_audio_buffer_ref_from_arrays().
  lavfi: add extended_data to AVFilterBuffer.
  lavc: check that extended_data is properly set in avcodec_encode_audio2().
  lavc: pad last audio frame with silence when needed.
  samplefmt: add a function for filling a buffer with silence.
  samplefmt: add a function for copying audio samples.
  lavr: do not try to copy to uninitialized output audio data.
  lavr: make avresample_read() with NULL output discard samples.
  fate: split idroq audio and video into separate tests
  fate: improve dependencies
  fate: add convenient shorthands for ea-vp6, libavcodec, libavutil tests
  fate: split some combined tests into separate audio and video tests
  fate: fix dependencies for probe tests
  mips: intreadwrite: fix inline asm for gcc 4.8
  mips: intreadwrite: remove unnecessary inline asm
  ...

Conflicts:
	cmdutils.h
	configure
	doc/APIchanges
	doc/filters.texi
	ffmpeg.c
	ffplay.c
	libavcodec/internal.h
	libavcodec/jpeglsdec.c
	libavcodec/libschroedingerdec.c
	libavcodec/libxvid.c
	libavcodec/libxvid_rc.c
	libavcodec/utils.c
	libavcodec/version.h
	libavfilter/avfilter.c
	libavfilter/avfilter.h
	libavfilter/buffersink.h
	tests/Makefile
	tests/fate/aac.mak
	tests/fate/audio.mak
	tests/fate/demux.mak
	tests/fate/ea.mak
	tests/fate/image.mak
	tests/fate/libavutil.mak
	tests/fate/lossless-audio.mak
	tests/fate/lossless-video.mak
	tests/fate/microsoft.mak
	tests/fate/qt.mak
	tests/fate/real.mak
	tests/fate/screen.mak
	tests/fate/video.mak
	tests/fate/voice.mak
	tests/fate/vqf.mak
	tests/ref/fate/ea-mad
	tests/ref/fate/ea-tqi

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-10 02:25:41 +02:00
Clément Bœsch 35894ebbf9 Add tools/ffeval to .gitignore. 2012-05-10 00:07:20 +02:00
Diego Biurrun 7cf78b3476 cmdutils: Add fallback case to switch in check_stream_specifier().
This fixes the warning:
cmdutils.c:897: warning: ‘type’ may be used uninitialized in this function
2012-05-10 00:01:45 +02:00
Sean McGovern ded69c5e21 sctp: be consistent with socket option level
Replace SOL_SCTP by the more portable IPPROTO_SCTP.

Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-05-10 00:01:45 +02:00
Sean McGovern 779222dbfe configure: Add _XOPEN_SOURCE=600 to Solaris preprocessor flags.
This is needed to expose some networking APIs.

Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-05-10 00:01:44 +02:00
Diego Biurrun 8ae1914327 vcr1enc: drop pointless empty encode_init() wrapper function 2012-05-09 23:47:37 +02:00
Diego Biurrun eeeefd5001 vcr1: drop pointless write-only AVCodecContext member from VCR1Context 2012-05-09 23:24:07 +02:00
Diego Biurrun 51c4d87093 vcr1: group encoder code together to save #ifdefs 2012-05-09 23:24:07 +02:00
Diego Biurrun db1e403cfb vcr1: cosmetics: K&R prettyprinting, typos, parentheses, dead code, comments 2012-05-09 23:24:06 +02:00
Diego Biurrun 59cbc4eee2 mov: make one comment slightly more specific 2012-05-09 23:12:37 +02:00
Justin Ruggles 5cc6d5244d lavr: replace the SSE version of ff_conv_fltp_to_flt_6ch() with SSE4 and AVX
The current SSE version is slower than the MMX version on Athlon64 and Sandy
Bridge, but the SSE4 and AVX versions are faster on Sandy Bridge.
2012-05-09 16:17:59 -04:00
Anton Khirnov 0b45334a58 lavfi: move audio-related functions to a separate file.
This is easier to follow than having them randomly scattered in
avfilter.c and defaults.c.
2012-05-09 20:32:49 +02:00
Anton Khirnov 472fb3bbfa lavfi: remove some audio-related function from public API.
Those functions are only useful inside filters. It is better to not
support user filters until the API is more stable.

This breaks audio filtering API and ABI in theory, but since it's
unusable right now this shouldn't be a problem.
2012-05-09 20:31:56 +02:00
Anton Khirnov f20ab492ac lavfi: change AVFilterLink.sample_rate from int64_t to int on next bump
There is no real reason for it to be 64bit, it's just a plain int in the
rest of Libav.
2012-05-09 20:31:26 +02:00
Anton Khirnov a6bdfc2a92 lavfi: change AVFilterBufferRefAudioProps.sample_rate from uint32_t to int
There's no reason for it to be explicitly 32 bits. It's declared as a
plain int in all other places in Libav.

This breaks audio filtering API and ABI in theory, but since it's
unusable right now this shouldn't be a problem.
2012-05-09 20:30:28 +02:00
Stefano Sabatini 7ef0adcc2e lavfi: simplify signature for avfilter_get_audio_buffer() and friends
The additional parameters are just complicating the function interface.

Assume that a requested samples buffer will *always* have the format
specified in the requested link.

This breaks audio filtering API and ABI in theory, but since it's
unusable right now this shouldn't be a problem.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-05-09 20:29:53 +02:00
Stefano Sabatini 6735534f19 lavfi: use avfilter_get_audio_buffer_ref_from_arrays() in avfilter_default_get_audio_buffer 2012-05-09 20:28:56 +02:00
Stefano Sabatini e727bca392 lavfi: cleanup avfilter_get_audio_buffer() and pals.
Remove AVFilterBufferRefAudioProps.size, and use nb_samples in its place
everywhere.
This is required as the size in the audio buffer may be aligned, so it
may not contain a well defined number of samples.

Also remove the useless planar parameter, which can be deduced from the
sample format.

This is technically an API and ABI break, but since the audio part of
lavfi is not usable now, this should not be a problem in practice.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-05-09 20:26:19 +02:00
Michael Niedermayer a54867121d ffmpeg: fix frame duration used for video sync.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-09 18:24:15 +02:00
Michael Niedermayer 1ca37e79d0 src_buffer: ifdef->if CONFIG_*
Reviewed-by: Stefano
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-09 18:24:15 +02:00
Diego Biurrun c8b4a3999b libxvid: Give more suitable names to libxvid-related files. 2012-05-09 18:18:05 +02:00
Diego Biurrun 5b432d66ce libxvid: Separate libxvid encoder from libxvid rate control code.
This allows compiling the Xvid rate control code without the encoder.
2012-05-09 18:18:05 +02:00
Diego Biurrun 727af82a84 jpeglsdec: Remove write-only variable in ff_jpegls_decode_lse().
libavcodec/jpeglsdec.c:54:9: warning: variable ‘len’ set but not used
2012-05-09 18:12:28 +02:00
Diego Biurrun 454b1f9b58 fate: cosmetics: lowercase some comments 2012-05-09 18:12:28 +02:00
Diego Biurrun 7ac4bde22a fate: Give more consistent names to some RealVideo/RealAudio tests. 2012-05-09 18:12:27 +02:00
Stefano Sabatini 1b8c9271bd lavfi: add avfilter_get_audio_buffer_ref_from_arrays().
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-05-09 17:51:13 +02:00
Anton Khirnov 9453c9e1de lavfi: add extended_data to AVFilterBuffer.
This is similar to what has previously been done in AVFrame to allow
dealing with more than 8 channels.
2012-05-09 17:47:53 +02:00
Anton Khirnov c22953b8a3 lavc: check that extended_data is properly set in avcodec_encode_audio2(). 2012-05-09 17:47:11 +02:00
Anton Khirnov a5117a2444 lavc: pad last audio frame with silence when needed. 2012-05-09 17:46:54 +02:00
Anton Khirnov 6d7f617700 samplefmt: add a function for filling a buffer with silence. 2012-05-09 17:44:56 +02:00
Anton Khirnov 142e740d1e samplefmt: add a function for copying audio samples. 2012-05-09 17:43:26 +02:00
Anton Khirnov 9684341346 lavr: do not try to copy to uninitialized output audio data.
This would happen at least when lavr is used as a fifo with no
conversion.
2012-05-09 17:38:23 +02:00
Anton Khirnov 0982b0a431 lavr: make avresample_read() with NULL output discard samples. 2012-05-09 17:37:47 +02:00
Mans Rullgard b1f9be5436 fate: split idroq audio and video into separate tests
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-05-09 14:13:34 +01:00
Mans Rullgard f7c2dca0d9 fate: improve dependencies
This makes only tests actually using avconv depend on it.
The remaining tests already depend on what they need.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-05-09 14:13:34 +01:00
Diego Biurrun 63e01c2f19 fate: add convenient shorthands for ea-vp6, libavcodec, libavutil tests
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-05-09 14:13:34 +01:00
Diego Biurrun f2a5586c64 fate: split some combined tests into separate audio and video tests
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-05-09 14:13:34 +01:00
Mans Rullgard d57b43df2e fate: fix dependencies for probe tests
Only the probe tests should depend on avprobe and these should
be enabled only if avprobe is configured.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-05-09 13:48:58 +01:00
Mans Rullgard 6766169c41 mips: intreadwrite: fix inline asm for gcc 4.8
Just like gcc 4.6 and later on ARM, gcc 4.8 on MIPS generates
inefficient code when a known-unaligned location is used as a
memory input operand.  This applies the same fix as has been
previously done to the ARM version of the code.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-05-09 13:45:22 +01:00
Mans Rullgard b82b49a5b7 mips: intreadwrite: remove unnecessary inline asm
GCC actually handles unaligned accesses correctly in all cases
except, absurdly, 32-bit loads on mips64.  The remaining asm is
thus not needed, and removing it results in better code.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-05-09 13:45:17 +01:00
Carl Eugen Hoyos eae77f4631 Fix lagarith YUY2 output. 2012-05-09 11:58:08 +02:00
Michael Niedermayer 2c83265290 error: Try to make av_strerror() closer to binary identical across platforms.
This should fix the parseutils fate test.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-09 11:26:11 +02:00
Anton Khirnov ac71230902 lavfi: add video buffer sink, and use it in avtools
Also add the public interface libavfilter/buffersink.h.

Based on a commit by Stefano Sabatini.
2012-05-09 08:59:37 +02:00
Anton Khirnov ab165047a6 lavfi: add a function for copying properties from AVFilterBufferRef->AVFrame
Based on a commit by Stefano Sabatini <stefano.sabatini-lala@poste.it>
2012-05-09 08:49:36 +02:00
Michael Niedermayer f8b536a786 parseutils: use strings instead of integers for error codes.
error values can differ between platforms.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-09 02:53:42 +02:00
Michael Niedermayer 9501b93241 parseutils: fix ;/, error
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-09 02:52:57 +02:00
Luca Barbato 5699884c2e sctp: Initial tcp-alike sctp support with streams
Signed-off-by: Jordi Ortiz <nenjordi@gmail.com>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2012-05-08 16:06:49 -07:00
Jordi Ortiz 38f06a1415 libschroedingerdec: Change AVPicture to AVFrame and use SchroTag to store pts
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2012-05-08 16:06:49 -07:00
Michael Niedermayer 66337bf9d5 qdm2: print error messages instead of just retunring failures
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-08 23:34:53 +02:00
Reimar Döffinger badb0c07d4 CSCD: must use reget_buffer.
Using release_buffer and get_buffer as currently might
not prefer the previous frame contents which the
decoder relies on.
This leads to horrible playback in players using direct
rendering like MPlayer.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-05-08 23:18:48 +02:00
Michael Niedermayer 1ebf6f941e g723_1: change to encode2()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-08 22:04:01 +02:00
Michael Niedermayer b4178a3f13 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  rtmp: Support 'rtmp_live', an option which specifies if the media is a live stream.
  av_samples_fill_array: Mark unmodified function argument as const.
  lagarith: add YUY2 decoding support
  Support decoding unaligned rgb24 lagarith.
  dv: Split profile handling code into a separate file.
  flvenc: use AVFormatContext, not AVCodecContext for logging.
  mov: Remove write-only variable in mov_read_chan().
  fate: Change the probe-format refs to match the final text format committed.
  fate: Add avprobe as a make dependency
  Add probe fate tests to test for regressions in detecting media types.
  fate: Add oneline comparison method
  qdm2: clip array indices returned by qdm2_get_vlc().
  avplay: properly close/reopen AVAudioResampleContext on channel layout change
  avcodec: do not needlessly set packet size to 0 in avcodec_encode_audio2()
  avcodec: for audio encoding, reset output packet when it is not valid
  avcodec: refactor avcodec_encode_audio2() to merge common branches
  avcodec: remove fallbacks for AVCodec.encode() in avcodec_encode_audio2()

Conflicts:
	ffplay.c
	libavcodec/Makefile
	libavcodec/dvdata.c
	libavcodec/dvdata.h
	libavcodec/qdm2.c
	libavcodec/utils.c
	libavformat/flvenc.c
	libavformat/mov.c
	tests/Makefile

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-08 22:02:59 +02:00
Michael Niedermayer b4b5848513 shorten: increase max_frame_size.
Fixes Ticket1250

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-08 20:18:53 +02:00
Michael Niedermayer 0261902dac doc/examples/Makefile: split lines up to make diffs that change them clearer
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-08 20:18:53 +02:00
Alex Converse 40f81769ae options_table: Add some missing #includes to fix "make checkheaders".
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-05-08 20:05:20 +02:00
Alex Converse 3607dc2b1a doc: Replace a stray reference to the old '-intra' flag. 2012-05-08 10:58:35 -07:00
Nicolas George 75e0324eab src_buffer: move code to avoid forward declarations. 2012-05-08 19:38:18 +02:00
Jordi Ortiz fcd0298c05 rtsp: Add content-type message header parsing
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2012-05-08 10:18:35 -07:00
Jean First f7f6aaf988 yuv4mpeg: support 9/10/16 bit pixel formats
Signed-off-by: Jean First <jeanfirst@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-08 16:53:03 +02:00
Michael Niedermayer e7117f1c10 aasc: use the correct reader offset
Fixes Ticket1232

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-08 16:53:03 +02:00
Samuel Pitoiset b2e495afa8 rtmp: Support 'rtmp_live', an option which specifies if the media is a live stream.
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-05-08 13:21:35 +03:00
Diego Biurrun ce473de921 av_samples_fill_array: Mark unmodified function argument as const.
libavcodec/utils.c:274: warning: passing argument 3 of ‘av_samples_fill_arrays’ discards qualifiers from pointer target type
./libavutil/samplefmt.h:151: note: expected ‘uint8_t *’ but argument is of type ‘const uint8_t *’
2012-05-08 11:35:49 +02:00
Carl Eugen Hoyos 541bfba85d Write palettised targa.
Fixes ticket #1190.

Reviewed-by: Paul B Mahol
2012-05-08 11:02:12 +02:00
Carl Eugen Hoyos 299d58e18a Support yuva422p rawvideo in nut. 2012-05-08 10:37:13 +02:00
Carl Eugen Hoyos 29fe6b3cbf Add yuva422p to yadif format list. 2012-05-08 10:36:47 +02:00
Carl Eugen Hoyos 4e4634aa16 Support yuva422p in ffv1. 2012-05-08 08:49:36 +02:00
Carl Eugen Hoyos 8ba543eb3b Add Avid Meridien (AVUI) decoder. 2012-05-08 08:41:26 +02:00
Carl Eugen Hoyos 143a5c55ff Add yuva422p pix_fmt. 2012-05-08 08:39:37 +02:00
Kostya Shishkov 464e9ab011 lagarith: add YUY2 decoding support
Unlike other variants, for YUY2 we need to use different prediction:
* on line 0 for luma we should left predict starting from the second pixel
* on line 1 we should left predict first 4 pixels for luma and 2 for chroma
* median prediction employed here is taken directly from HuffYUV
2012-05-08 07:24:31 +02:00
Carl Eugen Hoyos 58637a0b24 Support decoding unaligned rgb24 lagarith.
Signed-off-by: Kostya Shishkov <kostya.shishkov@gmail.com>
2012-05-08 07:23:44 +02:00
Michael Niedermayer 7da0a07283 mp3demux: fix id3 discard code
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-08 03:47:58 +02:00
Michael Niedermayer f46185c289 mp3demux: fix off by 1 error
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-08 03:45:17 +02:00
Michael Niedermayer 3183c38aaa mp3decoder: discard ID3 tags
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-08 03:13:37 +02:00
Michael Niedermayer 011004152f lavc/utils: change a few asserts to av_assert0()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-08 02:33:25 +02:00
Michael Niedermayer 36583d23bd audio_frame_que: simplify
Also update libav->ffmpeg as theres pretty much no code left from libav.
The new code is faster, requires fewer mallocs and less memory. Its
also half the number of lines of code.

This code is not 100% identical in behavior to the previous, but the
differences appear to be rather limitations of the previous design
than intended though i could be wrong of course.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-08 00:25:25 +02:00
Diego Biurrun 520c1ec699 dv: Split profile handling code into a separate file. 2012-05-07 23:59:49 +02:00
Michael Niedermayer 364c71c80e movenc: store codecs that dont provide a frame_size as audio_vbr=1
Fixes Ticket1240

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-07 23:35:05 +02:00
Michael Niedermayer 653d117c29 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  libschroedinger: Switch to function names more in line with Libav style.
  Move code shared between libdirac and libschroedinger to libschroedinger.
  lavfi: uninline avfilter_copy_buffer_ref_props().
  lavf: add missing '*' in a doxy.
  h264: Remove a commented-out function pointer typedef.
  txd: Remove write-only variable in txd_decode_frame().
  mmvideo.c: Remove unused variable in mm_decode_pal().
  build: cosmetics: Add missing end-of-line backslashes to item lists.
  build: cosmetics: Split HEADERS/OBJS/PROGS lists into one entry per line.
  libschroedinger: Move a function to avoid a forward declaration.
  pthread: warn on high thread counts
  vf_yadif: fix missing error handling for avfilter_poll_frame()
  avprobe: allow showing only one container/stream property.
  lavfi: support audio in avfilter_copy_frame_props().
  lavfi: avfilter_merge_formats: handle case where inputs are same
  lavc: add sample rate and channel layout to AVFrame.
  zerocodec: check if the previous frame is missing
  doc: clarify check for NULL pointer style

Conflicts:
	doc/APIchanges
	doc/developer.texi
	ffprobe.c
	libavcodec/Makefile
	libavcodec/avcodec.h
	libavcodec/libdirac_libschro.c
	libavcodec/libdirac_libschro.h
	libavcodec/mmvideo.c
	libavcodec/txd.c
	libavcodec/version.h
	libavcodec/zerocodec.c
	libavfilter/Makefile
	libavfilter/avfilter.c
	libavfilter/version.h
	libavformat/Makefile
	libavutil/Makefile

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-07 22:51:34 +02:00
Anton Khirnov 0a3ad7ff80 flvenc: use AVFormatContext, not AVCodecContext for logging.
Encoder tag being used for muxer messages is confusing.
2012-05-07 21:28:40 +02:00
Diego Biurrun 455245ca8a mov: Remove write-only variable in mov_read_chan().
libavformat/mov.c:597:25: warning: variable ‘cflags’ set but not used
2012-05-07 20:31:23 +02:00
Michael Niedermayer cb982739fa mpegvideo: double thread limit
16 seems a bit tight for current high end and expected near term future boxes.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-07 20:08:56 +02:00
Alex Converse fa8fc3b73a fate: Change the probe-format refs to match the final text format committed. 2012-05-07 11:01:38 -07:00
Alex Converse 6345209a7d fate: Add avprobe as a make dependency 2012-05-07 11:00:54 -07:00
Ronald S. Bultje 4bfa67bdad Add probe fate tests to test for regressions in detecting media types.
Signed-off-by: Alex Converse <alex.converse@gmail.com>
2012-05-07 10:14:51 -07:00
Mans Rullgard 40fa14f775 fate: Add oneline comparison method
Signed-off-by: Alex Converse <alex.converse@gmail.com>
2012-05-07 10:14:50 -07:00
Ronald S. Bultje 64953f67f9 qdm2: clip array indices returned by qdm2_get_vlc().
Prevents subsequent overreads when these numbers are used as indices
in arrays.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org

Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-05-07 13:08:36 -04:00
Ole Dittmann fff9680d8c aacdec: Add forgotten flush
See Ticket420

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-07 18:56:06 +02:00
Michael Niedermayer c6aa2c4b12 ffmpeg: print next_dts too on debug_ts
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-07 18:56:06 +02:00
Nick Brereton 8036a69e6b Decode XBR extension in first asset
Reviewed-by: Benjamin Larsson <benjamin@southpole.se>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-07 18:55:44 +02:00
Justin Ruggles 85e5b866dc avplay: properly close/reopen AVAudioResampleContext on channel layout change
fixes Bug#280
2012-05-07 12:42:32 -04:00
Justin Ruggles f132248028 avcodec: do not needlessly set packet size to 0 in avcodec_encode_audio2()
It is already set to 0 by av_free_packet()
2012-05-07 12:14:05 -04:00
Justin Ruggles 74e10b6204 avcodec: for audio encoding, reset output packet when it is not valid 2012-05-07 12:14:05 -04:00
Justin Ruggles fa0319b4fd avcodec: refactor avcodec_encode_audio2() to merge common branches 2012-05-07 12:14:05 -04:00
Justin Ruggles b461cd4deb avcodec: remove fallbacks for AVCodec.encode() in avcodec_encode_audio2()
We no longer have any audio encoders using AVCodec.encode().
2012-05-07 12:14:04 -04:00
Michael Niedermayer f14f3bae6b mp3enc: avoid ifdef
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-07 16:24:41 +02:00
Tobias Rapp 8da0a6cda1 mp3enc: Fix Xing tag identification string for CBR files
Fixes the Xing tag identification string to be "Info" for MP3 files with
constant bitrate. The previous "Xing" caused some decoders to recognize the
file as VBR.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-07 16:24:19 +02:00
Diego Biurrun fdc918632f libschroedinger: Switch to function names more in line with Libav style. 2012-05-07 14:31:59 +02:00
Diego Biurrun 9cef0669c4 Move code shared between libdirac and libschroedinger to libschroedinger.
This also involves making some function static and changing the name
prefixes of some functions and structures.
2012-05-07 14:31:59 +02:00
Anton Khirnov 8134fafe9b lavfi: uninline avfilter_copy_buffer_ref_props().
A nontrivial public function such as this should most certainly NOT be
inline.
2012-05-07 14:23:36 +02:00
Anton Khirnov 1432c1c429 lavf: add missing '*' in a doxy. 2012-05-07 14:22:42 +02:00
Diego Biurrun 10d2ea2604 h264: Remove a commented-out function pointer typedef. 2012-05-07 14:17:43 +02:00
Diego Biurrun ea14050642 txd: Remove write-only variable in txd_decode_frame().
libavcodec/txd.c:49:60: warning: variable ‘mipmap_count’ set but not used
2012-05-07 14:17:42 +02:00
Diego Biurrun 246b050f51 mmvideo.c: Remove unused variable in mm_decode_pal().
libavcodec/mmvideo.c:87:9: warning: variable ‘i’ set but not used
2012-05-07 14:17:41 +02:00
Diego Biurrun dbe6ba55a3 build: cosmetics: Add missing end-of-line backslashes to item lists. 2012-05-07 14:17:40 +02:00
Diego Biurrun 9eb83a56aa build: cosmetics: Split HEADERS/OBJS/PROGS lists into one entry per line. 2012-05-07 14:01:32 +02:00
Diego Biurrun 1f4f752117 libschroedinger: Move a function to avoid a forward declaration. 2012-05-07 10:35:25 +02:00
Sean McGovern b68c4ac293 pthread: warn on high thread counts
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-05-07 10:35:01 +02:00
Robert Nagy a07578f3f2 vf_yadif: fix missing error handling for avfilter_poll_frame() 2012-05-07 10:26:57 +02:00
Ronald S. Bultje 08354bf458 avprobe: allow showing only one container/stream property.
This is useful for writing unit tests.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-05-07 08:08:46 +02:00
Anton Khirnov 0bbd874743 lavfi: support audio in avfilter_copy_frame_props(). 2012-05-07 07:10:48 +02:00
Mina Nagy Zaki 11b6a82412 lavfi: avfilter_merge_formats: handle case where inputs are same
This fixes a double-free crash if lists are the same due to the two
merge_ref() calls at the end of the (useless) merging that happens.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-05-07 07:08:59 +02:00
Anton Khirnov 828bd088f3 lavc: add sample rate and channel layout to AVFrame.
Rationale is the same as for video width/height etc.
2012-05-07 07:08:03 +02:00
Michael Niedermayer 16b9156b7e ffm: disable adjust_write_index()
This code can in its current form not work with ffserver
Fixes Ticket1249

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-07 02:42:00 +02:00
Paul B Mahol 37f4a976b3 zerocodec: check if the previous frame is missing
ZeroCodec relies on the keyframe flag being set in the container, and
prev is the previously decoded frame. A keyframe flags incorrectly set
will lead to this condition.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2012-05-06 15:47:10 -07:00
Luca Barbato e004bc16a1 doc: clarify check for NULL pointer style
Our code should be terse and clear.
2012-05-06 15:47:10 -07:00
Robert Nagy 4f5c5416ca yadif: Add yuva444p to format list.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-07 00:06:10 +02:00
Michael Niedermayer bd1d975cd0 swr: fix silence buffer for planar U8
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-07 00:05:19 +02:00
Michael Niedermayer fecdc76a9f swr: fix cpy() after the len was changed to be in samples.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-07 00:04:44 +02:00
Michael Niedermayer 715c8a5a50 Merge remote-tracking branch 'qatar/master'
* qatar/master: (28 commits)
  dfa: use more meaningful return codes
  eatgv: check vector_bits
  eatgv: check motion vectors
  Mark a number of variables only used in av_dlog() calls as av_unused.
  dvdec: drop const qualifier from variable to eliminate a warning
  avcodec: Improve comment for thread_safe_callbacks to avoid misinterpretation.
  tests/utils: don't ignore the return value of fwrite()
  lavfi/formats: use sizeof(var) instead of sizeof(type).
  lavfi: remove avfilter_default_config_input_link() declaration
  lavfi: always enable the scale filter and depend on sws.
  vf_split: support user-specifiable number of outputs.
  avconv: remove stray useless comment.
  mpegmux: add stuffing to avoid incomplete PCM frames
  rtsp: avoid const warnings from strtol() call
  avserver: check return value of ftruncate()
  lagarith: make offset array type unsigned
  dfa: add some checks to ensure that decoder won't write past frame end
  aacps: NEON optimisations
  aacps: align some arrays
  aacps: move some loops to function pointers
  ...

Conflicts:
	configure
	doc/filters.texi
	libavcodec/dfa.c
	libavcodec/eatgv.c
	libavfilter/Makefile
	libavfilter/allfilters.c
	libavfilter/avfilter.h
	libavfilter/formats.c
	libavfilter/vf_split.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-06 21:53:19 +02:00
Michael Niedermayer cbbc472467 swr-x86-simd: add ff_unpack_2ch_int16_to_int16/int32/float_a_ssse3
more than 10% faster (tested on sandybridge)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-06 19:39:52 +02:00
Kostya Shishkov fb5c1aaea6 dfa: use more meaningful return codes 2012-05-06 19:18:27 +02:00
Michael Niedermayer 71a3c59ed7 eatgv: check vector_bits
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Kostya Shishkov <kostya.shishkov@gmail.com>
2012-05-06 19:18:02 +02:00
Kostya Shishkov a390aa0ea4 eatgv: check motion vectors 2012-05-06 19:17:32 +02:00
Michael Niedermayer f10aeab69c swr: audioconvert: consider mono to be planar
This way it will be handled by the planar==planar SIMD

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-06 18:04:09 +02:00
Diego Biurrun 30b1961c66 Mark a number of variables only used in av_dlog() calls as av_unused.
This fixes a number of unused-but-set gcc warnings.
2012-05-06 18:01:31 +02:00
Diego Biurrun b2e92e946c dvdec: drop const qualifier from variable to eliminate a warning
libavcodec/dvdec.c:344:12: warning: assignment discards ‘const’ qualifier from pointer target type
2012-05-06 18:01:30 +02:00
Robert Nagy ad0278661b avcodec: Improve comment for thread_safe_callbacks to avoid misinterpretation.
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-05-06 18:00:29 +02:00
Sean McGovern be6009d32c tests/utils: don't ignore the return value of fwrite()
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-05-06 17:44:59 +02:00
Michael Niedermayer 72ae583b7d swr-x86-simd: stereo unpack S16/S32/FLT-> S16/S32/FLT SSE/SSE2 (16 new SIMD functions)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-06 17:25:52 +02:00
Michael Niedermayer 11ad5f0d7d swr-x86-simd: create prototypes with macros, this is simpler.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-06 17:25:52 +02:00
Michael Niedermayer adfa53b91f swr-x86-SIMD: 3 instructions less for stereo planar->packed s32/flt->s16
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-06 17:25:52 +02:00
Philip Langdale d1ac8e1034 CrystalHD: Improve detection of field pair -> two fields content.
Istvan Sebok provided a sample where field pair -> two fields content
was being misdetected by the existing logic. I added an additional
test to check the input picture type as identified by our h.264
parser.

Signed-off-by: Philip Langdale <philipl@overt.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-06 17:25:52 +02:00
Anton Khirnov d4ac703c7f lavfi/formats: use sizeof(var) instead of sizeof(type). 2012-05-06 16:26:41 +02:00
Stefano Sabatini f10530b78a lavfi: remove avfilter_default_config_input_link() declaration
The function is not implemented (and possibly useless).
2012-05-06 16:26:41 +02:00
Anton Khirnov 25b3babe11 lavfi: always enable the scale filter and depend on sws.
The scale filter is used for internal colorspace conversions, so it must
always be present.
2012-05-06 16:22:29 +02:00
Anton Khirnov fd18ee0ff6 vf_split: support user-specifiable number of outputs. 2012-05-06 16:21:00 +02:00
Anton Khirnov dce415e7f1 avconv: remove stray useless comment. 2012-05-06 16:20:26 +02:00
Nicolas George 67a316bbda vsrc_buffer: deprecate the header. 2012-05-06 16:18:11 +02:00
Nicolas George aaa94f2890 vsrc_buffer: deprecate av_vsrc_buffer_add_video_buffer_ref. 2012-05-06 16:18:10 +02:00
Nicolas George 4d4350f47a src_buffer: update get_nb_failed_requests name.
Implement av_buffersrc_get_nb_failed_requests.
Deprecate av_vsrc_buffer_get_nb_failed_requests.
2012-05-06 16:18:10 +02:00
Nicolas George fe511b6e32 asrc_abuffer: deprecate the header. 2012-05-06 16:18:10 +02:00
Nicolas George 675e83bb5c asrc_abuffer: deprecate av_asrc_buffer_* functions. 2012-05-06 16:18:10 +02:00
Nicolas George 6073ce71d0 lavfi: install buffersrc.h. 2012-05-06 16:18:10 +02:00
Nicolas George 317b2b7e92 lavfi: remove av_buffersrc_buffer.
It is no longer used anywhere.

Furthermore, the header it was declared in was not installed,
so it can not be considered part of the public API.
2012-05-06 16:18:10 +02:00
Nicolas George 8ad1964ec5 buffersrc: fix av_buffersrc_add_ref doxy.
av_buffersrc_add_ref can handle audio too now.
2012-05-06 16:18:10 +02:00
Nicolas George 870ca6a238 ffmpeg: do not include vsrc_buffer.h. 2012-05-06 16:14:34 +02:00
Nicolas George ba7395aace ffmpeg: replace av_vsrc_buffer_add_frame by av_buffersrc_add_frame. 2012-05-06 16:14:34 +02:00
Nicolas George 6ec1e0fed9 ffmpeg: replace av_buffersrc_buffer with av_buffersrc_add_ref. 2012-05-06 16:14:34 +02:00
Janne Grunau 29d27b5425 mpegmux: add stuffing to avoid incomplete PCM frames
Fixes https://bugzilla.libav.org/show_bug.cgi?id=244
2012-05-06 13:18:38 +02:00
Mans Rullgard ddce7dabd2 rtsp: avoid const warnings from strtol() call
The strtol() interface makes it difficult to use with
const-qualified pointers.  With this change, although
the const is still lost, the compiler does not warn
about it.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-05-06 12:04:25 +01:00
Mans Rullgard 0de1319ee0 avserver: check return value of ftruncate()
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-05-06 12:04:23 +01:00
Carl Eugen Hoyos 84aea80f78 oggparsevorbis.c: Check for OOM when using av_mallocz. 2012-05-06 12:00:19 +02:00
Kostya Shishkov 1fdb5649d9 lagarith: make offset array type unsigned
This is logical and also fixes checking for the fourth plane offset.
2012-05-06 09:32:08 +02:00
Kostya Shishkov 8099187e89 dfa: add some checks to ensure that decoder won't write past frame end 2012-05-06 09:31:52 +02:00
Mans Rullgard 96f7590efd aacps: NEON optimisations
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-05-05 22:04:21 +01:00
Mans Rullgard 47d18d5354 aacps: align some arrays
This is required for SIMD optimisations.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-05-05 22:04:21 +01:00
Mans Rullgard bf1945af30 aacps: move some loops to function pointers
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-05-05 22:04:21 +01:00
Martin Storsjö 2ed503af9f rtpdec_h264: Add missing newlines to av_log calls
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-05-05 22:11:49 +03:00
Martin Storsjö b97d21e4d6 rtpdec_h264: Free old extradata before clearing the pointer
This avoids memory leaks if there actually was some extradata
set before.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-05-05 22:11:45 +03:00
Michael Niedermayer 517dcc9b5f Merge remote-tracking branch 'qatar/master'
* qatar/master:
  tests: Refactor rotozoom/videogen common code into a separate file.
  tests: Mark some file-internal symbols as static.
  build: Drop leftover .exp pattern from LIBSUFFIXES list.
  vsrc_buffer: return EAGAIN if no frame is available.
  WMAL: Shift output samples by the specified number of padding zeroes.
  WMAL: Restore removed code in mclms_predict()
  rtpdec_h264: Remove a useless ifdef
  rtpdec_h264: Remove outdated/useless/incorrect comments
  rtpdec_h264: Remove useless memory corruption checks
  rtpdec_h264: Return proper error codes
  rtpdec_h264: Check the available data length before reading
  rtpdec_h264: Add input size checks
  png: check bit depth for PAL8/Y400A pixel formats.
  ea: check chunk_size for validity.
  celp filters: Do not read earlier than the start of the 'out' vector.

Conflicts:
	libavcodec/pngdec.c
	libavfilter/src_buffer.c
	tests/rotozoom.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-05 20:22:09 +02:00
Michael Niedermayer 5f4e18cd16 swr: replace the remaining 2 audio convert SIMD macros by the new ones
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-05 19:59:57 +02:00
Michael Niedermayer df5ff103cd swr: fix internal asm labels
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-05 19:43:11 +02:00
Michael Niedermayer b6f4f0d9ef swr: fix PACK_2CH register count
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-05 19:42:52 +02:00
Michael Niedermayer aae3119643 swr: replace planar->planar/packed->packed FLT<->S16/S32 SIMD by new macros
this simplifies the code

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-05 19:41:39 +02:00
Martin Storsjö 3c148703f6 rtpdec_h264: Reorder code blocks
This removes one level of indentation.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-05-05 20:41:37 +03:00
Martin Storsjö b368861747 rtpdec_h264: Make start_sequence a static const array
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-05-05 20:35:33 +03:00
Martin Storsjö 48666c2bd6 rtpdec_h264: Cleanup debug packet type counting
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-05-05 20:35:05 +03:00
Martin Storsjö 0b3ac9fe05 rtpdec_h264: Cosmetic cleanup
Add/fix spacing, split long lines, align assignments where suitable.

Signed-off-by: Diego Biurrun <diego@biurrun.de>
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-05-05 20:33:00 +03:00
Martin Storsjö f3d471f45f rtpdec_h264: Clean up comments
Split long comments, move long comments at the end of lines to
separate lines above, fix vertical alignment, fix up comment style
(unify trailing dots - comments had a mix of 2, 3 or 4 dots, where
it would be just as good without them at all).

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-05-05 20:32:29 +03:00
Martin Storsjö dee48d095d rtpdec_h264: Convert commented out code into setting an unused variable
It is worth keeping instead of removing, in case reading this
bit becomes necessary at some later point.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-05-05 20:32:09 +03:00
Michael Niedermayer 47055b8913 swr: implement stereo S16/S32/FLT->S16/S32/FLT planar->packed in SSE/SSE2
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-05 18:32:34 +02:00
Michael Niedermayer fec3700dcd swr: update calling code to support mixed packed planar SIMD
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-05 18:32:34 +02:00
Michael Niedermayer e8dd7928c8 swr: change simd len argument to be in samples instead of dst bytes.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-05 18:32:34 +02:00
Michael Niedermayer 3db6093244 swr-test: allow testing a specific subset of cases
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-05 18:32:34 +02:00
Diego Biurrun f0ccd53a3b tests: Refactor rotozoom/videogen common code into a separate file. 2012-05-05 17:11:06 +02:00
Diego Biurrun 814208a7a6 tests: Mark some file-internal symbols as static. 2012-05-05 16:32:57 +02:00
Diego Biurrun b5a3c6038d build: Drop leftover .exp pattern from LIBSUFFIXES list. 2012-05-05 16:32:56 +02:00
Carl Eugen Hoyos 23fba3ed5c Remove unused variable from ffv1 decoder. 2012-05-05 14:54:57 +02:00
Carl Eugen Hoyos c6758ac027 Skip padding bytes after reading musepack8 header.
Fixes ticket #1160.
2012-05-05 14:46:38 +02:00
Carl Eugen Hoyos 396d2aecc5 alsdec.c: Also test 0 when checking rice decoder values.
Suggested-by: Thilo Borgmann
2012-05-05 13:19:35 +02:00
Carl Eugen Hoyos 849172882c alsdec.c: Simplify error check before calling rice decoder.
Reviewed-by: Thilo Borgmann
2012-05-05 13:14:36 +02:00
Nicolas George 5cb4f1a127 vsrc_buffer: return EAGAIN if no frame is available.
This is not an erroneous condition, do not print a warning.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-05-05 12:59:18 +02:00
Jakub Stachowski ddffe3de43 WMAL: Shift output samples by the specified number of padding zeroes.
Signed-off-by: Kostya Shishkov <kostya.shishkov@gmail.com>
2012-05-05 12:38:54 +02:00
Mashiat Sarker Shakkhar 363c3a44ff WMAL: Restore removed code in mclms_predict()
Based on observations made by Jakub Stachowski <qbast@go2.pl>

Signed-off-by: Kostya Shishkov <kostya.shishkov@gmail.com>
2012-05-05 12:38:37 +02:00
Michael Niedermayer 45a7b0674d oggvorbis: fix the first 2 packets timestamps matching issue
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-05 10:57:53 +02:00
Michael Niedermayer 3d42addf33 png_parser: try to fix big endian
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-05 02:12:40 +02:00
Martin Storsjö 44f99fe0f5 rtpdec_h264: Remove a useless ifdef
assert is a no-op if DEBUG isn't defined.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-05-05 03:10:25 +03:00
Martin Storsjö 8d43b8b8e8 rtpdec_h264: Remove outdated/useless/incorrect comments
RTCP is handled elsewhere, not in the depacketizer for an
individual format.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-05-05 03:10:15 +03:00
Martin Storsjö 5a571d3241 rtpdec_h264: Remove useless memory corruption checks
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-05-05 03:09:53 +03:00
Martin Storsjö b7b7354c33 rtpdec_h264: Return proper error codes
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-05-05 03:09:44 +03:00
Martin Storsjö 5245adb963 rtpdec_h264: Check the available data length before reading
This makes sure the length is checked for STAP-A type packets.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-05-05 03:09:10 +03:00
Ivan Kovtunov de26a4b699 rtpdec_h264: Add input size checks
This fixes crashes if given too short data packets.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-05-05 03:09:07 +03:00
Michael Niedermayer 16db88a093 vorbis_parser: fix blocksize
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-05 02:02:56 +02:00
Michael Niedermayer 441dce2169 oggvorbis: move handling of first packets ts from parser to muxer.
The parser does not have enough knowledge it seems to do it
correctly.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-05 01:52:21 +02:00
Ronald S. Bultje d2205d6543 png: check bit depth for PAL8/Y400A pixel formats.
Wrong bit depth can lead to invalid rowsize values, which crashes the
decoder further down.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-05-04 16:06:47 -07:00
Ronald S. Bultje 273e6af47b ea: check chunk_size for validity.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-05-04 16:06:26 -07:00
Michael Niedermayer bce42e95d1 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  configure: add POWER[5-7] support
  arm: intreadwrite: revert 16-bit load asm to old version for gcc < 4.6
  vqavideo: return error if image size is not a multiple of block size
  cosmetics: indentation
  avformat: only fill-in interpolated timestamps if duration is non-zero
  avformat: remove a workaround for broken timestamps

Conflicts:
	libavformat/utils.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-05 00:54:28 +02:00
Michael Niedermayer b18c9f1eb0 oggtheora: Port changes from oggvorbis timestamp handling.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-05 00:00:40 +02:00
Michael Niedermayer fe5c5bccce oggvorbisdec: Apply timestamp calculation always when timestamps arent known.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-05 00:00:40 +02:00
Michael Niedermayer 1f95ad48ff oggvorbisdec: redesign special handling of first frames timestamp.
This also will make it possible to use the code for cases other than the start of a stream

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-04 23:59:26 +02:00
Nicolas George 9f357e2bcd examples/filtering_audio: use av_buffersrc_add_frame. 2012-05-04 23:26:41 +02:00
Nicolas George 7bac2a78c2 src_buffer: implement av_buffersrc_add_frame.
It supersedes av_vsrc_buffer_add_frame and handles
both audio and video.
2012-05-04 23:26:40 +02:00
Nicolas George a96cd73ff2 src_buffer: implement audio buffer copy. 2012-05-04 23:26:40 +02:00
Nicolas George d8407bba0e lavfi/avcodec: implement audio copy_frame_prop. 2012-05-04 23:26:40 +02:00
Nicolas George 32094285ad lavfi: implement avfilter_get_audio_buffer_ref_from_frame. 2012-05-04 23:26:40 +02:00
Alex Converse 37ddd38332 celp filters: Do not read earlier than the start of the 'out' vector.
CC: libav-stable@libav.org
2012-05-04 10:55:31 -07:00
Clément Bœsch 9e6a1c8981 ffmpeg: fix indent in term_init(). 2012-05-04 19:22:28 +02:00
Clément Bœsch 3c1d52d30b Fix a few @file doxy inconsistencies. 2012-05-04 18:50:59 +02:00
Clément Bœsch 49df97b282 ffmpeg: stronger ffpresets parsing.
This fixes at least issues with empty lines, and also allows CRLF lines
(in case a user makes its own preset on a MS plateform).
2012-05-04 18:47:50 +02:00
Clément Bœsch ec271c9579 presets: specify the codecs.
This allows the following usages:
FFMPEG_DATADIR=presets ./ffmpeg -f lavfi -i testsrc=d=5 -vcodec libx264 -vpre ipod640 -f null -
FFMPEG_DATADIR=presets ./ffmpeg -f lavfi -i testsrc=d=5 -vpre libx264-ipod640 -f null -

The second example was broken even if documented.
2012-05-04 18:40:36 +02:00
Clément Bœsch 19bc2320f3 Remove old ffpresets.
They are now replaced with presets/ directory. WIN32 still seems to use
a ffpresets/ directory, but it doesn't look like to be deployed at
install time.
2012-05-04 18:40:36 +02:00
Peter Holik 2ee6dca3b8 png_parser
This adds support for png image2pipe streaming

Update to latest git by: Eugene Ware <eugene@noblesamurai.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-04 16:57:54 +02:00
Michael Niedermayer 63eb01d9c1 oggvorbis: Try to fix pts off by 1 issue.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-04 15:49:37 +02:00
Sean McGovern 313f9fbfbb configure: add POWER[5-7] support
Also merge POWER3 and POWER4 configuration together with the additions.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-05-04 13:54:03 +01:00
Michael Niedermayer e8339302c0 fate: update ogg seektest after all the bug fixes
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-04 14:40:22 +02:00
Michael Niedermayer 231d32c8d7 oggtheora: Fix initial pts
code based on the solution in vorbis

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-04 14:40:22 +02:00
Michael Niedermayer 49d935b5d2 seek-test: support printing multiple packets
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-04 14:40:22 +02:00
Michael Niedermayer ef32fbafcd oggdec: fix off by one error on pos_limit
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-04 14:40:22 +02:00
Michael Niedermayer a6bb09fc1a oggdec: print error on failure to create streams
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-04 14:40:22 +02:00
Michael Niedermayer 251ce23165 oggdec: print error on changing streams when its unsupported.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-04 14:40:22 +02:00
Michael Niedermayer 6fd478062c oggdec: print error on unsupported versions
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-04 14:40:22 +02:00
Michael Niedermayer 96fb233e64 oggdec: reset lastpts so that justins vorbis duration correction is not skiped
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-04 14:40:22 +02:00
Michael Niedermayer 5f9f78dc9b oggdec: pass avformat context to ogg_reset()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-04 14:40:21 +02:00
Michael Niedermayer babf2a3467 seek-test: support manually forcing a seek to a specific position
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-04 14:40:21 +02:00
Paul B Mahol 4b70bba57e zerocodec: check if there is previous frame
Fixes crash in bug #1219.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-05-04 10:42:11 +00:00
Paul B Mahol b7159877b1 shorten: unsigned 8bit support 2012-05-04 09:56:18 +00:00
Mans Rullgard c02efacc8f arm: intreadwrite: revert 16-bit load asm to old version for gcc < 4.6
Commit adebad0 "arm: intreadwrite: fix inline asm constraints for gcc
4.6 and later" caused some older gcc versions to miscompile code.
This reverts to the old version of the code for these compilers.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-05-03 21:40:19 +01:00
Michael Niedermayer d98b254ab8 Merge https://github.com/mjbshaw/FFmpeg-OpenJPEG-J2K-Encoder
* https://github.com/mjbshaw/FFmpeg-OpenJPEG-J2K-Encoder:
  libopenjpegdec: respect JP2 color space, fix ticket 1179

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-03 22:40:19 +02:00
Mans Rullgard 58b2e0f0f2 vqavideo: return error if image size is not a multiple of block size
The decoder assumes in various places that the image size
is a multiple of the block size, and there is no obvious
way to support odd sizes.  Bailing out early if the header
specifies a bad size avoids various errors later on.

Fixes CVE-2012-0947.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-05-03 21:40:19 +01:00
Justin Ruggles e5356ebf22 cosmetics: indentation 2012-05-03 16:28:08 -04:00
Justin Ruggles 8916f1fbcb avformat: only fill-in interpolated timestamps if duration is non-zero
This avoids returning duplicate timestamps for multiple packets when the
demuxer does not provide all timestamps and packet duration is not known.
2012-05-03 16:28:08 -04:00
Justin Ruggles ff499157a1 avformat: remove a workaround for broken timestamps
This modifies pts in situations other than what was intended, leading to
invalid timestamps.

Reverts commit 90bb394dcc
2012-05-03 16:28:08 -04:00
Michael Bradshaw b7a928b2d1 libopenjpegdec: respect JP2 color space, fix ticket 1179
Signed-off-by: Michael Bradshaw <mbradshaw@sorensonmedia.com>
2012-05-03 14:17:24 -06:00
Michael Niedermayer 27744fe439 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  mpeg12: fixed parsing in some mpeg2 streams
  Add SMPTE240M transfer characteristics flag.
  mpegts: Some additional HDMV types and reg descriptors for mpegts
  motionpixels: Clip YUV values after applying a gradient.
  jpeg: handle progressive in second field of interlaced.
  ituh263dec: Implement enough of Annex O (scalability) to fix a FPE.
  h263: more strictly forbid frame size changes with frame-mt.
  h264: additional protection against unsupported size/bitdepth changes.
  tta: prevents overflows for 32bit integers in header.
  configure: remove malloc_aligned.
  vp8: update frame size changes on thread context switches.
  snowdsp: explicitily state instruction size.
  wmall: fix reconstructing audio with uncoded channels
  WMAL cosmetics: fix indentation
  gitignore: add Win32 library suffixes

Conflicts:
	configure
	libavcodec/h263dec.c
	libavcodec/h264.c
	libavcodec/ituh263dec.c
	libavcodec/mjpegdec.c
	libavcodec/wmalosslessdec.c
	libavcodec/x86/snowdsp_mmx.c
	libavformat/mpegts.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-03 21:02:32 +02:00
Clément Bœsch af58a77f0a lavfi/src_buffer: fix indent. 2012-05-03 20:02:26 +02:00
Clément Bœsch fd4b4dda9c ffmpeg: fix indent. 2012-05-03 20:02:26 +02:00
Nicolas George f8d58c594d src_buffer: merge av_asrc_buffer_add_audio_buffer_ref.
Implement it using av_buffersrc_add_ref.
2012-05-03 19:55:28 +02:00
Nicolas George be8edff8d1 src_buffer: move audio format change check in a separate function. 2012-05-03 19:55:28 +02:00
Nicolas George cc14cdec45 src_buffer: move buffer copy in a separate function.
This will make merging with the audio part easier.
2012-05-03 19:55:28 +02:00
Nicolas George f94b150a03 src_buffer: move format change check in a separate function.
This will make merging the check with the audio part easier.
2012-05-03 19:55:28 +02:00
Nicolas George 3985ec0ee6 src_buffer: introduce av_buffersrc_add_ref().
This function merges the features of
av_vsrc_buffer_add_video_buffer_ref() and
av_buffersrc_buffer().
2012-05-03 19:55:28 +02:00
Clément Bœsch 77c0b361b0 doc: fix API examples references. 2012-05-03 19:53:38 +02:00
Clément Bœsch 9ae570fb5f JACOsub demuxer, decoder and muxer. 2012-05-03 19:37:14 +02:00
Nicolas George 234e00259b ffplay: use AVFrame accessor. 2012-05-03 18:47:16 +02:00
Nicolas George ae344b2c5e ffmpeg: use AVFrame accessor. 2012-05-03 18:47:16 +02:00
Nicolas George e296f1b1c4 lavc: implement accessors for some AVFrame fields.
Compared to av_opt_ptr, accessors bring:

- better performance (negligible);
- compile-time type check;
- link-time existence check
  (or at worst, a dynamic linker error instead of a NULL dereference).
2012-05-03 18:47:16 +02:00
Hendrik Leppkes 1d4a01474d mpeg12: fixed parsing in some mpeg2 streams
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2012-05-03 12:15:52 -04:00
Hendrik Leppkes ca93f0fa36 Add SMPTE240M transfer characteristics flag.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2012-05-03 12:15:02 -04:00
Joakim Plate 68b9ed8391 mpegts: Some additional HDMV types and reg descriptors for mpegts
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2012-05-03 12:13:28 -04:00
Michael Niedermayer c1fe2db376 swr: add ff_int32_to_float_a_avx
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-03 15:58:51 +02:00
Michael Niedermayer 29ed1900cc swr-test: fix rounding error leading to NAN
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-03 14:42:37 +02:00
Michael Niedermayer 28d37f7160 examples/decoding_encoding: fix encoding when all frames got buffered.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-03 12:25:17 +02:00
Stefano Sabatini 20f47eb574 doc/filters: consistently use '"' for quoting the drawtext arguments in examples 2012-05-03 10:35:24 +02:00
Stefano Sabatini 126ba1626e lavfi/drawtext: give a new alias "timecode_rate" to the the r/rate option
The option is related to the timecode, the new name clearly specifies the
context. Also it allows to list the option close to the other timecode
options.
2012-05-03 10:29:08 +02:00
Stefano Sabatini 4f19e50c23 doc/filters: document drawtext draw expression 2012-05-03 10:26:42 +02:00
Stefano Sabatini eb07f4ccb5 lavfi/drawtext: rename and document variables d_expr and d_pexpr
Use the more expressive names draw_expr and draw_pexpr, also more
consistent.
2012-05-03 10:26:41 +02:00
Stefano Sabatini 56b39bd55d doc/filters: document rand() drawtext expression function 2012-05-03 10:26:41 +02:00
Stefano Sabatini f4a6c3b099 doc/filters: document x and y drawtext expression parameters 2012-05-03 10:26:34 +02:00
Stefano Sabatini 730af6e617 doc/filters: fix location of "rate" and "timecode" drawtext options
They are options, not expression parameters.
2012-05-03 10:17:57 +02:00
Stefano Sabatini 65d2b2fbe4 lavfi/drawtext: alphabetically sort the expression parameters 2012-05-03 10:17:57 +02:00
Alex Converse b5da848fac motionpixels: Clip YUV values after applying a gradient.
Prevents illegal reads on truncated and malformed input.

CC: libav-stable@libav.org
2012-05-02 13:06:09 -07:00
Michael Niedermayer 2330eb1474 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  arm: intreadwrite: disable inline asm for gcc 4.7 and later
  arm: intreadwrite: fix inline asm constraints for gcc 4.6 and later
  indeo3: fix motion vector validation
  pcm_bluray: set bits_per_raw_sample for > 16-bit
  twinvq: fix out of bounds array access
  lavr: use 8.8 instead of 10.6 as the 16-bit fixed-point mixing coeff type

Conflicts:
	doc/APIchanges
	libavcodec/indeo3.c
	libavcodec/pcm-mpeg.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-02 21:12:34 +02:00
Ronald S. Bultje 5eec5a79da jpeg: handle progressive in second field of interlaced.
Progressive data is allocated later in decode_sof(), not allocating
that data leads to NULL dereferences.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-05-02 10:29:51 -07:00
Michael Niedermayer 1f05dcbad2 ituh263dec: Implement enough of Annex O (scalability) to fix a FPE.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-05-02 10:26:05 -07:00
Ronald S. Bultje 2d22d4307d h263: more strictly forbid frame size changes with frame-mt.
Prevents crashes because the old check was incomplete.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-05-02 10:21:34 -07:00
Ronald S. Bultje 732f9fcfe5 h264: additional protection against unsupported size/bitdepth changes.
Fixes crashes in codepaths not covered by original checks.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-05-02 10:19:37 -07:00
Ronald S. Bultje ac80b812cd tta: prevents overflows for 32bit integers in header.
This prevents sample_rate/data_length from going negative, which
caused various crashes and undefined behaviour further down.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-05-02 10:16:57 -07:00
Ronald S. Bultje 77cfb2563c configure: remove malloc_aligned.
It was to signal that allocations are 16-byte aligned, but AVX requires
32-byte alignment, thus the check is no longer useful (and causes
crashes).
2012-05-02 09:57:12 -07:00
Ronald S. Bultje 82a0497cf3 vp8: update frame size changes on thread context switches.
This properly synchronizes frame size changes between threads if
subsequent threads abort decoding before frame size is initialized, i.e.
it prevents the thread after that from ping-ponging back to the original
value.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
2012-05-02 09:57:12 -07:00
Ronald S. Bultje bec207f9f9 snowdsp: explicitily state instruction size.
Fixes a compile error with clang at -O0.
2012-05-02 09:57:12 -07:00
Kostya Shishkov 0e23b50821 wmall: fix reconstructing audio with uncoded channels 2012-05-02 18:46:11 +02:00
Mashiat Sarker Shakkhar c8370e6e35 WMAL cosmetics: fix indentation
Signed-off-by: Kostya Shishkov <kostya.shishkov@gmail.com>
2012-05-02 18:45:29 +02:00
Joakim Plate f1aa859728 gitignore: add Win32 library suffixes
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2012-05-02 12:38:22 -04:00
Mans Rullgard ababec7b95 arm: intreadwrite: disable inline asm for gcc 4.7 and later
Starting with version 4.7, gcc properly supports unaligned
memory accesses on ARM.  Not using the inline asm with these
compilers results in better code.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-05-02 17:26:39 +01:00
Mans Rullgard adebad07e0 arm: intreadwrite: fix inline asm constraints for gcc 4.6 and later
With a dereferenced type-cast pointer as memory operand, gcc 4.6
and later will sometimes copy the data to a temporary location,
the address of which is used as the operand value, if it thinks
the target address might be misaligned.  Using a pointer to a
packed struct type instead does the right thing.

The 16-bit case is special since the ldrh instruction addressing
modes are limited compared to ldr.  The "Uq" constraint produces a
memory reference suitable for an ldrsb instruction, which supports
the same addressing modes as ldrh.  However, the restrictions appear
to apply only when the operand addresses a single byte.  The memory
reference must thus be split into two operands each targeting one
byte.  Finally, the "Uq" constraint is only available in ARM mode.
The Thumb-2 ldrh instruction supports most addressing modes so the
normal "m" constraint can be used there.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-05-02 17:26:38 +01:00
Paul B Mahol 2cda0429aa lavfi: remove screenshot libmpcodecs wrapper
The filter is useless.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-02 18:15:29 +02:00
Michael Niedermayer b197c1c1ac ffmpeg: preserve NULL ptrs in get_buffer()
Fixes Ticket1260, Ticket1267

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-02 10:48:28 +02:00
Jakub Stachowski 8501bed08c Don't restrict reverse decorrelation to both coded channels. It is also used for mono data.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-02 09:04:34 +02:00
Hendrik Leppkes 4b7fa553a9 indeo3: fix motion vector validation
The index of the motion vector has to be checked before being
multiplied by 2 for the array index.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2012-05-01 21:14:18 -04:00
Hendrik Leppkes ff80c68264 pcm_bluray: set bits_per_raw_sample for > 16-bit
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2012-05-01 20:59:09 -04:00
Michael Niedermayer 29ec5c1102 fate: update mmf seek checksum, change caused by av_get_packet() useage
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-02 01:55:04 +02:00
Michael Niedermayer 33f7033452 swr: automatically choose s16/flt/dbl to preserve input precision unless user overrides.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-02 01:12:16 +02:00
Michael Niedermayer f2e799a3d0 swr: add double precision support to the rematrix code
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-02 01:12:16 +02:00
Michael Niedermayer 71a1f76d3c swr: update double precision checks for our resampler
It supports double precision since a while

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-02 01:12:16 +02:00
Justin Ruggles 6d5bf67f04 swr: add lfe_mix_level
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-02 01:12:10 +02:00
Justin Ruggles 9b42653b22 swr: update side to back mixing.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-02 01:11:55 +02:00
Michael Niedermayer 7bea0a0644 APIChanges: add entry for libavresample
Appears this was forgotten

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-02 01:06:47 +02:00
Reimar Döffinger a5f8417db5 xbmdec: fix decoding when variable name contains an 'x'.
Fixes trac ticket #1142.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-05-01 23:30:04 +02:00
Reimar Döffinger 1f0c92d68b xbmdec: print more details on decode error.
Makes debugging issues easier.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-05-01 23:30:03 +02:00
Reimar Döffinger 20044cd9a9 flvdec: pass on proper error value.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-05-01 23:20:52 +02:00
Reimar Döffinger 8f63f241d4 Remove some useless code that duplicates av_get_packet.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-05-01 23:20:52 +02:00
Reimar Döffinger 7effbee66c Mark truncated packets as corrupt in av_get_packet.
Manually remove that flag again for formats that read an arbitrary
amount of data and thus truncation is not an error.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-05-01 23:20:52 +02:00
Michael Niedermayer 75f847aa6b Merge remote-tracking branch 'qatar/master'
* qatar/master:
  avplay: use libavresample for sample format conversion and channel mixing
  Fix compilation with YASM/NASM without AVX support.
  WMAL: do not output last frame again if nothing was decoded in current packet
  WMAL: do not start decoding if frame does not end in current packet
  adpcm-thp: fix invalid array indexing
  ppc: add const where needed in scalarproduct_int16_altivec()
  ppc: remove shift parameter from scalarproduct_int16_altivec()
  ppc: dsputil: do unaligned block accesses correctly
  dvenc: do not call dsputil functions with stride not a multiple of 16
  APIchanges: fill in some dates and commit hashes

Conflicts:
	doc/APIchanges
	ffplay.c
	libavcodec/adpcm.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-01 22:06:55 +02:00
Mans Rullgard 4bf2e7c5f1 twinvq: fix out of bounds array access
ModeTab.fmode has only 3 elements, so indexing it with ftype
in the initialier for 'size' is invalid when ftype == FT_PPC.

This fixes crashes with gcc 4.8.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-05-01 20:17:07 +01:00
Michael Niedermayer aab5a4521c swr: add and use function pointers for rematrix
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-01 20:20:21 +02:00
Michael Niedermayer 00fea26faf swr: add native matrix for rematrixing
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-01 20:19:28 +02:00
Michael Niedermayer f08397642f ffmpeg: fix type of dither scale.
This allows non integer scales.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-01 20:13:32 +02:00
Michael Niedermayer 046b5339fc swr: disable 1 stage convert when dither is enabled.
This combination is not possible easily.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-01 20:12:31 +02:00
Justin Ruggles 4010d724e1 lavr: use 8.8 instead of 10.6 as the 16-bit fixed-point mixing coeff type 2012-05-01 13:52:59 -04:00
Justin Ruggles f1ffb01ee9 avplay: use libavresample for sample format conversion and channel mixing
SDL only supports s16 sample format and a limited number of channel layouts.
Some versions of SDL on some systems support 4-channel and 6-channel output,
but it's safer overall to downmix any layout with more than 2 channels to
stereo.
2012-05-01 13:38:23 -04:00
Reimar Döffinger e5b7d7773a Fix compilation with YASM/NASM without AVX support.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-05-01 13:37:25 -04:00
Jakub Stachowski 035a394eac WMAL: do not output last frame again if nothing was decoded in current packet
Reviewed-by: Mashiat Sarker Shakkhar <mashiat.sarker@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Kostya Shishkov <kostya.shishkov@gmail.com>
2012-05-01 14:34:03 +02:00
Mashiat Sarker Shakkhar f92f452378 WMAL: do not start decoding if frame does not end in current packet
This fixes decoding of frames which span more than two packets. Tested with
recit24.wma.

Signed-off-by: Kostya Shishkov <kostya.shishkov@gmail.com>
2012-05-01 14:33:31 +02:00
Michael Niedermayer 30aa004f0c swr-test: allow randomizing mode differently each run.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-01 13:25:50 +02:00
Michael Niedermayer bea3d19fbb swr-test: use uint_rand() for mode too
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-01 13:25:50 +02:00
Michael Niedermayer 0334464336 swr-test: simplify by using uint_rand()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-01 13:25:50 +02:00
Stefano Sabatini 5f3f03f5dd doc/filters: use @var{} for denoting parameter reference in drawtext docs 2012-05-01 11:17:02 +02:00
Stefano Sabatini 08c4dec5d3 doc/filters: alphabetically sort drawtext option listing 2012-05-01 11:16:39 +02:00
Stefano Sabatini bb39c74b59 lavfi/lut: remove unused variable
Fix warning:
libavfilter/vf_lut.c: In function ‘draw_slice’:
libavfilter/vf_lut.c:297:15: warning: unused variable ‘k’ [-Wunused-variable]
2012-05-01 01:24:48 +02:00
Mans Rullgard a812ed003f adpcm-thp: fix invalid array indexing
Indexing outside array limits is invalid and breaks with gcc 4.8.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-05-01 00:21:30 +01:00
Mans Rullgard c81d1e2390 ppc: add const where needed in scalarproduct_int16_altivec()
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-05-01 00:21:30 +01:00
Mans Rullgard ce82dad7eb ppc: remove shift parameter from scalarproduct_int16_altivec()
The shift parameter was removed from this interface in 7e1ce6a.
This updates the Altivec implementation to match.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-05-01 00:21:30 +01:00
Mans Rullgard 4c387c7070 ppc: dsputil: do unaligned block accesses correctly
To load unaligned vector data in the usual way, explicit vec_ld()
should be used rather than dereferencing a pointer to a vector type.
When the VSX extension is enabled, gcc may compile vector pointer
dereferences using the VSX lxvw4x instruction instead of the lvx
instruction typically used with Altivec/VMX.  As the behaviour of
these instructions with unaligned addresses differs, it is important
that only lvx is used here.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-05-01 00:21:30 +01:00
Mans Rullgard c75eca9d37 dvenc: do not call dsputil functions with stride not a multiple of 16
Allowing dsputil functions to assume the stride is a multiple of 16
even for smaller block sizes can simplify their implementation.
This appears to be the only place this guarantee is not met.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-05-01 00:21:30 +01:00
Reimar Döffinger 4f6a1c974f Fix parsing of -force_key_frames option.
Currently it always exits with an error when more than
one position is specified.
Fixes trac issue #1266.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-05-01 00:03:20 +02:00
Stefano Sabatini 5f161c2357 lavfi/tinterlace: support symbolic names for the parameter
Also deprecate the use of numerical values.
2012-04-30 23:04:46 +02:00
Stefano Sabatini 837d034787 lavfi/tinterlace: make video as interlaced in mode 6
This is useful for marking progressive video processed by the filter as
interlaced, avoiding the interlaced flag to switch back and forth at each
frame.
2012-04-30 23:04:46 +02:00
Stuart Morris 820c023142 lavfi/tinterlace: add tinterlace mode 6
This new mode is useful for generating frames for interlaced video
displays. Typically interlaced video displays have no form of field
synchronisation. This new mode guarantees correct field order without
any requirement for field synchronisation.

Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
2012-04-30 23:04:46 +02:00
Stefano Sabatini d4f8d717ab lavu/opt: clarify error message in set_key_value_pair() 2012-04-30 23:04:46 +02:00
Michael Niedermayer 39de8343f9 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  mkv: mark corrupted packets and return them
  mkv: forward EMBL block data error
  avcodec: introduce YCoCg colorspace
  avcodec: cosmetic cleanup on header
  aac sbr: align struct member by 32 byte.

Conflicts:
	libavcodec/avcodec.h
	libavformat/matroskadec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-30 22:18:43 +02:00
Justin Ruggles f7ff099997 APIchanges: fill in some dates and commit hashes 2012-04-30 13:51:41 -04:00
hakuya 79e5902cf1 Exposing forced flag for DVD and PGS subtitles
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-30 19:48:21 +02:00
hakuya 1f46b50a95 Added AVClass for AVSubtitleRect
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-30 19:47:21 +02:00
Michael Niedermayer fd6eba428e ffv1: 10l add forgotten avclass
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-30 18:31:07 +02:00
Michael Niedermayer 5e1286a72f libavutil: Document the shortcommings of av_parse_cpu_flags()
and suggest that av_parse_cpu_caps() be used.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-30 18:31:06 +02:00
Michael Niedermayer eadac34c80 cmdutils/avutil: Move cpu caps parse code into av_parse_cpu_caps()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-30 18:31:06 +02:00
Michael Niedermayer e738811ceb lavf: add AVFMT_SEEK_TO_PTS to indicate seeking is per PTS.
See: [FFmpeg-devel] [PATCH] Add documentation that seeking is done by DTS and not PTS

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-30 15:47:58 +02:00
Michael Niedermayer 123dd9346b ffv1: add slicecrc option
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-30 15:00:10 +02:00
Luca Barbato 0ca4642ec5 mkv: mark corrupted packets and return them
Do return error if memory allocation or I/O fails.
2012-04-29 20:22:09 -07:00
Luca Barbato 721af294d9 mkv: forward EMBL block data error
Do not return 0 on error.
2012-04-29 20:22:09 -07:00
Michael Niedermayer 24e3f44aed EC: fix dest index for non 420 chroma.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-30 03:49:32 +02:00
Michael Niedermayer bcc213cf36 isom: remove duplicate line.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-30 03:49:32 +02:00
Derek Buitenhuis 9ea5756dae isom: Clarify comment for 'ec-3' fourcc
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-30 03:49:32 +02:00
Michael Niedermayer 7588b33ad4 ffmpeg: add the edge at the correct place in allocating of the buffer.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-29 23:13:06 +02:00
Hendrik Leppkes 85395ba73f avcodec: introduce YCoCg colorspace
Non perceptual color model that aims to have an increase effectiveness
in compression like the normal YCbCr while having near-lossless/lossless
mapping to RGB.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2012-04-29 14:00:34 -07:00
Luca Barbato ccc2dfbcdf avcodec: cosmetic cleanup on header
Apply coding style to the structs.
2012-04-29 13:30:40 -07:00
Michael Niedermayer dfa07e8928 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  4xm: fix invalid array indexing
  rv34dsp: factorize a multiplication in the noround inverse transform
  rv40: perform bitwise checks in loop filter
  rv34: remove inline keyword from rv34_decode_block().
  rv40: change a logical test into a bitwise one.
  rv34: remove constant parameter
  rv40: don't always do the full prev_type search
  dsputil x86: revert a test back to its previous value
  rv34dsp x86: implement MMX2 inverse transform

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-29 21:45:54 +02:00
Ronald S. Bultje b12bf03275 aac sbr: align struct member by 32 byte.
Required because it's used in a call to imdct_half(), which is an AVX
function.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2012-04-29 13:49:39 -04:00
Stefano Sabatini 46eba43e0e lavfi/buffersink: fix header inclusion guard name 2012-04-29 18:46:59 +02:00
Carl Eugen Hoyos 3dafde0b96 Simplify camstudio decoding and fix odd 16bit decoding.
Fixes ticket #1220.
2012-04-29 18:35:39 +02:00
Michael Niedermayer 9f98a8e9bc swr: use memcpy when input and output match
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-29 15:32:18 +02:00
Michael Niedermayer 106789dfa0 swr: add sample format to AudioData
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-29 15:32:18 +02:00
Michael Niedermayer 2d6c29f566 swr: add set_audiodata_fmt() and use it to simplify code
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-29 15:32:18 +02:00
Michael Niedermayer 65722e7fc5 swr: int32_to_int16_mmx/sse
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-29 14:20:35 +02:00
Reimar Döffinger 755667eebc rmenc: more than 2 streams are not currently possible.
It is possible that just extending the RMMuxContext.streams
array would avoid it.
It is also possible that two audio streams will fail to mux
correctly as well, though at least it should not crash for
this reason.
I do not feel like checking either of these.
This patch fixes trac issue #1022 (at least it makes it
exit with a proper error message instead of crashing).

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-04-29 13:03:15 +02:00
Reimar Döffinger 370211f470 nutdec: minor simplification.
Also fixes an (incorrect) "control reaches end of non-void function"
warning with some compilers.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-04-29 13:03:15 +02:00
Reimar Döffinger 1d128e5814 nutdec: replace assert with av_assert0.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-04-29 13:03:15 +02:00
Michael Niedermayer 73edb58c3c swr: float_to_int16_sse2()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-29 12:18:14 +02:00
Michael Niedermayer 5932938c9a swr: float_to_int32_sse2()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-29 11:37:32 +02:00
Mans Rullgard acb2c79c21 4xm: fix invalid array indexing
Indexing outside arrays is invalid and breaks with gcc 4.8.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-04-29 01:08:37 +01:00
Michael Niedermayer 9d7c1b4cf3 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  h264: new assembly version of get_cabac for x86_64 with PIC
  h264: use one table instead of several for cabac functions
  h264: (trivial) remove unneeded macro argument in x86/cabac.h
  libschroedingerdec: check malloc
  segment: reorder seg_write_header allocation
  avio: make avio_close(NULL) a no-op
  mov: Parse EC3SpecificBox (dec3 atom).

Conflicts:
	libavcodec/cabac.c
	libavcodec/x86/cabac.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-28 20:45:06 +02:00
Nicolas George c31be45e14 lavc: minor bump for the new fields in AVFrame. 2012-04-28 20:32:40 +02:00
Christophe GISQUET 7fb8b491e5 rv34dsp: factorize a multiplication in the noround inverse transform
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-04-28 11:16:07 -07:00
Nicolas George 128dda7016 lavc: add a sample_rate field to AVFrame.
The field is filled with the codec context information.
2012-04-28 20:14:48 +02:00
Nicolas George 4b0521eca9 lavc: add a channel_layout field to AVFrame.
The field is filled with the codec context information.

FIXME need a minor version bump.
2012-04-28 20:14:48 +02:00
Christophe Gisquet d834ab0f2a rv40: perform bitwise checks in loop filter
Down from 95 kcycles to 93 (including all called functions).

Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-04-28 11:12:38 -07:00
Ronald S. Bultje 774b681b80 rv34: remove inline keyword from rv34_decode_block().
Force-inlining increases object size by 8kB and causes a 2% slowdown.
2012-04-28 11:10:57 -07:00
Christophe Gisquet 0195ab5f5f rv40: change a logical test into a bitwise one.
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-04-28 11:09:32 -07:00
Christophe Gisquet 8802799991 rv34: remove constant parameter
is_block2 was always 0, so just remove it, and change accordingly the code.

Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-04-28 11:07:50 -07:00
Christophe Gisquet 34e1b07546 rv40: don't always do the full prev_type search
120->100 cycles.

Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-04-28 11:06:05 -07:00
Roland Scheidegger 82c71913e4 h264: new assembly version of get_cabac for x86_64 with PIC
This adds a hand-optimized assembly version for get_cabac much like the
existing one, but it works if the table offsets are RIP-relative.
Compared to the non-RIP-relative version this adds 2 lea instructions
and it needs one extra register.
There is a surprisingly large performance improvement over the c version (more
so than the generated assembly seems to suggest) just in get_cabac, I measured
roughly 40% faster for get_cabac on a K8. However, overall the difference is
not that big, I measured roughly 5% on a test clip on a K8 and a Core2.
Hopefully it still compiles on x86 32bit...
Now that only one table is used, there's some chance even darwin as compiles
this (apparently the label arithmetic used previously doesn't work if it
involves symbols defined in a different file, thanks to Ronald S. Bultje for
helping me with this).

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-28 20:02:27 +02:00
Roland Scheidegger 7f668cd2b5 h264: use one table instead of several for cabac functions
The reason is this is easier for PIC code (in particular on darwin...).
Keep the old names as pointers (static in cabac_functions.h so gcc
knows these are just immediate offsets) so the c code can nicely stay the same
(alternatively could use offsets directly in the functions needing the
tables). This should produce the same code as before with non-pic and better
code (confirmed) with pic.

The assembly uses the new table but still won't work for PIC case.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-28 20:02:27 +02:00
Roland Scheidegger e52b96187b h264: (trivial) make ff_h264_lps_state static
not used outside the cabac test functions (which probably means it's
a bad test if it doesn't use the same tables as the real functions?)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-28 20:02:27 +02:00
Roland Scheidegger 5520df6a8f h264: (trivial) remove unneeded macro argument in x86/cabac.h
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-28 20:02:27 +02:00
Christophe GISQUET e75d1d4f73 dsputil x86: revert a test back to its previous value
Commit 356ee8d caused the initial inversion.

Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-04-28 11:00:51 -07:00
Christophe Gisquet fe5ed69dc7 rv34dsp x86: implement MMX2 inverse transform
141 cycles down to 51.

Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-04-28 10:58:47 -07:00
Nicolas George f1b82099cd src_buffer: add forgotten avfilter_unref_buffer. 2012-04-28 19:37:57 +02:00
Michael Niedermayer b72a0f9c23 swr: add int16_to_float_sse2()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-28 19:07:30 +02:00
Jean First 64943b47e7 lavf remove duplicated check in has_duration
this hunk was merged in 8b97ae64 and cbf767a8 although the check was there a
few lines above since cdced09e. I removed the first check to reduce the differences
to libav.

Signed-off-by: Jean First <jeanfirst@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-28 19:07:30 +02:00
Nicolas George 75d5624cb2 avfilter: filter_samples: read pts before filtering.
The call to the next filter_sample will likely unref the
current buffer, so it is not possible to read it afterwards.
2012-04-28 18:48:12 +02:00
Roland Scheidegger 9b9df1cdff h264: new assembly version of get_cabac for x86_64 with PIC
This adds a hand-optimized assembly version for get_cabac much like the
existing one, but it works if the table offsets are RIP-relative.
Compared to the non-RIP-relative version this adds 2 lea instructions
and it needs one extra register. get_cabac() gets about 40% faster, for
an overall speedup of about 5%.

Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-04-28 09:43:25 -07:00
Roland Scheidegger 14e9ffc1e4 h264: use one table instead of several for cabac functions
The reason is this is easier for PIC code (in particular on darwin...).
Keep the old names as pointers (static in cabac_functions.h so gcc
knows these are just immediate offsets) so the c code can nicely stay the same
(alternatively could use offsets directly in the functions needing the
tables). This should produce the same code as before with non-pic and better
code (confirmed) with pic.

The assembly uses the new table but still won't work for PIC case.

Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-04-28 08:26:12 -07:00
Roland Scheidegger 444f47b55c h264: (trivial) remove unneeded macro argument in x86/cabac.h
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-04-28 08:24:56 -07:00
Michael Niedermayer 832c3b10d2 swr: add int32_to_float_sse2
could be done for sse/3dnow too if someone wants

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-28 17:06:11 +02:00
Michael Niedermayer 95057b1972 swr: int16->int32: use the old index negate trick to avoid 2 adds
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-28 17:06:11 +02:00
Michael Niedermayer 113738d6c2 swr: more correct cglobal parameters to int16->int32
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-28 17:06:11 +02:00
Nicolas George 12eeced8b4 avio: change ffurl_alloc return code.
If the designated protocol is not found, return
AVERROR_PROTOCOL_NOT_FOUND instead of AVERROR(ENOENT).
2012-04-28 16:39:54 +02:00
Jordi Ortiz a7fa5ce671 libschroedingerdec: check malloc
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-04-28 15:11:18 +02:00
Michael Niedermayer fa5daaca0d swr: seperate functions for aligned & unaligned
If someone has an idea on how to do this cleaner, its welcome

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-28 13:15:44 +02:00
Michael Niedermayer bcc66ff0e4 swr: add int16_to_int32_mmx/sse
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-28 13:15:44 +02:00
Michael Niedermayer 06b62cb8f2 swr: move AudioConvert to header
the next commits will need it

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-28 13:02:58 +02:00
Michael Niedermayer edbde52226 swr: change sample format representation so as to maintain the planer/packed distinction.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-28 13:02:58 +02:00
Reimar Döffinger 9d4a1aca88 Fix compilation with YASM/NASM without AVX support.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-04-28 13:01:49 +02:00
Nicolas George a0a0199da3 examples/filtering_audio: do not stop on decode error.
Decode errors can happen with concatenated MP3s
with different formats.
2012-04-28 10:28:15 +02:00
Nicolas George 8f19483d06 examples/filtering_audio: fix a memory leak. 2012-04-28 10:28:15 +02:00
Nicolas George 2ae5af8094 lavfi: rename vsrc_buffer.c into src_buffer.c. 2012-04-28 09:59:13 +02:00
Nicolas George 7ad0d9864e lavfi: merge asrc_abuffer into vsrc_buffer. 2012-04-28 09:59:13 +02:00
Luca Barbato 3b52e9da10 segment: reorder seg_write_header allocation
As pointed by Paul B Mahol <onemda@gmail.com> the previous code could
lead to null pointer dereference.
2012-04-27 14:03:43 -07:00
Luca Barbato e1e146a2d1 avio: make avio_close(NULL) a no-op
Its behaviour in line with ffurl_close(NULL).
2012-04-27 14:03:43 -07:00
Michael Niedermayer 28c5775183 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  mpegts: Make sure we don't return uninitialized packets
  gitignore: replace library catch-all pattern by more specific patterns

Conflicts:
	.gitignore

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-27 22:44:52 +02:00
Stefano Sabatini 18c6bd098b lavfi/tinterlace: remove unnecessary NULL check in start_frame() 2012-04-27 22:45:11 +02:00
Stefano Sabatini cf9f7e40cc lavfi/tinterlace: use avfilter_unref_bufferp() 2012-04-27 22:45:11 +02:00
Stefano Sabatini a853e88af2 lavfi/tinterlace: fix doxy in copy_picture_field() 2012-04-27 22:45:10 +02:00
Yusuke Nakamura 546adc1fee mov: Parse EC3SpecificBox (dec3 atom).
Skip to parse fields for additional independent substreams and its
associated dependent substreams since libavcodec's E-AC-3 decoder does not
support them yet.

Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-04-27 16:11:46 -04:00
Matthieu Bouron 73c1e3baad asrc_abuffer: return EAGAIN if no frame is available
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-27 22:11:00 +02:00
Stefano Sabatini 6b55aab01a lavfi: create buffer reference in filters which need to access the ref later
Also add internal function ff_null_start_frame_keep_ref().

Fix crash when a following filter (e.g. settb) will unref the reference
passed by start_frame(), and then the reference is accessed in
end_frame() through inlink->cur_buf.
2012-04-27 21:38:13 +02:00
Stefano Sabatini 6f3b1d7f86 lavfi/bbox: add missing space between pts and x1 values in the log 2012-04-27 21:33:42 +02:00
Clément Bœsch 423b827668 lavc: add MicroDVD decoder.
Based on my MicroDVD->ASS conversion code from MPlayer
(sub/subassconvert.c).
2012-04-27 19:39:19 +02:00
Clément Bœsch e40981b8c4 lavf/microdvd: set packet duration. 2012-04-27 19:19:36 +02:00
Martin Storsjö df8aa4598c mpegts: Make sure we don't return uninitialized packets
This fixes crashes, where the demuxer could return 0 even
if the returned AVPacket isn't initialized at all. This
could happen if running into EOF or running out of probesize
with non-seekable sources.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-04-27 20:05:37 +03:00
Nicolas George 3e1d3ebf5e parseutils: replace setenv() by putenv().
putenv() seems to be more portable.
2012-04-27 18:16:04 +02:00
Diego Biurrun 1b4f085772 gitignore: replace library catch-all pattern by more specific patterns
Ignoring all files that start with the name of a library matches some
files that are not generated.  So replace libfoo/libfoo* with patterns
for static and shared libraries, pkg-config and version files.
2012-04-27 13:01:11 +02:00
Michael Niedermayer dcfc12e86a swr-test: simplify prng code
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-27 12:23:53 +02:00
Nicolas George e5474f5c48 doc: fix syntax for durations and timestamps.
Omitting the seconds has not worked for a long time, if ever.
Omitting the minutes too is just nonsensical for a duration
(it is indistinguishable from just seconds).
2012-04-27 11:04:51 +02:00
Michael Niedermayer bbd3dc49ff swr: unroll audioconvert core C function
36k->32k decicycles

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-27 05:05:20 +02:00
Michael Niedermayer 4119fa7023 swr: audioconvert, mark some constants as floats.
idea from avr

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-27 00:22:57 +02:00
Michael Niedermayer 76d376d99b swr-test: fix declaration statement ordering.
swr-test is now warning free.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-26 23:48:57 +02:00
Michael Niedermayer f75169b251 swr-test: fix pointer type warnings
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-26 23:47:32 +02:00
Michael Niedermayer 7b2ce50701 swr-test: fix unused var warnings
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-26 23:44:50 +02:00
Michael Niedermayer a0dd81dd95 swr-test:indent
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-26 23:43:45 +02:00
Michael Niedermayer e890b68962 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  dsputil: fix invalid array indexing
  configure: add libavresample to rpath
  build: icc: silence some warnings
  fft-test: add option to set cpuflag mask
  cpu: recognise only cpu flag names pertinent to the architecture
  avutil: add av_parse_cpu_flags() function
  vp8: armv6: fix non-armv6t2 build
  vp8: armv6 optimisations
  vp8: arm: separate ARMv6 functions from NEON
  ARM: add some compatibility macros
  mov: support eac3 audio
  avf: fix faulty check in has_duration

Conflicts:
	configure
	doc/APIchanges
	ffmpeg.c
	libavcodec/arm/Makefile
	libavcodec/arm/asm.S
	libavcodec/arm/vp8dsp_armv6.S
	libavcodec/arm/vp8dsp_init_arm.c
	libavutil/avutil.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-26 22:24:58 +02:00
Michael Niedermayer f1f5b39866 swr-test: support fabrices audiogen like avr
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-26 20:23:07 +02:00
Michael Niedermayer 73be22f526 swr-test: fix u8 zero point.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-26 20:23:07 +02:00
Michael Niedermayer 56f89bae52 swr-test: improve rounding in set()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-26 20:23:07 +02:00
Matthieu Bouron 5473a98e45 af_amerge: return errors from subfilters when requesting a frame 2012-04-26 18:56:35 +02:00
Mans Rullgard 0a07f2b346 dsputil: fix invalid array indexing
Indexing outside an array is invalid and causes errors with
gcc 4.8.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-04-26 17:07:43 +01:00
Michael Niedermayer 27de7a8eb3 swr-test: remove unneeded hack to test planar formats.
planar formats are now chosen like any other parameter.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-26 15:37:41 +02:00
Michael Niedermayer 08809e3085 swr-test: improve output
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-26 15:37:41 +02:00
Michael Niedermayer 5347b9da98 swr-test: print channel layout, instead of just channel counts
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-26 15:37:41 +02:00
Michael Niedermayer e6c460e3ea swr-test: Use randomized collision free hypercube corner enumeration to select tests.
This way the user can specify how many or few tests should run while
still providing good coverage over the whole parameter set.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-26 15:37:41 +02:00
Michael Niedermayer 7461e9ae45 swr-test: use formats array
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-26 15:37:41 +02:00
Michael Niedermayer 69f3af9590 swr-test: remove 0 terminator in layouts for consistency
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-26 15:37:41 +02:00
Michael Niedermayer b1519102f1 swr-test: add rates tables containing a new set of sample rates.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-26 15:37:41 +02:00
Michael Niedermayer 030d6b65ae swr-test: indent
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-26 14:33:10 +02:00
Michael Niedermayer dd63e27574 swr-test: add sorted formats table from avr
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-26 14:33:10 +02:00
Sean McGovern 3510a13307 configure: add libavresample to rpath
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-04-26 11:25:23 +01:00
Michael Niedermayer a4b58fd9e8 ffv1: add examples of supported slices counts
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-26 04:35:30 +02:00
Michael Niedermayer da9587952a swr: pass resample parameters from the user to the resampler.
doxy and names stolen from avr

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-26 01:35:22 +02:00
Michael Niedermayer a522e03754 swr: Add longer more descriptive alternative AVOptions.
They match avresample where it supports the same fields.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-26 01:14:48 +02:00
Michael Niedermayer 20fc610439 swr: Capitalize help texts for AVOptions
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-26 01:03:32 +02:00
Michael Niedermayer 36a9dd2f4d swr: align options a little
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-26 01:00:43 +02:00
Michael Niedermayer 23282c2222 swr: set AV_OPT_FLAG_AUDIO_PARAM for the AVOptions
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-26 00:51:50 +02:00
Mans Rullgard 88de5b0a73 build: icc: silence some warnings
This disables the warning "external declaration in primary source file"
which is issued when a prototype for an extern function is found in a
.c file rather than a header file.  We have such prototypes for asm
functions where a separate header file would be pointless.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-04-25 23:19:40 +01:00
Mans Rullgard b6a6e90a7c fft-test: add option to set cpuflag mask
This can be useful for testing.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-04-25 23:19:40 +01:00
Mans Rullgard 6eca84bad8 cpu: recognise only cpu flag names pertinent to the architecture
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-04-25 23:19:40 +01:00
Mans Rullgard 3527a73933 avutil: add av_parse_cpu_flags() function
This moves the cpu flag parsing code from avconv to avutil so
it can be accessed elsewhere.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-04-25 23:19:40 +01:00
Mans Rullgard 3d11c2d76d vp8: armv6: fix non-armv6t2 build
The assembler may fail to place literal pools close enough to
instructions referencing them.  An explicit .ltorg directive
fixes this.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-04-25 23:16:31 +01:00
Michael Niedermayer 3ead79eaa3 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  FATE: use updated reference for aac-latm_stereo_to_51
  avconv: use libavresample
  Add libavresample
  FATE: avoid channel mixing in lavf-dv_fmt

Conflicts:
	Changelog
	Makefile
	cmdutils.c
	configure
	doc/APIchanges
	ffmpeg.c
	tests/lavf-regression.sh
	tests/ref/lavf/dv_fmt
	tests/ref/seek/lavf_dv

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-25 23:17:41 +02:00
Mans Rullgard e4ac031233 vp8: armv6 optimisations
Based on patch by Ronald S. Bultje <rsbultje@gmail.com>,
partially ported from libvpx.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-04-25 21:41:39 +01:00
Mans Rullgard b692d246ea vp8: arm: separate ARMv6 functions from NEON
This is a preparation for complete ARMv6 optimisations.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-04-25 21:41:39 +01:00
Mans Rullgard dac78fd1d7 ARM: add some compatibility macros
This adds some macros simplifying Thumb and pre-v6T2 compatibility.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-04-25 21:41:39 +01:00
Hendrik Leppkes 949d942eef mov: support eac3 audio
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2012-04-25 15:24:14 -04:00
Luca Barbato 8b97ae6484 avf: fix faulty check in has_duration
An invalid duration is AV_NOPTS_VALUE not 0.
2012-04-25 11:40:22 -07:00
Michael Niedermayer cab15f9db4 ffv1: remove clear_state(), it has become unused
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-25 18:05:40 +02:00
Michael Niedermayer 83bf9fb6ec ffv1: move clear_state() to clear_slice_state() in encoding threads
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-25 18:05:29 +02:00
Michael Niedermayer 68a9194bb6 ffv1: indent
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-25 17:51:17 +02:00
Michael Niedermayer 3f4c0dad16 ffv1: move init_slice_state() into the decoder threads.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-25 17:50:55 +02:00
Michael Niedermayer 60217b5b9c ffv1: Remove slice count field with 1.3 and just count slices.
This field was problematic because in case of damaged slices it can be
lost

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-25 15:01:32 +02:00
Michael Niedermayer 3ed6917ab8 ffv1: store slice size with all slices in 1.3
This simplifies handling by removing a special case.
Its also needed to make the next change possible.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-25 14:59:15 +02:00
Michael Niedermayer c24ca7b88e ffv1: add 1 status byte to slices in in case crcs are stored too.
This will allow storing of information about corrected and uncorrectable
errors.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-25 12:05:06 +02:00
Michael Niedermayer 0c27854532 ffv1: Always store slice size when error reobustness is enabled.
This simplifies finding slices within a damaged bitstream.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-25 12:01:44 +02:00
Michael Niedermayer 16524d1be0 ffv1: include solution hint in the slice error message
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-25 11:21:30 +02:00
Justin Ruggles 394dbde548 FATE: use updated reference for aac-latm_stereo_to_51
This uses correct stereo to 5.1 upmixing via libavresample.
2012-04-24 23:38:54 -04:00
Justin Ruggles bcb82fe1f4 avconv: use libavresample 2012-04-24 23:38:54 -04:00
Justin Ruggles c8af852b97 Add libavresample
This is a new library for audio sample format, channel layout, and sample rate
conversion.
2012-04-24 21:28:27 -04:00
Michael Niedermayer 8f89954550 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  avconv: fix a segfault on -c copy with -filter_complex.
  isom: Support more DTS codec identifiers.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-24 23:45:09 +02:00
Michael Niedermayer fe5bc46f60 ffv1: support vlc mode in 1.3
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-24 23:29:09 +02:00
Michael Niedermayer 3158160334 ffv1: move the decoder side ac->vlc switch to decode_slice()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-24 23:29:09 +02:00
Michael Niedermayer 44f789c092 ffv1: allow selecting 1.3 by using -level
Note, 1.3 is not finalized and the bitstream will still change
do not use it yet. This option is just to make playing with it
easier, otherwise one would have to edit the source

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-24 23:29:09 +02:00
Michael Niedermayer e37419a806 ffv1: move ac->vlc switch to encode_slice()
This will allow us to use vlc coding in 1.3 too

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-24 23:29:09 +02:00
Justin Ruggles c5671aeb77 FATE: avoid channel mixing in lavf-dv_fmt
This partially reverts acb1730218
which would only have needed to change the checksums if channel mixing had
been properly avoided. This changes the output file size reference and the
seek test reference back to the previous values.
2012-04-24 15:55:45 -04:00
Reimar Döffinger 2b336df3cb parseutils: reliably detect out-of-range alpha.
This should fix the FATE test on ARM (not tested),
but it should also detect alpha values like 2^128
reliably as invalid which would be another out-of-range
case with implementation-dependant behaviour.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-04-24 21:28:24 +02:00
Michael Niedermayer 44bd2f90a9 ffmpeg: Fix initial dts for streamcopy, if the input packets lack dts.
Fixes Ticket1138

Based on a patch by: Eelco Lempsink <eml@tupil.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-24 19:00:41 +02:00
Carl Eugen Hoyos ae0591f913 Add missing newline in shorten decoder. 2012-04-24 17:23:43 +02:00
Nicolas George fd2cd64fc9 avfiltergraph: fix format selection.
The old code had two bugs:

For audio filters, the format was not set.

For video filters, if several links reference the same format list,
the same format must be selected in the end. This is done by
setting formats->format_count to 1: the other links sharing
the reference will therefore have only one choice.
If the heuristic does not pick the first format, the selected format
must also be moved to the first position.
2012-04-24 16:35:15 +02:00
Nicolas George 62b745a6d3 ffmpeg: do not report EOF as an error.
Not all processing goes through filters,
so processing can continue even when
all filtergraphs have reached EOF on all sinks.
2012-04-24 15:46:03 +02:00
Michael Niedermayer 9c99bc433e mpc8: print error messages on maxband(s) errors
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-24 11:09:12 +02:00
Michael Niedermayer 88ee2aa5ad mpc8: make maxband check less picky.
Fixes Ticket1245

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-24 11:09:12 +02:00
Anton Khirnov 8c4022aceb avconv: fix a segfault on -c copy with -filter_complex. 2012-04-24 06:30:02 +02:00
Michael Niedermayer 3bbf3f7e42 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  matroska: Clear prev_pkt between seeks.
  avutil: change default buffer size alignment for sample buffer functions
  audemux: Add a sanity check for the number of channels
  Remove libdirac decoder.
  matroska: Add incremental parsing of clusters.
  avconv: fix off by one check in complex_filter
  mpegts: Try seeking back even for nonseekable protocols
  swscale: K&R formatting cosmetics (part III)

Conflicts:
	configure
	doc/general.texi
	doc/platform.texi
	ffmpeg.c
	libavcodec/Makefile
	libavcodec/allcodecs.c
	libavcodec/libdirac.h
	libavcodec/libdiracdec.c
	libavformat/au.c
	libavformat/mpegts.c
	libswscale/input.c
	tests/ref/seek/lavf_mkv

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-24 02:30:41 +02:00
Nicolas George 2e8f19d26f avfiltergraph: free the sink_links heap. 2012-04-23 23:36:33 +02:00
Reimar Döffinger c799e46231 Get rid of tests/data/asynth-%.sw rule.
This also avoids an issue with parallel make in some
cases never building asynth-16000-1.sw.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-04-23 23:26:05 +02:00
Michael Niedermayer 2954574126 indeo4: check quant_mat more fully.
quant_mats valid range depends on the block size.
This fixes a global array overread.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-23 21:59:34 +02:00
Reimar Döffinger 53253a0b83 Simplify asynth sample generation.
One rule can be used to generate all asynth files.
Requires renaming the mapchan files though.
Also switch to using the .wav variants for mapchan
while changing the name anyway, this allows getting rid
of the explicitly specified format.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-04-23 21:14:58 +02:00
Yusuke Nakamura 462a5b7839 isom: Support more DTS codec identifiers.
DTS LBR identifier ('dtse') is not included since libavcodec doesn't support it yet.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2012-04-23 14:47:17 -04:00
Dale Curtis 7521c4bab2 matroska: Clear prev_pkt between seeks.
The new incremental parser doesn't always clear prev_pkt,
however the packet queue is cleared when seeking. Which leads
to a use-after-free.

Verified using Valgrind.

Signed-off-by: Dale Curtis <dalecurtis@chromium.org>
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-04-23 14:21:42 -04:00
Justin Ruggles 83b26046fc avutil: change default buffer size alignment for sample buffer functions
Aligning nb_samples will give both correct plane pointer alignment and enough
padding for SIMD-optimized functions.
2012-04-23 14:06:45 -04:00
Michael Niedermayer 068d0b4e25 h264: some fields in SEIs are longer than 25 bits thus use get_bits_long()
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-23 19:41:46 +02:00
Nicolas George 1e43786b4c print_options: warn that the files are generated. 2012-04-23 18:14:25 +02:00
Nicolas George 9b84f8a987 parseutils: add av_parse_time() test. 2012-04-23 14:39:01 +02:00
Nicolas George 43b7068070 parseutils: make av_parse_time() check for failure.
Until now, av_parse_time() would accept "1:00" as "1"
and silently ignore ":00".

This patch also includes a few cosmetic changes.
2012-04-23 14:39:01 +02:00
Nicolas George 9246896f77 parseutils: add FATE test. 2012-04-23 14:39:01 +02:00
Nicolas George 99f29108d3 ffmpeg: directly request frames from filters.
It allows ffmpeg filtering logic to work with filters
that do not implement the poll_frame method,
such as split or tile.
2012-04-23 14:14:25 +02:00
Nicolas George e11110dee4 buffersink: add AV_BUFFERSINK_FLAG_NO_REQUEST. 2012-04-23 14:13:59 +02:00
Nicolas George 2d6522bab0 vsrc_buffer: count the number of failed requests. 2012-04-23 14:13:40 +02:00
Nicolas George f75ee4031e vsrc_buffer: return EAGAIN if no frame is available.
This is not an erroneous condition, do not print a warning.
2012-04-23 14:13:40 +02:00
Nicolas George 2ce7972779 avfiltergraph: add avfilter_graph_request_oldest().
Keep a heap of all sink links ordered by timestamps.
2012-04-23 14:13:40 +02:00
Nicolas George e0761feec4 avfilter: add a pointer from links to graph. 2012-04-23 14:13:40 +02:00
Nicolas George 78ac49c233 avfilter: document request_frame return codes. 2012-04-23 14:13:40 +02:00
Nicolas George 73bc019baf lavf: print a warning if probesize seems not enough. 2012-04-23 12:26:19 +02:00
Michael Niedermayer 4d87001096 vp8: fix crash due to skiped update_dimensions().
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-23 10:47:33 +02:00
Michael Niedermayer 0ca4414d0f audemux: Add a sanity check for the number of channels
Fixes a division by 0.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-04-23 10:47:38 +03:00
Diego Biurrun a229d6c285 Remove libdirac decoder.
libschroedinger is the preferred way to decode Dirac video.
2012-04-23 09:20:24 +02:00
Dale Curtis 8336eb6f85 matroska: Add incremental parsing of clusters.
Reduces the amount of upfront data required for cluster parsing
thus decreasing latency on seek and startup.

The change in the seek-lavf_mkv FATE test is due to incremental
parsing no longer reading as much data as the old parser and
thus not having that additional data to generate index entries
based on keyframes.  Index entries are added correctly as the
file is parsed.

All FATE tests pass and Chrome has been using this patch for ~6
months without issue.

Currently incremental parsing is not supported for files with
SSA tracks since they require merging packets between clusters.
In this case the code falls back to non-incremental parsing.

Signed-off-by: Aaron Colwell <acolwell@chromium.org>
Signed-off-by: Dale Curtis <dalecurtis@chromium.org>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2012-04-22 17:23:50 -07:00
Luca Barbato 1381081cdb avconv: fix off by one check in complex_filter
nb_input_files is already an invalid index.
2012-04-22 17:23:50 -07:00
Martin Storsjö 269cb6751b mpegts: Try seeking back even for nonseekable protocols
The mpegts demuxer reads 5 KB at startup just for discovering
the packet size. Since the default avio buffer size is 32 KB,
the seek back to the start will in most cases be within the
avio buffer, and will in most cases succeed even if the actual
protocol isn't seekable.

This makes the demuxer startup faster/with less data when
reading data from a non-seekable input, by not skipping
the first few KB.

If it fails, don't warn if the protocol isn't seekable, making
it behave as before in the failure case.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-04-23 00:02:49 +03:00
Michael Niedermayer 70d54392f5 lowres2 support.
The new lowres support is limited to decoders where lowres decoding
is possible in high quality.
I was not able to measure any speed difference, but if one is found
the 2-3 lines that might affect speed can be made compile time conditional

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-22 22:26:55 +02:00
Michael Niedermayer 92ef4be4ab Merge remote-tracking branch 'qatar/master'
* qatar/master:
  ARM: allow runtime masking of CPU features
  dsputil: remove unused functions
  mov: Treat keyframe indexes as 1-origin if starting at non-zero.
  mov: Take stps entries into consideration also about key_off.
  Remove lowres video decoding

Conflicts:
	ffmpeg.c
	ffplay.c
	libavcodec/arm/vp8dsp_init_arm.c
	libavcodec/libopenjpegdec.c
	libavcodec/mjpegdec.c
	libavcodec/mpegvideo.c
	libavcodec/utils.c
	libavformat/mov.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-22 22:26:42 +02:00
Carl Eugen Hoyos 2e07f42957 Support flicvideo with 904 bytes extradata.
Fixes ticket #1234.
2012-04-22 22:07:02 +02:00
Michael Niedermayer 2ea5f866e6 ffmpeg: assert the refcount of decoded frames
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-22 20:10:00 +02:00
Michael Niedermayer 22a6a23a45 ffmpeg: assert the refcount of allocated frames,
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-22 20:08:56 +02:00
Michael Niedermayer cf09496cf9 ffmpeg: assert against creation of cycles in the pools linked list.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-22 20:07:04 +02:00
Michael Niedermayer be2b927a6f ffmpeg: stricter refcount check in unref_buffer()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-22 20:05:58 +02:00
Michael Niedermayer 951cbea56f mpeg12dec: reset data size after parsing extradata.
This ended up corrupting data structures and may possibly
lead to a double free.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-22 20:03:53 +02:00
Diego Biurrun 9b75ae05cf swscale: K&R formatting cosmetics (part III) 2012-04-22 17:37:07 +02:00
Michael Niedermayer 41abc9da50 iff: fix null ptr dereference
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-22 17:27:54 +02:00
Michael Niedermayer 52fdaf27f7 audemux: Fix potential integer overflow leading to a division by 0
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-22 15:34:21 +02:00
Michael Niedermayer 8aa57b7b5e audemux: Check channels isnt 0
Fixes a division by 0

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-22 15:34:15 +02:00
Michael Niedermayer fd2127ad53 wtvdec: Check that stream private context has been allocated before use.
This fixes a null ptr dereference with attachments

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-22 15:29:34 +02:00
Michael Niedermayer 9a4f5b7616 mjpegbdec: check SOS/SOF ordering.
Fixes null ptr dereference

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-22 14:58:28 +02:00
Michael Niedermayer abec6549ae ffv1dec: Require a valid keyframe for decoding non keyframes.
Before this the context could become inconsistent, this lead to a null ptr
dereference.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-22 14:58:28 +02:00
Mans Rullgard d526c5338d ARM: allow runtime masking of CPU features
This allows masking CPU features with the -cpuflags avconv option
which is useful for testing different optimisations without rebuilding.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-04-22 12:30:45 +01:00
Nicolas George 23a6e4749f ffmpeg: fix validity test for file index.
Also fix a typo in the next line.
2012-04-22 12:45:35 +02:00
Michael Niedermayer 605f2b6b00 asv1dec: check extradatasize before reading.
Fixes null ptr dereference

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-22 12:16:29 +02:00
Michael Niedermayer fa5dacce14 indeo5: check against scaleable frames in non scaleable streams.
Fixes a null ptr dereference.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-22 12:09:59 +02:00
Michael Niedermayer 2a59abf1a8 smackerdemux: Allocate padding for extradata
Fixes slight overread.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-22 11:23:58 +02:00
Michael Niedermayer f7c67536fe svq1dec: Fix overread on very small input
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-22 11:10:17 +02:00
Michael Niedermayer b21ba20cc8 wmaprodec: tighter check for num_vec_coeffs
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-22 03:49:13 +02:00
Michael Niedermayer c047afb80c Merge remote-tracking branch 'qatar/master'
* qatar/master:
  avcodec: remove AVCodecContext.dsp_mask
  avconv: fix a segfault when default encoder for a format doesn't exist.
  utvideo: general cosmetics
  aac: Handle HE-AACv2 when sniffing a channel order.
  movenc: Support high sample rates in isomedia formats by setting the sample rate field in stsd to 0.
  xxan: Remove write-only variable in xan_decode_frame_type0().
  ivi_common: Initialize a variable at declaration in ff_ivi_decode_blocks().

Conflicts:
	ffmpeg.c
	libavcodec/utvideo.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-21 22:56:07 +02:00
Carl Eugen Hoyos 2f06b56382 Support broken v210 files with 64 byte padding.
Fixes ticket #743.

Reviewed-by: Paul B Mahol
2012-04-21 22:31:11 +02:00
Michael Niedermayer 6c0027bb39 dnxhddec: check that the indicated bit depth matches the tables.
Fixes crash

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-21 21:39:18 +02:00
Michael Niedermayer 8c59e0c362 xldec: move buffer size check up, it can be done before allocating a frame
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-21 21:31:25 +02:00
Michael Niedermayer 94b42da696 xldec: Check that width is a multiple of 4
Fixes out of array reads

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-21 21:30:23 +02:00
Mans Rullgard d7458bc8c6 dsputil: remove unused functions
These functions were left unused by the lowres removal.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-04-21 20:00:39 +01:00
Yusuke Nakamura 94c9bf8887 mov: Treat keyframe indexes as 1-origin if starting at non-zero.
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2012-04-21 14:04:33 -04:00
Yusuke Nakamura ba9869311f mov: Take stps entries into consideration also about key_off.
Splitted files don't start always from a sync sample.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2012-04-21 14:04:33 -04:00
Mans Rullgard 2bcbd98459 Remove lowres video decoding
This feature is complex, of questionable utility, and slows down
normal decoding.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-04-21 18:56:19 +01:00
Michael Niedermayer 80d51680b2 xmvdemux: prefer av_freep() to deallocate audio stream structs.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-21 19:42:44 +02:00
Michael Niedermayer 13381577d1 xmvdemux: dont let current_stream become invalid.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-21 19:41:54 +02:00
Mans Rullgard 95510be8c3 avcodec: remove AVCodecContext.dsp_mask
This removes all references to AVCodecContext.dsp_mask and marks
it for eviction at the next version bump.  It has been superseded
by av_set_cpu_flag_mask() which, unlike this field, works everywhere.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-04-21 18:30:01 +01:00
Michael Niedermayer 5a35bd92ad cook: check subacket count
Fixes out of array writes.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-21 19:28:35 +02:00
Jakub Stachowski 93bf1aac6a wmalossless: Ensure that last frame is not written again if nothing was decoded in current packet.
Reviewed-by: Mashiat Sarker Shakkhar <mashiat.sarker@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-21 19:05:16 +02:00
Nicolas George b27383e453 ffprobe: do not try to decode empty packets.
Fixes sporadic decode failures and trac ticket #997.
2012-04-21 14:02:08 +02:00
Stefano Sabatini dd3043d1c0 lavfi/setfield: remove stray argument in av_log()
Fix warning:
libavfilter/vf_setfield.c: In function ‘init’:
libavfilter/vf_setfield.c:64:20: warning: too many arguments for format [-Wformat-extra-args]
2012-04-21 12:32:50 +02:00
Stefano Sabatini 459414b4d9 lavfi/setfield: rename variable top_field_first to mode
The new name better reflects the meaning of the variable, after the
recent change.
2012-04-21 12:32:38 +02:00
Tim Nicholson c97201dd29 lavfi/setfield: add "progressive" option
Add "prog" parameter value, and deprecate numeric values.

Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
2012-04-21 10:09:49 +02:00
Anton Khirnov 2994913d70 avconv: fix a segfault when default encoder for a format doesn't exist.
Fail earlier and with a more descriptive error message.
2012-04-21 06:48:28 +02:00
Michael Niedermayer 9849515214 Revert "h264: assembly version of get_cabac for x86_64 with PIC (v4)"
This broke compilation on darwin, revert until a better solution is found.

This reverts commit a812b599b5.
2012-04-21 02:09:27 +02:00
Andrew Wason e9b1d5ae5e fix swr_convert buffering of packed audio
swr_convert is not properly buffering packed input audio when the
output is not large enough, and when resampling is not actually needed
(same samplerate and no SWR_FLAG_RESAMPLE).

buf_set() is only handling the first channel and leaving the others as-is.

Sample program to reproduce the problem is here https://gist.github.com/2431768

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-21 01:57:21 +02:00
Jan Ekström b5c3f0b994 utvideo: general cosmetics
General cosmetics, such as keeping lines under 80 characters,
fixing a couple of typos (predition -> prediction) and a
general style fix that was pointed out by Derek when I was having
my sliced multithreading patch in review by him.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2012-04-20 18:37:34 -04:00
Roland Scheidegger a812b599b5 h264: assembly version of get_cabac for x86_64 with PIC (v4)
This adds a hand-optimized assembly version for get_cabac much like the
existing one, but it works if the table offsets are RIP-relative.
Compared to the non-RIP-relative version this adds 2 lea instructions
and it needs one extra register.
There is a surprisingly large performance improvement over the c version (more
so than the generated assembly seems to suggest) just in get_cabac, I measured
roughly 40% faster for get_cabac on a K8. However, overall the difference is
not that big, I measured roughly 5% on a test clip on a K8 and a Core2.
Hopefully it still compiles on x86 32bit...
v2: incorporated feedback from Loren Merritt to avoid rip-relative movs
for every table, and got rid of unnecessary @GOTPCREL.
v3: apply similar fixes to the the decode_significance functions, and use
same macro arguments for non-pic case.
v4: prettify inline asm arguments, add a non-fast-cmov version (as I expect
the c code to be faster otherwise since both cmov and sbb suck hard on a
Prescott, even can't construct the mask with a 64bit shift as that's just as
terrible - it's quite difficult to find usable instructions on that chip...).
This is tested to work but not on a P4, in theory it _should_ be fast there.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-21 00:27:06 +02:00
Alex Converse 7eacd70fea aac: Handle HE-AACv2 when sniffing a channel order. 2012-04-20 14:06:28 -07:00
Alex Converse dc878b96a7 movenc: Support high sample rates in isomedia formats by setting the sample rate field in stsd to 0.
Libisomediafile appears to always set this field to zero.
2012-04-20 13:45:35 -07:00
Michael Niedermayer 3194ab78a6 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  avcodec: add a cook parser to get subpacket duration
  FATE: allow lavf tests to alter input parameters
  FATE: replace the acodec-pcm_s24daud test with an enc_dec_pcm checksum test
  FATE: replace the acodec-g726 test with 4 new encode/decode tests
  FATE: replace current g722 encoding tests with an encode/decode test
  FATE: add a pattern rule for generating asynth wav files
  FATE: optionally write a WAVE header in audiogen
  avutil: add audio fifo buffer

Conflicts:
	doc/APIchanges
	libavcodec/version.h
	libavutil/avutil.h
	tests/Makefile
	tests/codec-regression.sh
	tests/fate/voice.mak
	tests/lavf-regression.sh
	tests/ref/acodec/g722
	tests/ref/acodec/g726
	tests/ref/acodec/pcm_s24daud
	tests/ref/lavf/dv_fmt
	tests/ref/lavf/gxf
	tests/ref/lavf/mxf
	tests/ref/lavf/mxf_d10
	tests/ref/seek/lavf_dv

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-20 22:18:26 +02:00
Reimar Döffinger 9b1f776d75 Fix compilation with NASM.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-04-20 21:16:12 +02:00
Diego Biurrun f973a85d4a xxan: Remove write-only variable in xan_decode_frame_type0().
libavcodec/xxan.c:293:13: warning: variable ‘corr_end’ set but not used
2012-04-20 21:08:35 +02:00
Diego Biurrun b1563d0cf9 ivi_common: Initialize a variable at declaration in ff_ivi_decode_blocks().
This simplifies the code a bit and avoids an uninitialized variable warning.
2012-04-20 21:08:34 +02:00
Reimar Döffinger dd5e1fc22e mxfdec: fix memleak on read error/EOF.
This also matches the rest of the demuxer which will return
partial packets.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-04-20 20:58:45 +02:00
Michael Niedermayer 4a80ebe491 indeo3: Fix reallocation code so that it doesnt become inconsistent.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-20 18:13:29 +02:00
Justin Ruggles b0e9edc44f avcodec: add a cook parser to get subpacket duration
Fixes jittery video playback of rm files with cook audio.
2012-04-20 12:11:20 -04:00
Michael Niedermayer 2c22701c37 ac3dec: Check number of output channels.
Fixes out of array write.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-20 17:52:33 +02:00
Michael Niedermayer 1df49142ba avsdec: Set dimensions instead of relying on the demuxer.
This fixes out of array writes.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-20 17:42:18 +02:00
Nicolas George 34c426be4a ffmpeg: check encoder earlier.
Fixes a segfault with Ogg output, libtheora not compiled in
and no codec specified.
2012-04-20 16:30:58 +02:00
Justin Ruggles acb1730218 FATE: allow lavf tests to alter input parameters
Change some lavf tests to avoid resampling and channel mixing.
2012-04-20 10:23:57 -04:00
Justin Ruggles 5052980400 FATE: replace the acodec-pcm_s24daud test with an enc_dec_pcm checksum test
This avoids resampling and channel mixing by using a source with
the correct channel layout and sample rate.
2012-04-20 10:23:57 -04:00
Justin Ruggles 03caef1bed FATE: replace the acodec-g726 test with 4 new encode/decode tests
Avoids resampling and channel mixing. This only tests the behavior
with respect to input and output audio rather than also testing changes
to the encoder or muxer that do not affect the resulting decoded output.
2012-04-20 10:23:57 -04:00
Justin Ruggles a6c8cca2a8 FATE: replace current g722 encoding tests with an encode/decode test
Avoids resampling and channel mixing. This only tests the behavior
with respect to input and output audio rather than also testing changes
to the encoder or muxer that do not affect the resulting decoded output.
2012-04-20 10:23:57 -04:00
Justin Ruggles 870165e217 FATE: add a pattern rule for generating asynth wav files 2012-04-20 10:23:57 -04:00
Justin Ruggles 010943c6ce FATE: optionally write a WAVE header in audiogen 2012-04-20 10:23:57 -04:00
Justin Ruggles 0c0d1bce7c avutil: add audio fifo buffer
The functions operate on the sample level rather than the byte level and work
with all audio sample formats.
2012-04-20 09:43:11 -04:00
Michael Niedermayer 044f7275d3 ffv1: add optional per slice CRCs to detect undamaged slices.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-20 15:37:23 +02:00
Michael Niedermayer b4fc53856d ffv1: move most fields from the frame header to the slice headers with ffv1.3
This will allow decoding a single undamaged slice even if all others are lost

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-20 15:37:23 +02:00
Michael Niedermayer 9408316a85 ffv1: refactor slice decoding init loop so that the first is less a special case
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-20 15:37:23 +02:00
Michael Niedermayer 8456089f50 ffv1: clear slice state in decode_slice()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-20 15:37:23 +02:00
Michael Niedermayer c7a435aab2 ffv1: split clear_slice_state() out so individual slices can be cleared.
This allows us to clear outside of the main thread for example.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-20 15:37:23 +02:00
Michael Niedermayer 32883c0667 ffv1: split init_slice_state() out so individual slices can be inited
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-20 15:37:23 +02:00
Michael Niedermayer d7a4c43f18 ffv1: Add a CRC check to the global header with version 1.3
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-20 15:37:23 +02:00
Stefano Sabatini 9750254885 lavfi/mp: remove libmpcodecs mirror filter
The native libavfilter hflip filter does the same thing.
2012-04-20 01:01:24 +02:00
Robert Nagy 65fa7bc1f8 lavfi: add avfilter_unref_bufferp()
Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
2012-04-20 01:01:17 +02:00
Michael Niedermayer 455fcf29b8 avidec: zero extradata padding
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-19 22:52:34 +02:00
Michael Niedermayer ee402df9a2 mtvdec: check that the buf is large enough for probing
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-19 22:11:19 +02:00
Michael Niedermayer 2a70d8304d jvdec: Make sure there is enough data for the id string.
Previously too little data could lead to a false detection.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-19 21:43:15 +02:00
Michael Niedermayer 2a976debc1 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  dv: Initialize encoder tables during encoder init.
  dv: Replace some magic numbers by the appropriate #define.
  FATE: pass the decoded output format and audio source file to enc_dec_pcm
  FATE: specify the input format when decoding in enc_dec_pcm()
  x86inc: support AVX abstraction for 2-operand instructions
  configure: detect PGI compiler and set suitable flags
  avconv: check for an incompatible changing channel layout
  avio: make AVIOContext.av_class pointer to const
  nutdec: add malloc check and fix const to non-const conversion warnings

Conflicts:
	ffmpeg.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-19 21:23:52 +02:00
Michael Niedermayer 2ff935f4bb build system: remove -wcast-qual
Generating warnings when casting const away leads to tight constraints
on the code if one wants to avoid warnings. This is especially true for
generic code that is supposed to work with both const and non const.
These tight constrains cause people to waste time trying to find a
way to write code so it doesnt generate any warning, while people
should rather spend their time thinking on how to write fast,
clean, maintainable and bug free code.
Removing this class of warnings fixes this issue.

Approved-by: Nicolas George <nicolas.george@normalesup.org>
Approved-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-19 20:01:33 +02:00
Michael Niedermayer a9cd12ee2a mlpdec: set channel variables after checking them
This fixes out of array reads

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-19 20:01:33 +02:00
Carl Eugen Hoyos ab75ad0116 Make targa-in-mov QuickTime-compatible for more colour-spaces.
See ticket #1228.
2012-04-19 17:29:17 +02:00
Nico Weber a4a88fd42c Remove .rodata alignment kludge for Mach-O if a recent enough yasm is used.
Yasm was fixed in its r2161 and yasm 0.8.0 (Apr 2010) contained this fix.
Nasm was fixed in 2.06 (Jun 2009):
https://groups.google.com/group/alt.lang.asm/browse_thread/thread/fcc85bbc3745d893

I tested with yasm  0.7.99 and yasm 1.2.0.7, where this works fine.

I also tested with nasm. The nasm shipping with Xcode is too old to understand
ffmpeg's assembly, before and after the patch. Nasm 2.10 fails to compile
fft_mmx.asm on trunk with

  libavcodec/x86/fft_mmx.asm:88: panic: section ".text" has already been specified with alignment 32, conflicts with new alignment of 16

but builds fine if I change the two alignment "16"s in x86inc.asm to "32". With this patch,
nasm 2.10 fails with

  libavcodec/x86/fft_mmx.asm:39: panic: section ".rodata" has already been specified with alignment 32, conflicts with new alignment of 16

instead, but again builds fine with s/16/32/.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-19 17:14:47 +02:00
Carl Eugen Hoyos b4043ef504 Print unexpected length of flicvideo extradata. 2012-04-19 16:08:12 +02:00
Matthieu Bouron cbda76c7c6 mxfdec: Add missing break in frame layout parsing
Reviewed-by: Tomas Härdin <tomas.hardin@codemill.se>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-19 15:08:22 +02:00
Matthieu Bouron 70ca163bc5 mxf: Fix frame layout values
Reviewed-by: Tomas Härdin <tomas.hardin@codemill.se>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-19 15:08:13 +02:00
Michael Niedermayer c90b8a7480 h263dec: Check for width/height changes on frame skips too.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-19 14:37:35 +02:00
Diego Biurrun 2b98377935 dv: Initialize encoder tables during encoder init. 2012-04-19 14:35:22 +02:00
Michael Niedermayer 903ccf71b7 error_concealment: Check that the reference is not NULL
In normal picture decoding this does not need to be checked but as
error concealment is run in the case of errors the availability of
references is less certain. This may be fixed differently at some
point so that all references are always filled in before the EC
code, in which case this should then be changed to an assert()

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-19 12:56:49 +02:00
Michael Niedermayer b066046046 error_concealment: make sure mbaff flags are 0 as interlaced is not supported.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-19 12:56:49 +02:00
Michael Niedermayer b7c2358f62 error_concealment: switch asserts mostly to av_asserts.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-19 12:56:49 +02:00
Michael Niedermayer 5e59a77cec vc1dec: check that coded slice positions and interlacing match.
This fixes out of array writes

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-19 11:16:56 +02:00
Michael Niedermayer df23d64e07 h263dec: always enable picture dimensions reverting check.
This does not need to be limited to threads and may help with error
resilience on single thread

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-19 11:16:50 +02:00
Diego Biurrun f2e4465522 dv: Replace some magic numbers by the appropriate #define. 2012-04-19 10:43:32 +02:00
Justin Ruggles 9cc338b1de FATE: pass the decoded output format and audio source file to enc_dec_pcm
This will allow decoding to md5 and doing a diff comparison to a reference
checksum instead of a fuzzy stddev or oneoff comparison.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-04-18 22:26:56 -04:00
Justin Ruggles c755b1fbbc FATE: specify the input format when decoding in enc_dec_pcm()
The output format is not always the same as the file extension,
which is sometimes required for correct probing. We can avoid
probing by specifying the format since it is already known.
2012-04-18 22:26:49 -04:00
Loren Merritt 705f3d4759 x86inc: support AVX abstraction for 2-operand instructions
Add cvtdq2ps and cvtps2dq to the AVX instruction list.

Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-04-18 21:14:32 -04:00
Mans Rullgard e73ec9216b configure: detect PGI compiler and set suitable flags
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-04-19 02:02:49 +01:00
Justin Ruggles d8b06521a9 avconv: check for an incompatible changing channel layout
The decoder can change the layout and channel count during decoding,
but currently we only validate that the two are compatible when opening
the codec. This checks for incompatibilities after each decoded frame.
2012-04-18 21:02:16 -04:00
Michael Niedermayer 74e4bb6912 Merge remote-tracking branch 'hexene/stagefright'
* hexene/stagefright:
  libstagefright: avoid memory leak
  libstagefright: support more output pixel formats
  libstagefright: avoid potential deadlock on output MediaBuffer
  libstagefright: explicitly set positive timestamps as stagefright expects them so
  Merge branches 'stagefright' and 'stagefright-test' into stagefright-test

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-19 01:58:30 +02:00
Mans Rullgard 6208313aeb avio: make AVIOContext.av_class pointer to const
Fix this warning:
libavformat/aviobuf.c:663:20: warning: assignment discards qualifiers from pointer target type

Although this is a public header, it should remain source and
binary compatible.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-04-18 23:54:20 +01:00
Mans Rullgard 9d72c0527c nutdec: add malloc check and fix const to non-const conversion warnings
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-04-18 23:54:20 +01:00
Mohamed Naufal f51b7e52a6 libstagefright: avoid memory leak 2012-04-19 03:00:41 +05:30
Carl Eugen Hoyos dddd06d5b4 Make tiff-in-mov QuickTime-compatible for more colour-spaces.
Fixes ticket #1228.
2012-04-18 22:33:51 +02:00
Mohamed Naufal 2343a99cf2 libstagefright: support more output pixel formats 2012-04-19 01:42:12 +05:30
Michael Niedermayer e366e6bfab Merge remote-tracking branch 'qatar/master'
* qatar/master:
  ppc: drop unused function dct_quantize_altivec()
  mpegaudiodec: Do not discard mp_decode_frame() return value.
  matroska: do not set invalid default duration if frame rate is zero
  mkv: use av_reduce instead of av_d2q for framerate estimation
  mkv: report average framerate as minimal as well
  avcodec_string: Favor AVCodecContext.codec over the default codec.
  cook: Make constants passed to AV_BE2NE32C() unsigned to avoid signed overflow.

Conflicts:
	libavcodec/cook.c
	libavcodec/ppc/mpegvideo_altivec.c
	libavcodec/utils.c
	libavformat/matroskadec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-18 22:08:28 +02:00
Mohamed Naufal 1d48e88d41 libstagefright: avoid potential deadlock on output MediaBuffer
Maintain an output queue of AVFrames instead of MediaBuffers
so that the latter can be released early. This avoids a potential deadlock
between the stagefright decoder::read() and Stagefright_decode_frame()
2012-04-19 01:08:50 +05:30
Michael Niedermayer a02f8ef1d2 h263dec: Prevent dimension changes from leaking on errors in header parsing.
This fixes crashes with frame threads caused by inconsistent context parameters.

Fixes Ticket1207

Found-by: John Villamil
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-18 21:21:28 +02:00
Mohamed Naufal 7b915a4045 libstagefright: explicitly set positive timestamps as stagefright expects them so 2012-04-19 00:02:53 +05:30
Diego Biurrun 0f53601ac6 ppc: drop unused function dct_quantize_altivec()
This also allows dropping some PPC-specific ugliness from dsputil.[ch].
2012-04-18 18:53:54 +02:00
Diego Biurrun aa3f2cb584 mpegaudiodec: Do not discard mp_decode_frame() return value.
This fixes the warning:
libavcodec/mpegaudiodec.c:1704:14: warning: variable ‘out_size’ set but not used
2012-04-18 18:28:24 +02:00
Michael Niedermayer 601d072e68 diracdec: check xybsep
Fixes division by 0

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-18 16:49:46 +02:00
Michael Niedermayer e531e73a6f indeo: Make sure the to be used vlc table has been initilaized.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-18 16:42:34 +02:00
Robert Nagy c58290e5e5 Reset pts_correction state on codec flush.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-18 15:34:34 +02:00
Michael Niedermayer 9ed388f598 ogm: Fix division by 0
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-18 15:30:34 +02:00
Michael Niedermayer 8201092241 h264: reset current_slice on context reinit
This fixes a null pointer dereference

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-18 15:30:34 +02:00
Michael Niedermayer 9f39d3d190 lavf: check that the context to avformat_open_input() is valid.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-18 15:30:34 +02:00
Michael Niedermayer abe6330317 AVoption doxy: clarify a few needs in relation to AVClass less structs.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-18 15:30:34 +02:00
Mans Rullgard 3c58300269 matroska: do not set invalid default duration if frame rate is zero
If a video track specifies a zero frame rate (invalid but occurs),
this results in a division by zero and subsequent undefined conversion
to integer.  Setting the default duration from the frame rate only
if the latter is greater than zero avoids such problems.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-04-18 13:48:20 +01:00
Alexander Bokovikov fc882b6e9c Fix build dependencies for libvo-aac and libopencore-amrnb. 2012-04-18 10:32:13 +02:00
Michael Niedermayer 124eb7e476 aacdec: drop channel reseting code.
its no longer needed and causes a race with the flv demuxer.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-18 09:43:13 +02:00
Michael Niedermayer aa0f84df5a aacdec: disable new chan_config guessing code from libav.
It causes more problems than it solves.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-18 09:37:38 +02:00
Michael Niedermayer dbe29db8cb aacdec: more verbose overread error message
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-18 09:36:41 +02:00
Luca Barbato ac97d47d9b mkv: use av_reduce instead of av_d2q for framerate estimation
It avoids some rounding errors.
2012-04-17 16:37:42 -07:00
Michael Niedermayer 68526dbc29 aacdec: reduce difference to alexs version of aacdec.c
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-18 00:50:18 +02:00
Luca Barbato 204bcdf56c mkv: report average framerate as minimal as well
This is in line with other demuxers and overall seems more correct
than assuming codec time base.
2012-04-17 15:47:22 -07:00
Michael Niedermayer 1232723741 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  aacenc: Fix issues with huge values of bit_rate.
  dv_tablegen: Drop unnecessary av_unused attribute from dv_vlc_map_tableinit().
  proresenc: multithreaded quantiser search
  riff: use bps instead of bits_per_coded_sample in the WAVEFORMATEXTENSIBLE header
  avconv: only set the "channels" option when it exists for the specified input format
  avplay: update get_buffer to be inline with avconv
  aacdec: More robust output configuration.
  faac: Fix multi-channel ordering
  faac: Add .channel_layouts
  rtmp: Support 'rtmp_playpath', an option which overrides the stream identifier
  rtmp: Support 'rtmp_app', an option which overrides the name of application
  avutil: add better documentation for AVSampleFormat

Conflicts:
	libavcodec/aac.h
	libavcodec/aacdec.c
	libavcodec/aacenc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-18 00:28:06 +02:00
Alex Converse df8d5eaa14 avcodec_string: Favor AVCodecContext.codec over the default codec.
This improves output for formats with more than one AVCodec.
2012-04-17 14:51:23 -07:00
Alex Converse b5d2bf964b cook: Make constants passed to AV_BE2NE32C() unsigned to avoid signed overflow. 2012-04-17 14:51:23 -07:00
Michael Niedermayer a66675268f indeo5: dont run the wavelet transform over partially decoded bands.
This fixes a null pointer dereference.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-17 20:02:13 +02:00
Robert Nagy e90dfa6881 yadif: Improve pts calculation for is_second.
Tested-by: Robert Nagy <ronag89@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-17 19:41:16 +02:00
sebist 7a3d2258a6 CrystalHD: Set aspect ratio.
Signed-off-by: sebist <sebok.istvan@gmail.com>
Reviewed-by: Philip Langdale <philipl@overt.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-17 19:36:15 +02:00
sebist e128182afd CrystalHD: fix pStride value.
Signed-off-by: sebist <sebok.istvan@gmail.com>
Reviewed-by: Philip Langdale <philipl@overt.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-17 19:34:51 +02:00
Michael Niedermayer ebf6d1d295 nuv: check buffer size before checking content.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-17 19:32:04 +02:00
Michael Niedermayer 096231d497 avidec: Dont crash on avi packets that belong to dv streams in dv in avi
Fixes null pointer dereference

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-17 17:58:19 +02:00
Michael Niedermayer 9789b6ca48 avidec: document early_exit argument
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-17 17:58:19 +02:00
Michael Niedermayer 2677697ac9 matroskadec: check headerstrip data availability.
Fixes null ptr dereference

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-17 17:58:19 +02:00
Reimar Döffinger 0f96f0d996 aacenc: Fix issues with huge values of bit_rate.
Do not pointlessly call ff_alloc_packet multiple times,
and fix an infinite loop by clamping the maximum
number of bits to target in the algorithm that does
not use lambda.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2012-04-17 10:25:28 -04:00
Robert Nagy a80217a5ee copy pts and format props between lavfi buffer and frame.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-17 16:07:23 +02:00
Michael Niedermayer c7c976c6d7 oggdec: Safety check against stream counts being inconsistent in seek()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-17 14:44:06 +02:00
Michael Niedermayer 9bb3b7d028 oggdec: Recreate streams only in the 1 stream case.
Other cases are not supported and lead to inconsistencies which
can lead to out of array writes.

Reported-by: Dale Curtis <dalecurtis@chromium.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-17 14:03:26 +02:00
Diego Biurrun db6e26d70c dv_tablegen: Drop unnecessary av_unused attribute from dv_vlc_map_tableinit(). 2012-04-17 13:36:43 +02:00
Michael Niedermayer 15141f939d Merge remote-tracking branch 'qatar/master'
* qatar/master:
  indeo3: add parens around some macro arguments
  h264: use proper PROLOGUE statement for a function using 8 registers.
  doc: Update sample Vim config with suitable (function) indentation settings.
  dv: Merge dvquant.h into dvdata.c where all other DV tables reside.
  dv: Move static tables only used in one place to where they are used.
  graphparser: set next to NULL on an entry extracted from inputs list
  doc/filters: update documentation.
  avconv: flush decoders immediately after an EOF.
  avconv: send EOF to vsrc_buffer.
  avconv: reindent.

Conflicts:
	doc/filters.texi
	ffmpeg.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-17 12:13:22 +02:00
Nicolas George 68ca49dc72 fate: libavutil tests do not require SAMPLES. 2012-04-17 12:01:31 +02:00
Nicolas George b0e7321cf0 parseutils: include errors in test output. 2012-04-17 11:03:29 +02:00
Kostya Shishkov 83632cbb11 proresenc: multithreaded quantiser search 2012-04-17 07:43:59 +02:00
Justin Ruggles 8099fc763b riff: use bps instead of bits_per_coded_sample in the WAVEFORMATEXTENSIBLE header
This matches the value for the plain WAVEFORMATEX header.
Also fixes stream copy to WAVE for non-16-bit raw pcm.
2012-04-17 00:09:19 -04:00
Justin Ruggles b1041f8048 avconv: only set the "channels" option when it exists for the specified input format
This allows the user to specify an input channel layout without avconv aborting because the
"channels" option was not found.
2012-04-16 23:44:49 -04:00
Michael Niedermayer 788a60d9d6 ffmpeg: make max frames work again, after merge
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-17 04:37:08 +02:00
Michael Niedermayer 56b9d9b5cd vf_thumbnail: colorspace changed from yv12 to rgb
Not fully investigated but thumbnail supports rgb and not yv12 so
this is better ...

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-17 04:06:27 +02:00
Michael Niedermayer 9bf4134148 fate: fix vp8 size change regression
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-17 04:06:12 +02:00
Michael Niedermayer 5cd460ba63 vsrc_buffer: fix null ptr segfault
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-17 04:06:06 +02:00
Michael Niedermayer 0d115d7799 avfiltergraph: More advanced heuristic to select colorspace.
This fixes regressions caused by switching from ffmpegs system to avfilters.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-17 04:05:56 +02:00
Michael Niedermayer 128fa1295c fate: gif: change checksum to bgr8 from rgb8 as thats what gets selected now
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-17 04:05:44 +02:00
Michael Niedermayer 84cd3729ef imgconvert: fix regression with fate-gif colorspaces.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-17 04:05:14 +02:00
Michael Niedermayer 052ab20805 ffmpeg: fix regression with jpeg pix fmts
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-17 04:05:01 +02:00
Michael Niedermayer 89f8637979 ffmpeg: fix regression with png
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-17 04:04:56 +02:00
Michael Niedermayer 8a28fa010a ffmpeg: choose_pix_fmt: pass target fmt in
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-17 04:04:49 +02:00
Michael Niedermayer 4778783160 Merge commit '3b266da3d35f3f7a61258b78384dfe920d875d29'
* commit '3b266da3d35f3f7a61258b78384dfe920d875d29':
  avconv: add support for complex filtergraphs.
  avconv: make filtergraphs global.
  avconv: move filtered_frame from InputStream to OutputStream.
  avconv: don't set output width/height directly from input value.
  avconv: move resample_{width,height,pix_fmt} to InputStream.
  avconv: remove a useless variable from OutputStream.
  avconv: get output pixel format from lavfi.
  graphparser: fix the order in which unlabeled input links are returned.
  avconv: change {input,output}_{streams,files} into arrays of pointers.
  avconv: don't pass input/output streams to some functions.

Conflicts:
	cmdutils.c
	cmdutils.h
	doc/ffmpeg.texi
	ffmpeg.c
	ffplay.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-17 04:03:50 +02:00
Luca Barbato 6943fb47d3 avplay: update get_buffer to be inline with avconv
The buffer must have its dimension, pixel format and aspect ratio
set.
2012-04-16 15:12:03 -07:00
Alex Converse 9fb7e14635 aacdec: More robust output configuration.
Save the old output configuration (if it has been used
successfully) when trying a new configuration. If the new configuration
fails to decode, restore the last successful configuration.
2012-04-16 14:09:52 -07:00
Carl Eugen Hoyos af2f655c02 faac: Fix multi-channel ordering
Signed-off-by: Alex Converse <alex.converse@gmail.com>
2012-04-16 14:09:52 -07:00
Alex Converse ca332b1d8c faac: Add .channel_layouts 2012-04-16 14:09:51 -07:00
Nicolas George dcd207c4cb matroskadec: use av_grow_packet in merge_packets.
It ensures that the packet is properly padded
and makes the code simpler.

Fixes trac ticket #1223.
2012-04-16 22:17:24 +02:00
Reimar Döffinger 1a65d50ee7 mem.c: fix wrong comment.
Overwriting the av_malloc etc. functions is not easily
possible anymore, even for systems that support overriding
symbols in shared libraries in principle.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-04-16 22:13:12 +02:00
Reimar Döffinger 071292b8c9 Respect -copyinkf for subtitles.
Necessary to make it possible to copy teletext streams
(trac issue #531).

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-04-16 22:13:12 +02:00
Reimar Döffinger 4a95876f4d Add skip_to_keyframe stream variable.
This replaces the matroskadec one with the same name.
The advantage is not only easier reuse in other demuxers
but also that we can make the decisions after the parser.
This fixes seeking in files that mark the keyframes incorrectly,
for example the file in track ticket #1003.
The matroska variable is still kept to be able to complain
about such broken files.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-04-16 22:13:11 +02:00
Samuel Pitoiset b3b1751201 rtmp: Support 'rtmp_playpath', an option which overrides the stream identifier
This option is the stream identifier to play or to publish.
Sometimes the URL parser cannot determine the correct
playpath automatically, so it must be given explicitly
using this option (ie. -rtmp_playpath).

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-04-16 23:11:58 +03:00
Samuel Pitoiset 6465562e13 rtmp: Support 'rtmp_app', an option which overrides the name of application
This option is the name of application to connect on the RTMP server.
Sometimes the URL parser cannot determine the app name automatically,
so it must be given explicitly using this option (ie. -rtmp_app).

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-04-16 23:11:53 +03:00
Justin Ruggles 5e8280d177 avutil: add better documentation for AVSampleFormat 2012-04-16 15:26:55 -04:00
Michael Niedermayer 4fa706a4a6 svq3: check the watermark height.
Fixes division by 0

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-16 18:36:40 +02:00
Michael Niedermayer efe1ba7201 diracdec: check lowdelay bytes.
Fixes division by zero

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-16 18:36:39 +02:00
Michael Niedermayer a30165c4a8 omadec: make sample rate table large enough to prevent out of array reading.
The new values lead to error messages when used

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-16 18:36:39 +02:00
Michael Niedermayer c963189bc2 g729dec: initialize pitch_delay_int_prev to the minimum valid value.
This prevents an out of array read

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-16 18:36:34 +02:00
Mans Rullgard 8b84e082ed indeo3: add parens around some macro arguments
Without these, the expansion contains things like --1 with
some compilers resulting in build errors.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-04-16 16:09:08 +01:00
Ronald S. Bultje 87a246341b h264: use proper PROLOGUE statement for a function using 8 registers.
Fixes crashes when using biweight on win64.
2012-04-16 08:07:21 -07:00
Michael Niedermayer 31a45014f4 loco: fix 10l typo (missing case)
Found-by: Clément Bœsch <ubitux@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-16 16:46:53 +02:00
Michael Niedermayer 47f0beadba dsicinav: Check for overread in RLE decode.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-16 16:44:12 +02:00
Michael Niedermayer 71d3c25a7e smacker: Check get_vlc() return values.
Fixes out of array reads

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-16 16:39:02 +02:00
Michael Niedermayer 8e77c3846e dcadec: fix global array overread.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-16 16:27:34 +02:00
Carl Eugen Hoyos bdeb54e176 Support decoding LOCO_CRGBA.
Fixes a part of ticket #1222.
2012-04-16 16:19:41 +02:00
Michael Niedermayer 884efd4e09 indeo4: avoid storing invalid values in quant_mat.
Fixes a global array overread

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-16 15:27:39 +02:00
Michael Niedermayer 474e31c904 4xmdemux: Check chunk size
Fixes over reading the header array

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-16 15:27:39 +02:00
Michael Niedermayer e74fa25cb9 omadec: check GEOB sizes against buffer size
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-16 13:51:40 +02:00
Michael Niedermayer a10f71c1d6 vc1dec: add missing terminating element to mpeg4_video_profiles
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-16 13:41:17 +02:00
Michael Niedermayer e985cfd18b vc1dec: check end_mb_y / start_mb_y validity
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-16 13:36:11 +02:00
Michael Niedermayer c4ce870967 flvdec: allocate large enough buffer so get_bits() doesnt overread
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-16 12:01:55 +02:00
Michael Niedermayer fa1b2c8e18 ffv1: attempt to workaround intel CC fate issue.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-16 12:01:46 +02:00
Diego Biurrun b553a425fb doc: Update sample Vim config with suitable (function) indentation settings. 2012-04-16 10:12:45 +02:00
Diego Biurrun a3dbd459ff dv: Merge dvquant.h into dvdata.c where all other DV tables reside. 2012-04-16 10:04:57 +02:00
Diego Biurrun 05afc5f57d dv: Move static tables only used in one place to where they are used. 2012-04-16 10:04:56 +02:00
Anton Khirnov aff01de641 graphparser: set next to NULL on an entry extracted from inputs list
Prevents it from referring to the rest of the list.
2012-04-16 09:28:34 +02:00
Michael Niedermayer 8dfb13ea59 adxdec: Check available space before decoding block.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-16 02:18:10 +02:00
Michael Niedermayer 6d24fe2c3c segafilm: make the loop condition in film_read_packet() match the contents.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-16 02:18:09 +02:00
Robert Nagy ed66bbfcb9 lavfi/aresample: properly propagate pts == AV_NOPTS_VALUE;
Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
2012-04-16 01:08:00 +02:00
Robert Nagy 4d84c7ded6 yadif: fixed missing error handling for poll_frame.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-15 23:44:38 +02:00
Michael Niedermayer 3be0c86b97 sws: remove cliping in yuv2rgb code.
This code should not be needed and it slows things down.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-15 23:38:42 +02:00
Michael Niedermayer 689e59b7ff mov: reset dref_count on realloc to keep values consistent.
This fixes a potential crash.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-15 23:37:09 +02:00
Michael Niedermayer 35e0496a7b Merge remote-tracking branch 'qatar/master'
* qatar/master:
  doc: Improve suggested Emacs settings for our coding style.
  utvideo: Remove unused variable 'src_size'
  mov: free memory on header parsing failure
  mov: fix leaking memory with multiple drefs.
  swscale: clip before assigning tables in RGB output functions.
  swscale: fix off-by-one in second coefficient in bilinear filters.

Conflicts:
	libavformat/mov.c
	libswscale/output.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-15 23:31:51 +02:00
Michael Niedermayer 88a97d660d indeo5: check for unsupported luma block type
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-15 21:02:01 +02:00
Anton Khirnov 7ce118bae5 doc/filters: update documentation. 2012-04-15 20:37:47 +02:00
Anton Khirnov 9e8aae443b avconv: flush decoders immediately after an EOF.
Prevents extensive buffering when overlaying a single picture.
2012-04-15 20:37:47 +02:00
Anton Khirnov 89605e4aa0 avconv: send EOF to vsrc_buffer. 2012-04-15 20:37:47 +02:00
Anton Khirnov 3e901cbc75 avconv: reindent. 2012-04-15 20:37:42 +02:00
Anton Khirnov 3b266da3d3 avconv: add support for complex filtergraphs. 2012-04-15 20:32:09 +02:00
Anton Khirnov 560f7774a4 avconv: make filtergraphs global.
This is the first step towards supporting complex filtergraphs with more
than one input and/or output.
2012-04-15 20:27:32 +02:00
Anton Khirnov 836ce90566 avconv: move filtered_frame from InputStream to OutputStream.
It more properly belongs to output, not input.
2012-04-15 20:24:07 +02:00
Anton Khirnov 6c9eac1998 avconv: don't set output width/height directly from input value.
Always take it from lavfi. This way we don't need a clearly defined
corresponding input stream.
2012-04-15 20:23:09 +02:00
Anton Khirnov e77c86629f avconv: move resample_{width,height,pix_fmt} to InputStream.
This is a more proper place for them, since they store parameters of the
input, not output, stream.
2012-04-15 20:23:09 +02:00
Anton Khirnov 9dced85426 avconv: remove a useless variable from OutputStream. 2012-04-15 20:22:36 +02:00
Anton Khirnov b7327887ea avconv: get output pixel format from lavfi.
This way we don't require a clearly defined corresponding input stream.

The result for the xwd test changes because rgb24 is now chosen instead
of bgra.
2012-04-15 20:22:36 +02:00
Michael Niedermayer fefc65675e tiffdec: check overread for packbits
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-15 20:20:43 +02:00
Thilo Borgmann 2837d8dc27 alsdec: fix number of decoded samples in first sub-block in BGMC mode.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-15 20:20:37 +02:00
Anton Khirnov 7af99a01c4 graphparser: fix the order in which unlabeled input links are returned. 2012-04-15 20:20:03 +02:00
Anton Khirnov 2e21526790 avconv: change {input,output}_{streams,files} into arrays of pointers.
Right now, they are arrays of structs, reallocated when new
streams/files are added. This makes storing pointers to those structs
harder than necessary.
2012-04-15 20:20:03 +02:00
Anton Khirnov ea9367e921 avconv: don't pass input/output streams to some functions.
They are globals, no point in pretending they are not.
2012-04-15 20:20:03 +02:00
Michael Niedermayer 44c4170c52 lzw: check for overread
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-15 18:21:53 +02:00
Michael Niedermayer a63c813797 pngdec: check bits_per_pixel for palette mode.
This fixes a out of array read

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-15 18:21:53 +02:00
Michael Niedermayer c7dc19d68f png: make sure the previous frames dimensions match before using it as reference
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-15 18:21:53 +02:00
Nicolas George a9e7e98021 error: ensure error codes are signed negative ints.
Based on a patch by Robert Nagy <ronag89@gmail.com>.

It makes a difference when the error code is immediately cast
into a larger integer, such as an int64_t.
2012-04-15 17:58:33 +02:00
Michael Niedermayer 3118e3b137 ff_lag_rac_init: fix signedness error leading to out of array read.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-15 17:01:38 +02:00
Michael Niedermayer 20335598f2 qdm2_fft_decode_tones: fix infinite loop
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-15 17:01:38 +02:00
Michael Niedermayer 1a974679d0 qdm2: Check vlc_stage3_values index.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-15 16:54:55 +02:00
Carl Eugen Hoyos cb8f5194b3 Set bits_per_coded_sample when encoding Microsoft Video-1.
Fixes ticket #1193.
2012-04-15 16:35:03 +02:00
Carl Eugen Hoyos 8cb9f99e9f Support decoding unaligned rgb24 lagarith.
Fixes ticket #1214.
2012-04-15 16:34:33 +02:00
Diego Biurrun 3892e784f2 doc: Improve suggested Emacs settings for our coding style.
Switch from changing global values to defining a separate C style
and add appropriate settings for indenting assignments that span
more than one line.
2012-04-15 16:18:03 +02:00
Michael Niedermayer b1096b6ee7 xan: check for vector_segment overread
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-15 16:06:52 +02:00
Michael Niedermayer b962932cba eatgv: check vector_bits
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-15 16:06:51 +02:00
Nicolas George 34123ab979 tiny_psnr: reindent after last commit. 2012-04-15 15:46:46 +02:00
Nicolas George e6f7e22d18 tiny_psnr: support unseekable raw files.
If either one of the files if not seekable,
do not try to read headers.

It allows to use it with pipes on whole rawvideo data.
2012-04-15 15:28:52 +02:00
Michael Niedermayer 93927eb334 ff_ivi_decode_blocks: fix negative scan_pos case.
Fixes out of global array read.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-15 14:59:21 +02:00
Michael Niedermayer f0bf9e9c2a indeo: Check allocated tile size in ff_ivi_process_empty_tile()
This prevents writing into a too small array if some parameters changed
without the tile being reallocated.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-15 14:59:20 +02:00
Michael Niedermayer 5ad7335eba indeo5: check tile size in decode_mb_info().
This prevents writing into a too small array if some parameters changed
without the tile being reallocated.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-15 14:59:20 +02:00
Nicolas George b7027685b8 configure: add dependencies for colormatrix test. 2012-04-15 14:21:14 +02:00
Michael Niedermayer af38823709 indeo5: set transform_size like indeo4 does to prevent useage of too large transforms.
I dont know if this is needed, its a precautionary change.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-15 13:33:18 +02:00
Michael Niedermayer 0846719dd1 indeo4: check transform size.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-15 13:26:19 +02:00
Derek Buitenhuis 5a59d2c40b utvideo: Remove unused variable 'src_size'
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2012-04-15 00:24:19 -04:00
Derek Buitenhuis 5096399df2 utvideo: Remove unused variable 'src_size'
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2012-04-15 00:18:28 -04:00
Dale Curtis c788782c7d mov: free memory on header parsing failure
Call mov_read_close when mov_read_header fails.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2012-04-14 19:41:52 -07:00
Dale Curtis 4ebd422c04 mov: fix leaking memory with multiple drefs.
Instead of allocating over the original, free first. MOVStreamContext
is zero initialized so no double free will occur. Same style as other
fixes for the same problem in this file.

Signed-off-by: Dale Curtis <dalecurtis@chromium.org>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2012-04-14 19:41:52 -07:00
Ronald S. Bultje 7f77e9041a swscale: clip before assigning tables in RGB output functions. 2012-04-14 16:29:24 -07:00
Ronald S. Bultje 4860625236 swscale: fix off-by-one in second coefficient in bilinear filters.
If coefficient A is 12-bits xixed-point number "X", then the other
coefficient is (1 << 12) - X, not (1 << 12) - X - 1.
2012-04-14 16:29:10 -07:00
Michael Niedermayer c354576457 mpegvideo_enc: fix dts
Fixes Ticket1200

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-15 01:08:13 +02:00
Michael Niedermayer 7432bcfe5a Merge remote-tracking branch 'qatar/master'
* qatar/master:
  vsrc_buffer: fix check from 7ae7c41.
  libxvid: Reorder functions to avoid forward declarations; make functions static.
  libxvid: drop some pointless dead code
  wmal: vertical alignment cosmetics
  wmal: Warn about missing bitstream splicing feature and ask for sample.
  wmal: Skip seekable_frame_in_packet.
  wmal: Drop unused variable num_possible_block_size.
  avfiltergraph: make the AVFilterInOut alloc/free API public
  graphparser: allow specifying sws flags in the graph description.
  graphparser: fix the order of connecting unlabeled links.
  graphparser: add avfilter_graph_parse2().
  vsrc_buffer: allow using a NULL buffer to signal EOF.
  swscale: handle last pixel if lines have an odd width.
  qdm2: fix a dubious pointer cast
  WMAL: Do not try to read rawpcm coefficients if bits is invalid
  mov: Fix detecting there is no sync sample.
  tiffdec: K&R cosmetics
  avf: has_duration does not check the global one
  dsputil: fix optimized emu_edge function on Win64.

Conflicts:
	doc/APIchanges
	libavcodec/libxvid_rc.c
	libavcodec/libxvidff.c
	libavcodec/tiff.c
	libavcodec/wmalosslessdec.c
	libavfilter/avfiltergraph.h
	libavfilter/graphparser.c
	libavfilter/version.h
	libavfilter/vsrc_buffer.c
	libswscale/output.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-14 22:37:43 +02:00
Michael Niedermayer 01bf2ad735 indeo4: setup width/height properly.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-14 20:04:51 +02:00
Michael Niedermayer 0b27136c65 matroskadec: fix null pointer dereference
Fixes: Ticket1206
Found-by: John Villamil
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-14 19:33:24 +02:00
Anton Khirnov 7bf9e3391f vsrc_buffer: fix check from 7ae7c41.
The user submitted variable in this function is frame, not buf.
2012-04-14 18:58:20 +02:00
Michael Niedermayer c42efad3c3 wtvdec: fix name_size check to consider integer overflows.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-14 18:54:10 +02:00
Michael Niedermayer 83c7803f55 lagarith: check count before writing zeros.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-14 18:54:10 +02:00
Jakub Stachowski 56dcfe87ef Clear residues only in not coded channel. This fixes overwriting coded residues with zeros if first channel is coded and second is not.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-14 18:54:09 +02:00
Reimar Döffinger b44a5ec76e latmenc: replace per-frame malloc/free by constant size buffer.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-04-14 18:21:19 +02:00
Reimar Döffinger d05625bd04 avidec: handle 0-size packets that exist only in index.
0-sized packets are used to implement variable fps.
However there seems to be a variation where these are not
even stored in the main file but as 0-size index entries
only.
This fixes the sample in trac issue #957, it now plays both
the same ways as in MPlayer and in a way that looks correct.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-04-14 18:21:19 +02:00
Reimar Döffinger 4c53c66a21 mp3enc: clarify meaning of "Unsupported" messages.
They will only cause us to skip writing the Xing header,
not cause any serious breakage.
Related to trac issue #1027.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-04-14 18:21:19 +02:00
Diego Biurrun 219a9ed19e libxvid: Reorder functions to avoid forward declarations; make functions static. 2012-04-14 17:45:38 +02:00
Diego Biurrun 7a0cb74fee libxvid: drop some pointless dead code 2012-04-14 17:45:38 +02:00
Michael Niedermayer 64bd7f8e4d wmalosslessdec: Reset put bit buffer when num_saved_bits is reset.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-14 16:33:42 +02:00
Mashiat Sarker Shakkhar dac79c2737 wmal: vertical alignment cosmetics
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-04-14 16:02:25 +02:00
Mashiat Sarker Shakkhar 2e13f57993 wmal: Warn about missing bitstream splicing feature and ask for sample.
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-04-14 16:02:24 +02:00
Mashiat Sarker Shakkhar 9900dd2d9c wmal: Skip seekable_frame_in_packet.
There is no point in storing the value in a variable, since it is not
used anywhere else in the decoder.

Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-04-14 16:02:22 +02:00
Mashiat Sarker Shakkhar 07933b44dd wmal: Drop unused variable num_possible_block_size.
This is probably a leftover from WMA Pro.

Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-04-14 16:01:23 +02:00
Michael Niedermayer b3a4351582 wmalosslessdec: Fix reading too many bits in decode_channel_residues()
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-14 14:51:49 +02:00
Michael Niedermayer 2a7063de54 wmalosslessdec: fix a get_bits(0) in decode_ac_filter
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-14 14:50:48 +02:00
Michael Niedermayer a0abefb0af wmalosslessdec: make mclms arrays big enough for whats written into them.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-14 14:49:51 +02:00
Michael Niedermayer d442c4462a wmalosslessdec: Make arrays WMALL_BLOCK_MAX_SIZE big and check samples_per_frame.
The samples_per_frame check is ported from wmaprodec.c

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-14 13:35:29 +02:00
Michael Niedermayer 9166f483c5 wmaprodec: check min_samples_per_subframe
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-14 13:13:48 +02:00
Michael Niedermayer b28c678ba8 wmaprodec; fix get_bits(0) case.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-14 12:03:31 +02:00
Michael Niedermayer 97a5addfcf wmaprodec: check num_vec_coeffs for validity
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-14 11:46:23 +02:00
Michael Niedermayer 52ec269573 lavf: print with debug level the byte positions before and after find_stream_info
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-14 11:46:23 +02:00
Stefano Sabatini 91d3cbe0fd avfiltergraph: make the AVFilterInOut alloc/free API public
This is required for letting applications to create and destroy
AVFilterInOut structs in a convenient way.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-04-14 09:25:46 +02:00
Anton Khirnov 12e7e1d03e graphparser: allow specifying sws flags in the graph description. 2012-04-14 09:25:46 +02:00
Anton Khirnov 4e781c25b7 graphparser: fix the order of connecting unlabeled links.
Right now, e.g. scale,[in]overlay would connect scale to the first
overlay input and [in] to the second, which goes against the
documentation and is unintuitive.

The bug happens because of the ordering mess in curr_inputs variable:
1) the unlabeled links from the previous filter are added to it in
correct order
2) input labels are parsed and inserted to the beginning one by one
(i.e. in reverse order)
3) curr_inputs is matched against filter inputs in reverse order

Fix the problem by always using proper ordering without trying to be
clever.
2012-04-14 09:25:46 +02:00
Anton Khirnov d7bcc71dad graphparser: add avfilter_graph_parse2().
Unlike avfilter_graph_parse(), it returns unlinked inputs and outputs
to the caller, which allows parsing of graphs where inputs/outputs are
not known in advance.
2012-04-14 09:25:46 +02:00
Anton Khirnov 7ae7c41413 vsrc_buffer: allow using a NULL buffer to signal EOF. 2012-04-14 09:25:46 +02:00
Michael Niedermayer cca9528524 mp3on4: allocate a large enough frame.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-14 00:24:38 +02:00
Michael Niedermayer c41ac87047 avidec: update size when packet is shrunk
Fixes out of array read

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-14 00:24:38 +02:00
Ronald S. Bultje 9206ac80a5 swscale: handle last pixel if lines have an odd width.
Fixes bug 270.
2012-04-13 14:21:58 -07:00
Clément Bœsch 3f80546d75 lavfi/drawbox: fix width displayed in place of x. 2012-04-13 23:15:54 +02:00
Michael Niedermayer 72b9537d88 dfa: Fix out of array write in decode_dds1()
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-13 22:59:33 +02:00
Michael Niedermayer d1c95d2ce3 dfa: fix out of array write in decode_wdlt()
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-13 22:58:54 +02:00
Mans Rullgard f5be7958e3 qdm2: fix a dubious pointer cast
This reworks a loop to get rid of an ugly pointer cast,
fixing errors seen with the PathScale ENZO compiler.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-04-13 21:42:22 +01:00
Michael Niedermayer 680097cb6d WMAL: Do not try to read rawpcm coefficients if bits is invalid
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-04-13 23:13:03 +03:00
Yusuke Nakamura accea4d9d8 mov: Fix detecting there is no sync sample.
Stss atom without entries doesn't mean every sample is a sync sample.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-04-13 23:08:34 +03:00
Alex Converse f346b6bbeb tiffdec: K&R cosmetics 2012-04-13 12:58:19 -07:00
Michael Niedermayer 367d9b2957 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  swscale: K&R formatting cosmetics (part II)
  tiffdec: Add a malloc check and refactor another.
  faxcompr: Check malloc results and unify return path
  configure: escape colons in values written to config.fate
  ac3dsp: call femms/emms at the end of float_to_fixed24() for 3DNow and SSE
  matroska: Fix leaking memory allocated for laces.
  pthread: Fix crash due to fctx->delaying not being cleared.
  vp3: Assert on invalid filter_limit values.
  h264: fix 10bit biweight functions after recent x86inc.asm fixes.
  ffv1: Fix size mismatch in encode_line.
  movenc: Remove a dead initialization
  git-howto: Explain how to avoid Windows line endings in git checkouts.
  build: Move all arch OBJS declarations into arch subdirectory Makefiles.

Conflicts:
	configure
	libavcodec/vp3.c
	libavformat/matroskadec.c
	libavutil/Makefile
	libswscale/Makefile
	libswscale/swscale.c
	libswscale/swscale_internal.h
	libswscale/utils.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-13 21:50:37 +02:00
Luca Barbato cbf767a87c avf: has_duration does not check the global one
Some container formats report a global duration, but not a per stream
one.
2012-04-13 12:03:16 -07:00
Ronald S. Bultje b089ca871a dsputil: fix optimized emu_edge function on Win64.
Recent register allocation changes (x86inc.asm update) changed the
register order and thus opcodes for the inner loops. One of them became
>128bytes, which confuses other parts of this function where it jumps
to fixed-offset positions to extend the edge by fixed amounts. A simple
register change fixes this.
2012-04-13 11:28:30 -07:00
Diego Biurrun ef0ee7f657 swscale: K&R formatting cosmetics (part II)
Also adjust some comments including wording and typo fixes.
2012-04-13 19:22:00 +02:00
Alex Converse 90a4306007 tiffdec: Add a malloc check and refactor another. 2012-04-13 09:49:13 -07:00
Alex Converse 99a335299f faxcompr: Check malloc results and unify return path 2012-04-13 09:49:13 -07:00
Michael Niedermayer 62e5ef95ca av_image_alloc: Align the width to 8 when align >= 8.
This allows simd optimized routines to work in steps of 8 pixels
without going over the linesize. (this matters for yuv->rgb24 for example)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-13 18:40:17 +02:00
Michael Niedermayer 41a052a6ba cmdutils: fix "oswr may be used uninitialized" warning
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-13 18:38:10 +02:00
Michael Niedermayer 2ec8789eb8 avpicture_layout: use a endian independant format for the palette.
This should fix the failing fate PAL8 tests.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-13 18:21:51 +02:00
Mans Rullgard 6555acad10 configure: escape colons in values written to config.fate
The fields in config.fate are colon-separated so any colons
within the fields should be escaped to prevent confusion.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-04-13 13:22:37 +01:00
Michael Niedermayer 84d74610f9 mov: zero sc->pb in mov_read_close()
Its bad to free things without zeroing them.
This fixes a potential issue when mov_read_close() would be called twice.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-13 12:09:32 +02:00
Dale Curtis a6b3e6d0b4 mov: Fix memory leaks on aborted header parsing.
If mov_read_header exits under error, the memory allocated is
not freed.

Signed-off-by: Dale Curtis <dalecurtis@chromium.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-13 11:59:27 +02:00
Michael Niedermayer ab3fcd93fd mov: zero extradata_size on deallocation of extradata.
This prevents the possibility of extradata and its size becoming desynced.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-13 11:52:19 +02:00
Dale Curtis b5ada68ead matroska: Fix leaking memory allocated for laces.
During error conditions matroska_parse_block may exit without
freeing the memory allocated for laces.

Found via valgrind: http://pastebin.com/E54k8QFU

Signed-off-by: Dale Curtis <dalecurtis@chromium.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-13 11:43:10 +02:00
Dale Curtis fd165a0b31 mov: Fix harmless OOB read.
Convert key_off initialize to use the same sc->keyframe_count as
used elsewhere in the function.

Signed-off-by: Dale Curtis <dalecurtis@chromium.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-13 11:28:32 +02:00
Dale Curtis a9d114dc8a pthread: Fix crash due to fctx->delaying not being cleared.
corrects invalid return when avpkt->size == 0.

Reproducible with test case and ffplay -threads 2. Stack trace:
http://pastebin.com/PexZ4Uc0

Test case:
http://commondatastorage.googleapis.com/dalecurtis-shared/crash.ogm

Signed-off-by: Dale Curtis <dalecurtis@chromium.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-13 11:10:38 +02:00
Justin Ruggles de7f22ab0c ac3dsp: call femms/emms at the end of float_to_fixed24() for 3DNow and SSE
Fixes ac3-encode and eac3-encode FATE test failures with SSE2 disabled.

Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-04-12 21:33:04 -07:00
Dale Curtis 3116858853 matroska: Fix leaking memory allocated for laces.
During error conditions matroska_parse_block may exit without
freeing the memory allocated for laces.

Found via valgrind: http://pastebin.com/E54k8QFU

Signed-off-by: Dale Curtis <dalecurtis@chromium.org>
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-04-12 21:32:01 -07:00
Dale Curtis 97ae370078 pthread: Fix crash due to fctx->delaying not being cleared.
Reproducible with test case and ffplay -threads 2. Stack trace:
http://pastebin.com/PexZ4Uc0

Test case:
http://commondatastorage.googleapis.com/dalecurtis-shared/crash.ogm

Signed-off-by: Dale Curtis <dalecurtis@chromium.org>
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-04-12 21:32:01 -07:00
Dale Curtis 27c2fb0f72 vp3: Assert on invalid filter_limit values.
Signed-off-by: Dale Curtis <dalecurtis@chromium.org>
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-04-12 21:31:55 -07:00
Ronald S. Bultje 76538d7a78 h264: fix 10bit biweight functions after recent x86inc.asm fixes.
This should have been updated in the x86inc.asm update, but was
accidently forgotten.
2012-04-12 21:13:57 -07:00
Alex Converse 2b8374e920 ffv1: Fix size mismatch in encode_line. 2012-04-12 18:34:45 -07:00
Alex Converse 73b7437f1d movenc: Remove a dead initialization 2012-04-12 18:34:45 -07:00
Dale Curtis e9dc616472 vp3: Assert on invalid filter_limit values.
Signed-off-by: Dale Curtis <dalecurtis@chromium.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-13 02:12:22 +02:00
Michael Niedermayer bd3ea31797 ffmpeg: Compensate non monotonicity errors in the audio TSs.
Audio timestamps are passed through by default and when the input
doesnt contain clean timestamps this can lead to non monotonicity
errors. (rounding to a course timebase can cause this too)

Print a warning when the errors in the timestamps are large

Fixes Ticket1167 (regression since timestamps are passed through)

This is a generic workaround that is intended to handle
slightly incorrect input files. It is very possible that some
demuxers contain bugs that lead to wrong timestamps, these demuxers
should of course still be fixed even if this change happens to
hide the issue.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-13 02:12:22 +02:00
Michael Niedermayer ca19862d38 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  libxvid: remove disabled code
  qdm2: make a table static const
  qdm2: simplify bitstream reader setup for some subpacket types
  qdm2: use get_bits_left()
  build: Consistently handle conditional compilation for all optimization OBJS.
  avpacket, bfi, bgmc, rawenc: K&R prettyprinting cosmetics
  msrle: convert MS RLE decoding function to bytestream2.
  x86inc improvements for 64-bit

Conflicts:
	common.mak
	libavcodec/avpacket.c
	libavcodec/bfi.c
	libavcodec/msrledec.c
	libavcodec/qdm2.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-13 00:39:19 +02:00
Stefano Sabatini 5eeecde859 lavfi/mp: remove 2xsai wrapped filter
It was ported to a native libavfilter filter.
2012-04-13 00:14:06 +02:00
Stefano Sabatini b7a7830dd4 lavfi: port 2xsai filter from libmpcodecs
Partially based on the port by Niel van der Westhuizen
<nielkie@gmail.com>, done for GCI 2010. Same output as the original
filter and as fast.

See thread:
Subject: [FFmpeg-devel] [PATCH] Port MPlayer 2xSaI filter to libavfilter
Date: Thu, 25 Nov 2010 01:31:24 +1000
2012-04-13 00:14:06 +02:00
Stefano Sabatini e21dac3a4f examples/decoding_encoding: remove unused variable "size"
Remove unused variable size from video_encode_example() function.

Fix GCC warning:
decoding_encoding.c:214:22: warning: unused variable ‘size’ [-Wunused-variable]
2012-04-13 00:13:31 +02:00
Stefano Sabatini 162e400464 lavfi: install asrc_abuffer.h header
The header is part of the public API, in particular is used by
doc/examples/filtering_audio.c.
2012-04-13 00:13:30 +02:00
Diego Biurrun 6048fd22ee git-howto: Explain how to avoid Windows line endings in git checkouts. 2012-04-12 23:20:58 +02:00
Diego Biurrun baaab6069a build: Move all arch OBJS declarations into arch subdirectory Makefiles. 2012-04-12 21:30:13 +02:00
Reimar Döffinger 4561feb4bf vorbisdec: use correct channels variable.
All code should use the local variable, the
AVCodecContext might not yet have the updated value.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-04-12 20:32:08 +02:00
Reimar Döffinger d1a58afb95 latmenc: validate extradata size.
Fixes potential out-of-bounds writes.
This is mostly possible when muxing ALS files where from
an extradata size of about 1050 put_bits would write data
outside the buffer.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-04-12 20:29:56 +02:00
Reimar Döffinger 9540476ba1 latmenc: simplify using avpriv_copy_bits.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-04-12 20:29:28 +02:00
Reimar Döffinger eb24def465 latmenc: Document assumptions when copying the AAC header.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-04-12 20:28:42 +02:00
Reimar Döffinger 0c1e9c2d6a latmenc: copy pce config from proper location.
For the FATE test sample used, this only avoids a warning
message.
However for other samples like al05_44.mp4 the converted
file can be played only after this fix.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-04-12 20:28:37 +02:00
Reimar Döffinger 912a838efe latmenc: fix muxing of byte-aligned DSE.
This will only work for DSEs that are first in a packet, but
that is enough to fix handling of the reference files in
fate-suite/aac (though most of them still have other issues).

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-04-12 20:27:47 +02:00
Diego Biurrun 18e8fef7c9 libxvid: remove disabled code 2012-04-12 13:10:38 +02:00
Michael Niedermayer 8274b21c09 ffmpeg: fix ticks_per_frame for the avi stream copy case
Should not make any difference, but its more correct.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-12 12:57:22 +02:00
Michael Niedermayer e8c63981e5 ratecontrol: Use ticks_per_frame to calculate fps.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-12 12:54:54 +02:00
Jakub Stachowski 3b00fd5985 wmalosslessdec: Reset residues to 0 if they were not decoded from bitstream.
If channel residues are have not been decoded from bitstream, they should be
initialized to 0 instead of using values from previous subframe.
This causes bursts of noise in silent parts of some files.
This patch fixes bug #1055

Reviewed-by: Benjamin Larsson <benjamin@southpole.se>
Reviewed-by: Mashiat Sarker Shakkhar <mashiat.sarker@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-12 12:41:53 +02:00
Mans Rullgard 9f3e781eab qdm2: make a table static const
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-04-12 10:59:23 +01:00
Mans Rullgard 9ffe8ee7c5 qdm2: simplify bitstream reader setup for some subpacket types
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-04-12 10:59:23 +01:00
Mans Rullgard a31787ee3b qdm2: use get_bits_left()
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-04-12 10:59:23 +01:00
Michael Niedermayer 9e938d22c5 msmpeg4enc: fix stored fps value
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-12 11:36:17 +02:00
Michael Niedermayer 75b38674b6 lavf: compute_pkt_fields, limit the pts upcorrection to mpeg
The pts correction conflicts with the ogg vorbis demuxer.

Thanks-to: Justin Ruggles
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-12 11:35:38 +02:00
Nicolas George 733cf0ad51 ffmpeg: add -benchmark_all option. 2012-04-12 09:35:09 +02:00
Nicolas George 81a9d32f0d ffmpeg: move getutime to the start of the file. 2012-04-12 09:35:09 +02:00
Diego Biurrun 7bb3a302fe build: Consistently handle conditional compilation for all optimization OBJS. 2012-04-12 09:00:49 +02:00
Diego Biurrun 2ef15b46e4 avpacket, bfi, bgmc, rawenc: K&R prettyprinting cosmetics 2012-04-12 09:00:49 +02:00
Michael Niedermayer 0cd17a6291 mjpeg: fix crash with lowres and flipped images
Fixes Ticket1155

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-12 02:02:30 +02:00
Michael Niedermayer c0af87550a vf_lut: fix rgba map regression
Fixes Ticket1184

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-12 02:02:30 +02:00
Reimar Döffinger 277f20c3c8 lavf: always call avio_flush in av_write_trailer.
Otherwise for muxers like e.g. latmenc that never call
avio_flush (and do not have a write_trailer function)
a part of the data will always be missing.
Also update references for the voc muxer, which was also
buggy before and did not write out all data.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-04-12 00:13:53 +02:00
Michael Niedermayer 4f6df20a00 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  avplay: Don't free video filters string until the end of decoding.
  movenc: small refactor mov_write_packet
  movenc: remove redundant check
  interplayvideo: fix av_dlog parameter type mismatch
  Drop some pointless #ifdefs.

Conflicts:
	libavcodec/interplayvideo.c
	libavcodec/libxvidff.c
	libavcodec/snowenc.c
	libavformat/movenc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-11 22:50:22 +02:00
Ronald Bultje 992f71e95d msrle: convert MS RLE decoding function to bytestream2.
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-04-11 16:30:41 -04:00
Reimar Döffinger 8e357e8e75 latmenc: error out when packet size is too large.
Previously it would just silently write out incorrect data.
This also fixes a potential integer overflow in the allocation.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-04-11 22:28:34 +02:00
Reimar Döffinger a736eb4a60 latmenc: Fix ALS in LATM.
"Fix" in so far as at least it will no longer overread and possibly
crash and makes somewhat sense, but no idea whether there is anything
that can play the resulting files (FFmpeg can't).

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-04-11 22:28:34 +02:00
Reimar Döffinger fa8a6385a1 latmenc: remove unused return value.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-04-11 22:27:34 +02:00
Henrik Gramner 729f90e268 x86inc improvements for 64-bit
Add support for all x86-64 registers
Prefer caller-saved register over callee-saved on WIN64
Support up to 15 function arguments

Also (by Ronald S. Bultje)
Fix up our asm to work with new x86inc.asm.

Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-04-11 15:47:00 -04:00
Reimar Döffinger e6ad943734 latmenc: remove dead code.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-04-11 21:46:33 +02:00
Reimar Döffinger 5735f768b0 h261: move tables from header to .c file.
Currently they end up twice in the binary, since both
encoder and decoder include the header and thus each gets
their own copy.
This is clearly nonsense for the const tables, but shouldn't
be necessary for the RLTable either.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-04-11 21:46:33 +02:00
Michael Niedermayer 6952301f33 ff_samples_to_time_base: support AV_NOPTS_VALUE
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-11 20:30:55 +02:00
Alex Converse e1ce756844 avplay: Don't free video filters string until the end of decoding.
av_freep()ing inside configure_video_filters() leaves a dangling
reference in the calling code, and the filter string is needed again when
reconfiguring video filters for a size change.
2012-04-11 10:24:01 -07:00
Mohamed Naufal e46b625dd0 Merge branches 'stagefright' and 'stagefright-test' into stagefright-test 2012-04-11 22:05:54 +05:30
Dale Curtis 309a931a38 Fix memory leaks on failed ff_h264_decode_init()
During failure conditions ff_h264_decode_init() leaks memory
allocated for nal units.  Found via valgrind.

Valgrind traces: http://pastebin.com/GqTqxs8T

Signed-off-by: Dale Curtis <dalecurtis@chromium.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-11 15:54:53 +02:00
Michael Niedermayer ca4a3f4a08 oggparsevorbis: Remove code messing with cur_dts.
This code caused first_dts to become corrupt and in value to be
around relative_ts.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-11 14:56:02 +02:00
Michael Niedermayer 44239bd9f2 swr: add a swr_flags AVOption
Using swr_flags instead of plain flags will avoid conflicts that
arise with plain flags and multiple libs (which all have AVOption flags)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-11 14:10:22 +02:00
Michael Niedermayer 6c704d9c30 ffmpeg: support changing dither parameters for swr
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-11 14:10:22 +02:00
Michael Niedermayer be4cde226a cmdutils: parse options for swr
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-11 14:10:21 +02:00
Michael Niedermayer c1d404b9e4 swr: add a dither_scale parameter to tune the amplitude of the dither.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-11 13:44:48 +02:00
Michael Niedermayer a2c92e6063 swr: pass context to swri_get_dither()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-11 13:44:15 +02:00
Luca Barbato ebbede2265 movenc: small refactor mov_write_packet
Share the formerly internal write_packet with the hinter and move the
fragment flush logic to the user facing one since it is not concerned
about movtrack-only streams.

Fixes bug #263

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-04-11 14:38:37 +03:00
Luca Barbato 18b59956e0 movenc: remove redundant check
The proper check is already in mov_write_header.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-04-11 14:38:36 +03:00
Michael Niedermayer f8a237a307 swr: add triangular highpass dither
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-11 13:27:22 +02:00
Michael Niedermayer 1fc4ff2205 swr: generate more dither noise to improve quality.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-11 13:26:32 +02:00
Michael Niedermayer 22057e8ecb swr: add swr_get_class()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-11 13:25:56 +02:00
Diego Biurrun 9676d8eb67 interplayvideo: fix av_dlog parameter type mismatch
libavcodec/interplayvideo.c:909:13: warning: format ‘%p’ expects argument of type ‘void *’, but argument 7 has type ‘GetByteContext’ [-Wformat]
2012-04-11 10:43:47 +02:00
Michael Niedermayer f9a2c5bc07 swr: simplify code by using av_get_bytes_per_sample()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-11 10:02:00 +02:00
Michael Niedermayer 6e9c634c36 swr: fix copy & pasted comment to match the code.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-10 23:54:04 +02:00
Michael Niedermayer 8702e35b9b vda: try to fix compile
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-10 23:37:30 +02:00
Michael Niedermayer e387c9d5dd Merge remote-tracking branch 'qatar/master'
* qatar/master: (22 commits)
  rv40dsp x86: use only one register, for both increment and loop counter
  rv40dsp: implement prescaled versions for biweight.
  avconv: use default channel layouts when they are unknown
  avconv: parse channel layout string
  nutdec: K&R formatting cosmetics
  vda: Signal 4 byte NAL headers to the decoder regardless of what's in the extradata
  mem: Consistently return NULL for av_malloc(0)
  vf_overlay: implement poll_frame()
  vf_scale: support named constants for sws flags.
  lavc doxy: add all installed headers to doxy groups.
  lavc doxy: add avfft to the main lavc group.
  lavc doxy: add remaining avcodec.h functions to a misc doxygen group.
  lavc doxy: add AVPicture functions to a doxy group.
  lavc doxy: add resampling functions to a doxy group.
  lavc doxy: replace \ with /
  lavc doxy: add encoding functions to a doxy group.
  lavc doxy: add decoding functions to a doxy group.
  lavc doxy: fix formatting of AV_PKT_DATA_{PARAM_CHANGE,H263_MB_INFO}
  lavc doxy: add AVPacket-related stuff to a separate doxy group.
  lavc doxy: add core functions/definitions to a doxy group.
  ...

Conflicts:
	ffmpeg.c
	libavcodec/avcodec.h
	libavcodec/vda.c
	libavcodec/x86/rv40dsp.asm
	libavfilter/vf_scale.c
	libavformat/nutdec.c
	libavutil/mem.c
	tests/ref/acodec/pcm_s24daud

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-10 22:53:25 +02:00
Michael Niedermayer b1ef4dc406 swr: add triangular dither support
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-10 21:18:33 +02:00
Michael Niedermayer 0cff3e130b swr: remove unused variable
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-10 21:18:32 +02:00
Michael Niedermayer 0170889372 swr: add SWR_DITHER_RECTANGULAR to AVOptions array
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-10 21:18:32 +02:00
Reimar Döffinger 1ac606bae6 aacsbr: silence message for SBR extension "padding".
Some files contain a few additional, all-0 bits.
Check for that case and don't print incorrect "not supported"
message.
Fixes trac issue #836.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-04-10 20:51:20 +02:00
Michael Niedermayer 5b2be9bcc0 swr-test: include opt.h, this is needed for changing options for testing.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-10 19:54:42 +02:00
Michael Niedermayer 7c673d73ec swr: use assert in swri_sum2 to check that only supported formats are used.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-10 19:54:42 +02:00
Michael Niedermayer db2eadb2f5 swr: add dither support.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-10 19:54:41 +02:00
Michael Niedermayer 5c1f312888 swr: update copyright year for rematrix
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-10 19:54:41 +02:00
Diego Biurrun 679481b3b6 Drop some pointless #ifdefs.
The files are only compiled if the #ifdef conditions are met.
2012-04-10 19:27:38 +02:00
Christophe GISQUET 2130bd8f5b rv40dsp x86: use only one register, for both increment and loop counter
Around 10 cycles faster for luma.

Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-04-10 10:07:09 -07:00
Christophe GISQUET 272b252c01 rv40dsp: implement prescaled versions for biweight.
Quite often, the original weights are multiple of 512. By prescaling them
by 1/512 when they are computed (once per frame), no intermediate shifting
is needed, and no prescaling on each call either.

The x86 code already used that trick.

Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-04-10 10:06:48 -07:00
Justin Ruggles d3c59d5003 avconv: use default channel layouts when they are unknown
If either input or output layout is known and the channel counts match,
use the known layout for both. Otherwise choose the default layout based on
av_get_default_channel_layout().

Changed some FATE references due to some WAVE files now having a non-zero
channel mask.
2012-04-10 11:30:01 -04:00
Justin Ruggles 95a8dac57b avconv: parse channel layout string
This allows the user to use channel layout names instead of having to use the
channel mask values.
2012-04-10 11:30:01 -04:00
Nicolas George 40b7a27bad vf_drawtext: fontconfig support. 2012-04-10 15:16:47 +02:00
Nicolas George be9b0d2c5a vf_drawtext: fix memory leak of draw expression. 2012-04-10 15:16:12 +02:00
Nicolas George 423047ea31 vf_drawtext: fix memory leak of glyph data. 2012-04-10 15:16:12 +02:00
Asen Lekov a559d65c07 nutdec: K&R formatting cosmetics
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-04-10 14:57:47 +02:00
Sebastien Zwickert a40ba3afe8 vda: Signal 4 byte NAL headers to the decoder regardless of what's in the extradata
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-04-10 15:50:56 +03:00
Michael Niedermayer 24ab1abfb6 resample: support double precission resampling
This commit is dedicated to the audiophiles who can hear it when a
needle is dropped on the moon.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-10 13:48:55 +02:00
Michael Niedermayer 3d9338b1c2 swr: support int32 and float as internal sample formats
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-10 13:19:29 +02:00
Michael Niedermayer 7f1ae79d38 swr: support float & int32 in the resampler
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-10 13:18:49 +02:00
Michael Niedermayer 605bcf6101 swr-test: Add newline to test output
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-10 13:06:00 +02:00
Michael Niedermayer 2f0801527d resample: update copyright years, they where incorrect.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-10 12:35:37 +02:00
Martin Storsjö 14f063d294 mem: Consistently return NULL for av_malloc(0)
Plain POSIX malloc(0) is allowed to return either NULL or a
non-NULL pointer. The calling code should be ready to handle
a NULL return as a correct return (instead of a failure) if the size
to allocate was 0 - this makes sure the condition is handled
in a consistent way across platforms.

This also avoids calling posix_memalign(&ptr, 32, 0) on OS X,
which returns an invalid pointer (a non-NULL pointer that causes
crashes when passed to av_free).

Abort in debug mode, to help track down issues related to
incorrect handling of this case.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-04-10 11:56:42 +03:00
Michael Niedermayer 6bfb3042b3 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  avconv: use default alignment for audio buffer
  avcodec: use align == 0 for default alignment in avcodec_fill_audio_frame()
  avutil: use align == 0 for default alignment in audio sample buffer functions
  avutil: allow NULL linesize in av_samples_fill_arrays() and av_samples_alloc()
  avconv: remove OutputStream.picref.
  avconv: only set SAR once on the decoded frame.
  avcodec: validate the channel layout vs. channel count for decoders
  audioconvert: make av_get_channel_layout accept composite names.
  avutil: add av_get_packed_sample_fmt() and av_get_planar_sample_fmt()

Conflicts:
	doc/APIchanges
	ffmpeg.c
	libavcodec/utils.c
	libavcodec/version.h
	libavutil/audioconvert.c
	libavutil/audioconvert.h
	libavutil/avutil.h
	libavutil/samplefmt.c
	libavutil/samplefmt.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-09 23:02:33 +02:00
Reimar Döffinger 7f66912f1a Fix gif regression test on big-endian.
Decode output must be converted to rgb24 to avoid CRC difference
due to palette being stored in machine endianness.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-04-09 21:55:52 +02:00
Anton Khirnov e36b25d1df vf_overlay: implement poll_frame()
Signal that it can output a frame when there are frames on the main
input and EOF on the overlay input, but a frame is buffered -- e.g.
single picture overlay.
2012-04-09 21:30:21 +02:00
Anton Khirnov 90f65dc6cf vf_scale: support named constants for sws flags. 2012-04-09 21:29:05 +02:00
Anton Khirnov 7c59b5c2a5 lavc doxy: add all installed headers to doxy groups. 2012-04-09 21:25:17 +02:00
Anton Khirnov ec57b7de74 lavc doxy: add avfft to the main lavc group. 2012-04-09 21:24:46 +02:00
Anton Khirnov 8a74029ea2 lavc doxy: add remaining avcodec.h functions to a misc doxygen group. 2012-04-09 21:18:47 +02:00
Anton Khirnov 6aadfbda09 lavc doxy: add AVPicture functions to a doxy group. 2012-04-09 21:18:28 +02:00
Anton Khirnov 56512ce104 lavc doxy: add resampling functions to a doxy group. 2012-04-09 21:18:19 +02:00
Anton Khirnov 40ca0e6a75 lavc doxy: replace \ with /
It's the more proper symbol to use and it prevents doxygen from thinking
it's a command.
2012-04-09 21:16:37 +02:00
Anton Khirnov f038515f0a lavc doxy: add encoding functions to a doxy group. 2012-04-09 21:16:24 +02:00
Anton Khirnov c8ef8464c2 lavc doxy: add decoding functions to a doxy group. 2012-04-09 21:14:05 +02:00
Anton Khirnov 199ada4944 lavc doxy: fix formatting of AV_PKT_DATA_{PARAM_CHANGE,H263_MB_INFO} 2012-04-09 21:13:49 +02:00
Anton Khirnov 30f3f62563 lavc doxy: add AVPacket-related stuff to a separate doxy group.
Also move AV_PKT_DATA_PARAM_CHANGE/AV_PKT_DATA_H263_MB_INFO to the
proper place.
2012-04-09 21:13:17 +02:00
Anton Khirnov 294b3a5074 lavc doxy: add core functions/definitions to a doxy group. 2012-04-09 21:12:53 +02:00
Michael Niedermayer 3532a87a25 exr: optimize exr_halflt2uint()
30% faster

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-09 20:55:09 +02:00
Diego Biurrun 02c39f056a ppc: Add/remove a number of const qualifiers to fix related warnings. 2012-04-09 20:39:33 +02:00
Justin Ruggles b073819bc9 avconv: allow '-async -1' to disable timestamp sync for audio encoding
This will allow a workaround for cases where input timestamps are invalid or
when decoder delay of 1 packet or more confuses avconv into using the wrong
timestamps as a sync reference.
2012-04-09 13:47:11 -04:00
Reimar Döffinger cabc0ac72f Add gif and xbm regression tests.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-04-09 17:21:35 +02:00
Reimar Döffinger 6458a08700 vf_scale: ensure the palette is set for output.
Since those are pseudo-palette formats, swscale does not write
into data[1], swscale must initialize the palette properly itself.
This lead to frames that actually decoded as all-gray before.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-04-09 17:21:35 +02:00
Reimar Döffinger 24eac3cff5 Mark GRAY8 format as pseudo-paletted.
This fixes that the GIF encoder crashes with it because
it has no palette.
And the arguments for the pseudopalette apply to gray8 as
much as to RGB8 etc.
In addition the changes required in lavfi should be needed anyway
when adding support for RGB8 etc.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-04-09 17:21:35 +02:00
Reimar Döffinger bbaf941e29 scale: fix slice rendering with conversion between pal/non-pal.
We can't use whether the input format is paletted to decide that
the output format has a palette in data[1], too, that makes no sense.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-04-09 17:21:35 +02:00
Reimar Döffinger 438f3ef821 RV20: try keeping aspect during resolution changes.
Resolution changes are usually only used to scale with
network bandwidth, the (full) resolution specified in the
RM header really is authoritative.
While I am not sure this is the best solution, it is a
conservative approach that still should fix the most
common cases.
In particular, it fixes aspect with the sample from trac
issue #785 (in MPlayer, ffplay seems to just ignore
sample aspect changes in mid-playback).

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-04-09 17:21:34 +02:00
Reimar Döffinger 1d130328ed aacdec: update debug code to always print the processed data.
When decoding LATM, this function will not process extradata
but a different buffer.
It seems this was forgotten to update when LATM support
was added.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-04-09 17:21:34 +02:00
Justin Ruggles 679a973e97 avconv: use default alignment for audio buffer 2012-04-09 10:20:35 -04:00
Justin Ruggles c58846f3a8 avcodec: use align == 0 for default alignment in avcodec_fill_audio_frame()
Use default alignment in audio_get_buffer()
2012-04-09 10:20:35 -04:00
Justin Ruggles 0109a09dc3 avutil: use align == 0 for default alignment in audio sample buffer functions 2012-04-09 10:20:35 -04:00
Justin Ruggles 18ed3788b0 avutil: allow NULL linesize in av_samples_fill_arrays() and av_samples_alloc() 2012-04-09 10:20:35 -04:00
Anton Khirnov b6c4518a87 avconv: remove OutputStream.picref.
It's only used inside transcode_video() and there's no point in
preserving it between subsequent calls. So use a local variable instead.
2012-04-09 05:13:00 +02:00
Anton Khirnov 695ec04e6a avconv: only set SAR once on the decoded frame.
No point in repeating the assignment for each output stream.
2012-04-09 05:10:38 +02:00
Reimar Döffinger ed68fd45d3 Add v408 codec regression test.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-04-09 00:46:43 +02:00
Justin Ruggles 1337de0c4b avcodec: validate the channel layout vs. channel count for decoders
Set avctx->channel_layout to 0 if the channel count does not match
avctx->channels.
2012-04-08 18:45:58 -04:00
Nicolas George b2db35995f audioconvert: make av_get_channel_layout accept composite names.
Signed-off-by: Nicolas George <nicolas.george@normalesup.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-04-08 18:35:49 -04:00
Reimar Döffinger c311afca0a Add roqaudio regression test.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-04-09 00:19:06 +02:00
Justin Ruggles 4d693b023c avutil: add av_get_packed_sample_fmt() and av_get_planar_sample_fmt()
Based on a patch by Clément Bœsch <ubitux@gmail.com>
2012-04-08 15:13:28 -04:00
Michael Niedermayer 5d6a40bc74 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  rtsp: Don't use av_malloc(0) if there are no streams
  rtsp: Don't use uninitialized data if there are no streams
  vaapi: mpeg2: fix slice_vertical_position calculation.
  hwaccel: mpeg2: decode first field, if requested.
  cosmetics: Fix indentation
  rtsp: Don't expose the MS-RTSP RTX data stream to the caller

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-08 20:55:11 +02:00
Reimar Döffinger 4f043c8a11 Allow running fate-wmv8-x8intra manually.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-04-08 20:27:35 +02:00
Reimar Döffinger a5efc8c9bf Allow manually running disabled FATE tests.
This makes it easy to allow people to run tests that are disabled
(e.g. because they are broken) without having to hack Makefiles
by adding the test name to FATE_TESTS-no.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-04-08 20:27:35 +02:00
Reimar Döffinger 03ef5047d1 Fix nellymoser encoder crash with hardcoded tables.
Use the correct init function to avoid crashes due to writing
to a rodata location.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-04-08 20:26:25 +02:00
Reimar Döffinger a7b1420ca2 Update reference for disabled fate-wmv8-x8intra test to new format.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-04-08 20:01:07 +02:00
Michael Niedermayer 1d80c8db27 ffv1: set slice geometry based on user specified slices.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-08 17:03:38 +02:00
Michael Niedermayer 8dfbc1c5cf ffv1: allow enabling of version 2 by using some of its features.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-08 16:48:34 +02:00
Michael Niedermayer 1b295a17d7 ffv1: fix version=2 chroma handling
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-08 16:01:37 +02:00
Michael Niedermayer 5612359501 ffv1: add a minor version field beginning with ffv1.3
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-08 16:01:36 +02:00
Martin Storsjö 9294f538e9 rtsp: Don't use av_malloc(0) if there are no streams
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-04-08 15:51:33 +03:00
Martin Storsjö 62c3c8ca78 rtsp: Don't use uninitialized data if there are no streams
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-04-08 15:51:32 +03:00
Reimar Döffinger 069cf86d32 Fix side-data memleak also for audio.
This uses the same code as in decode_video also in decode_audio.
Should fix valgrind FATE failures for nellymoser encode test.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-04-08 13:06:13 +02:00
Gwenole Beauchesne 58e1032d8f vaapi: mpeg2: fix slice_vertical_position calculation.
VASliceParameterBufferMPEG2.slice_vertical_position shall express
the slice vertical position from the original bitstream. The HW
decoder will correctly decode to the right line computed from the
appropriate top_field_first and is_first_field flags.

This patch aligns with DXVA's definition, which is what most HW and
drivers expect. In particular, Intel PowerVR (Cedarview et al.) and
NVIDIA (through VA-to-VDPAU layer). Since it looks more complex to fix
binary drivers, I aligned the Intel Gen driver (Sandy Bridge et al.)
to this behaviour, while maintaining compatibility with codec layers
not providing this patch yet.

Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-04-08 13:10:20 +03:00
Gwenole Beauchesne 9cb150c9ab hwaccel: mpeg2: decode first field, if requested.
If user opted to present fields as they come, then the first field
picture needs to be submitted to the HW for decoding. In particular,
this fixes MPEG-2 decoding of interlaced streams.

Tested on Intel Cedar Trail, Sandy Bridge and Ivy Bridge platforms.
Someone reported on the ffmpeg-devel@ list this also works on DXVA
(Windows) and other Linux platforms (NVIDIA, through the VA wrapper).

This also means a similar patch to non-hwaccel VDPAU may be necessary.

Note: I believe the SLICE_FLAG_ALLOW_FIELD is useless since the first
field shall always be submitted to the HW anyway. Nobody uses HW accels
(dxva, vaapi, vdpau, etc.) without that flag though.

Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-04-08 13:08:52 +03:00
Martin Storsjö 2ce7f4d4e6 cosmetics: Fix indentation
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-04-08 12:04:29 +03:00
Martin Storsjö 456001486e rtsp: Don't expose the MS-RTSP RTX data stream to the caller
This avoids exposing a dummy AVStream which won't get any data
and which will make avformat_find_stream_info wait for info about
this stream.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-04-08 12:04:22 +03:00
Thierry Foucu cb93946820 mpegtsenc: Add support to mux s302 stream
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-08 09:44:14 +02:00
Michael Niedermayer 352a67e6f8 configure: fix - vs _ error
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-08 09:43:38 +02:00
Reimar Döffinger 58c25724b7 Add nellymoser "fuzzy" FATE test.
Since we cannot specify decode parameters (and also because
it is better in principle) the 1-channel reference file
needs to be enabled, too.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-04-08 02:43:56 +02:00
Reimar Döffinger e9841505d2 Allow setting CODEC_FLAG2_CHUNKS via the name "chunks".
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-04-08 02:43:56 +02:00
Reimar Döffinger d506ef05a0 Fixes for third argument do_image_formats.
Remove it from two places where it is useless, do not apply
it to the encode command and make it apply to the output
instead of the input of the decode command.
Should fix the dpx test.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-04-08 02:43:56 +02:00
Stefano Sabatini f0bb1a599c ffprobe: use avbprint API
Simplify, increase robustness.
2012-04-08 00:02:21 +02:00
Michael Niedermayer 6101e5322f Merge remote-tracking branch 'qatar/master'
* qatar/master:
  rtpdec_asf: Set the no_resync_search option for the chained asf demuxer
  asfdec: Add an option for not searching for the packet markers
  cosmetics: Clean up the tiffenc pix_fmts declaration to match the style of others
  cosmetics: Align codec declarations
  cosmetics: Convert mimic.c to utf-8
  avconv: remove an unused function parameter.
  avconv: remove now pointless variables.
  avconv: drop support for building without libavfilter.
  nellymoserenc: fix crash due to memsetting the wrong area.
  libavformat: Only require first packet to be known for audio/video streams
  avplay: Don't try to scale timestamps if the tb isn't set

Conflicts:
	Changelog
	configure
	ffmpeg.c
	libavcodec/aacenc.c
	libavcodec/bmpenc.c
	libavcodec/dnxhddec.c
	libavcodec/dnxhdenc.c
	libavcodec/ffv1.c
	libavcodec/flacenc.c
	libavcodec/fraps.c
	libavcodec/huffyuv.c
	libavcodec/libopenjpegdec.c
	libavcodec/mpeg12enc.c
	libavcodec/mpeg4videodec.c
	libavcodec/pamenc.c
	libavcodec/pgssubdec.c
	libavcodec/pngenc.c
	libavcodec/qtrleenc.c
	libavcodec/rawdec.c
	libavcodec/sgienc.c
	libavcodec/tiffenc.c
	libavcodec/v210dec.c
	libavcodec/wmv2dec.c
	libavformat/utils.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-07 22:41:37 +02:00
Reimar Döffinger 5012c07336 Support detecting and demuxing EIA-608 subtitles in mov.
The format is slightly proprietary.
DVDs use a format of
code byte (0x00, 0x01, 0xfe or 0xff), two data bytes
MOV uses instead
cdat/cdt2 atom, two data bytes
Auto-detecting and supporting both in one decoder is trivial,
so a single codec ID is used.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-04-07 22:11:21 +02:00
Michael Niedermayer 50ec8a2acd mpeg4videodec: Force quant_precision to stay within the valid range.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-07 19:59:00 +02:00
Michael Niedermayer 59edf33f7b wmalosslessdec: rawpcm_tile fixes to keep get_bits() values within defined range.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-07 19:59:00 +02:00
Michael Niedermayer d0212bb032 wmalosslessdec: channel residues can be 32 bit thus need _long bitreader.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-07 19:59:00 +02:00
Michael Niedermayer a931d87727 mpeg12dec: Prevent f_code from becoming invalid.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-07 19:59:00 +02:00
Michael Niedermayer 6c3d6a214c alsdec: Check k used for rice decoder.
Values that fail this check will cause failure of decode_rice()

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-07 19:59:00 +02:00
Michael Niedermayer 192efcf768 h264_ps: check log2_max_frame_num for validity.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-07 19:59:00 +02:00
Michael Niedermayer 2d0b4bc4cf rv34: Fix check_slice_end() handling of 0 bits left case
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-07 19:59:00 +02:00
Michael Niedermayer 6c249392fa mpeg4videodec: make sure f/b_code are not invalid values.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-07 19:59:00 +02:00
Michael Niedermayer 6560fa390e get_bits: check the number of bits parameter through av_assert2()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-07 19:59:00 +02:00
Michael Niedermayer 20676711fe vc1: fix incorrect show_bits() usage.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-07 19:59:00 +02:00
Michael Niedermayer d3b0fb1048 put_bits: add av_assert2() to check out of array writes.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-07 19:58:59 +02:00
Reimar Döffinger e80ce4adea Do not decode the mp3 data in lavf test since that is not bit-exact.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-04-07 16:35:28 +02:00
Reimar Döffinger 4395c058d2 dcaenc: Allow encoding without specifying a channel_layout.
It will print a warning, making the behaviour consistent
with the AC3 encoder.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-04-07 16:35:28 +02:00
Reimar Döffinger 82ca1f8004 Test mp3 container muxing (and thus ID3 writing).
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-04-07 15:15:52 +02:00
Reimar Döffinger cb25a186eb Fix DCA regression test to work across architectures.
Only the decoding step is not bit-exact, so avoid checksum for that.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-04-07 15:13:01 +02:00
Stefano Sabatini 815d8f8841 doc/muxers: add documentation for the md5 and framemd5 muxers
Address trac ticket #1153.
2012-04-07 13:57:40 +02:00
Stefano Sabatini 60e4e430db doc/muxers: clarify documentation for the framecrc muxer
Makes more explicit that framecrc works at the packet level, also prefers
the term "packet" over "frame" when it makes sense.
2012-04-07 13:57:39 +02:00
Stefano Sabatini fd00662d5a doc/muxers: update documentation for the framecrc muxer
Add mention to the pts and duration log fields, added in
d2afbd9a56.

Fix trac ticket #1159.
2012-04-07 13:57:39 +02:00
Stefano Sabatini 32b1022f76 doc/filters: remove reference to removed delogo wrapper 2012-04-07 13:57:39 +02:00
Stefano Sabatini 6cb01c9dba lavfi/mp: remove remove_logo wrapper
removelogo has been ported to libavfilter, and the wrapper was not
working.
2012-04-07 13:57:39 +02:00
Stefano Sabatini 2f83681c79 lavfi: port libmpcodecs remove-logo filter
The code is based on the remove-logo filter in MPlayer/libmpcodecs, by
Robert Edele, relicensed to LGPL with consent of the author.

Address trac issue #249.
2012-04-07 13:57:39 +02:00
Michael Niedermayer 087b9c326f fate: try to force le for the dpx decoder side too
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-07 13:51:18 +02:00
Reimar Döffinger 6d3166fcf0 Add AAC FATE encode tests.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-04-07 13:24:12 +02:00
Reimar Döffinger 10e3dd15a5 Remove AAC and nellymoser tests that do not work.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-04-07 13:24:12 +02:00
Reimar Döffinger 796097c696 Add tests for audio encoders: aac, dca, ra144 and nellymoser.
The PSNR values are of varying usefulness, though at least
the DTS and AAC ones are useful with the right shift value.
Note: due to usage of floats some of these may fail on other
architectures.
In that case they should be converted into a CMD = stddev
FATE test, but it seems useful to try this way first.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-04-07 11:50:18 +02:00
Reimar Döffinger ecd7455e96 aacenc: Fix issues with huge values of bit_rate.
Do not pointlessly call ff_alloc_packet2 multiple times,
and fix an infinite loop by clamping the maximum
number of bits to target in the algorithm that does
not use lambda.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-04-07 11:48:20 +02:00
Michael Niedermayer 76e8b336cd proresenc_kostya: Mention likely ancestry in the license header.
As the encoder contained the same bug and has similar structure
to anatoliys encoder, it is possibly based on it.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-07 11:21:48 +02:00
Michael Niedermayer d40132dab3 proresenc_kostya: fix encoded mantissa.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-07 11:01:52 +02:00
Michael Niedermayer dd7d08ee89 proresenc_anatoly: fix encoded mantissa.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-07 11:00:00 +02:00
Michael Niedermayer e3b7079ddf adpcmenc: fix encoded s_0 value.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-07 10:58:10 +02:00
Michael Niedermayer fe5b7db07a build system: support setting avassert() assert_level
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-07 09:23:06 +02:00
Michael Niedermayer ab553612e7 put_bits: switch assert to av_assert2()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-07 07:58:16 +02:00
Michael Niedermayer 3fb945a935 mpegpsenc: fix user specified mux rate
Fixes Ticket1175

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-07 07:56:55 +02:00
Michael Niedermayer b717f35bfb fate: try to fix >8bit dpx reg test
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-07 06:53:39 +02:00
Martin Storsjö d293e3464d rtpdec_asf: Set the no_resync_search option for the chained asf demuxer
Searching for packet markers doesn't make sense for this use case,
where packets are fed one at a time to the demuxer.

This fixes playing back streams that have packets not starting
with the 0x82, 0x00, 0x00 marker.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-04-07 01:01:08 +03:00
Martin Storsjö 75b7feaeb4 asfdec: Add an option for not searching for the packet markers
Some streams don't contain these.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-04-07 01:01:03 +03:00
Martin Storsjö 1428527581 cosmetics: Clean up the tiffenc pix_fmts declaration to match the style of others
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-04-07 00:02:19 +03:00
Michael Niedermayer 2e0c360abd Merge remote-tracking branch 'qatar/master'
* qatar/master:
  cosmetics: Align muxer/demuxer declarations
  mpeg12: Do not change frame_pred_frame_dct flag and demote error into a warning
  avcodec: remove avcodec_guess_channel_layout()
  avutil: Add av_get_default_channel_layout()

Conflicts:
	doc/APIchanges
	libavcodec/mpeg12.c
	libavformat/cdg.c
	libavformat/matroskaenc.c
	libavformat/mpegts.c
	libavformat/nuv.c
	libavformat/wav.c
	libavutil/audioconvert.c
	libavutil/audioconvert.h
	libavutil/avutil.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-06 22:52:01 +02:00
Martin Storsjö 00c3b67b8a cosmetics: Align codec declarations
Also break some long lines, remove codec function placeholder comments
and add spaces in sample/pixel format lists.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-04-06 22:37:38 +03:00
Michael Niedermayer bd128e9bff exr: fix mixed declaration and statements.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-06 21:07:53 +02:00
Martin Storsjö 6d27d8b1dd cosmetics: Convert mimic.c to utf-8
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-04-06 21:35:26 +03:00
Anton Khirnov d4936548f4 avconv: remove an unused function parameter. 2012-04-06 20:21:07 +02:00
Anton Khirnov 4648fe6324 avconv: remove now pointless variables. 2012-04-06 20:21:07 +02:00
Anton Khirnov e06d2dfcde avconv: drop support for building without libavfilter.
Since the mandatory memcpy in vsrc_buffer has been eliminated, there
shouldn't be any significant reason to build without lavfi anymore.

This will make upcoming support for complex filtergraphs easier to do.
2012-04-06 20:21:07 +02:00
Reimar Döffinger cbb7183498 tiny_psnr: allow searching for optimal shift value.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-04-06 20:13:50 +02:00
Reimar Döffinger 439c3d5bcc nellymoserenc: fix crash due to memsetting the wrong area.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-04-06 21:05:19 +03:00
Joakim Plate ba24f12982 libavformat: Only require first packet to be known for audio/video streams
It can take a long time before subtitles or data streams show up,
so we shouldn't wait for those before assuming we have all info
for streams.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-04-06 20:51:18 +03:00
Reimar Döffinger 50361e5144 Add regression test for mov rtp hinting.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-04-06 19:50:37 +02:00
Reimar Döffinger 099a1875f0 dpxenc: also test 10 and 16 bit formats.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-04-06 19:50:37 +02:00
Reimar Döffinger e8b1da007e nellymoserenc: fix crash due to memsetting the wrong area.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-04-06 19:50:37 +02:00
Martin Storsjö 951e715ceb avplay: Don't try to scale timestamps if the tb isn't set
If get_filtered_video_frame failed above, tb might not be
initialized at all, so don't scale using it.

This fixes cases where avplay could crash if aborting
avformat_find_stream_info with ctrl+c.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-04-06 20:49:23 +03:00
Martin Storsjö 20234a4bd7 cosmetics: Align muxer/demuxer declarations
Also add missing trailing commas, break long codec_tag lines and
add spaces in codec_tag declarations.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-04-06 19:19:59 +03:00
Anne Aaron fdf3a749d3 mpeg12: Do not change frame_pred_frame_dct flag and demote error into a warning
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-04-06 18:32:17 +03:00
Alexander Strasser f363773042 doc: image2: update docs for glob input patterns
* adapt examples to new syntax
* mention that glob chars need to be enabled by a preceding % char
* note that globbing will be performed if both a printf and globbing
  pattern would be possible judging from the input pattern

Signed-off-by: Alexander Strasser <eclipse7@gmx.net>
2012-04-06 15:18:31 +02:00
Clément Bœsch 735fb8ce59 ffmpeg: remove unused MetadataMap.
This struct was forgotten after
e5df74dc56.
2012-04-06 14:25:35 +02:00
Clément Bœsch e5df74dc56 ffmpeg: remove unused meta_data_maps.
This is unused since a7b5e841ff.
2012-04-06 14:09:48 +02:00
Thierry Foucu e0f30a567f s302m: Add Channle Layout for 6 channels
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-06 11:03:15 +02:00
Michael Niedermayer 25eae29ea1 vsrc_buffer: remove overwrite support.
the overwrite flag became unused when merging support for buffering
multiple frames.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-06 11:01:22 +02:00
Michael Niedermayer 3826d53f15 README: be a tiny bit more verbose
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-06 10:23:26 +02:00
Michael Niedermayer f148537c41 exr: various cleanup and security related fixes
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-06 08:32:09 +02:00
Michael Niedermayer 634c01bc18 exr: fix av_logs()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-06 08:32:09 +02:00
Jimmy Christensen b7ce3242f8 lavc: add a OpenEXR decoder
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-06 08:32:09 +02:00
Michael Niedermayer 9e91a7d45b fix fate tests after 76c79aa28f
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-06 08:32:09 +02:00
Baptiste Coudurier e636aa1a56 movdec: handle 0x7fff langcode as macintosh per the specs
The correct point that seperates ISO and MAC language codes is 0x400
according to the current QT spec. Old QT specs did not list where this
seperation is but apparently only defined the meaning of the first 137.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-06 05:41:21 +02:00
Carl Eugen Hoyos 76c79aa28f Support yuva444p rawvideo in nut.
Fixes ticket #1058.
2012-04-06 00:53:09 +02:00
Justin Ruggles bb0618e68b avcodec: remove avcodec_guess_channel_layout()
It is not public because the header is not installed, and its functionality
has been replaced by av_get_default_channel_layout().
2012-04-05 16:40:51 -04:00
Justin Ruggles 5cc51a5847 avutil: Add av_get_default_channel_layout()
Also, use the new function in the AC-3 encoder.
2012-04-05 16:35:14 -04:00
Michael Niedermayer 2c5a2958e9 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  h264: Factorize declaration of mb_sizes array.
  vsrc_buffer: when no frame is available, return an error instead of segfaulting.
  configure: add dl to frei0r extralibs.
  dsputil x86: use SSE float instruction instead of SSE2 integer equivalent
  dsputil x86: remove deprecated parameter from scalarproduct_int16 prototype
  vp8dsp x86: perform rounding shift with a single instruction
  fate: add BMP tests.
  swscale: handle complete dimensions for monoblack/white.
  aacenc: Mark deinterleave_input_samples argument as const.
  vf_unsharp: Mark readonly variable as const.
  h264: fix 4:2:2 PCM-macroblocks decoding

Conflicts:
	configure
	libavcodec/h264.h
	libavcodec/x86/dsputil_mmx.c
	libavfilter/vf_unsharp.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-05 22:26:50 +02:00
Michael Niedermayer 3e4b5e68c1 cmdutils: fix -fdebug without -v xy
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-05 21:50:50 +02:00
Clément Bœsch 614716f583 mov: do not print string len in handler_name.
The handler name is stored as a pascal string in the QT specs (first
byte is the length of the string), thus leading to an invalid metadata
string export.

Also add a second length check based on the first character to avoid
overwriting an already specified handler_name (it happens with Youtube
videos for instance, the handler_name get masked), or specifying an
empty string metadata.
2012-04-05 17:32:54 +02:00
Diego Biurrun 0becb07842 h264: Factorize declaration of mb_sizes array. 2012-04-05 17:17:22 +02:00
Thierry Foucu c99bdd51b2 lavf: Fix the last PTS to be generated using -fflags +genpts
To reproduce the problem, using ffprobe:

./ffprobe -show_packets -print_format compact -fflags +genpts -i
fate_samples/mxf/C0023S01.mxf

You will notice that the last video frame does not have it's PTS being
set, even with using genpts.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-05 12:33:33 +02:00
Anton Khirnov a03f8ea0a8 vsrc_buffer: when no frame is available, return an error instead of segfaulting. 2012-04-05 09:30:09 +02:00
Anton Khirnov cfec77aaf8 configure: add dl to frei0r extralibs. 2012-04-05 09:20:03 +02:00
Michael Niedermayer fa1f92a4f1 vf_idet: clean detected frame types based on a 4 frame history.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-05 09:11:15 +02:00
Michael Niedermayer c59e73d2c8 vf_idet: change individual per frame statistics to debug log level.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-05 09:11:15 +02:00
Michael Niedermayer 4d4df310f2 vf_idet: print accumulated statistics for single and multi frame detection
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-05 09:11:15 +02:00
Clément Bœsch bfd30fa8a3 lavfi/colormatrix: add forgotten tests. 2012-04-05 07:32:45 +02:00
Michael Niedermayer 0477254dd2 vf_idet: Print both the single frame based detection and the multi frame one.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-05 06:38:48 +02:00
Michael Niedermayer 1a5c08eef6 vf_idet: Add last_type variable to make code more readable.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-05 06:33:40 +02:00
Michael Niedermayer ca2b450cee vf_idet: use enum to represent the type.
This will simplify future code.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-05 06:25:32 +02:00
Ramiro Polla bd603494f9 asfenc: properly write index information
The index must take into account the pre-roll time and must seek backwards,
not forwards.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-05 06:03:10 +02:00
Ramiro Polla ae315a6a38 asfenc: start at object 1 instead of 0
This is how it is done in the official muxer.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-05 05:48:32 +02:00
Ramiro Polla bc13b74992 asfenc: remove useless casts
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-05 05:48:31 +02:00
Ramiro Polla f2fad251b8 asfenc: reduce code duplication with new variable
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-05 05:48:30 +02:00
Ramiro Polla 1ceff0859d asfenc: rename some variables
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-05 05:48:29 +02:00
Ramiro Polla 97d36a1898 asfenc: realloc index_ptr fewer times
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-05 05:48:27 +02:00
multiple authors 13cc3645b0 libavfilter: add colormatrix filter
Ported by: Baptiste Coudurier
cleanup+fate by ubitux
For detailed authorship of the original code please see avisynth
2012-04-04 23:54:53 +02:00
Michael Niedermayer 4480edcf31 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  w32threads: Make pthread_cond_wait follow POSIX
  cosmetics: Consistently place static, inline and av_cold attributes/keywords.
  sbrdsp: Use standard multiple inclusion guards.
  pcm: K&R formatting cosmetics
  rawdec: Support fourccs YV16 and YV24
  rtmp: implement bandwidth notification
  rtmp: update supported audio codecs value

Conflicts:
	libavcodec/pcm.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-04 21:17:52 +02:00
Reimar Döffinger 6cecb8915a Add forgotten avio-direct reference file.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-04-04 21:15:07 +02:00
Reimar Döffinger a45605a1ba Add AVIO_FLAG_DIRECT.
Allows avoiding the buffer when using avio read, write and seek functions.
When using the ffmpeg executable -avioflags direct can be used to enable
this mode for input files, but has no effect on output files.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-04-04 20:39:33 +02:00
Christophe GISQUET 6b81da2fd0 dsputil x86: use SSE float instruction instead of SSE2 integer equivalent
All the more required since the users are pure SSE functions.

Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-04-04 11:24:27 -07:00
Christophe GISQUET cd88105f6f dsputil x86: remove deprecated parameter from scalarproduct_int16 prototype
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-04-04 11:24:08 -07:00
Christophe GISQUET f9888520cc vp8dsp x86: perform rounding shift with a single instruction
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-04-04 11:23:36 -07:00
Ronald S. Bultje 7756859a31 fate: add BMP tests. 2012-04-04 11:16:23 -07:00
Ronald S. Bultje bc0bdda77b swscale: handle complete dimensions for monoblack/white.
Fixes bug 269.
2012-04-04 10:55:50 -07:00
Diego Biurrun e484265c97 aacenc: Mark deinterleave_input_samples argument as const.
This fixes the warning:
libavcodec/aacenc.c:524: warning: passing argument 2 of ‘deinterleave_input_samples’ discards qualifiers from pointer target type
2012-04-04 19:34:40 +02:00
Diego Biurrun 1f068e4450 vf_unsharp: Mark readonly variable as const.
This fixes the following warning:
libavfilter/vf_unsharp.c:106: warning: initialization discards qualifiers from pointer target type
2012-04-04 19:34:40 +02:00
Anton Mitrofanov 14af74e9a0 h264: fix 4:2:2 PCM-macroblocks decoding
Fixes bug 239.

Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-04-04 19:34:39 +02:00
Michael Niedermayer fde63146d2 Merge remote-tracking branch 'dwbuiten/master'
* dwbuiten/master:
  w32threads: Make pthread_cond_wait follow POSIX

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-04 19:05:25 +02:00
Derek Buitenhuis 91dffb4c1d w32threads: Make pthread_cond_wait follow POSIX
pthread_cond_wait is supposed to return an integer,
and indeed does sometimes. Fix its function declaration
to match its behavior and POSIX.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2012-04-04 13:04:38 -04:00
Derek Buitenhuis 6da08c9986 w32threads: Make pthread_cond_wait follow POSIX
pthread_cond_wait is supposed to return an integer,
and indeed does sometimes. Fix its function declaration
to match its behavior and POSIX.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2012-04-04 13:02:34 -04:00
Michael Niedermayer ca26c2c30f lavf: add mp1/2 to determinable_frame_size()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-04 18:21:37 +02:00
Michael Niedermayer c22fd9bd9c allcodecs: move libaacplus down.
We choose the first encoder by default and libaccplus has a
quite limited set of supported bitrates/sample rates.
Thus leading to failure by default in many cases when it is
enabled at compile time.
Moving it down means that the other aac encoders are favored
by default which avoids this issue.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-04 17:44:21 +02:00
Tomas Härdin a61fada380 mxfdec: Fix regression on files from Pinnacle Thunder
The reason for this is that such files have IndexTableSegments which when parsed
cover EditUnit ranges like this:

 [0,1)
 [249,250)
 [249,377)
 [0,249)

where each interval is [IndexStartPosition,IndexStartPosition+IndexDuration).
This would be reduced to a sparse index like:

 [0,1), [249,250)

instead of the full range:

 [0,249), [249,377)

See TimeCode_HD.mxf, UMID =
060a2b340101010101010410130000000004001aa0e59175025b2a5600da4101.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-04 17:43:17 +02:00
Michael Niedermayer 6fb35dbad1 vf_idet: print accumulated statistics at end
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-04 16:31:31 +02:00
Michael Niedermayer baf0c79a4d vf_idet: set interlaced flags
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-04 16:27:24 +02:00
Michael Niedermayer 2941a937f2 vf_idet: fix indention
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-04 16:22:01 +02:00
Michael Niedermayer 5d9cfd8726 vf_idet: move statistic variables into the context
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-04 16:22:01 +02:00
Michael Niedermayer 02567bd73c vf_idet: remove unused function
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-04 16:22:01 +02:00
Michael Niedermayer 398491ae01 vf_idet: pass context to av_log()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-04 16:22:01 +02:00
Nicolas George 6c7b5b7b33 vf_ass: use drawutils. 2012-04-04 16:16:10 +02:00
Nicolas George a63712d37c vf_drawtext: use drawutils. 2012-04-04 16:16:10 +02:00
Nicolas George e8497a338e drawutils: implement uniform and mask blending. 2012-04-04 16:16:09 +02:00
Michael Niedermayer e3e89b6d8b libavfilter: Add interlace detect filter.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-04 15:27:30 +02:00
Nicolas George 12292f35a3 v4l2: allow to convert monotonic timestamps. 2012-04-04 15:22:44 +02:00
Diego Biurrun 3dde147ff9 cosmetics: Consistently place static, inline and av_cold attributes/keywords. 2012-04-04 14:54:13 +02:00
Diego Biurrun d4f05ae3b6 sbrdsp: Use standard multiple inclusion guards. 2012-04-04 14:54:11 +02:00
Nicolas George 8a9ae37fee timefilter: allow to evaluate at other times. 2012-04-04 14:32:44 +02:00
Aneesh Dogra 6d21f49879 pcm: K&R formatting cosmetics
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-04-04 14:14:28 +02:00
Clément Bœsch e29f66d64a ffmpeg: fix a few typo. 2012-04-04 11:50:16 +02:00
Michael Niedermayer a4e359a3f9 mpeg4: dont reset picture_num for xvid
Fixes Ticket1162

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-04 04:19:43 +02:00
Michael Niedermayer 3360b8517a h264: fix seeking in low delay streams without IDR
Fixes Ticket1165

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-04 03:43:23 +02:00
Michael Niedermayer 41a097aada Merge remote-tracking branch 'qatar/master'
* qatar/master:
  Unscaled Planar RGB -> RGB support in swscale.

Conflicts:
	libswscale/swscale_unscaled.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-04 01:14:45 +02:00
Michael Niedermayer ae3ee72e02 lavf: print some more things in TS debug statements
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-03 23:46:23 +02:00
Michael Niedermayer b5d433d306 lavf: increase RELATIVE_TS_BASE
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-03 23:46:23 +02:00
Piotr Bandurski 835a893bcb rawdec: Support fourccs YV16 and YV24 2012-04-03 15:48:53 -04:00
Raffaele Sena 34d908c083 rtmp: implement bandwidth notification
Improve compatibility with some servers.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2012-04-03 12:37:31 -07:00
Samuel Pitoiset faba4a9b88 rtmp: update supported audio codecs value
The audio codecs property is composed by all values except
SUPPORT_SND_INTEL (0x0008) and SUPPORT_SND_UNUSED (0x0010) which are
unused.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2012-04-03 12:24:33 -07:00
Clément Bœsch 588eaa106d swfdec: support compressed swf. 2012-04-03 19:12:52 +02:00
Hans-Kristian Arntzen b991b300f2 Unscaled Planar RGB -> RGB support in swscale.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2012-04-03 13:06:42 -04:00
Michael Niedermayer 38477e1981 vf_lut: avoid rgb component indexing in the inner loop
15k->10k cpu cycles

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-03 18:30:07 +02:00
Michael Niedermayer 002d9ded4a vf_lut: optimize rgb codepath
19k -> 15k cpu cycles

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-03 18:13:33 +02:00
Michael Niedermayer 79a1d98676 vf_lut: optimize planar case
2500 -> 1900 cpu cycles

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-03 17:49:04 +02:00
Tomas Härdin 24e90d0c05 mxfenc: Don't allow muxing audio-only since it's not supported
This fixes muxing audio-only output resulting in SIGFPE due to lack of EditRate.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-03 10:11:27 +02:00
Michael Niedermayer b61e596a14 asf: remove duplicated index_guid
Found-by:ramiro
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-03 09:46:52 +02:00
Michael Niedermayer cfd64eec4e Merge remote-tracking branch 'qatar/master'
* qatar/master:
  FATE: Add RALF decoding test

Conflicts:
	tests/fate/real.mak

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-03 00:10:19 +02:00
Michael Niedermayer 3c480f8a6c h264: fix incompatible pointer type warnings.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-02 22:05:42 +02:00
Michael Niedermayer 11bc558070 mpegts: fix a unused function warning
note the function is used under #if

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-02 21:33:42 +02:00
Michael Niedermayer e0541c7b5e dct-test: fix incompatible pointer types warning
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-02 21:26:08 +02:00
Michael Niedermayer 183c3fa48a des: Fix half a dozen warnings
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-02 21:23:56 +02:00
Matthieu Bouron 2663540821 ffmpeg: affect source stream index in new_output_stream function
Fix map_channel when mapped audio stream index is greater than 0.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-02 17:27:09 +02:00
Michael Niedermayer 1e059731a3 movenc: fix segfault with chapter tracks
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-02 17:00:20 +02:00
Michael Niedermayer c450cf1572 libavcodec: be less picky on nonsense rc_max_rate / rc_buffer_size combinations.
Some applications use these combinations and to maintain ABI
compatibility with previous versions we should not suddenly
fail. Thus only display a warning for the newly detected cases

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-02 02:58:08 +02:00
Michael Niedermayer 49891784ce Merge remote-tracking branch 'qatar/master'
* qatar/master:
  vsrc_buffer: allow buffering arbitrary number of frames.
  vf_scale: avoid a pointless memcpy in no-op conversion.
  avfiltergraph: try to reduce format conversions in filters.
  avfiltergraph: add an AVClass to AVFilterGraph on next major bump.
  id3v2: fix skipping extended header in id3v2.4

Conflicts:
	libavfilter/vf_scale.c
	libavfilter/vsrc_buffer.c
	libavformat/id3v2.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-02 00:17:02 +02:00
Michael Niedermayer 178f75a5ae snow-test: fix pointer type warnings
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-01 22:28:24 +02:00
Michael Niedermayer 5ef5c02354 swr-test: remove unused variable
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-01 22:24:06 +02:00
Michael Niedermayer 6e1b0cdad9 fft-test: fix all pointer type warnings.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-01 22:19:45 +02:00
Michael Niedermayer 87688727e4 swr: remove unused variable
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-01 22:11:34 +02:00
Michael Niedermayer dc984da961 swr: fix pointer type warnings
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-01 22:10:40 +02:00
Michael Niedermayer 226671ee2f dsputil_mmx: fix scalarproduct prototypes
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-01 22:04:05 +02:00
Michael Niedermayer b76a160ffa txd: Fix "set but not used" warning
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-01 21:58:29 +02:00
Derek Buitenhuis 0aaa45ef69 FATE: Add RALF decoding test
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2012-04-01 15:56:08 -04:00
Michael Niedermayer b3ab337227 audiointerleave: check timebase
Replaces FPE by clean error

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-01 21:21:13 +02:00
Michael Niedermayer ce9bd30379 ffmpeg: fix plain -profile support
Fixes Ticket387

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-01 20:48:20 +02:00
Michael Niedermayer 6a052e64b5 direcdec: fix infinite loop
Fixes Ticket1156

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-01 16:11:29 +02:00
maxlazarov 7a3df014b9 The lt and lte functions were swapped. 2012-04-01 11:01:08 +02:00
Michael Niedermayer 8df774be88 avidec: better NI detection.
The new code detects NI avis by analyzing the index.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-01 10:33:16 +02:00
Anton Khirnov 95587d29d7 vsrc_buffer: allow buffering arbitrary number of frames. 2012-04-01 09:04:19 +02:00
Anton Khirnov 416fd90ead vf_scale: avoid a pointless memcpy in no-op conversion.
I.e. just pass the buffer along when src parameters == dst parameters.
2012-04-01 09:04:14 +02:00
Anton Khirnov 63736fe48c avfiltergraph: try to reduce format conversions in filters.
Current code, with a filterchain such as
(input - yuv411) -> (scale - any) -> (sink - any)
will result in yuv420 being chosen for the second link, which is clearly
not right.

This commit attempts to improve in the following way:
repeat until convergence:
  loop over all filters
    find input link with exactly one format
    force this format on all output links of the same type (if possible)
2012-04-01 09:04:09 +02:00
Anton Khirnov 996f9f0c32 avfiltergraph: add an AVClass to AVFilterGraph on next major bump.
It will be used for logging, possibly also AVOptions.
2012-04-01 09:03:35 +02:00
Anton Khirnov ddb4431208 id3v2: fix skipping extended header in id3v2.4
In v2.4, the length includes the length field itself.
2012-04-01 09:02:24 +02:00
Michael Niedermayer 7c9d69360c lavc: check media type of the decoder before calling it.
This fixes a segfault where a video decoder was called
from avcodec_decode_audio*().

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-01 02:57:27 +02:00
Michael Niedermayer 2f7bd3b516 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  apedec: check bits <= 32.
  cavs: Remove unused code.
  oggenc: fix condition when not to flush due to keyframe granule.
  oggenc: add pagesize option to set preferred page size
  libspeexdec: set frame size in libspeex_decode_init()
  smacker audio: sign-extend the initial 16-bit predicted value

Conflicts:
	libavcodec/apedec.c
	libavcodec/libspeexdec.c
	libavformat/oggenc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-01 00:36:43 +02:00
Michael Niedermayer 5216245a2c indeo4: fix null ptr dereference
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-31 23:31:56 +02:00
Derek Buitenhuis 6bd9744582 FATE: Add RALF decoding test
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-31 22:33:00 +02:00
Michael Niedermayer d3db8988d5 indeo4: check that num_mbs matches
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-31 21:42:50 +02:00
Michael Niedermayer 420d1df2e2 apedec: check bits <= 32.
Fixes a floating-point exception further down.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2012-03-31 14:01:12 -04:00
Michael Niedermayer 3768445be8 tm2dec: fix overread
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-31 18:25:44 +02:00
Aneesh Dogra c265b77b11 cavs: Remove unused code.
The square is always passed as 1 whenever the function is called and
thus the if block never gets executed.

Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-03-31 08:14:54 -07:00
Michael Niedermayer f9143d2407 ividsp: prevent pointers from going outside and overreading.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-31 16:35:54 +02:00
Michael Niedermayer 12038ab16d ividsp: zero pitch so as not to overread
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-31 16:35:54 +02:00
Michael Niedermayer 874ac0b1fd indeo5: change AVCodecContext w/h when internal ones change.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-31 16:35:54 +02:00
Michael Niedermayer d2a6074359 fate: update regression checksum due to 95ce0ddcfe
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-31 16:35:54 +02:00
Stefano Sabatini 95ce0ddcfe lavfi/fade: fix black level for non studio-level pixel formats
Fix trac ticket #1139, regression introduced in 8c1fb50d07.
2012-03-31 15:55:43 +02:00
Reimar Döffinger 1a06d6dd86 lxfdec: support version 1 files, too.
Fixes trac issue #656.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-03-31 12:37:42 +02:00
Reimar Döffinger 40393ac568 movenc: add some default cases.
This fixes crashes when copying a data track as in trac
issue #236.
No proper timecode tracks will be written though.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-03-31 12:37:42 +02:00
Reimar Döffinger 50059bde77 MOV: Fix old-style muxed raw-audio data.
This patch fixes the sample from trac issue #522.
The issue is that the mov demuxer insists on using its
calculated sample_size (which is nonsense for old-style tracks)
instead of the one encoded in the track.
The old raw audio code should be using the value in stsz, because
the size of a single sample never makes sense for the size of
a full audio packet, whereas the new code will multiply the
sample size by the chunk size, so it should use the calculated value.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-03-31 12:37:42 +02:00
Reimar Döffinger e0ad7f74c7 MOV: bail out to toplevel when encountering a trak or mdat chunk.
This patch fixes the sample from trac issue #733.
The issue is that the size of the trak elements is coded
too large, so that the next trak element would be parsed
as part of the first and truncated incorrectly.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-03-31 12:37:42 +02:00
Michael Niedermayer 2d54bbb950 vsrc_buffer: Store allocated scale filter and free it later.
Fixes a memleak.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-31 08:52:35 +02:00
Michael Niedermayer c5f9a66f74 avfilter: allow freeing NULL.
this way avfilter_free() can be called without NULL checks.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-31 08:48:23 +02:00
Michael Niedermayer a79af8e8cb dcttest: put ff_prores_idct_put_10_sse2_wrap under HAVE_YASM
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-31 00:03:44 +02:00
Reimar Döffinger 10b1c060f9 oggenc: fix condition when not to flush due to keyframe granule.
The previous condition of 0 page size was wrong,
that would disable the mechanism for all frames at
a start of a page, thus some keyframes still would not
get their own granule.
The real problem is that header packets must not be flushed,
but they have (and must have) 0 granule and thus would
be detected as keyframes.
Add a separate parameter to mark header packets.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-03-30 16:32:16 -04:00
Andres Gonzalez ed3e1b485a oggenc: add pagesize option to set preferred page size
When set, if an Ogg stream buffer has enough data, a page is made
instead of filling maximum-size pages. Using smaller pages results
smaller seek intervals at the expense of higher container overhead.

Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-03-30 16:32:03 -04:00
Justin Ruggles 67aec401d8 libspeexdec: set frame size in libspeex_decode_init()
This fixes speex decoding, which was broken in 85469f1c.
2012-03-30 16:30:37 -04:00
Michael Niedermayer 2b6325cacb Merge remote-tracking branch 'qatar/master'
* qatar/master:
  h264: drop ff_h264_ prefix from static function ff_h264_decode_rbsp_trailing()
  h264: Make ff_h264_decode_end() static, it is not used externally.
  output-example: K&R formatting cosmetics, comment spelling fixes
  avf: make the example output the proper message
  avf: fix audio writing in the output-example
  mov: don't overwrite existing indexes.
  lzw: fix potential integer overflow.
  truemotion: forbid invalid VLC bitsizes and token values.
  truemotion2: handle out-of-frame motion vectors through edge extension.
  configure: Check for a different SDL function

Conflicts:
	configure
	doc/examples/muxing.c
	libavcodec/truemotion2.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-30 22:10:17 +02:00
Michael Niedermayer 96df29c318 svq3: Fix pointer type mismatch warning.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-30 21:51:46 +02:00
Michael Niedermayer 280beebd39 cavsdec: initialize all tables to zeros.
This ensures that they dont contain invalid values.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-30 21:48:17 +02:00
Franz Brauße 12cbbbb4ab smacker audio: sign-extend the initial 16-bit predicted value
Fixes Bug #265

Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-03-30 14:44:11 -04:00
Michael Niedermayer a627c1a146 svq1enc: fix ptr type mismatch warning
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-30 20:23:13 +02:00
Michael Niedermayer e2094bd03b mpeghaudiodec: Fix "set but not used" warnings
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-30 20:17:58 +02:00
Michael Niedermayer 8307025467 mjpegdec: Fix "assignment from incompatible pointer type" warnings
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-30 20:17:51 +02:00
Michael Niedermayer 03757d488f j2kenc: Fix "function declaration isn’t a prototype" warning
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-30 20:11:50 +02:00
Michael Niedermayer cb9fe2745b j2kdec: fix format strings
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-30 20:10:39 +02:00
Michael Niedermayer 3ebfe22d13 interplayvideodec: pass correct pointer to av_dlog()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-30 20:08:07 +02:00
Michael Niedermayer 90f9b06386 dvbsubdec: Fix "set but not used" warning
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-30 19:59:48 +02:00
Michael Niedermayer a76a2ffe9d libavformat: Fix several "incompatible pointer type" warnings.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-30 19:52:30 +02:00
Michael Niedermayer ec0965be36 cavsdec: ensure the tables have been allocated before using them
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-30 19:18:42 +02:00
Diego Biurrun b691fd7a4d h264: drop ff_h264_ prefix from static function ff_h264_decode_rbsp_trailing() 2012-03-30 17:47:12 +02:00
Diego Biurrun 9ad80ef3db h264: Make ff_h264_decode_end() static, it is not used externally.
Also drop the now unnecessary ff_ prefix from its name.
2012-03-30 17:46:52 +02:00
Diego Biurrun afd8a3957b output-example: K&R formatting cosmetics, comment spelling fixes 2012-03-30 13:43:29 +02:00
Michael Niedermayer 2b7c0c9fe1 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  mp3dec: perform I/S and M/S only when frame mode is joint stereo.
  id3v2: add another mimetype for JPEG image
  lzw: prevent buffer overreads.
  WMAL: Remove inaccurate and unnecessary doxy
  h264: fix cabac-on-stack after safe cabac reader.
  truemotion2: convert packet header reading to bytestream2.

Conflicts:
	libavcodec/lzw.c
	libavcodec/truemotion2.c
	libavformat/id3v2.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-30 06:05:39 +02:00
Michael Niedermayer d3d5e84f33 img2dec: remove GLOB_TILDE support.
tilde expansion should/can be done by the shell

Reviewed-by: Alexander Strasser <eclipse7@gmx.net>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-30 05:16:15 +02:00
Luca Barbato 93f6d0475f avf: make the example output the proper message
av_dump_format needs the codecs opened in order to print
them.
2012-03-29 17:07:19 -07:00
Luca Barbato 28db30aa29 avf: fix audio writing in the output-example
av_init_packet does not reset data and size fields in AVPacket,
avcodec_encode_audio2 can use preallocated AVPacket.
2012-03-29 17:07:19 -07:00
Alexander Strasser 3e1ff8eb27 img2dec: Recognize glob meta chars only if prefixed by %
This changes globbing support to only be used if the character
contains at least one glob meta character that is preceded by
an unescaped %. To escape a literal % one would use %% which is
identical to the way to match a % with image2 sequence generation
feature.

* Makes it possible to have patterns like %04d-[720p].jpg work
  again with sequence number generation. Previously this would
  always be detected as a glob pattern and was interpreted by
  the image2 glob code instead.

* Makes it possible to use %*-[720p].jpg to match above pattern
  without having to double escape it to be not interpreted by most
  shells and not by the image2 glob code (previously one would
  need to use \*-\\\[720p\\\].jpg to achieve the same)

Signed-off-by: Alexander Strasser <eclipse7@gmx.net>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-30 00:04:16 +02:00
Brian Olson 0be130e37b img2: glob matching for image series
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-30 00:03:41 +02:00
Michael Niedermayer d61ef05bc5 ffmpeg: check pts like dts for being in the past.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-29 22:32:53 +02:00
Ronald S. Bultje 4f7c7624c0 mov: don't overwrite existing indexes.
Prevents all kind of badness if files contain multiple
indexes.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-29 11:36:14 -07:00
Ronald S. Bultje 0399fe0fd2 lzw: fix potential integer overflow. 2012-03-29 11:36:14 -07:00
Ronald S. Bultje b7b1509d06 truemotion: forbid invalid VLC bitsizes and token values.
SHOW_UBITS() is only defined up to n_bits is 25, therefore forbid
values larger than this in get_vlc2() (max_bits). tokens[][] can be
used as an index in deltas[], which has a size of 64, so ensure the
values are smaller than that.

This prevents crashes on corrupt bitstreams.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-29 11:36:14 -07:00
Ronald S. Bultje bf39d3b59d truemotion2: handle out-of-frame motion vectors through edge extension.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-29 11:36:11 -07:00
Michael Niedermayer 30ced7e69f lavf: print ts values in pts < dts error message
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-29 20:31:14 +02:00
Martin Storsjö 9bd41bb191 configure: Check for a different SDL function
This one is available both in SDL 1.2 and in 1.3 (which is the current
version available e.g. in macports), while 1.3 doesn't contain
SDL_Linked_Version().

The current check for SDL_Linked_Version() (available since SDL 1.2.13)
was added in 8f1b06c8, because including the headers for SDL_Init()
redirects the main() function, requiring the main function signature
to match the one of SDL_main (including argc/argv).

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-03-29 21:25:59 +03:00
Michael Niedermayer 4204364678 ffmpeg: switch duration calculation code from avg to r frame_rate.
This heuristic is less likely to overshoot and cause encoder failure.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-29 19:23:22 +02:00
Kostya Shishkov a05c41acd1 mp3dec: perform I/S and M/S only when frame mode is joint stereo.
Looks like some LAME versions produce dual stereo mode MP3s with
flags for intensity and middle stereo set. In this mode those flags
should be ignored like the reference decoder and derived ones do.
2012-03-29 19:08:05 +02:00
Kostya Shishkov f704eb612b id3v2: add another mimetype for JPEG image 2012-03-29 15:49:06 +02:00
Carl Eugen Hoyos 282ec7289d Do not try to use lowres for unusual jpg subsampling.
Fixes ticket #1144.
2012-03-29 13:09:37 +02:00
Carl Eugen Hoyos 9a0f2b7b3a Revert "Fix compilation with hardcoded tables."
This reverts commit b17b296369.
2012-03-29 08:02:10 +02:00
Michael Niedermayer 1dab5efa01 fate/vp8-size-change: set bitexact flag
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-29 06:03:55 +02:00
Michael Niedermayer a37a281778 ffmpeg: pass bitexact flag to vsrc_buffer
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-29 05:56:47 +02:00
Piotr Bandurski ddd8974008 iff: prevent a possible crash with broken/prepared IFF PBM
Based on fix by Peter Ross for ticket #1054.
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-29 04:59:58 +02:00
Michael Niedermayer aebce0b0fa Merge git://github.com/mjbshaw/FFmpeg-OpenJPEG-J2K-Encoder
* git://github.com/mjbshaw/FFmpeg-OpenJPEG-J2K-Encoder:
  Fixes ticket 1127. I'm still looking into why bpp is getting set to 0.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-29 04:55:58 +02:00
Michael Niedermayer 9aeacc9546 ffmpeg: dont disable dr1 when changing dimensions are encountered in codec_get_buffer().
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-29 04:37:14 +02:00
Michael Niedermayer e5c3b51cd1 ffmpeg: disable dr1 when frame sizes change.
dr1 seems to work fine with frame size changes but many filters
cant handle it yet. Simply disabling it forces the alternative
non dr1 code path which has been tested more completely and
is known to handle frame size changes in a wider varity of
cases.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-29 04:13:27 +02:00
Michael Niedermayer 8c2045c979 avfilter: set w/h in avfilter_fill_frame_from_video_buffer_ref().
This fixes issues with AVFrame w/h being wrong in some cases

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-29 04:11:55 +02:00
Michael Niedermayer d40ff29cac Merge remote-tracking branch 'qatar/master'
* qatar/master:
  asf: only set index_read if the index contained entries.
  cabac: add overread protection to BRANCHLESS_GET_CABAC().
  cabac: increment jump locations by one in callers of BRANCHLESS_GET_CABAC().
  cabac: remove unused argument from BRANCHLESS_GET_CABAC_UPDATE().
  cabac: use struct+offset instead of memory operand in BRANCHLESS_GET_CABAC().
  h264: add overread protection to get_cabac_bypass_sign_x86().
  h264: reindent get_cabac_bypass_sign_x86().
  h264: use struct offsets in get_cabac_bypass_sign_x86().
  h264: fix overreads in cabac reader.
  wmall: fix seeking.
  lagarith: fix buffer overreads.
  dvdec: drop unnecessary dv_tablegen.h #include
  build: fix doc generation errors in parallel builds
  Replace memset(0) by zero initializations.
  faandct: Remove FAAN_POSTSCALE define and related code.
  dvenc: print allowed profiles if the video doesn't conform to any of them.
  avcodec_encode_{audio,video}: only reallocate output packet when it has non-zero size.
  FATE: add a test for vp8 with changing frame size.
  fate: add kgv1 fate test.
  oggdec: calculate correct timestamps in Ogg/FLAC

Conflicts:
	libavcodec/4xm.c
	libavcodec/cook.c
	libavcodec/dvdata.c
	libavcodec/dvdsubdec.c
	libavcodec/lagarith.c
	libavcodec/lagarithrac.c
	libavcodec/utils.c
	tests/fate/video.mak

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-29 04:11:10 +02:00
Ronald S. Bultje ddcf67c8a5 lzw: prevent buffer overreads.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-28 17:38:51 -07:00
Mashiat Sarker Shakkhar 28e8c4d59a WMAL: Remove inaccurate and unnecessary doxy
A call to decode_packet() does not always decode a complete WMA packet.
Moreover, this is not the correct place to document calls that are part
of the public API.

Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-03-29 01:47:03 +02:00
Ronald S. Bultje 63a1b481f6 h264: fix cabac-on-stack after safe cabac reader. 2012-03-28 16:35:42 -07:00
Michael Bradshaw b678dd9690 Fixes ticket 1127.
I'm still looking into why bpp is getting set to 0.
2012-03-28 16:27:08 -06:00
Stefano Sabatini 99bb88c588 doc/ffmpeg: update and extend documentation for -copytb
Address trac ticket #1120.
2012-03-28 23:39:44 +02:00
Ronald S. Bultje bd508d435b truemotion2: convert packet header reading to bytestream2.
Also use correct buffer sizes in calls to tm2_read_stream(). Together,
this prevents overreads.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-28 12:29:26 -07:00
Ronald S. Bultje 44257ef426 asf: only set index_read if the index contained entries.
This allows falling back to a binary search if the file contains no
index, thus fixing seeking in such files (e.g. luckynight.wma).
2012-03-28 10:22:25 -07:00
Ronald S. Bultje a940198130 cabac: add overread protection to BRANCHLESS_GET_CABAC().
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
2012-03-28 08:01:29 -07:00
Ronald S. Bultje 448dc42571 cabac: increment jump locations by one in callers of BRANCHLESS_GET_CABAC(). 2012-03-28 08:01:29 -07:00
Ronald S. Bultje 16f6e83f74 cabac: remove unused argument from BRANCHLESS_GET_CABAC_UPDATE(). 2012-03-28 08:01:29 -07:00
Ronald S. Bultje 951014e5bb cabac: use struct+offset instead of memory operand in BRANCHLESS_GET_CABAC(). 2012-03-28 08:01:29 -07:00
Ronald S. Bultje a0bdcb019e h264: add overread protection to get_cabac_bypass_sign_x86(). 2012-03-28 08:01:29 -07:00
Ronald S. Bultje 95bfa4ead7 h264: reindent get_cabac_bypass_sign_x86(). 2012-03-28 08:01:29 -07:00
Ronald S. Bultje db025929f2 h264: use struct offsets in get_cabac_bypass_sign_x86(). 2012-03-28 08:01:29 -07:00
Ronald S. Bultje 7374fac804 h264: fix overreads in cabac reader.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-28 08:01:28 -07:00
Nicolas George 247fbf071b ass: fix aspect ratio computation. 2012-03-28 16:38:15 +02:00
Ronald S. Bultje d360dd902c wmall: fix seeking. 2012-03-28 07:14:21 -07:00
Ronald S. Bultje 0a82f5275f lagarith: fix buffer overreads.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-28 07:06:47 -07:00
Diego Biurrun c0b34e6148 dvdec: drop unnecessary dv_tablegen.h #include
dvdec.c uses nothing from dv_tablegen.h.  As a welcome side-effect, this
fixes compilation of that file with hardcoded tables enabled.
2012-03-28 15:51:43 +02:00
Michael Niedermayer c44417e15a indeo4: Dont leave tables in random state on errors.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-28 14:53:17 +02:00
Michael Niedermayer a74d721876 indeo4: apply correction to eob/esc indexes too
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-28 14:52:27 +02:00
Michael Niedermayer 92f7f1db42 indeo4: Check for mismatching scan tables
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-28 14:51:21 +02:00
Mans Rullgard 2efb710a34 build: fix doc generation errors in parallel builds
The $(dir) function used to construct OBJDIRS includes a trailing slash
in the names returned, which GNU make 3.82 does not match to the
slash-less 'doc' in the documentation dependencies, causing parallel
build to fail.  Adding a slash fixes this and still works with make
3.81.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-03-28 11:42:19 +01:00
Michael Niedermayer a60a4d7041 vc1dec: Fix global array overread.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-28 10:44:43 +02:00
Michael Niedermayer 8db2935db0 apedec: fix global array overread
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-28 10:30:44 +02:00
Diego Biurrun a92be9b856 Replace memset(0) by zero initializations.
Also remove one pointless zero initialization in rangecoder.c.
2012-03-28 09:38:33 +02:00
Diego Biurrun 856c8e0a04 faandct: Remove FAAN_POSTSCALE define and related code.
It is not a user-accessible option and unlikely to ever be changed.
2012-03-28 09:38:31 +02:00
Anton Khirnov a839dbb94e dvenc: print allowed profiles if the video doesn't conform to any of them. 2012-03-28 09:29:04 +02:00
Anton Khirnov 3c6607eb6f avcodec_encode_{audio,video}: only reallocate output packet when it has non-zero size.
Otherwise realloc would free it, which would result in double free
later.
2012-03-28 09:28:47 +02:00
Anton Khirnov e2e165c00f FATE: add a test for vp8 with changing frame size. 2012-03-28 09:28:29 +02:00
Michael Niedermayer 7a5e587249 apedec: check bits <= 32
Fixes FPE

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-28 08:24:31 +02:00
Michael Niedermayer 936951ca5c tm2dec: check total_frames and extradata_size.
Fixes overread

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-28 08:24:31 +02:00
Carl Eugen Hoyos b17b296369 Fix compilation with hardcoded tables. 2012-03-28 08:06:38 +02:00
Michael Niedermayer d0dafebb75 tm2: Fix overread of token array.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-28 07:37:12 +02:00
Michael Niedermayer 11cc209226 lzw(gif): Fix overread
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-28 07:36:56 +02:00
Michael Niedermayer 96d0494123 lagarith: Fix various issues that lead to out of array reads.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-28 06:41:40 +02:00
Michael Niedermayer 44bd50f529 lagarith: fix flipped return value
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-28 06:40:14 +02:00
Michael Niedermayer c30d04cedd lagarithrac: fix length used in ff_lag_rac_init()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-28 06:26:54 +02:00
Michael Niedermayer 7b453d1c60 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  westwood_vqa: fix SND0 chunk handling
  westwood_vqa: set video stream duration
  raw: forward avpicture_fill() error code in raw_decode().
  build: Do not explicitly add the doc directory to the OBJDIRS list.
  dv: Split off DV video decoder into its own file.
  build: fix RALF decoder standalone compilation, which depends on Golomb code
  configure: Drop stray duplicate entry for --disable-fft from help output.

Conflicts:
	libavcodec/dv.c
	libavcodec/rawdec.c
	libavformat/westwood_vqa.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-28 04:12:24 +02:00
Michael Niedermayer 4a619fcae9 h263dec: Restore w/h values to a consistent state if a change is rejected.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-28 03:17:48 +02:00
Ronald S. Bultje e74d6daa29 fate: add kgv1 fate test.
Tested to be bit-exact across x86-64, x86-32 and ppc.
2012-03-27 17:54:04 -07:00
Piotr Bandurski 3c6397404b id3v2: support JPEG APIC with incorrect (image/jpg) MIME type
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-28 02:37:18 +02:00
Paul B Mahol e4cc9f309e Support FLIC in AVI.
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-28 02:34:06 +02:00
Michael Niedermayer e206b51fd3 Merge remote-tracking branch 'cus/stable'
* cus/stable:
  ffplay: pause rdft column when ffplay is paused

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-28 02:16:56 +02:00
Justin Ruggles eed691f7d1 oggdec: calculate correct timestamps in Ogg/FLAC
We need to parse the individual packet durations when there is more than one
packet in a page.
2012-03-27 16:11:06 -04:00
Michael Niedermayer e6093e3640 ffplay: pause rdft column when ffplay is paused
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Marton Balint <cus@passwd.hu>
2012-03-27 21:35:56 +02:00
Paul B Mahol a0340dfbd7 XBM decoder
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-27 20:08:41 +02:00
Paul B Mahol 1cd8510912 j2kdec: move ff_j2k_init_tier1_luts() to j2kdec_init()
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-27 19:51:19 +02:00
Tim Nicholson 6fa998c491 Clarify the use of the interl=1|-1 option of the scale filter.
It is not entirely clear that whilst for width and height only an
expression needs to be provided, for interlace the option must
also be given.

It is also unclear that the default is non interlaced aware scaling.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-27 19:47:36 +02:00
Thilo Borgmann 7ea948bac3 alsdec: check return values. 2012-03-27 18:06:54 +02:00
Paul B Mahol 55abaa58e5 westwood_vqa: fix SND0 chunk handling
Version from vqa header does not dictate which sound chunks may
appear in file.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-03-27 11:58:15 -04:00
Paul B Mahol f0a343f399 westwood_vqa: set video stream duration
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-03-27 08:54:07 -07:00
Ronald S. Bultje 98df2e2414 raw: forward avpicture_fill() error code in raw_decode().
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-27 08:54:07 -07:00
Michael Niedermayer 28a613b09b h264: dont mess with chroma planes for grayscale h264.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-27 15:28:18 +02:00
Michael Niedermayer dfacef9e73 alsdec: make sure no invalid opt_order stays in the context.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-27 13:50:41 +02:00
Michael Niedermayer 1acc553e54 vc1dec: dont ignore ff_vc1_parse_frame_header_advs return value
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-27 13:22:28 +02:00
Michael Niedermayer e3bd61248f vc1dec: avoid == -1 checks for errors.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-27 13:21:28 +02:00
Michael Niedermayer b378a23395 vc1dec: sanity check state used in get_mvdata_interlaced()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-27 13:20:51 +02:00
Michael Niedermayer dcd013a535 oma: dont over-read buffer
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-27 12:52:53 +02:00
Michael Niedermayer 6999f8bcf5 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  make av_interleaved_write_frame() flush packets when pkt is NULL
  mpegts: Fix dead error checks
  vc1: Do not read from array if index is invalid.
  targa: convert to bytestream2.
  rv34: set mb_num_left to 0 after finishing a frame

Conflicts:
	libavcodec/targa.c
	libavcodec/vc1data.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-27 11:59:39 +02:00
Diego Biurrun 8e0b7e2f14 build: Do not explicitly add the doc directory to the OBJDIRS list.
Now that a documentation generator is built in the doc directory,
this is no longer necessary.  Fixes the Make warning:
Makefile:188: target `doc' given more than once in the same rule.
2012-03-27 11:15:47 +02:00
Diego Biurrun d724fe665b dv: Split off DV video decoder into its own file. 2012-03-27 11:15:47 +02:00
Diego Biurrun 9f43fdda3e build: fix RALF decoder standalone compilation, which depends on Golomb code 2012-03-27 11:15:40 +02:00
Diego Biurrun d7ce1a48a5 configure: Drop stray duplicate entry for --disable-fft from help output. 2012-03-27 11:15:39 +02:00
Jindrich Makovicka 904100e5fc make av_interleaved_write_frame() flush packets when pkt is NULL
This patch allows the user to force flushing of all queued packets
by calling av_interleaved_write_frame() with pkt set to NULL.

Signed-off-by: Jindrich Makovicka <jindrich.makovicka@nangu.tv>
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-03-27 11:12:55 +03:00
Compn ab31db0610 doc: clarify dshow input requirements 2012-03-26 22:18:48 -04:00
Paul B Mahol 0f3886fa7d j2kdec: remove pointless swapping
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-27 03:32:07 +02:00
Paul B Mahol ebbf10efb0 j2kdec: vertically align AVCodec members
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-27 03:29:54 +02:00
Paul B Mahol 75625c6138 j2kdec: Remove useless .pix_fmts.
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-27 03:29:25 +02:00
Paul B Mahol ddfa3751c0 j2kdec: convert to bytestream2 API
Protects against overreads.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-27 03:27:13 +02:00
Alex Converse c9024a9fd7 mpegts: Fix dead error checks 2012-03-26 17:53:51 -07:00
Mashiat Sarker Shakkhar 95b192de5d vc1: Do not read from array if index is invalid.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-03-26 17:48:13 -07:00
Ronald S. Bultje 2ad405548b targa: convert to bytestream2.
Also remove some write-only variables or write-only variable
assignments, remove internal colorspace conversion to native
endianness (that can be done by swscale much more efficiently),
and some cosmetics.
2012-03-26 17:46:16 -07:00
Michael Niedermayer a0820eaa8a ffmpeg: fix handling or empty audio packets
Fixes Ticket1131

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-27 02:43:40 +02:00
Michael Niedermayer b62b9df798 ffmpeg: more verbose error messages in case of audio encoding failure.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-27 02:30:08 +02:00
Michael Niedermayer 8b58f6b5c2 Revert "raw: move buffer size check up."
This reverts commit cc5dd632ce.
The change was redundant, it has been fixed long ago (422e3a7)

Conflicts:

	libavcodec/rawdec.c

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-27 02:17:54 +02:00
Ronald S. Bultje 5484170ac7 rv34: set mb_num_left to 0 after finishing a frame
Prevents running error resilience on a previous frame which will write
to the pic->mb_type[] array of the previous image. The array might
already be re-used for a new image in a subsequent thread, thus cause
two threads to write to the same pic->mb_type[] array, causing a race
condition which can crash in rv34_decode_cbp(), called by
rv34_decode_inter_mb_header() (which accesses mb_type[] twice,
assuming values are maintained, which the race condition breaks).

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-26 16:39:01 -07:00
Paul B Mahol 7f9b42ff9d j2kenc: cosmetics: vertically align AVCodec members.
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-27 00:49:27 +02:00
Paul B Mahol a65016205f libopenjpegdec: hack to fix GRAY16 decoding
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-27 00:48:27 +02:00
Michael Niedermayer d6eef545c1 vc1dec: move mquant zero check down.
This way it catches all cases, and prevents later segfaults.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-27 00:45:32 +02:00
Michael Niedermayer 43fd321252 targa: Fix input buffer size check.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-27 00:45:32 +02:00
Clément Bœsch 8f0d9b43be RELEASE: bump to current version (0.10.2). 2012-03-26 22:47:28 +02:00
Clément Bœsch fb8469dd7e APIchanges: fill in missing dates and hashes. 2012-03-26 22:47:28 +02:00
Clément Bœsch 29679f4a37 aac: reference supported sample rates in encoders. 2012-03-26 22:46:40 +02:00
Clément Bœsch 21d650cb69 ffmpeg: more expressive sample rate automatic selection.
Output now lists the available sample rates with commands like
ffmpeg -f lavfi -i aevalsrc=0 -ar 20000 -y /tmp/out.mp3
2012-03-26 22:46:40 +02:00
Clément Bœsch a67d9cfa58 lavfi: add avfilter_fill_frame_from_{audio_,}buffer_ref(). 2012-03-26 22:46:40 +02:00
Michael Niedermayer a84851bef8 indeo3dec: check mv bitstream pointer
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-26 22:22:51 +02:00
Michael Niedermayer 8a521d57b3 indeo3dec: Fix end pointer.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-26 22:11:29 +02:00
Michael Niedermayer 7e496e1545 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  build: ppc: drop stray leftover backslash
  build: Only clean the architecture subdirectory we build for.
  build: drop some unnecessary dependencies from the H.264 parser
  build: prettyprinting cosmetics
  libavutil: Remove pointless rational test program.
  libavutil: Remove broken and pointless lzo test program.
  lavf doxy: expand AVStream.codec doxy.
  lavf doxy: improve AVStream.time_base doxy.
  lavf doxy: add some basic documentation about reading from the demuxer.
  lavf doxy: document passing options to demuxers.
  lavf doxy: clarify that an AVPacket contains encoded data.
  mpegtsenc: allow user triggered PES packet flushing
  APIchanges: mark the place where 0.7 was cut.
  APIchanges: mark the place where 0.8 was cut.
  APIchanges: fill in missing dates and hashes.
  smacker: convert palette and header reading to bytestream2.
  alac: convert extradata reading to bytestream2.

Conflicts:
	doc/APIchanges
	libavcodec/smacker.c
	libavcodec/x86/Makefile
	libavfilter/Makefile
	libavutil/Makefile

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-26 20:52:52 +02:00
Reimar Döffinger 60497cb984 Enable generic index/seeking for mgsts demuxer.
This depends on the proposed parser change for 0-size packets
in previous mail, otherwise video now plays far too fast.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-03-26 20:03:57 +02:00
Reimar Döffinger 699c61d2f0 Handle 0-size sync packets when only parsing headers.
Currently, the duration of those packets is just discarded
when enabling parsing, thus the output of the Metal Gear Solid
demuxer breaks completely when just setting AVSTREAM_PARSE_HEADERS.
The result will not be correct if a parser creates a delay even
with PARSER_FLAG_COMPLETE_FRAMES and there might be other cases
where it does not work correct, but just discarding them as it
is done currently seems worse.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-03-26 20:03:56 +02:00
Reimar Döffinger fca62f0500 Support FLIC in MOV.
Fixes trac issue #626.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-03-26 20:03:56 +02:00
Diego Biurrun 72ccfb3cb7 build: ppc: drop stray leftover backslash 2012-03-26 16:37:57 +02:00
Thilo Borgmann 5afd9a80db als: consistent messages
"." for warnings, "!" for errors.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-26 16:21:21 +02:00
Paul B Mahol 3f26a87488 libopenjpegenc: remove leftover because older version of patch being applied
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-26 16:20:14 +02:00
Thilo Borgmann 04dc7e7e5e ALS error message pretty print
One prettier message.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-26 16:16:57 +02:00
Michael Niedermayer cece491daa qdm2: Fix out of array writes
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-26 15:29:14 +02:00
Michael Niedermayer fe91becc2d qdm2: fix out of array read
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-26 15:26:14 +02:00
Michael Niedermayer 7d74aaf698 qdm2dec: fix out of array read
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-26 15:16:47 +02:00
Michael Niedermayer 3b370abf16 mxfdec: fix off by one error.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-26 15:05:02 +02:00
Diego Biurrun e7e19b15c7 build: Only clean the architecture subdirectory we build for.
This allows simplifying the Makefiles; it is no longer necessary to register
arch subdirectory Makefiles, just putting them in place is enough.
2012-03-26 13:29:03 +02:00
Diego Biurrun 6a7c5312d8 build: drop some unnecessary dependencies from the H.264 parser 2012-03-26 13:00:11 +02:00
Diego Biurrun ad0e31f134 build: prettyprinting cosmetics 2012-03-26 13:00:10 +02:00
Diego Biurrun 80391552c9 libavutil: Remove pointless rational test program. 2012-03-26 13:00:09 +02:00
Diego Biurrun 193d7eea95 libavutil: Remove broken and pointless lzo test program. 2012-03-26 13:00:09 +02:00
Anton Khirnov 967923abd1 lavf doxy: expand AVStream.codec doxy. 2012-03-26 10:59:43 +02:00
Anton Khirnov e44ada129c lavf doxy: improve AVStream.time_base doxy.
Remove confusing sentence that implied the user should set the timebase.
Elaborate on how the timebase is set for muxing.
2012-03-26 10:59:43 +02:00
Anton Khirnov f58b8cc3e3 lavf doxy: add some basic documentation about reading from the demuxer. 2012-03-26 10:59:43 +02:00
Anton Khirnov 10fa4ff7bc lavf doxy: document passing options to demuxers. 2012-03-26 10:59:43 +02:00
Anton Khirnov dca9c81d82 lavf doxy: clarify that an AVPacket contains encoded data. 2012-03-26 10:59:42 +02:00
Jindrich Makovicka 3fadb29baf mpegtsenc: allow user triggered PES packet flushing
Signed-off-by: Jindrich Makovicka <jindrich.makovicka@nangu.tv>
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-03-26 11:41:18 +03:00
Anton Khirnov 9c47f2b294 APIchanges: mark the place where 0.7 was cut. 2012-03-26 10:08:58 +02:00
Anton Khirnov 75bdd55e77 APIchanges: mark the place where 0.8 was cut. 2012-03-26 10:08:57 +02:00
Anton Khirnov 5d20e7b7ea APIchanges: fill in missing dates and hashes. 2012-03-26 10:08:56 +02:00
Paul B Mahol 3dc0b9d6da libopenjpegdec: refactor some code and fix memory leaks
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-26 05:04:59 +02:00
Paul B Mahol 02fb320ada libopenjpegdec: always check image because decoding may still fail
Fixes bunch of segfaults.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-26 05:01:57 +02:00
Paul B Mahol 67d5fcc989 libopenjpegenc: allow changing encoding parameters
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Reviewed-by: Michael Bradshaw <mbradshaw@sorensonmedia.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-26 05:00:06 +02:00
Paul B Mahol dec8eb6b29 libopenjpegenc: merge common code
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Reviewed-by: Michael Bradshaw <mbradshaw@sorensonmedia.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-26 04:59:43 +02:00
Paul B Mahol 8e45005a84 libopenjpegenc: use pix_fmt descriptor to get bpp
This will also simplify adding support for RGB565 and similar.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
Reviewed-by: Michael Bradshaw <mbradshaw@sorensonmedia.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-26 04:59:18 +02:00
Paul B Mahol 06b0c6a655 libopenjpegenc: use pix_fmt descriptor to get numcomps
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Reviewed-by: Michael Bradshaw <mbradshaw@sorensonmedia.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-26 04:58:44 +02:00
Michael Niedermayer 140c54ea0b indeo4: better mv check
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-26 03:46:06 +02:00
Michael Niedermayer c855ece101 indeo5: check motion vectors.
fixes out of frame reading

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-26 03:45:45 +02:00
Michael Niedermayer 33f39c02aa mxfdec: pass correct context to av_timecode_init()
fixes null ptr dereference
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-26 03:13:54 +02:00
Ronald S. Bultje b2af057a36 smacker: convert palette and header reading to bytestream2. 2012-03-25 16:31:16 -07:00
Paul B Mahol 40821980ae vf_hflip: accept PIX_FMT_RGB444 and PIX_FMT_BGR444 pixel formats
Signed-off-by: Paul B Mahol <onemda@gmail.com>

added fate checksum update
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-26 01:02:18 +02:00
Paul B Mahol 25b67dc765 png: fix warning about discarding qualifiers [-Wincompatible-pointer-types]
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-26 01:02:11 +02:00
Aaron Colwell aa9c2e41b6 pthread : Remove lock/unlock pairs in worker loop to avoid unexpected state changes.
Reviewed-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-26 00:09:50 +02:00
Michael Niedermayer 9621646eb3 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  x86: dsputil: prettyprint gcc inline asm
  x86: K&R prettyprinting cosmetics for dsputil_mmx.c
  x86: conditionally compile H.264 QPEL optimizations
  dsputil_mmx: Surround QPEL macros by "do { } while (0);" blocks.
  Ignore generated files below doc/.
  dpcm: convert to bytestream2.
  interplayvideo: convert to bytestream2.
  movenc: Merge if statements
  h264: fix memleak in error path.
  pthread: Immediately release all frames in ff_thread_flush()
  h264: Add check for invalid chroma_format_idc
  utvideo: port header reading to bytestream2.

Conflicts:
	.gitignore
	configure
	libavcodec/h264_ps.c
	libavcodec/interplayvideo.c
	libavcodec/pthread.c
	libavcodec/x86/dsputil_mmx.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-25 23:10:30 +02:00
Ronald S. Bultje c3bbd0b53b alac: convert extradata reading to bytestream2. 2012-03-25 13:35:05 -07:00
Michael Niedermayer 8d7f2db60a swr-test: test the new flexible buffering
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-25 21:50:49 +02:00
Michael Niedermayer 59b038b4a4 swr: realloc_audio: support packed audio buffers
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-25 21:50:00 +02:00
Michael Niedermayer 1b0fcf33b8 swr: More flexible and convenient buffering
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-25 21:49:42 +02:00
Julien Ramseier e479013ae4 Fix SVCD scan_offset option
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-25 19:29:31 +02:00
Paul B Mahol 680981832f "Metal Gear Solid: The Twin Snakes" demuxer
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-25 12:22:06 +02:00
Philip Langdale 1318b14379 CrystalHD: Remove EXPERIMENTAL flag for known good formats.
With the flag in place, it's hard to actually use the decoder, and
I'm happy with how it works, with the exception of DivX3 where I've
never found a sample that worked that I was confident actually
matched what the hardware claimed to support.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-25 12:22:06 +02:00
Marton Balint 5420523ae3 pthread: return proper error code on pthread_create failure
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-25 12:22:06 +02:00
Michael Niedermayer e0c7128302 swr: fix segfault when 0 out size is used.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-25 12:22:06 +02:00
Michael Niedermayer 691b92474a swr: revert stray hunk
Found-by:ubitux
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-25 12:22:06 +02:00
Reimar Döffinger 6d797ac70f VC1: Do not needlessly use signed types.
This might even have prevented the compiler from some optimizations,
since both signed and unsigned types are used for the dezigzag tables/
table pointers, and if a branches uses both the compiler needs to
create more complex code.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-03-25 12:24:15 +02:00
Reimar Döffinger 31ff2cb266 DV: detect another case of broken DV files.
See trac issue #217.
Only the dsf field seems to be used to distinguish between PAL and NTSC.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-03-25 12:23:44 +02:00
Reimar Döffinger feda266db5 DV: check coded_width/height instead of width/height.
This makes the workaround also work with lowres.
Fixes issue #633.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-03-25 12:23:44 +02:00
Reimar Döffinger 535eed9301 vqavideo: fix decoding of samples with no partial updates.
Fixes playback of
http://samples.mplayerhq.hu/game-formats/vqa/landsoflore/B0EB8711.VQA
(trac issue #710).

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-03-25 12:23:44 +02:00
Diego Biurrun 62ce9defb8 x86: dsputil: prettyprint gcc inline asm 2012-03-25 11:50:48 +02:00
Diego Biurrun 3b54912113 x86: K&R prettyprinting cosmetics for dsputil_mmx.c 2012-03-25 11:50:48 +02:00
Diego Biurrun 915a2a0a65 x86: conditionally compile H.264 QPEL optimizations 2012-03-25 11:50:45 +02:00
Diego Biurrun 3816642eab dsputil_mmx: Surround QPEL macros by "do { } while (0);" blocks.
This makes them safe to use in non-fully braced if-blocks and similar.
2012-03-25 11:48:37 +02:00
Diego Biurrun 5d115c1da7 Ignore generated files below doc/. 2012-03-25 11:46:15 +02:00
Michael Niedermayer 7e592379d9 resample: Fix boundary handling with fragments.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-25 10:34:06 +02:00
Michael Niedermayer 8b11ae8a9a swr: Fix partial flushing.
Found-by: durandal_1707
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-25 06:37:01 +02:00
Michael Niedermayer 19342bc725 swr: test partial flushing
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-25 05:58:21 +02:00
Michael Niedermayer 86e3289ffd mov: fix heap buffer overflow
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-25 04:25:24 +02:00
Ronald S. Bultje 3a3f06b05e dpcm: convert to bytestream2. 2012-03-24 19:02:26 -07:00
Michael Niedermayer 4f16153d35 swr: allow flushing in multiple steps if the output is too small.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-25 03:33:06 +02:00
Michael Niedermayer 8bf95e8bd5 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  avc: Add a function for converting mp4 style extradata to annex b
  pthread: free progress if buffer allocation failed.
  lavc/avconv: support changing frame sizes in codecs with frame mt.
  libavformat: Document who sets the AVStream.id field
  utvideo: mark output picture as keyframe.
  sunrast: Add support for negative linesize.
  vp8: fix update_lf_deltas in libavcodec/vp8.c
  ralf: read Huffman code lengths without GetBitContext

Conflicts:
	ffmpeg.c
	libavcodec/sunrastenc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-25 01:56:53 +01:00
Ronald S. Bultje f31a68e78c interplayvideo: convert to bytestream2. 2012-03-24 17:09:18 -07:00
Michael Niedermayer f4c380a5e6 ffmpeg: drop struct from SwrContext.
Its a typdef now and doesnt need the struct anymore.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-25 01:00:07 +01:00
Michael Niedermayer ac6798dbc1 swr: fix compilation failure with old versions of gcc.
gcc 4.4 did not like the way i used typedefs

Idea-by: beastd
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-25 00:35:10 +01:00
Martin Storsjö 68893afe1d movenc: Merge if statements
This isn't exactly equivalent with the earlier code for codecs
other than H264 and VC1, but those are two only codecs supported
by this codepath anyway, and it simplifies it a bit.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-03-25 01:06:49 +02:00
Paul B Mahol bcae7f432a libaacplus: switch to encode2()
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-24 23:35:09 +01:00
Alexander Strange cb34867780 h264: fix memleak in error path.
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-03-24 15:34:33 -07:00
Alexander Strange 147ee4cf06 pthread: Immediately release all frames in ff_thread_flush()
Before this, they were only added to the delayed release queue and not
freed until later. This could lead to unnecessary memory use or buffer
exhaustion.

Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-03-24 15:29:51 -07:00
Alexander Strange 6ef4063957 h264: Add check for invalid chroma_format_idc
Fixes a crash when FF_DEBUG_PICT_INFO is used.

Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-03-24 15:29:38 -07:00
Michael Niedermayer 15890d67c1 swr: drop SWR_CH_MAX with the next major ABI bump
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-24 23:20:46 +01:00
Ronald S. Bultje ec0ed97b04 utvideo: port header reading to bytestream2.
Fixes crash during slice size reading if slice_end goes negative.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-24 15:15:56 -07:00
Michael Niedermayer 947215a261 swr: dont use SWR_CH_MAX in the public function declaration.
This change should make no binary difference to the generated code.
the API version is just bumped for correctness sake, this is not
really a API or ABI change.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-24 23:03:17 +01:00
Michael Niedermayer 1937c4e0b9 swr: make SwrContext a typedef.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-24 22:56:24 +01:00
Michael Niedermayer 74656bdd4c swresample: support up to 32 channels
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-24 22:38:14 +01:00
Martin Storsjö d5ed5e7d0c avc: Add a function for converting mp4 style extradata to annex b
Make movenc use this function instead of the current custom
conversion function.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-03-24 22:53:18 +02:00
Ronald S. Bultje 2ee01fbded pthread: free progress if buffer allocation failed.
Else we run out of progress variables after a few failed buffer
allocations.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-03-24 21:29:35 +01:00
Ronald S. Bultje bc1ef85520 lavc/avconv: support changing frame sizes in codecs with frame mt.
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-03-24 21:29:16 +01:00
Martin Storsjö e20ad71ebb libavformat: Document who sets the AVStream.id field
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-03-24 22:17:37 +02:00
Kostya Shishkov 72dadaa957 utvideo: mark output picture as keyframe.
Spotted by Антон.
2012-03-24 20:21:33 +01:00
Paul B Mahol f8ba7c4658 adxenc: fix error in merging from qatar
Pointed out by FATE.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-24 17:52:53 +01:00
Paul B Mahol 7ed9abf793 sonic: mark as experimental
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-24 17:48:03 +01:00
Michael Niedermayer 229e4c1332 indeo5dec: Make sure we have had a valid gop header.
This prevents decoding happening on a half initialized context.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-24 17:43:55 +01:00
Michael Niedermayer 9879b506b0 truemotion2dec: Fix overread of input.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-24 17:42:14 +01:00
Michael Niedermayer 71e78e1f51 cavsdec: check stc in decode_slice_header()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-24 16:29:46 +01:00
Aneesh Dogra cc965300cb sunrast: Add support for negative linesize.
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-03-24 11:27:20 -04:00
Michael Niedermayer 9a57a37b70 h264: move resolution change check further up.
This prevents some variables from being changed in case of a
rejected resolution change.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-24 16:23:40 +01:00
Janne Salonen 14ba7472dc vp8: fix update_lf_deltas in libavcodec/vp8.c
lf_delta.ref[i] and lf_delta.mode[i] were incorrectly reset to 0 if
specific delta value was not updated. Fixed to keep the previous value
if flag indicates that element in question is not updated.

Signed-off-by: Janne Salonen <jsalonen@google.com>
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-03-24 08:22:05 -07:00
Michael Niedermayer 9d3032b960 alsdec: check opt_order.
Fixes out of array write in quant_cof

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-24 14:54:12 +01:00
Michael Niedermayer 2c0559d5e2 mpegvideo: increase buffer sizes.
Fixes buffer overflow

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-24 14:54:12 +01:00
Michael Niedermayer 8a20774a24 indeo4: Fix global array overread.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-24 14:54:11 +01:00
Carl Eugen Hoyos 5cddfc58d8 Fix linking without yasm. 2012-03-24 14:54:06 +01:00
Kostya Shishkov 494bce6224 ralf: read Huffman code lengths without GetBitContext
Those descriptions are stored in nibbles, so they are easy to extract.
And this way we don't need to pad tables for possible bit reader overreads.
2012-03-24 11:53:26 +01:00
Michael Niedermayer f58f75dd92 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  rv34: error out on size changes with frame threading
  aacsbr: Add a debug check to sbr_mapping.
  aac: Reset some state variables when turning SBR off
  aac: Reset PS parameters on header decode failure.
  fate: add wmalossless test.
  aacsbr: handle m_max values smaller than 4.

Conflicts:
	libavcodec/aacsbr.c
	tests/fate/lossless-audio.mak

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-24 10:59:43 +01:00
Paul B Mahol b222c28ee8 libopenjpegenc: switch to encode2()
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Reviewed-by: Michael Bradshaw <mbradshaw@sorensonmedia.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-24 05:47:11 +01:00
Paul B Mahol a5b823368a libopenjpeg: make .long_name usefull
Fixes following strange output:

DEV D  libopenjpeg     OpenJPEG based JPEG 2000 encoder

Signed-off-by: Paul B Mahol <onemda@gmail.com>
Reviewed-by: Michael Bradshaw <mbradshaw@sorensonmedia.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-24 05:45:57 +01:00
Paul B Mahol 68a257e673 bintext: build decoders only if they are actually enabled
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Reviewed-by: Peter Ross <pross@xvid.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-24 05:44:37 +01:00
Michael Niedermayer d85b3c4fff vp56dec: avoid freeing the returned frame before returning it.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-24 05:21:39 +01:00
Michael Niedermayer 25715064c2 cavsdec: check for changing w/h.
Our decoder does not support changing w/h.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-24 03:26:52 +01:00
Michael Niedermayer ba775a54bc indeo3: fix out of picture write.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-24 03:26:51 +01:00
Michael Niedermayer 59a4b73531 pthread/mpegvideo: detect and block attempts to init frames after setup.
This fixes race conditions that ultimately lead to memory corruption.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-24 00:32:18 +01:00
Janne Grunau cb7190cd2c rv34: error out on size changes with frame threading 2012-03-23 23:11:55 +01:00
Alex Converse b00307ecd0 aacsbr: Add a debug check to sbr_mapping.
There have been multiple bugs caused by inconsistencies here.

Based on an idea from Michael Niedermayer.

CC: libav-stable@libav.org
2012-03-23 14:56:44 -07:00
Alex Converse 0cb93dacee aac: Reset some state variables when turning SBR off
This makes sure the reset flag gets set when SBR gets turned back on
and sets control variables for unguided mode back to their defaults.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-23 14:56:44 -07:00
Alex Converse a237b38021 aac: Reset PS parameters on header decode failure.
If the next header frame codes zero envelopes the previous frame's
values will be used. Consequently the invalid values must be cleared.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-23 14:56:44 -07:00
Michael Niedermayer 71c2a70cbf error_concealment: Prevent FPEs in case of corrupted input.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-23 22:03:32 +01:00
Ronald S. Bultje 7beec7e29d fate: add wmalossless test. 2012-03-23 14:03:03 -07:00
Michael Niedermayer e2d110d8d2 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  rv34: Handle only complete frames in frame-mt.
  MPV: set reference frame pointers to NULL when allocation of dummy pictures fails
  configure: die if x11grab dependencies are unavailable
  zerocodec: factorize loop
  avconv: fix the resampling safety factors for output audio buffer allocation
  avconv: move audio output buffer allocation to a separate function
  avconv: make the async buffer global and free it in exit_program()

Conflicts:
	ffmpeg.c
	libavcodec/mpegvideo.c
	libavcodec/rv34.c
	libavcodec/zerocodec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-23 21:20:06 +01:00
Ronald S. Bultje 71ea26811c aacsbr: handle m_max values smaller than 4.
Prevents a signflip in the counter, and a subsequent crash because of
overreads/overwrites.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-23 12:56:08 -07:00
Reimar Döffinger adb98a3d22 VC1: restore optimizations broken in 9a1ced32.
They were moved into code under HAVE_YASM and most of them
even into completely disabled code with no reason given
for that in the commit message.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-03-23 19:39:02 +01:00
Paul B Mahol e730036fdc interplayvideo: give avctx to av_dlog()
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-23 19:12:34 +01:00
Paul B Mahol 0c57f8197c interplayvideo: remove superfluous strings from av_log()
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-23 19:11:08 +01:00
Paul B Mahol a0b07b8fc5 vmdvideo: remove superfluous strings from av_log messages
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Reviewed-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-23 19:05:12 +01:00
Paul B Mahol 89cd95b19c sonic: fix warning about incompatible pointer types
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-23 19:03:45 +01:00
Janne Grunau 73ad4471a4 rv34: Handle only complete frames in frame-mt.
Correct handling of errors to prevent hags or crashes is very complex
otherwise.

The frame initializing is also moved from decode_slice() to
decode_frame() for clarity.
2012-03-23 17:50:46 +01:00
Janne Grunau 5ab506a5c8 MPV: set reference frame pointers to NULL when allocation of dummy pictures fails 2012-03-23 17:50:46 +01:00
Josh Allmann 4a584edad7 configure: die if x11grab dependencies are unavailable
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-03-23 12:10:41 +01:00
Michael Niedermayer afa6129016 zerocodec: factorize loop
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-03-23 12:10:41 +01:00
Michael Niedermayer ae03b2141e swr: check that there is enough information to do rematrixing when needed.
Fixes assertion failure.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-23 12:10:08 +01:00
Michael Niedermayer 2e909b3c77 bitstream: build_table, check table_nb_bits.
Fixes null ptr deref.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-23 11:38:53 +01:00
Michael Niedermayer aae44fb4cd indeo4: check ref_mb
Fix NULL deref

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-23 11:03:53 +01:00
Michael Niedermayer 1664edb998 ffmpeg: check samplerate from decoder.
Fixes FPE

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-23 10:59:03 +01:00
Michael Niedermayer a22e64fd02 rawdec: Check w/h.
Fixes FPE

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-23 10:48:18 +01:00
Michael Niedermayer 5934d57ba9 xmv: check channel number
Fixes FPE

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-23 10:31:45 +01:00
Michael Niedermayer 08c37a10e9 mjpegdec: check h/v_count.
Fixes FPE

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-23 10:24:22 +01:00
Michael Niedermayer 46c7842994 ituh263dec: Implement enough of Annex O (scalability) to fix a FPE.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-23 10:14:30 +01:00
Justin Ruggles 4094fc9971 avconv: fix the resampling safety factors for output audio buffer allocation
This matches the output size required for audio_resample()
2012-03-23 01:19:43 -04:00
Justin Ruggles 9869e963a6 avconv: move audio output buffer allocation to a separate function
Allows for removing a goto and makes the code easier to follow.
2012-03-23 01:19:43 -04:00
Justin Ruggles f3ab3e1aee avconv: make the async buffer global and free it in exit_program() 2012-03-23 01:19:42 -04:00
Michael Niedermayer cc415956a4 error_conceal: fix FPE in guess_dc() with huge sizes.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-23 05:21:52 +01:00
Michael Niedermayer ac2cb27916 mov: Fix FPE on 0 time_scale
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-23 04:32:16 +01:00
Michael Niedermayer c0a99eae29 indeo4: check band->scan
Fixes null ptr exception

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-23 04:29:41 +01:00
Michael Niedermayer f927c5b753 vorbisdemux: Check private context in theoras gtopts.
This prevents a null ptr dereference.
It could be checked differently but this way it should
be possible to return some data.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-23 04:29:33 +01:00
Paul B Mahol ae2c33b0c2 cosmetics: remove superfluous curly brackets
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-23 03:09:07 +01:00
Paul B Mahol 0e465c1a81 huffyuv: remove long time disabled code
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-23 03:09:07 +01:00
Paul B Mahol 3a085c6a37 huffyuv: do not decode/encode yuv colorspace with odd width
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-23 03:09:07 +01:00
Michael Niedermayer ba02069a8e aacdec: prevent channels from exceeding MAX_CHANNELS.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-23 03:08:58 +01:00
Michael Niedermayer 01fd1aa0ad matroskadec: fix strcmp(NULL)
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-23 01:27:49 +01:00
Michael Niedermayer 437f5daf0b mov: fix global unicode convertion array overflow.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-23 01:09:04 +01:00
Michael Niedermayer 0c97fd336e mmdemux: dont set pkt->size to an invalid value.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-23 00:50:49 +01:00
Michael Niedermayer 7c0748c2db eatqi: replace break by goto.
This fixes some heap overread.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-23 00:50:43 +01:00
Michael Niedermayer 5a4af049b1 aacdec: reset max_sfb on invalid data.
Fixes global out of array read.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-22 23:57:45 +01:00
Michael Niedermayer 3583c8706d vqavideodev: Check image dimensions
Fixes out of heap array read

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-22 23:43:37 +01:00
Michael Niedermayer 464cef4c14 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  xwma: Validate channels and bits_per_coded_sample.
  mov: Do not read past the end of the ctts_data table.
  mov: Add missing terminator to mov_ch_layout_map_1ch.
  asf: reset side data elements on packet copy.
  wmavoice: fix stack overread.
  wmalossless: error out if a subframe is not used by any channel.
  vqa: check palette chunk size before reading data.
  wmalossless: reset sample pointer for each subframe.
  wmalossless: error out on invalid values for order.

Conflicts:
	libavcodec/vqavideo.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-22 23:16:49 +01:00
Michael Niedermayer 9759d2b886 indeo4: check motion vetors.
Fixes out of heap array read.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-22 23:13:00 +01:00
Michael Niedermayer afc0cc22e1 pngenc: make max_packet_size 64bit check check it.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-22 23:13:00 +01:00
Clément Bœsch 50a3867bab png: make ff_png_pass_mask local to pngdec. 2012-03-22 22:53:51 +01:00
Carl Eugen Hoyos abdcb4918c Fix libgsm.c compilation after typo in 67b8c8. 2012-03-22 22:01:35 +01:00
Alex Converse 5023b89bba xwma: Validate channels and bits_per_coded_sample.
This prevents a SIGFPE later on.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-22 13:57:12 -07:00
Alex Converse 86f2ae06b9 mov: Do not read past the end of the ctts_data table.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-22 13:57:12 -07:00
Alex Converse 3e6e89b3d6 mov: Add missing terminator to mov_ch_layout_map_1ch.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: Libav-stable@libav.org
2012-03-22 13:56:44 -07:00
Michael Niedermayer 6716e6892b Merge remote-tracking branch 'qatar/master'
* qatar/master:
  FATE: Add ZeroCodec test
  oggparseogm: fix order of arguments of avpriv_set_pts_info().
  pngenc: better upper bound for encoded frame size.
  aiffdec: set block_duration to 1 for PCM codecs that are supported in AIFF-C
  aiffdec: factor out handling of integer PCM for AIFF-C and plain AIFF
  aiffdec: use av_get_audio_frame_duration() to set block_duration for AIFF-C
  aiffdec: do not set bit rate if block duration is unknown
  wmall: output packet only if we have decoded some samples

Conflicts:
	libavcodec/pngenc.c
	tests/fate/lossless-video.mak

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-22 20:59:58 +01:00
Paul B Mahol b1a0d694ea dcaenc: switch to encode2()
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-22 20:44:24 +01:00
Reimar Döffinger ffa28da180 Support dropping audio dts/pts via -async -1.
Allows working around issue #605.
Note: as a side effect this fixes that -vsync drop
as far as I could tell would not drop pts/dts values
when duplicating frames or when flushing encoder delay.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-03-22 20:36:16 +01:00
Ronald S. Bultje e73c6aaabf asf: reset side data elements on packet copy.
Prevents crash (double free) when free()ing the original packet.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-22 12:17:14 -07:00
Ronald S. Bultje 262196445c wmavoice: fix stack overread.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-22 12:17:14 -07:00
Ronald S. Bultje 3c9267673e wmalossless: error out if a subframe is not used by any channel.
Prevents infinite loop because min_channel_len never increments.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-22 12:17:14 -07:00
Ronald S. Bultje 75d7975268 vqa: check palette chunk size before reading data.
Prevents overreads beyond buffer boundaries.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-22 12:17:14 -07:00
Ronald S. Bultje d462949974 wmalossless: reset sample pointer for each subframe.
Prevents overwrites when some subframes only encode some channels.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-22 12:17:14 -07:00
Ronald S. Bultje 326f7a68bb wmalossless: error out on invalid values for order.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-22 12:17:14 -07:00
Derek Buitenhuis e9c0b12c2e FATE: Add ZeroCodec test
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-03-22 19:52:56 +01:00
Michael Niedermayer f0b4a505d8 oggparseogm: fix order of arguments of avpriv_set_pts_info().
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-03-22 19:51:43 +01:00
Anton Khirnov 677df4d2ef pngenc: better upper bound for encoded frame size.
Fixes encoding very large pictures.

Thanks to Костя for providing the formula.
2012-03-22 19:50:35 +01:00
Michael Niedermayer 179a592094 libutvideoenc: switch to ff_alloc_packet2().
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-22 19:40:58 +01:00
Michael Niedermayer 532f1c7aa7 lavc: limit realloc() on encoding to the libav compatibility API.
Neither the old nor new need it.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-22 19:40:58 +01:00
Reimar Döffinger 0f95270afe VC1: Fix skiploopfilter=all.
It is currently only handled in the parser code for WMV/ASF style
header, but not the one used in the bytestream format used when
muxed into MPEG-TS as on e.g. BluRay.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-03-22 19:41:09 +01:00
ami_stuff f6b7863808 Replace SSE2 instruction in scalarproduct_float_sse() by SSE equivalent.
Fixes an AAC decoding issue with the sample from ticket #213 on machines
with SSE but without SSE2.
Based on 89411a by Reimar.
2012-03-22 19:28:52 +01:00
Michael Niedermayer 740b9ff44e lavc: Redesign the internal encoding API.
The new API allows (optionally and on by default) using a internal buffer to encode, avoiding
the need to allocate large buffers or risking failure on too small buffers.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-22 19:03:48 +01:00
Michael Niedermayer dca0e4cd61 avcodec_encode_audio2: use ff_alloc_packet2()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-22 19:03:23 +01:00
Michael Niedermayer 2bd303f95c zmbvenc: switch to ff_alloc_packet2().
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-22 19:03:23 +01:00
Michael Niedermayer ae7f0d0a4f yuv4enc: switch to ff_alloc_packet2().
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-22 19:03:23 +01:00
Michael Niedermayer 7959eb0d12 y41penc: switch to ff_alloc_packet2().
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-22 19:03:22 +01:00
Michael Niedermayer a3f36b09e7 xwdenc: switch to ff_alloc_packet2().
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-22 19:03:22 +01:00
Michael Niedermayer 5d8a20a1c5 xbmenc: switch to ff_alloc_packet2().
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-22 19:03:22 +01:00
Michael Niedermayer 6cb29a1ab0 wmaenc: switch to ff_alloc_packet2().
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-22 19:03:22 +01:00
Michael Niedermayer 2ed79755d7 vorbisenc: switch to ff_alloc_packet2().
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-22 19:03:22 +01:00
Michael Niedermayer 079d7246fb v410enc: switch to ff_alloc_packet2().
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-22 19:03:22 +01:00
Michael Niedermayer efc245b9d6 v408enc: switch to ff_alloc_packet2().
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-22 19:03:22 +01:00
Michael Niedermayer f234b02c94 v308enc: switch to ff_alloc_packet2().
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-22 19:03:22 +01:00
Michael Niedermayer e252fb822a v210enc: switch to ff_alloc_packet2().
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-22 19:03:22 +01:00
Michael Niedermayer 219d8245a0 tiffenc: switch to ff_alloc_packet2().
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-22 19:03:22 +01:00
Michael Niedermayer ea8fc91886 tiffenc: fix return value. 2012-03-22 19:03:22 +01:00
Michael Niedermayer c038fb411b targaenc: switch to ff_alloc_packet2().
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-22 19:03:22 +01:00
Michael Niedermayer dbb11e7db3 svq1enc: switch to ff_alloc_packet2().
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-22 19:03:22 +01:00
Michael Niedermayer 2ea893fa23 sunrastenc: switch to ff_alloc_packet2().
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-22 19:03:22 +01:00
Michael Niedermayer b911d7dc60 sgienc: switch to ff_alloc_packet2().
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-22 19:03:22 +01:00
Michael Niedermayer c32438c42a r210enc: switch to ff_alloc_packet2().
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-22 19:03:21 +01:00
Michael Niedermayer 78365b414b qtrleenc: switch to ff_alloc_packet2().
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-22 19:03:21 +01:00
Michael Niedermayer 37e434e492 proresenc_kostya: switch to ff_alloc_packet2().
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-22 19:03:21 +01:00
Michael Niedermayer d388dd9ee3 proresenc_anatoliy: switch to ff_alloc_packet2().
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-22 19:03:21 +01:00
Michael Niedermayer 6a74c48cf9 pnmenc: switch to ff_alloc_packet2().
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-22 19:03:21 +01:00
Michael Niedermayer 5c6c62543c pngenc: switch to ff_alloc_packet2().
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-22 19:03:21 +01:00
Michael Niedermayer d2c4b3754d pcxenc: switch to ff_alloc_packet2().
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-22 19:03:21 +01:00
Michael Niedermayer 11e8f3e7a2 pcm: switch to ff_alloc_packet2().
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-22 19:03:21 +01:00
Michael Niedermayer 29971e4f9c pamenc: switch to ff_alloc_packet2().
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-22 19:03:21 +01:00
Michael Niedermayer 93aafe2a39 nellymoserenc: switch to ff_alloc_packet2().
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-22 19:03:21 +01:00
Michael Niedermayer 6e3aee03b8 msvideo1enc: switch to ff_alloc_packet2().
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-22 19:03:21 +01:00
Michael Niedermayer 3998b13a34 mpegaudioenc: switch to ff_alloc_packet2().
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-22 19:03:21 +01:00
Michael Niedermayer a895669f53 ljpegenc: switch to ff_alloc_packet2().
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-22 19:03:21 +01:00
Michael Niedermayer fcd8a3c8c2 libxvidff: switch to ff_alloc_packet2().
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-22 19:03:21 +01:00
Michael Niedermayer d29719121d libxavs: switch to ff_alloc_packet2().
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-22 19:03:20 +01:00
Michael Niedermayer 660e8cb9e3 libx264: switch to ff_alloc_packet2().
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-22 19:03:20 +01:00
Michael Niedermayer 316defa93c libvpxenc: switch to ff_alloc_packet2().
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-22 19:03:20 +01:00
Michael Niedermayer 9407cf137f libvorbis: switch to ff_alloc_packet2().
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-22 19:03:20 +01:00
Michael Niedermayer d9375b0ec6 libvo-amrwbenc: switch to ff_alloc_packet2().
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-22 19:03:20 +01:00
Michael Niedermayer b7b2821f84 libvo-aacenc: switch to ff_alloc_packet2().
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-22 19:03:20 +01:00
Michael Niedermayer b611ffc5d0 libtheoraenc: switch to ff_alloc_packet2().
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-22 19:03:20 +01:00
Michael Niedermayer f3b10d38d7 libspeexenc: switch to ff_alloc_packet2().
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-22 19:03:20 +01:00
Michael Niedermayer bb84112bae libschroedingerenc: switch to ff_alloc_packet2().
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-22 19:03:20 +01:00
Michael Niedermayer 83fc7341a7 libopencore-amr: switch to ff_alloc_packet2().
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-22 19:03:20 +01:00
Michael Niedermayer c7ef5a4aa9 libmp3lame: switch to ff_alloc_packet2().
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-22 19:03:20 +01:00
Michael Niedermayer 67b8c88cfe libgsm: switch to ff_alloc_packet2().
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-22 19:03:20 +01:00
Michael Niedermayer 1308b2df44 libfaac: switch to ff_alloc_packet2().
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-22 19:03:20 +01:00
Michael Niedermayer 7d3ef3840b ac3enc: switch to ff_alloc_packet2().
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-22 19:03:20 +01:00
Michael Niedermayer 55cc80dc29 a64multienc: switch to ff_alloc_packet2()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-22 19:03:20 +01:00
Michael Niedermayer 076310edee snowenc: switch to ff_alloc_packet2()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-22 19:03:19 +01:00
Michael Niedermayer 6eaa31cb9b roqaudioenc: switch to ff_alloc_packet2()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-22 19:03:19 +01:00
Michael Niedermayer 6c775606d1 roqvideoenc: switch to ff_alloc_packet2()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-22 19:03:19 +01:00
Michael Niedermayer 57c52663b6 rawenc: : switch to ff_alloc_packet2()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-22 19:03:19 +01:00
Michael Niedermayer b7d4eebd3b ra144enc: switch to ff_alloc_packet2()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-22 19:03:19 +01:00
Michael Niedermayer e22113cf1d mpegvideo_enc: : switch to ff_alloc_packet2()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-22 19:03:19 +01:00
Michael Niedermayer 620559e37b lclenc: switch to ff_alloc_packet2()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-22 19:03:19 +01:00
Michael Niedermayer f8a67cb81f jpeglsenc: switch to ff_alloc_packet2()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-22 19:03:19 +01:00
Michael Niedermayer 35dfeb871c j2kenc: switch to ff_alloc_packet2()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-22 19:03:19 +01:00
Michael Niedermayer e180079c1f huffyuvenc: switch to ff_alloc_packet2()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-22 19:03:19 +01:00
Michael Niedermayer 5dadfaa9f5 gifenc: switch to ff_alloc_packet2()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-22 19:03:19 +01:00
Michael Niedermayer c5ea6a5c75 g726enc: switch to ff_alloc_packet2()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-22 19:03:19 +01:00
Michael Niedermayer 2e4413ce2c g722enc: switch to ff_alloc_packet2()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-22 19:03:19 +01:00
Michael Niedermayer 3f35b66512 flashv2enc: switch to ff_alloc_packet2()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-22 19:03:19 +01:00
Michael Niedermayer 8fb7b5f7c8 flashvenc: switch to ff_alloc_packet2()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-22 19:03:19 +01:00
Michael Niedermayer 487996f64a flacenc: switch to ff_alloc_packet2()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-22 19:03:18 +01:00
Michael Niedermayer ed45636e16 ffv1enc: switch to ff_alloc_packet2()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-22 19:03:18 +01:00
Michael Niedermayer 8f80e5fbea dvenc: switch to ff_alloc_packet2()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-22 19:03:18 +01:00
Michael Niedermayer aa9700c988 dpxenc: switch to ff_alloc_packet2()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-22 19:03:18 +01:00
Michael Niedermayer 9d44b0549f dnxhdenc: switch to ff_alloc_packet2()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-22 19:03:18 +01:00
Michael Niedermayer ca6a3448e9 cljrenc: switch to ff_alloc_packet2()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-22 19:03:18 +01:00
Michael Niedermayer f79b09b7af bmpenc: switch to ff_alloc_packet2()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-22 19:03:18 +01:00
Michael Niedermayer a18cf3635c alacenc: switch to ff_alloc_packet2()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-22 19:03:18 +01:00
Michael Niedermayer f360e7b47c sv1enc: switch to ff_alloc_packet2()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-22 19:03:18 +01:00
Michael Niedermayer a42fa4c649 adxenc: switch to ff_alloc_packet2()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-22 19:03:18 +01:00
Michael Niedermayer a8aba0684e adpcmenc: switch to ff_alloc_packet2()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-22 19:03:18 +01:00
Michael Niedermayer 7fe8250e9a aacenc: switch to ff_alloc_packet2()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-22 19:03:18 +01:00
Michael Niedermayer 00663de3b7 lavc: add ff_alloc_packet2().
This contains a AVCodecContext thus allowing us to prevent the
error message duplication

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-22 19:03:18 +01:00
Michael Niedermayer 6c9db40205 avcodec_encode_audio2: add missing padding to realloc()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-22 19:03:17 +01:00
Nicolas George afbf9ed0d2 udp: lock all operations on shared variables. 2012-03-22 17:36:23 +01:00
Nicolas George e1838835aa udp: return the error code instead of generic EIO. 2012-03-22 17:36:23 +01:00
Nicolas George 5deb5ccbbb udp: call av_fifo_space directly as needed.
The comment seemed to indicate that left was used
to limit the size of the recv, but it was not so.
2012-03-22 17:36:23 +01:00
Nicolas George 63afc4f638 udp: use non-blocking read instead of select. 2012-03-22 17:36:23 +01:00
Nicolas George aa1297882f udp: use pthread_cancel instead of a shared flag.
It allows to exit the thread immediately instead of waiting
for select to timeout (one second in the current code).
2012-03-22 17:36:23 +01:00
Justin Ruggles f036342b4b aiffdec: set block_duration to 1 for PCM codecs that are supported in AIFF-C 2012-03-22 11:45:46 -04:00
Justin Ruggles b38b7cc392 aiffdec: factor out handling of integer PCM for AIFF-C and plain AIFF 2012-03-22 11:45:46 -04:00
Justin Ruggles 2c07c18048 aiffdec: use av_get_audio_frame_duration() to set block_duration for AIFF-C 2012-03-22 11:45:46 -04:00
Justin Ruggles 02f88eec1d aiffdec: do not set bit rate if block duration is unknown
CC: libav-stable@libav.org
2012-03-22 11:45:36 -04:00
Paul B Mahol 4246032216 segment: fix null pointer dereference
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-22 13:43:26 +01:00
Paul B Mahol f1c69546c0 dvbsub: remove unused variable
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-22 13:41:48 +01:00
Paul B Mahol 53c896770c bbox: remove superfluous initializations
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-22 13:40:37 +01:00
Paul B Mahol 8678af542c flicvideo: remove dead store
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-22 13:24:36 +01:00
Paul B Mahol f2b91bd63a latm_parser: remove dead store
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-22 13:23:08 +01:00
Paul B Mahol f5463d5347 sunrastenc: remove dead store
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-22 13:21:30 +01:00
Paul B Mahol ddbd0cedb0 mjpegbdec: remove dead store
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-22 13:19:42 +01:00
Paul B Mahol 36440982a0 vqavideo: remove some superfluous " VQA video: "
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-22 13:16:24 +01:00
Paul B Mahol 015fd02bab electronicarts vp6: set duration of video stream
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Reviewed-by: Peter Ross <pross@xvid.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-22 13:15:17 +01:00
Kostya Shishkov 87818103a0 wmall: output packet only if we have decoded some samples
Also set CODEC_CAP_DELAY to indicate that decoder may still have some
undecoded data left in internal buffer.
2012-03-22 07:16:47 +01:00
Michael Niedermayer eb9841297a doc/examples/decoding_encoding: make the buffer bigger.
This should be converted to the new API

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-22 05:25:26 +01:00
Michael Niedermayer 109650b34b Merge remote-tracking branch 'cus/stable'
* cus/stable:
  ffplay: use frame count based queueing for audio queue
  ffplay: reset audio_pkt_temp when opening audio

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-22 05:24:54 +01:00
Michael Niedermayer 967facb695 Merge remote-tracking branch 'qatar/master'
* qatar/master: (26 commits)
  adxenc: use AVCodec.encode2()
  adxenc: Use the AVFrame in ADXContext for coded_frame
  indeo4: fix out-of-bounds function call.
  configure: Restructure help output.
  configure: Internal-only components should not be command-line selectable.
  vorbisenc: use AVCodec.encode2()
  libvorbis: use AVCodec.encode2()
  libopencore-amrnbenc: use AVCodec.encode2()
  ra144enc: use AVCodec.encode2()
  nellymoserenc: use AVCodec.encode2()
  roqaudioenc: use AVCodec.encode2()
  libspeex: use AVCodec.encode2()
  libvo_amrwbenc: use AVCodec.encode2()
  libvo_aacenc: use AVCodec.encode2()
  wmaenc: use AVCodec.encode2()
  mpegaudioenc: use AVCodec.encode2()
  libmp3lame: use AVCodec.encode2()
  libgsmenc: use AVCodec.encode2()
  libfaac: use AVCodec.encode2()
  g726enc: use AVCodec.encode2()
  ...

Conflicts:
	configure
	libavcodec/Makefile
	libavcodec/ac3enc.c
	libavcodec/adxenc.c
	libavcodec/libgsm.c
	libavcodec/libvorbis.c
	libavcodec/vorbisenc.c
	libavcodec/wmaenc.c
	tests/ref/acodec/g722
	tests/ref/lavf/asf
	tests/ref/lavf/ffm
	tests/ref/lavf/mkv
	tests/ref/lavf/mpg
	tests/ref/lavf/rm
	tests/ref/lavf/ts
	tests/ref/seek/lavf_asf
	tests/ref/seek/lavf_ffm
	tests/ref/seek/lavf_mkv
	tests/ref/seek/lavf_mpg
	tests/ref/seek/lavf_rm
	tests/ref/seek/lavf_ts

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-22 00:40:11 +01:00
Michael Niedermayer f1fdd208cc h264_mp4toannexb_bsf: use i instead of misusing unit_type.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-21 22:33:28 +01:00
Vidar Madsen 17431f4a4e Fix type and codetype fields in the MMF header for some phones. 2012-03-21 22:19:23 +01:00
Carl Eugen Hoyos d3640096aa Fix libspeex decoding.
This parly reverts 85469f.
Fixes ticket #1091.
2012-03-21 22:19:23 +01:00
gs_gail 361c4cdca9 h264_mp4toannexb_bsf: support 24bit lengths 2012-03-21 21:42:44 +01:00
Reimar Döffinger 2a4f1d38d9 Print a warning when using wild guesses as time stamps.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-03-21 20:15:31 +01:00
Reimar Döffinger 89411ae699 Replace SSE2 instruction by SSE equivalent.
This is even potentially faster in this use-case.
Should fix AAC SBR decoding on machines with SSE but not
SSE2, fixing track issue #1041.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-03-21 20:14:50 +01:00
Justin Ruggles 6aba117f12 adxenc: use AVCodec.encode2() 2012-03-21 15:04:42 -04:00
Justin Ruggles 54e6cf8a94 adxenc: Use the AVFrame in ADXContext for coded_frame 2012-03-21 15:04:42 -04:00
Nicolas George 38c3b68e3a pixdesc: put components always in the same order. 2012-03-21 19:01:39 +01:00
Ronald S. Bultje 68fd077f68 indeo4: fix out-of-bounds function call.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org

Signed-off-by: Kostya Shishkov <kostya.shishkov@gmail.com>
2012-03-21 19:01:08 +01:00
Diego Biurrun 3b327a4b42 configure: Restructure help output.
Break some of the longer sections into smaller sensible pieces;
make some option descriptions and option ordering more consistent.
2012-03-21 18:14:22 +01:00
Diego Biurrun 478fd534af configure: Internal-only components should not be command-line selectable. 2012-03-21 18:14:21 +01:00
Paul B Mahol 5ca595facb westwood_vqa: set video stream duration
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-21 18:09:27 +01:00
Paul B Mahol 98ca4d217d westwood_vqa: fix SND0 chunk handling
Version from vqa header does not dictate which sound chunks may
appear in file.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-21 18:09:26 +01:00
Tomas Härdin 8d393ce330 aiffdec: Fix SIGFPE on pcm_f32be
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-21 18:09:26 +01:00
Justin Ruggles 5d4017b8f3 vorbisenc: use AVCodec.encode2() 2012-03-21 12:49:36 -04:00
Justin Ruggles e5aab2d7a4 libvorbis: use AVCodec.encode2() 2012-03-21 12:49:36 -04:00
Justin Ruggles 8ccf545b95 libopencore-amrnbenc: use AVCodec.encode2() 2012-03-21 12:49:36 -04:00
Justin Ruggles 330d9d1b50 ra144enc: use AVCodec.encode2() 2012-03-21 12:49:36 -04:00
Justin Ruggles f090428234 nellymoserenc: use AVCodec.encode2() 2012-03-21 12:49:35 -04:00
Justin Ruggles 32173df3d2 roqaudioenc: use AVCodec.encode2()
The first frame pts must be saved until we have 8 frames since RoQ audio
requires 8 frames in the first packet.
2012-03-21 12:49:35 -04:00
Justin Ruggles b03dcf07f6 libspeex: use AVCodec.encode2() 2012-03-21 12:49:35 -04:00
Justin Ruggles 57a52f258e libvo_amrwbenc: use AVCodec.encode2() 2012-03-21 12:49:35 -04:00
Justin Ruggles db440fa12d libvo_aacenc: use AVCodec.encode2() 2012-03-21 12:49:35 -04:00
Justin Ruggles 27bacfeb57 wmaenc: use AVCodec.encode2() 2012-03-21 12:49:32 -04:00
Nicolas George 3493390d47 lavfi: add tile video filter. 2012-03-21 15:52:45 +01:00
Nicolas George 7084985173 vsrc_color: port to new drawutils API. 2012-03-21 15:52:45 +01:00
Nicolas George 53b7a3fe08 vf_pad: port to new drawutils API. 2012-03-21 15:52:45 +01:00
Nicolas George 8ec0832743 drawutils: new API.
This new API stores useful data in a dedicated structure
and has clearly delimited init functions.

Hopefully, uses of the old API can be replaced quickly.
2012-03-21 15:52:45 +01:00
Michael Niedermayer 87a72b9122 swscale: Merge a hunk from qatar that seems to have been forgotten or lost.
Author of the code from qatar is Ronald S. Bultje
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-21 15:30:52 +01:00
Stefano Sabatini 8e0d3c0369 lavfi/ass: add dar option
Allow to specify the display aspect ratio adopted for rendering
subtitles.
2012-03-21 15:14:28 +01:00
Stefano Sabatini c9399538b7 lavfi/ass: use a default DAR value of 1.0
Previously it was using the same value of the input video DAR, which is
inconsistent with most implementations.

Fix trac ticket #1098.
2012-03-21 15:14:28 +01:00
Stefano Sabatini e71e65ff1d lavfi/aspect: check for a negative code from av_parse_ratio()
Check on < 0 rather than on != 0, this is more correct as a positive
error code from av_parse_ratio() value doesn't mean an error.
2012-03-21 15:14:28 +01:00
Nicolas George 6cf53927c4 graphdump: use av_bprintf API. 2012-03-21 13:39:28 +01:00
Nicolas George b75c67dc01 lavu: add av_bprintf and related. 2012-03-21 13:39:28 +01:00
Paul B Mahol 594a3d6315 bink: no need to increase width twice
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-21 04:18:34 +01:00
Michael Niedermayer 9e69d3c6d4 zerocodec: factorize loop
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-21 04:12:48 +01:00
Paul B Mahol 15e07348fe ttadec: refactor ttafilter_process()
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-21 03:39:14 +01:00
Paul B Mahol 1a7a707f74 tgq: use bytestream2_get_bytes_left()
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-21 03:09:58 +01:00
Paul B Mahol 0acacd23d4 xxan: use bytestream2_size()
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-21 03:09:04 +01:00
Paul B Mahol ff05fd6249 xxan: remove write-only variable
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-21 03:08:29 +01:00
Paul B Mahol 8a90148dfe smc: use bytestream2_size()
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-21 03:07:43 +01:00
Paul B Mahol 0ee5be4ee4 bytestream: add functions for accessing size of buffer
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-21 03:05:19 +01:00
Paul B Mahol 841e669a39 cdxl: swap CHUNKY and BYTE_PLANAR
This is how it is defined in Amiga Developer CD from year 1992 and
is consistent with files created with ADPro.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-21 03:03:33 +01:00
Michael Niedermayer 3eaf712053 sgienc: fix packet size.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-21 02:54:49 +01:00
Michael Niedermayer 0ebd83617f Merge remote-tracking branch 'qatar/master'
* qatar/master: (27 commits)
  avconv: free packet in write_frame() when discarding due to frame number limit
  FATE: use +/- flag option syntax for vp8 emu-edge tests
  lavf: make av_interleave_packet_per_dts() private.
  lavf: deprecate av_read_packet().
  oggdec: output correct timestamps for Vorbis
  avconv: pass input stream timestamps to audio encoders
  lavc: shrink encoded audio packet size after encoding.
  xa: set correct bit rate
  xa: do not set bit_rate, block_align, or bits_per_coded_sample
  xa: fix end-of-file handling
  xa: fix timestamp calculation
  bink: fix typo in FFALIGN() argument
  bink: align plane width to 8 when calculating bundle sizes
  doc: pass -Idoc texi2html and texi2pod
  doc: texi2pod: add -I flag
  movenc: Add a min_frag_duration option
  rtsp: Set the default delay to 0.1 s for the RTSP/SDP/RTP demuxers
  libavformat: Set the default for the max_delay option to -1
  Generate manpages for AV{Format,Codec}Context AVOptions.
  doc/avconv: remove entries for AVOptions.
  ...

Conflicts:
	doc/Makefile
	doc/ffmpeg.texi
	doc/muxers.texi
	ffmpeg.c
	libavcodec/Makefile
	libavcodec/options.c
	libavcodec/vp8.c
	libavformat/options.c
	tests/fate/demux.mak
	tests/ref/fate/truemotion1-15
	tests/ref/fate/truemotion1-24

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-21 01:33:53 +01:00
Justin Ruggles b0f75ba272 mpegaudioenc: use AVCodec.encode2()
Update FATE references due to encoder delay.
2012-03-20 18:56:22 -04:00
Justin Ruggles 3d853d7ab3 libmp3lame: use AVCodec.encode2() 2012-03-20 18:56:18 -04:00
Justin Ruggles 1987a940b7 libgsmenc: use AVCodec.encode2() 2012-03-20 18:55:39 -04:00
Justin Ruggles d1afb2f94e libfaac: use AVCodec.encode2()
Encoder output is delayed by several frames, so we keep a queue of input
frame timing info to match up with corresponding output packets.
2012-03-20 18:55:36 -04:00
Justin Ruggles 59041fd053 g726enc: use AVCodec.encode2() 2012-03-20 18:47:23 -04:00
Justin Ruggles bb03b6f7b1 g722enc: use AVCodec.encode2()
FATE reference updated due timestamp rounding because of resampling from
44100 Hz to 16000 Hz in avconv.
2012-03-20 18:47:23 -04:00
Justin Ruggles 910bdb9a42 flacenc: use AVCodec.encode2() 2012-03-20 18:47:19 -04:00
Justin Ruggles 24e74f0a0f adpcmenc: update to AVCodec.encode2() 2012-03-20 18:46:57 -04:00
Justin Ruggles aa872af5e3 ac3enc: update to AVCodec.encode2()
Update FATE references due to encoder delay.
2012-03-20 18:46:56 -04:00
Justin Ruggles ad95307f92 aacenc: use AVCodec.encode2() 2012-03-20 18:46:49 -04:00
Michael Niedermayer 745a33a443 fate/zerocodec: fix permissions
Reported-by: Deamon404
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-20 21:21:14 +01:00
Justin Ruggles 4bf64961a9 avcodec: add code for a frame queue for use by audio encoders with delay
This simplifies matching of timestamps between input frames and output
packets.
2012-03-20 16:04:21 -04:00
Justin Ruggles c9594fe0fb avconv: free packet in write_frame() when discarding due to frame number limit
Fixes a memleak when using the -frames option with audio.
2012-03-20 15:51:58 -04:00
Justin Ruggles e056f8d37d FATE: use +/- flag option syntax for vp8 emu-edge tests 2012-03-20 15:51:58 -04:00
Michael Niedermayer 15db6a9590 pngenc: Fix incorrect mask used for interlaced mode.
Fixes Ticket1109

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-20 20:39:32 +01:00
Anton Khirnov a6733202cc lavf: make av_interleave_packet_per_dts() private.
There is no reason for it to be public, it's only meant to be used
internally.
2012-03-20 20:12:16 +01:00
Anton Khirnov 3c90cc2ef2 lavf: deprecate av_read_packet().
The caller can achieve the same effect (i.e. getting raw unparsed/mangled
packets) with av_read_frame() and AVFMT_FLAG_NOPARSE |
AVFMT_FLAG_NOFILLIN
2012-03-20 20:12:16 +01:00
Justin Ruggles f63412fc74 oggdec: output correct timestamps for Vorbis
Takes encoder delay into account by comparing first the coded page
duration with the calculated page duration. Handles last packet duration
if needed, also by comparing coded duration with calculated duration.
Also does better handling of timestamp generation for packets in the
first page for streamed ogg files where the start time is not
necessarily zero.
2012-03-20 14:39:57 -04:00
Justin Ruggles 9b9fc9ba32 avconv: pass input stream timestamps to audio encoders
5 FATE test references updated due to using demuxer-generated timestamps that
are either not sample-accurate or are slightly off in the input file.
2012-03-20 14:12:54 -04:00
Justin Ruggles a1977e0103 lavc: shrink encoded audio packet size after encoding. 2012-03-20 14:12:54 -04:00
Justin Ruggles 777365fe86 xa: set correct bit rate
Also fixes stream duration calculation.
2012-03-20 14:12:54 -04:00
Justin Ruggles a54bc52265 xa: do not set bit_rate, block_align, or bits_per_coded_sample
The values in the header refer to decoded data, not compressed data.
2012-03-20 14:12:53 -04:00
Justin Ruggles 64de57f645 xa: fix end-of-file handling
Do not output an extra packet when out_size is reached.
Also return AVERROR_EOF instead of AVERROR(EIO).
2012-03-20 14:12:53 -04:00
Justin Ruggles cd2ffb67ad xa: fix timestamp calculation
The packet duration is always 28 samples.
2012-03-20 14:12:53 -04:00
Kostya Shishkov 1d10afd581 bink: fix typo in FFALIGN() argument 2012-03-20 18:57:51 +01:00
Kostya Shishkov 8ae28ac0f3 bink: align plane width to 8 when calculating bundle sizes
This fixes decoding of Bink files with non-multiple-of-16 width.
2012-03-20 16:33:57 +01:00
Michael Niedermayer 8f394a6cf8 pngdec: print error message for truncated pngs even if we output them
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-20 14:13:01 +01:00
Michael Niedermayer 309d8ec19b pngenc: allocate packets that have some chance of being large enough.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-20 14:12:16 +01:00
Tomas Härdin 393b81f093 mxfdec: Only parse next partition pack if parsing forward
This fixes ticket #1099.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-20 13:45:19 +01:00
Michael Niedermayer 4ed47d3354 pngdec: dont discard incomplete images.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-20 13:45:19 +01:00
Michael Niedermayer eeb792d862 pngdec: Print error messages for the various failure pathes.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-20 13:45:19 +01:00
Mans Rullgard 2ac3df858c doc: pass -Idoc texi2html and texi2pod
This fixes doc generation in build tree separate from source.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-03-20 11:10:25 +00:00
Mans Rullgard b8b207e896 doc: texi2pod: add -I flag
This allows specifying additional directories to search for
@include files.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-03-20 11:10:25 +00:00
Martin Storsjö 39f5a5462c movenc: Add a min_frag_duration option
The other fragmentation options (frag_duration, frag_size and
frag_keyframe) are combined with OR, cutting fragments at the
first of the conditions being fulfilled.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-03-20 11:18:05 +02:00
Martin Storsjö ccfa8aa26f rtsp: Set the default delay to 0.1 s for the RTSP/SDP/RTP demuxers
This enables reordering of UDP packets by default, unless the caller
explicitly sets -max_delay 0.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-03-20 10:53:49 +02:00
Martin Storsjö 4fa57d524f libavformat: Set the default for the max_delay option to -1
Make the muxers/demuxers that use the field handle the default
-1 in the same way as 0.

This allows distinguishing an intentionally set 0 from the default
value where the user hasn't set it.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-03-20 10:53:47 +02:00
Clément Bœsch 9dd649c004 flv: clarify use of video info/cmd frame.
Also add generated key frame in the enum, and doxycomment the existing
ones. Descriptions are directly taken from the public specifications.
2012-03-20 07:53:40 +01:00
Anton Khirnov 0d0b81f941 Generate manpages for AV{Format,Codec}Context AVOptions. 2012-03-20 07:10:06 +01:00
Anton Khirnov 4fea8959d8 doc/avconv: remove entries for AVOptions.
Documentation for those will be generated automatically.
2012-03-20 07:09:54 +01:00
Anton Khirnov 5626697104 Move AVFormatContext/AVCodecContext option tables to separate files.
This will allow us to automatically generate manpages for them.
2012-03-20 07:09:18 +01:00
Anton Khirnov 40b41be3fa lavf: use AVStream.discard to disable queueing attached pictures. 2012-03-20 06:53:44 +01:00
Anton Khirnov 01fcc42b90 lavf: requeue attached pictures after seeking.
This allows the caller to get them without special code even after
seeking before receiving any data.
2012-03-20 06:52:33 +01:00
Anton Khirnov 713f3062a7 id3v2: set the keyframe flag on attached pictures. 2012-03-20 06:52:07 +01:00
Derek Buitenhuis 30f2d97afe zerocodec: Fix license
ISC doesn't contain this line, so remove it to
prevent confusion.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-20 05:01:32 +01:00
Derek Buitenhuis 41bd3519b0 FATE: Add ZeroCodec test
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-20 05:00:13 +01:00
Michael Niedermayer e01f478dd2 ffv1enc: Check context_model
Fixes crash

Found-by: durandal_1707
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-20 00:29:34 +01:00
Michael Niedermayer 479fb7b8af Merge remote-tracking branch 'qatar/master'
* qatar/master: (35 commits)
  fix space type in Changelog
  ZeroCodec Decoder
  RealAudio Lossless decoder
  rtpenc: Use AVFormatContext.packet_size instead of a private option
  url: Document the expected behaviour of url_read
  libavformat: Use AVFormatContext.probesize in init_input
  docs: Fix a stray reference to tags in the generic doxy on dicts
  cosmetics: Align some AVInput/OutputFormat declarations
  zmbv: check decompress result
  zmbv: correct indentation
  adpcm: convert adpcm_thp to bytestream2.
  adpcm: convert adpcm_yamaha to bytestream2.
  adpcm: convert adpcm_swf to bytestream2.
  adpcm: convert adpcm_sbpro to bytestream2.
  adpcm: convert adpcm_ct to bytestream2.
  adpcm: convert adpcm_ima_amv/smjpeg to bytestream2.
  adpcm: convert adpcm_ea_xas to bytestream2.
  adpcm: convert adpcm_ea_r1/2/3 to bytestream2.
  adpcm: convert ea_maxis_xa to bytestream2.
  adpcm: convert adpcm_ea to bytestream2.
  ...

Conflicts:
	Changelog
	libavcodec/Makefile
	libavcodec/adpcm.c
	libavcodec/allcodecs.c
	libavcodec/avcodec.h
	libavcodec/version.h
	libavcodec/zerocodec.c
	libavcodec/zmbv.c
	libavformat/riff.c
	libavformat/url.h
	tests/ref/fate/truemotion1-15
	tests/ref/fate/truemotion1-24

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-20 00:03:19 +01:00
Marton Balint ee4b143221 ffplay: use frame count based queueing for audio queue
This reduces the number of queued frames for audio data but also reduces the
amount of A-V difference after changing the audio stream (because less frames
are queued). Fixes bug #1035.

Signed-off-by: Marton Balint <cus@passwd.hu>
2012-03-19 22:54:40 +01:00
Marton Balint a2c5be6319 ffplay: reset audio_pkt_temp when opening audio
Otherwise we may use the remaining data of the last packet from the previous
audio stream. Fixes bug #951.

Signed-off-by: Marton Balint <cus@passwd.hu>
2012-03-19 22:54:40 +01:00
Michael Niedermayer 87c1783c77 snowenc: move runs from stack to heap.
Fixes ticket1082

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-19 22:37:06 +01:00
Michael Niedermayer fc8ed1117e avcodec_encode_audio2: Increase the audio buffer size.
Fixes Ticket1104

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-19 22:20:04 +01:00
Paul B Mahol 791d6df4ae FATE: change fate-maxis-xa to a normal demuxing test
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-03-19 17:17:54 -04:00
Paul B Mahol b36872bdb6 FATE: add test for adpcm-ea-maxis-xa
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-03-19 17:15:54 -04:00
Aaron Colwell 30011bf201 vp8: avoid race condition on segment map.
This change avoids accessing the segment map of the previous frame if
segmentation is not enabled for the current frame. The caller of
decode_mb_mode() only calls ff_thread_await_progress() on the reference
segmentation index array if segmentation is enabled, so Chromium's TSAN
will report a race when accessing this data while segmentation is not
enabled.

Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-03-19 13:49:34 -07:00
Michael Niedermayer 2b07f572af mp3_probe: consider id3 tags to be low scoring mp3.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-19 20:49:04 +01:00
Stefano Sabatini e19ccc89ef lavfi/aspect: fail with AVERROR(EINVAL) in case of invalid specified aspect
Previously it was returning 0 in case the aspect was parsable but
invalid.

X-ColaCount: +10*PHIl
2012-03-19 20:09:22 +01:00
Kostya Shishkov 18ba94c6f9 fix space type in Changelog 2012-03-19 19:22:18 +01:00
Derek Buitenhuis 0e714f889e ZeroCodec Decoder
An obscure Japanese lossless video codec, originally intended
for use with a remote desktop application.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Signed-off-by: Kostya Shishkov <kostya.shishkov@gmail.com>
2012-03-19 19:02:23 +01:00
Stefano Sabatini 11642cd16f lavc/sunrastenc: consider cases with linesize < 0
Make sunrast_image_write_image() deal with cases when linesize is < 0.
Fix trac ticket #1077.
2012-03-19 19:01:40 +01:00
Kostya Shishkov b8560637d9 RealAudio Lossless decoder 2012-03-19 18:46:34 +01:00
Martin Storsjö 316e724f18 rtpenc: Use AVFormatContext.packet_size instead of a private option
The private option has not been part of any release yet (and
it is only of use in quite rare cases), so just remove it instead
of keeping it with deprecation warnings.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-03-19 18:37:38 +02:00
Nicolas George 01b0ade665 url: Document the expected behaviour of url_read
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-03-19 16:25:51 +02:00
Martin Storsjö 57151f8674 libavformat: Use AVFormatContext.probesize in init_input
This was forgotten in the transition from av_open_input_file to
avformat_open_input, see 603b8bc2a1.

This doesn't change anything for the default case where the
option isn't set, since PROBE_BUF_MAX is 1048576 (which was
used as max probe size earlier) while the default value for
the probesize option is 5000000, which for the probe function
is clipped to PROBE_BUF_MAX anyway.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-03-19 16:08:08 +02:00
Martin Storsjö 27b7459b8d docs: Fix a stray reference to tags in the generic doxy on dicts
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-03-19 16:07:38 +02:00
Matthieu Bouron f645132061 gxf: return AVERROR_EOF instead of AVERROR(EIO) at end of gxf_packet function
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-19 13:33:24 +01:00
Martin Storsjö 17934c1824 cosmetics: Align some AVInput/OutputFormat declarations
Also add missing trailing commas.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-03-19 14:27:43 +02:00
Carl Eugen Hoyos 78f2833f78 Tell users about supported audio samplerates in mmf. 2012-03-19 10:09:04 +01:00
Carl Eugen Hoyos 0d293880ba Match documentation for transparency in BGR32 iff images. 2012-03-19 09:49:33 +01:00
Kostya Shishkov bb39bd195a zmbv: check decompress result
Changing flush type from Z_FINISH is needed since encoder compresses fixed
amount of data and doesn't care about writing end of stream marker.
2012-03-19 09:21:05 +01:00
Kostya Shishkov afc2263bcc zmbv: correct indentation 2012-03-19 09:20:39 +01:00
Michael Niedermayer e8f2c0ca2e h264: print the pps_id when its invalid.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-19 01:43:44 +01:00
Derek Buitenhuis 6cabb679d6 ZeroCodec Decoder
An obscure Japanese lossless video codec, originally intended
for use with a remote desktop application.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-19 00:19:13 +01:00
Michael Niedermayer bae053fca4 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  fate: make compare() function compatible with POSIX bc
  Update Janne's email address.
  APIchanges: Replace Subversion revision numbers by Git hashes.
  bytestream: Eliminate one level of pointless macro indirection.
  xwd: convert to bytestream2.
  vqavideo: port to bytestream2 API
  Read preset files with suffix .avpreset
  prores: allow user to set fixed quantiser
  lavf: remove some disabled code.
  lavf: only set average frame rate for video.
  lavf: remove a pointless check.
  avcodec: add XBM encoder

Conflicts:
	Changelog
	cmdutils.c
	cmdutils.h
	doc/APIchanges
	libavcodec/Makefile
	libavcodec/avcodec.h
	libavcodec/version.h
	libavcodec/vqavideo.c
	libavformat/img2enc.c
	libavformat/utils.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-18 23:39:42 +01:00
Ronald S. Bultje 1744ab9e46 adpcm: convert adpcm_thp to bytestream2. 2012-03-18 15:33:19 -07:00
Ronald S. Bultje 72eda7786d adpcm: convert adpcm_yamaha to bytestream2. 2012-03-18 15:33:19 -07:00
Ronald S. Bultje f184735a27 adpcm: convert adpcm_swf to bytestream2. 2012-03-18 15:33:19 -07:00
Ronald S. Bultje 8afe2f9002 adpcm: convert adpcm_sbpro to bytestream2. 2012-03-18 15:33:19 -07:00
Ronald S. Bultje 834c81f4c5 adpcm: convert adpcm_ct to bytestream2. 2012-03-18 15:33:19 -07:00
Ronald S. Bultje b3084e29e6 adpcm: convert adpcm_ima_amv/smjpeg to bytestream2. 2012-03-18 15:33:16 -07:00
Ronald S. Bultje 22c48d399d adpcm: convert adpcm_ea_xas to bytestream2. 2012-03-18 15:33:16 -07:00
Ronald S. Bultje edd9555537 adpcm: convert adpcm_ea_r1/2/3 to bytestream2. 2012-03-18 15:33:16 -07:00
Ronald S. Bultje e60d09918c adpcm: convert ea_maxis_xa to bytestream2. 2012-03-18 15:33:15 -07:00
Ronald S. Bultje 4a876eba8d adpcm: convert adpcm_ea to bytestream2. 2012-03-18 15:33:15 -07:00
Ronald S. Bultje 524af484ed adpcm convert adpcm_ima_ea_sead to bytestream2. 2012-03-18 15:33:15 -07:00
Ronald S. Bultje 8f2ed09289 adpcm: convert adpcm_ima_ea_eacs to bytestream2. 2012-03-18 15:33:15 -07:00
Ronald S. Bultje 159831cc09 adpcm: convert adpcm_xa to bytestream2. 2012-03-18 15:33:15 -07:00
Ronald S. Bultje 16b7a5e241 adpcm: convert ima_ws to bytestream2. 2012-03-18 15:33:11 -07:00
Ronald S. Bultje 74d7ac95fb adpcm: convert adpcm_ima_apc to bytestream2. 2012-03-18 15:25:26 -07:00
Ronald S. Bultje 9721901440 adpcm: convert adpcm_ima_iss to bytestream2. 2012-03-18 15:25:26 -07:00
Ronald S. Bultje 1da9587026 adpcm: convert adpcm_dk3 to bytestream2. 2012-03-18 15:25:26 -07:00
Ronald S. Bultje d570a96808 adpcm: convert adpcm_dk4 to bytestream2. 2012-03-18 15:25:26 -07:00
Ronald S. Bultje 5353ee3c30 adpcm: convert adpcm_ms to bytestream2. 2012-03-18 15:25:26 -07:00
Ronald S. Bultje 89f3aa8ce2 adpcm: use av_clip() in adpcm_ima_expand_nibble(). 2012-03-18 15:25:25 -07:00
Ronald S. Bultje 689be85a9a adpcm: convert adpcm_4xm to bytestream2. 2012-03-18 15:25:25 -07:00
Ronald S. Bultje 39505f4240 adpcm: convert adpcm_ima_wav to bytestream2. 2012-03-18 15:25:25 -07:00
Ronald S. Bultje 9604307dd8 adpcm: convert adpcm_ima_qt to bytestream2. 2012-03-18 15:25:25 -07:00
Ronald S. Bultje c346f6304c adpcm: fix nb_samples rounding for adpcm_ima_dk3, and update reference. 2012-03-18 15:25:25 -07:00
Michael Niedermayer 72ec043af4 oma: Fix out of array read.
Input: 01-Untitled-partial.oma
ZZUF params: zzuf[s=7157,r=0.001]

Fixes Bugzilla #106

Bug-found-by: darkshikari
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-03-18 15:01:58 -07:00
Michael Niedermayer 7f4c5ab8a1 build_sys: zmbv test depends on zlib
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-18 22:31:24 +01:00
Michael Niedermayer 1939e82754 build_sys: zlib_test depends on zlib
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-18 22:31:24 +01:00
Michael Niedermayer 7a21020674 build_sys: mpng_test depends on zlib
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-18 22:31:24 +01:00
Michael Niedermayer 825936b734 build_sys: flashsv2_test depends on zlib
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-18 22:31:24 +01:00
Michael Niedermayer 395894fc59 build_sys: Add dependencies for pp testing.
Should fix mp=pp test failure by not running it without --enable-gpl

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-18 22:31:24 +01:00
William Yu d19d52d4a1 lavfi/movie: add loop parameter
Signed-off-by: William Yu <genwillyu@gmail.com>
Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
2012-03-18 21:19:09 +01:00
Stefano Sabatini 0ca15aa066 lavc/jpeglsenc: fix allocation in case of negative linesize, and add malloc check
Fix crash with negative linesizes, fix trac ticket #1078.
2012-03-18 21:19:09 +01:00
Paul B Mahol a41340f8e8 pgmyuvenc: abort encoding if width is not even
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-18 20:00:35 +01:00
Tomas Härdin eb74e9ea10 mxfdec: Let pkt->pts = mxf->current_edit_unit if intra-only
We can't do this in general since we could be reading a file with B-frames while
lacking an index.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-18 19:57:01 +01:00
Mans Rullgard a56fba502e fate: make compare() function compatible with POSIX bc
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-03-18 18:40:59 +00:00
Diego Biurrun f36d5c1422 Update Janne's email address. 2012-03-18 16:07:33 +01:00
Diego Biurrun 343bfdd38a APIchanges: Replace Subversion revision numbers by Git hashes. 2012-03-18 16:07:33 +01:00
Diego Biurrun f03183d9a8 bytestream: Eliminate one level of pointless macro indirection. 2012-03-18 16:07:32 +01:00
Ronald S. Bultje abe3c697a3 xwd: convert to bytestream2. 2012-03-18 07:45:41 -07:00
Paul B Mahol 5a3a906ba2 vqavideo: port to bytestream2 API
Protects against overreads.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-03-18 07:45:40 -07:00
Michael Niedermayer 572c0ddc89 indeo4: Skip null frames.
Fixes crashes from Ticket845

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-18 14:07:32 +01:00
Carl Eugen Hoyos 7594ee2e6e jpg: fix colors for sequential RGB
Fixes Ticket850

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-18 14:06:59 +01:00
Michael Niedermayer 0f6f5e6f16 vorbisenc: set quality to a reasonable default.
Fixed Ticket847

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-18 14:06:59 +01:00
Stefano Sabatini fdffaa6b11 lavfi/scale: document behavior with regards to the output sample aspect ratio
Also show the input and output sample aspect ratio in the log.
2012-03-18 10:45:04 +01:00
Reinhard Tartler 050dc12778 Read preset files with suffix .avpreset
The preset files have been renamed some time ago.

CC: libav-stable@libav.org
2012-03-18 09:26:32 +01:00
Kostya Shishkov 6acac061ab prores: allow user to set fixed quantiser 2012-03-18 08:04:15 +01:00
Michael Niedermayer 2560d3b648 dv: Fix streamcopy input.
Fixes Ticket1042

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-18 02:57:25 +01:00
Michael Niedermayer 50d67d951c x11grab: fix compilation
Found-by: ubitux
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-18 01:12:03 +01:00
Michael Niedermayer 79a19f6e58 pthread: Fix mixing of declarations and statements.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-17 23:49:56 +01:00
Michael Niedermayer 967bdb8572 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  resample: allocate a large enough output buffer
  fate: fix enc_dec_pcm tests with remote target
  wmaenc: remove bit-exact hack
  FATE: remove WMA acodec tests
  FATE: add WMAv1 and WMAv2 encode/decode tests with fuzzy comparison
  FATE: add AC-3 and E-AC-3 encode/decode tests with fuzzy comparison
  qtrle: Use bytestream2 functions to prevent buffer overreads.
  vqavideo: check malloc return values
  x11grab: fix a memory leak exposed by valgrind
  threads: fix old frames returned after avcodec_flush_buffers()
  MPV: always mark dummy frames as reference
  h264: fix deadlocks on incomplete reference frame decoding.
  mpeg4: report frame decoding completion at ff_MPV_frame_end().
  mimic: don't use self as reference, and report completion at end of decode().

Conflicts:
	libavcodec/h264.c
	libavcodec/qtrle.c
	libavcodec/resample.c
	libavcodec/vqavideo.c
	libavdevice/x11grab.c
	tests/ref/seek/wmav1_asf
	tests/ref/seek/wmav2_asf

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-17 23:16:05 +01:00
Anton Khirnov 8bc5d90a7e lavf: remove some disabled code. 2012-03-17 22:37:55 +01:00
Anton Khirnov f35f8eeb0d lavf: only set average frame rate for video. 2012-03-17 22:36:56 +01:00
Anton Khirnov 9ade26ee91 lavf: remove a pointless check.
Timebase is already checked in avpriv_set_pts_info().
2012-03-17 22:36:48 +01:00
Michael Niedermayer 219a6fb61c dsp: fix diff_bytes_mmx() with small width
Fixes Ticket1068

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-17 20:48:56 +01:00
Paul B Mahol 0afd8f12e9 avcodec: add XBM encoder
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-03-17 15:45:04 -04:00
Justin Ruggles 6ca3b248e2 resample: allocate a large enough output buffer
Fixes invalid writes and crashes when doing conversions such as stereo to 5.1
channels or sample rate conversion on 5.1 channels.
2012-03-17 13:37:44 -04:00
Mans Rullgard b1740cb00a fate: fix enc_dec_pcm tests with remote target
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-03-17 17:28:33 +00:00
Nicolas George 69174fad73 vf_thumbnail: forward request_frame at least once.
The current version relied on poll_frame to request
the very first frame, that would not work if the
surrounding code does not call poll_frame.
2012-03-17 17:26:27 +01:00
Justin Ruggles c3da9f5060 wmaenc: remove bit-exact hack
It may have improved cross-platform stability, but wasn't the only place in
the encoder with bitexact issues. It is no longer needed because we have FATE
tests for float encoders using fuzzy comparison.
2012-03-17 11:46:15 -04:00
Justin Ruggles 85cf49fab7 FATE: remove WMA acodec tests 2012-03-17 11:46:15 -04:00
Justin Ruggles 3a1e453e54 FATE: add WMAv1 and WMAv2 encode/decode tests with fuzzy comparison 2012-03-17 11:33:35 -04:00
Justin Ruggles a4cf4ef256 FATE: add AC-3 and E-AC-3 encode/decode tests with fuzzy comparison 2012-03-17 11:33:35 -04:00
Nicolas George 463705bd1c udp: fix non-blocking and interrupt handling.
In non-blocking mode, lowest-level read protocols are
supposed block only for a short amount of time to let
retry_transfer_wrapper() check for interrupts.

Also, checking the interrupt_callback in the receiving thread is
wrong, as interrupt_callback is not guaranteed to be thread-safe
and the job is already done by retry_transfer_wrapper(). The error
code was also incorrect.

Bug reported by Andrey Utkin.
2012-03-17 14:43:37 +01:00
Stefano Sabatini d9f26a0d71 lavfi/crop: show input and output sample aspect ratio in the log 2012-03-17 12:34:34 +01:00
Nicolas George e55ecbc93a url: document url_read exact behaviour. 2012-03-17 11:50:54 +01:00
Stefano Sabatini 0ac38deda7 lavfi/allfilters: fix weird vertical align 2012-03-17 11:33:34 +01:00
Stefano Sabatini 3225bc37a3 lavfi: add bbox filter
Also add bbox.h and bbox.c files, based on the remove-logo filter by
Robert Edele. These files are useful for sharing code with the pending
removelogo port.
2012-03-17 11:21:49 +01:00
Paul B Mahol 32a5775a91 pcm: leave sample format conversion to libswresample
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-17 05:31:26 +01:00
Michael Niedermayer 8a91da9575 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  h264: K&R formatting cosmetics
  s3tc.h: Add missing #include to fix standalone header compilation.
  FATE: add capability for audio encode/decode tests with fuzzy psnr comparison
  FATE: allow a tolerance in the size comparison in do_tiny_psnr()
  FATE: use absolute difference from a target value in do_tiny_psnr()
  FATE: allow tests to set CMP_SHIFT to pass to tiny_psnr
  FATE: use $fuzz directly in do_tiny_psnr() instead of passing it around

Conflicts:
	libavcodec/h264.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-17 04:43:12 +01:00
Michael Niedermayer 4c1da0d11e ffmpeg: allow selective and complete disabling of map_metadata.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-17 03:16:09 +01:00
Aneesh Dogra de64d8cf17 qtrle: Use bytestream2 functions to prevent buffer overreads.
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-03-16 17:50:39 -07:00
Paul B Mahol 341404f753 vqavideo: check malloc return values
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-03-16 16:57:12 -07:00
Antonio Ospite d3958ab4ed x11grab: fix a memory leak exposed by valgrind
When using "-f x11grab -i :0.0" valgrind reports a definitely lost
memory block with this message:

==31544== 5 bytes in 1 blocks are definitely lost in loss record 1 of 2
==31544==    at 0x4026E68: memalign (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==31544==    by 0x4026F17: posix_memalign (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==31544==    by 0x60D399A: av_malloc (in /usr/lib/x86_64-linux-gnu/libavutil.so.51.22.1)
==31544==    by 0x60D3A70: av_strdup (in /usr/lib/x86_64-linux-gnu/libavutil.so.51.22.1)
==31544==    by 0x4A2BE58: ??? (in /usr/lib/x86_64-linux-gnu/libavdevice.so.53.2.0)
==31544==    by 0x506D29E: avformat_open_input (in /usr/lib/x86_64-linux-gnu/libavformat.so.53.21.0)
==31544==    by 0x400A80: main (in /home/ao2/WIP/am7xxx-play/tests/a.out)

The 5 bytes lost are the ones from param = av_strdup(":0.0"), so let's
free param in the exit path.

Also check the av_strdup() return value.

Note: calling av_free(param) even when av_strdup() fails and param is
NULL is OK and keeps the code simpler without adding another label to
skip av_free().

Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-03-16 15:39:33 -07:00
Uoti Urpala 05b9a89ed7 threads: fix old frames returned after avcodec_flush_buffers()
Calling avcodec_flush_buffers() and then avcodec_decode_video2() with
a 0-sized packet (to get remaining buffered frames) could incorrectly
return an old frame from before the avcodec_flush_buffers() call. Add
a loop in ff_thread_flush() to zero the got_frame field of each thread
to ensure the old frames will not be returned.

Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-03-16 15:38:18 -07:00
Janne Grunau 7b60799aa8 MPV: always mark dummy frames as reference
If the dummy frame are not created from a reference frame they could
be deleted untimely resulting in multithreaded decoder waiting on
the current frame to finish.
Noticed by Ronald S. Bultje in the RV34 decoder with a broken file.
2012-03-16 23:35:32 +01:00
Ronald S. Bultje 1e26a48fa2 h264: fix deadlocks on incomplete reference frame decoding.
If decoding a second complementary field, and the first was
decoded in our thread, mark decoding of that field as complete.
If decoding fails, mark the decoded field/frame as complete.
Do not allow switching between field modes or field/frame mode
between slices within the same field/frame. Ensure that two
subsequent fields cover top/bottom (rather than top/frame,
bottom/frame or such nonsense situations).

Fixes various deadlocks when decoding samples with errors in
reference frames.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-16 15:31:00 -07:00
Ronald S. Bultje c6ccb96bc9 mpeg4: report frame decoding completion at ff_MPV_frame_end().
Prevents hangs on corrupt input.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-16 15:30:53 -07:00
Ronald S. Bultje 80387f0e25 mimic: don't use self as reference, and report completion at end of decode().
Fixes hangs on corrupt samples that reference self-frames.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-16 15:30:52 -07:00
Wolfram Gloger f8353d5fda mpegvideo: don't pretend the first frame is always a key frame
Signed-off-by: Wolfram Gloger <wmglo@dent.med.uni-muenchen.de>

Modify the parser initialization so that parsers can
set pict_type themselves.  Use this in the mpegvideo parser
so that initial frames are not unconditionally I frames.
I have had this in my tree for several years.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-16 21:27:23 +01:00
Diego Biurrun e5d403720e h264: K&R formatting cosmetics
Also remove some disabled code and fix a few comment typos.
2012-03-16 20:35:37 +01:00
Diego Biurrun ad4cec6b80 s3tc.h: Add missing #include to fix standalone header compilation. 2012-03-16 18:51:57 +01:00
Michael Niedermayer 6f9803e5e0 sonic: update to new API
Fixes Ticket1075

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-16 15:11:18 +01:00
Michael Niedermayer d9fe6b926c matroskadec: Fix null pointer exception on corrupted input.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-16 05:28:18 +01:00
Michael Niedermayer b89f94077d ass: fix DAR calculation.
Found-by: REN Lifeng <renlifeng@wowfly.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-16 04:35:21 +01:00
Michael Niedermayer 4257ce112c Merge remote-tracking branch 'qatar/master'
* qatar/master:
  dxa: remove useless code
  lavf: don't select an attached picture as default stream for seeking.
  avconv: remove pointless checks.
  avconv: check for get_filtered_frame() failure.
  avconv: remove a pointless check.
  swscale: convert hscale() to use named arguments.
  x86inc: add *mp named argument support to DEFINE_ARGS.
  swscale: convert hscale to cpuflags().

Conflicts:
	ffmpeg.c
	libswscale/x86/scale.asm

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-16 01:36:49 +01:00
Michael Niedermayer c743aad557 huffyuv: some more consts
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-15 22:17:36 +01:00
Michael Niedermayer dd2631a6df dsputil: mark source of diff_bytes as const.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-15 22:17:24 +01:00
Michael Niedermayer 1bc85fb32d dirac: mark some variables const.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-15 22:12:02 +01:00
Michael Niedermayer ae76c1af16 4xm: make mcdc() src const
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-15 22:07:54 +01:00
Justin Ruggles 90e5b58a53 FATE: add capability for audio encode/decode tests with fuzzy psnr comparison
This allows for testing floating-point audio encoders across different
platforms where exact comparisons are unreliable due to float rounding
differences.
2012-03-15 17:06:17 -04:00
Michael Niedermayer bf3a404572 mpegvideo: fix constness error in ff_MPV_encode_picture()
The struct has some of its fields changed, thus is not strictly const.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-15 22:05:30 +01:00
Michael Niedermayer add40b7b6a tests/rotozoom: make some things const.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-15 21:52:11 +01:00
Justin Ruggles cffd7580bb FATE: allow a tolerance in the size comparison in do_tiny_psnr()
This will allow for comparing decoded output to the original source when the
decoded size is not exactly the same as the original size.
2012-03-15 14:40:31 -04:00
Justin Ruggles bb6842966e FATE: use absolute difference from a target value in do_tiny_psnr()
This will allow comparison to original pre-encoded content instead of
comparing to expected decoded output.
2012-03-15 14:40:31 -04:00
Justin Ruggles 5ecadc6620 FATE: allow tests to set CMP_SHIFT to pass to tiny_psnr
This will allow adjusting for any encoder or decoder delay when doing
comparisons.
2012-03-15 14:40:24 -04:00
Justin Ruggles 0720d263ea FATE: use $fuzz directly in do_tiny_psnr() instead of passing it around 2012-03-15 12:06:56 -04:00
Paul B Mahol 702985b8b7 dxa: remove useless code
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-03-15 14:01:23 +01:00
Anton Khirnov cd9a3c3512 lavf: don't select an attached picture as default stream for seeking. 2012-03-15 14:01:05 +01:00
Anton Khirnov 251422982b avconv: remove pointless checks.
OutputStream.picref is guaranteed to be non-NULL if
get_filtered_video_frame() succeeds.
2012-03-15 09:01:18 +01:00
Anton Khirnov ce326c1130 avconv: check for get_filtered_frame() failure. 2012-03-15 09:00:55 +01:00
Anton Khirnov 2636e691ce avconv: remove a pointless check.
output_video_filter is always guaranteed to be set and is in fact
dereferenced right above the check.
2012-03-15 09:00:49 +01:00
Michael Niedermayer a04a97bc88 Merge remote-tracking branch 'cus/stable'
* cus/stable:
  ffplay: force video refresh if the window is resized or damaged

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-15 08:26:47 +01:00
Ronald S. Bultje 45fdcc8e2d swscale: convert hscale() to use named arguments. 2012-03-14 20:09:53 -07:00
Ronald S. Bultje 98b9da2ac7 x86inc: add *mp named argument support to DEFINE_ARGS. 2012-03-14 20:09:53 -07:00
Ronald S. Bultje aba7a827aa swscale: convert hscale to cpuflags(). 2012-03-14 20:09:53 -07:00
Michael Niedermayer 67235dfa1d Merge remote-tracking branch 'qatar/master'
* qatar/master:
  h264: stricter reference limit enforcement.
  h264: increase reference poc list from 16 to 32.
  xa_adpcm: limit filter to prevent xa_adpcm_table[] array bounds overruns.
  snow: check reference frame indices.
  snow: reject unsupported chroma shifts.
  Add ffvhuff encoding and decoding regression test
  anm: convert to bytestream2 API
  bytestream: add more unchecked variants for bytestream2 API
  jvdec: unbreak video decoding
  jv demux: set video stream duration
  fate: add pam image regression test

Conflicts:
	libavcodec/adpcm.c
	libavcodec/anm.c
	libavcodec/h264.c
	libavcodec/mpegvideo.h
	libavcodec/snowdec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-15 01:27:10 +01:00
Marton Balint dbe7170e2a ffplay: force video refresh if the window is resized or damaged
Signed-off-by: Marton Balint <cus@passwd.hu>
2012-03-15 00:58:13 +01:00
Michael Niedermayer 9e2ee46206 vf_fspp: add ff_ prefix to non static variables.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-14 23:06:00 +01:00
Michael Niedermayer 3bd749f335 docs: Add examples for -cpuflags
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-14 23:06:00 +01:00
Michael Niedermayer f43a16049e cmdutils: Fix cpuflags so the flags dont pull in and out other flags.
Note, this doesnt break compatibility with libav, as libav
has implemented a incompatible and more limited system under the same
-cpuflags command line option we used since some time.

The differences to libav for example are we can do things like
ffmpeg -cpuflags -sse+mmx -cpuflags +3dnow
Its also possible in our system to force flags that have not been
detected as available
And our -cpuflags works with all tools not just 1

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-14 23:05:38 +01:00
Baptiste Coudurier fa35ade8f9 vf_fspp: fix compilation with llvm 2012-03-14 22:35:15 +01:00
Aaron Colwell bda5b6627a matroskaenc: change cluster_pos to use -1 as the "I'm not currently working on a cluster" signal instead of 0.
This avoids problems
where avio_tell() returns 0. I've updated all the checks against
cluster_pos

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-14 21:51:38 +01:00
Ronald S. Bultje e0febda22d h264: stricter reference limit enforcement.
Progressive images can have only 16 references, error out if there are
more, since the data is almost certainly corrupt, and the invalid value
will lead to random crashes or invalid writes later on.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-14 13:24:49 -07:00
Ronald S. Bultje 48cbe4b092 h264: increase reference poc list from 16 to 32.
Interlaced images can have 32 references (16 per field), so limiting the
array size to 16 leads to invalid writes.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-14 13:24:45 -07:00
Ronald S. Bultje 86020073db xa_adpcm: limit filter to prevent xa_adpcm_table[] array bounds overruns.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-14 13:24:40 -07:00
Michael Niedermayer 1f8ff2b13c snow: check reference frame indices.
Fixes NULL ptr dereference

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-03-14 13:24:35 -07:00
Michael Niedermayer c9837954e7 snow: reject unsupported chroma shifts.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-03-14 13:24:31 -07:00
Paul B Mahol 92a02d935b Add ffvhuff encoding and decoding regression test
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-03-14 13:24:17 -07:00
Paul B Mahol 5b4d026a03 anm: convert to bytestream2 API
Protects from overreads.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-03-14 13:23:07 -07:00
Paul B Mahol f1ce053cd0 bytestream: add more unchecked variants for bytestream2 API
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-03-14 13:23:07 -07:00
Paul B Mahol a1c036e961 jvdec: unbreak video decoding
The safe bitstream reader broke it since the buffer size was specified
in bytes instead of bits.

Signed-off-by: Janne Grunau <janne-libav@jannau.net>
CC: libav-stable@libav.org
2012-03-14 15:34:50 +01:00
Paul B Mahol d3d1b25e69 jv demux: set video stream duration
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Janne Grunau <janne-libav@jannau.net>
2012-03-14 15:34:50 +01:00
Paul B Mahol 05e0061ef6 fate: add pam image regression test
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Janne Grunau <janne-libav@jannau.net>
2012-03-14 15:34:50 +01:00
Michael Niedermayer 7230116000 ffmpeg: Fix planar audio input.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-14 08:03:29 +01:00
Michael Niedermayer 6968a7d193 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  doc/general: update supported devices table.
  doc/general: add missing @tab to codecs table.
  h264: Fix invalid interlaced/progressive MB combinations for direct mode prediction.
  avconv: reindent
  avconv: link '-passlogfile' option to libx264 'stats' AVOption.
  libx264: add 'stats' private option for setting 2pass stats filename.
  libx264: fix help text for slice-max-size option.
  http: Clear the auth state on redirects
  http: Retry auth if it failed due to being stale
  rtsp: Resend new keepalive commands if they used stale auth
  rtsp: Retry authentication if failed due to being stale
  httpauth: Parse the stale field in digest auth
  dxva2_vc1: pass the overlap flag to the decoder
  dxva2_vc1: fix decoding of BI frames
  FATE: add shorthand to wavpack test
  dfa: convert to bytestream2 API
  anm decoder: move buffer allocation from decode_init() to decode_frame()
  h264: improve parsing of broken AVC SPS

Conflicts:
	ffmpeg.c
	libavcodec/anm.c
	libavcodec/dfa.c
	libavcodec/h264.c
	libavcodec/h264_direct.c
	libavcodec/h264_ps.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-14 02:10:11 +01:00
Michael Niedermayer c2e3b564b3 mmvideo: restore initial y value.
This bug might have been exploitable (out of HEAP buffer writes)

Bug introduced by libav
	commit a55d5bdc6e
	Date:   Tue Mar 6 15:15:42 2012 -0800

	    algmm: convert to bytestream2 API.
2012-03-13 22:38:45 +01:00
Michael Niedermayer 67c90d2605 mmvideo: remove unused variable
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-13 22:15:42 +01:00
Michael Niedermayer bf521d5a5b jpeglsdec: suppress unused var warning
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-13 22:13:13 +01:00
Michael Niedermayer 0fdb4dfd03 h264: Fix some mixed declarations and code.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-13 22:10:02 +01:00
Michael Niedermayer c592679cca eatgq: remove unused ret variable.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-13 22:05:22 +01:00
Michael Niedermayer d9399c4b66 eamad: Remove redundant initialization of mv_map.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-13 22:04:25 +01:00
Anton Khirnov 972880f597 doc/general: update supported devices table.
Add libcdio and fbdev, remove v4l1.
2012-03-13 22:01:51 +01:00
Anton Khirnov 29e4046e83 doc/general: add missing @tab to codecs table. 2012-03-13 22:01:51 +01:00
Michael Niedermayer 9ff43569d2 g729dec: fix scalarproduct_int16 after API change
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-13 21:20:07 +01:00
Michael Niedermayer 758ec11153 h264: Fix invalid interlaced/progressive MB combinations for direct mode prediction.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-03-13 10:04:23 -07:00
Anton Khirnov 64334ddbbc avconv: reindent
CC: libav-stable@libav.org
2012-03-13 12:21:44 +01:00
Anton Khirnov 6e8be949f1 avconv: link '-passlogfile' option to libx264 'stats' AVOption.
Fixes bug 204.

CC: libav-stable@libav.org
2012-03-13 12:21:14 +01:00
Anton Khirnov d533e395e1 libx264: add 'stats' private option for setting 2pass stats filename.
x264 always opens the file itself with fopen, so we cannot use the
standard lavc stats mechanism.

CC: libav-stable@libav.org
2012-03-13 12:20:50 +01:00
Anton Khirnov 9d5c131ece libx264: fix help text for slice-max-size option.
CC: libav-stable@libav.org
2012-03-13 12:20:34 +01:00
Peter Ross e05253bf49 iff: do not decode unsupported pbms with ham decoder
This prevents the segfault reported by ticket #1054
2012-03-13 21:56:19 +11:00
Martin Storsjö 499ad54d98 http: Clear the auth state on redirects
Currently we only try continuing with the same auth mechanism
as the initial request.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-03-13 11:19:29 +02:00
Martin Storsjö e75bbcf493 http: Retry auth if it failed due to being stale
Allow up to 4 retries for normal requests, where both the
proxy and the target server might need to authenticate.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-03-13 11:19:29 +02:00
Martin Storsjö cdf9108b6a rtsp: Resend new keepalive commands if they used stale auth
These commands are sent asynchronously, not waiting for the reply.
This reply is parsed later by ff_rtsp_tcp_read_packet or
udp_read_packet. If the reply indicates that we used stale
authentication and need to use a new nonce, resend a new keepalive
command immediately.

This is the only request sent asynchronously, so currently there's
no other command that needs to be resent in the same way.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-03-13 11:19:29 +02:00
Martin Storsjö 2f96cc1fc4 rtsp: Retry authentication if failed due to being stale
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-03-13 10:36:18 +02:00
Martin Storsjö 8a3360d18a httpauth: Parse the stale field in digest auth
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-03-13 10:36:17 +02:00
Hendrik Leppkes 7103c8350a dxva2_vc1: pass the overlap flag to the decoder
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-03-13 08:14:23 +01:00
Hendrik Leppkes b2b0aa70ea dxva2_vc1: fix decoding of BI frames
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-03-13 08:14:22 +01:00
Paul B Mahol 6efe180782 FATE: add shorthand to wavpack test
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-03-12 21:47:47 -07:00
Paul B Mahol 29b0d94b43 dfa: convert to bytestream2 API
Protects from overreads.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-03-12 21:47:40 -07:00
Michael Niedermayer b25a265a5c Merge remote-tracking branch 'qatar/master'
* qatar/master:
  pcm-mpeg: convert to bytestream2 API
  Revert "h264: clear trailing bits in partially parsed NAL units"
  remove iwmmxt optimizations
  mimic: do not continue if swap_buf_size is 0
  mimic: convert to bytestream2 API
  frwu: use MKTAG to check marker instead of AV_RL32
  txd: port to bytestream2 API
  c93: convert to bytestream2 API
  iff: make .long_name more descriptive
  FATE: add test for cdxl demuxer
  rtsp: Fix a typo

Conflicts:
	libavcodec/arm/dsputil_iwmmxt.c
	libavcodec/arm/dsputil_iwmmxt_rnd_template.c
	libavcodec/arm/mpegvideo_iwmmxt.c
	libavcodec/c93.c
	libavcodec/txd.c
	libavutil/arm/cpu.c
	tests/fate/demux.mak

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-13 01:56:33 +01:00
Lou Logan 2d38081b4f cosmetics: fix some typos
Patch attached.
From 2d4094fc0dcb4ccd0735eb7e1719e228ebb56bb9 Mon Sep 17 00:00:00 2001
From: Lou Logan <lou@lrcd.com>
Date: Mon, 12 Mar 2012 14:13:44 -0800
Subject: [PATCH] cosmetics: fix some typos

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-13 01:14:04 +01:00
Michael Niedermayer 105cac3407 vc1dec: Fix vc1 decoding with --disable-optimizations.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-13 01:14:04 +01:00
Peter Ross 015da6e394 anm decoder: move buffer allocation from decode_init() to decode_frame()
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-03-12 16:44:39 -07:00
Michael Niedermayer 3aa661ec56 h264: improve parsing of broken AVC SPS
Parsing the entire NAL as SPS fixes decoding of some AVC bitstreams
with broken escaping. Since the size of the NAL unit is known and
checked against the buffer end we can parse it entirely without buffer
overreads.

Fixes playback of
http://streams.videolan.org/streams/mp4/Mr_MrsSmith-h264_aac.mp4

Signed-off-by: Janne Grunau <janne-libav@jannau.net>
2012-03-13 00:31:52 +01:00
Paul B Mahol bd3e07c82a pcm-mpeg: convert to bytestream2 API
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Janne Grunau <janne-libav@jannau.net>
2012-03-12 23:03:57 +01:00
Janne Grunau 8a6037c390 Revert "h264: clear trailing bits in partially parsed NAL units"
This reverts commit 729ebb2f18.

There was an off-by-one error in the bit mask calculation clearing
actually the last valid bit and causing
http://bugzilla.libav.org/show_bug.cgi?id=227

The broken sample (Mr_MrsSmith-h264_aac.mp4) the commit was fixing
does not work after correcting the off-by-one error.

CC: libav-stable@libav.org
2012-03-12 22:46:56 +01:00
Janne Grunau 363bd1c62c remove iwmmxt optimizations
The were broken since August of 2010 without anyone noticing until
three weeks ago. Nobody cares about it anymore and hopefully Marvell
will support NEON like in the PXA978 from now on.
2012-03-12 22:46:56 +01:00
Nico Weber 599888a480 Move struc FFTContext below SECTION_RODATA
Yasm creates an implicit unaligned text section if "struc" is used
outside of any section:
http://tortall.lighthouseapp.com/projects/78676-yasm/tickets/247

Since yasm only honors the "align" annotation on the first declaration
of a section, this implicit text section causes all text section
alignments to be ignored. Also fixes a yasm warning about it agnoring
alignment.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-12 21:54:37 +01:00
Andrey Utkin 3069e70f62 udp: Add option overrun_nonfatal
Optionize fail/survive on circular buffer overrun

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-12 21:50:46 +01:00
Andrey Utkin a2eecc110b udp: remove dead code line (unused result)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-12 21:49:33 +01:00
Michael Niedermayer b0a0e83aee Revert "flvenc: Remove apparently unneeded AAC check."
According to video_file_format_spec_v10_1.pdf flv stores AAC RAW
thanks to Baptiste Coudurier for pointing that out

thanks to Aℓex Converse for explaining:
	This can't be at the start of a non-ADTS payload. 111 is the
	EndOfFrame syntax element.

Together these proof that the check was correctly rejecting ADTS which
is not supposed to be in flv. Many players are able to play such ADTS
in flv though but its better if we conform to the spec as this should
ensure that not many but all players can play files generated by ffmpeg.

This reverts commit 3c9a86df0e.
2012-03-12 20:42:25 +01:00
Paul B Mahol 33c5c3ad07 mimic: do not continue if swap_buf_size is 0
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-03-12 11:47:48 -07:00
Paul B Mahol dba425ad7a mimic: convert to bytestream2 API
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-03-12 11:46:34 -07:00
Paul B Mahol 05d089a80b frwu: use MKTAG to check marker instead of AV_RL32
Using intreadwrite.h for this is overkill.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-03-12 11:41:02 -07:00
Paul B Mahol 919f355438 txd: port to bytestream2 API
Protects against overreads.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-03-12 11:37:47 -07:00
Clément Bœsch 4fe5448790 lavfi/drawtext: add 24 hours wrapping option for timecode.
Fixes ticket #1044.
2012-03-12 18:17:02 +01:00
Paul B Mahol 85aded741e c93: convert to bytestream2 API
Protects against overreads.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-03-12 17:13:42 +02:00
Paul B Mahol 947e103a8f iff: make .long_name more descriptive
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-03-12 17:02:02 +02:00
Paul B Mahol 5a877d9530 FATE: add test for cdxl demuxer
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-03-12 17:01:58 +02:00
Martin Storsjö 705eeb5eca rtsp: Fix a typo
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-03-12 16:27:00 +02:00
Michael Niedermayer 88c76c7d22 Revert "udp: add multicast input interface selection"
This reverts commit 9abd47fe90.

Broke compilation on openbsd and others
2012-03-12 06:48:32 +01:00
Hendrik Leppkes 0aedd8c0bd dxva2_vc1: pass the overlap flag to the decoder
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-12 06:12:35 +01:00
Hendrik Leppkes a3c5aefff2 dxva2_vc1: fix decoding of BI frames
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-12 06:11:21 +01:00
Michael Niedermayer 2367b2a502 libavformat.v: add ffio_set_buf_size() for ffserver.
its inevitable with the current API

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-12 06:04:37 +01:00
Tudor.Suciu 9abd47fe90 udp: add multicast input interface selection
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-12 06:01:09 +01:00
C Chatterjee 3c9a86df0e flvenc: Remove apparently unneeded AAC check.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-12 05:21:59 +01:00
ami_stuff 86b6e49d92 iff: check for pbm tag
more robust

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-12 05:09:37 +01:00
Michael Niedermayer 1c27359867 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  dsicinvideo: validate buffer offset before copying pixels.
  cook: error out on quant_index values outside [-63, 63] range.
  mpc: pad mpc_CC/SCF[] tables to allow for negative indices.

Conflicts:
	libavcodec/cook.c
	libavcodec/dsicinav.c
	libavcodec/mpc.c
	libavcodec/mpc7.c
	libavcodec/mpcdata.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-12 04:35:06 +01:00
Miroslav Slugeň 00969376ce ffserver: add missing buffer set after rewrite av_open_input_file to avformat_open_input.
Fixes Ticket346

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-12 03:31:59 +01:00
Michael Niedermayer 9fcc62ed9b Revert "ffserver: remove unused variable."
This reverts commit f02f745e4a.
2012-03-12 03:31:59 +01:00
Stefano Sabatini 4272dc3ec5 doc: add vf_crop keepaspect documentation
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-11 17:47:06 +01:00
Baptiste Coudurier f49cb8e669 vf_crop: keepaspect support 2012-03-11 17:46:31 +01:00
Joseph Artsimovich 84b9b4aa18 Fix frame height vs field height confusion in MXF decoding.
Reviewed-by: Tomas Härdin <tomas.hardin@codemill.se>
Reveiwed-by: Baptiste Coudurier <baptiste.coudurier@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-11 17:39:52 +01:00
Paul B Mahol 4ed0d182e2 FATE: add test for cdxl demuxer
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-11 17:25:29 +01:00
Thilo Borgmann 599881b028 alsdec: Fix out of ltp_gain_values read.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-11 16:56:23 +01:00
Thilo Borgmann daeffccd98 alsdec: pretty print for another log message
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-11 16:55:42 +01:00
Ronald S. Bultje c95fefa042 dsicinvideo: validate buffer offset before copying pixels.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-11 07:28:54 -07:00
Matthieu Bouron ad029c24a6 mxfdec: add timecode to metadata
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-11 08:12:46 +01:00
Ronald S. Bultje 97e48b2f54 cook: error out on quant_index values outside [-63, 63] range.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-10 17:51:28 -08:00
Michael Niedermayer c3c2db49a7 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  cook: expand dither_tab[], and make sure indexes into it don't overflow.
  xxan: reindent xan_unpack_luma().
  xxan: protect against chroma LUT overreads.
  xxan: convert to bytestream2 API.
  xxan: don't read before start of buffer in av_memcpy_backptr().
  vp8: convert mbedge loopfilter x86 assembly to use named arguments.
  vp8: convert inner loopfilter x86 assembly to use named arguments.

Conflicts:
	libavcodec/xxan.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-11 01:12:52 +01:00
Carl Eugen Hoyos 6cb89df845 Add missing requirements to libavdevice.pc if lavfi is enabled.
Fixes ticket #1050.
2012-03-11 00:48:36 +01:00
Ronald S. Bultje d7eabd5042 mpc: pad mpc_CC/SCF[] tables to allow for negative indices.
MPC8 allows indices of mpc_CC up to -1, and mpc_SCF up to -6, thus pad
the tables by that much on the left end.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-10 14:28:08 -08:00
Michael Niedermayer 2440040c7b vc1: add missing entries to ff_vc1_fps_nr.
Fixes out of array read

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-10 23:12:42 +01:00
Michael Niedermayer 8e9a0a3568 mpc7: check subband index
This fixes a overread

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-10 23:12:42 +01:00
Michael Niedermayer ecc31630f9 mjpegb: Detect changing nb of planes in interlaced video.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-10 23:12:42 +01:00
Michael Niedermayer 50f4f272fe indeo3: Fix out of reference reading with NULL blocks.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-10 23:12:42 +01:00
Ronald S. Bultje 442c3a8cb1 cook: expand dither_tab[], and make sure indexes into it don't overflow.
Fixes overflows in accessing dither_tab[].

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-10 12:03:53 -08:00
Ronald S. Bultje 71af42bd96 xxan: reindent xan_unpack_luma().
It used 3-space indent instead of 4-space indent.
2012-03-10 11:57:56 -08:00
Ronald S. Bultje f77bfa8376 xxan: protect against chroma LUT overreads.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-10 11:57:17 -08:00
Ronald S. Bultje 5518827816 xxan: convert to bytestream2 API.
Protects against overreads.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-10 11:48:57 -08:00
Ronald S. Bultje f1279e286b xxan: don't read before start of buffer in av_memcpy_backptr().
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-10 11:48:39 -08:00
Ronald S. Bultje a928ed3751 vp8: convert mbedge loopfilter x86 assembly to use named arguments. 2012-03-10 11:36:33 -08:00
Ronald S. Bultje bee330e300 vp8: convert inner loopfilter x86 assembly to use named arguments. 2012-03-10 11:36:33 -08:00
Reimar Döffinger 6fe8cb7d70 snowenc: add no_bitstream option.
This allows making e.g. MPlayer's -vf uspp filter about 20% faster.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-03-10 20:17:11 +01:00
Reimar Döffinger c4e0d845e2 snowenc: mark some encode_subband arguments const.
This makes it more obvious that this function only does bitstream
encoding.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-03-10 20:17:11 +01:00
Zalewa PL 0d2f4eedc8 mpjpeg: video streaming will no longer break and stop on Firefox
mpjpeg video streamings would break and stop on Firefox after 1 - 30
seconds.
In order to fix this, two changes were made:
1. Replaced all occurrences of '\n' character in mjpeg metadata
   with occurences of "\r\n".
2. Added "Content-length: <packet-size>" metadata entry for each
   sent frame.

The change has been tested on Google Chrome 17.0.963.78 and Firefox 10.0.2
on lubuntu 11.10 and the streaming seems to work fine now.
2012-03-10 18:32:02 +01:00
Tomas Härdin 2ff540a0fe mxf: Add DNxHD UL
Note that the old DNxHD UL is actually JPEG 2000 according to RP224. Leaving it
as-is for now.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-10 18:01:03 +01:00
Baptiste Coudurier 1b99971dc7 vf_frei0r: set outlinks sample aspect ratio to 1 2012-03-10 17:48:14 +01:00
Reimar Döffinger 8fbf825ecc DV: Use profile[1] detection hack only for stype 0.
The two samples both have stype 0.
Without this extra check, the code breaks 4:2:2 dvsd
(stype 4), since that has the same resolution.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-03-10 10:45:03 +01:00
Reimar Döffinger b52bd2a4ab DV demuxer: Stricter check for avio_read result.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-03-10 10:43:14 +01:00
Michael Niedermayer f7b57add8e cook: tighten the quant_index_table range further.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-10 08:05:18 +01:00
Michael Niedermayer 8e31dbc1dc Merge remote-tracking branch 'qatar/master'
* qatar/master:
  Fix a bunch of common typos.
  build: Skip compiling xvmc.h under the correct condition.
  configure: darwin: Change dylib install names to include major version.
  mpegts: Always honor a registration descriptor if present and there is no other codec information.
  aacdec: Fix SCE parity check.
  aacdec: Fix out of array writes (stack).
  rtsp: Only set the ttl parameter if the server actually gave a value
  udp: Set ttl for read-write streams, too, not only for write-only ones
  udp: Only bind to the multicast address if in read-only mode
  udp: Clarify the comment about binding the multicast address
  udp: Reorder comments

Conflicts:
	libavcodec/aacdec.c
	tools/patcheck

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-10 01:12:08 +01:00
Michael Niedermayer 1af9fdc3ba snow: reject unsupported chroma shifts.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-10 00:18:29 +01:00
Stefano Sabatini aefd1cb725 lavfi: remove swapuv libmpcodecs wrapper
The filter has been ported to a native libavfilter filter.
2012-03-10 00:10:44 +01:00
Stefano Sabatini fa35d880aa lavfi: port MP swapuv filter 2012-03-10 00:10:37 +01:00
Stefano Sabatini 1a3d4b88a4 imgconvert: add macro pixdesc_has_alpha for checking if a pixel format has an alpha component
Reduce redundancy and simplify.
2012-03-10 00:10:09 +01:00
Michael Niedermayer 174678ff5b mpegvideo_probe: Fix misdetection of mpeg4video files.
(issue1210)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-09 22:25:32 +01:00
Diego Biurrun ffae713a5b Fix a bunch of common typos. 2012-03-09 22:02:49 +01:00
Diego Biurrun eab6968f24 build: Skip compiling xvmc.h under the correct condition. 2012-03-09 20:56:15 +01:00
Gil Pedersen 49e35f497f configure: darwin: Change dylib install names to include major version.
This will cause linkers to link against the major lib names, instead of the
base names, allowing multiple major versions of the libraries to co-exist.

Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-03-09 20:56:14 +01:00
Michael Niedermayer ad53c7f9ec lavf: Add system to seperate relative timestamps from absolute ones.
With this we can always know if a timestamp is based on added durations
from an unknown origin or if it is based on a correct timestamp (and possibly
added durations)
This should fix some bugs where this distinction was mixed up.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-09 19:36:12 +01:00
Alex Converse 100c3fb2d1 mpegts: Always honor a registration descriptor if present and there is no other codec information. 2012-03-09 09:48:14 -08:00
Michael Niedermayer 744dd1d356 aacdec: Fix SCE parity check.
An unpaired SCE preceding a CPE only makes sense for front SCEs
preceding the first CPE.

Split from FFmpeg commit a8d67efa53

Signed-off-by: Alex Converse <alex.converse@gmail.com>
2012-03-09 09:47:57 -08:00
Michael Niedermayer d53fe096e4 aacdec: Fix out of array writes (stack).
Set the element to channel vector (e2c_vec) size to be the maximum
number of aac channel elements. This makes it slightly larger than it
needs to be because CCEs are never mapped to output channel locations.

Also add a check that all input tags (legal or not) will fit.

Split from FFmpeg commit a8d67efa53

Signed-off-by: Alex Converse <alex.converse@gmail.com>
2012-03-09 09:47:57 -08:00
Carl Eugen Hoyos d07de6d75d Cosmetics: Remove superfluous newline. 2012-03-09 14:34:10 +01:00
Martin Storsjö 6294d708b8 rtsp: Only set the ttl parameter if the server actually gave a value
Passing ttl=0 to the rtp/udp url contexts makes packets never
leave the host machine.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-03-09 15:04:32 +02:00
Martin Storsjö 2bfd92b330 udp: Set ttl for read-write streams, too, not only for write-only ones
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-03-09 15:04:05 +02:00
Martin Storsjö c700fdb00f udp: Only bind to the multicast address if in read-only mode
This fixes sending back RTCP RR packets if receiving RTP over
multicast.

If the multicast stream is sent on demand (set up and signalled
via RTSP), the sender might depend on getting RTCP RR packets
knowing that there are listeners, otherwise the stream can be
closed after a certain timeout.

This fixes receiving RTSP streams over multicast on unix, from
certain Axis cameras.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-03-09 15:03:46 +02:00
Martin Storsjö 1b89bcdd7f udp: Clarify the comment about binding the multicast address
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-03-09 15:03:11 +02:00
Martin Storsjö 113d3e106d udp: Reorder comments
When this code was added in 36b532815c, the new code was added
between the existing comment and the existing line of code, making
the old comment seem to refer to the new code. This makes it read
correctly.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-03-09 15:03:10 +02:00
Carl Eugen Hoyos 19e72e0a8d Fix 32bit sunrast decoding.
This patch visually breaks the sample from ticket #895,
but decodes it identically as Gimp, ImageMagick and xview.
2012-03-09 09:17:07 +01:00
Piotr Bandurski af55a9d80a iff: add support for IFF DEEP
Fixes trac #1045.

Thanks to Peter Ross for his help with this patch.

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-09 01:55:45 +01:00
Piotr Bandurski 520cf05338 svq1dec: use AV_LOG_ERROR for error message
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-09 01:55:15 +01:00
Michael Niedermayer a8cedbebf1 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  ttadec: unbreak playback of matroska files
  vorbisdec: avoid invalid memory access
  Fix uninitialized reads on malformed ogg files.
  huffyuv: add padding to classic (v1) huffman tables.
  png: convert to bytestream2 API.
  dca: include libavutil/mathematics.h for possibly missing M_SQRT1_2
  avs: fix infinite loop on end-of-stream.
  tiffdec: Prevent illegal memory access caused by recycled pointers.
  rtpenc: Fix the AVRational used for av_rescale_q_rnd
  wma: fix off-by-one in array bounds check.

Conflicts:
	libavcodec/huffyuv.c
	libavcodec/pngdec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-09 01:22:31 +01:00
Michael Niedermayer a4524930d9 qpeg: remove unused var from decode_frame()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-08 23:05:25 +01:00
Michael Niedermayer 4916a8fc44 prores_anatoliy: remove unused variable from prores_encode_frame()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-08 23:04:22 +01:00
Lou Logan f70b0ed7ca configure: enable libutvideo is gpl warning
This will warn the user when --enable-gpl is missing.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-08 22:35:09 +01:00
Michael Niedermayer 12c65efb41 oggparseogm: Fix order or arguments.
Bug introduced by libav in 1bb3990b56

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-08 21:31:45 +01:00
Michael Niedermayer 4093220029 mov: Discard invalid CTTS.
Fixes Ticket385

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-08 21:31:45 +01:00
Paul B Mahol ea1d64ab10 ttadec: unbreak playback of matroska files
Matroska demuxer needs to recreate tta header, so just display
crc error without aborting.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-03-08 11:56:45 -08:00
Aaron Colwell 12623a8026 vorbisdec: avoid invalid memory access
This fixes some invalid memory access caused later in the function
by res_chan[] not being set for all channels. This happens when a
channel doesn't appear a submap. This change simply returns a
decoder error when this situation is detected.

Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-03-08 11:52:33 -08:00
Dale Curtis ef0d779706 Fix uninitialized reads on malformed ogg files.
The ogg decoder wasn't padding the input buffer with the appropriate
FF_INPUT_BUFFER_PADDING_SIZE bytes. Which led to uninitialized reads in
various pieces of parsing code when they thought they had more data than
they actually did.

Signed-off-by: Dale Curtis <dalecurtis@chromium.org>
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-03-08 11:52:15 -08:00
Ronald S. Bultje 4ffe5e2aa5 huffyuv: add padding to classic (v1) huffman tables.
We slightly overread the input buffer, so we require
padding at the end of the buffer, as is documented in the
get_bits API. Without padding, we'll read uninitialized
data or beyond the end of the .rodata, which may crash.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-08 11:20:49 -08:00
Ronald S. Bultje 4c25269ced png: convert to bytestream2 API.
Protects against overreads in the input buffer.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-08 11:17:25 -08:00
Nicolas George 15d75dabee lavc/utils: fix three const warnings.
No change in assembly code produced on x86_64.
2012-03-08 17:13:58 +01:00
Nicolas George fe9818d004 ffplay: fix two const warnings.
No change in assembly code produced on x86_64.
2012-03-08 17:13:58 +01:00
Nicolas George b50767c31d vf_pad: keep a reference to the output buffer.
Once fixed, the end_frame function does exactly what
avfilter_default_end_frame does; therefore, end_frame
can be removed to let avfilter_default_end_frame work.

Fixes ticket #1038.
2012-03-08 17:00:12 +01:00
Stefano Sabatini 4ecfb91b85 doc/ffmpeg.texi: apply misc fixes to the -map_channel documentation 2012-03-08 13:30:01 +01:00
Kostya Shishkov 681e726865 dca: include libavutil/mathematics.h for possibly missing M_SQRT1_2 2012-03-08 07:16:01 +01:00
Michael Niedermayer bf807a5e87 Merge remote-tracking branch 'qatar/master'
* qatar/master: (29 commits)
  sbrdsp.asm: convert all instructions to float/SSE ones.
  dv: cosmetics.
  dv: check buffer size before reading profile.
  Revert "AAC SBR: group some writes."
  udp: Print an error message if bind fails
  cook: extend channel uncoupling tables so the full bit range is covered.
  roqvideo: cosmetics.
  roqvideo: convert to bytestream2 API.
  dca: don't use av_clip_uintp2().
  wmall: fix build with -DDEBUG enabled.
  smc: port to bytestream2 API.
  AAC SBR: group some writes.
  dsputil: remove shift parameter from scalarproduct_int16
  SBR DSP: unroll sum_square
  rv34: remove dead code in intra availability check
  rv34: clean a bit availability checks.
  v4l2: update documentation
  tgq: convert to bytestream2 API.
  parser: remove forward declaration of MpegEncContext
  dca: prevent accessing static arrays with invalid indexes.
  ...

Conflicts:
	doc/indevs.texi
	libavcodec/Makefile
	libavcodec/dca.c
	libavcodec/dvdata.c
	libavcodec/eatgq.c
	libavcodec/mmvideo.c
	libavcodec/roqvideodec.c
	libavcodec/smc.c
	libswscale/output.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-08 02:51:45 +01:00
Ronald S. Bultje 83f15a1228 avs: fix infinite loop on end-of-stream.
The codec would keep returning the last decoded frame if the stream
contains B-frames, since it wouldn't clear that frame from the list of
frames to be returned to the user.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-07 16:33:35 -08:00
Michael Niedermayer 4cda8aa1c5 avformat_new_stream: fix initial last_dts value
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-08 00:45:22 +01:00
Alex Converse fd0be63049 tiffdec: Prevent illegal memory access caused by recycled pointers.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-07 15:40:42 -08:00
Tomas Härdin f6daa9f4f6 mxfdec: Add intra_only flag to MXFTrack
This allows future assumptions to be made without affecting non-intra files.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-08 00:39:56 +01:00
Tomas Härdin 8c7721e709 mxfdec: Fix Avid AirSpeed files being misinterpreted as OP1a
The "ECs != 1 -> OP1a" assumption was wrong. Luckily, the file that triggered
that behavior had two ECs, not zero. Hence distinguishing between them is
simple in this case.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-08 00:39:56 +01:00
Tomas Härdin bf2290a80c mxfdec: Truncate packets that extend past the next edit unit
This fixes rare cases where OPAtom may be treated as OP1a, causing all essence
to be read into RAM.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-08 00:39:56 +01:00
Michael Niedermayer f64cfba93b libavutil: document av_force_cpu_flags(-1).
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-08 00:39:56 +01:00
Martin Storsjö 94f1b11a6f rtpenc: Fix the AVRational used for av_rescale_q_rnd
The current one has a zero denominator - this is what was
intended in 14aecc50fa.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-03-08 01:15:28 +02:00
Nicolas George 78306c51ef ffmpeg: show fps more accurately when it is small. 2012-03-08 00:11:59 +01:00
Nicolas George a8cdb7b95a swr: special case for empty channels in rematrix.
Speed += 10% overall for pan=stereo:FL=FL+FR from wav to null.
2012-03-07 23:56:00 +01:00
Ronald S. Bultje b4bccf3e4e wma: fix off-by-one in array bounds check.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-07 14:42:39 -08:00
Reimar Döffinger 6eda85e15b sbrdsp.asm: convert all instructions to float/SSE ones.
Since the values are floats, using the float operations
makes sense, improves performance on some CPUs and
makes the code SSE compatible instead of needing SSE2.

Based on suggestion by Jason.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-03-07 13:50:13 -08:00
Ronald S. Bultje 3416d0805e dv: cosmetics. 2012-03-07 13:49:41 -08:00
Ronald S. Bultje e97efecec8 dv: check buffer size before reading profile.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-07 13:48:41 -08:00
Ronald S. Bultje 6e2821160b Revert "AAC SBR: group some writes."
This reverts commit ba36f14e5d. It
broke decoding on x86-32 on some systems.
2012-03-07 12:16:36 -08:00
Martin Storsjö a887c87c23 udp: Print an error message if bind fails
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-03-07 21:52:19 +02:00
Ronald S. Bultje 37cc8600d0 cook: extend channel uncoupling tables so the full bit range is covered.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-07 11:40:46 -08:00
Ronald S. Bultje 84a020efc3 roqvideo: cosmetics. 2012-03-07 11:37:25 -08:00
Ronald S. Bultje cdf1577162 roqvideo: convert to bytestream2 API.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-07 11:37:20 -08:00
Ronald S. Bultje 93b53ffb1a dca: don't use av_clip_uintp2().
The argument is not a literal, thus causing the ARM v6 or later
builds to break.
2012-03-07 11:31:42 -08:00
Ronald S. Bultje 626964a4c4 wmall: fix build with -DDEBUG enabled. 2012-03-07 10:40:15 -08:00
Ronald S. Bultje 8febcb9fc1 smc: port to bytestream2 API.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-07 10:34:06 -08:00
Christophe Gisquet ba36f14e5d AAC SBR: group some writes.
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-03-07 10:29:52 -08:00
Christophe GISQUET 7e1ce6a6ac dsputil: remove shift parameter from scalarproduct_int16
There is only one caller, which does not need the shifting. Other use cases
are situations where different roundings would be needed.

The x86 and neon versions are modified accordingly.

Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-03-07 10:29:52 -08:00
Christophe GISQUET dabf8dd34a SBR DSP: unroll sum_square
The length is even, so some unrolling can be performed. Timings are for x86:
- 32bits: 102c -> 82c
- 64bits:  82c -> 69c

Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-03-07 10:29:52 -08:00
Christophe GISQUET 294c05ce8a rv34: remove dead code in intra availability check
This was an incorrect copy-and-paste to a code not needing the original code.
Spotted by Jason in a previous review but forgotten in the commit.

Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-03-07 10:29:52 -08:00
Christophe GISQUET 7104c23bd1 rv34: clean a bit availability checks.
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-03-07 10:29:52 -08:00
Luca Barbato af49e1766b v4l2: update documentation
Update the examples and remove stale information.
Video4linux support had been already removed.
2012-03-07 10:03:10 -08:00
Ronald S. Bultje 1255eed533 tgq: convert to bytestream2 API.
This protects against input buffer overreads.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-07 09:53:57 -08:00
Paul B Mahol aed9da20af parser: remove forward declaration of MpegEncContext
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-03-07 09:48:29 -08:00
Ronald S. Bultje e6ffd997cb dca: prevent accessing static arrays with invalid indexes.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-07 09:37:29 -08:00
Ronald S. Bultje cc5dd632ce raw: move buffer size check up.
This way, it protects against overreads for 4bpp/2bpp content also.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-07 09:36:32 -08:00
Ronald S. Bultje f1320dc3be lpcm: fix sample size calculation for 20bit LCPM.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-07 09:36:03 -08:00
Ronald S. Bultje 9487fb4dea swscale: clip unscaled output intermediates.
Fixes bug 240, as well as several integer overflows (visible as glitches)
in other scaling output routines, e.g. YUV422.
2012-03-07 09:35:46 -08:00
Ronald S. Bultje a93b572ae4 smacker: error out if palette copy-with-offset overruns palette size.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-07 09:35:03 -08:00
Ronald S. Bultje a55d5bdc6e algmm: convert to bytestream2 API.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-07 09:34:52 -08:00
Nicolas George 1ea3b657d6 vf_yadif: accept input with several frames available.
Fixes ticket #1040.
2012-03-07 17:36:04 +01:00
Nicolas George c088b7f389 ass_split: accept files with only \n and no \r.
The +1 is there to skip the ','.
With \r\n, the +1 skips the \r but that is ok.
With only \n, the +1 skips it and all hell breaks loose.
2012-03-07 16:41:30 +01:00
Nicolas George e5dd4ae728 assdec: avoid a possible NULL dereference. 2012-03-07 16:41:30 +01:00
Diego Biurrun 8ca6e523a6 wma: Refactor common code to fix standalone compilation of WMA lossless decoder. 2012-03-07 09:36:05 +01:00
Diego Biurrun 3c715383ea vc1: Move init code shared between decoder and parser to common code file.
This fixes standalone compilation of the VC-1 parser.
2012-03-07 09:36:04 +01:00
Diego Biurrun 1e9d55e45e x86: Remove duplicated AVG_3DNOW_OP / AVG_MMX2_OP macros from h264_qpel_mmx.c. 2012-03-07 09:36:04 +01:00
Paul B Mahol 1eabd71c2b ffv1: PIX_FMT_YUV444P10 support
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-07 05:11:40 +01:00
Paul B Mahol 65491fa3d5 ffv1: PIX_FMT_YUV444P9 & PIX_FMT_YUV422P9 support
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-07 05:11:40 +01:00
Michael Niedermayer eff2399f24 Revert "error_resilience: initialize s->block_index[]."
This reverts commit 6193ff6854.

This change is unneeded.
2012-03-07 05:11:25 +01:00
Michael Niedermayer 6df42f9874 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  SBR DSP: fix SSE code to not use SSE2 instructions.
  cpu: initialize mask to -1, so that by default, optimizations are used.
  error_resilience: initialize s->block_index[].
  svq3: protect against negative quantizers.
  Don't use ff_cropTbl[] for IDCT.
  swscale: make filterPos 32bit.
  FATE: add CPUFLAGS variable, mapping to -cpuflags avconv option.
  avconv: add -cpuflags option for setting supported cpuflags.
  cpu: add av_set_cpu_flags_mask().
  libx264: Allow overriding the sliced threads option
  avconv: fix counting encoded video size.

Conflicts:
	doc/APIchanges
	doc/fate.texi
	doc/ffmpeg.texi
	ffmpeg.c
	libavcodec/h264idct_template.c
	libavcodec/svq3.c
	libavutil/avutil.h
	libavutil/cpu.c
	libavutil/cpu.h
	libswscale/swscale.c
	tests/Makefile
	tests/fate-run.sh
	tests/regression-funcs.sh

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-07 03:22:49 +01:00
Michael Niedermayer 57986c501e lavc/utils: fix const correctness of AVClass cast
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-07 00:47:11 +01:00
Michael Niedermayer 11344792e8 lavc/utils: remove unused variable from avcodec_encode_video2.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-07 00:45:18 +01:00
Michael Niedermayer 7d75febe0f mjpegenc: Fix const correctness and avoid writes into AVFrame of amv_encode_picture()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-07 00:40:39 +01:00
Michael Niedermayer 5e6514e24f h264 Fix: "warning: assigning to 'uint8_t *' (aka 'unsigned char *') from 'const uint8_t *' (aka 'const unsigned char *') discards qualifiers"
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-07 00:33:55 +01:00
Michael Niedermayer 902bdf706f h264: fix warning about "uint8_t *p" and const
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-07 00:32:02 +01:00
Michael Niedermayer 3a5836038d cook: silence some signed overflow warnings.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-07 00:29:23 +01:00
Carl Eugen Hoyos a294a7a1b3 mov: Allow last chunk to have an arbitrary number of samples.
Fixes ticket #673.
(cherry picked from commit 8dcd2a41ec)

Signed-off-by: Alex Converse <alex.converse@gmail.com>
2012-03-06 15:25:34 -08:00
Michael Niedermayer 4707f1da8a swscale: remove duplicate PIX_FMT_GBRP entry from format_entries.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-07 00:22:20 +01:00
Michael Niedermayer 776c89f019 vsrx_mptestsrc: remove duplicate config_props init.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-07 00:20:23 +01:00
Reimar Döffinger b5161908e0 SBR DSP: fix SSE code to not use SSE2 instructions.
movq from SSE register _to_ memory is an SSE2 instruction.
Use the SSE movlps function instead that does the same thing.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-03-06 13:40:35 -08:00
Ronald S. Bultje a9c5b6f602 cpu: initialize mask to -1, so that by default, optimizations are used. 2012-03-06 12:53:02 -08:00
Michael Niedermayer a8d67efa53 aacdec: Fix out of array writes (stack).
This fixes an issue in the code to check the size that will
be written to match the actual code writing. In the long
term it would make sense to change this so the counting and
writing code are the same so they dont need to be kept in sync.

It also increases the array size, which was too small either way
and adds a redudnant saftey check.

This issue does not affect any FFmpeg release as it has been
introduced Jan 31 which is narrowly after our last release.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-06 21:51:11 +01:00
Bastien Bouclet b521f11349 Fix bink decoder for files with 24px width.
Fixes ticket #962.
2012-03-06 20:20:41 +01:00
Ronald S. Bultje 6193ff6854 error_resilience: initialize s->block_index[].
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-06 11:08:56 -08:00
Ronald S. Bultje 11b940a1a8 svq3: protect against negative quantizers.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-06 10:47:42 -08:00
Ronald S. Bultje c23acbaed4 Don't use ff_cropTbl[] for IDCT.
Results of IDCT can by far outreach the range of ff_cropTbl[], leading
to overreads and potentially crashes.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-06 10:47:42 -08:00
Ronald S. Bultje 2254b559cb swscale: make filterPos 32bit.
Fixes overflows for large image sizes.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-06 10:47:41 -08:00
Michael Niedermayer 0f13cc732b diracdec: Correct the bytestream end pointer.
This fixes some arith decoder overreads and a potential infinite loop.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-06 19:13:55 +01:00
Anton Khirnov 018f39ef49 FATE: add CPUFLAGS variable, mapping to -cpuflags avconv option. 2012-03-06 15:03:36 +01:00
Anton Khirnov 4138cd2907 avconv: add -cpuflags option for setting supported cpuflags.
Useful for testing.
2012-03-06 15:03:22 +01:00
Anton Khirnov 4d851f8dcf cpu: add av_set_cpu_flags_mask(). 2012-03-06 15:02:28 +01:00
Martin Storsjö 338978a7c1 libx264: Allow overriding the sliced threads option
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-03-06 13:40:22 +02:00
Anton Khirnov 39da3b223f avconv: fix counting encoded video size.
avcodec_encode_video2() return value is 0 on success, encoded frame size
is stored in the packet.
2012-03-06 10:06:21 +01:00
Michael Niedermayer f095391a14 Merge remote-tracking branch 'qatar/master'
* qatar/master: (31 commits)
  cdxl demux: do not create packets with uninitialized data at EOF.
  Replace computations of remaining bits with calls to get_bits_left().
  amrnb/amrwb: Remove get_bits usage.
  cosmetics: reindent
  avformat: do not require a pixel/sample format if there is no decoder
  avformat: do not fill-in audio packet duration in compute_pkt_fields()
  lavf: Use av_get_audio_frame_duration() in get_audio_frame_size()
  dca_parser: parse the sample rate and frame durations
  libspeexdec: do not set AVCodecContext.frame_size
  libopencore-amr: do not set AVCodecContext.frame_size
  alsdec: do not set AVCodecContext.frame_size
  siff: do not set AVCodecContext.frame_size
  amr demuxer: do not set AVCodecContext.frame_size.
  aiffdec: do not set AVCodecContext.frame_size
  mov: do not set AVCodecContext.frame_size
  ape: do not set AVCodecContext.frame_size.
  rdt: remove workaround for infinite loop with aac
  avformat: do not require frame_size in avformat_find_stream_info() for CELT
  avformat: do not require frame_size in avformat_find_stream_info() for MP1/2/3
  avformat: do not require frame_size in avformat_find_stream_info() for AAC
  ...

Conflicts:
	doc/APIchanges
	libavcodec/Makefile
	libavcodec/avcodec.h
	libavcodec/h264.c
	libavcodec/h264_ps.c
	libavcodec/utils.c
	libavcodec/version.h
	libavcodec/x86/dsputil_mmx.c
	libavformat/utils.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-06 06:03:32 +01:00
Reimar Döffinger 632eb1bbae cdxl demux: do not create packets with uninitialized data at EOF.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-03-05 16:27:31 -05:00
Derek Buitenhuis 01606d10e6 libutvideo: Add Ut Video encoder wrapper
All colorspaces are supported.

Renamed libutvideo.cpp to libutvideodec.cpp.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-05 22:25:49 +01:00
Derek Buitenhuis d6e4e69a49 libutvideo: Move structs and includes to header
This is so the forthcoming encoder wrapper can share
them.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-05 22:25:49 +01:00
Alex Converse 3574a85ce5 Replace computations of remaining bits with calls to get_bits_left(). 2012-03-05 11:22:11 -08:00
Alex Converse b70feb4053 amrnb/amrwb: Remove get_bits usage.
It is used to parse fixed sized fields out of a single octet. The code
is simpler without it.
2012-03-05 11:22:11 -08:00
Carl Eugen Hoyos 18794000c6 Remove AV_LOG_DEBUG from av_dlog() calls.
AV_LOG_DEBUG is forced by the av_dlog definition.
2012-03-05 20:04:18 +01:00
Justin Ruggles 94cf64b81f cosmetics: reindent 2012-03-05 13:08:19 -05:00
Justin Ruggles 8c1d6ac66a avformat: do not require a pixel/sample format if there is no decoder
Also, do not keep trying to find and open a decoder in try_decode_frame() if
we already tried and failed once.

Fixes always searching until max_analyze_duration in
avformat_find_stream_info() when demuxing codecs without a decoder.
2012-03-05 13:08:18 -05:00
Justin Ruggles a7fa75684d avformat: do not fill-in audio packet duration in compute_pkt_fields()
Use the estimated duration only to calculate missing timestamps if needed.
2012-03-05 13:08:18 -05:00
Justin Ruggles 6c65cf58fd lavf: Use av_get_audio_frame_duration() in get_audio_frame_size()
Also, do not give AVCodecContext.frame_size priority for muxing.

Updated 2 FATE references:
dxa-feeble - adds 1 audio frame that is still within 2 seconds as specified
             by -t 2 in the FATE test
wmv8-drm-nodec - durations are not needed. previously they were estimated
                 using the packet size and average bit rate.
2012-03-05 13:08:18 -05:00
Justin Ruggles 11ac796f7a dca_parser: parse the sample rate and frame durations 2012-03-05 13:08:17 -05:00
Justin Ruggles 85469f1c9e libspeexdec: do not set AVCodecContext.frame_size
It is not necessary
2012-03-05 13:08:17 -05:00
Justin Ruggles adbf61ff8a libopencore-amr: do not set AVCodecContext.frame_size
It is not necessary
2012-03-05 13:08:17 -05:00
Justin Ruggles 0efa4073bf alsdec: do not set AVCodecContext.frame_size
It is not necessary
2012-03-05 13:08:17 -05:00
Justin Ruggles f1e73100d9 siff: do not set AVCodecContext.frame_size
also, properly set AVCodecContext.bits_per_coded_sample, AVStreasm.start_time,
and AVPacket.duration.
2012-03-05 13:08:17 -05:00
Justin Ruggles ec2e767bf3 amr demuxer: do not set AVCodecContext.frame_size.
it is not necessary.
2012-03-05 13:08:17 -05:00
Justin Ruggles 8d1a20aa7c aiffdec: do not set AVCodecContext.frame_size
It is unnecessary. Also, for some codecs we're reading more than 1 frame per
packet. Instead we use a private context variable to calculate the bit rate,
stream duration, and packet durations.

Updated FATE seek test, which has slightly different timestamps due to a
more accurate bit rate calculation.
2012-03-05 13:08:17 -05:00
Justin Ruggles 237a855caf mov: do not set AVCodecContext.frame_size
It is not necessary.
2012-03-05 13:08:17 -05:00
Justin Ruggles 9727264220 ape: do not set AVCodecContext.frame_size.
prevents lavf from setting incorrect packet durations.
2012-03-05 13:08:17 -05:00
Justin Ruggles 2dd18d4435 rdt: remove workaround for infinite loop with aac
avformat_find_stream_info() no longer hangs while waiting for AAC frame_size
2012-03-05 13:08:16 -05:00
Justin Ruggles 9c365fe8ae avformat: do not require frame_size in avformat_find_stream_info() for CELT
In Ogg/CELT, frame_size is found in the same place as the sample_rate and
channels, so we do not need to force the frame_size to be parsed.
2012-03-05 13:08:16 -05:00
Justin Ruggles fbc8c59679 avformat: do not require frame_size in avformat_find_stream_info() for MP1/2/3
It was only needed to avoid a bad time base (and thus non-monotone timestamps)
for stream copy to avi.
2012-03-05 13:08:16 -05:00
Justin Ruggles 84b6ae0808 avformat: do not require frame_size in avformat_find_stream_info() for AAC
We already will get the needed info because of CODEC_CAP_CHANNEL_CONF
2012-03-05 13:08:16 -05:00
Justin Ruggles 620b88a302 swfenc: use av_get_audio_frame_duration() instead of AVCodecContext.frame_size
This way we can do stream copy without having the demuxer wait until
frame_size has been set.
2012-03-05 13:08:16 -05:00
Justin Ruggles 14aecc50fa rtpenc: use av_get_audio_frame_duration() for max_frames_per_packet
It is more reliable than AVCodecContext.frame_size for codecs with constant
packet duration.
2012-03-05 13:08:16 -05:00
Justin Ruggles c019070fda riffenc: use av_get_audio_frame_duration()
For encoding, frame_size is not a reliable indicator of packet duration.
Also, we don't want to have to force the demuxer to find frame_size for
stream copy to work.
2012-03-05 13:08:15 -05:00
Justin Ruggles 9524cf79df avcodec: add av_get_audio_frame_duration() function.
This is a utility function for the user to get the frame duration based on
the codec id, frame size in bytes, and various AVCodecContext parameters.
2012-03-05 13:08:15 -05:00
Justin Ruggles 6699d07480 avcodec: add av_get_exact_bits_per_sample() function
This only returns bits per sample when it is exactly correct. That is, the
codec contains only raw samples with no frame headers or padding. This applies
to basically all PCM codecs and a small subset of ADPCM codecs.
2012-03-05 13:08:15 -05:00
Aaron Colwell 2e061130f4 matroska : Add support for reading/writing creation_time metadata.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-05 19:02:48 +01:00
Michael Niedermayer c7048036db cook: fix return statements.
Found-by: cbsrobot
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-05 19:00:22 +01:00
Michael Niedermayer 0a7bf34042 wmaenc: change some asserts to av_assert0.
This ensures they are always checked

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-05 19:00:22 +01:00
Michael Niedermayer 0d92e5a682 wmaenc: add assert to check encode_superframe() return.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-05 19:00:22 +01:00
Michael Niedermayer c99bd29462 Revert "wmaenc: check final frame size against output packet size"
This condition cannot happen, if it can it is a bug that MUST be fixed.
And i very happily volunteer to fix it if someone reports a case to
me that fails.

This reverts commit 5d652e063b.
2012-03-05 19:00:22 +01:00
Anton Khirnov 27c7ca9c12 lavf: deobfuscate read_frame_internal().
Split off packet parsing into a separate function. Parse full packets at
once and store them in a queue, eliminating the need for tracking
parsing state in AVStream.

The horrible unreadable loop in read_frame_internal() now isn't weirdly
ordered and doesn't contain evil gotos, so it should be much easier to
understand.

compute_pkt_fields() now invents slightly different timestamps for two
raw vc1 tests, due to has_b_frames being set a bit later. They shouldn't
be more wrong (or right) than previous ones.
2012-03-05 18:47:05 +01:00
Anton Khirnov dcee811505 lavf: make read_from_packet_buffer() more flexible.
Make packet buffer a parameter, don't hardcode it to be
AVFormatContext.packet_buffer.

Also move the function higher in the file, since it will be called from
read_frame_internal().
2012-03-05 18:44:45 +01:00
Anton Khirnov 52b0943f10 lavf: factorize freeing a packet buffer. 2012-03-05 18:44:30 +01:00
Fabian Greffrath c9dbac36ad Fix format string vulnerability detected by -Wformat-security.
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-03-05 17:03:00 +01:00
Diego Biurrun 0a41f47dc1 dv: Do not redundantly initialize struct members to zero. 2012-03-05 17:02:59 +01:00
Nicolas George 456d65a5c6 alsa: fix timefilter usage.
The period argument is supposed to be the number of samples since
the last update.
2012-03-05 16:57:28 +01:00
Nicolas George 9bbe6ed1e0 timefilter: allow variable periods.
Initially found and designed by Michael Niedermayer.
2012-03-05 16:57:28 +01:00
Nicolas George 3073aadf2d timefilter: internally compute feedback factors.
The feedback factors for the timefilter are directly computed from
the expected period. This commit changes the init function to accept
the period itself and compute the feedback factors internally,
rather than having all client code duplicate the formulas.

This commit also actually fixes the formulas: the current code had
sqrt(2*o), but the correct formula, both theoretically and according
to experimental testing, is sqrt(2)*o.

Furthermore, it adds an exponential to feedback factors larger than
1 with large periods.
2012-03-05 16:57:27 +01:00
Mans Rullgard 356ee8d7de x86: clean up ff_dsputil_init_mmx()
This splits ff_dsputil_init_mmx() into multiple functions, one for
each MMX/SSE level, somewhat simplifying the nested conditions.

Signed-off-by: Mans Rullgard <mans@mansr.com>
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-03-05 14:40:03 +01:00
Michael Niedermayer 1007a805a4 smc: Fix overread.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-05 03:43:15 +01:00
Michael Niedermayer 263bb6edcf bit_depth_template: use av_clip_uint8 over crop_tab.
This fixes some global out of array reads and wrong cliping.
No speed difference meassurable under clang on i5
also all important code paths on all important platforms should
use SIMD.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-05 03:05:21 +01:00
Michael Niedermayer e75518e18d indeo3: move MV check up.
This adds checking for modes >= 10.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-05 02:15:35 +01:00
Michael Niedermayer ccb76ad91f cook: check decouple values.
This fixes a out of global array read in the cplscale* tables.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-05 01:37:56 +01:00
Michael Niedermayer 2af8f2cea6 Merge remote-tracking branch 'qatar/master'
* qatar/master: (27 commits)
  cmdutils: use new avcodec_is_decoder/encoder() functions.
  lavc: make codec_is_decoder/encoder() public.
  lavc: deprecate AVCodecContext.sub_id.
  libcdio: add a forgotten AVClass to the private context.
  swscale: remove "cpu flags" from -sws_flags description.
  proresenc: give user a possibility to alter some encoding parameters
  vorbisenc: add output buffer overwrite protection
  libopencore-amrnbenc: fix end-of-stream handling
  ra144enc: fix end-of-stream handling
  nellymoserenc: zero any leftover packet bytes
  nellymoserenc: use proper MDCT overlap delay
  qpeg: Use bytestream2 functions to prevent buffer overreads.
  swscale: make %rep unconditional.
  vp8: convert simple loopfilter x86 assembly to use named arguments.
  vp8: convert idct x86 assembly to use named arguments.
  vp8: convert mc x86 assembly to use named arguments.
  vp8: convert loopfilter x86 assembly to use cpuflags().
  vp8: convert idct/mc x86 assembly to use cpuflags().
  swscale: remove now unnecessary hack.
  x86inc: don't "bake" stack_offset in named arguments.
  ...

Conflicts:
	cmdutils.c
	doc/APIchanges
	libavcodec/mpeg12.c
	libavcodec/options.c
	libavcodec/qpeg.c
	libavcodec/utils.c
	libavcodec/version.h
	libavdevice/libcdio.c
	tests/lavf-regression.sh

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-05 00:15:55 +01:00
Michael Niedermayer 33a183df46 indeo3: Fix overreading requant_tab.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-04 23:13:26 +01:00
Michael Niedermayer 56ffa3fefb indeo3: Check motion vectors.
Fixes overread of reference frame.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-04 23:06:56 +01:00
Anton Khirnov 3faa141d15 cmdutils: use new avcodec_is_decoder/encoder() functions.
Fixes listing encoders.
2012-03-04 21:09:35 +01:00
Anton Khirnov 44fe77b350 lavc: make codec_is_decoder/encoder() public. 2012-03-04 21:08:52 +01:00
Anton Khirnov 02beb9826b lavc: deprecate AVCodecContext.sub_id.
In most places where it's used, it's as a pointless write-only field.

Only rv10 decoder actually reads from it, but it stores some internal
version info in it. There is no reason for it to be in a public field.
2012-03-04 21:02:45 +01:00
Anton Khirnov 87392b1fd5 libcdio: add a forgotten AVClass to the private context. 2012-03-04 21:01:41 +01:00
Nicolas George 14aa1ba802 libmpcodecs/vf_pp: import memleak fix from MPlayer. 2012-03-04 19:36:24 +01:00
Nicolas George 7f06ca6e2b vf_mp: uninit filter chain.
Most of the code was taken from MPlayer's vf_uninit_filter_chain.
2012-03-04 19:36:24 +01:00
Michael Niedermayer d8d1fbbd7f dsicinav: fix 10l bug introduced in 999d38f3a9
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-04 18:06:23 +01:00
Michael Niedermayer 52807022ab pcm-mpeg: fix 10l condition flip
Original issue Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
10l bug Found-by: nevcairiel
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-04 16:40:08 +01:00
Ronald S. Bultje 1c97b5c4a3 swscale: remove "cpu flags" from -sws_flags description. 2012-03-04 06:52:06 -08:00
Michael Niedermayer 4a9f466b99 Fix alpha overflow when converting from RGBA64 to RGBA.
Fixes converting the sample from ticket #503 to 32bit RGB.
2012-03-04 13:42:16 +01:00
Stefano Sabatini 409a3bda07 lavfi: add blackdetect filter
Address trac ticket #901.
2012-03-04 12:31:06 +01:00
Michael Niedermayer 37fca5daa0 mmvideo: fix overreads of the input buffer.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-04 08:14:07 +01:00
Ronald S. Bultje 999d38f3a9 dsicinvideo: validate buffer offset before copying pixels.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable-LOOeJiBropLYtjvyW6yDsg@public.gmane.org

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-04 07:45:34 +01:00
Kostya Shishkov 4db4b53dc8 proresenc: give user a possibility to alter some encoding parameters
This allows user to select quantisation matrix from different profile,
stamp frames with custom vendor string and change target bitrate.
2012-03-04 07:35:00 +01:00
Justin Ruggles 1ba08c94f5 vorbisenc: add output buffer overwrite protection 2012-03-04 01:16:54 -05:00
Justin Ruggles fe78470a8b libopencore-amrnbenc: fix end-of-stream handling
Use CODEC_CAP_DELAY and CODEC_CAP_SMALL_LAST_FRAME to properly pad and flush
the encoder at the end of encoding. This is needed in order to have all input
samples decoded.
2012-03-04 01:14:53 -05:00
Justin Ruggles b0350c1c30 ra144enc: fix end-of-stream handling
Use CODEC_CAP_DELAY and CODEC_CAP_SMALL_LAST_FRAME to properly pad and flush
the encoder at the end of encoding. This is needed in order to have all input
samples decoded.
2012-03-04 01:14:53 -05:00
Justin Ruggles 29e2c85310 nellymoserenc: zero any leftover packet bytes
fixes writing of uninitialized packet data
2012-03-04 01:14:52 -05:00
Justin Ruggles 6c7a01621c nellymoserenc: use proper MDCT overlap delay 2012-03-04 01:14:52 -05:00
Michael Niedermayer 2b693546ad truemotion2: check motion vectors for validity
Fixes out of array read

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-04 07:09:35 +01:00
Michael Niedermayer 39a3a53b66 pngdec: validate length.
Fixes out of array reading.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-04 06:25:06 +01:00
Aneesh Dogra 3e9cd8b4b0 qpeg: Use bytestream2 functions to prevent buffer overreads.
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-03-03 20:40:00 -08:00
Ronald S. Bultje dccb2cd3f9 swscale: make %rep unconditional.
Fixes pre-processing with latest versions of nasm.
2012-03-03 20:40:00 -08:00
Ronald S. Bultje b4188f0d46 vp8: convert simple loopfilter x86 assembly to use named arguments. 2012-03-03 20:40:00 -08:00
Ronald S. Bultje 8476ca3b4e vp8: convert idct x86 assembly to use named arguments. 2012-03-03 20:40:00 -08:00
Ronald S. Bultje 21ffc78fd7 vp8: convert mc x86 assembly to use named arguments. 2012-03-03 20:40:00 -08:00
Ronald S. Bultje 28170f1a39 vp8: convert loopfilter x86 assembly to use cpuflags(). 2012-03-03 20:40:00 -08:00
Ronald S. Bultje e25be47154 vp8: convert idct/mc x86 assembly to use cpuflags(). 2012-03-03 20:39:59 -08:00
Ronald S. Bultje 8249a23fc1 swscale: remove now unnecessary hack. 2012-03-03 20:39:59 -08:00
Loren Merritt 0f53d0cf4b x86inc: don't "bake" stack_offset in named arguments.
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-03-03 20:39:59 -08:00
Michael Niedermayer 337fa0dbe7 lavf: Do not compute the packet duration based on the bitrate if the frame_size can be determined.
This fixes issues when the bitrate is variable or inaccurate but the
frame size has not been determined yet.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-04 04:27:01 +01:00
Michael Niedermayer b8afbbca9c lavf: factor out determinable_frame_size()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-04 04:26:12 +01:00
Michael Niedermayer 15c6be8c7d Merge remote-tracking branch 'qatar/master'
* qatar/master:
  tiertexseq: set correct block_align for audio
  tiertexseq: set audio stream start time to 0
  voc/avs: Do not change the sample rate mid-stream.
  segafilm: use the sample rate as the time base for audio streams
  ea: fix audio pts
  psx-str: fix audio pts
  vqf: set packet duration
  tta demuxer: set packet duration
  mpegaudio_parser: do not ignore information from the first parsed frame
  mpegaudio_parser: be less picky about the start position
  thp: set audio packet durations
  avcodec: add a Vorbis parser to get packet duration
  vorbisdec: read the previous window flag for long windows
  lavc: free the output packet when encoding failed or produced no output.
  lavc: preserve avpkt->destruct in ff_alloc_packet().
  lavc: clarify the meaning of AVCodecContext.frame_number.
  mpegts: Pad the packet buffer in handle_packet().
  mpegts: Do not call read_sl_header() when no bytes remain in the buffer.

Conflicts:
	libavcodec/mpegaudio_parser.c
	libavcodec/version.h
	libavformat/mpegts.c
	tests/ref/fate/pva-demux

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-04 04:26:04 +01:00
Derek Buitenhuis 6aa6e3e814 fate: Add sunrast regression test
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-03-03 20:57:03 -05:00
Carl Eugen Hoyos f972193a15 Support RGBA64 as input colour space.
Mostly fixes ticket #503,
opaque still overflows for RGBA64 -> RGBA conversion.
2012-03-04 00:43:18 +01:00
Justin Ruggles 51ddf35c90 wmaenc: fix m/s stereo encoding for the first frame
We need to set ms_stereo in encode_init() in order to avoid incorrectly
encoding the first frame as non-m/s while flagging it as m/s. Fixes an
uncomfortable pop in the left channel at the start of playback.

CC:libav-stable@libav.org
2012-03-03 18:20:10 -05:00
Rick van der Zwet d33a091cb3 ffm options should also set discard automatically.
commit 13f6917ca9 handles discards automatically,
but the ffm discard options are not fully parsed. Causing the input streams not
to be used, so no stream towards the ffserver after the initial probing.

Signed-off-by: Rick van der Zwet <info@rickvanderzwet.nl>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-04 00:20:10 +01:00
Justin Ruggles 8ed7488ea3 wmaenc: return s->block_align instead of recalculating it 2012-03-03 18:20:10 -05:00
Justin Ruggles 5d652e063b wmaenc: check final frame size against output packet size
Currently we have an assert() that prevents the frame from being too large,
but it is more user-friendly to give an error message instead of aborting on
assert(). This condition is quite unlikely due to the minimum bit rate check
in encode_init(), but it is still worth having.
2012-03-03 18:20:10 -05:00
Justin Ruggles dfc4fdedf8 wmaenc: require a large enough output buffer to prevent overwrites
The maximum theoretical frame size is around 17000 bytes. Although in
practice it will generally be much smaller, we require a larger buffer
just to be safe.

CC: libav-stable@libav.org
2012-03-03 18:20:10 -05:00
Justin Ruggles 1ec075cfec wmaenc: limit allowed sample rate to 48kHz
ff_wma_init() allows up to 50kHz, but this generates an exponent band
size table that requires 65 bands. The code assumes 25 bands in many
places, and using sample rates higher than 48kHz will lead to buffer
overwrites.

CC:libav-stable@libav.org
2012-03-03 18:20:10 -05:00
Justin Ruggles c2b8dea182 wmaenc: limit block_align to MAX_CODED_SUPERFRAME_SIZE
This is near the theoretical limit for wma frame size and is the most that
our decoder can handle. Allowing higher bit rates will just end up padding
each frame with empty bytes.

Fixes invalid writes for avconv when using very high bit rates.

CC:libav-stable@libav.org
2012-03-03 18:20:09 -05:00
Michael Niedermayer 8f1bb3d598 wc4: fix out of chroma LUT reads
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-04 00:13:52 +01:00
Michael Niedermayer cd0cfdc0a7 pcm-mpeg: Check for valid bps.
The code only supports 16 and 24 bps currently, 20bps causes
out of array reads.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-03 23:55:16 +01:00
Justin Ruggles b7beabab4b tiertexseq: set correct block_align for audio 2012-03-03 17:03:27 -05:00
Justin Ruggles f9cf91d822 tiertexseq: set audio stream start time to 0
Update FATE test to reflect delayed video due to the file having audio-only
frames prior to the first frame with video.
2012-03-03 17:03:27 -05:00
Justin Ruggles 0883109b27 voc/avs: Do not change the sample rate mid-stream.
Also, set the time base based on the sample rate.
lavf-voc seek test updated to reflect slightly different seek points.
2012-03-03 17:03:27 -05:00
Justin Ruggles 4da374f8a9 segafilm: use the sample rate as the time base for audio streams 2012-03-03 17:03:27 -05:00
Justin Ruggles ea289186f0 ea: fix audio pts
The time base is 1 / sample_rate, not 90000.
Several more codecs encode the sample count in the first 4 bytes of the
chunk, so we set the durations accordingly. Also, we can set start_time and
packet duration instead of keeping track of the sample count in the demuxer.
2012-03-03 17:03:27 -05:00
Justin Ruggles 01be6fa926 psx-str: fix audio pts
Each packet has 18 sectors with 224/channels samples in each sector.
2012-03-03 17:03:27 -05:00
Justin Ruggles d0ab585074 vqf: set packet duration
Fixes timestamp calculation.
The FATE reference is updated because timestamp calculations are now more
accurate. Previous timestamps were based on average bit rate.
2012-03-03 17:03:26 -05:00
Justin Ruggles 101c369b7c tta demuxer: set packet duration 2012-03-03 17:03:26 -05:00
Justin Ruggles 0b8b7db01b mpegaudio_parser: do not ignore information from the first parsed frame
Update some demuxing and seeking fate tests.
2012-03-03 17:03:26 -05:00
Michael Niedermayer 6776a8f189 mpegaudio_parser: be less picky about the start position
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-03-03 17:03:26 -05:00
Justin Ruggles 5a9b952201 thp: set audio packet durations 2012-03-03 16:58:45 -05:00
Justin Ruggles 5602a464c9 avcodec: add a Vorbis parser to get packet duration
This also allows for removing some of the Vorbis-related hacks.
2012-03-03 16:43:11 -05:00
Justin Ruggles 737ca4482b vorbisdec: read the previous window flag for long windows
When reading sequentially, we are using the actual flag from the previous
frame, but when seeking we do not know what the previous window flag was, so
we need to read it from the bitstream.
2012-03-03 16:43:11 -05:00
Michael Niedermayer f83687bc78 mpegts: fix stack array overread in read_sl_header()
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-03 21:03:11 +01:00
Michael Niedermayer 4a310a19de mpegts: prevent get_bits64() from reading nonsense at the end.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-03 21:02:17 +01:00
Michael Niedermayer d629f3edaa cook: check that category is smaller than 8
This fixes some out of global array accesses of dither_tab.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Reviewed-by: Benjamin Larsson <benjamin@southpole.se>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-03 18:35:46 +01:00
Michael Niedermayer e732d0f608 mpeg-ts: fix handling of size=0 SL headers.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-03 18:35:46 +01:00
Michael Niedermayer c6810d98a5 MAINTAINERS: add 0.10 to the releases, seems ive forgotten it.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-03 18:35:46 +01:00
Nicolas George b2792a436b lavc: unify similar code merged from both branches. 2012-03-03 15:56:45 +01:00
Nicolas George 07fb7682d1 vsrc_testsrc: free option values. 2012-03-03 13:17:39 +01:00
Nicolas George eb6b6d7f8a vsrc_life: free option values. 2012-03-03 12:33:54 +01:00
Nicolas George f8210f892e vf_fade: free type when overwriting it. 2012-03-03 12:33:54 +01:00
Anton Khirnov 7fb6c9225c lavc: free the output packet when encoding failed or produced no output. 2012-03-03 06:31:41 +01:00
Anton Khirnov e42e9b0e4d lavc: preserve avpkt->destruct in ff_alloc_packet().
Also, don't bother with saving/restoring data, av_init_packet doesn't
touch it.
2012-03-03 06:31:41 +01:00
Anton Khirnov c179c9e19d lavc: clarify the meaning of AVCodecContext.frame_number. 2012-03-03 06:31:41 +01:00
Michael Niedermayer c266eb1928 arm: Fix 10l typo
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-03 04:35:15 +01:00
Petri Hintukainen 23a5bf9db0 bluray protocol
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-03 04:30:49 +01:00
Michael Niedermayer 70b5583baa kvmc: Fix out of reference frame reads.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-03 04:14:37 +01:00
Michael Niedermayer 81d4b3af81 qpeg: fix overreads.
qpeg should probably be changed to use the checked bytestream reader.
But for now this fixes it and is significantly less work.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-03 03:50:05 +01:00
Michael Niedermayer 4299dfa5de qpeg: Fix out of array writes.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-03 03:37:52 +01:00
Fabian Greffrath aaa1173de7 srtdec: fix a format string vulnerability.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-03 02:35:27 +01:00
Dale Curtis e42b5362f1 Remove duplicate initializers for VDA_VLD and GBR24P.
Noticed by the Chromium Mac clang build, http://crbug.com/116599

Signed-off-by: Dale Curtis <dalecurtis@chromium.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-03 00:46:40 +01:00
Alex Converse 1aa708988a mpegts: Pad the packet buffer in handle_packet().
This allows it to be used with get_bits without the thread of overreads.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-02 15:44:42 -08:00
Alex Converse 4df369692e mpegts: Do not call read_sl_header() when no bytes remain in the buffer.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-02 15:44:42 -08:00
Michael Niedermayer 268098d8b2 Merge remote-tracking branch 'qatar/master'
* qatar/master: (29 commits)
  amrwb: remove duplicate arguments from extrapolate_isf().
  amrwb: error out early if mode is invalid.
  h264: change underread for 10bit QPEL to overread.
  matroska: check buffer size for RM-style byte reordering.
  vp8: disable mmx functions with sse/sse2 counterparts on x86-64.
  vp8: change int stride to ptrdiff_t stride.
  wma: fix invalid buffer size assumptions causing random overreads.
  Windows Media Audio Lossless decoder
  rv10/20: Fix slice overflow with checked bitstream reader.
  h263dec: Disallow width/height changing with frame threads.
  rv10/20: Fix a buffer overread caused by losing track of the remaining buffer size.
  rmdec: Honor .RMF tag size rather than assuming 18.
  g722: Fix the QMF scaling
  r3d: don't set codec timebase.
  electronicarts: set timebase for tgv video.
  electronicarts: parse the framerate for cmv video.
  ogg: don't set codec timebase
  electronicarts: don't set codec timebase
  avs: don't set codec timebase
  wavpack: Fix an integer overflow
  ...

Conflicts:
	libavcodec/arm/vp8dsp_init_arm.c
	libavcodec/fraps.c
	libavcodec/h264.c
	libavcodec/mpeg4videodec.c
	libavcodec/mpegvideo.c
	libavcodec/msmpeg4.c
	libavcodec/pnmdec.c
	libavcodec/qpeg.c
	libavcodec/rawenc.c
	libavcodec/ulti.c
	libavcodec/vcr1.c
	libavcodec/version.h
	libavcodec/wmalosslessdec.c
	libavformat/electronicarts.c
	libswscale/ppc/yuv2rgb_altivec.c
	tests/ref/acodec/g722
	tests/ref/fate/ea-cmv

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-03 00:23:10 +01:00
Michael Niedermayer 689f65126b simple_idct: idct_4col_put: Fix out of array reads.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-02 22:09:44 +01:00
Michael Niedermayer 422e3a74b9 rawdec: fix input overread.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-02 22:04:00 +01:00
Ronald S. Bultje 9d87374ec0 amrwb: remove duplicate arguments from extrapolate_isf().
Prevents warnings because the dst and src overlap (are the same) in the
memcpy() inside the function.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-02 12:50:00 -08:00
Michael Niedermayer e7b43e8e84 truemotion1: Check input buffer size against header size.
Fixes overread.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-02 21:36:42 +01:00
Michael Niedermayer a3f5ee297a mjpeg: Check for interlaced progressive frames
Fixes null pointer dereference.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-02 21:35:58 +01:00
Michael Niedermayer 0af48e29f5 snow: check reference frame indices.
Fixes NULL ptr dereference

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-02 20:53:00 +01:00
Ronald S. Bultje 154b8bb800 amrwb: error out early if mode is invalid.
Prevents using the invalid mode as an index in a static array, which
would generate invalid reads.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-02 10:34:50 -08:00
Ronald S. Bultje 291c9b6285 h264: change underread for 10bit QPEL to overread.
This prevents us from reading before the start of the buffer, and thus
prevents crashes resulting from this behaviour. Fixes bug 237.
2012-03-02 10:33:05 -08:00
Ronald S. Bultje 9c239f6026 matroska: check buffer size for RM-style byte reordering.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-02 10:32:22 -08:00
Ronald S. Bultje 45549339bc vp8: disable mmx functions with sse/sse2 counterparts on x86-64.
x86-64 is guaranteed to have at least SSE2, therefore the MMX/MMX2
functions will never be used in practice.
2012-03-02 10:32:05 -08:00
Ronald S. Bultje bd66f073fe vp8: change int stride to ptrdiff_t stride.
On 64bit platforms with 32bit int, this means we won't have to sign-
extend the integer anymore.
2012-03-02 10:31:50 -08:00
Ronald S. Bultje 349b7977e4 wma: fix invalid buffer size assumptions causing random overreads.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-02 10:31:28 -08:00
Mashiat Sarker Shakkhar 9d25f1f619 Windows Media Audio Lossless decoder
Decodes 16-bit WMA Lossless encoded files. 24-bit is not supported yet.

Bitstream parser written by Andreas Öman with contributions from
Baptiste Coudurier and Ulion.

Includes a number of bug-fixes from Benjamin Larsson, Michael Niedermayer and
Konstantin Shishkov, shine and polish by Diego Biurrun.

Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-03-02 19:10:29 +01:00
Michael Niedermayer 8fdd93eaad huffyuv: pad classic huffman tables so as to avoid bitreader overread.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-02 18:49:39 +01:00
Michael Niedermayer 64c58f1436 vc1: mquant is not allowed to be 0
Fixes out of bounds read.
Checked against SMPTE 421M-2006

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-02 18:40:42 +01:00
Alex Converse 9243ec4a50 rv10/20: Fix slice overflow with checked bitstream reader. 2012-03-02 09:31:32 -08:00
Michael Niedermayer 71db86d53b h263dec: Disallow width/height changing with frame threads.
Fixes CVE-2011-3937

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-02 09:31:32 -08:00
Alex Converse 2f6528537f rv10/20: Fix a buffer overread caused by losing track of the remaining buffer size.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-02 09:31:32 -08:00
Alex Converse 1697c29d75 rmdec: Honor .RMF tag size rather than assuming 18. 2012-03-02 09:31:32 -08:00
Martin Storsjö b087ce2bee g722: Fix the QMF scaling
This fixes clipping if the encoder input used the full 16 bit
input range (samples with a magnitude below 16383 worked fine).
The filtered subband samples should be 15 bit maximum, while
the code earlier produced them scaled to 16 bit.

This makes the decoder output have double the magnitude
compared to before.

The spec reference samples doesn't test the QMF at all, which
was why this part slipped past initially.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-03-02 18:58:19 +02:00
Anton Khirnov 56bf24ad78 r3d: don't set codec timebase.
It's not supposed to be set by demuxers.

Set avg_frame_rate and r_frame_rate instead.
2012-03-02 17:21:45 +01:00
Michael Niedermayer e93d911e48 h263: fix zygo debug printing overreading.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-02 16:53:37 +01:00
Michael Niedermayer d964db5742 wmadec: fix off by 1 error on the pow_tab index check.
Fixes global out of array read.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-02 16:44:49 +01:00
Michael Niedermayer a5bf9b351c timefilter: better selftest code.
Add support for divergence detection and variable period.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-02 16:00:21 +01:00
Michael Niedermayer ec3cd74f2d h261: check mtype.
Fixes out of array read

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-02 15:58:14 +01:00
Anton Khirnov efec3bc65a electronicarts: set timebase for tgv video.
The container has no timestamps and the framerate isn't stored in the
data either.
The decoder sets codec timebase to experimentally found value 1/15. Do
the same for the demuxer too, it should at least be better than the
default 1/90000.
2012-03-02 11:11:38 +01:00
Anton Khirnov e39400c3a8 electronicarts: parse the framerate for cmv video. 2012-03-02 11:11:38 +01:00
Anton Khirnov 1bb3990b56 ogg: don't set codec timebase
Demuxers are not supposed to set it.
2012-03-02 11:11:38 +01:00
Anton Khirnov 1d3144c318 electronicarts: don't set codec timebase
Demuxers are not supposed to set it.
Set stream timebase and framerates instead (this is a cfr container with
no timestamps).
2012-03-02 11:11:38 +01:00
Anton Khirnov 10a6e0c346 avs: don't set codec timebase
Demuxers are not supposed to set it.
Set r_frame_rate and avg_frame_rate instead.
2012-03-02 11:11:38 +01:00
Derek Buitenhuis f604eab30a wavpack: Fix an integer overflow
Integer Overflow Checker detected an integer
overflow while FATE was running.

See: http://fate.libav.org/x86_64-linux-ioc/

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Signed-off-by: Kostya Shishkov <kostya.shishkov@gmail.com>
2012-03-02 08:26:36 +01:00
Michael Niedermayer 0b90db01b5 lavf: fix update_initial_durations() so it handles missing durations with the initial timestamp being known.
This fixes duplicate timestamps on mp2 in ts with non seekable input.
It also fixed the fate pva demux timestamps.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-02 06:38:03 +01:00
Derek Buitenhuis 83c418e68e wavpack: Fix an integer overflow
Integer Overflow Checker detected an integer
overflow while FATE was running.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-02 02:40:24 +01:00
Derek Buitenhuis d91912effa fate: Add sunrast regression test
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-02 02:35:08 +01:00
Michael Niedermayer 7a7b1f5c4d roqvideodec: improve end of input buffer check
This fixes a out of array read.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-02 02:32:14 +01:00
Diego Biurrun 36697be187 swscale: K&R formatting cosmetics for PowerPC code (part II/II) 2012-03-02 02:16:40 +01:00
Ingo Brückl c05e2be9a2 mp3dec: Fix reading file size and frames in VBRI headers
The fields "Number of Bytes" and "Number of Frames" are mixed up. "Bytes"
come first, "Frames" behind.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Alex Converse <alex.converse@gmail.com>
2012-03-01 15:32:28 -08:00
Michael Niedermayer 1eb7f39c7b Merge remote-tracking branch 'qatar/master'
* qatar/master:
  h264: error out on invalid bitdepth.
  aacsbr: use a swap index for the Y matrix rather than copy buffers.
  huffyuv: do not abort on unknown pix_fmt; instead, return an error.
  lcl: return negative error codes on decode_init() errors.
  rtpenc: Use MB info side data for splitting H263 packets for RFC 2190
  h263enc: Add an option for outputting info about MBs as side data
  avpacket: Add a function for shrinking already allocated side data
  nellymoserdec: Saner and faster IMDCT windowing

Conflicts:
	doc/APIchanges
	libavcodec/avpacket.c
	libavcodec/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-01 23:11:31 +01:00
Diego Biurrun 1c4717be4f mjpegdec: use correct variable in av_log invocation
libavcodec/mjpegdec.c:1463: warning: format ‘%x’ expects type ‘unsigned int’, but argument 5 has type ‘const uint8_t *’
2012-03-01 23:11:15 +01:00
Diego Biurrun 75c553eb26 rmdec: adjust printf format string specifier to fix warning
libavformat/rmdec.c:383: warning: format ‘%d’ expects type ‘int’, but argument 7 has type ‘int64_t’
2012-03-01 23:11:14 +01:00
Diego Biurrun 324deaa268 Replace AVFrame pointer type punning by proper struct member assignments. 2012-03-01 23:11:13 +01:00
Diego Biurrun 47c0ac96aa Replace AVFrame pointer casts by proper struct member accesses. 2012-03-01 23:11:11 +01:00
Diego Biurrun 562b6c744a Remove unnecessary AVFrame pointer casts. 2012-03-01 23:11:10 +01:00
Diego Biurrun 2f4b476e04 msmpeg4: Split encoding backend code off from general backend code. 2012-03-01 23:11:09 +01:00
Anton Khirnov eb727387fd lavc: shrink encoded video packet size after encoding.
Based on a patch by Nicolas George <nicolas.george <at> normalesup.org>
2012-03-01 22:21:35 +01:00
Michael Niedermayer 75d11b55d7 vc1: avoid reading beyond the last line in vc1_draw_sprites()
Fixes overread

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-01 22:20:07 +01:00
Ronald S. Bultje 0ce4fe482c h264: error out on invalid bitdepth.
Fixes invalid reads while initializing the dequant tables, which uses
the bit depth to determine the QP table size.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-01 12:15:51 -08:00
Christophe Gisquet cc412b7104 aacsbr: use a swap index for the Y matrix rather than copy buffers.
Signed-off-by: Alex Converse <alex.converse@gmail.com>
2012-03-01 11:03:00 -08:00
Michael Niedermayer dc945b1fa8 eatgq: Pass error code from tgq_decode_mb() and let the caller fail.
This fixes a over read.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-01 19:57:55 +01:00
Michael Niedermayer 32f0c65828 vc1: fix out of array reads in vc1_inv_trans_4x4_c()
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-01 19:35:12 +01:00
Michael Niedermayer 80c702efeb vc1: fix out of array reads in vc1_inv_trans_4x8_c()
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-01 19:35:12 +01:00
Michael Niedermayer af796ba4b8 vc1: fix out of array reads in vc1_inv_trans_8x4_c()
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-01 19:35:12 +01:00
Ronald S. Bultje 63c9de6469 huffyuv: do not abort on unknown pix_fmt; instead, return an error.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-01 10:23:36 -08:00
Michael Niedermayer b2a7c01733 mpc: Fix mpc_CC table and use.
This is based on the reference implementation and fixes
a global out of array read.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-01 16:16:13 +01:00
Michael Niedermayer b84211ac71 mpc: Fix mpc_SCF use and content.
This fixes a out of global array read.
This change is based on the reference mpc imlementation.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-01 16:15:33 +01:00
Ronald S. Bultje bd17a40a7e lcl: return negative error codes on decode_init() errors.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-01 07:12:29 -08:00
Martin Storsjö 984b914c55 rtpenc: Use MB info side data for splitting H263 packets for RFC 2190
This makes the packetization spec compliant for cases where one single
GOB doesn't fit into an RTP packet.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-03-01 16:08:32 +02:00
Martin Storsjö bdc1220eeb h263enc: Add an option for outputting info about MBs as side data
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-03-01 16:08:31 +02:00
Martin Storsjö 442c1320e7 avpacket: Add a function for shrinking already allocated side data
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-03-01 16:08:30 +02:00
Michael Niedermayer fd88a25701 rv34dsp: avoid use of crop table for idct.
Fixes out of array read.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-01 07:06:53 +01:00
Michael Niedermayer 8263212e86 mpegaudiodec: Enable checked bitstream reader.
It appears there are corner cases with damaged input that can lead
to small overreads.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-01 06:39:48 +01:00
Michael Niedermayer a057ef6923 mpegaudiodec: change granule skip code to avoid false checked bitstream reader errors.
Code ported from qatar/master, please see there for per line authorship.
Main authors AFAIK are Ronald and Justin. I have no authorship on this.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-01 06:35:55 +01:00
Michael Niedermayer 436f866f92 svq3dec: fix overread of the cliping table.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-01 05:25:11 +01:00
Michael Niedermayer d2101bffa0 eval: fix infinite loop on opensolaris x86.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-01 03:24:45 +01:00
Michael Niedermayer 79ae084e9b Merge remote-tracking branch 'qatar/master'
* qatar/master: (58 commits)
  amrnbdec: check frame size before decoding.
  cscd: use negative error values to indicate decode_init() failures.
  h264: prevent overreads in intra PCM decoding.
  FATE: do not decode audio in the nuv test.
  dxa: set audio stream time base using the sample rate
  psx-str: do not allow seeking by bytes
  asfdec: Do not set AVCodecContext.frame_size
  vqf: set packet parameters after av_new_packet()
  mpegaudiodec: use DSPUtil.butterflies_float().
  FATE: add mp3 test for sample that exhibited false overreads
  fate: add cdxl test for bit line plane arrangement
  vmnc: return error on decode_init() failure.
  libvorbis: add/update error messages
  libvorbis: use AVFifoBuffer for output packet buffer
  libvorbis: remove unneeded e_o_s check
  libvorbis: check return values for functions that can return errors
  libvorbis: use float input instead of s16
  libvorbis: do not flush libvorbis analysis if dsp state was not initialized
  libvorbis: use VBR by default, with default quality of 3
  libvorbis: fix use of minrate/maxrate AVOptions
  ...

Conflicts:
	Changelog
	doc/APIchanges
	libavcodec/avcodec.h
	libavcodec/dpxenc.c
	libavcodec/libvorbis.c
	libavcodec/vmnc.c
	libavformat/asfdec.c
	libavformat/id3v2enc.c
	libavformat/internal.h
	libavformat/mp3enc.c
	libavformat/utils.c
	libavformat/version.h
	libswscale/utils.c
	tests/fate/video.mak
	tests/ref/fate/nuv
	tests/ref/fate/prores-alpha
	tests/ref/lavf/ffm
	tests/ref/vsynth1/prores
	tests/ref/vsynth2/prores

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-01 03:17:11 +01:00
Vitor Sessak 5cd1337f5d nellymoserdec: Saner and faster IMDCT windowing
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-02-29 15:38:35 -08:00
Vitor Sessak 882abda5a2 amrnbdec: check frame size before decoding.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-02-29 14:13:58 -08:00
Ronald S. Bultje 8a9faf33f2 cscd: use negative error values to indicate decode_init() failures.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-02-29 14:04:23 -08:00
Ronald S. Bultje d1604b3de9 h264: prevent overreads in intra PCM decoding.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-02-29 13:17:34 -08:00
Justin Ruggles f240df6a74 FATE: do not decode audio in the nuv test.
We already have sufficient coverage for 16-bit pcm.
2012-02-29 15:45:50 -05:00
Justin Ruggles 929dd8c108 dxa: set audio stream time base using the sample rate 2012-02-29 15:45:50 -05:00
Justin Ruggles aa831c4093 psx-str: do not allow seeking by bytes 2012-02-29 15:45:50 -05:00
Justin Ruggles bdbf1fa405 asfdec: Do not set AVCodecContext.frame_size 2012-02-29 15:45:50 -05:00
Justin Ruggles 4bf6775e9d vqf: set packet parameters after av_new_packet()
Otherwise the values are overwritten.
2012-02-29 15:45:50 -05:00
Michael Niedermayer a77c8ade2e lavc: fix 10l oversight in realloc of avcodec_encode_video2.
Packets are not guranteed to be allocated by av_malloc().

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-29 21:33:00 +01:00
Michael Niedermayer d7bce4a274 dca: dont overread dca_default_coeffs.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-29 21:18:54 +01:00
Michael Niedermayer 51db9a97e9 dca: Check scale_sum.
Fixes a out of array read.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-29 21:18:54 +01:00
Michael Niedermayer d6bc273bac dca: Check LFEScaleIndex.
Its not clear from the spec what to do with values larger than 127
so iam opting for the safe side and ask for a sample.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-29 21:18:54 +01:00
Vitor Sessak 9b4cd58611 mpegaudiodec: use DSPUtil.butterflies_float().
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-02-29 12:12:50 -08:00
Justin Ruggles 841c17177b FATE: add mp3 test for sample that exhibited false overreads
related to b716542691
Error messages and audible artifacts were fixed in that commit.
2012-02-29 15:12:18 -05:00
Paul B Mahol 31b132c094 fate: add cdxl test for bit line plane arrangement
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-02-29 15:11:05 -05:00
Ronald S. Bultje 07a180972f vmnc: return error on decode_init() failure.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-02-29 11:58:27 -08:00
Justin Ruggles a45a1ea521 libvorbis: add/update error messages
also use AVERROR codes for some return values instead of -1
2012-02-29 14:54:25 -05:00
Justin Ruggles 592c4dbc7e libvorbis: use AVFifoBuffer for output packet buffer
simplifies the code and does less memmove()
2012-02-29 14:54:24 -05:00
Justin Ruggles 1fe7c1be54 libvorbis: remove unneeded e_o_s check
vorbis_bitrate_flushpacket() does not return any packets that should not be
output in the bitstream.
2012-02-29 14:54:24 -05:00
Justin Ruggles 94025d8a99 libvorbis: check return values for functions that can return errors 2012-02-29 14:54:24 -05:00
Justin Ruggles c5063e0348 libvorbis: use float input instead of s16
libvorbis takes float input, so we can just deinterleave/reorder the input
as-is instead of also converting.
2012-02-29 14:54:24 -05:00
Justin Ruggles f15c4281dc libvorbis: do not flush libvorbis analysis if dsp state was not initialized
Fixes a segfault if init() fails before initializing the dsp state
2012-02-29 14:54:23 -05:00
Justin Ruggles 147ff24a0e libvorbis: use VBR by default, with default quality of 3 2012-02-29 14:54:20 -05:00
Justin Ruggles 182d4f1f38 libvorbis: fix use of minrate/maxrate AVOptions
- enable the options for audio encoding
- properly check for user-set maxrate
- use correct calling order in vorbis_encode_setup_managed()
2012-02-29 14:44:15 -05:00
Justin Ruggles eb35ef2932 libvorbis: cosmetics: renaming/pretty-printing/comments/unused code 2012-02-29 14:44:15 -05:00
Justin Ruggles 4e99501f62 (e)ac3enc: select a default bit rate based on the channel layout 2012-02-29 14:36:00 -05:00
Justin Ruggles 6aeea1dfb2 ac3enc: choose the closest bit rate to the one requested instead of failing 2012-02-29 14:36:00 -05:00
Ronald S. Bultje 78e9852a2e rpza: error out on buffer overreads.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-02-29 11:21:01 -08:00
Ronald S. Bultje e54ae60e46 qtrle: return error on decode_init() failure.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-02-29 11:20:29 -08:00
Ronald S. Bultje 791de61bbb swscale: fix another integer overflow.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-02-29 11:19:03 -08:00
Martin Storsjö 85b221e4d3 dpxenc: Don't include the libavcodec ident if bitexact mode is enabled
This avoids breaking fate every time the lavc version is bumped.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-29 20:08:09 +02:00
Nicolas George 33b9fe562a encode_video2: shrink packet after encoding.
With the encode2 API, encoders allocate huge packets to be
sure they have enough room (a typical case is mpeg4, which
allocs ~10M for 1280x768 yuv420p) but only actually use a
very small part of the buffer.
2012-02-29 17:00:26 +01:00
Martin Storsjö 07ec1f2140 rtpenc: Fix setting the max packet size
This fixes cases where the user had specified one desired MTU
via an option, and the protocol indicates another one.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-29 16:48:01 +02:00
Anton Khirnov 322537478b Add a minor bump, changelog/APIchanges entry and some documentation for APIC support. 2012-02-29 14:44:22 +01:00
Anton Khirnov 2dfea12058 mp3enc: write attached pictures (APIC). 2012-02-29 14:37:00 +01:00
Anton Khirnov c68148b1ea mp3enc: move mp3_write_xing() further up in the file.
It will be need by new functions called from mp3_write_trailer().
2012-02-29 14:36:45 +01:00
Anton Khirnov ba445f5557 id3v2enc: add a function for writing attached pictures.
Unused so far.
2012-02-29 14:31:17 +01:00
Anton Khirnov 24fe1a3b16 id3v2enc: fix writing frame sizes for ID3v2.3
Frame sizes in ID3v2.3 are not synchsafe, they are simply 32be numbers.

In practice this bug is not noticeable unless the frame size takes more
than 7 bits (which is almost never for text frames).
2012-02-29 14:30:14 +01:00
Anton Khirnov 411225aabc id3v2enc: split ff_id3v2_write().
This will allow writing the tag in several steps, needed for writing
attached pictures.
2012-02-29 14:26:14 +01:00
Anton Khirnov c199817748 id3v2enc: make id3v2_put_size take only an AVIOContext.
It has no need of full AVFormatContext.
2012-02-29 14:25:33 +01:00
Anton Khirnov 393fd0d89e id3v2: remove unused ff_id3v2_read().
Rename ff_id3v2_read_all to ff_id3v2_read().
2012-02-29 14:19:42 +01:00
Anton Khirnov 079ea6ca5f lavf: export id3v2 attached pictures as streams. 2012-02-29 14:16:32 +01:00
Anton Khirnov dd2a4bcfd7 lavf: generic code for exporting attached pictures. 2012-02-29 14:16:25 +01:00
Anton Khirnov a93b09cb45 id3v2: read attached pictures and export them in ID3v2ExtraMeta. 2012-02-29 14:14:48 +01:00
Anton Khirnov b73ad74660 lavf: move CodecMime from matroska.h to internal.h
it will be useful for attached pictures in ID3v2
2012-02-29 13:57:59 +01:00
Anton Khirnov eaea76d72c swfdec: do not set codec timebase.
It is not supposed to be set outside of lavc.

Fixes a divide by zero when the stored framerate is 0.
2012-02-29 13:52:55 +01:00
Kostya Shishkov 12b812d2e5 prores: store and retrieve extended colourspace information
Based on the patch by Phil Barrett.
2012-02-29 09:29:02 +01:00
Phil Barrett c7084182e8 proresenc: correct edge emulation
Signed-off-by: Kostya Shishkov <kostya.shishkov@gmail.com>
2012-02-29 09:28:45 +01:00
Kostya Shishkov 235d693286 prores: handle 444 chroma in right order
ProRes codes chroma blocks in 444 mode in different order than luma blocks,
so make both decoder and encoder read/write chroma blocks in right order.

Reported by Phil Barrett
2012-02-29 09:28:34 +01:00
Anton Khirnov 23bfcc066d mpegvideo_enc: add quantizer_noise_shaping private option.
Deprecate corresponding AVCodecContext field.
2012-02-29 07:26:24 +01:00
Anton Khirnov 16b7557b79 lavc: deprecate AVCodecContext.inter_threshold.
It's unused.
2012-02-29 07:25:44 +01:00
Anton Khirnov 4f07f8196c lavc: deprecate AVCodecContext.color_table_id.
It's currently only used as temporary storage by the mov demuxer. Make
it use a local variable instead.
2012-02-29 07:25:00 +01:00
Anton Khirnov e0f68413dd avplay: remove an unused variable. 2012-02-29 07:24:34 +01:00
Anton Khirnov 63efd83ae1 mpegvideo_enc: add chroma/luma_elim_threshold private options.
Deprecate corresponding AVCodecContext fields.
2012-02-29 07:23:31 +01:00
Anton Khirnov af3d804f9f mpegvideo_enc: add cbp_rd flag to mpv_flags.
Deprecate CODEC_FLAG_CBP_RD.
2012-02-29 07:13:58 +01:00
Anton Khirnov ff71a383ac mpegvideo_enc: add qp_rd flag to mpv_flags.
Deprecate CODEC_FLAG_QP_RD.
2012-02-29 07:12:10 +01:00
Anton Khirnov a249f0cc23 mpegvideo_enc: add strict_gop flag to mpv_flags.
Deprecate CODEC_FLAG2_STRICT_GOP.
2012-02-29 07:11:02 +01:00
Anton Khirnov ed019b8e5b lavc: add -mpv_flags to mpegvideo_enc-based encoders.
Deprecate CODEC_FLAG2_SKIP_RD in favor of the corresponding mpv_flags
flag.
2012-02-29 07:09:29 +01:00
Michael Niedermayer 52ae41a874 fate: disable deshake test as it isnt binary identical across archs.
probably due to float rounding

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-29 07:03:04 +01:00
Michael Niedermayer 956fb91e03 aacdec: Support stereo streams that erroneously signal predefined channel configuration 1 (mono).
[alex.converse@mgail.com]
Move code to get_che()
Update for AAC new channel configuration interface
Only set chan_config if output_configure succeeds.

Signed-off-by: Alex Converse <alex.converse@gmail.com>
2012-02-28 21:38:16 -08:00
Alex Converse 2564f6e6d4 aacdec: Reshuffle functions so get_che() can call set_default_channel_config() and output_configure(). 2012-02-28 21:38:15 -08:00
Michael Niedermayer 6aca18a9a0 vmnc: Fail if bpp is not recognized instead of crashing.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-29 06:27:38 +01:00
Michael Niedermayer c250063523 get_buffers: Check that pix_fmt is not NONE.
This is somewhat redundant as no decoder should call get_buffer() with such argument.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-29 06:27:38 +01:00
Michael Niedermayer 8534881a38 alsdec: Check that quantized parcor coeffs are within range.
ALS spec:
	11.6.3.1.1 Quantization and encoding of parcor coefficients
	...
	In all cases the resulting quantized values ak are restricted to the range [-64,63].

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-29 06:20:07 +01:00
Michael Niedermayer f5bf7b9f4b libpostproc: fix out of array accesses detected by AddressSanitizer.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-29 04:25:13 +01:00
Michael Niedermayer f54e06feb3 vf_deshake: try to fix memleak
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-29 02:33:32 +01:00
Michael Niedermayer 9aa7b3cd53 fate: switch lavfi-pp targets which need bitexact flags to use them.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-29 02:24:59 +01:00
Michael Niedermayer 7f80afe0a7 libpostproc: add bitexact mode, which is needed for regression testing.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-29 02:05:54 +01:00
Michael Niedermayer 0ae9b32e51 fate: More libpostproc tests to improve coverage.
Reviewed-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-29 01:45:36 +01:00
Ronald S. Bultje 8bc396fc0e vp56: error out on invalid stream dimensions.
Prevents crashes when playing corrupt vp5/6 streams.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-02-28 16:41:58 -08:00
Michael Niedermayer 51defefa85 cook: avoid out of global array read.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-29 01:41:18 +01:00
Ronald S. Bultje bb6d5411e1 asf: don't seek back on EOF.
Seeking back on EOF will reset the EOF flag, causing us to re-enter
the loop to find the next marker in the ASF file, thus potentially
causing an infinite loop.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-02-28 16:25:05 -08:00
Michael Niedermayer 0e6aa0fef5 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  adpcm: Clip step_index values read from the bitstream at the beginning of each frame.
  oma: don't read beyond end of leaf_table.
  doxygen: Remove documentation for non-existing parameters; misc small fixes.
  Indeo3: fix crashes on corrupt bitstreams.
  msmpeg4: Replace forward declaration by proper #include.
  segment: implement wrap around
  avf: reorder AVStream and AVFormatContext
  aacdec: Remove erroneous reference to global gain from the out of bounds scalefactor error message.

Conflicts:
	libavcodec/indeo3.c
	libavformat/avformat.h
	libavutil/avutil.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-29 00:30:35 +01:00
Ronald S. Bultje 6e57a02b9f asf: error out on ridiculously large minpktsize values.
They cause various issues further down in demuxing.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-02-28 14:32:34 -08:00
Michael Niedermayer f929abd0c3 adpcm_xa: Check filter validity.
Fixes out of global array read.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-28 22:54:55 +01:00
Alex Converse bbeb29133b adpcm: Clip step_index values read from the bitstream at the beginning of each frame.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
2012-02-28 12:11:06 -08:00
Ronald S. Bultje 934cd18a43 oma: don't read beyond end of leaf_table.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-02-28 11:58:13 -08:00
Diego Biurrun cfac648e6a doxygen: Remove documentation for non-existing parameters; misc small fixes. 2012-02-28 20:48:43 +01:00
Philip de Nier 34210e8df1 mxfdec: set pixel format for cdci picture formats
The properties of the CDCI Descriptor are insufficient to specify
the pixel format for uncompressed picture data. SMPTE 377-1 and
RP224v10 have defined a set of picture coding labels to indicate what
formatting was used.

This patch uses 2 labels to detect UYVY422 or YUYV422 pixel formats.

It defaults to UYVY422 for 8-bit 4:2:2 pictures to support files
that were created before the coding labels were introduced ~2008

The codec pix_fmt default was changed from 0 (PIX_FMT_YUV420P) to
-1 (PIX_FMT_NONE)

Reviewed-by: Baptiste Coudurier <baptiste.coudurier@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-28 20:24:01 +01:00
Philip de Nier c2d11a8b86 mxfdec: detect uncomp pictures using essence container ul
This supports detection of uncompressed picture in files that
didn't include a Picture Coding Label. The lables weren't
available until SMPTE 377-1 and RP224v10

Reviewed-by: Baptiste Coudurier <baptiste.coudurier@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-28 20:22:53 +01:00
Philip de Nier 51d632cc8f mxf: add uncompressed 422 8-bit rawvideo label
Reviewed-by: Baptiste Coudurier <baptiste.coudurier@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-28 20:21:48 +01:00
Philip de Nier 3592bd509c mxfdec: set track edit rate num/den in expected order
This matches the order used for the index table edit rate.

Reviewed-by: Baptiste Coudurier <baptiste.coudurier@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-28 20:20:51 +01:00
Philip de Nier 627cd3841b mxf: fix v210 label matching len
Must check all 16 bytes because there is a planar 10-bit format
label that has equal first 15 bytes

Review-by: Baptiste Coudurier <baptiste.coudurier@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-28 20:20:05 +01:00
Michael Niedermayer bf72c0410d cook: add const to quant_index_table of categorize()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-28 20:07:49 +01:00
Ronald S. Bultje fc9bc08dca Indeo3: fix crashes on corrupt bitstreams.
Splits at borders of cells are invalid, since it leaves one of the
cells with a width/height of zero. Also, propagate errors on buffer
allocation failures, so we don't continue decoding (which crashes).

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-02-28 10:34:35 -08:00
Michael Niedermayer 4f5d1468f5 omadec: Fix wrong number of array elements.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-28 18:41:44 +01:00
Michael Niedermayer ddd86a2924 ffmpeg: Fix division by 0 due to invalid timebase
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-28 18:41:01 +01:00
Philip de Nier 539a8469ae add v210 to intra only list to allow "-vcodec copy"
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-28 16:43:14 +01:00
Michael Niedermayer 1ebc5e71a0 tests: add libpostproc test
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-28 16:34:06 +01:00
Diego Biurrun bd7a647c0d msmpeg4: Replace forward declaration by proper #include. 2012-02-28 15:36:47 +01:00
Luca Barbato 0c1759ac4b segment: implement wrap around
Provide a way to wrap around the segment index so pseudostreaming
live through a web server and html5 browser is simpler.

Also ensure that 0 (disable) is a valid value across the options
providing wrap around.
2012-02-28 15:01:20 +01:00
Luca Barbato ee42df8a35 avf: reorder AVStream and AVFormatContext 2012-02-28 15:01:20 +01:00
Michael Niedermayer 8b1cd25ca7 pmpdec: Check for zero audio packets.
This fixes a division by 0.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-28 07:20:36 +01:00
Michael Niedermayer e3822886eb Merge remote-tracking branch 'qatar/master'
* qatar/master:
  avcodec_default_reget_buffer(): fix compilation in DEBUG mode
  fate: Overhaul WavPack coverage
  h264: fix mmxext chroma deblock to use correct TC values.
  flvdec: Remove the now redundant check for known broken metadata creator
  flvdec: Validate index entries added from metadata while reading
  rtsp: Handle requests from server to client
  movenc: use timestamps instead of frame_size for samples-per-packet
  movenc: use the first cluster duration as the tfhd default duration
  movenc: factorize calculation of cluster duration into a separate function
  doc/APIchanges: fill in missing dates and hashes.
  lavc: reorder AVCodecContext fields.
  lavc: reorder AVFrame fields.

Conflicts:
	doc/APIchanges
	libavcodec/avcodec.h
	libavformat/flvdec.c
	libavformat/movenc.c
	tests/fate/lossless-audio.mak

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-28 03:38:58 +01:00
Alex Converse 5e239c7f9e aacdec: Remove erroneous reference to global gain from the out of bounds scalefactor error message. 2012-02-27 17:59:47 -08:00
Michael Niedermayer f1808e3048 libpostproc: add pp=help support to print the help text via av_log()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-27 23:07:25 +01:00
Diego Biurrun d10319d87f avcodec_default_reget_buffer(): fix compilation in DEBUG mode 2012-02-27 20:58:43 +01:00
Carl Eugen Hoyos 7b4e1466d4 Exit ffmpeg if swr_convert() fails. 2012-02-27 19:02:28 +01:00
Derek Buitenhuis 273f4b39fc fate: Overhaul WavPack coverage
WavPack has a comprehensive test suite, and a bunch
of corner cases.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-02-27 09:40:36 -08:00
Ronald S. Bultje b0c4f04338 h264: fix mmxext chroma deblock to use correct TC values. 2012-02-27 09:38:44 -08:00
Nicolas George a4c22e3cac fate: add test for the life video source. 2012-02-27 17:13:21 +01:00
Nicolas George 48f3d43113 fate: add test for the unsharp video filter. 2012-02-27 14:45:14 +01:00
Nicolas George d8cf9d8a6c fate: add test for the transpose video filter. 2012-02-27 14:45:14 +01:00
Nicolas George b0de06aee6 fate: add test for the thumbnail video filter. 2012-02-27 14:45:14 +01:00
Nicolas George 01f1468eff fate: add test for the select video filter. 2012-02-27 14:45:14 +01:00
Nicolas George f2a05174eb fate: add test for the pad video filter. 2012-02-27 14:45:14 +01:00
Nicolas George 220de4fa20 fate: add test for the overlay video filter.
The test also covers somewhat the split, scale,
pad and fifo filters and the graph parser.
2012-02-27 14:45:13 +01:00
Nicolas George 9380003087 fate: add test for the fade video filter. 2012-02-27 14:45:13 +01:00
Nicolas George e36504b5a9 fate: add test for the drawbox video filter. 2012-02-27 14:45:13 +01:00
Nicolas George f69f150fc8 fate: add test for the deshake video filter. 2012-02-27 14:45:13 +01:00
Nicolas George 4d27a5b2c2 fate: add tests for the setsar and setdar video filters. 2012-02-27 14:45:13 +01:00
Nicolas George 47bd0bc461 fate: add tests for testsrc.
This test uses the lavfi device and
is ready for more similar tests.
2012-02-27 14:45:13 +01:00
Michael Niedermayer e60bdb7e5c flvdec: Remove the now redundant check for known broken metadata creator
The index validation identifies these indexes as broken.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-27 12:07:24 +02:00
Martin Storsjö 7e297a46db flvdec: Validate index entries added from metadata while reading
By validating the index entries while reading, we don't need to
seek at startup to validate the entries. If the error in the
index entries is not pointing to (our definition of) the start
of packets, and there is an index entry pointing at some of the
first packets after the metadata, the invalid index can be discarded
almost immediately.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-27 12:07:24 +02:00
Tommy Winther 1a6b9a98ce rtsp: Handle requests from server to client
This returns 200 OK for OPTIONS requests and 501 Not Implemented
for all other requests.

Even though this doesn't do much actual handling of the requests,
it makes the code properly identify server requests as such, instead
of interpreting it as a reply to the client's request as it did
before.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-27 12:04:11 +02:00
Justin Ruggles f234e8a32e movenc: use timestamps instead of frame_size for samples-per-packet
For encoding, AVCodecContext.frame_size is the number of input samples to
send to the encoder and does not necessarily correspond directly to the
timestamps of the output packets.
2012-02-27 04:33:37 -05:00
Justin Ruggles f3dab5fb6d movenc: use the first cluster duration as the tfhd default duration 2012-02-27 04:33:37 -05:00
Justin Ruggles 681d17264f movenc: factorize calculation of cluster duration into a separate function 2012-02-27 04:33:37 -05:00
Anton Khirnov f5f5b154e7 doc/APIchanges: fill in missing dates and hashes. 2012-02-27 08:35:32 +01:00
Anton Khirnov b1edfce08a lavc: reorder AVCodecContext fields.
Put related fields together, move the important ones closer to the
beginning, try to eliminate holes.
2012-02-27 07:09:43 +01:00
Anton Khirnov 1d428004c6 lavc: reorder AVFrame fields.
Put related fields together, move the important ones closer to the
beginning, try to eliminate holes.
2012-02-27 07:07:25 +01:00
Michael Niedermayer 574dcb5baf Merge remote-tracking branch 'qatar/master'
* qatar/master:
  lavf: don't guess r_frame_rate from either stream or codec timebase.
  avconv: set discard on input streams automatically.
  Fix parser not to clobber has_b_frames when extradata is set.
  lavf: don't set codec timebase in avformat_find_stream_info().
  avconv: saner output video timebase.
  rawdec: set timebase to 1/fps.
  avconv: refactor vsync code.
  FATE: remove a bunch of useless -vsync 0
  cdxl: bit line plane arrangement support
  cdxl: remove early check for bpp
  cdxl: set pix_fmt PAL8 only if palette is available

Conflicts:
	ffmpeg.c
	libavcodec/h264_parser.c
	libavformat/rawdec.c
	tests/fate/demux.mak
	tests/fate/ea.mak
	tests/fate/h264.mak
	tests/fate/prores.mak
	tests/fate/video.mak
	tests/ref/fate/bethsoft-vid
	tests/ref/fate/creatureshock-avs
	tests/ref/fate/ea-cmv
	tests/ref/fate/interplay-mve-16bit
	tests/ref/fate/interplay-mve-8bit
	tests/ref/fate/nuv
	tests/ref/fate/prores-alpha
	tests/ref/fate/qtrle-16bit
	tests/ref/fate/qtrle-1bit
	tests/ref/fate/real-rv40
	tests/ref/fate/rpza
	tests/ref/fate/wmv8-drm

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-27 04:35:35 +01:00
Michael Niedermayer 59affed23c eval: add root() to solve f(x)=0
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-27 00:00:55 +01:00
Michael Niedermayer 8c5ee45d13 eval: Check that single parameter functions dont get a second param.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-26 22:12:44 +01:00
Michael Niedermayer 923092697a eval: Allow specifying the variable id.
Reviewed-by: Nicolas George <nicolas.george@normalesup.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-26 22:12:17 +01:00
Michael Niedermayer 02670762d2 libavfilter/libmpcodecs: add vf_pp from current mplayer svn
This will allow us to do regression tests on libpostproc.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-26 20:39:32 +01:00
Reimar Döffinger d7804de351 cdxl demux: do not create packets with uninitialized data at EOF.
Fixes a failure in cdxl-pal8 test for the valgrind FATE instance.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-02-26 19:39:59 +01:00
Anton Khirnov 7929e22bde lavf: don't guess r_frame_rate from either stream or codec timebase.
Neither of those is guaranteed to be connected to framerate in any way
(if it even exists).

Fixes bug 56.
2012-02-26 19:32:33 +01:00
Anton Khirnov 13f6917ca9 avconv: set discard on input streams automatically. 2012-02-26 19:30:50 +01:00
Reinhard Tartler 790a367d9e Fix parser not to clobber has_b_frames when extradata is set.
Because in contrast to the decoder, the parser does not setup low_delay.
The code in parse_nal_units would always end up setting has_b_frames
to "1", except when stream is explicitly marked as low delay.
Since the parser itself would create 'extradata', simply reopening
the parser would cause this.

This happens for instance in estimate_timings_from_pts(), which causes the
parser to be reopened on the same stream.

This fixes Libav #22 and FFmpeg (trac) #360

CC: libav-stable@libav.org

Based on a patch by Reimar Döffinger <Reimar.Doeffinger@gmx.de>
(commit 31ac0ac29b)

Comments and description adapted by Reinhard Tartler.

Signed-off-by: Reinhard Tartler <siretart@tauware.de>
2012-02-26 15:50:59 +01:00
Anton Khirnov d3783f47ee lavf: don't set codec timebase in avformat_find_stream_info().
It's not supposed to be set outside of lavc.
2012-02-26 07:51:12 +01:00
Anton Khirnov 832ba44d8d avconv: saner output video timebase.
r_frame_rate should in theory have something to do with input framerate,
but in practice it is often made up from thin air by lavf. So unless we
are targeting a constant output framerate, it's better to just use input
stream timebase.

Brings back dropped frames in nuv and cscd tests introduced in
cd1ad18a65
2012-02-26 07:48:45 +01:00
Anton Khirnov 87d7a92b62 rawdec: set timebase to 1/fps. 2012-02-26 07:30:21 +01:00
Anton Khirnov d43040e28b avconv: refactor vsync code.
No functional changes, just make it more readable.
2012-02-26 07:28:27 +01:00
Anton Khirnov 493a86e25b FATE: remove a bunch of useless -vsync 0
No changes in the test results.
2012-02-26 07:28:04 +01:00
Paul B Mahol 42459c6abb cdxl: bit line plane arrangement support
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-02-26 00:04:32 -05:00
Paul B Mahol cf6914e27f cdxl: remove early check for bpp
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-02-26 00:04:32 -05:00
Paul B Mahol 126daeb550 cdxl: set pix_fmt PAL8 only if palette is available
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-02-26 00:04:32 -05:00
Michael Niedermayer 305e4b35ea Merge remote-tracking branch 'qatar/master'
* qatar/master: (34 commits)
  mlp_parser: fix the channel mask value used for the top surround channel
  vorbisenc: check all allocations for failure
  roqaudioenc: return AVERROR codes instead of -1
  roqaudioenc: set correct bit rate
  roqaudioenc: use AVCodecContext.frame_size correctly.
  roqaudioenc: remove unneeded sample_fmt check
  ra144enc: use int16_t* for input samples rather than void*
  ra144enc: set AVCodecContext.coded_frame
  ra144enc: remove unneeded sample_fmt check
  nellymoserenc: set AVCodecContext.coded_frame
  nellymoserenc: improve error checking in encode_init()
  nellymoserenc: return AVERROR codes instead of -1
  libvorbis: improve error checking in oggvorbis_encode_init()
  mpegaudioenc: return AVERROR codes instead of -1
  libfaac: improve error checking and handling in Faac_encode_init()
  avutil: add AVERROR_UNKNOWN
  check for coded_frame allocation failure in several audio encoders
  audio encoders: do not set coded_frame->key_frame.
  g722enc: check for trellis data allocation error
  libspeexenc: export encoder delay through AVCodecContext.delay
  ...

Conflicts:
	doc/APIchanges
	libavcodec/avcodec.h
	libavcodec/fraps.c
	libavcodec/kgv1dec.c
	libavcodec/libfaac.c
	libavcodec/libgsm.c
	libavcodec/libvorbis.c
	libavcodec/mlp_parser.c
	libavcodec/roqaudioenc.c
	libavcodec/vorbisenc.c
	libavutil/avutil.h
	libavutil/error.c
	libavutil/error.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-26 05:11:21 +01:00
Tim Walker 0a9efe4c6e mlp_parser: fix the channel mask value used for the top surround channel
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-02-25 17:24:43 -05:00
Justin Ruggles be8d812c96 vorbisenc: check all allocations for failure 2012-02-25 11:49:43 -05:00
Justin Ruggles f7a2e12f2a roqaudioenc: return AVERROR codes instead of -1 2012-02-25 11:49:43 -05:00
Justin Ruggles 3fa9a999c1 roqaudioenc: set correct bit rate 2012-02-25 11:49:43 -05:00
Justin Ruggles cf57c78b77 roqaudioenc: use AVCodecContext.frame_size correctly.
It is not allowed to change mid-stream like it does currently. Instead we need
to buffer the first 8 frames before returning them as a single packet, then
only return single frame packets after that.
2012-02-25 11:49:43 -05:00
Justin Ruggles 56279f1d61 roqaudioenc: remove unneeded sample_fmt check 2012-02-25 11:49:43 -05:00
Justin Ruggles 4b7f8838e8 ra144enc: use int16_t* for input samples rather than void* 2012-02-25 11:49:43 -05:00
Justin Ruggles 03359ebcf9 ra144enc: set AVCodecContext.coded_frame 2012-02-25 11:49:43 -05:00
Justin Ruggles a65f7c96fc ra144enc: remove unneeded sample_fmt check 2012-02-25 11:49:42 -05:00
Justin Ruggles 928672f1f1 nellymoserenc: set AVCodecContext.coded_frame 2012-02-25 11:49:42 -05:00
Justin Ruggles 370b44cda2 nellymoserenc: improve error checking in encode_init() 2012-02-25 11:49:42 -05:00
Justin Ruggles 333506c33f nellymoserenc: return AVERROR codes instead of -1 2012-02-25 11:49:42 -05:00
Justin Ruggles 6f600ab354 libvorbis: improve error checking in oggvorbis_encode_init() 2012-02-25 11:49:42 -05:00
Justin Ruggles be60eec668 mpegaudioenc: return AVERROR codes instead of -1 2012-02-25 11:49:42 -05:00
Justin Ruggles 7a8cbb39f6 libfaac: improve error checking and handling in Faac_encode_init() 2012-02-25 11:49:42 -05:00
Justin Ruggles c9bca80132 avutil: add AVERROR_UNKNOWN
Useful to return instead of -1 when the cause of the error is unknown,
typically from an external library.
2012-02-25 11:49:41 -05:00
Justin Ruggles a8bdf2405c check for coded_frame allocation failure in several audio encoders 2012-02-25 11:49:41 -05:00
Justin Ruggles 255ad8881d audio encoders: do not set coded_frame->key_frame.
it is already set in avcodec_alloc_frame()
2012-02-25 11:49:41 -05:00
Justin Ruggles 8e2555d3b1 g722enc: check for trellis data allocation error 2012-02-25 11:49:41 -05:00
Justin Ruggles ca300d938b libspeexenc: export encoder delay through AVCodecContext.delay 2012-02-25 11:49:41 -05:00
Justin Ruggles 7600e5c5aa avcodec: document the use of AVCodecContext.delay for audio encoders 2012-02-25 11:49:41 -05:00
Ronald S. Bultje 6c4c27adb6 kgv1: release reference picture on size change.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-02-25 07:53:44 -08:00
Ronald S. Bultje cd40c31ee9 matroska: don't overwrite string values until read/alloc was succesful.
This prevents certain tags with a default value assigned to them (as per
the EBML syntax elements) from ever being assigned a NULL value. Other
parts of the code rely on these being non-NULL (i.e. they don't check for
NULL before e.g. using the string in strcmp() or similar), and thus in
effect this prevents crashes when reading of such specific tags fails,
either because of low memory or because of targeted file corruption.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-02-25 07:53:23 -08:00
Anton Khirnov 03ca0a5b30 lavc: merge two if()s with the same condition. 2012-02-25 07:48:52 +01:00
Anton Khirnov d55fa6f9cb lavc: factorize setting got_packet_ptr in avcodec_encode_video2() 2012-02-25 07:48:46 +01:00
Anton Khirnov 52953d61ca lavc: signal no output when a NULL frame is passed to audio encoder without delay 2012-02-25 07:48:36 +01:00
Paul B Mahol 99cff417f3 xwdenc: fix monow encoding
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-02-25 07:45:06 +01:00
Michael Niedermayer 8e03912133 mpegaudiodec: dont memcpy() more than needed.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-25 06:47:57 +01:00
Paul B Mahol 159a2436b0 fate: add tests for cdxl video
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-02-25 00:18:24 -05:00
Paul B Mahol 904817cb9f cdxl: fix ham6/8 on big endian
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-02-25 00:18:14 -05:00
Michael Niedermayer b008ac18bb Merge remote-tracking branch 'qatar/master'
* qatar/master:
  docs: use -bsf:[vas] instead of -[vas]bsf.
  mpegaudiodec: Prevent premature clipping of mp3 input buffer.
  lavf: move the packet keyframe setting code.
  oggenc: free comment header for all codecs
  lcl: error out if uncompressed input buffer is smaller than framesize.
  mjpeg: abort decoding if packet is too large.
  golomb: use HAVE_BITS_REMAINING() macro to prevent infloop on EOF.
  get_bits: add HAVE_BITS_REMAINING macro.
  lavf/output-example: use new audio encoding API correctly.
  lavf/output-example: more proper usage of the new API.
  tiff: Prevent overreads in the type_sizes array.
  tiff: Make the TIFF_LONG and TIFF_SHORT types unsigned.
  apetag: do not leak memory if avio_read() fails
  apetag: propagate errors.
  SBR DSP x86: implement SSE sbr_hf_g_filt
  SBR DSP x86: implement SSE sbr_sum_square_sse
  SBR DSP: use intptr_t for the ixh parameter.

Conflicts:
	doc/bitstream_filters.texi
	doc/examples/muxing.c
	doc/ffmpeg.texi
	libavcodec/golomb.h
	libavcodec/x86/Makefile
	libavformat/oggenc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-25 04:00:43 +01:00
Michael Niedermayer 7b9d8703f3 adpcmdec: fix "warning: array subscript is above array bounds"
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-25 02:50:58 +01:00
Michael Niedermayer 3d3b603f7f a64multienc: fix "warning: buf may be used uninitialized in this function"
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-25 02:41:42 +01:00
Michael Niedermayer 418403662b rmdec: fix "warning: format %d expects argument of type int, but argument 7 has type int64_t"
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-25 02:33:30 +01:00
Michael Niedermayer 4dbdd3ec6f mp3enc: fix "warning: best_bitrate_idx may be used uninitialized in this function"
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-25 02:17:37 +01:00
Michael Niedermayer 1e44dda825 flvdec: fix "libavformat/flvdec.c:195:29: warning: variable size1 set but not used"
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-25 02:12:09 +01:00
Derek Buitenhuis b93c91579d fate: Overhaul WavPack coverage
WavPack has a comprehensive test suite, and a bunch
of corner cases.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-25 01:06:19 +01:00
Ronald S. Bultje 2bb628f870 swscale: fix another integer overflow at large dimensions/rescales. 2012-02-24 15:39:55 -08:00
Justin Ruggles 19adb0bc2d vorbisdec: add a flush() function
clear MDCT overlap buffer and reset previous window mode when seeking
2012-02-24 17:37:25 -05:00
Ronald S. Bultje 830f70442a fraps: release reference buffer on pix_fmt change.
Prevents crash when trying to copy from a non-existing plane in e.g.
a RGB32 reference image to a YUV420P target image

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-02-24 14:28:15 -08:00
Ronald S. Bultje 87840eeb71 avcodec: disallow reget_buffer() if pix_fmt changed. 2012-02-24 14:28:15 -08:00
Ronald S. Bultje 33cd32b389 kgv1: use avctx->get/release_buffer().
Also fixes crashes on corrupt bitstreams.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-02-24 14:28:15 -08:00
John Van Sickle d6a77e2b97 docs: use -bsf:[vas] instead of -[vas]bsf.
The latter syntax is now invalid.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-02-24 22:04:11 +01:00
Dale Curtis b716542691 mpegaudiodec: Prevent premature clipping of mp3 input buffer.
Instead of clipping extrasize based on EXTRABYTES, clip based on the
amount of buffer actually left. Without this fix, there are warbles
and other distortions in the test case below.

http://kevincennis.com/mix/assets/sounds/1901_voxfx.mp3
2012-02-24 13:47:04 -05:00
Anton Khirnov 655b24c01c lavf: move the packet keyframe setting code.
compute_pkt_fields() is for unreliable estimates or guessing. The
keyframe information from the parser is (at least in theory) reliable,
so it should be used even when the other guessing is disabled with the
AVFMT_FLAG_NOFILLIN flag.

Therefore, move setting the packet keyframe flag based on parser
information from compute_pkt_fields() to read_frame_internal().
2012-02-24 19:43:02 +01:00
Justin Ruggles 9677247b0a oggenc: free comment header for all codecs
fixes a memleak for Vorbis and Theora, where the comment header from
avpriv_split_xiph_headers() is replaced by a buffer that must be freed
separately.
2012-02-24 13:15:41 -05:00
Ronald S. Bultje be129271ea lcl: error out if uncompressed input buffer is smaller than framesize.
This prevents crashes when trying to read beyond the end of the buffer
while decoding frame data.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-02-24 07:28:57 -08:00
Ronald S. Bultje ab492ca2ab mjpeg: abort decoding if packet is too large.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-02-24 07:28:43 -08:00
Ronald S. Bultje 46b3fbc30b golomb: use HAVE_BITS_REMAINING() macro to prevent infloop on EOF.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-02-24 07:28:33 -08:00
Ronald S. Bultje b44b41633f get_bits: add HAVE_BITS_REMAINING macro. 2012-02-24 07:28:14 -08:00
Anton Khirnov 5ff42e3138 lavf/output-example: use new audio encoding API correctly. 2012-02-24 09:44:18 +01:00
Anton Khirnov 6e9ed7c7ae lavf/output-example: more proper usage of the new API.
Passing the codec into avformat_new_stream() is preferred.
2012-02-24 09:44:17 +01:00
Michael Niedermayer 388b7ac07a Revert "Set channel layout in flac decoder."
This reverts commit 2ef2496cd1.

Conflicts:

	libavcodec/Makefile

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-24 04:22:20 +01:00
Michael Niedermayer 003e024bfb Revert "Fix channel layout for some stereo flac files."
This reverts commit d2ee3c913d.
2012-02-24 04:21:16 +01:00
Michael Niedermayer 3be7917894 proresenc_anatoliy: switch to encode2
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-24 04:13:27 +01:00
Michael Niedermayer 73f8f7e839 msvideo1enc: switch to encode2()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-24 04:13:01 +01:00
Michael Niedermayer 8060403011 j2kenc: switch to encode2
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-24 04:12:40 +01:00
Michael Niedermayer 131698af55 flashsv2enc: switch to encode2()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-24 03:30:42 +01:00
Michael Niedermayer e2cc39b609 Merge remote-tracking branch 'qatar/master'
* qatar/master: (40 commits)
  swf: check return values for av_get/new_packet().
  wavpack: Don't shift minclip/maxclip
  rtpenc: Expose the max packet size via an avoption
  rtpenc: Move max_packet_size to a context variable
  rtpenc: Add an option for not sending RTCP packets
  lavc: drop encode() support for video.
  snowenc: switch to encode2().
  snowenc: don't abuse input picture for storing information.
  a64multienc: switch to encode2().
  a64multienc: don't write into output buffer when there's no output.
  libxvid: switch to encode2().
  tiffenc: switch to encode2().
  tiffenc: properly forward error codes in encode_frame().
  lavc: drop libdirac encoder.
  gifenc: switch to encode2().
  libvpxenc: switch to encode2().
  flashsvenc: switch to encode2().
  Remove libpostproc.
  lcl: don't overwrite input memory.
  swscale: take first/lastline over/underflows into account for MMX.
  ...

Conflicts:
	.gitignore
	Makefile
	cmdutils.c
	configure
	doc/APIchanges
	libavcodec/Makefile
	libavcodec/allcodecs.c
	libavcodec/libdiracenc.c
	libavcodec/libxvidff.c
	libavcodec/qtrleenc.c
	libavcodec/tiffenc.c
	libavcodec/utils.c
	libavformat/mov.c
	libavformat/movenc.c
	libpostproc/Makefile
	libpostproc/postprocess.c
	libpostproc/postprocess.h
	libpostproc/postprocess_altivec_template.c
	libpostproc/postprocess_internal.h
	libpostproc/postprocess_template.c
	libswscale/swscale.c
	libswscale/utils.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-24 02:57:18 +01:00
Michael Niedermayer 32e74395a8 Revert "Improve decoding quality for lossy wavpack."
This has been implemented more correctly.

This reverts commit a915618a29.
2012-02-24 01:26:38 +01:00
Alex Converse 447363870f tiff: Prevent overreads in the type_sizes array.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-02-23 16:23:51 -08:00
Alex Converse e32548d133 tiff: Make the TIFF_LONG and TIFF_SHORT types unsigned.
TIFF v6.0 (unimplemented) adds signed equivalents.
2012-02-23 16:23:51 -08:00
Paul B Mahol 14c98973f5 apetag: do not leak memory if avio_read() fails
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-02-23 16:16:37 -08:00
Ronald S. Bultje 6d11057006 apetag: propagate errors.
Fixes crashes if reading the tag value fails.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-02-23 15:53:26 -08:00
Christophe GISQUET 2784d18791 SBR DSP x86: implement SSE sbr_hf_g_filt
Unrolling the main loop to process, instead of 4 elements:
- 8: minor gain of 2 cycles (not worth the extra object size)
- 2: loss of 8 cycles.

Assigning STEP to a register is a loss. Output address (Y) is almost always
unaligned.

Timings:
- C (32/64 bits): 117/109 cycles
- SSE: 57 cycles

Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-02-23 15:50:09 -08:00
Christophe GISQUET 34454c761f SBR DSP x86: implement SSE sbr_sum_square_sse
The 32bits targets have been compiled with -mfpmath=sse for proper reference.
sbr_sum_square C  /32bits: 82c (unrolled)/102c
               C  /64bits: 69c (unrolled)/82c
               SSE/32bits: 42c
               SSE/64bits: 31c

Use of SSE4.1 dpps to perform the final sum is slower.
Not unrolling to perform 8 operations in a loop yields 10 more cycles.

Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-02-23 15:50:06 -08:00
Christophe GISQUET 2e74a5abc2 SBR DSP: use intptr_t for the ixh parameter.
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-02-23 15:48:40 -08:00
Michael Niedermayer 6eb12ffe0c fate: add forgotten random_seed ref
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-24 00:36:51 +01:00
Michael Niedermayer 7cfd626bda fate: add random_seed test
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-23 23:47:14 +01:00
Michael Niedermayer 946de27d25 random_seed: add selftest
Reviewed-by: Nicolas George <nicolas.george@normalesup.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-23 23:44:38 +01:00
Paul B Mahol 1b93244381 v408enc: switch to encode2()
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-23 23:42:04 +01:00
Paul B Mahol 1f801f3a70 yuv4enc: switch to encode2()
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-23 23:40:51 +01:00
Paul B Mahol d1ede561a6 v308enc: switch to encode2()
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-23 23:38:20 +01:00
Michael Niedermayer 29a8f6b8d4 udp: Fix sign of error codes.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-23 23:24:14 +01:00
Ronald S. Bultje 31632e73f4 swf: check return values for av_get/new_packet().
Prevents crashers when using the packet if allocation failed.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-02-23 12:24:58 -08:00
Derek Buitenhuis 480b133e6f wavpack: Don't shift minclip/maxclip
Since we are clipping before we shift the values to
16 or 32 bits, we should not shift the min/max clip
values to compensate.

Fixes 8 and 24 bit lossy decoding.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-02-23 20:43:39 +01:00
Martin Storsjö ba605cef79 rtpenc: Expose the max packet size via an avoption
This allows opting for a lower MTU than what the AVIOContext
indicated, and allows writing into outputs that don't indicate
an MTU at all (such as plain files, which is useful for testing).

This also allows querying for the MTU via the avoption.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-23 21:32:52 +02:00
Martin Storsjö f553462041 rtpenc: Move max_packet_size to a context variable
This is in preparation for exposing this via an avoption.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-23 21:32:52 +02:00
Martin Storsjö 7337484ed2 rtpenc: Add an option for not sending RTCP packets
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-23 21:32:52 +02:00
Anton Khirnov ff311c0918 lavc: drop encode() support for video.
All video encoders have been converted to encode2(), all new encoders
should also use only encode2().
2012-02-23 20:26:26 +01:00
Anton Khirnov 171273fec8 snowenc: switch to encode2(). 2012-02-23 20:26:14 +01:00
Anton Khirnov 8d3348c2c4 snowenc: don't abuse input picture for storing information. 2012-02-23 20:26:04 +01:00
Anton Khirnov 7340008f18 a64multienc: switch to encode2().
We have no decoder, so cannot test if the output is decodable.
2012-02-23 19:56:55 +01:00
Anton Khirnov cfc6ab3199 a64multienc: don't write into output buffer when there's no output. 2012-02-23 19:56:45 +01:00
Anton Khirnov 4da6d194e5 libxvid: switch to encode2(). 2012-02-23 19:55:23 +01:00
Anton Khirnov 760b004086 tiffenc: switch to encode2(). 2012-02-23 19:53:20 +01:00
Anton Khirnov 62acb4937e tiffenc: properly forward error codes in encode_frame(). 2012-02-23 19:52:08 +01:00
Anton Khirnov 2257f66ec5 lavc: drop libdirac encoder.
Libschroedinger is the preferred way to encode dirac video now, it
produces better output and has a nicer API.
2012-02-23 19:50:46 +01:00
Anton Khirnov 577fed3b7c gifenc: switch to encode2(). 2012-02-23 19:50:46 +01:00
Anton Khirnov d8f3365fb0 libvpxenc: switch to encode2(). 2012-02-23 19:50:46 +01:00
Anton Khirnov 0ecf54f9dc flashsvenc: switch to encode2(). 2012-02-23 19:50:46 +01:00
Diego Biurrun b315042c8c Remove libpostproc.
This library does not fit into Libav as a whole and its code is just a
maintenance burden.  Furthermore it is now available as an external project,
which completely obviates any reason to keep it around.

URL: http://git.videolan.org/?p=libpostproc.git
2012-02-23 19:36:16 +01:00
Ronald S. Bultje 01cb62aba2 lcl: don't overwrite input memory.
If the PNG filter is enabled, a PNG-style filter will run over the
input buffer, writing into the buffer. Therefore, if no zlib compression
was used, ensure that we copy into a temporary buffer, otherwise we
overwrite user-provided input data.
2012-02-23 10:31:46 -08:00
Ronald S. Bultje 1d8c4af396 swscale: take first/lastline over/underflows into account for MMX.
Fixes crashes for extremely large resizes (several 100-fold).

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-02-23 10:30:08 -08:00
Ronald S. Bultje 491865b57d swscale: fix underflows in firstline calculations for extreme resizes.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-02-23 10:30:07 -08:00
Ronald S. Bultje 19a65b5be4 swscale: fix overflows in filterPos[] calculation for large sizes.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-02-23 10:30:07 -08:00
Anton Khirnov 84db922bf9 libxavs: switch to encode2(). 2012-02-23 19:25:50 +01:00
Anton Khirnov d3b577f00d libxavs: add an AVClass at the beginning of XavsContext. 2012-02-23 19:25:50 +01:00
Anton Khirnov a5f848c86d libxavs: split extradata writing out of encode_nals().
This is done in preparation for the following patch implementing
encode2().

This commit is analogous to 05d699222d for
libx264.
2012-02-23 19:25:50 +01:00
Anton Khirnov 8e8124e173 ljpegenc: switch to encode2(). 2012-02-23 19:25:50 +01:00
Ronald S. Bultje 2b83e8b700 truemotion2: error out if the huffman tree has no nodes.
This prevents crashers and errors further down when reading nodes in the
empty tree.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-02-23 07:46:25 -08:00
Nicolas George b6ff81d63b sbgdec: read_seek was undeprecated. 2012-02-23 16:00:22 +01:00
Martin Storsjö ada4e362b9 rtpenc: Add an error message
Also return a proper error code.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-23 16:30:09 +02:00
Martin Storsjö c4584f3c1f rtpenc: Allow packetizing H263 according to the old RFC 2190
According to newer RFCs, this packetization scheme should only
be used for interfacing with legacy systems.

Implementing this packetization mode properly requires parsing
the full H263 bitstream to find macroblock boundaries (and knowing
their macroblock and gob numbers and motion vector predictors).

This implementation tries to look for GOB headers (which
can be inserted by using -ps <small number>), but if the GOBs
aren't small enough to fit into the MTU, the packetizer blindly
splits packets at any offset and claims it to be a GOB boundary
(by using Mode A from the RFC). While not correct, this seems
to work with some receivers.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-23 15:27:52 +02:00
Martin Storsjö c2ff63e3ac rtpenc: Move the trailing comma into FF_RTP_FLAG_OPTS
This simplifies adding more flags to the macro.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-23 15:27:42 +02:00
Anton Khirnov 3c0ed7d1a8 asv1enc: switch to encode2(). 2012-02-23 14:11:08 +01:00
Anton Khirnov df53a47317 libschroedingerenc: switch to encode2(). 2012-02-23 13:54:34 +01:00
Anton Khirnov 278d88689b ffv1enc: switch to encode2(). 2012-02-23 13:51:29 +01:00
Anton Khirnov f7fa73ac91 libtheoraenc: switch to encode2(). 2012-02-23 13:48:34 +01:00
Anton Khirnov 6d9c27dc85 jpeglsenc: switch to encode2(). 2012-02-23 11:12:39 +01:00
Anton Khirnov 148fc99506 lclenc: switch to encode2(). 2012-02-23 11:11:42 +01:00
Anton Khirnov 21b46747ad qtrleenc: switch to encode2(). 2012-02-23 11:08:50 +01:00
Nicolas George 42655b24c2 avfiltergraph: avoid harmful auto audio conversions.
With the current code, an automatically inserted aconvert necessary
for format change would usually convert to mono for no good reason.

The new code will not avoid all conversions, but at least will keep
them among the layouts common to both filters.
2012-02-23 09:37:11 +01:00
Nicolas George 69a653cac3 configure: add lavfi dependencies to .pc files.
lavfi have optional filters that depends on some components:
it is necessary to test which one is enabled to set the correct
dependencies.

Signed-off-by: Nicolas George <nicolas.george@normalesup.org>
2012-02-23 09:07:15 +01:00
Compn b18c27def8 riff: IPJ2 decodes with j2k decoder. samples can be made from mencoder and jp2avi.dll codec. 2012-02-22 23:34:45 -05:00
Michael Niedermayer e99f1a8cc8 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  dxva2: don't check for DXVA_PictureParameters->wDecodedPictureIndex
  img2: split muxer and demuxer into separate files
  rm: prevent infinite loops for index parsing.
  aac: fix infinite loop on end-of-frame with sequence of 1-bits.
  mov: Add more HDV and XDCAM FourCCs.
  lavf: don't set AVCodecContext.has_b_frames in compute_pkt_fields().
  rmdec: when using INT4 deinterleaving, error out if sub_packet_h <= 1.
  cdxl: correctly synchronize video timestamps to audio
  mlpdec_parser: fix a few channel layouts.
  Add channel names to channel_names[] array for channels added in b2890f5
  movenc: Buffer the mdat for the initial moov fragment, too
  flvdec: Ignore the index if the ignidx flag is set
  flvdec: Fix indentation
  movdec: Don't parse all fragments if ignidx is set
  movdec: Restart parsing root-level atoms at the right spot
  prores: use natural integer type for the codebook index
  mov: Add support for MPEG2 HDV 720p24 (hdv4)
  swscale: K&R formatting cosmetics (part I)
  swscale: variable declaration and placement cosmetics

Conflicts:
	configure
	libavcodec/aacdec.c
	libavcodec/mlp_parser.c
	libavformat/flvdec.c
	libavformat/img2.c
	libavformat/isom.h
	libavformat/mov.c
	libavformat/movenc.c
	libswscale/rgb2rgb.c
	libswscale/rgb2rgb_template.c
	libswscale/yuv2rgb.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-23 04:31:55 +01:00
Justin Ruggles 62d5f9e5ca flacdec: set channel_layout based on channel count
Channel layouts are specified in the FLAC format description at
http://flac.sourceforge.net/format.html

fixes Bug 209
2012-02-22 20:14:00 -05:00
Justin Ruggles 3798205a77 mov: set channel layout for AC-3 streams based on the 'dac3' atom info
fixes Bug 225
2012-02-22 20:07:02 -05:00
Ronald S. Bultje 1254022ea7 swscale: fix filtersize clipping.
if srcW<=2, clip(x, 1, srcW-2) still allows srcW to be < 1.
2012-02-22 16:54:20 -08:00
Michael Niedermayer 094673ff1b eval: support 3 parameter functions.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-22 23:09:47 +01:00
Michael Niedermayer 43b1943a55 eval: Add taylor series evaluation support.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-22 23:09:47 +01:00
Rafaël Carré 562ebc3077 dxva2: don't check for DXVA_PictureParameters->wDecodedPictureIndex
This structure is well defined by Microsoft at:
http://msdn.microsoft.com/en-us/library/windows/hardware/ff564012(v=vs.85).aspx
Thus, the wDecodedPictureIndex member is guaranteed to exist.

Also, both the MPEG-2 and VC-1 hwaccel decoders depend on this struct member,
but only the VC-1 decoder was disabled if the check failed.

Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-02-22 22:04:03 +01:00
Paul B Mahol 15b4b505c2 img2: split muxer and demuxer into separate files
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-02-22 22:04:03 +01:00
Ronald S. Bultje aac07a7a4c rm: prevent infinite loops for index parsing.
Specifically, prevent jumping back in the file for the next index, since
this can lead to infinite loops where we jump between indexes referring
to each other, and don't read indexes that don't fit in the file.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-02-22 12:00:23 -08:00
Alex Converse 1cd9a6154b aac: fix infinite loop on end-of-frame with sequence of 1-bits.
Based-on-work-by: Ronald S. Bultje <rsbultje@gmail.com>
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-02-22 11:23:43 -08:00
Alex Converse b142496c56 mov: Add more HDV and XDCAM FourCCs.
Reference: VLC
2012-02-22 11:23:43 -08:00
Anton Khirnov 0584e3ca97 lavf: don't set AVCodecContext.has_b_frames in compute_pkt_fields().
It is not supposed to be done outside lavc.

This is basically a revert of 818062f2f3.

It is unclear what issue this was supposed to fix, if it reappears again
it will have to be fixed in a more proper place.

The wtv-demux test change is because the sample starts with a B-frame.
2012-02-22 19:31:06 +01:00
Ronald S. Bultje e30b3e59a4 rmdec: when using INT4 deinterleaving, error out if sub_packet_h <= 1.
We read sub_packet_h / 2 packets per line of data (during deinterleaving),
which equals zero if sub_packet_h <= 1, thus causing us to not read any
data, leading to an infinite loop.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-02-22 09:17:27 -08:00
Paul B Mahol 58700edb94 cdxl: correctly synchronize video timestamps to audio
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-02-22 10:50:42 -05:00
Tim Walker 6bbaf6e0dd mlpdec_parser: fix a few channel layouts.
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-02-22 10:50:22 -05:00
Tim Walker 147715ca10 Add channel names to channel_names[] array for channels added in b2890f5
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-02-22 10:50:06 -05:00
Nicolas George f16c950f32 lavu: document av_reverse. 2012-02-22 15:35:44 +01:00
Nicolas George 534a82a3fd lavd/lavfi: support all sample formats. 2012-02-22 11:37:32 +01:00
Nicolas George 9cbf17e9af lavc: introduce av_get_pcm_codec. 2012-02-22 11:37:32 +01:00
Martin Storsjö 0c7b8b758a movenc: Buffer the mdat for the initial moov fragment, too
This allows writing QuickTime-compatible fragmented mp4 (with
a non-empty moov atom) to a non-seekable output.

This buffers the mdat for the initial fragment just as it does
for all normal fragments, too. Previously, the resulting
atom structure was mdat,moov, moof,mdat ..., while it now
is moov,mdat, moof,mdat.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-22 12:27:39 +02:00
Martin Storsjö b70f04c261 flvdec: Ignore the index if the ignidx flag is set
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-22 12:27:24 +02:00
Martin Storsjö 0a7ce3caa8 flvdec: Fix indentation
Also split a long line.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-22 12:27:15 +02:00
Nicolas George 4217dfe87b af_pan: remove dual double/int storage of gain.
libswresample takes care of that now.
2012-02-22 10:50:58 +01:00
Martin Storsjö aa96d433e2 movdec: Don't parse all fragments if ignidx is set
In nonseekable files, we already stop parsing the toplevel atoms
after finding moov and one mdat. In large seekable files (or files
that are seekable, but slowly, e.g. http), reading all the fragments
at the start can take a considerable amount of time. This allows
opting out from this behaviour.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-22 10:39:15 +02:00
Martin Storsjö 383a3b64cb movdec: Restart parsing root-level atoms at the right spot
If parsing moov+mdat in a non-seekable file, we currently
abort parsing directly after parsing the header of the mdat
atom. If we want to continue parsing later (if looking to
parse later fragments), we need to skip past the content of the
mdat atom, otherwise we end up parsing the content of the mdat
atom as root level atoms.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-22 10:39:14 +02:00
Christophe GISQUET b5696ff2b8 prores: use natural integer type for the codebook index
The operations that use it require it to be promoted to a larger (natural)
type and thus perform sign extension on it.

While an optimal compiler may account for this, gcc 4.6 (for x86 Windows)
fails. Using the natural integer type provides a 2% speedup for Win64
and 1% for Win32.

Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-02-22 09:21:39 +01:00
Paul B Mahol d00bc6a8fd r210enc and y41penc: don't set same pkt->size twice
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-22 03:45:43 +01:00
Michael Niedermayer 8a08503b78 pngdec: Print error if signature is wrong.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-22 03:37:18 +01:00
Michael Niedermayer 184fc600e1 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  mpegvideo_enc: only allocate output packet when we know there will be output
  Add names for more channel layouts to the channel layout map.
  sunrast: Add a sample request for RMP_RAW colormap.
  avcodec: do not override pts or duration from the audio encoder
  Add prores regression test.
  Enable already existing rso regression test.
  Add regression test for "sox" format muxer/demuxer.
  Add dpx encoding regression test.
  swscale: K&R formatting cosmetics for PowerPC code (part I/II)
  img2: Use ff_guess_image2_codec(filename) shorthand where appropriate.
  Clarify licensing information about files borrowed from libjpeg.
  Mark mutable static data const where appropriate.
  avplay: fix -threads option
  dvbsubdec: avoid undefined signed left shift in RGBA macro
  mlpdec: use av_log_ask_for_sample()
  gif: K&R formatting cosmetics
  png: make .long_name more descriptive
  movdec: Adjust keyframe flagging in fragmented files
  rv34: change most "int stride" into "ptrdiff_t stride".

Conflicts:
	avprobe.c
	ffplay.c
	libavcodec/mlpdec.c
	libavcodec/mpegvideo_enc.c
	libavcodec/pngenc.c
	libavcodec/x86/v210-init.c
	libavfilter/vf_boxblur.c
	libavfilter/vf_crop.c
	libavfilter/vf_drawtext.c
	libavfilter/vf_lut.c
	libavfilter/vf_overlay.c
	libavfilter/vf_pad.c
	libavfilter/vf_scale.c
	libavfilter/vf_select.c
	libavfilter/vf_setpts.c
	libavfilter/vf_settb.c
	libavformat/img2.c
	libavutil/audioconvert.c
	tests/codec-regression.sh
	tests/lavf-regression.sh
	tests/ref/lavf/dpx
	tests/ref/vsynth1/prores
	tests/ref/vsynth2/prores

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-22 02:24:18 +01:00
Michael Niedermayer 92b5f71a7d lavf: Reimplement new seek API emulation
This fixes seeking to before and after files with ffplay.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-21 23:55:47 +01:00
Michael Niedermayer e6380afa6a avidec: Reduce log level for out of index error message.
Its otherwise spaming every time one tries to seek to outside
the file.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-21 23:55:47 +01:00
Michael Niedermayer 68fac5c2b8 doxy: Disable the main index page.
Theres no usefull or even remotely complete information on it currently.
Which just leads to confusion.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-21 23:55:47 +01:00
Alex Converse 0ad522afb3 mov: Add support for MPEG2 HDV 720p24 (hdv4) 2012-02-21 14:20:28 -08:00
Diego Biurrun 89d94b2182 swscale: K&R formatting cosmetics (part I) 2012-02-21 22:53:40 +01:00
Diego Biurrun 72b95764d0 swscale: variable declaration and placement cosmetics 2012-02-21 22:53:37 +01:00
Anton Khirnov 5d42ac7ffb mpegvideo_enc: only allocate output packet when we know there will be output
Fixes a memleak.
2012-02-21 22:47:01 +01:00
Clément Bœsch 2bdac29360 doc/examples: rename filtering.c into filtering_video.c. 2012-02-21 22:34:39 +01:00
Tim W b38b6d56ca Add names for more channel layouts to the channel layout map.
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-02-21 16:10:05 -05:00
Aneesh Dogra 79c7064c5f sunrast: Add a sample request for RMP_RAW colormap.
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-02-21 16:00:06 -05:00
Justin Ruggles 70749c483c avcodec: do not override pts or duration from the audio encoder
This allows encoders to set pts and/or duration even if they do not use
CODEC_CAP_DELAY.
2012-02-21 15:18:51 -05:00
Reimar Döffinger 2c87c7a952 Add prores regression test.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-02-21 14:42:30 -05:00
Reimar Döffinger a86ca94615 Enable already existing rso regression test.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-02-21 14:42:30 -05:00
Reimar Döffinger ecdb31caf2 Add regression test for "sox" format muxer/demuxer.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-02-21 14:42:30 -05:00
Carl Eugen Hoyos 8ee2ddcb2a Add dpx encoding regression test.
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-02-21 14:42:30 -05:00
Diego Biurrun 04217de4d6 swscale: K&R formatting cosmetics for PowerPC code (part I/II) 2012-02-21 20:17:57 +01:00
Diego Biurrun 3f486e0dae img2: Use ff_guess_image2_codec(filename) shorthand where appropriate. 2012-02-21 20:17:56 +01:00
Diego Biurrun 24d150b773 Clarify licensing information about files borrowed from libjpeg. 2012-02-21 20:17:56 +01:00
Alex Converse b0f29db5c2 Mark mutable static data const where appropriate. 2012-02-21 09:47:07 -08:00
Clément Bœsch aecf0cf5ed doc/examples: add audio decoding/filtering example.
Mostly based on doc/examples/filtering.c. lavfi API is still limited to
"buffer feeding" instead of "frame feeding" at the moment, so this
example code sticks with it.
2012-02-21 16:45:37 +01:00
Janne Grunau e48a70e6da avplay: fix -threads option
The AVOptions based default to threads auto in 2473a45c8
works only if avplay does not use custom option handling
for -threads.

CC: <libav-stable@libav.org>
2012-02-21 16:45:34 +01:00
Clément Bœsch 241f8465d0 lavfi/abuffer: init the data planes with NULL pointers.
Samples buffer ref is allocated and loaded with the uninitialized data
pointers:
     av_asrc_buffer_add_buffer()
  -> av_asrc_buffer_add_samples()
  -> avfilter_get_audio_buffer_ref_from_arrays(data, ...)

...which leads to a crash with at least lavfi/ashowinfo in case of !NULL
(see the for loop while samplesref->data[plane]).
2012-02-21 16:45:34 +01:00
Janne Grunau 6a4cf065c7 dvbsubdec: avoid undefined signed left shift in RGBA macro 2012-02-21 16:01:31 +01:00
Paul B Mahol ca085e667b mlpdec: use av_log_ask_for_sample()
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Janne Grunau <janne-libav@jannau.net>
2012-02-21 16:01:31 +01:00
Aneesh Dogra 33510e86b1 gif: K&R formatting cosmetics
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-02-21 15:47:06 +01:00
Paul B Mahol 08630d25a2 png: make .long_name more descriptive
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-02-21 15:47:05 +01:00
Martin Storsjö a5c50913a8 movdec: Adjust keyframe flagging in fragmented files
For video, mark the first sample in a trun which doesn't have the
sample-is-non-sync-sample flag set as a keyframe.

In particular, the "sample does not depend on other samples" flag
isn't enough to make it a keyframe, since later frames still can
reference frames prior to that one (the flag only says that that
particular frame doesn't depend on other frames).

This fixes bug 215.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-21 14:19:20 +02:00
Michael Niedermayer eadd4264ee Merge remote-tracking branch 'qatar/master'
* qatar/master: (36 commits)
  adpcmenc: Use correct frame_size for Yamaha ADPCM.
  avcodec: add ff_samples_to_time_base() convenience function to internal.h
  adx parser: set duration
  mlp parser: set duration instead of frame_size
  gsm parser: set duration
  mpegaudio parser: set duration instead of frame_size
  (e)ac3 parser: set duration instead of frame_size
  flac parser: set duration instead of frame_size
  avcodec: add duration field to AVCodecParserContext
  avutil: add av_rescale_q_rnd() to allow different rounding
  pnmdec: remove useless .pix_fmts
  libmp3lame: support float and s32 sample formats
  libmp3lame: renaming, rearrangement, alignment, and comments
  libmp3lame: use the LAME default bit rate
  libmp3lame: use avpriv_mpegaudio_decode_header() for output frame parsing
  libmp3lame: cosmetics: remove some pointless comments
  libmp3lame: convert some debugging code to av_dlog()
  libmp3lame: remove outdated comment.
  libmp3lame: do not set coded_frame->key_frame.
  libmp3lame: improve error handling in MP3lame_encode_init()
  ...

Conflicts:
	doc/APIchanges
	libavcodec/libmp3lame.c
	libavcodec/pcxenc.c
	libavcodec/pnmdec.c
	libavcodec/pnmenc.c
	libavcodec/sgienc.c
	libavcodec/utils.c
	libavformat/hls.c
	libavutil/avutil.h
	libswscale/x86/swscale_mmx.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-21 05:10:12 +01:00
Ronald S. Bultje 3ab9a2a557 rv34: change most "int stride" into "ptrdiff_t stride".
This prevents having to sign-extend on 64-bit systems with 32-bit ints,
such as x86-64. Also fixes crashes on systems where we don't do it and
arguments are not in registers, such as Win64 for all weight functions.
2012-02-20 14:58:25 -08:00
Nicolas George a923b6b8f4 af_pan: move query_format before config_props.
That is the logical order in which the functions are called,
and there is no longer any need of forward declarations.
2012-02-20 23:36:03 +01:00
Nicolas George eb9ba527e7 af_pan: remove the indirect function call.
libswresample is used in all cases.
2012-02-20 23:36:03 +01:00
Justin Ruggles 770a5c6d02 adpcmenc: Use correct frame_size for Yamaha ADPCM.
Output packet size should match avctx->block_align. The target output packet
size is 1024 bytes.
Before:
mono   - 1024 samples -> 512 bytes
stereo - 2048 samples -> 2048 bytes
After:
mono   - 2048 samples -> 1024 bytes
stereo - 1024 samples -> 1024 bytes
2012-02-20 15:52:32 -05:00
Reimar Döffinger 6a3f1726af Add missing av_free_packet.
Fixes memory leak when encoding at least with mpegvideo using the
new encode2 function.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-02-20 21:23:00 +01:00
Justin Ruggles 91a28b0e8e avcodec: add ff_samples_to_time_base() convenience function to internal.h 2012-02-20 15:20:17 -05:00
Justin Ruggles 41ac9bb253 adx parser: set duration 2012-02-20 15:08:41 -05:00
Justin Ruggles b3a4c7e0f1 mlp parser: set duration instead of frame_size 2012-02-20 15:08:41 -05:00
Justin Ruggles 2460b168b4 gsm parser: set duration 2012-02-20 15:08:41 -05:00
Justin Ruggles 7575ffac8a mpegaudio parser: set duration instead of frame_size 2012-02-20 15:08:40 -05:00
Justin Ruggles 16e54ac725 (e)ac3 parser: set duration instead of frame_size 2012-02-20 15:08:40 -05:00
Justin Ruggles c7f3f1c91e flac parser: set duration instead of frame_size 2012-02-20 15:08:40 -05:00
Justin Ruggles e9cda85351 avcodec: add duration field to AVCodecParserContext
This will allow parsers to export the duration of the current frame being
output, if known, instead of using AVCodecContext.frame_size.
2012-02-20 15:08:40 -05:00
Justin Ruggles 0b42a9388c avutil: add av_rescale_q_rnd() to allow different rounding 2012-02-20 15:08:40 -05:00
Nicolas George a297856b8c af_pan: reindent after last commit. 2012-02-20 20:46:35 +01:00
Nicolas George a44b510d56 af_pan: use libswr for rematrixing. 2012-02-20 20:46:35 +01:00
Nicolas George 560b224f53 libswr: allow to set custom matrices. 2012-02-20 20:46:35 +01:00
Reimar Döffinger 016c7bb762 matroskadec: remove H.264 special-case that disabled header parsing.
The parser was fixed so this workaround should no longer
be necessary.
This allows using stream-copy to fix files with keyframes
incorrectly marked.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-02-20 20:42:55 +01:00
Paul B Mahol 0996f406c4 pnmdec: remove useless .pix_fmts
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-02-20 13:46:57 -05:00
Justin Ruggles e00959a9b1 libmp3lame: support float and s32 sample formats 2012-02-20 12:32:31 -05:00
Justin Ruggles e232225276 libmp3lame: renaming, rearrangement, alignment, and comments 2012-02-20 12:32:30 -05:00
Justin Ruggles 232e16dd02 libmp3lame: use the LAME default bit rate
Also, only set bit rate for CBR.
2012-02-20 12:32:30 -05:00
Justin Ruggles 1f516c0451 libmp3lame: use avpriv_mpegaudio_decode_header() for output frame parsing 2012-02-20 12:32:30 -05:00
Justin Ruggles e3d2c89e9d libmp3lame: cosmetics: remove some pointless comments 2012-02-20 12:32:30 -05:00
Justin Ruggles bf909fc456 libmp3lame: convert some debugging code to av_dlog()
also remove unneeded commented-out full frame data debugging
2012-02-20 12:32:30 -05:00
Justin Ruggles 469d2a8e8e libmp3lame: remove outdated comment.
We now require at least libmp3lame 3.98.3.
lame_encode_buffer_interleaved() still doesn't work for mono, but it does not
"die"; it just expects a stereo interleaved buffer.
2012-02-20 12:32:30 -05:00
Justin Ruggles 35cfd7d09c libmp3lame: do not set coded_frame->key_frame.
it is already set in avcodec_alloc_frame()
2012-02-20 12:32:30 -05:00
Justin Ruggles 8dad25ebf7 libmp3lame: improve error handling in MP3lame_encode_init() 2012-02-20 12:32:30 -05:00
Justin Ruggles 310c372e12 libmp3lame: remove unneeded 'stereo' field from Mp3AudioContext 2012-02-20 12:32:30 -05:00
Matthieu Bouron 278d6ab900 ffprobe: report bit rate in stream description
Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
2012-02-20 17:46:26 +01:00
Stefano Sabatini 3293b1adca lavc: set bit_rate in the decoder context, just after the init stage
Also move the get_bit_rate() function, in order to avoid an undefined
symbol reference in avcodec_open2().
2012-02-20 17:46:18 +01:00
Martin Storsjö a4f97be1a9 hls: Reset the AVIOContext when seeking
This avoids reading any old data in the AVIOContext buffer after
the seek, and indicates to the mpegts demuxer that we've seeked,
avoiding continuity check errors.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-20 11:10:02 +02:00
Clément Bœsch 6e6bdeb137 doc: fix channel layout value in abuffer example.
The channel layout must start with 0x, otherwise it is parsed as a
number of channels.
2012-02-20 09:23:44 +01:00
Anton Khirnov 55fd7da107 pcxenc: switch to encode2(). 2012-02-20 07:50:44 +01:00
Anton Khirnov fb11e22fda sgienc: switch to encode2(). 2012-02-20 07:50:44 +01:00
Anton Khirnov 61eaf45c99 targaenc: switch to encode2(). 2012-02-20 07:50:44 +01:00
Anton Khirnov 1e742ea3c8 targaenc: don't modify input frame.
Set the pict_type/key_frame properties on the coded picture.
2012-02-20 07:50:44 +01:00
Anton Khirnov 3227770092 roqvideoenc: switch to encode2(). 2012-02-20 07:50:44 +01:00
Anton Khirnov 4fd7cfef0b roqvideoenc: add const qualifier to the input frame. 2012-02-20 07:50:44 +01:00
Anton Khirnov 1ea5755046 pnmenc: switch to encode2(). 2012-02-20 07:50:44 +01:00
Anton Khirnov bc9c70e5a3 huffyuv: switch to encode2(). 2012-02-20 07:50:44 +01:00
Anton Khirnov 2abee9be82 v410enc: switch to encode2(). 2012-02-20 07:50:44 +01:00
Anton Khirnov 11505f39e1 zmbvenc: switch to encode2(). 2012-02-20 07:50:44 +01:00
Anton Khirnov 8c8c7b5e37 zmbvenc: move header writing to the end of encode_frame().
This makes switching to encode2() simpler, because it allows us to know
exactly how large should the output buffer be before we start writing
into it.
2012-02-20 07:50:44 +01:00
Michael Niedermayer be2e211dce Merge remote-tracking branch 'qatar/master'
* qatar/master:
  doxy: remove reference to removed api
  examples: unbreak compilation
  ttadec: cosmetics: reindent
  sunrast: use RLE trigger macro inplace of the hard coded value.
  sunrastenc: set keyframe flag for the output packet.
  mpegvideo_enc: switch to encode2().
  mpegvideo_enc: force encoding delay of at least 1 frame when low_delay=0

Conflicts:
	doc/examples/muxing.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-20 01:29:30 +01:00
Ronald S. Bultje 8fb26950ed h264: don't use redzone in loopfilter on win64.
Red zone usage is not allowed in the Win64 ABI.
2012-02-19 15:31:03 -08:00
Ronald S. Bultje b18f8cbf3d Revert two swscale commits.
Revert "swscale: update context offsets after removal of AlpMmxFilter."
(commit a95e3fa90b)
and
Revert "swscale: Remove some write-only variables related to alpha handling."
(commit 9d03cb9fc5).

They broke alpha handling - it's the evil inline asm that still uses that
variable, so it's not truely write-only.
2012-02-19 13:31:12 -08:00
Michael Niedermayer f4f386dd00 wmalossless: Fix infinite loop.
Fixes more of Ticket1000

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-19 22:08:21 +01:00
Michael Niedermayer 886b40b94a wmalossless: Switch to new audio API
Partially fixes Ticket1000

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-19 22:08:21 +01:00
Michael Niedermayer b240866c5b wmalossless: remove tab
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-19 22:08:09 +01:00
Panagiotis H.M. Issaris 2b3d041cdc applehttp: Do seeking within segments, too
Enhance seeking by demuxing until the requested timestamp is
reached within the segment selected by the seek code using the
playlist info.

Some mpegts streams don't have dts set for all packets though,
this seeking method doesn't work well for that case.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-19 23:03:42 +02:00
Michael Niedermayer 1060e9ce54 cmdutils: add -cpuflags.
This allows globally forcing specific cpuflags (or lack thereof)
Useful for debugging and benchmarking

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-19 21:17:25 +01:00
Michael Niedermayer 04f7eee709 Merge remote-tracking branch 'shariman/wmall'
* shariman/wmall:
  Perform inter-channel decorr. only if both channels are coded
  Use fixed-length array in revert_mclms()

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-19 19:13:18 +01:00
Luca Barbato 6b8b0fe2bc doxy: remove reference to removed api 2012-02-19 19:10:28 +01:00
Luca Barbato aac63cef20 examples: unbreak compilation
Update api so it will compile again.
2012-02-19 19:10:28 +01:00
Paul B Mahol e04ca1d4ce ttadec: cosmetics: reindent
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-02-19 13:04:10 -05:00
Michael Niedermayer d9b3097ba2 pamdec: fix mono support.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-19 16:26:46 +01:00
Aneesh Dogra 566df2eea2 sunrast: use RLE trigger macro inplace of the hard coded value.
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-02-19 15:55:57 +01:00
Aneesh Dogra 1a58daed0f sunrastenc: set keyframe flag for the output packet.
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-02-19 15:54:27 +01:00
Reimar Döffinger 3fa6d20533 H264 parser: enable header parsing/frame type detection for is_avc.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-02-19 15:29:10 +01:00
Anton Khirnov 445a7d48b1 mpegvideo_enc: switch to encode2(). 2012-02-19 08:26:30 +01:00
Anton Khirnov 5455384219 mpegvideo_enc: force encoding delay of at least 1 frame when low_delay=0
This allows the following commit to extrapolate better dts for the first
frame. Pts difference between the first two frames is reused as the
difference between pts and dts of the first frame.
2012-02-19 08:22:48 +01:00
Michael Niedermayer d3f81a6700 pamenc: allocate the correct packetsize for mono.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-19 04:15:22 +01:00
Michael Niedermayer 5d468edb2e pamenc: move allocation down.
This way the size that is calculated is known and can be used in a following
commit.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-19 04:12:19 +01:00
Michael Niedermayer e98a76d3c2 h264: use av_fast_padded_malloc()
This zeros all the memory once and avoids valgrind warnings.
alternatively the warnings could be suppressed.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-19 03:57:54 +01:00
Paul B Mahol b6a08665d6 img2dec: add im32 extension, sunrast with 32bit depth
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-19 03:57:54 +01:00
Clément Bœsch 624c413d55 examples: add -Wall to CFLAGS. 2012-02-19 02:18:29 +01:00
Clément Bœsch 2b97be5d57 examples/filtering: fix unused variable and return value in open_input_file(). 2012-02-19 02:18:29 +01:00
Clément Bœsch b117c39237 examples/filtering: fix deprecated function calls warnings. 2012-02-19 02:18:29 +01:00
Clément Bœsch f075537561 examples/filtering: fix implicit declarations and function mis-usage. 2012-02-19 02:18:29 +01:00
Michael Niedermayer 4a519b6e03 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  mov: Use defines for sample flags in fragments
  mov: Use defines for trun flags
  mov: Use defines for tfhd flags
  proresenc: force bitrate not to exceed given limit
  vc1parse: call vc1_init_common().
  wma: don't return 0 on invalid packets.
  asf: prevent packet_size_left from going negative if hdrlen > pktlen.
  mjpegb: don't return 0 at the end of frame decoding.
  rtpdec: Identify incorrectly signalled H263
  vp8dsp: split long line.
  aiff: don't skip block_align==0 check on COMM-after-SSND files.
  dpcm: ignore extra unpaired bytes in stereo streams.
  mp3on4: require a minimum framesize.
  mpc7: assign an error level + context to av_log() msg.
  huffyuv: error out on bit overrun.
  dct-test: Add the missing ff_ prefix to the altivec functions
  dct-test: Remove a stray declaration of a nonexistent function
  movenc: Write the unknown duration as 64 bit fields in ismv
  movenc: Write track durations with all bits set if duration is unknown

Conflicts:
	libavcodec/dct-test.c
	libavcodec/wmadec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-19 01:47:10 +01:00
Reimar Döffinger 57182b9f0f lavf-fate-ogg_vp3: Try -idct auto instead of -idct simple.
-idct simple for some reason results in different results on
different systems.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-02-18 21:45:07 +01:00
Reimar Döffinger 76cc0992d8 oggenc: fix condition when not to flush due to keyframe granule.
The previous condition of 0 page size was wrong,
that would disable the mechanism for all frames at
a start of a page, thus some keyframes still would not
get their own granule.
The real problem is that header packets must not be flushed,
but they have (and must have) 0 granule and thus would
be detected as keyframes.
Add a separate parameter to mark header packets.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-02-18 21:35:49 +01:00
Reimar Döffinger 030e96fe55 oggdec: improve warning message.
Print whether it was a keyframe or a non-keyframe that
was incorrectly marked as the other.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-02-18 21:35:49 +01:00
Clément Bœsch 8688e6acba ffprobe: fix crash if the file can't be opened. 2012-02-18 21:35:09 +01:00
Martin Storsjö 5be805d38c mov: Use defines for sample flags in fragments
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-18 21:13:36 +02:00
Martin Storsjö 3eec23f3cd mov: Use defines for trun flags
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-18 21:13:35 +02:00
Martin Storsjö 73328f24fa mov: Use defines for tfhd flags
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-18 21:13:33 +02:00
Kostya Shishkov 6d702dc072 proresenc: force bitrate not to exceed given limit
Apple ProRes Format Specifications mentions target data size for every frame,
so make sure frame meets it. This also allows encoder to demand much smaller
packet sizes for output.
2012-02-18 18:34:01 +01:00
Ronald S. Bultje c742ab4e81 vc1parse: call vc1_init_common().
The parser uses VLC tables initialized in vc1_common_init(), therefore
we should call this function on parser init also.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-02-18 09:16:39 -08:00
Ronald S. Bultje 9d3050d3e9 wma: don't return 0 on invalid packets.
Return 0 means "please return the same data again", i.e. it causes an
infinite loop. Instead, return an error.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-02-18 09:13:38 -08:00
Ronald S. Bultje 41afac7f7a asf: prevent packet_size_left from going negative if hdrlen > pktlen.
This prevents failed assertions further down in the packet processing
where we require non-negative values for packet_size_left.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-02-18 09:12:32 -08:00
Ronald S. Bultje 74699ac8c8 mjpegb: don't return 0 at the end of frame decoding.
Return 0 indicates "please return the same data again", i.e. it causes
an infinite loop. Instead, return that we consumed the buffer if we
finished decoding succesfully, or return an error if an error occurred.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-02-18 08:41:45 -08:00
Reimar Döffinger f23a740303 Add muxer test based on stream-copy from FATE sample.
This should test muxing Theora into Ogg.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-02-18 16:41:39 +01:00
Martin Storsjö c7e8639c70 rtpdec: Identify incorrectly signalled H263
H263 in RTP can be packetized in two formats (RFC 2190, RFC
2429/4629). The former normally uses the static payload type 34,
while the latter normally uses dynamic payload types with the
SDP format names H263-1998 or H263-2000.

Look for packets that don't look like proper RFC 2190 packets and
switch to depacketizing them according to the new format if they
match some heuristic criteria.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-18 17:31:55 +02:00
Mashiat Sarker Shakkhar a520a9946f Perform inter-channel decorr. only if both channels are coded 2012-02-18 21:04:10 +06:00
Michael Niedermayer f3bd226de6 ffmpeg: Fix setting flags for codec copy.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-18 14:34:16 +01:00
Reimar Döffinger ad8173eb81 Allow other programs to open the same files on Windows.
In order to match Linux behaviour better our
Windows-specific open() replacement should disable
Windows default file locking.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-02-18 12:26:35 +01:00
Reimar Döffinger 7c8d477299 Make AAC in Ogg (ogm) work.
This needs the extradata to be extracted.
The approach used is the one MPlayer uses, though it is
unclear whether the 4 bytes extradata that are skipped
should be skipped always or only for AAC.
The AAC parser must be disabled, too, otherwise playback
still does not work.
Fixes trac issue #547.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-02-18 12:04:14 +01:00
Stefano Sabatini 4538d66010 lavfi/aspect: set default value to 0:1, as stated in the docs
Fix regression introduced in commit 70ffda3217.
2012-02-18 11:41:53 +01:00
Stefano Sabatini 80715c3b23 lavfi/aspect: remove confusing comments 2012-02-18 11:37:34 +01:00
Stefano Sabatini 360218713f lavfi/aspect: show log info even in case no argument is provided to setdar/setsar 2012-02-18 11:31:28 +01:00
Michael Niedermayer c9ac08277d movenc: Dont crash on aspect=0/0.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-18 04:07:53 +01:00
Michael Niedermayer c36010c286 avidec: remove harmless duplicate code.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-18 03:42:10 +01:00
Paul B Mahol bfe7bace8e libx264: unbreak libx264rgb
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-18 02:31:38 +01:00
Michael Niedermayer bbb61a1cd5 Merge remote-tracking branch 'qatar/master'
* qatar/master: (22 commits)
  als: prevent infinite loop in zero_remaining().
  cook: prevent div-by-zero if channels is zero.
  pamenc: switch to encode2().
  svq1enc: switch to encode2().
  dvenc: switch to encode2().
  dpxenc: switch to encode2().
  pngenc: switch to encode2().
  v210enc: switch to encode2().
  xwdenc: switch to encode2().
  ttadec: use branchless unsigned-to-signed unfolding
  avcodec: add a Sun Rasterfile encoder
  sunrast: Move common defines to a new header file.
  cdxl: fix video decoding for some files
  cdxl: fix audio for some samples
  apetag: add proper support for binary tags
  ttadec: remove dead code
  swscale: make access to filter data conditional on filter type.
  swscale: update context offsets after removal of AlpMmxFilter.
  prores: initialise encoder and decoder parts only when needed
  swscale: make monowhite/black RGB-independent.
  ...

Conflicts:
	Changelog
	libavcodec/alsdec.c
	libavcodec/dpxenc.c
	libavcodec/golomb.h
	libavcodec/pamenc.c
	libavcodec/pngenc.c
	libavformat/img2.c
	libswscale/output.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-18 02:20:19 +01:00
Ronald S. Bultje b1af4e9c27 vp8dsp: split long line.
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-18 02:32:09 +02:00
Ronald S. Bultje 32a659c758 aiff: don't skip block_align==0 check on COMM-after-SSND files.
This prevents SIGFPEs when using block_align for divisions.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-02-17 15:59:03 -08:00
Alex Converse ce7aee9b73 dpcm: ignore extra unpaired bytes in stereo streams.
Fixes: CVE-2011-3951

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
2012-02-17 15:42:23 -08:00
Ronald S. Bultje 3e13005cac mp3on4: require a minimum framesize.
If bufsize < headersize, init_get_bits() will be called with a negative
number, causing it to fail and any subsequent call to get_bits() will
crash because it reads from a NULL pointer.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-02-17 15:32:23 -08:00
Ronald S. Bultje c0994e39d7 mpc7: assign an error level + context to av_log() msg. 2012-02-17 15:28:35 -08:00
Ronald S. Bultje 84c202cc37 huffyuv: error out on bit overrun.
On EOF, get_bits() will continuously return 0, causing an infinite
loop.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-02-17 15:23:20 -08:00
Carl Eugen Hoyos f6492476a6 Fix ffmpeg -codecs output. 2012-02-17 23:51:22 +01:00
Martin Storsjö 0733375059 dct-test: Add the missing ff_ prefix to the altivec functions
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-18 00:22:25 +02:00
Martin Storsjö 89baf35996 dct-test: Remove a stray declaration of a nonexistent function
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-18 00:22:24 +02:00
Martin Storsjö 5302633919 movenc: Write the unknown duration as 64 bit fields in ismv
This is required for the files to play back properly in
windows media player.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-18 00:03:32 +02:00
Martin Storsjö 99a357f4c5 movenc: Write track durations with all bits set if duration is unknown
According to 14496-12, the duration should be all 1s if
the duration is unknown. This is the case if writing a moov
atom without any samples described in it (e.g. as in ismv files).

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-18 00:03:30 +02:00
Paul B Mahol 545e887902 y41penc: switch to encode2()
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-17 22:39:23 +01:00
Paul B Mahol 48ad7f822d r210enc: switch to encode2()
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-17 22:38:30 +01:00
Michael Niedermayer f9caec0cf9 h264: change deblock_h_chroma_8_mmxext() to prevent valgrind confusion.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-17 21:36:37 +01:00
Ronald S. Bultje af468015d9 als: prevent infinite loop in zero_remaining().
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-02-17 12:35:08 -08:00
Ronald S. Bultje 941fc1ea1e cook: prevent div-by-zero if channels is zero.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-02-17 12:35:07 -08:00
Carl Eugen Hoyos 44f5b26212 Make CDXL palette opaque. 2012-02-17 21:33:14 +01:00
Anton Khirnov e9b380a7a5 pamenc: switch to encode2(). 2012-02-17 20:46:37 +01:00
Anton Khirnov 3cc77ded4f svq1enc: switch to encode2(). 2012-02-17 20:46:37 +01:00
Anton Khirnov 6a047213ac dvenc: switch to encode2(). 2012-02-17 20:46:37 +01:00
Anton Khirnov b3566a6a39 dpxenc: switch to encode2(). 2012-02-17 20:46:37 +01:00
Anton Khirnov 83c7fe3245 pngenc: switch to encode2(). 2012-02-17 20:46:37 +01:00
Anton Khirnov ab3a410cf0 v210enc: switch to encode2(). 2012-02-17 20:46:37 +01:00
Anton Khirnov f0366fec56 xwdenc: switch to encode2(). 2012-02-17 20:46:37 +01:00
Justin Ruggles f2a4559c77 ttadec: use branchless unsigned-to-signed unfolding 2012-02-17 14:35:35 -05:00
Aneesh Dogra d7840529b6 avcodec: add a Sun Rasterfile encoder
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-02-17 14:28:56 -05:00
Aneesh Dogra 1f1fbcfa71 sunrast: Move common defines to a new header file.
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-02-17 14:23:40 -05:00
Paul B Mahol b5c626fdf3 cdxl: fix video decoding for some files
Width is padded for ham encodings too.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-02-17 14:20:18 -05:00
Paul B Mahol 6d10c5bfc0 cdxl: fix audio for some samples
There may be extra padding at and of chunk.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-02-17 14:19:35 -05:00
Paul B Mahol f02edc4c06 apetag: add proper support for binary tags
export as attachment streams

Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-02-17 14:16:11 -05:00
Paul B Mahol 323b9da969 ttadec: remove dead code
The unused code being removed is for encoding only and therefore is not needed
by the decoder.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-02-17 13:38:09 -05:00
Ronald S. Bultje 1bab6f852c swscale: make access to filter data conditional on filter type.
Prevents crashes on 1-tap filter (unscaled). Also rename "bguf" argument
to "vbuf", seems that was a typo.
2012-02-17 10:31:15 -08:00
Ronald S. Bultje a95e3fa90b swscale: update context offsets after removal of AlpMmxFilter. 2012-02-17 10:31:15 -08:00
Reimar Döffinger d493170ec9 matroskadec: introduce resync function.
This allows handling matroska files with errors.
Fixes test4.mkv and test7.mkv from the official Matroska test suite.
These are also trac issues #544 and #545.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-02-17 17:29:51 +01:00
Reimar Döffinger 9e0f897fe5 Add ismv regression test.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-02-17 17:29:51 +01:00
Reimar Döffinger 3ce7148dff movenc: fix crashes if a stream is empty.
For some reason this always happens with -f ismv.
See trac issue #996.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-02-17 17:04:10 +01:00
Kostya Shishkov 857d14863d prores: initialise encoder and decoder parts only when needed 2012-02-17 16:49:30 +01:00
Andrew Wason a0e44414df movenc: leave st->codec->frame_size as is instead of forcing it to 1.
Muxing pcm audio in MOV using avcodec_encode_audio() was failing
because avcodec_encode_audio() returns an incorrect packet size of 4
bytes. This can be reproduced by modifying the sample
ffmpeg/doc/examples/muxing.c to encode PCM, see ML patch
muxing-test.diff

I git bisected and commit 89ddff92a3 is the one that broke this. In
mov_write_header() if st->codec->frame_size <= 1 it sets it to 1. Then
avcodec_encode_audio() sets frame->nb_samples = avctx->frame_size, and
frame->nb_samples of 1 is used to compute a packet size of 4 bytes.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-17 16:24:18 +01:00
Kostya Shishkov 5d9ad5425f prores: initialise encoder and decoder parts only when needed 2012-02-17 14:11:48 +01:00
Ronald S. Bultje 25c42234a9 swscale: make monowhite/black RGB-independent.
Disadvantage is that it no longer allows modifying brightness through
adjustment of the RGB lookup table. Advantage is that now monowhite/black
no longer need to be identified as a RGB format.
2012-02-16 21:43:20 -08:00
Zongyao Qu 1b84cf41e0 Makefile: fix proresdec dependancies
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-17 06:04:31 +01:00
Ronald S. Bultje 52e4018be4 flac: fix infinite loops on all-zero input or end-of-stream.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-02-16 17:08:29 -08:00
Ronald S. Bultje b4027d9749 wmapro: change max. block size to 13 bits.
WMApro actually support 13-bits block sizes (potentially even up to 14),
and thus we should support that also. If we get block sizes beyond what
the decoder can handle (14 is possible depending on s->decode_flags),
error out instead of crashing.
2012-02-16 16:15:36 -08:00
Matthieu Bouron 29b9aee49f ffprobe: add count_frames and count_packets options
Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
2012-02-17 01:06:43 +01:00
Michael Niedermayer 8c1ebdcea2 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  shorten: Use separate pointers for the allocated memory for decoded samples.
  atrac3: Fix crash in tonal component decoding.
  ws_snd1: Fix wrong samples counts.
  movenc: Don't set a default sample duration when creating ismv
  rtp: Factorize the check for distinguishing RTCP packets from RTP
  golomb: avoid infinite loop on all-zero input (or end of buffer).
  bethsoftvid: synchronize video timestamps with audio sample rate
  bethsoftvid: add audio stream only after getting the first audio packet
  bethsoftvid: Set video packet duration instead of accumulating pts.
  bethsoftvid: set packet key frame flag for audio and I-frame video packets.
  bethsoftvid: fix read_packet() return codes.
  bethsoftvid: pass palette in side data instead of in a separate packet.
  sdp: Ignore RTCP packets when autodetecting RTP streams
  proresenc: initialise 'sign' variable
  mpegaudio: replace memcpy by SIMD code
  vc1: prevent using last_frame as a reference for I/P first frame.

Conflicts:
	libavcodec/atrac3.c
	libavcodec/golomb.h
	libavcodec/shorten.c
	libavcodec/ws-snd1.c
	tests/ref/fate/bethsoft-vid

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-17 00:35:06 +01:00
Stefano Sabatini 7bdefc0f12 lavfi/overlay: add logic for avoiding overlaying frames with PTS > main frame PTS
Also add debug logging messages for helping tracking down similar
issues.

Fix trac ticket #467.
2012-02-17 00:28:35 +01:00
Rafaël Carré 05ee0db1b2 dshow_filter: fix compilation with mingw-w64
Closes ticket #999
NO_DSHOW_STRSAFE asks dshow.h header to not use secure string function
replacements.
Using secure replacements would break mingw.org compatibility as they don't
declare/define those functions.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-16 23:25:59 +01:00
Michael Niedermayer 22b125f912 g729dec: fix 'warning: assignment from incompatible pointer type'
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-16 23:25:51 +01:00
Michael Niedermayer 934abf6ff8 g729dec: fix use of deprecated functions.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-16 23:02:07 +01:00
Michael Niedermayer ad21c05172 diracdec: fix use of deprecated funnctions
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-16 23:01:47 +01:00
Michael Niedermayer 204cb29b3c shorten: Use separate pointers for the allocated memory for decoded samples.
Fixes invalid free() if any of the buffers are not allocated due to either
not decoding a header or an error prior to allocating all buffers.

Fixes CVE-2012-0858
CC: libav-stable@libav.org

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-02-16 15:18:45 -05:00
Michael Niedermayer c509f4f747 atrac3: Fix crash in tonal component decoding.
Add a check to avoid writing past the end of the channel_unit.components[]
array.

Bug Found by: cosminamironesei
Fixes CVE-2012-0853
CC: libav-stable@libav.org

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-02-16 15:18:45 -05:00
Michael Niedermayer 9fb7a5af97 ws_snd1: Fix wrong samples counts.
This makes the check that avoids overwrite of the samples array actually
work properly.

fixes CVE-2012-0848
CC: libav-stable@libav.org

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-02-16 15:18:45 -05:00
Michael Niedermayer 8b18288c08 qtrleenc: fix uninitialized variable warnings
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-16 20:11:33 +01:00
Michael Niedermayer 5a03a3d998 proresdec2: use ff_dsputil_init() avoid deprecated ff_ less variant.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-16 19:55:16 +01:00
Michael Niedermayer 67f17e7202 proresdec2: Fix 16 vs. 8bit compiler warnings.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-16 19:54:28 +01:00
Martin Storsjö 51df7b232f movenc: Don't set a default sample duration when creating ismv
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-16 17:49:07 +01:00
Martin Storsjö 298a587f44 rtp: Factorize the check for distinguishing RTCP packets from RTP
The binary doesn't change after this patch.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-16 17:45:33 +01:00
Ronald S. Bultje c6643fddba golomb: avoid infinite loop on all-zero input (or end of buffer).
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-02-16 08:36:08 -08:00
Justin Ruggles c9fdf3241a bethsoftvid: synchronize video timestamps with audio sample rate
According to unofficial documentation, the video rate is locked to the audio
sample rate. This results in proper synchronization of audio and video
timestamps from the demuxer. This only works if the first audio packet occurs
before the first video packet or the audio sample rate is the default rate of
11111 Hz, both of which are true for all samples in our archive.
2012-02-16 10:47:11 -05:00
Justin Ruggles 773ff823da bethsoftvid: add audio stream only after getting the first audio packet
This avoids initializing a stream with dummy values or when the file does not
contain audio.
Also set duration for audio packets, using the sample rate as the time base.
2012-02-16 10:47:11 -05:00
Justin Ruggles 9546f331c6 bethsoftvid: Set video packet duration instead of accumulating pts. 2012-02-16 10:47:11 -05:00
Justin Ruggles 05e4ae833c bethsoftvid: set packet key frame flag for audio and I-frame video packets.
Fixes avconv video stream copy of bethsoft video, which was skipping all
video frames unless the copyinkf option was used.
2012-02-16 10:47:11 -05:00
Justin Ruggles 17b115591f bethsoftvid: fix read_packet() return codes.
Use proper AVERROR codes, and return 0 for no error.
2012-02-16 10:47:11 -05:00
Justin Ruggles f320fb894c bethsoftvid: pass palette in side data instead of in a separate packet.
Update FATE reference to account for now non-existent palette packet.
This also fixes the FATE test if frame data is not initialized in
get_buffer(), so update comment in avconv accordingly.
2012-02-16 10:47:11 -05:00
Martin Storsjö f3a094f2da sdp: Ignore RTCP packets when autodetecting RTP streams
The rtp demuxer which listens for RTP packets and detects the
RTP payload type will currently get confused if the first packet
received is an RTCP packet. Thus ignore such packets.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-16 16:14:35 +01:00
Benjamin Larsson 7f215e3e72 Use fixed-length array in revert_mclms() 2012-02-16 20:14:18 +06:00
Kostya Shishkov 17b11ffec7 proresenc: initialise 'sign' variable 2012-02-16 06:48:24 +01:00
Michael Niedermayer b92ecda2c9 snow: zero scratchbuf.
This should fix some valgrind warnings.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-16 06:25:32 +01:00
Michael Niedermayer 0f155c8601 fate: trying to fix "libavcodec/dct-test.o:(.rodata+0xdc): undefined reference to fdct_altivec"
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-16 06:15:40 +01:00
Christophe GISQUET f3e084909b mpegaudio: replace memcpy by SIMD code
By replacing memcpy with an unrolled loop using the alignment knowledge
it has, some speedup can be obtained.

Before (gcc 4.6.1): ~400 cycles
After: ~370 cycles

Overall, around 2% speed increase when decoding a 2400s mp3 to f32le.

Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-02-15 20:11:54 -08:00
Ronald S. Bultje ae591aeea5 vc1: prevent using last_frame as a reference for I/P first frame.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-02-15 19:58:10 -08:00
Michael Niedermayer 28ba1027ec Merge remote-tracking branch 'shariman/wmall'
* shariman/wmall:
  Do not try to read residue if ave_mean <= 1
  Move some variable declarations to comply with C90
  Cosmetics: fix some whitespace errors
  Support 24-bit decoding
  wmall: remove ;;

Conflicts:
	libavcodec/wmalosslessdec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-16 04:01:24 +01:00
Pilotware 7606825350 Handle interlaced formats (two coding units together make one full frame)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-16 03:05:22 +01:00
Michael Niedermayer 6cb2085278 Merge remote-tracking branch 'qatar/master'
* qatar/master: (27 commits)
  ppc: Add ff_ prefix to nonstatic symbols
  sh4: Add ff_ prefix to nonstatic symbols
  mpegvideo: Add ff_ prefix to nonstatic functions
  rtjpeg: Add ff_ prefix to nonstatic symbols
  rv: Add ff_ prefix to nonstatic symbols
  vp56: Add ff_ prefix to nonstatic symbols
  vorbis: Add ff_ prefix to nonstatic symbols
  msmpeg4: Add ff_ prefix to nonstatic symbols
  vc1: Add ff_ prefix to nonstatic symbols
  msmpeg4: Add ff_ prefixes to nonstatic symbols
  snow: Add ff_ prefix to nonstatic symbols
  mpeg12: Add ff_ prefix to nonstatic symbols
  mpeg4: Add ff_ prefixes to nonstatic symbols
  lagarith: Add ff_ prefix to lag_rac_init
  libavcodec: Add ff_ prefix to j_rev_dct*
  dsputil: Add ff_ prefix to inv_zigzag_direct16
  libavcodec: Prefix fdct_ifast, fdct_ifast248
  dsputil: Add ff_ prefix to the dsputil*_init* functions
  libavcodec: Add ff_ prefix to some nonstatic symbols
  vlc/rl: Add ff_ prefix to the nonstatic symbols
  ...

Conflicts:
	libavcodec/Makefile
	libavcodec/allcodecs.c
	libavcodec/dnxhddec.c
	libavcodec/ffv1.c
	libavcodec/h263.h
	libavcodec/h263dec.c
	libavcodec/h264.c
	libavcodec/mpegvideo.c
	libavcodec/mpegvideo_enc.c
	libavcodec/nuv.c
	libavcodec/ppc/dsputil_ppc.c
	libavcodec/proresdsp.c
	libavcodec/svq3.c
	libavcodec/version.h
	libavformat/dv.h
	libavformat/dvenc.c
	libavformat/matroskadec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-16 01:34:37 +01:00
Michael Niedermayer 8812c97b98 proresenc: Rename for incoming NIH-syndrom.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-16 00:37:17 +01:00
Mashiat Sarker Shakkhar d1ea26f640 Do not try to read residue if ave_mean <= 1
Otherwise, we end up with with log(0) or log(1). av_ceil_log2 simply
assumes the argument is non-zero and returns wrong result when it is.
(Not that there is a proper way of returning an undefined value.)
2012-02-16 02:39:30 +06:00
Mashiat Sarker Shakkhar 59df25effd Move some variable declarations to comply with C90 2012-02-16 02:34:31 +06:00
Mashiat Sarker Shakkhar 3ce50bf51d Cosmetics: fix some whitespace errors 2012-02-16 02:33:30 +06:00
Mashiat Sarker Shakkhar 6345184fc9 Support 24-bit decoding 2012-02-16 02:25:45 +06:00
Michael Niedermayer dc08e7ea0f wmall: remove ;;
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-16 02:21:35 +06:00
Martin Storsjö 210f72845c ppc: Add ff_ prefix to nonstatic symbols
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-15 22:07:29 +02:00
Martin Storsjö f73673a770 sh4: Add ff_ prefix to nonstatic symbols
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-15 22:07:26 +02:00
Martin Storsjö efd29844eb mpegvideo: Add ff_ prefix to nonstatic functions
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-15 22:07:23 +02:00
Martin Storsjö 0ca1bdb37d rtjpeg: Add ff_ prefix to nonstatic symbols
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-15 22:07:20 +02:00
Martin Storsjö 6c28d65754 rv: Add ff_ prefix to nonstatic symbols
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-15 22:07:17 +02:00
Martin Storsjö d1b357d78b vp56: Add ff_ prefix to nonstatic symbols
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-15 22:07:14 +02:00
Martin Storsjö 27cfdc3e4f vorbis: Add ff_ prefix to nonstatic symbols
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-15 22:07:11 +02:00
Martin Storsjö 04d3822524 msmpeg4: Add ff_ prefix to nonstatic symbols
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-15 22:07:08 +02:00
Martin Storsjö 5f2c159c0f vc1: Add ff_ prefix to nonstatic symbols
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-15 22:07:05 +02:00
Martin Storsjö 1fec055066 msmpeg4: Add ff_ prefixes to nonstatic symbols
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-15 22:07:01 +02:00
Martin Storsjö 35e02a3d0e snow: Add ff_ prefix to nonstatic symbols
This allows getting rid of a hack for conflicting symbol/define
names.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-15 22:06:58 +02:00
Martin Storsjö d6c8dcb8ac mpeg12: Add ff_ prefix to nonstatic symbols
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-15 22:06:56 +02:00
Martin Storsjö 6f13a371ec mpeg4: Add ff_ prefixes to nonstatic symbols
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-15 22:06:52 +02:00
Martin Storsjö e9ca85e714 lagarith: Add ff_ prefix to lag_rac_init
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-15 22:06:49 +02:00
Martin Storsjö c8e1b2fbc9 libavcodec: Add ff_ prefix to j_rev_dct*
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-15 22:06:46 +02:00
Martin Storsjö 873c89e2a6 dsputil: Add ff_ prefix to inv_zigzag_direct16
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-15 22:06:42 +02:00
Martin Storsjö 3e2efacdd8 libavcodec: Prefix fdct_ifast, fdct_ifast248
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-15 22:06:38 +02:00
Martin Storsjö 9cf0841ef3 dsputil: Add ff_ prefix to the dsputil*_init* functions
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-15 22:06:34 +02:00
Martin Storsjö 99560a4caa libavcodec: Add ff_ prefix to some nonstatic symbols
Prefix the functions atrac_generate_tables, atrac_iqmf, dct_quantize_c.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-15 22:06:29 +02:00
Martin Storsjö e96b4a53df vlc/rl: Add ff_ prefix to the nonstatic symbols
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-15 22:06:26 +02:00
Martin Storsjö ddce8953a5 h263: Add ff_ prefix to nonstatic symbols
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-15 22:06:22 +02:00
Martin Storsjö 167f3b8de7 libavformat: Add an ff_ prefix to some lavf internal symbols
Prefix the functions/tables brktimegm, pcm_read_seek,
dv_offset_reset, voc_get_packet, codec_movaudio_tags,
codec_movvideo_tags.

After this, lavf has no global symbols without the proper prefix.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-15 22:06:17 +02:00
Martin Storsjö a082ac4125 mpegvideo: Remove a leftover function declaration
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-15 22:06:12 +02:00
Martin Storsjö 735be9cdfb rtsp: Make rtsp_demuxer_class static
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-15 22:06:07 +02:00
Michael Niedermayer 60991ad6ae ffmpeg: Fix image allocation.
This probably fixes some of the use of uninitialized issues valgrind shows in fate.
It might also fix other issues.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-15 20:35:14 +01:00
Michael Niedermayer 25893ad6c9 ffv1: Warn the user if transparency is stored.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-15 20:35:14 +01:00
Nicolas George bd5080b1b0 af_pan: comment a tricky piece of code. 2012-02-15 20:04:05 +01:00
Clément Bœsch cba4e2cbbc pan: fix uninitialized channel_id variable.
Fix broken parsing with pan=2:FL=FR:FR=FL and similar.
2012-02-15 10:26:30 +01:00
Clément Bœsch 95317821ea audioconvert: consistent use of FF_ARRAY_ELEMS for channel_layout_map. 2012-02-15 10:26:25 +01:00
Kostya Shishkov 1a265f6187 prores encoder 2012-02-15 07:14:51 +01:00
Kostya Shishkov 8835c2c829 prores: move data shared between decoder and encoder to common file 2012-02-15 07:14:45 +01:00
Kostya Shishkov 3ec623c22f prores: fix multithreaded decoding case when slice quantisers are not the same
Since quantisation matrices are stored in context, decoding slices with
different quantisers in parallel leads to unpredictable content of
aforementioned matrices and wrong output picture thereof.
2012-02-15 07:14:35 +01:00
Michael Niedermayer c980be9e3a Merge remote-tracking branch 'qatar/master'
* qatar/master: (21 commits)
  CDXL demuxer and decoder
  hls: Re-add legacy applehttp name to preserve interface compatibility.
  hlsproto: Rename the functions and context
  hlsproto: Encourage users to try the hls demuxer instead of the proto
  doc: Move the hls protocol section into the right place
  libavformat: Rename the applehttp protocol to hls
  hls: Rename the functions and context
  libavformat: Rename the applehttp demuxer to hls
  rtpdec: Support H263 in RFC 2190 format
  rv30: check block type validity
  ttadec: CRC checking
  movenc: Support muxing VC1
  avconv: Don't split out inline sequence headers when stream copying VC1
  rv34: handle size changes during frame multithreading
  rv40: prevent undefined signed overflow in rv40_loop_filter()
  rv34: use AVERROR return values in ff_rv34_decode_frame()
  rv34: use uint16_t for RV34DecContext.deblock_coefs
  librtmp: Add "lib" prefix to librtmp URLProtocol declarations.
  movenc: Use defines instead of hardcoded numbers for RTCP types
  smjpegdec: implement seeking
  ...

Conflicts:
	Changelog
	doc/general.texi
	libavcodec/avcodec.h
	libavcodec/rv30.c
	libavcodec/tta.c
	libavcodec/version.h
	libavformat/Makefile
	libavformat/allformats.c
	libavformat/version.h
	libswscale/x86/swscale_mmx.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-15 01:52:14 +01:00
Michael Niedermayer e7dbfa59f2 swscale: enable some more SIMD functions.
They no longer just segfault.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-15 00:41:40 +01:00
Paul B Mahol 83e2e9315a ffv1: PIX_FMT_GRAY8 support
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-15 00:41:40 +01:00
Clément Bœsch d3b06399ff lavfi/silencedetect: use av_ts2timestr() macro. 2012-02-15 00:22:47 +01:00
Paul B Mahol dc4e57489f CDXL demuxer and decoder
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-02-14 22:32:53 +01:00
Michael Niedermayer 94bc672489 swscale: yuv2422_2_c_template() add cliping.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-14 21:33:45 +01:00
Michael Niedermayer f03a029939 swscale: Add cliping to yuv2422_1_c_template()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-14 21:33:40 +01:00
Michael Niedermayer ef96bf294d swscale: Fix rounding in yuv2mono_1_c_template()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-14 21:33:30 +01:00
Michael Niedermayer c0c32a3704 swscale: Fix rounding in yuv2rgb_1_c_template()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-14 21:33:20 +01:00
Michael Niedermayer 2bc610ddc5 swscale: yuv2422_1_c_template: fix rounding
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-14 21:33:08 +01:00
Alex Converse c1df37e59b hls: Re-add legacy applehttp name to preserve interface compatibility. 2012-02-14 12:13:46 -08:00
Martin Storsjö 8c62d83fe5 hlsproto: Rename the functions and context
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-14 20:05:32 +02:00
Martin Storsjö 9cb9c6c42d hlsproto: Encourage users to try the hls demuxer instead of the proto
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-14 20:05:32 +02:00
Martin Storsjö 3975ca8957 doc: Move the hls protocol section into the right place
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-14 20:05:32 +02:00
Martin Storsjö 8bdab32f4e libavformat: Rename the applehttp protocol to hls
Keep the old protocol name around for backwards compatibility
until the next bump.

Deprecate the method of implicitly assuming the nested protocol.
For applehttp://server/path, it might have felt logical, but
supporting hls://server/path isn't quite as intuitive. Therefore
only support hls+http://server/path from now on.

Using this protocol at all is discouraged, since the hls demuxer
is more complete and fits into the architecture better. There
have been cases where the protocol implementation worked better
than the demuxer, but this should no longer be the case.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-14 20:05:32 +02:00
Martin Storsjö 65cd7bf32f hls: Rename the functions and context
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-14 20:05:32 +02:00
Martin Storsjö 2772258a98 libavformat: Rename the applehttp demuxer to hls
When this demuxer was created, there didn't seem to be any
consensus of a common short name for this protocol. Now
the consensus seems to be to call it hls.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-14 20:05:31 +02:00
Martin Storsjö 08bddfcde5 rtpdec: Support H263 in RFC 2190 format
This is different from the "modern" RTP payload formats for H263
as defined by RFC 4629, 2429 and 3555. According to the newer RFCs,
this old one is to be considered deprecated and only be used for
interoperating with legacy systems.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-14 20:05:31 +02:00
Janne Grunau 18d1d5886b rv30: check block type validity
Prevents crashes with the fuzzed samples from bugs 88, 89 and 125 after
"golomb: avoid infinite loop on all-zero input".
2012-02-14 19:03:10 +01:00
Paul B Mahol 2af3dc8698 ttadec: CRC checking
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-02-14 13:00:55 -05:00
Stefano Sabatini f89f9bdadd lavfi/ashowinfo: only print checksum for the existing planes
Make the output a bit nicer.
2012-02-14 18:01:57 +01:00
Stefano Sabatini 1e6408a18e lavfi/showinfo: only print checksum for the existing planes
Make the output a bit nicer.
2012-02-14 18:01:50 +01:00
Stefano Sabatini 175ab5f9a9 lavfi/*showinfo: use av_ts2* macros in showinfo and ashowinfo 2012-02-14 18:01:43 +01:00
Stefano Sabatini 5d12b83ff1 ffmpeg.c: implement -debug_ts option
Mostly useful for debugging purposes.
2012-02-14 18:01:37 +01:00
Martin Storsjö 4ace130ee6 movenc: Support muxing VC1
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-14 16:12:18 +02:00
Martin Storsjö ae5a935574 avconv: Don't split out inline sequence headers when stream copying VC1
This is required when stream copying VC1 in ismv - there's one
global header in the moov atom, but keyframes have a separate
sequence header prepended.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-14 16:12:15 +02:00
Janne Grunau 2bd730010d rv34: handle size changes during frame multithreading
Factors all context dynamic memory handling to its own functions.
Fixes bug 220.
2012-02-14 14:46:11 +01:00
Janne Grunau b54b40b33c rv40: prevent undefined signed overflow in rv40_loop_filter() 2012-02-14 14:42:55 +01:00
Janne Grunau 29330721b0 rv34: use AVERROR return values in ff_rv34_decode_frame()
Also adds an error message.
2012-02-14 14:42:55 +01:00
Janne Grunau bf61ef2316 rv34: use uint16_t for RV34DecContext.deblock_coefs
It is used as bitfield with 16 entries.
2012-02-14 14:42:55 +01:00
Carl Eugen Hoyos 186923758d Fix compilation with old yasm that does not support AVX. 2012-02-14 12:03:55 +01:00
Diego Biurrun c3b57d6e76 librtmp: Add "lib" prefix to librtmp URLProtocol declarations.
This allows easily differentiating between both implementations within the build
system and combining the native implementation for plain RTMP with librtmp for
the RTMPE, RTMPS, RTMPT, RTMPTE protocol variants.
2012-02-14 11:37:01 +01:00
Martin Storsjö df6050188c movenc: Use defines instead of hardcoded numbers for RTCP types
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-14 12:23:07 +02:00
Paul B Mahol 1c77a5307f smjpegdec: implement seeking
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-02-14 10:12:44 +01:00
Diego Biurrun 9d03cb9fc5 swscale: Remove some write-only variables related to alpha handling. 2012-02-14 10:12:43 +01:00
Michael Niedermayer 1fbd905bbb Merge remote-tracking branch 'qatar/master'
* qatar/master:
  swscale: fix crashes in yuv2yuvX on x86-32.
  sunrast: Add fate test for gray8.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-14 03:24:27 +01:00
Paul B Mahol 148d1f4799 lavc: add missing PIX_FMT_YUVA444P
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-14 02:26:42 +01:00
Michael Niedermayer 04b53746ad Merge remote-tracking branch 'qatar/master'
* qatar/master:
  rtpdec: Use 4 byte startcodes for H.264
  matroskadec: Mark variable as av_unused.
  Move some conditionally used variables into the block where they are used.
  Drop some completely unnecessary av_unused attributes.
  swscale: Remove unused variable alpMmxFilter.
  Drop unnecessary av_uninit attributes from some variable declarations.
  movenc: Support muxing wmapro in ismv/isma
  mpegtsenc: Add an AVOption for forcing a new PAT/PMT/SDT to be written
  swscale: move YUV2PACKED16WRAPPER() macro down to where it is used.
  swscale: handle gray16 as a "planar" YUV format (Y-only, of course).
  swscale: use yuv2packed1() functions for unscaled chroma also.
  swscale: fix incorrect chroma bias in yuv2rgb48_1_c().
  swscale: fix invalid memory accesses in yuvpacked1() functions.
  Move PS2 MMI code below the mips subdirectory, where it belongs.
  mips: Move MMI function declarations to a header.
  build: Set correct dependencies for rtmp* protocols implemented by librtmp.

Conflicts:
	libavcodec/ac3enc_template.c
	libavformat/mpegtsenc.c
	libswscale/output.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-14 01:53:31 +01:00
Michael Niedermayer 387783749f jpeglsdec: fix bpp & limit.
Fixes: Tikcet969

Thanks-to: ITU for the freely available spec.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-14 01:22:38 +01:00
Michael Niedermayer 00ab9cdae1 jpeglsdec: Prevent out of array write.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-14 01:22:38 +01:00
Michael Niedermayer dda713f870 iff: Fix decode_ham_plane32() buf_size.
The wrong variable was passed into decode_ham_plane32()
Fixes: Ticket922

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-14 01:22:38 +01:00
Clément Bœsch b986590810 ffmpeg: remove unneeded ost->picref check.
If there ost->picref is NULL, it will likely crash anyway a few lines
below by dereferencing it in order to access video attribute.
2012-02-13 23:32:39 +01:00
Clément Bœsch c214e98634 ffmpeg: remove pointless avcodec_get_frame_defaults().
filtered_frame is overwritten just below anyway.
2012-02-13 23:32:39 +01:00
Clément Bœsch 73413e6bca ffmpeg: raise ENOMEM on avfilter_graph_alloc() failure. 2012-02-13 23:32:35 +01:00
Ronald S. Bultje 771bab7f57 swscale: fix crashes in yuv2yuvX on x86-32.
They were introduced in an earlier commit that introduced use of named
arguments. One cause was a typo, a second cause appears to be a bug in
x264asm that I work around by not using named arguments.
2012-02-13 13:41:13 -08:00
Aneesh Dogra 186dcbcb50 sunrast: Add fate test for gray8.
Signed-off-by: Janne Grunau <janne-libav@jannau.net>
2012-02-13 22:29:22 +01:00
Matthew Szatmary 7dfe8f5557 rtpdec: Use 4 byte startcodes for H.264
If muxing into mpegts, 4 byte startcodes for the first NAL
of an access unit is required. Thus it is simplest for the
RTP depacketizer to just use 4 byte startcodes everywhere.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-13 23:05:10 +02:00
Reimar Döffinger 048cc80292 Update mkv seek tests.
Seek beyond the end will now directly return an error instead
of claiming to succeed and then return EOF immediately on next read.
This change is because before 47e015e6f1
mkv seek incorrectly never failed.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-02-13 21:48:20 +01:00
Reimar Döffinger 47e015e6f1 matroskadec: properly fall back to generic seek.
In particular, detect when the index is obviously broken.
This fixes the worst symptoms of trac issue #958 and makes
sense to allow seeking in files without index.
However it is possible that there still is an index parsing bug
with that file.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-02-13 20:04:09 +01:00
Reimar Döffinger c18899d432 matroskadec: reset num_levels on seek.
Otherwise when we run into levels beyond the max. allowed
playback will be permanently broken.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-02-13 20:04:09 +01:00
Diego Biurrun 529506b5f6 matroskadec: Mark variable as av_unused.
This avoids unused variable warnings when zlib/bzlib are not available.
2012-02-13 19:20:54 +01:00
Diego Biurrun 6df5c528ca Move some conditionally used variables into the block where they are used.
This allows dropping the av_unused argument from them.
2012-02-13 19:20:54 +01:00
Diego Biurrun 7331b6e718 Drop some completely unnecessary av_unused attributes. 2012-02-13 19:20:53 +01:00
Diego Biurrun 92fed11352 swscale: Remove unused variable alpMmxFilter. 2012-02-13 19:20:53 +01:00
Diego Biurrun a8798c7eb9 Drop unnecessary av_uninit attributes from some variable declarations.
Recent versions of gcc (4.4+) no longer give false positive warnings.
2012-02-13 19:20:52 +01:00
Martin Storsjö 5d561514b7 movenc: Support muxing wmapro in ismv/isma
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-13 19:57:28 +02:00
Martin Storsjö ddf422803b mpegtsenc: Add an AVOption for forcing a new PAT/PMT/SDT to be written
When segmenting the output from the mpegts muxer, one can
now set this option when cutting to a new segment, to make sure
the next segment starts with PAT/PMT/SDT.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-13 17:31:05 +02:00
Ronald S. Bultje 3cac475655 swscale: move YUV2PACKED16WRAPPER() macro down to where it is used. 2012-02-13 07:14:05 -08:00
Ronald S. Bultje c0b87359b2 swscale: handle gray16 as a "planar" YUV format (Y-only, of course).
This allows removing any gray16-specific code, which is essentially
identical to the per-plane code in yuv2plane*().
2012-02-13 07:14:05 -08:00
Ronald S. Bultje 9d9c846491 swscale: use yuv2packed1() functions for unscaled chroma also. 2012-02-13 07:14:04 -08:00
Ronald S. Bultje d63b7d8c37 swscale: fix incorrect chroma bias in yuv2rgb48_1_c(). 2012-02-13 07:14:04 -08:00
Ronald S. Bultje 1ca7dc60d2 swscale: fix invalid memory accesses in yuvpacked1() functions. 2012-02-13 07:14:04 -08:00
Diego Biurrun 0bf184e59c Move PS2 MMI code below the mips subdirectory, where it belongs.
Also give a more suitable name to the MMI-optimized IDCT;
it is not PS2-specific, as the name currently suggests.
2012-02-13 09:59:53 +01:00
Diego Biurrun 75f11901b5 mips: Move MMI function declarations to a header.
This fixes compilation with -Werror=missing-prototypes.
2012-02-13 09:59:52 +01:00
Diego Biurrun d1c4ec7f5e build: Set correct dependencies for rtmp* protocols implemented by librtmp. 2012-02-13 09:59:51 +01:00
Michael Niedermayer 4e04e1b81e Merge remote-tracking branch 'qatar/master'
* qatar/master:
  swscale: convert yuv2yuvX() to using named arguments.
  swscale: rename "dstw" to "w" to prevent name collisions.
  swscale: use named registers in yuv2yuv1_plane() place.
  lavf: fix aspect ratio mismatch message.
  avconv: set AVFormatContext.duration from '-t'
  cljr: implement encode2.
  cljr: set the properties of the coded_frame, not input frame.
  dnxhdenc: switch to encode2.
  bmpenc: switch to encode2().

Conflicts:
	libavcodec/bmpenc.c
	libavcodec/cljr.c
	libavformat/utils.c
	tests/ref/vsynth1/cljr
	tests/ref/vsynth2/cljr

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-13 02:06:44 +01:00
Reimar Döffinger f51a072160 Fix compilation without HAVE_AVX.
%ifdef HAVE_AVX must now be %if HAVE_AVX.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-02-12 21:42:31 +01:00
Michael Niedermayer 18a7f7465e threads: Perform the generic progress cleanup more carefully.
The cleanup is only done now when
a picture is returned (assuming that it has to be done when its returned)
a error is returned (assuming that there will be no further progress on the frame)
the codec is not h264 (this is still needed due to some deadlocks in realvideo)

This fixes a decoding regression with 00017.MTS

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-12 20:24:29 +01:00
Michael Niedermayer 6be0960851 threads: move state update after progress cleanup.
This order is more logic and might prevent a race.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-12 20:24:29 +01:00
Michael Niedermayer f900d60178 h264: Mark previous field as done before throwing it away.
This fixes some deadlock without the generic cleanup code.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-12 20:24:29 +01:00
Andrey Utkin b66b58f7b0 Fix aspect ratio mismatch message
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-12 20:24:29 +01:00
Reimar Döffinger c15f3bd3db Simplify: use local variable with same contents directly.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-02-12 18:56:07 +01:00
Reimar Döffinger ff92549195 Fix Theora-in-ogg keyframe handling.
To make seeking work correctly, we must write a new granule for
each keyframe.
Unfortunately we currently have no regression tests due to no
included Theora encoder.
A test based on -vcodec copy from a Theora FATE sample should
probably be added.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-02-12 18:56:06 +01:00
Reimar Döffinger b223035511 Detect and check for CMOV.
Some MMX-only CPUs do not have support for CMOV.
All SSE/MMX2 CPUs should be fine, thus no check was
added to those functions.
See also https://sourceforge.net/tracker/?func=detail&aid=3358347&group_id=205275&atid=992986

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-02-12 18:56:06 +01:00
Ronald S. Bultje 3e23badd83 swscale: convert yuv2yuvX() to using named arguments. 2012-02-12 08:27:51 -08:00
Ronald S. Bultje 8c433d8a03 swscale: rename "dstw" to "w" to prevent name collisions.
"dstw" can collide with the word-version of the "dst" argument, causing
all kind of weird stuff down the pipe.
2012-02-12 08:27:50 -08:00
Ronald S. Bultje ef66a0ed2e swscale: use named registers in yuv2yuv1_plane() place.
Most of the function had been converted before, but I forgot this
particular location.
2012-02-12 08:27:50 -08:00
Andrey Utkin e3cc617263 lavf: fix aspect ratio mismatch message.
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-02-12 17:18:24 +01:00
Andrey Utkin c22e2ec9d1 avconv: set AVFormatContext.duration from '-t'
Set output files duration to recording_time option, if given.
Rationale: to save duration into metadata for file that is written to
non-seekable output, for formats like FLV (with metadata at beginning).

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-02-12 17:15:41 +01:00
Anton Khirnov 3dffa1b46c cljr: implement encode2. 2012-02-12 08:05:57 +01:00
Anton Khirnov 177bb4bf50 cljr: set the properties of the coded_frame, not input frame. 2012-02-12 08:05:38 +01:00
Anton Khirnov 89829242a6 dnxhdenc: switch to encode2. 2012-02-12 08:03:46 +01:00
Anton Khirnov 3f77c41171 bmpenc: switch to encode2(). 2012-02-12 08:02:28 +01:00
Michael Niedermayer cd1c12b5c5 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  FATE: update reference for seek-alac_mp4
  sunrast: Return AVERROR values instead of -1.
  sunrast: Add support for gray8 decoding.
  swscale: enforce a minimum filtersize.
  alacenc: use AVCodec.encode2()
  alacenc: cosmetics: indentation
  alacenc: consolidate bitstream writing into a single function.
  alacenc: only encode frame size in header for a final smaller frame
  alacenc: store current frame size in AlacEncodeContext.
  alacenc: return AVERROR codes in alac_encode_frame()
  alacenc: calculate a new max frame size for the final small frame
  alacenc: pretty-printing and other cosmetics
  alacenc: fix error handling and potential memleaks in alac_encode_init()
  alacenc: do not set coded_frame->key_frame
  alacenc: do not set bits_per_coded_sample
  alacenc: remove unneeded frame_size check in alac_encode_frame()
  tta: error out if samplerate is zero.
  ttadec: fix invalid free when an error occurs while decoding 24-bit tta
  wavpack: add needed braces for 2 statements inside an if block

Conflicts:
	tests/ref/acodec/alac

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-12 01:06:13 +01:00
Carl Eugen Hoyos 289520fd97 Reduce the verbosity of a mpeg1/2 invalid intra-matrix warning.
Fixes ticket #973.
2012-02-12 00:20:56 +01:00
Michael Niedermayer 85f25cfa19 ffmpeg: fix passlogfile with multiple libx264 streams.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-12 00:03:26 +01:00
Paul B Mahol 07dbea7033 tta: reindent
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-11 23:59:19 +01:00
Pavel Koshevoy 277e52845e Modified to generate PAT/PMT for video keyframes
This is so that TS fragments produced by
http://code.google.com/p/httpsegmenter/
would be compatible with JW Player.

A new member variable prev_payload_key was added to MpegTSWriteStream
to help detect transition from non-key to key frame, so that
PAT/PMT would not be produced for every keyframe in intra-only videos.

Signed-off-by: Pavel Koshevoy <pkoshevoy@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-11 23:57:35 +01:00
Michael Niedermayer 69494fd5c5 lagarith: Fix out of array reads.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-11 23:57:35 +01:00
Carl Eugen Hoyos 2396206fb4 ffv1: Assume encoding all bits is wanted if bits_per_raw_sample == 0. 2012-02-11 23:45:04 +01:00
Carl Eugen Hoyos cadd9ab6aa Cosmetics: Move a block in ffv1's encode_init().
Makes the next patch smaller.
2012-02-11 23:42:58 +01:00
Justin Ruggles b498867d66 FATE: update reference for seek-alac_mp4
This should have been updated in b590f3a7bf.
2012-02-11 16:41:01 -05:00
Aneesh Dogra 41afdd913a sunrast: Return AVERROR values instead of -1.
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-02-11 13:32:29 -08:00
Aneesh Dogra 4fbccfab23 sunrast: Add support for gray8 decoding.
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-02-11 11:05:43 -08:00
Ronald S. Bultje dae2ce361a swscale: enforce a minimum filtersize.
At very small dimensions, this calculation could lead to zero-sized
filters, which leads to uninitialized output, zero-sized allocations,
loop overflows in SIMD that uses do{..}while(i++<filtersize); instead
of for(i=0;i<filtersize;i++){..} and several other similar failures.
Therefore, require a minimum filtersize of 1.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-02-11 10:06:50 -08:00
Justin Ruggles 764852d653 alacenc: use AVCodec.encode2() 2012-02-11 12:49:23 -05:00
Justin Ruggles bee80054f7 alacenc: cosmetics: indentation 2012-02-11 12:49:22 -05:00
Justin Ruggles b6e8ff72ea alacenc: consolidate bitstream writing into a single function.
Simplifies use of verbatim mode.
2012-02-11 12:49:22 -05:00
Justin Ruggles b590f3a7bf alacenc: only encode frame size in header for a final smaller frame
Otherwise it is not needed because it matches the frame size as encoded in
the extradata.
2012-02-11 12:49:22 -05:00
Justin Ruggles ba821b098b alacenc: store current frame size in AlacEncodeContext.
This avoids an indirection and will simplify implementation of encode2()
2012-02-11 12:49:22 -05:00
Justin Ruggles 65d15aec77 alacenc: return AVERROR codes in alac_encode_frame() 2012-02-11 12:49:22 -05:00
Justin Ruggles 302daf5800 alacenc: calculate a new max frame size for the final small frame
Gives a better estimate of buffer requirements and a better decision of
whether or not to use verbatim mode.
2012-02-11 12:49:22 -05:00
Justin Ruggles fc9cf0b2a6 alacenc: pretty-printing and other cosmetics 2012-02-11 12:49:22 -05:00
Justin Ruggles 51c2483862 alacenc: fix error handling and potential memleaks in alac_encode_init() 2012-02-11 12:49:22 -05:00
Justin Ruggles 6e63228323 alacenc: do not set coded_frame->key_frame
It is already set in avcodec_alloc_frame()
2012-02-11 12:49:21 -05:00
Justin Ruggles 64fe3eaeb3 alacenc: do not set bits_per_coded_sample
encoded ALAC does not have a fixed number of bits per sample
2012-02-11 12:49:21 -05:00
Justin Ruggles 43a4cb070b alacenc: remove unneeded frame_size check in alac_encode_frame() 2012-02-11 12:49:21 -05:00
Ronald S. Bultje 7416d61036 tta: error out if samplerate is zero.
Prevents a division by zero later on.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-02-11 08:13:53 -08:00
Michael Niedermayer fd0b8d5986 ansi: Fix use of uninitalized width/height warning.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-11 08:23:42 +01:00
Justin Ruggles 6ab681a4c1 ttadec: fix invalid free when an error occurs while decoding 24-bit tta 2012-02-10 20:35:10 -05:00
Justin Ruggles 9d7cee50aa wavpack: add needed braces for 2 statements inside an if block 2012-02-10 20:27:55 -05:00
Michael Niedermayer ed83f97235 tta: Add some safety precautions to avoid freeing things that have not been allocated.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-11 02:06:24 +01:00
Paul B Mahol c6abf21492 tta: do not leak memory if bps == 3
In bps == 3 case output is decoded directly.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-11 02:02:01 +01:00
Ingo Brückl a697a185e4 buildsys: Fix shared lib build of MPlayer.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-11 01:40:52 +01:00
Michael Niedermayer a78f6b8cb9 Merge remote-tracking branch 'qatar/master'
* qatar/master: (38 commits)
  v210enc: remove redundant check for pix_fmt
  wavpack: allow user to disable CRC checking
  v210enc: Use Bytestream2 functions
  cafdec: Check return value of avio_seek and avoid modifying state if it fails
  yop: Check return value of avio_seek and avoid modifying state if it fails
  tta: Check return value of avio_seek and avoid modifying state if it fails
  tmv: Check return value of avio_seek and avoid modifying state if it fails
  r3d: Check return value of avio_seek and avoid modifying state if it fails
  nsvdec: Check return value of avio_seek and avoid modifying state if it fails
  mpc8: Check return value of avio_seek and avoid modifying state if it fails
  jvdec: Check return value of avio_seek and avoid modifying state if it fails
  filmstripdec: Check return value of avio_seek and avoid modifying state if it fails
  ffmdec: Check return value of avio_seek and avoid modifying state if it fails
  dv: Check return value of avio_seek and avoid modifying state if it fails
  bink: Check return value of avio_seek and avoid modifying state if it fails
  Check AVCodec.pix_fmts in avcodec_open2()
  svq3: Prevent illegal reads while parsing extradata.
  remove ParseContext1
  vc1: use ff_parse_close
  mpegvideo parser: move specific fields into private context
  ...

Conflicts:
	libavcodec/4xm.c
	libavcodec/aacdec.c
	libavcodec/h264.c
	libavcodec/h264.h
	libavcodec/h264_cabac.c
	libavcodec/h264_cavlc.c
	libavcodec/mpeg4video_parser.c
	libavcodec/svq3.c
	libavcodec/v210enc.c
	libavformat/cafdec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-11 01:22:22 +01:00
Reimar Döffinger 394d41ee30 Partially revert "Fix png decoding on x86."
This partially reverts commit 58dabf7bf2.
It is no longer necessary to use unaligned mov.
The swapped mov argument fix remains though.
2012-02-10 23:18:52 +01:00
Reimar Döffinger 3fe00cac71 Fix bitexact intra mismatch control.
The DC coefficient should be included, too.
This probably was missed because DC quantizer is always
even for MPEG-1/2 but this function is also used for MPEG-4.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-02-10 23:18:52 +01:00
Reimar Döffinger 5338566eaf mpegvideodec: minor simplifications.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-02-10 23:18:52 +01:00
Michael Niedermayer af46ca7356 msmpeg4: replace 999999 by INT_MAX and initial by a valid index.
Fixes Ticket990

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-10 22:50:16 +01:00
Paul B Mahol f98ede7e61 v210enc: remove redundant check for pix_fmt
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-02-10 15:59:23 -05:00
Paul B Mahol c388558d31 wavpack: allow user to disable CRC checking
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-02-10 15:54:08 -05:00
Aneesh Dogra eeb9e61a51 v210enc: Use Bytestream2 functions
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-02-10 15:38:24 -05:00
Joakim Plate af701d42c3 cafdec: Check return value of avio_seek and avoid modifying state if it fails
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-02-10 15:27:50 -05:00
Joakim Plate b69c2e0e6d yop: Check return value of avio_seek and avoid modifying state if it fails
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-02-10 15:27:50 -05:00
Joakim Plate e54165aa39 tta: Check return value of avio_seek and avoid modifying state if it fails
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-02-10 15:27:49 -05:00
Joakim Plate 066ad0926a tmv: Check return value of avio_seek and avoid modifying state if it fails
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-02-10 15:27:49 -05:00
Joakim Plate c7b08bc0a7 r3d: Check return value of avio_seek and avoid modifying state if it fails
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-02-10 15:27:49 -05:00
Joakim Plate 8dcd00eabd nsvdec: Check return value of avio_seek and avoid modifying state if it fails
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-02-10 15:27:49 -05:00
Joakim Plate 97aa092997 mpc8: Check return value of avio_seek and avoid modifying state if it fails
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-02-10 15:27:49 -05:00
Joakim Plate 9712e82a4e jvdec: Check return value of avio_seek and avoid modifying state if it fails
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-02-10 15:27:49 -05:00
Joakim Plate 64476d7ee8 filmstripdec: Check return value of avio_seek and avoid modifying state if it fails
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-02-10 15:27:49 -05:00
Joakim Plate d7c11b114b ffmdec: Check return value of avio_seek and avoid modifying state if it fails
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-02-10 15:27:49 -05:00
Joakim Plate 8332321c57 dv: Check return value of avio_seek and avoid modifying state if it fails
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-02-10 15:27:49 -05:00
Joakim Plate 3371e89640 bink: Check return value of avio_seek and avoid modifying state if it fails
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-02-10 15:27:49 -05:00
Clément Bœsch a3c4371f3c ffmpeg: prefer NULL over 0 for av_log context pointer parameter. 2012-02-10 20:47:42 +01:00
Clément Bœsch 158bd596a6 ffmpeg: move quality parameter to do_video_out() scope.
This make do_video_out() and do_audio_out() consistent. Also simplifies
callers.
2012-02-10 20:13:36 +01:00
Clément Bœsch 63b5e99fab ffmpeg: make use of ret error out in transcode_video(). 2012-02-10 20:13:36 +01:00
Clément Bœsch 086fc4d765 ffmpeg: move filtered_frame to the CONFIG_AVFILTER scope.
This simplifies a bit the #ifdefery.
2012-02-10 20:13:36 +01:00
Clément Bœsch 9303b794b8 ffmpeg: move do_video_stats() above do_video_out().
This avoid a forward declaration.
2012-02-10 20:12:52 +01:00
Clément Bœsch a78dd826ee ffmpeg: move video stats code to do_video_out().
This will allow some simplifications in transcode_video().
2012-02-10 20:12:52 +01:00
Clément Bœsch cf31060127 ffmpeg: move filtered_frame to video stream processing scope. 2012-02-10 20:12:52 +01:00
Clément Bœsch aede21f1b6 ffmpeg: reindent after video frame polling simplification. 2012-02-10 19:59:38 +01:00
Clément Bœsch e22c7b4e25 ffmpeg: simplify video frame polling.
input_video_filter and output_video_filter can't be NULL at this point.
If they are, the current code would likely crash anyway (since
filtered_frame would be NULL and sent to do_video_out().
2012-02-10 19:59:38 +01:00
Clément Bœsch 4ab4b3db5a ffmpeg: use exit_program() if configure_video_filters() fails. 2012-02-10 19:59:38 +01:00
Paul B Mahol dcd2b55e1a Check AVCodec.pix_fmts in avcodec_open2()
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-02-10 13:24:37 -05:00
Alex Converse 9e1db721c4 svq3: Prevent illegal reads while parsing extradata.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
2012-02-10 09:57:39 -08:00
Carl Eugen Hoyos 3546f680d5 Add missing newline to mpeg1/2 intra matrix error message. 2012-02-10 17:50:50 +01:00
Carl Eugen Hoyos baa8ec8d74 Add missing swscale dependency for MP-filters.
Reported-by: Hanspeter Niederstrasser

Fixes ticket #989.
2012-02-10 17:39:36 +01:00
Hanspeter Niederstrasser 342afd12de Add missing swresample dependency for ffplay.
Fixes part of ticket #989.
2012-02-10 17:33:39 +01:00
Rafaël Carré b24aaabd44 remove ParseContext1
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-02-10 15:48:52 +01:00
Rafaël Carré 797639dcfd vc1: use ff_parse_close
It works as long as ParseContext is the first member of the private struct

Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-02-10 15:48:52 +01:00
Rafaël Carré 07554ace70 mpegvideo parser: move specific fields into private context
This obviates using ParseContext1, which is slated for removal.

Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-02-10 15:48:51 +01:00
Rafaël Carré e40924887a mpeg4video parser: move specific fields into private context
This obviates using ParseContext1, which is slated for removal.

Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-02-10 15:48:51 +01:00
Rafaël Carré 53a09964f0 cavs parser: fix parser context type
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-02-10 15:48:51 +01:00
Yordan Makariev 0c5d78a898 4xm, timefilter: K&R formatting cosmetics
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-02-10 15:48:50 +01:00
Martin Storsjö ba83ac4c27 rtpenc: Write a log message if the max packet size is too small
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-10 10:48:51 +02:00
Ronald S. Bultje 45b7bd7c53 h264: disallow constrained intra prediction modes for luma.
Conversion of the luma intra prediction mode to one of the constrained
("alzheimer") ones can happen by crafting special bitstreams, causing
a crash because we'll call a NULL function pointer for 16x16 block intra
prediction, since constrained intra prediction functions are only
implemented for chroma (8x8 blocks).

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-02-09 22:57:01 -08:00
Aneesh Dogra 1b7ff90107 sunrast: Remove the useless check.
in , else (1) { if (!1) } the if conditional will never evaluate to be true.
So as making the check useless.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-10 07:10:30 +01:00
Michael Niedermayer 29034e6503 ffmpeg: Add threshold to discard crazy/damaged timestamps.
The added tests are limited to the case where timestamp discontinuities
are not allowed. The default is 30 hours which is arbitrarily picked and
quite conservative.
This prevents a out of memory condition due to duplicating a frame
millions of times.

Found-by:  Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-10 05:40:42 +01:00
Alex Converse 81749f30cd dv: Move tables from dvdata.h to dvdata.c 2012-02-09 19:16:15 -08:00
Alex Converse 8dbdc2d840 dv: Move a table used only by the demuxer out of a shared header. 2012-02-09 19:16:15 -08:00
Alex Converse 89c9a8d3fd dv: Move functions used only by the encoder out of a shared header. 2012-02-09 19:16:15 -08:00
Alex Converse 3746072712 dv: Split dvdata.h into dvdata.h and dvquant.h 2012-02-09 19:16:15 -08:00
Alex Converse 0ab3687924 dv: Fix small overread in audio frequency table.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
2012-02-09 19:16:15 -08:00
Justin Ruggles b758cf7343 avcodec: set avpkt->size to 0 if encode2() did not output a packet 2012-02-09 21:51:41 -05:00
Justin Ruggles a75bc764ec avcodec: for audio encoding, set packet dts to packet pts.
There are no audio encoders which do frame reordering.
2012-02-09 21:51:29 -05:00
Michael Niedermayer 789d6b73cf lavf: Rewrite metadata printing from dump_metadata().
This code contained several bugs that mis-formated the output.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-10 03:24:14 +01:00
Justin Ruggles d483bb58c3 ac3dsp: do not use pshufb in ac3_extract_exponents_ssse3()
We need to do unsigned saturation in order to cover the corner case when the
absolute coefficient value is 16777215 (the maximum value).

Fixes Bug #216
2012-02-09 21:04:44 -05:00
Michael Niedermayer e6d9fa66f1 ac3dec: Move center and surround mix level tables to the parser.
That way all mix levels as exported by avpriv_ac3_parse_header()
will have the same meaning.

Previously the 3-bit center mix level for E-AC-3 was used to index in a
4-entry table, leading to out-of-array reads.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
Signed-off-by: Alex Converse <alex.converse@gmail.com>
2012-02-09 16:36:02 -08:00
Michael Niedermayer 8c6ebab747 Merge remote-tracking branch 'qatar/master'
* qatar/master: (26 commits)
  eac3dec: replace undefined 1<<31 with INT32_MIN in noise generation
  yadif: specify array size outside DECLARE_ALIGNED
  prores: specify array size outside DECLARE_ALIGNED brackets.
  WavPack demuxer: set packet duration
  tta: use skip_bits_long()
  mxfdec: Ignore the last entry in Avid's index table segments
  mxfdec: Sanity-check SampleRate
  mxfdec: Handle small EditUnitByteCount
  mxfdec: Consider OPAtom files that do not have exactly one EC to be OP1a
  mxfdec: Don't crash in mxf_packet_timestamps() if current_edit_unit overflows
  mxfdec: Zero nb_ptses in mxf_compute_ptses_fake_index()
  mxfdec: Sanity check PreviousPartition
  mxfdec: Never seek back in local sets and KLVs
  mxfdec: Move the current_partition check inside mxf_read_header()
  mxfdec: Fix infinite loop in mxf_packet_timestamps()
  mxfdec: Check eof_reached in mxf_read_local_tags()
  mxfdec: Check for NULL component
  mxfdec: Make sure mxf->nb_index_tables > 0 in mxf_packet_timestamps()
  mxfdec: Make sure x < index_table->nb_ptses
  build: Add missing directories to DIRS declarations.
  ...

Conflicts:
	doc/build_system.txt
	doc/fate.texi
	libavfilter/x86/yadif_template.c
	libavformat/mxfdec.c
	libavutil/Makefile
	tests/fate/audio.mak
	tests/fate/prores.mak
	tests/fate/screen.mak
	tests/fate/video.mak
	tests/ref/fate/bethsoft-vid
	tests/ref/fate/cscd
	tests/ref/fate/dfa4
	tests/ref/fate/nuv
	tests/ref/fate/vp8-sign-bias
	tests/ref/fate/wmv8-drm
	tests/ref/lavf/gxf

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-10 01:20:07 +01:00
Carl Eugen Hoyos ea4037162f Fix libstagefright compilation
Comment-by-michael: iam commiting this as the code cannot work without it and likely works with it.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-09 23:55:33 +01:00
Carl Eugen Hoyos 3b25d6193c Fix fate tests after 5c2c6bbf. 2012-02-09 23:56:47 +01:00
Carl Eugen Hoyos 52719dae8a Support encoding BGR24 and BGR0 in ljpeg. 2012-02-09 23:26:28 +01:00
Carl Eugen Hoyos edf34c346e Allow encoding rawvideo RGBA64 and friends. 2012-02-09 23:25:46 +01:00
Carl Eugen Hoyos 5c2c6bbfba Allow encoding rawvideo RGB0 and friends. 2012-02-09 23:20:48 +01:00
Alex Converse 7b05025856 aacdec: Unify preconfigured layout and PCE layout. 2012-02-09 13:33:07 -08:00
Alex Converse f1ecd0802d aacdec: Support native channel layout when requested. 2012-02-09 13:33:07 -08:00
Alex Converse 37bed6ff3f aacdec: Try to sniff a reasonable channel layout for PCE based configurations.
This changes the output order of multichannel PCE based streams.
2012-02-09 13:33:06 -08:00
Martin Storsjö e7d4a2a721 libavcodec: Don't do av_free(av_malloc(0)) for bitstream filters
This fixes crashes on exit when closing a bitstream filter that
hasn't allocated any private data, on OS X.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-09 23:13:50 +02:00
Janne Grunau c57fe49da8 eac3dec: replace undefined 1<<31 with INT32_MIN in noise generation 2012-02-09 21:28:37 +01:00
Janne Grunau 456d3e4fb5 yadif: specify array size outside DECLARE_ALIGNED 2012-02-09 21:28:37 +01:00
Ronald S. Bultje 73e15e8e6b prores: specify array size outside DECLARE_ALIGNED brackets. 2012-02-09 11:07:12 -08:00
Paul B Mahol 0f3d8baef9 WavPack demuxer: set packet duration
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-02-09 13:13:04 -05:00
Michael Niedermayer dd7198b25f lavf: put av_new_stream() compatibility wrapper back
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-09 19:03:32 +01:00
Michael Niedermayer 491d8353e8 mpeg12dec: print the value that is being ignored in load_matrix()
error message by Reimar

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-09 19:03:32 +01:00
Michael Niedermayer 8a07429318 lavf: put av_find_stream_info() compatibility wrapper back.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-09 19:03:32 +01:00
Michael Niedermayer f480fcb1f9 bink: fix pointer type warnings.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-09 19:03:32 +01:00
Michael Niedermayer 677911ad81 ffmpeg: better dox for *pts.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-09 19:03:31 +01:00
Stefano Sabatini c28e7af70d lavu: add timestamp.h header with convenience timestamp utilities 2012-02-09 18:37:58 +01:00
Laurent 71d6b46849 configure: fix gcc asm tests for MinGW GCC 4.6.2
Thanks to stackoverflow
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-09 17:49:22 +01:00
Paul B Mahol 9aff2d1753 tta: use skip_bits_long()
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-02-09 17:10:26 +01:00
Tomas Härdin e24167aae6 mxfdec: Ignore the last entry in Avid's index table segments
The last entry is the total size of the essence container.
Previously a TemporalOffset error would be logged, even though
segments like these are expected.

Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-02-09 13:26:02 +01:00
Tomas Härdin d6b81ff949 mxfdec: Sanity-check SampleRate
This avoids a SIGFPE if SampleRate is missing or set to naughty values.

Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-02-09 13:00:05 +01:00
Tomas Härdin c65642d351 mxfdec: Handle small EditUnitByteCount
These are common with audio atoms. Without this the demuxer would read two
bytes at a time for a mono 16-bit file.

Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-02-09 12:59:41 +01:00
Tomas Härdin 240ddbce56 mxfdec: Consider OPAtom files that do not have exactly one EC to be OP1a
This fixes demuxing of 2011_DCPTEST_24FPS.V.mxf.

Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-02-09 12:55:44 +01:00
Tomas Härdin 9123950be0 mxfdec: Don't crash in mxf_packet_timestamps() if current_edit_unit overflows
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-02-09 12:54:14 +01:00
Tomas Härdin d00257e96a mxfdec: Zero nb_ptses in mxf_compute_ptses_fake_index()
This fixes SIGSEGV on files with both CBR and VBR index segments (zzuf6.mxf).

Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-02-09 12:54:13 +01:00
Tomas Härdin df2a85085e mxfdec: Sanity check PreviousPartition
Without this certain files could get the demuxer stuck in a loop.

Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-02-09 12:54:05 +01:00
Tomas Härdin 11800c8c89 mxfdec: Never seek back in local sets and KLVs
Specially crafted files can lead the parsing code to take too long.
We fix a lot of these problems by not allowing local tags to extend
past the end of the set and not allowing other KLVs to be read past
the end of themselves.

Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-02-09 12:46:12 +01:00
Tomas Härdin 687e2fdebd mxfdec: Move the current_partition check inside mxf_read_header()
This fixes SIGSEGV on files where this is the case, such as zzuf4.mxf.

Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-02-09 12:43:47 +01:00
Tomas Härdin e352c96c17 mxfdec: Fix infinite loop in mxf_packet_timestamps()
This can happen if an index table segment has a very large IndexStartPosition.
zzuf3.mxf is an example of such a file.

Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-02-09 12:42:59 +01:00
Tomas Härdin 0373ec635d mxfdec: Check eof_reached in mxf_read_local_tags()
This fixes an infinite loop with zzuf2.mxf.

Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-02-09 12:41:50 +01:00
Tomas Härdin effe3b9575 mxfdec: Check for NULL component
This fixes a SIGSEGV with zzuf1.mxf.

Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-02-09 12:41:50 +01:00
Tomas Härdin 29fc8f50cd mxfdec: Make sure mxf->nb_index_tables > 0 in mxf_packet_timestamps()
Only the OPAtom demuxing logic is guaranteed to have index tables,
meaning OP1a files that lack an index would cause SIGSEGV.

Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-02-09 12:41:42 +01:00
Tomas Härdin a3923482f2 mxfdec: Make sure x < index_table->nb_ptses
Avoids a SIGSEGV on files with IndexEntryCount < IndexDuration.

Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-02-09 12:40:34 +01:00
Diego Biurrun f769cfedd8 build: Add missing directories to DIRS declarations. 2012-02-09 12:26:48 +01:00
Diego Biurrun aa06d65693 arm: Add missing #include to vp8.h to fix a make checkheaders warning. 2012-02-09 12:26:47 +01:00
Diego Biurrun a2e40cd3e2 swscale: ppc: Add missing header #includes to pass 'make checkheaders'. 2012-02-09 12:26:46 +01:00
Diego Biurrun 0bba26466f cosmetics: Delete empty lines at end of file. 2012-02-09 12:26:45 +01:00
Aneesh Dogra ab9ae40152 bytestream: K&R formatting cosmetics
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-02-09 11:37:14 +01:00
Paul B Mahol a16c3a07a6 apetag: fix comment
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-02-08 21:47:12 -05:00
Michael Niedermayer f2b20b7a8b Merge remote-tracking branch 'qatar/master'
* qatar/master:
  pixdesc: mark pseudopaletted formats with a special flag.
  avconv: switch to avcodec_encode_video2().
  libx264: implement encode2().
  libx264: split extradata writing out of encode_nals().
  lavc: add avcodec_encode_video2() that encodes from an AVFrame -> AVPacket
  cmdutils: update copyright year to 2012.
  swscale: sign-extend integer function argument to qword on x86-64.
  x86inc: support yasm -f win64 flag also.
  h264: manually save/restore XMM registers for functions using INIT_MMX.
  x86inc: allow manual use of WIN64_SPILL_XMM.
  aacdec: Use correct speaker order for 7.1.
  aacdec: Remove incorrect comment.
  aacdec: Simplify output configuration.
  Remove Sun medialib glue code.
  dsputil: set STRIDE_ALIGN to 16 for x86 also.
  pngdsp: swap argument inversion.

Conflicts:
	cmdutils.c
	configure
	doc/APIchanges
	ffmpeg.c
	libavcodec/aacdec.c
	libavcodec/dsputil.h
	libavcodec/libx264.c
	libavcodec/mlib/dsputil_mlib.c
	libavcodec/utils.c
	libavfilter/vf_scale.c
	libavutil/avutil.h
	libswscale/mlib/yuv2rgb_mlib.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-09 01:27:12 +01:00
Michael Niedermayer d8710228ea ffmpeg: change sync_opts code to be more similar to qatar.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-08 23:50:37 +01:00
Clément Bœsch c84acc31b2 Revert "vf_fspp: use LOCAL_MANGLE instead of MANGLE."
This reverts commit 1aa8f5fcfb. It broke
the other x86_32 fate instances.
2012-02-08 23:16:32 +01:00
Anton Khirnov cd1ad18a65 rawenc: switch to encode2().
This changes a number of FATE results, since before this commit, the
timestamps in all tests using rawenc were made up by lavf.

In most cases, the previous timestamps were completely bogus.

In some other cases -- raw formats, mostly h264 -- the new timestamps
are bogus as well. The only difference is that timestamps invented by
the muxer are replaced by timestamps invented by the demuxer.

cscd     -- avconv sets output codec timebase from r_frame_rate
and r_frame_rate is in this case some guessed number 31.42 (377/12),
which is not accurate enough to represent all timestamps. This results
in some frames having duplicate pts. Therefore, vsync 0 needs to be
changed to vsync 2 and avconv drops two frames. A proper fix in the
future would be to set output timebase to something saner in avconv.

nuv      -- previous timestamps for video were wrong AND the cscd
comment applies, one frame is dropped.

vp8-signbias -- the file contains two frames with identical timestamps,
so -vsync 0 needs to be removed/changed to -vsync 2 and avconv drops one
frame.

vc1-ism -- apparrently either the demuxer lies about timestamps or the
file is broken, since dts == pts on all packets, but reordering clearly
takes place.
2012-02-08 21:51:24 +01:00
Anton Khirnov 38d5533228 pixdesc: mark pseudopaletted formats with a special flag.
This makes it possible to dintinguish them from PAL8.

Fixes an invalid write in avpicture_layout().
2012-02-08 21:01:31 +01:00
Anton Khirnov 8e37038a34 avconv: switch to avcodec_encode_video2(). 2012-02-08 21:00:00 +01:00
Anton Khirnov 06484d0b8a libx264: implement encode2(). 2012-02-08 20:59:07 +01:00
Anton Khirnov 05d699222d libx264: split extradata writing out of encode_nals().
This is done in preparation for the following patch.
2012-02-08 20:58:48 +01:00
Anton Khirnov 52f82a1148 lavc: add avcodec_encode_video2() that encodes from an AVFrame -> AVPacket
Deprecate avcodec_encode_video().
2012-02-08 20:54:24 +01:00
Paul B Mahol 3c939ad6e0 lagarith: refactor code
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-08 20:54:15 +01:00
Clément Bœsch 1aa8f5fcfb vf_fspp: use LOCAL_MANGLE instead of MANGLE.
The symbols are locals, thus the EXTERN_PREFIX should be omitted. This
might fix the llvm-gcc fate instance.
2012-02-08 19:45:39 +01:00
Ronald S. Bultje 21d0d1d64f cmdutils: update copyright year to 2012. 2012-02-08 10:31:14 -08:00
Ronald S. Bultje 783487ae44 swscale: sign-extend integer function argument to qword on x86-64. 2012-02-08 10:31:14 -08:00
Haruhiko Yamagata 166f399377 x86inc: support yasm -f win64 flag also.
This sets __OUTPUT_FORMAT__ to win64 instead of win32, even though both
(through -m amd64) produce 64-bit binary code.

Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-02-08 10:31:14 -08:00
Ronald S. Bultje ce1e250ee9 h264: manually save/restore XMM registers for functions using INIT_MMX.
On Win64, these registers are callee-save, so not saving/restoring them
correctly is a violation of ABI and can lead to crashes or corrupt data.
2012-02-08 10:31:14 -08:00
Henrik Gramner 9cf7385309 x86inc: allow manual use of WIN64_SPILL_XMM.
Functions using INIT_MMX may still access XMM registers through direct
means (xmm0-15). Therefore, they still need to be marked for clobber
so they can be properly saved/restored.

Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-02-08 10:31:14 -08:00
Alex Converse 314af0ff94 aacdec: Use correct speaker order for 7.1.
The spec says the following speaker mapping is default:
center front speaker
left, right center front speakers,
left, right outside front speakers,
left surround, right surround rear speakers,
front low frequency effects speaker
2012-02-08 09:56:37 -08:00
Alex Converse 8ece266213 aacdec: Remove incorrect comment.
It was only correct when element ids met very specific criteria.
2012-02-08 09:56:37 -08:00
Alex Converse e600a1e44a aacdec: Simplify output configuration. 2012-02-08 09:56:37 -08:00
Michael Niedermayer fba318a4b0 ffmpeg: update (next_)pts in the stream copy case
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-08 17:26:06 +01:00
Michael Niedermayer 160008a60f ffmpeg: use ist->dts in rate_emu_sleep()
Based on change by Anton Khirnov.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-08 17:25:40 +01:00
Michael Niedermayer e7f4de34ad ffmpeg: use ist->dts in do_streamcopy()
Based on change by Anton Khirnov.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-08 17:25:01 +01:00
Anton Khirnov 67c63176ad ffmpeg: remove setting fb->pts.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-08 16:59:50 +01:00
Anton Khirnov d97fa416d6 ffmpeg: reduce overloading for InputStream.pts.
It currently has different meanings at different times (dts of the last
read packet/pts of the last decoded frame). Reduce obfuscation by
storing pts of the decoded frame in the frame itself.

Conflicts:

	ffmpeg.c

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-08 16:41:32 +01:00
Michael Niedermayer 67700e877d ffmpeg: update dts variables in transcode_audio()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-08 16:28:56 +01:00
Michael Niedermayer 6028bd0dc6 ffmpeg: move next_dts/pts update out of transcode_video()
this makes it placed similar to qatar

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-08 16:16:42 +01:00
Michael Niedermayer 7665da46ce ffmpeg: update ist->pts in transcode_audio with the audio decoders output.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-08 16:15:47 +01:00
Michael Niedermayer 8ea81805d4 ffmpeg: print more details and rescaled timestamps in debug code.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-08 15:49:21 +01:00
Michael Niedermayer c0be67cac1 ffmpeg: use (next_)dts in timestamp discontinuity detection code.
Strongly based on Anton Khirnovs code.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-08 15:49:02 +01:00
Diego Biurrun 0144fe6995 Remove Sun medialib glue code.
It is obscure, most likely unused and not bit-exact compared to
libavcodec due to a different IDCT transform algorithm.
2012-02-08 08:52:30 +01:00
Michael Niedermayer e806ceaa7b ffmpeg: Use the correct (dts) variables for stream copy.
Strongly based on Anton Khirnovs code.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-08 08:01:20 +01:00
Michael Niedermayer f070bf0894 ffmpeg: Fix (next)_dts/pts init.
Based on Anton Khirnovs code.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-08 08:01:05 +01:00
Michael Niedermayer 4eea0cfc22 ffmpeg: use ist->dts instead of passing an argument into transcode_video().
This makes the code more similar to qatar
And fixes decoding of the last frame of fate/vc1-ism

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-08 06:46:58 +01:00
Michael Niedermayer f72eaf69ab ffmpeg: Init dts variables in output_packet()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-08 06:19:43 +01:00
Michael Niedermayer fe380adbfb ffmpeg: add (next_dts/dts) variables.
Strongly based on Anton Khirnovs code.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-08 06:13:44 +01:00
Michael Niedermayer 18d0a16fc9 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  swscale: make yuv2yuv1 use named registers.
  h264: mark h264_idct_add8_10 with number of XMM registers.
  swscale: fix V plane memory location in bilinear/unscaled RGB/YUYV case.
  vp8: always update next_framep[] before returning from decode_frame().
  avconv: estimate next_dts from framerate if it is set.
  avconv: better next_dts usage.
  avconv: rename InputStream.pts to last_dts.
  avconv: reduce overloading for InputStream.pts.
  avconv: rename InputStream.next_pts to next_dts.
  avconv: rework -t handling for encoding.
  avconv: set encoder timebase for subtitles.
  pva-demux test: add -vn
  swscale: K&R formatting cosmetics for SPARC code
  apedec: allow the user to set the maximum number of output samples per call
  apedec: do not unnecessarily zero output samples for mono frames
  apedec: allocate a single flat buffer for decoded samples
  apedec: use sizeof(field) instead of sizeof(type)
  swscale: split C output functions into separate file.
  swscale: Split C input functions into separate file.
  bytestream: Add bytestream2 writing API.

The avconv changes are due to massive regressions and bugs not merged yet.

Conflicts:
	ffmpeg.c
	libavcodec/vp8.c
	libswscale/swscale.c
	libswscale/x86/swscale_template.c
	tests/fate/demux.mak
	tests/ref/lavf/asf
	tests/ref/lavf/avi
	tests/ref/lavf/mkv
	tests/ref/lavf/mpg
	tests/ref/lavf/nut
	tests/ref/lavf/ogg
	tests/ref/lavf/rm
	tests/ref/lavf/ts
	tests/ref/seek/lavf_avi
	tests/ref/seek/lavf_mkv
	tests/ref/seek/lavf_rm

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-08 05:53:35 +01:00
Ronald S. Bultje 9b027c0d07 dsputil: set STRIDE_ALIGN to 16 for x86 also.
This fixes crashes in e.g. PNG decoding with SSE2 enabled. In fact, many
x86 optimizations for codecs assume that our buffer strides are 16-byte
aligned.
2012-02-07 14:54:46 -08:00
Ronald S. Bultje 4ff6dea390 pngdsp: swap argument inversion. 2012-02-07 14:32:26 -08:00
Joseph Artsimovich 950930b461 Set default qmax for VC-3/DNxHD to 1024 (maximum allowed by VC-3 spec).
Also increase the global limit on qmax.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-07 22:02:40 +01:00
Ronald S. Bultje ef1c785f11 swscale: make yuv2yuv1 use named registers. 2012-02-07 11:38:13 -08:00
Michael Kostylev 3206cccc0e h264: mark h264_idct_add8_10 with number of XMM registers.
This fixes XMM register clobber problems on Win64.

Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-02-07 11:37:13 -08:00
Ronald S. Bultje b7542dd3d7 swscale: fix V plane memory location in bilinear/unscaled RGB/YUYV case.
Fixes bug 221.

CC: libav-stable@libav.org
2012-02-07 11:33:20 -08:00
Ronald S. Bultje fb90785e98 vp8: always update next_framep[] before returning from decode_frame().
Also slightly move around code not allocate a new frame if we won't
decode it. This prevents us from putting undecoded frames in frame
pointers, which (in mt decoding) other threads will use and wait on
as references, causing a deadlock (if we skipped decoding) or a crash
(if we didn't initialized next_framep[] at all).

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
2012-02-07 11:29:02 -08:00
Anton Khirnov 722410ade5 avconv: estimate next_dts from framerate if it is set. 2012-02-07 20:14:54 +01:00
Anton Khirnov b34856a116 avconv: better next_dts usage.
next_dts is used for estimating the dts of the next packet if it's
missing. Therefore, it makes no sense to set it from the pts of the last
decoded frame. Also it should be estimated from the current packet
duration/ticks_per_frame always, not only when a frame was successfully
decoded.
2012-02-07 20:14:41 +01:00
Anton Khirnov 23576b3fbb avconv: rename InputStream.pts to last_dts.
It more accurately describes what does this variable store.
2012-02-07 20:13:15 +01:00
Anton Khirnov 6e98390258 avconv: reduce overloading for InputStream.pts.
It currently has different meanings at different times (dts of the last
read packet/pts of the last decoded frame). Reduce obfuscation by
storing pts of the decoded frame in the frame itself.
2012-02-07 20:12:04 +01:00
Anton Khirnov 3101bb6669 avconv: rename InputStream.next_pts to next_dts.
It's used to predict dts, not pts.
2012-02-07 20:11:22 +01:00
Anton Khirnov 1270e12e49 avconv: rework -t handling for encoding.
Current code compares the desired recording time with InputStream.pts,
which has a very unclear meaning. Change the code to use actual
timestamps of the frames passed to the encoder.

In several tests, one less frame is encoded, which is more correct.

In the idroq test one more frame is encoded, which is again more
correct.

Behavior with stream copy should be unchanged.
2012-02-07 20:11:11 +01:00
Anton Khirnov c9af832623 avconv: set encoder timebase for subtitles.
The actual number (1/1000) will probably require some
discussion/tweaking in the future, but should be good enough for now,
since the timestamps in AVSubtitle are in this timebase by definition.
2012-02-07 20:07:14 +01:00
Anton Khirnov 4be1d7dc20 pva-demux test: add -vn
The output is obviously not supposed to contain video (since only
-acodec copy is specified), but that only happens because of the way -t
handling is implemented currently.
2012-02-07 20:06:57 +01:00
Diego Biurrun 06b320ad78 swscale: K&R formatting cosmetics for SPARC code 2012-02-07 19:49:49 +01:00
Carl Eugen Hoyos bf5c0308f2 Fix libutvideo compilation.
Fixes ticket #985.
2012-02-07 18:28:00 +01:00
Justin Ruggles 37390d5cca apedec: allow the user to set the maximum number of output samples per call
It makes sense in some cases to split up the output packet to save on memory
usage (ape frames can be very large), but the current/default size is
arbitrary. Allowing the user to configure this gives more flexibility and
requires minimal additional code.
2012-02-07 10:01:15 -05:00
Justin Ruggles 39575eead2 apedec: do not unnecessarily zero output samples for mono frames 2012-02-07 10:01:15 -05:00
Justin Ruggles 1d3c672d27 apedec: allocate a single flat buffer for decoded samples
This will allow the decoder to return samples for the full packet, and it also
makes the decoded buffer pointers aligned.
2012-02-07 10:01:14 -05:00
Justin Ruggles 32c61400c0 apedec: use sizeof(field) instead of sizeof(type) 2012-02-07 10:01:14 -05:00
Stefano Sabatini 0349d61eef lavfi/aspect: rename field aspect->aspect to aspect->ratio
The new name is more sensible.
2012-02-07 15:49:01 +01:00
Stefano Sabatini d21b82fd3a lavc: provide aliases to the PCM A-law/mu-law codecs
They are also known as G.711 codecs.
2012-02-07 15:48:33 +01:00
Ronald S. Bultje 2144941069 swscale: split C output functions into separate file.
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-02-07 12:03:51 +01:00
Ronald S. Bultje 2dd7a1c030 swscale: Split C input functions into separate file.
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-02-07 12:03:50 +01:00
Paul B Mahol 0b717e24f9 ffserver: use avcodec_get_context_defaults3()
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-07 05:51:31 +01:00
Michael Niedermayer b479e01612 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  Revert "v210enc: use FFALIGN()"
  doxygen: Do not include license boilerplates in Doxygen comment blocks.
  avplay: reset decoder flush state when seeking
  ape: skip packets with invalid size
  ape: calculate final packet size instead of guessing
  ape: stop reading after the last frame has been read
  ape: return AVERROR_EOF instead of AVERROR(EIO) when demuxing is finished
  ape: return error if seeking to the current packet fails in ape_read_packet()
  avcodec: Clarify AVFrame member documentation.
  v210dec: check for coded_frame allocation failure
  v210enc: use stride as it is already calculated
  v210enc: use FFALIGN()
  v210enc: return proper AVERROR codes instead of -1
  v210enc: do not set coded_frame->key_frame
  v210enc: check for coded_frame allocation failure
  drawtext: add 'fix_bounds' option on coords fixing
  drawtext: fix text_{w, h} expression vars
  drawtext: add missing braces around an if() block.

Conflicts:
	libavcodec/arm/vp8.h
	libavcodec/arm/vp8dsp_init_arm.c
	libavcodec/v210dec.c
	libavfilter/vf_drawtext.c
	libavformat/ape.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-07 01:40:29 +01:00
Aneesh Dogra db7d45237a bytestream: Add bytestream2 writing API.
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-02-06 18:56:13 -05:00
Paul B Mahol 6ba2505a0e utvideo: remove ff_thread_finish_setup, it isn't needed at all
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-07 00:46:01 +01:00
Reimar Döffinger 787528b4a6 Detect theora keyframes by content in Ogg demuxer.
A lot of files do not mark keyframes correctly via
granule, so detect keyframe or not based on data
and complain if it mismatches.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-02-06 22:08:45 +01:00
Paul B Mahol 6833fe4342 ffv1: PIX_FMT_GRAY16 support
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-06 21:03:24 +01:00
Javier Cabezas d4385299d3 DNxHD: remove ff_thread_finish_setup, it isn't needed at all.
Should fix issue #938

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-06 20:59:59 +01:00
Stefano Sabatini f491f033f5 ffmpeg: document the unit for the -fs option parameter 2012-02-06 20:47:09 +01:00
Stefano Sabatini b7d45d0b0f lavfi: add setfield filter 2012-02-06 20:46:58 +01:00
Stefano Sabatini e8a06b1486 lavf/4xm: use proper error codes 2012-02-06 20:33:06 +01:00
Paul B Mahol d016d3074c Revert "v210enc: use FFALIGN()"
FFALIGN doesn't work with non-powers-of-2.

This reverts commit 7ad1b612c8.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-02-06 19:57:52 +01:00
Diego Biurrun 32f3c541bc doxygen: Do not include license boilerplates in Doxygen comment blocks. 2012-02-06 19:39:24 +01:00
Justin Ruggles ec1f3cab20 avplay: reset decoder flush state when seeking
Fixes seeking after decoder has already been flushed for codecs using
CODEC_CAP_DELAY.
2012-02-06 13:22:01 -05:00
Justin Ruggles f1c3d4a68a ape: skip packets with invalid size 2012-02-06 13:22:01 -05:00
Justin Ruggles ac3f8d317c ape: calculate final packet size instead of guessing
Calculates based on total file size and wavetaillength from the header.
Falls back to multiplying finalframeblocks by 8 instead of 4 so that it will
at least be overestimating for 24-bit. Currently it can underestimate the
final packet size, leading to decoding errors.
2012-02-06 13:22:01 -05:00
Justin Ruggles c2c316158f ape: stop reading after the last frame has been read
This avoids buffer overread when the last packet size estimate is too small.
2012-02-06 13:09:11 -05:00
Justin Ruggles 66f7be3603 ape: return AVERROR_EOF instead of AVERROR(EIO) when demuxing is finished 2012-02-06 13:09:11 -05:00
Justin Ruggles 1bc035bc03 ape: return error if seeking to the current packet fails in ape_read_packet() 2012-02-06 13:09:11 -05:00
Kieran Kunhya 9814974d2e avcodec: Clarify AVFrame member documentation.
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-02-06 18:08:08 +01:00
Stefano Sabatini 2cbe9121ac doc/filters.texi: use multiple @example blocks for distinct examples in setdar docs 2012-02-06 11:30:54 +01:00
Stefano Sabatini 23534d0c4c doc/filters.texi: prefer @example over the unsupported @math for showing equation 2012-02-06 11:30:54 +01:00
Stefano Sabatini 3fa9ace3d8 doc/filters.texi: merge setdar and setsar documentation
Most of the documentation is common to both filters, and I'm going to add
more shared docs. Factorize.
2012-02-06 11:30:54 +01:00
Stefano Sabatini 70ffda3217 lavu: introduce av_parse_ratio() and use it in ffmpeg and lavfi/aspect
Factorize code and provide ratio parsing consistency.
2012-02-06 11:30:54 +01:00
Stefano Sabatini 1ca0812d90 ffprobe: fix typo in ESCAPE_CHECK_SIZE 2012-02-06 11:30:45 +01:00
Paul B Mahol 3cc0353f8d v210dec: check for coded_frame allocation failure
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-02-06 08:00:31 +01:00
Paul B Mahol 986c1c483b v210enc: use stride as it is already calculated
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-02-06 08:00:23 +01:00
Paul B Mahol 7ad1b612c8 v210enc: use FFALIGN()
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-02-06 08:00:15 +01:00
Paul B Mahol b5f50da593 v210enc: return proper AVERROR codes instead of -1
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-02-06 07:59:47 +01:00
Paul B Mahol 66fa2a1fb3 v210enc: do not set coded_frame->key_frame
It is already set in avcodec_alloc_frame().

Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-02-06 07:59:24 +01:00
Paul B Mahol d73466f841 v210enc: check for coded_frame allocation failure
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-02-06 07:59:16 +01:00
Andrey Utkin e496c45d9b drawtext: add 'fix_bounds' option on coords fixing
Before, drawtext filter deliberately altered given text coordinates if
text didn't fully fit on the picture. This breaks the use case of
scrolling large text, e.g. movie closing credits.
Add 'fix_bounds', to make it usable in such cases (by setting its value to 0).
Default behavior is not changed, and non-fitting text coords are fixed.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-02-06 07:57:40 +01:00
Andrey Utkin 2b43dfce36 drawtext: fix text_{w, h} expression vars
Before, {text_,}{w,h} vars hadn't got initialized

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-02-06 07:52:05 +01:00
Michael Niedermayer e81e0b9991 cache: fix "warning: passing argument 2 of ‘av_tempfile’ from incompatible pointer type"
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-06 02:04:09 +01:00
Michael Niedermayer 8d756c0d55 fix "warning: variable ‘cflags’ set but not used"
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-06 02:04:09 +01:00
Michael Niedermayer 6679271700 avio: Fix "warning: initialization from incompatible pointer type"
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-06 02:04:08 +01:00
Paul B Mahol ef511d8a35 changelog: fix typo 2012-02-06 00:31:12 +01:00
Paul B Mahol b8d78175d2 v408: do not unconditionally compile codecs 2012-02-06 00:29:32 +01:00
Carl Eugen Hoyos bb9c8d9439 Add v408 / AYUV encoder and decoder.
Fixes last part of ticket #470.

Reviewed-by: Paul B Mahol
2012-02-05 20:43:33 +01:00
Carl Eugen Hoyos 5fa1a1d8fc Support YV12 from video4linux2 devices.
Reviewed-by: Luca Abeni
2012-02-05 20:06:12 +01:00
Carl Eugen Hoyos 42ae83c196 Allow muxing VP6A into flv.
Reviewed-by: James Zern
2012-02-05 17:42:26 +01:00
Reimar Döffinger 8162c6f0bd oggdec: add missing ogg_reset on seek.
It would never be called when the searched-for position
was already in the index.
In the other cases, the ogg_reset at the end of the
read_timestamp function handled it.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-02-05 14:21:16 +01:00
Reimar Döffinger 1b0dc96fc9 oggdec: fix keyframe seeking when granule_is_start is 0.
In this case, the pts values will be delayed by one, but
at the same time pts values might only be supplied for e.g.
keyframes.
This results on only the frame after the keyframe having a
pts value.
As a hack, make read_timestamp return the keyframe position
together with the pts from a following frame when seeking
to a keyframe.
Fixes trac issue #438.
However it causes the read_timestamp function to return a
pos value that is actually before the packet with the
indicated pts.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-02-05 14:21:16 +01:00
Andrey Utkin e7f0bc8c0f drawtext: add missing braces around an if() block.
Prevents uninitialized read.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-02-05 08:07:55 +01:00
Michael Niedermayer 982783ac49 ffmpeg: document avi special case
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-05 05:14:26 +01:00
Michael Niedermayer bfb5ba8495 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  ape: fix seeking
  apedec: 8bit and 24bit support

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-05 03:02:34 +01:00
Michael Niedermayer 7e850f1cd0 dwt: fix about a dozen "warning: assignment from incompatible pointer type"
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-05 02:08:03 +01:00
Michael Niedermayer 2453ca4931 dwt: fix a dozen or so "warning: initialization from incompatible pointer type"
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-05 02:00:02 +01:00
Michael Niedermayer 861aa9e7c2 mpegaudiodec: remove unused variable
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-05 01:34:59 +01:00
Paul B Mahol 86b57e4efe ape: fix seeking
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-02-04 14:32:33 -05:00
Michael Niedermayer d3f912c1f0 adler32: add comment for the SIMD code
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-04 20:27:02 +01:00
Michael Niedermayer 26585d2a7f adler32: rewrite using integer SIMD.
about twice as fast as before.
the not CONFIG_SMALL case is also droped as it is not faster than the
CONFIG_SMALL case.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-04 20:23:04 +01:00
Reimar Döffinger 5b0103590c Remove warning about Ogg skeleton v4.
We can handle v4 just fine, the parts we currently use
are the same for v3 and v4.
v4 can in addition contain an index which we so far do
not use though.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-02-04 20:18:31 +01:00
Paul B Mahol b60620bf7e apedec: 8bit and 24bit support
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-02-04 14:03:20 -05:00
Clément Bœsch 785d8a3868 fate: use compression level 0 for flashsv2 tests.
Output sizes mismatch (and thus MD5) between zlib version 1.2.5 and
1.2.6 if compression level > 0. The issue doesn't affect the intra-only
tests.
2012-02-04 19:59:40 +01:00
Reimar Döffinger d7b542ae29 Fix potential infinite discard loop.
Fixes trac issue #438.
Seeking in that sample would cause ogg_read_timestamp to fail
because ogg_packet would go into a state where all packets
of stream 1 would be discarded until the end of the stream.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-02-04 19:13:29 +01:00
Michael Niedermayer 7f8027b76f adler32: avoid "too big" check in the inner loop
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-04 05:39:01 +01:00
Michael Niedermayer 25f35df115 xvid_rc: check that write() succeeded.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-04 05:18:45 +01:00
Michael Niedermayer 3b46daa31f Merge remote-tracking branch 'qatar/master'
* qatar/master:
  dsputil: remove debug message in dsputil_init().
  movdec: Avoid av_malloc(0) in stss
  build: Drop YASM-OBJS-FFT from SUBDIR_VARS.
  build: Drop unused X86-OBJS variable.
  avconv: remove debugging cruft from do_video_out().
  avconv: factorize setting stream_index for the output packet.
  frame{crc/md5}: set the stream timebase from codec timebase.
  apedec: remove unneeded #include of get_bits.h and associated macro
  apedec: av_fast_malloc() instead of av_realloc()
  apedec: fix handling of packet sizes that are not a multiple of 4 bytes

Conflicts:
	libavcodec/apedec.c
	tests/ref/fate/4xm-1
	tests/ref/fate/4xm-2
	tests/ref/fate/aasc
	tests/ref/fate/armovie-escape124
	tests/ref/fate/bethsoft-vid
	tests/ref/fate/cljr
	tests/ref/fate/creatureshock-avs
	tests/ref/fate/cscd
	tests/ref/fate/cvid-partial
	tests/ref/fate/deluxepaint-anm
	tests/ref/fate/dfa1
	tests/ref/fate/dfa10
	tests/ref/fate/dfa11
	tests/ref/fate/dfa2
	tests/ref/fate/dfa3
	tests/ref/fate/dfa4
	tests/ref/fate/dfa5
	tests/ref/fate/dfa6
	tests/ref/fate/dfa7
	tests/ref/fate/dfa8
	tests/ref/fate/dfa9
	tests/ref/fate/film-cvid-pcm-stereo-8bit
	tests/ref/fate/flic-af11-palette-change
	tests/ref/fate/flic-magiccarpet
	tests/ref/fate/fraps-v2
	tests/ref/fate/fraps-v3
	tests/ref/fate/h264-lossless
	tests/ref/fate/interplay-mve-16bit
	tests/ref/fate/interplay-mve-8bit
	tests/ref/fate/mimic
	tests/ref/fate/motionpixels
	tests/ref/fate/mpeg2-field-enc
	tests/ref/fate/msvideo1-16bit
	tests/ref/fate/mtv
	tests/ref/fate/nuv
	tests/ref/fate/pictor
	tests/ref/fate/prores-alpha
	tests/ref/fate/ptx
	tests/ref/fate/qtrle-16bit
	tests/ref/fate/qtrle-1bit
	tests/ref/fate/quickdraw
	tests/ref/fate/rpza
	tests/ref/fate/sierra-vmd
	tests/ref/fate/targa-conformance-CCM8
	tests/ref/fate/targa-conformance-UCM8
	tests/ref/fate/tiertex-seq
	tests/ref/fate/truemotion1-15
	tests/ref/fate/truemotion1-24
	tests/ref/fate/tscc-15bit
	tests/ref/fate/tscc-32bit
	tests/ref/fate/v210
	tests/ref/fate/vc1-ism
	tests/ref/fate/vc1_sa00040
	tests/ref/fate/vc1_sa00050
	tests/ref/fate/vc1_sa10091
	tests/ref/fate/vc1_sa20021
	tests/ref/fate/vmnc-16bit
	tests/ref/fate/vmnc-32bit
	tests/ref/fate/vp5
	tests/ref/fate/vp8-sign-bias
	tests/ref/fate/vqa-cc
	tests/ref/fate/wmv8-drm
	tests/ref/fate/yop
	tests/ref/fate/zmbv-8bit

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-04 02:34:14 +01:00
Michael Niedermayer 670229ef43 apedec: remove unused variable
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-04 01:12:04 +01:00
Michael Niedermayer f57ab7ed37 zmbv: remove unused variable
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-04 01:12:04 +01:00
Reimar Döffinger 58dabf7bf2 Fix png decoding on x86.
Line sizes are only 8-byte aligned, so use unaliged loads
for add_bytes_l2 pointers.
Increasing the alignment requirement to 16 seemed a bit extreme
(png may be used for rather small sizes).
Also fix a mov that had its arguments swapped, leading
add_bytes_l2 being applied on up to 8 bytes too few.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-02-03 23:12:10 +01:00
Justin Ruggles 6f1a5e8d6b dsputil: remove debug message in dsputil_init().
AVCodecContext.bits_per_raw_sample is used for audio too, and values other
than 8, 9, and 10 are valid.
2012-02-03 16:00:30 -05:00
Reimar Döffinger da1ba4e88b Fix NASM compilation.
movd needs explicit register size prefix for NASM.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-02-03 20:42:30 +01:00
Vincent Torri ed3c0fe85d Remove some warnings when compiling with mingw (mingw-w64, 32 bits)
Reviewed-by: Ramiro Polla <ramiro.polla@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-03 19:51:13 +01:00
Alex Converse 29a20ac4a1 movdec: Avoid av_malloc(0) in stss
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
2012-02-03 10:44:04 -08:00
Ramiro Polla 1f0fa80bfa dshow: use DirectShow information to set time_base
Fixes build after removal of AVFormatParameters.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-03 18:12:29 +01:00
Ramiro Polla c9e5acad61 dshow: fix AVInputFormat declaration after ABI breakage
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-03 18:11:55 +01:00
Diego Biurrun 58fc740059 build: Drop YASM-OBJS-FFT from SUBDIR_VARS.
FFT code only appears in libavcodec, so there is no need to reset the variable
when the build templates are instantiated for other libraries.
2012-02-03 14:53:21 +01:00
Diego Biurrun 7f2885bbb7 build: Drop unused X86-OBJS variable. 2012-02-03 14:53:20 +01:00
Anton Khirnov 324fbadff9 avconv: remove debugging cruft from do_video_out(). 2012-02-03 13:45:02 +01:00
Anton Khirnov 61a099680c avconv: factorize setting stream_index for the output packet. 2012-02-03 13:44:59 +01:00
Anton Khirnov d2afbd9a56 frame{crc/md5}: set the stream timebase from codec timebase.
Right now those muxers use the default timebase in all cases(1/90000).

This patch avoid unnecessary rescaling and makes the printed timestamps
more readable.

Also, extend the printed information to include the timebases and packet
pts/duration and align the columns.

Obviously changes the results of all fate tests which use those two
muxers.
2012-02-03 09:29:02 +01:00
Michael Niedermayer d77294c5e4 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  libx264: fix indentation.
  vorbis: fix overflows in floor1[] vector and inverse db table index.
  win64: add a XMM clobber test configure option.
  movdec: Parse the dvc1 atom
  ARM: ac3: fix ac3_bit_alloc_calc_bap_armv6
  swscale: K&R formatting cosmetics for Blackfin code
  frwu: lowercase the FRWU codec name
  movdec: fix dts generation in fragmented files
  fate: make acodec-ac3_fixed test output raw AC3
  APIchanges: add missing commit hashes
  swscale: implement MMX, SSE2 and AVX functions for RGB32 input.
  ra144enc: drop pointless "encoder" from .long_name
  bethsoftvideo: fix palette reading.
  mpc7: use av_fast_padded_malloc()
  mpc7: simplify handling of packet sizes that are not a multiple of 4 bytes
  doc: decoding Forward Uncompressed is supported
  Fix a typo in the x86 asm version of ff_vector_clip_int32()
  pcmenc: Do not set avpkt->size.
  ff_alloc_packet: modify the size of the packet to match the requested size

Conflicts:
	doc/APIchanges
	libavcodec/libx264.c
	libavcodec/mpc7.c
	libavformat/isom.h
	libswscale/Makefile
	libswscale/bfin/yuv2rgb_bfin.c
	tests/ref/fate/bethsoft-vid
	tests/ref/seek/ac3_ac3

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-03 03:51:32 +01:00
Justin Ruggles 22c0babbb2 apedec: remove unneeded #include of get_bits.h and associated macro 2012-02-02 21:07:01 -05:00
Justin Ruggles e4169612a1 apedec: av_fast_malloc() instead of av_realloc()
av_realloc() does not guarantee alignment, which is required for
DSPContext.bswap_buf().
2012-02-02 21:07:01 -05:00
Justin Ruggles 0759c8eb10 apedec: fix handling of packet sizes that are not a multiple of 4 bytes 2012-02-02 21:07:01 -05:00
Clément Bœsch 9477fa094b lavu/timecode: use @see for URL in doxygen. 2012-02-03 00:56:27 +01:00
Clément Bœsch 174880f580 lavfi/thumbnail: rename @url to @see.
@url isn't a valid Doxygen directive.
2012-02-03 00:55:37 +01:00
Anton Khirnov e15e2a6d2a libx264: fix indentation. 2012-02-02 22:23:17 +01:00
KO Myung-Hun c853124fb0 Use SECTION_TEXT instead of section .text for the compatibility
aout does not support 'align='.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-02 21:11:36 +01:00
Paul B Mahol 9b9bf5ab73 ffv1: cosmetics: indentation
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-02 21:11:36 +01:00
Ronald S. Bultje 24947d4988 vorbis: fix overflows in floor1[] vector and inverse db table index. 2012-02-02 12:05:08 -08:00
Ronald S. Bultje 7e4d9d5d45 win64: add a XMM clobber test configure option.
This will be useful to test more aggressively for failures to mark XMM
registers as clobbered in Win64 builds, and prevent regressions thereof.

Based on a patch by Ramiro Polla <ramiro.polla@gmail.com>
2012-02-02 12:00:48 -08:00
Clément Bœsch 8c48652ff0 dct-test: remove odivx_idct_c dead prototype. 2012-02-02 20:44:22 +01:00
Martin Storsjö 89415b8e3f movdec: Parse the dvc1 atom
Normally, the actual payload data contains sequence headers, too,
and the parser can extract this and set it as extradata. However,
the data in the dvc1 atom is the "official" extradata for the file.

This is required for proper stream copy of vc1 from ismv to ismv.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-02 21:39:27 +02:00
Mans Rullgard cd2f98f365 ARM: ac3: fix ac3_bit_alloc_calc_bap_armv6
This function was broken when the start bin was not at the start
of a band.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-02-02 18:50:42 +00:00
Diego Biurrun 148bc235b0 swscale: K&R formatting cosmetics for Blackfin code
Also prettyprint some comments in Assembly code.
2012-02-02 18:50:12 +01:00
Piotr Bandurski 3f57bde1f2 frwu: lowercase the FRWU codec name
This is more consistent with all the other codec names.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-02-02 18:44:52 +01:00
Carl Eugen Hoyos af0f8c09cc Cosmentics: Fix AVUI comment.
The codec contains no alpha information but deinterleaved interlaced video.

Found by Maksym Veremeyenko.
2012-02-02 18:44:39 +01:00
Janne Grunau 7f19bdc2a2 movdec: fix dts generation in fragmented files
Do not use AVStream's duration for dts generation since it contains in
some cases the duration of the whole file instead of duration of the
samples in the moov. This happens if the mdhd holds the duration of the
whole file but has no entries or a zero duration in its stts.
2012-02-02 17:39:13 +01:00
Mans Rullgard 2c98f407c8 fate: make acodec-ac3_fixed test output raw AC3
There is no point in this test using the RM format.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-02-02 14:31:54 +00:00
Clément Bœsch d50a4c4a5b lavfi/amerge: copy ref props after filtering samples.
This fixes various issues with ffmpeg -ss and -t.
2012-02-02 14:31:18 +01:00
Clément Bœsch 85c66793d7 lavfi/pan: copy ref props after filtering samples.
At least PTS needs to be copied to avoid breaking options such as -t in
ffmpeg.
2012-02-02 14:31:18 +01:00
Clément Bœsch c79eddaff1 lavfi/aconvert: use libswresample.
This commit also drops the planar parameter; you now need to use the 'p'
suffix in order to request a planar sample format.
2012-02-02 14:31:18 +01:00
Clément Bœsch e96be8409f lavfi/aresample: use libswresample. 2012-02-02 14:31:17 +01:00
Clément Bœsch 9f0b0db0d3 lavfi/aformat: use do..while(0) form for macro.
This avoids some empty statements.
2012-02-02 14:31:17 +01:00
Clément Bœsch d055c3286c doc: document amerge filter as an alternative for the -map_channel limitation. 2012-02-02 14:31:17 +01:00
Clément Bœsch b90d79ec1f timecode: drop lavc timecode on next bump. 2012-02-02 14:31:17 +01:00
Clément Bœsch 6f55156234 dvenc: use new public timecode API. 2012-02-02 14:31:17 +01:00
Clément Bœsch bf6e83a8e8 mxfenc: use new public timecode API. 2012-02-02 14:31:17 +01:00
Clément Bœsch e2407556f1 gxfenc: use new public timecode API. 2012-02-02 14:31:17 +01:00
Clément Bœsch d8804905eb mpeg12enc: use new public timecode API. 2012-02-02 14:31:17 +01:00
Clément Bœsch f65600d519 drawtext: use new public timecode API. 2012-02-02 14:31:17 +01:00
Clément Bœsch 11e5d3b9cf dv: use new public timecode API. 2012-02-02 14:31:17 +01:00
Clément Bœsch 77971609de mov: honor tmcd flags while extracting timecode meta. 2012-02-02 14:31:17 +01:00
Clément Bœsch bd10f01aa8 mov: use new public timecode API. 2012-02-02 14:31:17 +01:00
Clément Bœsch ed67dac093 mpeg12: use av_mpegtc_to_timecode_string(). 2012-02-02 14:31:17 +01:00
Clément Bœsch dc386a5e3c ffprobe: use av_mpegtc_to_timecode_string(). 2012-02-02 14:31:17 +01:00
Clément Bœsch 0eaa123b34 lavu: add public timecode API. 2012-02-02 14:30:28 +01:00
Janne Grunau fcc518a024 APIchanges: add missing commit hashes 2012-02-02 14:29:47 +01:00
Clément Bœsch b18ebcbe83 timecode: add write regressions tests. 2012-02-02 14:16:34 +01:00
Carl Eugen Hoyos de05e41bfc Use the correct pix_fmt for 32bit x11grab.
Remove adding a constant value to each pixel to make it opaque.
2012-02-02 13:29:14 +01:00
Ronald S. Bultje de53b9068a swscale: implement MMX, SSE2 and AVX functions for RGB32 input. 2012-02-01 21:55:32 -08:00
Paul B Mahol b8b77abe92 cosmetics: realign vertically
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-02 04:36:13 +01:00
Michael Niedermayer 6462d28dcc apedec: Fix alignment and fate.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-02 04:34:28 +01:00
Michael Niedermayer 4c677df27c Merge remote-tracking branch 'qatar/master'
* qatar/master: (22 commits)
  frwu: Employ more meaningful return values.
  fraps: Use av_fast_padded_malloc() instead of av_realloc()
  mjpegdec: use av_fast_padded_malloc()
  eatqi: use av_fast_padded_malloc()
  asv1: use av_fast_padded_malloc()
  avcodec: Add av_fast_padded_malloc().
  swscale: enable dithering in MMX functions.
  swscale: make rgb24 function macros slightly smaller.
  avcodec.h: Remove some disabled cruft.
  swscale: remove obsolete comment.
  swscale-test: Drop unused argc and argv arguments from main().
  zmbv: Employ more meaningful return values.
  zmbvenc: Employ more meaningful return values.
  vc1: prevent null pointer dereference on broken files
  zmbv: check av_realloc() return values and avoid memleaks on ENOMEM
  truespeech: align buffer
  ac3: Do not read past the end of ff_ac3_band_start_tab.
  dv: Fix small stack overread related to CVE-2011-3929 and CVE-2011-3936.
  dv: Fix null pointer dereference due to ach=0
  dv: check stype
  ...

Conflicts:
	doc/APIchanges
	libavcodec/asv1.c
	libavcodec/avcodec.h
	libavcodec/eatqi.c
	libavcodec/fraps.c
	libavcodec/frwu.c
	libavcodec/zmbv.c
	libavformat/dv.c
	libswscale/swscale.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-02 02:24:09 +01:00
Paul B Mahol 38c6bbc118 ra144enc: drop pointless "encoder" from .long_name
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-02-01 20:17:25 -05:00
Justin Ruggles c3a06615bd bethsoftvideo: fix palette reading.
Return the correct number of consumed bytes and set *data_size = 0.
Returned size is 1 too small, leading to that 1 byte being read as the next
frame, which results in an extra blank frame at the beginning of the stream.
2012-02-01 19:41:39 -05:00
Justin Ruggles 83ce51cc7d mpc7: use av_fast_padded_malloc()
Avoids doing malloc/free for each frame.
Also fixes valgrind errors due to use of uninitialized padding bytes.

Based on a patch by Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-02-01 19:35:59 -05:00
Justin Ruggles b5b825c381 mpc7: simplify handling of packet sizes that are not a multiple of 4 bytes 2012-02-01 19:35:59 -05:00
Paul B Mahol 41dd77bdbc doc: decoding Forward Uncompressed is supported
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-02-01 19:31:50 -05:00
Michael Niedermayer 5cd8afee99 diracdec: Check for negative quants which would cause out of array reads.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-02 01:12:46 +01:00
Michael Niedermayer 0065080320 proresdec: Fix read via negative index in a global array.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-02 01:12:46 +01:00
Paul B Mahol e39487efe3 doc: ffv1 is not experimental any more
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-02 01:08:19 +01:00
Justin Ruggles 236a550c3f Fix a typo in the x86 asm version of ff_vector_clip_int32()
Specifies the correct number of xmm registers used so that they can be saved
and restored on Win64 if necessary.
2012-02-01 19:02:32 -05:00
Justin Ruggles 3c432631e9 pcmenc: Do not set avpkt->size.
It is already the correct size as set by ff_alloc_packet().
2012-02-01 16:33:27 -05:00
Justin Ruggles 1a670973a7 ff_alloc_packet: modify the size of the packet to match the requested size
This will simplify encoders which use this function to request the exact
packet size rather than the maximum size.
2012-02-01 16:33:27 -05:00
Paul B Mahol 5ff88020ac frwu: Employ more meaningful return values.
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-02-01 16:17:47 -05:00
Reimar Döffinger f54ae2f8e7 fraps: Use av_fast_padded_malloc() instead of av_realloc()
Ensures alignment and avoids using uninitialized data.

Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-02-01 14:37:47 -05:00
Reimar Döffinger 0880503fbb mjpegdec: use av_fast_padded_malloc()
also check for allocation failure

Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-02-01 14:37:47 -05:00
Reimar Döffinger 2f4b9021a1 eatqi: use av_fast_padded_malloc()
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-02-01 14:37:47 -05:00
Reimar Döffinger 00db4d4ad5 asv1: use av_fast_padded_malloc()
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-02-01 14:37:46 -05:00
Michael Niedermayer 9430c232e8 ffserver: fix program reference
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-01 19:33:51 +01:00
Paul B Mahol ec09230c9a ffv1dec: PIX_FMT_YUV440P support
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-01 19:25:58 +01:00
Paul B Mahol 917803babd ffv1enc: PIX_FMT_YUV440P support
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-01 19:25:58 +01:00
Janne Grunau 316fc7443b avcodec: Add av_fast_padded_malloc().
Wrapper around av_fast_malloc() that keeps FF_INPUT_BUFFER_PADDING_SIZE
zero-padded bytes at the end of the used buffer.

Based on a patch by Reimar Döffinger <Reimar.Doeffinger@gmx.de>.
2012-02-01 19:19:35 +01:00
Ronald S. Bultje 378c5ef9ae swscale: enable dithering in MMX functions.
This was accidently disabled.

Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-02-01 09:33:29 -08:00
Ronald S. Bultje 212f161caa swscale: make rgb24 function macros slightly smaller. 2012-02-01 09:33:13 -08:00
Carl Eugen Hoyos b2327a8202 Add some missing v4l2 pix_fmt mappings. 2012-02-01 18:04:17 +01:00
Carl Eugen Hoyos 4632066713 Fix v4l pix_fmt mapping for rgb32: There is no transparency information. 2012-02-01 18:00:24 +01:00
Carl Eugen Hoyos 93a3ba9bcd Fix pix_fmt mapping for v4l2 rgb5x5. 2012-02-01 17:58:42 +01:00
Diego Biurrun 3b637dca72 avcodec.h: Remove some disabled cruft. 2012-02-01 17:27:17 +01:00
Ronald S. Bultje f5490fbe3b swscale: remove obsolete comment. 2012-02-01 07:17:01 -08:00
Michael Bradshaw d76864d9ce Support decoding rgba64 with libopenjpeg. 2012-02-01 15:51:18 +01:00
Michael Bradshaw ec0d02e441 Support decoding gray8a with libopenjpeg. 2012-02-01 15:47:28 +01:00
Diego Biurrun 2e3fb9e372 swscale-test: Drop unused argc and argv arguments from main(). 2012-02-01 14:24:25 +01:00
Paul B Mahol 8ca8e4a846 zmbv: Employ more meaningful return values.
Also use av_log_ask_for_sample() where it makes sense.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-02-01 14:24:25 +01:00
Paul B Mahol 013a677fb6 zmbvenc: Employ more meaningful return values.
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-02-01 14:23:20 +01:00
Janne Grunau 510ef04a46 vc1: prevent null pointer dereference on broken files
CC: libav-stable@libav.org
2012-02-01 12:54:39 +01:00
Janne Grunau cb0b284381 zmbv: check av_realloc() return values and avoid memleaks on ENOMEM 2012-02-01 12:54:39 +01:00
Paul B Mahol d4eeadcbbf truespeech: align buffer
DSPContext.bswap_buf() requires aligned output

Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-01-31 21:42:33 -08:00
Michael Niedermayer 9fdae05607 libavformat/avformat.h: fix stray libavformat reference
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-01 04:43:06 +01:00
Michael Niedermayer c4bdb2bf93 libavfilter/version.h: fix project name
The code in the file is written by vitor in be19d752 (2008)
thus cannot have originated in libav which did not exist at that
time

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-01 04:43:06 +01:00
Michael Niedermayer 4e2b0c5785 snowdata: Fix project name, this file has not been developed in libav
or by any libav developers.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-01 04:43:06 +01:00
Michael Niedermayer 72fc4f0cce gsm.h: Fix project reference
The code in this file is copy and pasted from FFmpegs libavcodec/libgsm.c

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-01 04:43:06 +01:00
Michael Niedermayer dbb7009ea5 westwood_aud: Fix project reference
"Copyright (c) 2003 The ffmpeg Project" and "part of libav"
is ROTFL

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-01 04:43:06 +01:00
Michael Niedermayer 9096a2760f simpleidct: fix project name.
"Copyright (c) 2001 Michael Niedermayer" and "part of Libav" is not likely
not only am i not a libav developer there also was no libav in 2001

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-01 04:43:06 +01:00
Michael Niedermayer 4b4d3d7249 aacenc: fix library references
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-01 04:43:06 +01:00
Michael Niedermayer 92f9b26c1e doc: fix convertion tool references
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-01 03:37:08 +01:00
Michael Niedermayer ada28b7f72 h264 golomb: Fix copyright violation.
Copy and paste does not change authorship
See 0da71265 for the original checkin

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-01 03:34:12 +01:00
Mans Rullgard 034b03e7a0 ac3: Do not read past the end of ff_ac3_band_start_tab.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Alex Converse <alex.converse@gmail.com>
2012-01-31 18:32:14 -08:00
Alex Converse 2d1c0dea5f dv: Fix small stack overread related to CVE-2011-3929 and CVE-2011-3936.
Found with asan.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Alex Converse <alex.converse@gmail.com>
2012-01-31 18:32:13 -08:00
Michael Niedermayer 5a396bb3a6 dv: Fix null pointer dereference due to ach=0
dv: Fix null pointer dereference due to ach=0

Fixes part2 of CVE-2011-3929

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Reviewed-by: Roman Shaposhnik <roman@shaposhnik.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Alex Converse <alex.converse@gmail.com>
2012-01-31 18:32:13 -08:00
Michael Niedermayer 635bcfccd4 dv: check stype
dv: check stype

Fixes part1 of CVE-2011-3929
Possibly fixes part of CVE-2011-3936

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Reviewed-by: Roman Shaposhnik <roman@shaposhnik.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Alex Converse <alex.converse@gmail.com>
2012-01-31 18:32:13 -08:00
Michael Niedermayer a369a6b858 Merge remote-tracking branch 'qatar/master'
* qatar/master: (29 commits)
  fate: add golomb-test
  golomb-test: K&R formatting cosmetics
  h264: Split h264-test off into a separate file - golomb-test.c.
  h264-test: cleanup: drop timer invocations, commented out code and other cruft
  h264-test: Remove unused DSP and AVCodec contexts and related init calls.
  adpcm: Add missing stdint.h #include to fix standalone header compilation.
  lavf: add functions for accessing the fourcc<->CodecID mapping tables.
  lavc: set AVCodecContext.codec in avcodec_get_context_defaults3().
  lavc: make avcodec_close() work properly on unopened codecs.
  lavc: add avcodec_is_open().
  lavf: rename AVInputFormat.value to raw_codec_id.
  lavf: remove the pointless value field from flv and iv8
  lavc/lavf: remove unnecessary symbols from the symbol version script.
  lavc: reorder AVCodec fields.
  lavf: reorder AVInput/OutputFormat fields.
  mp3dec: Fix a heap-buffer-overflow
  adpcmenc: remove some unneeded casts
  adpcmenc: use int16_t and uint8_t instead of short and unsigned char.
  adpcmenc: fix adpcm_ms extradata allocation
  adpcmenc: return proper AVERROR codes instead of -1
  ...

Conflicts:
	doc/APIchanges
	libavcodec/Makefile
	libavcodec/adpcmenc.c
	libavcodec/avcodec.h
	libavcodec/h264.c
	libavcodec/libavcodec.v
	libavcodec/mpc7.c
	libavcodec/mpegaudiodec.c
	libavcodec/options.c
	libavformat/Makefile
	libavformat/avformat.h
	libavformat/flvdec.c
	libavformat/libavformat.v

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-01 02:36:09 +01:00
Janne Grunau e67e3a3f4a fate-golomb: extend golomb-test to get_ue_golomb_long()
get_ue_golomb_long() is only tested for values up to 2^15 - 2 since
we can not write larger values.
Silence the test on success and return a non-zero value on error.
Use an heap scratch buffer instead of large stack buffer.
Remove unneeded includes.
2012-02-01 01:18:55 +01:00
Alex Converse c0bc7bd1e7 swfdec: Simplify sample rate calculation. 2012-01-31 15:55:46 -08:00
Paul B Mahol 0a3a69e8d7 ffv1dec: use correct linesize
Apparently this did not break anything.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-01-31 23:24:32 +01:00
Michael Niedermayer 0d17477e2c Merge remote-tracking branch 'shariman/wmall'
* shariman/wmall:
  Cosmetics: Fix some whitespace errors and indentation
  Use correct variable type for 32-bit samples buffer

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-01-31 22:55:15 +01:00
Paul B Mahol c8eba9f9d5 ffv1dec: PIX_FMT_YUVA444P support
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-01-31 21:45:34 +01:00
Paul B Mahol b0a30ea7c8 ffv1enc: PIX_FMT_YUVA444P support
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-01-31 21:44:59 +01:00
Paul B Mahol ab7da16ea4 ffv1dec: PIX_FMT_YUVA420P support
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-01-31 21:44:26 +01:00
Paul B Mahol 7054629f04 ffv1enc: PIX_FMT_YUVA420P support
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-01-31 21:43:41 +01:00
Michael Niedermayer 05ebe51e00 mpeg/h264: update thread context even if it is not initialized.
Fixes decoding of Ticket952

Tested-by: Nicolas George <nicolas.george@normalesup.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-01-31 21:43:04 +01:00
Michael Niedermayer e4a714f65a h264: Return the correct number of bytes for mid strea, extradata.
Fixes the hang with Ticket952

Tested-by: Nicolas George <nicolas.george@normalesup.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-01-31 21:42:42 +01:00
Michael Niedermayer 146ef3f37c pngdec: fix warning about pointer types
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-01-31 21:40:53 +01:00
Diego Biurrun 52afc97168 fate: add golomb-test 2012-01-31 19:56:13 +01:00
Diego Biurrun 9e3a2736bd golomb-test: K&R formatting cosmetics 2012-01-31 19:56:13 +01:00
Diego Biurrun 631f96f959 h264: Split h264-test off into a separate file - golomb-test.c.
The new name is more appropriate as only golomb functions are tested.
2012-01-31 19:56:12 +01:00
Diego Biurrun 4ff46af039 h264-test: cleanup: drop timer invocations, commented out code and other cruft 2012-01-31 19:56:11 +01:00
Diego Biurrun 3856a2aaa6 h264-test: Remove unused DSP and AVCodec contexts and related init calls.
This also avoids a segfault on startup.
2012-01-31 19:56:09 +01:00
Diego Biurrun b010178e84 adpcm: Add missing stdint.h #include to fix standalone header compilation. 2012-01-31 19:13:00 +01:00
Clément Bœsch c673671333 ffmpeg: fix -map_channel being ignored when resampling is not needed. 2012-01-31 17:44:46 +01:00
Anton Khirnov dd6d3b0e02 lavf: add functions for accessing the fourcc<->CodecID mapping tables.
Fixes bug 212.
2012-01-31 16:53:35 +01:00
Anton Khirnov bc90199848 lavc: set AVCodecContext.codec in avcodec_get_context_defaults3().
This way, if the AVCodecContext is allocated for a specific codec, the
caller doesn't need to store this codec separately and then pass it
again to avcodec_open2().

It also allows to set codec private options using av_opt_set_* before
opening the codec.
2012-01-31 16:53:35 +01:00
Anton Khirnov 0e72ad95f9 lavc: make avcodec_close() work properly on unopened codecs.
I.e. free the priv_data and other stuff allocated in
avcodec_alloc_context3() and not segfault.
2012-01-31 07:56:21 +01:00
Anton Khirnov af08d9aeea lavc: add avcodec_is_open().
It allows to check whether an AVCodecContext is open in a documented
way. Right now the undocumented way this check is done in lavf/lavc is
by checking whether AVCodecContext.codec is NULL. However it's desirable
to be able to set AVCodecContext.codec before avcodec_open2().
2012-01-31 07:55:24 +01:00
Anton Khirnov f7fe41a04f lavf: rename AVInputFormat.value to raw_codec_id.
It's only used by raw demuxers for storing the codec id.
2012-01-31 07:50:31 +01:00
Anton Khirnov 9a463917d3 lavf: remove the pointless value field from flv and iv8
The demuxers don't use it in any way.
2012-01-31 07:48:03 +01:00
Anton Khirnov afa4069e3b lavc/lavf: remove unnecessary symbols from the symbol version script. 2012-01-31 07:26:31 +01:00
Anton Khirnov f5f49a66a2 lavc: reorder AVCodec fields.
Put all private fields at the end and mark them as such so they can be
easily changed/removed.

This breaks ABI.
2012-01-31 07:26:18 +01:00
Anton Khirnov 183eaa9a25 lavf: reorder AVInput/OutputFormat fields.
Put all private fields at the end and mark them as such so they can be
easily changed/removed.

This breaks ABI.
2012-01-31 07:21:06 +01:00
Michael Niedermayer 151ecc2aec Merge remote-tracking branch 'qatar/master'
* qatar/master: (26 commits)
  avconv: deprecate the -deinterlace option
  doc: Fix the name of the new function
  aacenc: make sure to encode enough frames to cover all input samples.
  aacenc: only use the number of input samples provided by the user.
  wmadec: Verify bitstream size makes sense before calling init_get_bits.
  kmvc: Log into a context at a log level constant.
  mpeg12: Pad framerate tab to 16 entries.
  kgv1dec: Increase offsets array size so it is large enough.
  kmvc: Check palsize.
  nsvdec: Propagate errors
  nsvdec: Be more careful with av_malloc().
  nsvdec: Fix use of uninitialized streams.
  movenc: cosmetics: Get rid of camelCase identifiers
  swscale: more generic check for planar destination formats with alpha
  doc: Document mov/mp4 fragmentation options
  build: Use order-only prerequisites for creating FATE reference file dirs.
  x86 dsputil: provide SSE2/SSSE3 versions of bswap_buf
  rtsp: Remove some unused variables from ff_rtsp_connect().
  avutil: make intfloat api public
  avformat_write_header(): detail error message
  ...

Conflicts:
	doc/APIchanges
	doc/ffmpeg.texi
	doc/muxers.texi
	ffmpeg.c
	libavcodec/kmvc.c
	libavcodec/x86/Makefile
	libavcodec/x86/dsputil_yasm.asm
	libavcodec/x86/pngdsp-init.c
	libavformat/movenc.c
	libavformat/movenc.h
	libavformat/mpegtsenc.c
	libavformat/nsvdec.c
	libavformat/utils.c
	libavutil/avutil.h
	libswscale/swscale.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-01-31 02:46:26 +01:00
Alex Converse f372ce119b mp3dec: Fix a heap-buffer-overflow
In some cases, what is left to read from ptr is smaller than EXTRABYTES.

Based on a patch by Thierry Foucu <tfoucu@gmail.com>.

Signed-off-by: Alex Converse <alex.converse@gmail.com>
2012-01-30 16:49:15 -08:00
Justin Ruggles a3a0691bde adpcmenc: remove some unneeded casts 2012-01-30 19:12:55 -05:00
Justin Ruggles 149f2058a4 adpcmenc: use int16_t and uint8_t instead of short and unsigned char. 2012-01-30 19:12:55 -05:00
Justin Ruggles dd88ae831a adpcmenc: fix adpcm_ms extradata allocation
Add FF_INPUT_BUFFER_PADDING_SIZE.
If allocation fails, also free memory which was allocated previously in
adpcm_encode_init().
2012-01-30 19:12:55 -05:00
Justin Ruggles 877a1d409c adpcmenc: return proper AVERROR codes instead of -1 2012-01-30 19:12:55 -05:00
Justin Ruggles cb023d9afe adpcmenc: check for coded_frame allocation failure 2012-01-30 19:12:55 -05:00
Justin Ruggles ddf70db6d7 adpcmenc: Do not set coded_frame->key_frame.
It is already set in avcodec_alloc_frame().
2012-01-30 19:12:54 -05:00
Justin Ruggles 3c4add27f7 mpc7: check for allocation failure 2012-01-30 19:11:29 -05:00
Justin Ruggles eac31dd163 mpc7: align local temp buffer
DSPContext.bswap_buf() requires aligned output
2012-01-30 19:11:29 -05:00
Michael Niedermayer b8c1655882 avidec: print informative error messages if seeking fails.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-01-31 00:20:52 +01:00
Carl Eugen Hoyos 97da38c99b Allow decoding of 64bit png images.
Fixes a part of ticket #639.
2012-01-31 00:13:24 +01:00
Carl Eugen Hoyos ea604de91e Simplify "deloco" and support decoding of 48bit loco png. 2012-01-31 00:03:26 +01:00
Christophe Gisquet e5c9de2ab7 rv40: x86 SIMD for biweight
Provide MMX, SSE2 and SSSE3 versions, with a fast-path when the weights are
multiples of 512 (which is often the case when the values round up nicely).

*_TIMER report for the 16x16 and 8x8 cases:
C:
9015 decicycles in 16, 524257 runs, 31 skips
2656 decicycles in 8, 524271 runs, 17 skips
MMX:
4156 decicycles in 16, 262090 runs, 54 skips
1206 decicycles in 8, 262131 runs, 13 skips
MMX on fast-path:
2760 decicycles in 16, 524222 runs, 66 skips
995 decicycles in 8, 524252 runs, 36 skips
SSE2:
2163 decicycles in 16, 262131 runs, 13 skips
832 decicycles in 8, 262137 runs, 7 skips
SSE2 with fast path:
1783 decicycles in 16, 524276 runs, 12 skips
711 decicycles in 8, 524283 runs, 5 skips
SSSE3:
2117 decicycles in 16, 262136 runs, 8 skips
814 decicycles in 8, 262143 runs, 1 skips
SSSE3 with fast path:
1315 decicycles in 16, 524285 runs, 3 skips
578 decicycles in 8, 524286 runs, 2 skips

This means around a 4% speedup for some sequences.

Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-01-30 23:58:25 +01:00
Diego Biurrun 91bafb52ae x86: Give RV40 init file a more suitable name. 2012-01-30 23:58:24 +01:00
Diego Biurrun c30b198381 x86: Place mm_flags variable declaration below the appropriate #ifdef.
This fixes some unused variable warnings with YASM disabled.
2012-01-30 23:58:23 +01:00
Michael Bradshaw f0d6828dbe Supoort decoding of gray16 images with libopenjpeg. 2012-01-30 23:53:25 +01:00
Clément Bœsch 6a3cc21242 mp3dec: fix truncating packet error message while decoding a complete MP3.
The MP3 demuxer split the data in packets of 1024B which are later split
in MP3 frames by the MPEG audio parser. The last read is "truncated",
but this should not raise any error.

Solution-by: Michael Niedermayer
2012-01-30 23:29:34 +01:00
Clément Bœsch cc7342f712 assdec: fix wrong alloc pointer check. 2012-01-30 23:28:36 +01:00
Clément Bœsch 7c0d30b57b ass: use av_asprintf() instead of a temporary stack buffer. 2012-01-30 23:28:26 +01:00
Martin Storsjö 75ab1e62d4 movdec: Ignore sample_degradation_priority bits when checking first_sample_flags
This makes the first packet of a track fragment run to get
the keyframe flag set properly if sample_degradation_priority
is nonzero.

This makes the keyframes flag be set properly for ismv files
created by Microsoft.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-01-31 00:13:31 +02:00
Martin Storsjö 89f6e8a20c flvdec: Interpret a toplevel 'object' type metadata item as normal metadata, too
Previously, we've only passed the key string on to the recursive
amf_parse_object for the mixedarray type, not for 'object'. By
passing the key string on, the recursive amf_parse_object can
store the amf objects as metadata.

This kind of data was seen in data from XSplit Broadcaster, received
over RTMP via Wowza. This patch allows reading this metadata.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-01-30 23:34:47 +02:00
Anton Khirnov d7edd359ec avconv: deprecate the -deinterlace option
Its quality is horrible, yadif should always be used instead.
2012-01-30 21:43:08 +01:00
Michael Niedermayer 9729f140ae diracdec: Fix integer overflow leading to out of global array read.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-01-30 20:35:09 +01:00
Michael Niedermayer d2a47c9473 fate: add support for specifying the shell used to run configure
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-01-30 20:35:09 +01:00
Martin Storsjö c9b309e8cb doc: Fix the name of the new function
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-01-30 21:29:56 +02:00
Justin Ruggles 89eea6df28 aacenc: make sure to encode enough frames to cover all input samples.
Currently, any samples in the final frame are not decoded because they are
only represented by one frame instead of two. So we encode two final frames to
cover both the analysis delay and the MDCT delay.
2012-01-30 14:20:24 -05:00
Justin Ruggles f44005b610 aacenc: only use the number of input samples provided by the user.
Fixes handling of CODEC_CAP_SMALL_LAST_FRAME.
2012-01-30 14:20:24 -05:00
Alex Converse 48f1e5212c wmadec: Verify bitstream size makes sense before calling init_get_bits.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
2012-01-30 10:54:24 -08:00
Alex Converse ae35210a5d kmvc: Log into a context at a log level constant. 2012-01-30 10:54:24 -08:00
Alex Converse dfa37fe8a3 mpeg12: Pad framerate tab to 16 entries.
There are many places where we read an unchecked 4-bit index into it.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
2012-01-30 10:19:01 -08:00
Michael Niedermayer a02e8df973 kgv1dec: Increase offsets array size so it is large enough.
Fixes CVE-2011-3945

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 807a045ab7)

Signed-off-by: Alex Converse <alex.converse@gmail.com>
2012-01-30 10:16:23 -08:00
Alex Converse 386741f887 kmvc: Check palsize.
Fixes: CVE-2011-3952

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Based on fix by Michael Niedermayer
2012-01-30 10:16:17 -08:00
Alex Converse c898431ca5 nsvdec: Propagate errors
Related to CVE-2011-3940.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
2012-01-30 10:15:41 -08:00
Alex Converse 8fd8a48263 nsvdec: Be more careful with av_malloc().
Check results for av_malloc() and fix an overflow in one call.

Related to CVE-2011-3940.

Based in part on work from Michael Niedermayer.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
2012-01-30 10:15:19 -08:00
Michael Niedermayer 6a89b41d97 nsvdec: Fix use of uninitialized streams.
Fixes CVE-2011-3940 (Out of bounds read resulting in out of bounds write)

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 5c011706bc)

Signed-off-by: Alex Converse <alex.converse@gmail.com>
2012-01-30 10:14:06 -08:00
Reimar Döffinger 2ab5feafe1 huffman: use a simple assignment instead of FFSWAP.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-01-30 18:39:08 +01:00
Reimar Döffinger 6166bf3cbe Deobfuscate ff_huff_build_tree.
I have no idea what the idea was behind the original code,
but the new code is equivalent to it.
In that loop that places the new node nodes[j] contains
always the data of the new node (since the steps are always
in order: FFSWAP copies node[j] to node[j-1], j is decremented).
Thus nodes[j].no == i and nodes[j].sym == HNODE.
make fate still passes and contains VP6 samples which use
FF_HUFFMAN_FLAG_HNODE_FIRST.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-01-30 18:39:08 +01:00
Martin Storsjö b7d3dd907f movenc: cosmetics: Get rid of camelCase identifiers
Also add spacing around operators on touched lines, and split
one line to match the common style.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-01-30 19:24:39 +02:00
Paul B Mahol 08d8029ea8 swscale: more generic check for planar destination formats with alpha
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-01-30 07:37:13 -08:00
Martin Storsjö fe47ea8f7a doc: Document mov/mp4 fragmentation options
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-01-30 14:48:24 +02:00
Diego Biurrun e9ba6b3704 build: Use order-only prerequisites for creating FATE reference file dirs. 2012-01-30 13:00:35 +01:00
Carl Eugen Hoyos 5f27374c1b Cosmetics: Add bit per component information to v308 comment. 2012-01-30 11:30:52 +01:00
Martin Lambers 6fe12c7ff2 Detect jps and pns files as (3D) jpg and png images. 2012-01-30 11:28:08 +01:00
Carl Eugen Hoyos 36436a4032 Add option forced_subs_only for Bluray subtitles. 2012-01-30 11:25:59 +01:00
Carl Eugen Hoyos 6838df0488 Add pix_fmt_info for yuva444.
Reviewed-by: Paul B Mahol
2012-01-30 11:24:02 +01:00
Christophe Gisquet 6b03900382 x86 dsputil: provide SSE2/SSSE3 versions of bswap_buf
While pshufb allows emulating bswap on XMM registers for SSSE3, more
shuffling is needed for SSE2. Alignment is critical, so specific codepaths
are provided for this case.

For the huffyuv sequence "angels_480-huffyuvcompress.avi":
C (using bswap instruction): ~ 55k cycles
SSE2:                        ~ 40k cycles
SSSE3 using unaligned loads: ~ 35k cycles
SSSE3 using aligned loads:   ~ 30k cycles

Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-01-30 10:19:55 +01:00
Diego Biurrun a846202343 rtsp: Remove some unused variables from ff_rtsp_connect(). 2012-01-30 10:19:47 +01:00
Paul B Mahol 8b933129b9 avutil: make intfloat api public
The functions are already av_ prefixed and intfloat header is already provided.
Install libavutil/intfloat.h

Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-01-30 07:41:31 +01:00
Rafaël Carré 420df8b7c4 avformat_write_header(): detail error message
Give the exact aspect ratios when there is a mismatch between encoder
and muxer.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-01-30 07:32:57 +01:00
Mike Melanson cc09dc7863 s/vbsf/bsf/
-vbsf doesn't exist anymore. It got renamed to -bsf somewhere along the
line. Update print statement accordingly.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-01-30 07:30:21 +01:00
Mike Melanson b864b38397 yuv4mpeg: allow YUV4MPEG2 demuxer to recognize 'C420' colorspace.
Current demuxer recognizes several colorspace formats that begin with 'C420'
but does not yet recognize plain 'C420'. GStreamer's y4menc component
generates .y4m files with a 'C420' colorspace. This new comparison is
placed after the other 'C420' checks so that it doesn't interfere with
them.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-01-30 07:30:21 +01:00
Ronald S. Bultje af79a0c48a png: add support for bpp>4 to paeth x86 SIMD code.
This fixes playback of e.g. RGB48 (bpp=6) content on x86 CPUs. Fixes
bug 214.
2012-01-29 21:22:50 -08:00
Michael Niedermayer e1492151fb Merge remote-tracking branch 'qatar/master'
* qatar/master:
  png: add missing #if HAVE_SSSE3 around function pointer assignment.
  imdct36: mark SSE functions as using all 16 XMM registers.
  png: move DSP functions to their own DSP context.
  sunrast: Add a sample request for TIFF, IFF, and Experimental Rastfile formats.
  sunrast: Cosmetics
  sunrast: Remove if (unsigned int < 0) check.
  sunrast: Replace magic number by a macro.

Conflicts:
	libavcodec/dsputil.c
	libavcodec/dsputil.h
	libavcodec/pngdec.c
	libavcodec/sunrast.c
	libavcodec/x86/Makefile
	libavcodec/x86/dsputil_mmx.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-01-30 05:20:58 +01:00
Ronald S. Bultje f91c4b7824 png: add SSE2 version for add_bytes_l2. 2012-01-29 18:52:17 -08:00
Ronald S. Bultje 59f474b49d png: convert DSP functions to yasm. 2012-01-29 18:47:50 -08:00
Mans Rullgard 3715d841a6 Fix non-C89 declarations in for loops
Some compilers still do not support this syntax.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-01-29 23:26:04 +00:00
Alexander Strasser 90bf7c7b41 build: configure: Restore alphabetical order for CMDLINE_SET 2012-01-29 22:56:12 +01:00
Reimar Döffinger f9eb622944 Fix offset validity checks.
Offsets are relative to the end of the header, not the
start of the buffer, thus the buffer size needs to be subtracted.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-01-29 21:52:55 +01:00
Reimar Döffinger cd3ced1bb9 fraps: frame threading support.
Codec is too simple to gain much from it at lower resolutions,
but should help at very high resolutions, particularly for
v3 and v5 where a not too optimized pseudo-YUV to RGB
is done in the codec.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-01-29 21:52:55 +01:00
Reimar Döffinger 0efdb942a6 fraps: Deduplicate some code.
Also moves it before the get_buffer call so that most error exits
happen before it.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-01-29 21:52:54 +01:00
Reimar Döffinger 3469c88804 fraps: Minor simplification, use local variable.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-01-29 21:52:54 +01:00
Ronald S. Bultje 20a7d3178f png: add missing #if HAVE_SSSE3 around function pointer assignment. 2012-01-29 12:31:59 -08:00
Paul B Mahol 371946bc27 r210enc: don't write uninitialized data
Also fix r210 fate decoding test.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-01-29 21:00:19 +01:00
Paul B Mahol 3b93a524c2 fate: add v308 encoding/decoding test
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-01-29 18:11:40 +01:00
Paul B Mahol 668a0b152b libvpxenc: update after FF_API_X264_GLOBAL_OPTS removal
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-01-29 18:11:40 +01:00
Paul B Mahol 8e46e12222 fate: add yuv4 encoding/decoding test
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-01-29 18:11:40 +01:00
Peter Ross 15d838b745 bintext: use private options now that AVFormatParameters has been removed
Reviewed-by: Stefano Sabatini <stefasab@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-01-29 18:11:39 +01:00
Carl Eugen Hoyos a915618a29 Improve decoding quality for lossy wavpack.
This reverts e6e7bfc1 and 365e1ec2.
The code may be incorrect both before and after the revert, but we
do not have any samples that were fixed by the original commits.

Fixes ticket #871.
2012-01-29 17:50:17 +01:00
Reimar Döffinger 7fabef1f01 fraps: optimize pseudo-YUV to RGB conversion.
With gcc 4.6 this part of the code is ca. 4x faster, resulting
in an overall speedup of around 5% for fate-fraps-v5 sample.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-01-29 17:34:22 +01:00
Ronald S. Bultje 331e7c4cb3 imdct36: mark SSE functions as using all 16 XMM registers.
On x86-64, it indeed uses all 16 registers (and on x86-32, this gets
clipped to 8). Not marking it properly causes callers of this function
to fail randomly because of XMM register clobbering.
2012-01-29 08:14:05 -08:00
Ronald S. Bultje e92003514d png: move DSP functions to their own DSP context. 2012-01-29 08:11:18 -08:00
Aneesh Dogra f9708e9a0e sunrast: Add a sample request for TIFF, IFF, and Experimental Rastfile formats.
Signed-off-by: Aneesh Dogra <lionaneesh@gmail.com>
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-01-29 08:11:18 -08:00
Aneesh Dogra 415f358a1f sunrast: Cosmetics
Signed-off-by: Aneesh Dogra <lionaneesh@gmail.com>
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-01-29 08:11:18 -08:00
Aneesh Dogra 4ffb8e2c14 sunrast: Remove if (unsigned int < 0) check.
Note: This fixes the following GCC warning :-
libavcodec/sunrast.c:94: warning: comparison of unsigned expression < 0 is always false.

Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-01-29 08:11:18 -08:00
Aneesh Dogra fef3771778 sunrast: Replace magic number by a macro.
Signed-off-by: Aneesh Dogra <lionaneesh@gmail.com>
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-01-29 08:11:06 -08:00
Paul Kendall 7df9937fcc Fix dvb subtitle decoding when display segment is missing. 2012-01-29 14:52:56 +01:00
Reimar Döffinger f4e8292eb7 fraps: Add release_buffer forgotten when reget_buffer was removed.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-01-29 14:48:36 +01:00
Reimar Döffinger 95e873bb14 fraps: fix indentation.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-01-29 14:21:36 +01:00
Reimar Döffinger 6a9b565e0a FRAPS: Do not needlessly use reget_buffer.
Codec has only I- and skip-frames, so there is no
need for reget_buffer, change it so it works with
get_buffer.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-01-29 14:17:12 +01:00
Reimar Döffinger 05741d70c7 Fallback to input timestamps for non-delay encoders.
Causes FFmpeg to pass through the correct pts values,
instead of clobbering all to AV_NOPTS_VALUE (the av_init_packet
default) to then make up new ones based on only fps when muxing.
Included are also the related FATE ref changes, which all
some reasonable on quick investigation.
Also set all H.264 references to us -vsync drop to reduce the
diff for the ref files.
Otherwise almost all H.264 references need to change, mostly due
to now starting with negative pts values.
About 20 additional H.264 conformance tests needed -vsync
drop anyway because they create pts values that are out of
order and thus not possible to mux otherwise.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-01-29 14:17:11 +01:00
Paul B Mahol 9719528e05 fate: fix r210 test on big endian
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-01-29 03:36:22 +01:00
Paul B Mahol 931ec4a2f6 fate: add R210 encoding/decoding test
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-01-29 02:42:31 +01:00
Paul B Mahol 6bcc8275a1 r210enc: fix encoding for unaligned widths
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-01-29 02:41:56 +01:00
Paul B Mahol cbf1dc4eb4 fate: add Y41P encoding/decoding test
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-01-29 02:41:09 +01:00
Michael Niedermayer c065255bba Merge remote-tracking branch 'qatar/master'
* qatar/master:
  aacenc: Fix LONG_START windowing.
  aacenc: Fix a bug where deinterleaved samples were stored in the wrong place.
  avplay: use the correct array size for stride.
  lavc: extend doxy for avcodec_alloc_context3().
  APIchanges: mention avcodec_alloc_context()/2/3
  avcodec_align_dimensions2: set only 4 linesizes, not AV_NUM_DATA_POINTERS.
  aacsbr: ARM NEON optimised sbrdsp functions
  aacsbr: align some arrays
  aacsbr: move some simdable loops to function pointers
  cosmetics: Remove extra newlines at EOF

Conflicts:
	libavcodec/utils.c
	libavfilter/formats.c
	libavutil/mem.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-01-29 00:34:59 +01:00
Reimar Döffinger 97dece333d rawenc: initialize coded_frame via avcodec_get_frame_defaults.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-01-28 23:21:03 +01:00
Reimar Döffinger dbc7c6121e libgsm: Fix compilation.
Move libgsm_encode_close before its first use and call it
with the correct number of arguments.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-01-28 23:21:03 +01:00
Paul B Mahol f122cbf087 v210x: check for return value of avcodec_alloc_frame()
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-01-28 22:08:21 +01:00
Paul B Mahol 7299e5d52b v210enc: remove redundant assignment
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-01-28 22:08:21 +01:00
Paul B Mahol bf0aea7907 v210enc: check return value of avcodec_alloc_frame()
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-01-28 22:08:21 +01:00
Paul B Mahol 70a8c79680 v210dec: check return value of avcodec_alloc_frame()
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-01-28 22:08:21 +01:00
Paul B Mahol 3ab90687fd roqaudioenc: check return value of avcodec_alloc_frame()
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-01-28 22:08:21 +01:00
Paul B Mahol 2de6a7253e roqaudioenc: remove redundant assignment
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-01-28 22:08:20 +01:00
Paul B Mahol 1e90450fad r210dec: check return value of avcodec_alloc_frame()
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-01-28 22:08:20 +01:00
Paul B Mahol 1fa24d08b2 pcm: remove redundant assignment
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-01-28 22:08:20 +01:00
Paul B Mahol ae8dc203b2 pcm: check return value of avcodec_alloc_frame()
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-01-28 22:08:20 +01:00
Paul B Mahol f913f3788a libopencore-amr: fix memleak
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-01-28 22:08:20 +01:00
Paul B Mahol 766e160e87 libopencore-amr: check return value of avcodec_alloc_frame()
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-01-28 22:08:20 +01:00
Paul B Mahol a136c2cf3e libmp3lame: remove dupe assigment
It is already done by avcodec_alloc_context().

Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-01-28 22:08:20 +01:00
Paul B Mahol 5291cedd6c libgsm: remove dupe assigment.
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-01-28 22:08:20 +01:00
Paul B Mahol 3ac99cdc41 libgsm: check return value of gsm_create & avcodec_alloc_frame()
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-01-28 22:08:20 +01:00
Nathan Caldwell 2e626dd513 aacenc: Fix LONG_START windowing.
Forgot to add the equivalent amount to the incoming sample pointer as the output pointer.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-01-28 22:07:30 +01:00
Nathan Caldwell dc7e7d4dd9 aacenc: Fix a bug where deinterleaved samples were stored in the wrong place.
10l: Forgot to adjust deinterleave for new location of incoming samples in 7946a5a.

This produced incorrect, but surprisingly listenable results.

Thanks to Justin Ruggles for the report.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-01-28 22:07:21 +01:00
Reimar Döffinger 47a5274104 Add -vsync drop.
This allows to work around any non-monotonic time-stamp errors
by just discarding all time stamps.
This will be necessary to allow H.264 conformance tests to pass
after fixing time stamps to be passed through rawenc.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-01-28 22:01:09 +01:00
Reimar Döffinger 836110665f Compare video_sync_method against the appropriate defines.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-01-28 22:01:09 +01:00
Reimar Döffinger 34751f8313 Demux all parts of concatenated H.264.
We may or may not be able to play the latter parts
but not demuxing at all seems like the worst possible behaviour.
Fixes playback of e.g.
http://playlist.yahoo.com/makeplaylist.dll?sid=128114687&sdm=web&pt=rd
As a proper solution either multiple video streams should
be exported or side data should be used to update extradata
if necessary.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-01-28 22:01:09 +01:00
Reimar Döffinger bb2d42c22f Set AVFMT_TS_NONSTRICT for framecrc muxer.
Since it is set for e.g. webm muxer we should make it possible
to test such streams with framecrc, too.
Though the primary reason is that this allows the H.264 tests
to not run into this check when fixing raw video encode to
pass pts values on.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-01-28 22:01:09 +01:00
Reimar Döffinger 333f5b52e3 Remove unnecessary -vsync 0.
The tests work fine without it, and it will cause issues when the
rawvideo decoder is changed to properly handle pts values.
The H.264 conformance tests however are still broken, usually losing
the first frames without it.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-01-28 22:01:09 +01:00
Reimar Döffinger a0eb8de5e0 Merge palette-only header with actual video frame.
This fixes the video frame pts (off by one for each MVIh)
and makes the "key frames" decode stand-alone (MVIh
contains only palette, such a palette-only frame being
marked as key frame is not really correct).

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-01-28 22:01:05 +01:00
Reimar Döffinger 0b378e8aa9 DFA: fix "skip frame" TSW1 encoding.
Previously the decoder would raise an error.
The end result is the same, the time stamps only change
because regression tests create time stamps incorrectly.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-01-28 21:59:01 +01:00
Paul B Mahol f870fc2fb9 adpcmenc: refactor some code.
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-01-28 21:20:42 +01:00
Paul B Mahol 82c252972b adpcmenc: check return value of avcodec_alloc_frame()
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-01-28 20:15:15 +01:00
Paul B Mahol 7b21b0f155 adxenc: check return value of avcodec_alloc_frame()
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-01-28 20:14:20 +01:00
Paul B Mahol 88fb935c1c ac3enc: check return value of avcodec_alloc_frame()
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-01-28 20:13:38 +01:00
Michael Niedermayer cb73e35660 example: Update decoding/encoding example to the new API.
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-01-28 19:47:53 +01:00
Michael Niedermayer afe9105f66 example: update muxing example to purple API
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-01-28 19:47:25 +01:00
Anton Khirnov 91b3bfba88 avplay: use the correct array size for stride.
AV_NUM_DATA_POINTERS instead of 4.
2012-01-28 19:45:45 +01:00
Anton Khirnov 9bfe218299 lavc: extend doxy for avcodec_alloc_context3(). 2012-01-28 19:45:33 +01:00
Anton Khirnov 44911f2985 APIchanges: mention avcodec_alloc_context()/2/3
There was no minor bump for making avcodec_alloc_context3() public and
deprecating the other two, so I'm using the first next lavc bump.
2012-01-28 19:45:10 +01:00
Anton Khirnov 2d9535ad31 avcodec_align_dimensions2: set only 4 linesizes, not AV_NUM_DATA_POINTERS.
This function is video-only, so there's no point in setting more
linesizes.

Fixes stack corruption in avplay.
2012-01-28 19:44:55 +01:00
Paul B Mahol 762311ff94 swscale: fix conversion into yuva444p from non-alpha formats
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-01-28 17:37:08 +01:00
Paul B Mahol 7bab43f29c yuv2rgb: better check if source format have alpha
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-01-28 17:37:08 +01:00
Mans Rullgard be822d77b6 aacsbr: ARM NEON optimised sbrdsp functions
Overall speedup of HE-AAC decoding 2.3x on Cortex-A8, 1.2x on A9.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-01-28 14:56:18 +00:00
Mans Rullgard 8996ed2b73 aacsbr: align some arrays
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-01-28 14:56:18 +00:00
Mans Rullgard aac46e088d aacsbr: move some simdable loops to function pointers
This prepares for assembly optimisations by moving the most
time-consuming loops to functions called through pointers
in a new context.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-01-28 14:56:18 +00:00
Clément Bœsch 3bc92e34a4 cmdutils: re-add return 0 accidentally remove from opt_protocols(). 2012-01-28 12:39:57 +01:00
Clément Bœsch 23b639c44f Fix "ouput" typo and add a check. 2012-01-28 11:04:19 +01:00
Michael Niedermayer 81ab42a334 dirac_yasm: fix linking failure due to %ifndef
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-01-28 09:06:03 +01:00
Michael Niedermayer 72bbe768ba devices: Disable v4l to fix compilation until someone
has time to update it to the new API.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-01-28 08:44:33 +01:00
Michael Niedermayer e37f161e66 Merge remote-tracking branch 'qatar/master'
* qatar/master: (71 commits)
  movenc: Allow writing to a non-seekable output if using empty moov
  movenc: Support adding isml (smooth streaming live) metadata
  libavcodec: Don't crash in avcodec_encode_audio if time_base isn't set
  sunrast: Document the different Sun Raster file format types.
  sunrast: Add a check for experimental type.
  libspeexenc: use AVSampleFormat instead of deprecated/removed SampleFormat
  lavf: remove disabled FF_API_SET_PTS_INFO cruft
  lavf: remove disabled FF_API_OLD_INTERRUPT_CB cruft
  lavf: remove disabled FF_API_REORDER_PRIVATE cruft
  lavf: remove disabled FF_API_SEEK_PUBLIC cruft
  lavf: remove disabled FF_API_STREAM_COPY cruft
  lavf: remove disabled FF_API_PRELOAD cruft
  lavf: remove disabled FF_API_NEW_STREAM cruft
  lavf: remove disabled FF_API_RTSP_URL_OPTIONS cruft
  lavf: remove disabled FF_API_MUXRATE cruft
  lavf: remove disabled FF_API_FILESIZE cruft
  lavf: remove disabled FF_API_TIMESTAMP cruft
  lavf: remove disabled FF_API_LOOP_OUTPUT cruft
  lavf: remove disabled FF_API_LOOP_INPUT cruft
  lavf: remove disabled FF_API_AVSTREAM_QUALITY cruft
  ...

Conflicts:
	doc/APIchanges
	libavcodec/8bps.c
	libavcodec/avcodec.h
	libavcodec/libx264.c
	libavcodec/mjpegbdec.c
	libavcodec/options.c
	libavcodec/sunrast.c
	libavcodec/utils.c
	libavcodec/version.h
	libavcodec/x86/h264_deblock.asm
	libavdevice/libdc1394.c
	libavdevice/v4l2.c
	libavformat/avformat.h
	libavformat/avio.c
	libavformat/avio.h
	libavformat/aviobuf.c
	libavformat/dv.c
	libavformat/mov.c
	libavformat/utils.c
	libavformat/version.h
	libavformat/wtv.c
	libavutil/Makefile
	libavutil/file.c
	libswscale/x86/input.asm
	libswscale/x86/swscale_mmx.c
	libswscale/x86/swscale_template.c
	tests/ref/lavf/ffm

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-01-28 07:53:34 +01:00
Alex Converse 7181c4edee cosmetics: Remove extra newlines at EOF 2012-01-27 17:19:09 -08:00
Michael Niedermayer f21b6159cf mpegvideoenc: Fail if a buffer size is specified without a max rate.
This combination makes not much sense.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-01-28 01:36:44 +01:00
Michael Niedermayer 49f2056289 pngdec: Convert 2/4 bit formats to 8bit.
This way 2 and 4 bit gray, rgb & rgba are supported.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-01-28 01:36:43 +01:00
Michael Niedermayer eb3f81e4ef targadec: Simplify RLE out of packet check.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-01-28 01:36:42 +01:00
Paul B Mahol f9ca1ac796 sws/pixfmt/pixdesc: add support for yuva444p
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>

Conflicts:

	libavutil/avutil.h
	libavutil/pixfmt.h
2012-01-28 01:30:41 +01:00
Martin Storsjö e771e6dd63 movenc: Allow writing to a non-seekable output if using empty moov
In this mode, no seeks will be done except for within moov/moof
fragments, which should fit within the AVIOContext buffer.

This allows pushing live smooth streaming format data to
a live publishing point on IIS over http.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-01-27 21:12:41 +02:00
Martin Storsjö f532210499 movenc: Support adding isml (smooth streaming live) metadata
This metadata is required for pushing a live stream to an IIS
publishing point.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-01-27 21:12:28 +02:00
Martin Storsjö 9a7dc618c5 libavcodec: Don't crash in avcodec_encode_audio if time_base isn't set
Earlier, calling avcodec_encode_audio worked fine even if time_base
wasn't set. Now it crashes due to trying to scale the output pts to
the codec context time base. This affects e.g. VLC.

If no time_base is set for audio codecs, set it to the sample
rate.

CC: libav-stable@libav.org
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-01-27 20:52:32 +02:00
Aneesh Dogra bca77a1a64 sunrast: Document the different Sun Raster file format types.
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-01-27 13:21:46 -05:00
Aneesh Dogra 1bbb173652 sunrast: Add a check for experimental type.
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-01-27 11:35:39 -05:00
Justin Ruggles 2c577155a7 libspeexenc: use AVSampleFormat instead of deprecated/removed SampleFormat
Fixes build with --enable-libspeex
2012-01-27 11:28:21 -05:00
Anton Khirnov c5254755c0 lavf: remove disabled FF_API_SET_PTS_INFO cruft 2012-01-27 10:52:43 +01:00
Anton Khirnov 374e469b8d lavf: remove disabled FF_API_OLD_INTERRUPT_CB cruft 2012-01-27 10:52:43 +01:00
Anton Khirnov bf868727d7 lavf: remove disabled FF_API_REORDER_PRIVATE cruft 2012-01-27 10:52:43 +01:00
Anton Khirnov fd87ba3220 lavf: remove disabled FF_API_SEEK_PUBLIC cruft 2012-01-27 10:52:43 +01:00
Anton Khirnov bd4c51312b lavf: remove disabled FF_API_STREAM_COPY cruft 2012-01-27 10:52:43 +01:00
Anton Khirnov 2a0f868cfa lavf: remove disabled FF_API_PRELOAD cruft 2012-01-27 10:52:43 +01:00
Anton Khirnov 1329827e79 lavf: remove disabled FF_API_NEW_STREAM cruft 2012-01-27 10:52:43 +01:00
Anton Khirnov adad5b88f8 lavf: remove disabled FF_API_RTSP_URL_OPTIONS cruft 2012-01-27 10:52:43 +01:00
Anton Khirnov f0cb13958d lavf: remove disabled FF_API_MUXRATE cruft 2012-01-27 10:52:43 +01:00
Anton Khirnov 2f5e728b58 lavf: remove disabled FF_API_FILESIZE cruft 2012-01-27 10:52:43 +01:00
Anton Khirnov df0bb26aca lavf: remove disabled FF_API_TIMESTAMP cruft 2012-01-27 10:52:42 +01:00
Anton Khirnov 3bbfd3026c lavf: remove disabled FF_API_LOOP_OUTPUT cruft 2012-01-27 10:52:42 +01:00
Anton Khirnov 6dc345555f lavf: remove disabled FF_API_LOOP_INPUT cruft 2012-01-27 10:52:42 +01:00
Anton Khirnov b32e30faa1 lavf: remove disabled FF_API_AVSTREAM_QUALITY cruft 2012-01-27 10:52:42 +01:00
Anton Khirnov 2d70912cc2 lavf: remove disabled FF_API_FLAG_RTP_HINT cruft 2012-01-27 10:52:42 +01:00
Anton Khirnov 1d911bb404 lavf: remove disabled FF_API_SDP_CREATE cruft 2012-01-27 10:52:42 +01:00
Anton Khirnov 64f6f6f836 lavf: remove disabled FF_API_GUESS_IMG2_CODEC cruft 2012-01-27 10:52:42 +01:00
Anton Khirnov 21824e5b88 lavf: remove disabled FF_API_PKT_DUMP cruft 2012-01-27 10:52:42 +01:00
Anton Khirnov cc10ab79ec lavf: remove disabled FF_API_FIND_INFO_TAG cruft 2012-01-27 10:52:42 +01:00
Anton Khirnov ecd5f41a06 lavf: remove disabled FF_API_PARSE_DATE cruft 2012-01-27 10:52:42 +01:00
Anton Khirnov 997420abf2 lavf: remove disabled FF_API_DUMP_FORMAT cruft 2012-01-27 10:52:42 +01:00
Anton Khirnov 2fb7501938 lavf: remove disabled FF_API_FORMAT_PARAMETERS cruft
Also remove now unused AVFormatParameters struct and
AVOutputFormat.set_parameters().
2012-01-27 10:52:42 +01:00
Anton Khirnov 38233fc131 lavf: remove disabled FF_API_OLD_METADATA2 cruft 2012-01-27 10:52:42 +01:00
Anton Khirnov 2439f2ca82 lavf: remove disabled FF_API_OLD_AVIO cruft 2012-01-27 10:52:42 +01:00
Anton Khirnov a17479dfce lavf: increase major version from 53 to 54. 2012-01-27 10:52:39 +01:00
Anton Khirnov 6e9651d106 lavf: remove AVFormatParameters from AVFormatContext.read_header signature 2012-01-27 10:51:57 +01:00
Anton Khirnov 3b4aaa6190 lavc: remove disabled FF_API_AVFRAME_AGE cruft. 2012-01-27 10:38:35 +01:00
Anton Khirnov d803775e81 lavc: remove disabled FF_API_DATA_POINTERS cruft. 2012-01-27 10:38:35 +01:00
Anton Khirnov 10e1ae5eff lavc: remove disabled FF_API_TIFFENC_COMPLEVEL cruft. 2012-01-27 10:38:35 +01:00
Anton Khirnov 370e923e0b lavc: remove disabled FF_API_INTERNAL_CONTEXT cruft. 2012-01-27 10:38:35 +01:00
Anton Khirnov ac84395d6a lavc: remove disabled FF_API_PARSE_FRAME cruft. 2012-01-27 10:38:34 +01:00
Anton Khirnov 8b9b6041d7 lavc: remove disabled FF_API_GET_ALPHA_INFO cruft. 2012-01-27 10:38:34 +01:00
Anton Khirnov 99ace37e68 lavc: remove disabled FF_API_MJPEG_GLOBAL_OPTS cruft. 2012-01-27 10:38:34 +01:00
Anton Khirnov 96e9b96fcd lavc: remove disabled FF_API_SNOW_GLOBAL_OPTS cruft. 2012-01-27 10:38:34 +01:00
Anton Khirnov b9de160c3e lavc: remove disabled FF_API_LAME_GLOBAL_OPTS cruft. 2012-01-27 10:38:34 +01:00
Anton Khirnov 3211932c51 lavc: remove disabled FF_API_AVCODEC_INIT cruft. 2012-01-27 10:38:34 +01:00
Anton Khirnov 491f443e1f lavc: remove disabled FF_API_ER cruft. 2012-01-27 10:38:34 +01:00
Anton Khirnov f326501a65 lavc: remove disabled FF_API_DRC_SCALE cruft. 2012-01-27 10:38:34 +01:00
Anton Khirnov d2d931500b lavc: remove disabled FF_API_AVCODEC_OPEN cruft. 2012-01-27 10:38:34 +01:00
Anton Khirnov ec104eef51 lavc: remove disabled FF_API_ALLOC_CONTEXT cruft. 2012-01-27 10:38:34 +01:00
Anton Khirnov 8e5746d461 lavc: remove disabled FF_API_GET_PIX_FMT_NAME cruft. 2012-01-27 10:38:34 +01:00
Anton Khirnov 0dc6bab092 lavc: remove disabled FF_API_FLAC_GLOBAL_OPTS cruft. 2012-01-27 10:38:34 +01:00
Anton Khirnov fbca04e6f6 lavc: remove disabled FF_API_OLD_FF_PICT_TYPES cruft. 2012-01-27 10:38:34 +01:00
Anton Khirnov 9a79bb552a lavc: remove disabled FF_API_THREAD_INIT cruft. 2012-01-27 10:38:34 +01:00
Anton Khirnov 7831a7e4ec lavc: remove disabled FF_API_ANTIALIAS_ALGO cruft. 2012-01-27 10:38:33 +01:00
Anton Khirnov 62dfea6535 lavc: remove disabled FF_API_OLD_AUDIOCONVERT cruft. 2012-01-27 10:38:33 +01:00
Anton Khirnov 284e65d64e lavc: remove disabled FF_API_OLD_SAMPLE_FMT cruft. 2012-01-27 10:38:33 +01:00
Anton Khirnov 6c8dab98b8 lavc: remove disabled FF_API_PALETTE_CONTROL cruft. 2012-01-27 10:38:33 +01:00
Anton Khirnov 9ce2a91b84 lavc: remove disabled FF_API_MPEGVIDEO_GLOBAL_OPTS cruft. 2012-01-27 10:38:33 +01:00
Anton Khirnov 7232bfbd93 lavc: remove disabled FF_API_X264_GLOBAL_OPTS cruft. 2012-01-27 10:38:33 +01:00
Anton Khirnov 7460398b89 lavc: remove the deprecated opt.h header. 2012-01-27 10:38:33 +01:00
Anton Khirnov 041cd5a0c5 lavc: remove the deprecated "ab" option. 2012-01-27 10:38:33 +01:00
Anton Khirnov 7773161b8f codec-regression: use private options instead of deprecated codec flags. 2012-01-27 10:38:33 +01:00
Anton Khirnov 7063b6eaee lavc: increase major version to 54.
The lavf-ffm test results change because ffmenc writes
AVCodecContext.flags/flags2 and the defaults for those change.
2012-01-27 10:38:30 +01:00
Alexandra Khirnova 570f6aaab1 cmdutils: fix options starting with 'no'.
E.g. non_linear_quant mpeg2video private option.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-01-27 10:27:00 +01:00
Mashiat Sarker Shakkhar bfbd22f9f0 Cosmetics: Fix some whitespace errors and indentation 2012-01-27 01:16:36 -08:00
Ronald S. Bultje 412b248edb x86inc.asm: fix typo.
Assemblers don't understand ! in %if statements.
2012-01-27 16:33:03 +08:00
Ronald S. Bultje b5d08c27c3 swscale: convert rgb/bgr24ToY/UV_mmx functions from inline asm to yasm.
Also implement sse2/ssse3/avx versions.
2012-01-27 11:00:30 +08:00
Ronald S. Bultje 3b15a6d742 config.asm: change %ifdef directives to %if directives.
This allows combining multiple conditionals in a single statement.
2012-01-27 10:19:57 +08:00
Alex Converse 08628b6afb Revert "sws/pixfmt/pixdesc: add support for yuva444p"
This reverts commit fc115c80b7.

Tests are broken.
2012-01-26 18:06:57 -08:00
Paul B Mahol 5eda82aac9 frwu: check if allocation was successful
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-01-27 09:31:06 +08:00
Mashiat Sarker Shakkhar d51d6ae9c4 vc1dec.c: Don't use uninitialized values of dmv_[x, y]
MVDATA may or may not be transmitted. If it is not, both
dmv_x and dmv_y is to be assumed zero.

This may not trigger wrong picture in all systems, but
it's a bug nevertheless. Fixes SA10116.vc1 on my 64-bit
Windows 7.

Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-01-27 09:24:13 +08:00
Paul B Mahol fc115c80b7 sws/pixfmt/pixdesc: add support for yuva444p
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-01-27 09:24:08 +08:00
Michael Niedermayer 01fcbdf9ce Merge remote-tracking branch 'qatar/master'
* qatar/master:
  smacker: Sanity check huffman tables found in the headers.
  smacker: remove dead store
  qdm2: Check data block size for bytes to bits overflow.
  mxfdec: Fix files with essence containers larger than 2 GiB.
  mxfdec: Employ correct printf conversion specifiers for POSIX int types.
  vc1: always read the bfraction element for interlaced fields
  fate: add XWD image regression test
  lavf: prevent infinite loops while flushing in avformat_find_stream_info
  matroskadec: Pad AAC extradata.
  ismindex: Fix build on mingw

Conflicts:
	libavformat/mxfdec.c
	libavformat/utils.c
	tests/lavf-regression.sh

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-01-27 02:09:58 +01:00
Alex Converse b57d262412 mjpegbdec: Fix overflow in SOS.
Based in part by a fix from Michael Niedermayer <michaelni@gmx.at>

Fixes CVE-2011-3947

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
2012-01-26 15:47:36 -08:00
Diego Biurrun 299ab0fd17 libavutil: Remove pointless file test program. 2012-01-26 22:44:37 +01:00
Paul B Mahol 324e818093 8bps: K&R formatting cosmetics
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-01-26 22:44:37 +01:00
Alex Converse 9adf25c1cf smacker: Sanity check huffman tables found in the headers.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind

CC: libav-stable@libav.org
2012-01-26 10:18:00 -08:00
Alex Converse 90c0c83e14 smacker: remove dead store 2012-01-26 10:17:04 -08:00
Alex Converse dac56d9ce0 qdm2: Check data block size for bytes to bits overflow.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind

CC: libav-stable@libav.org
2012-01-26 10:17:04 -08:00
Tomas Härdin 62271c4c9a mxfdec: Fix files with essence containers larger than 2 GiB.
For such files, accumulating into an int would cause an overflow.

Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-01-26 15:47:50 +01:00
Jean First 4fbd3e89e7 mxfdec: Employ correct printf conversion specifiers for POSIX int types.
Signed-off-by: Jean First <jeanfirst@gmail.com>
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-01-26 15:31:55 +01:00
Hendrik Leppkes feaa40020b vc1: always read the bfraction element for interlaced fields
Previously, it would not be read if refdist_flag was not set, however
according to the spec and the reference decoder, it should always be read.

Signed-off-by: Kostya Shishkov <kostya.shishkov@gmail.com>
2012-01-26 15:19:27 +01:00
Paul B Mahol 7de9af65c7 fate: add XWD image regression test
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-01-26 01:51:26 +01:00
Janne Grunau b3461c29c1 lavf: prevent infinite loops while flushing in avformat_find_stream_info
If no data was seen for a stream decoder are returning 0 when fed with
empty packets for flushing. We can stop flushing when the decoder does
not return delayed delayed frames anymore. Changes try_decode_frame()
return value to got_picture or negative error.

CC: libav-stable@libav.org
2012-01-26 00:45:05 +01:00
Alex Converse d2ee8c1779 matroskadec: Pad AAC extradata.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind

CC: libav-stable@libav.org
2012-01-25 14:46:06 -08:00
Martin Storsjö 8801fac365 ismindex: Fix build on mingw
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-01-26 00:04:28 +02:00
Mashiat Sarker Shakkhar 6ca1016b3a Use correct variable type for 32-bit samples buffer 2012-01-22 18:17:09 +06:00
1987 changed files with 128775 additions and 93321 deletions
+17 -9
View File
@@ -1,9 +1,17 @@
.config
.version
*.a
*.o
*.d
*.def
*.dll
*.exe
*.ho
*.lib
*.pc
*.so
*.so.*
*.ver
*-example
*-test
*_g
@@ -22,20 +30,19 @@ ffplay
ffprobe
ffserver
avconv
doc/avoptions_codec.texi
doc/avoptions_format.texi
doc/print_options
doc/examples/decoding_encoding
doc/examples/filtering_audio
doc/examples/filtering_video
doc/examples/metadata
doc/examples/muxing
libavcodec/*_tablegen
libavcodec/*_tables.c
libavcodec/*_tables.h
libavcodec/codec_names.h
libavcodec/libavcodec*
libavcore/libavcore*
libavdevice/libavdevice*
libavfilter/libavfilter*
libavformat/libavformat*
libavutil/avconfig.h
libavutil/libavutil*
libpostproc/libpostproc*
libswresample/libswresample*
libswscale/libswscale*
tests/audiogen
tests/base64
tests/data
@@ -46,6 +53,7 @@ tests/vsynth1
tests/vsynth2
tools/aviocat
tools/cws2fws
tools/ffeval
tools/graph2dot
tools/ismindex
tools/lavfi-showfiltfmts
-2
View File
@@ -500,5 +500,3 @@ necessary. Here is a sample; alter the names:
Ty Coon, President of Vice
That's all there is to it!
+39 -1
View File
@@ -3,6 +3,44 @@ releases are sorted from youngest to oldest.
version next:
version 0.11:
- Fixes CVE-2012-2771 ... 2805
- 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)
- 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.
- audio filters support in libavfilter and avconv
- add fps filter
- audio split filter
- vorbis parser
- png parser
- audio mix filter
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,
@@ -744,7 +782,7 @@ version 0.4.5:
- MPEG-4 vol header fixes (Jonathan Marsden <snmjbm at pacbell.net>)
- ARM optimizations (Lionel Ulmer <lionel.ulmer at free.fr>).
- Windows porting of file converter
- added MJPEG raw format (input/ouput)
- added MJPEG raw format (input/output)
- added JPEG image format support (input/output)
+6 -2
View File
@@ -20,8 +20,12 @@ Specifically, the GPL parts of FFmpeg are
There are a handful of files under other licensing terms, namely:
* The files libavcodec/jfdctfst.c, libavcodec/jfdctint.c, libavcodec/jrevdct.c
are taken from libjpeg, see the top of the files for licensing details.
* The files libavcodec/jfdctfst.c, libavcodec/jfdctint_template.c and
libavcodec/jrevdct.c are taken from libjpeg, see the top of the files for
licensing details. Specifically note that you must credit the IJG in the
documentation accompanying your program if you only distribute executables.
You must also indicate any changes including additions and deletions to
those three files in the documentation.
Should you, for whatever reason, prefer to use version 3 of the (L)GPL, then
the configure parameter --enable-version3 will activate this licensing option
+8 -2
View File
@@ -4,7 +4,7 @@ FFmpeg maintainers
Below is a list of the people maintaining different parts of the
FFmpeg code.
Please try to keep entries where you are the maintainer upto date!
Please try to keep entries where you are the maintainer up to date!
Names in () mean that the maintainer currently has no time to maintain the code.
A CC after the name means that the maintainer prefers to be CC-ed on patches
@@ -159,6 +159,7 @@ Codecs:
indeo5* Kostya Shishkov
interplayvideo.c Mike Melanson
ivi* Kostya Shishkov
jacosub* Clément Bœsch
jpeg_ls.c Kostya Shishkov
jvdec.c Peter Ross
kmvc.c Kostya Shishkov
@@ -171,6 +172,7 @@ Codecs:
libschroedinger* David Conrad
libspeexdec.c Justin Ruggles
libtheoraenc.c David Conrad
libutvideo* Derek Buitenhuis
libvorbis.c David Conrad
libxavs.c Stefan Gehrer
libx264.c Mans Rullgard, Jason Garrett-Glaser
@@ -243,6 +245,7 @@ Codecs:
xan.c Mike Melanson
xl.c Kostya Shishkov
xvmc.c Ivan Kalvachev
zerocodec.c Derek Buitenhuis
zmbv* Kostya Shishkov
Hardware acceleration:
@@ -313,6 +316,7 @@ Muxers/Demuxers:
ipmovie.c Mike Melanson
img2.c Michael Niedermayer
iss.c Stefan Gehrer
jacosub* Clément Bœsch
jvdec.c Peter Ross
libmodplug.c Clément Bœsch
libnut.c Oded Shimon
@@ -370,6 +374,7 @@ Muxers/Demuxers:
wv.c Kostya Shishkov
Protocols:
bluray.c Petri Hintukainen
http.c Ronald S. Bultje
mms*.c Ronald S. Bultje
udp.c Luca Abeni
@@ -395,7 +400,8 @@ x86 Michael Niedermayer
Releases
========
0.9 Michael Niedermayer
0.11 Michael Niedermayer
0.10 Michael Niedermayer
+14 -7
View File
@@ -19,7 +19,7 @@ PROGS := $(PROGS-yes:%=%$(EXESUF))
INSTPROGS = $(PROGS-yes:%=%$(PROGSSUF)$(EXESUF))
OBJS = $(PROGS-yes:%=%.o) cmdutils.o
TESTTOOLS = audiogen videogen rotozoom tiny_psnr base64
HOSTPROGS := $(TESTTOOLS:%=tests/%)
HOSTPROGS := $(TESTTOOLS:%=tests/%) doc/print_options
TOOLS = qt-faststart trasher
TOOLS-$(CONFIG_ZLIB) += cws2fws
@@ -31,6 +31,7 @@ ALLMANPAGES = $(BASENAMES:%=%.1)
FFLIBS-$(CONFIG_AVDEVICE) += avdevice
FFLIBS-$(CONFIG_AVFILTER) += avfilter
FFLIBS-$(CONFIG_AVFORMAT) += avformat
FFLIBS-$(CONFIG_AVRESAMPLE) += avresample
FFLIBS-$(CONFIG_AVCODEC) += avcodec
FFLIBS-$(CONFIG_POSTPROC) += postproc
FFLIBS-$(CONFIG_SWRESAMPLE)+= swresample
@@ -39,6 +40,7 @@ FFLIBS-$(CONFIG_SWSCALE) += swscale
FFLIBS := avutil
DATA_FILES := $(wildcard $(SRC_PATH)/presets/*.ffpreset) $(SRC_PATH)/doc/ffprobe.xsd
EXAMPLES_FILES := $(wildcard $(SRC_PATH)/doc/examples/*.c) $(SRC_PATH)/doc/examples/Makefile
SKIPHEADERS = cmdutils_common_opts.h
@@ -64,9 +66,11 @@ config.h: .config
@-printf '\nWARNING: $(?F) newer than config.h, rerun configure\n\n'
@-tput sgr0 2>/dev/null
SUBDIR_VARS := OBJS FFLIBS CLEANFILES DIRS TESTPROGS EXAMPLES SKIPHEADERS \
ALTIVEC-OBJS MMX-OBJS NEON-OBJS X86-OBJS YASM-OBJS-FFT YASM-OBJS \
HOSTPROGS BUILT_HEADERS TESTOBJS ARCH_HEADERS ARMV6-OBJS TOOLS
SUBDIR_VARS := CLEANFILES EXAMPLES FFLIBS HOSTPROGS TESTPROGS TOOLS \
ARCH_HEADERS BUILT_HEADERS SKIPHEADERS \
ALTIVEC-OBJS ARMV5TE-OBJS ARMV6-OBJS ARMVFP-OBJS MMI-OBJS \
MMX-OBJS NEON-OBJS VIS-OBJS YASM-OBJS \
OBJS TESTOBJS
define RESET
$(1) :=
@@ -122,9 +126,10 @@ install-progs: install-progs-yes $(PROGS)
$(Q)mkdir -p "$(BINDIR)"
$(INSTALL) -c -m 755 $(INSTPROGS) "$(BINDIR)"
install-data: $(DATA_FILES)
$(Q)mkdir -p "$(DATADIR)"
install-data: $(DATA_FILES) $(EXAMPLES_FILES)
$(Q)mkdir -p "$(DATADIR)/examples"
$(INSTALL) -m 644 $(DATA_FILES) "$(DATADIR)"
$(INSTALL) -m 644 $(EXAMPLES_FILES) "$(DATADIR)/examples"
uninstall: uninstall-libs uninstall-headers uninstall-progs uninstall-data
@@ -158,6 +163,8 @@ coverage-html: coverage.info
$(Q)genhtml -o $@ $<
$(Q)touch $@
check: all alltools checkheaders examples testprogs fate
include $(SRC_PATH)/doc/Makefile
include $(SRC_PATH)/tests/Makefile
@@ -172,5 +179,5 @@ $(sort $(OBJDIRS)):
# so this saves some time on slow systems.
.SUFFIXES:
.PHONY: all all-yes alltools *clean config examples install*
.PHONY: all all-yes alltools check *clean config install*
.PHONY: testprogs uninstall*
+7 -1
View File
@@ -4,9 +4,15 @@ FFmpeg README
1) Documentation
----------------
* Read the documentation in the doc/ directory.
* Read the documentation in the doc/ directory in git.
You can also view it online at http://ffmpeg.org/documentation.html
2) Licensing
------------
* See the LICENSE file.
3) Build and Install
--------------------
* See the INSTALL file.
+1 -1
View File
@@ -1 +1 @@
0.9.1.git
0.10.2.git
+13
View File
@@ -0,0 +1,13 @@
OBJS-$(HAVE_ARMV5TE) += $(ARMV5TE-OBJS) $(ARMV5TE-OBJS-yes)
OBJS-$(HAVE_ARMV6) += $(ARMV6-OBJS) $(ARMV6-OBJS-yes)
OBJS-$(HAVE_ARMVFP) += $(ARMVFP-OBJS) $(ARMVFP-OBJS-yes)
OBJS-$(HAVE_NEON) += $(NEON-OBJS) $(NEON-OBJS-yes)
OBJS-$(HAVE_MMI) += $(MMI-OBJS) $(MMI-OBJS-yes)
OBJS-$(HAVE_ALTIVEC) += $(ALTIVEC-OBJS) $(ALTIVEC-OBJS-yes)
OBJS-$(HAVE_VIS) += $(VIS-OBJS) $(VIS-OBJS-yes)
OBJS-$(HAVE_MMX) += $(MMX-OBJS) $(MMX-OBJS-yes)
OBJS-$(HAVE_YASM) += $(YASM-OBJS) $(YASM-OBJS-yes)
+54 -29
View File
@@ -32,11 +32,13 @@
#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"
#endif
#include "libavutil/avassert.h"
#include "libavutil/avstring.h"
#include "libavutil/mathematics.h"
#include "libavutil/parseutils.h"
@@ -54,6 +56,7 @@
#endif
struct SwsContext *sws_opts;
SwrContext *swr_opts;
AVDictionary *format_opts, *codec_opts;
const int this_year = 2012;
@@ -66,6 +69,7 @@ void init_opts(void)
sws_opts = sws_getContext(16, 16, 0, 16, 16, 0, SWS_BICUBIC,
NULL, NULL, NULL);
#endif
swr_opts = swr_alloc();
}
void uninit_opts(void)
@@ -74,6 +78,7 @@ void uninit_opts(void)
sws_freeContext(sws_opts);
sws_opts = NULL;
#endif
swr_free(&swr_opts);
av_dict_free(&format_opts);
av_dict_free(&codec_opts);
}
@@ -250,14 +255,12 @@ int parse_option(void *optctx, const char *opt, const char *arg,
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->flags & OPT_BOOL)))
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);
}
@@ -342,11 +345,8 @@ void parse_options(void *optctx, int argc, char **argv, const OptionDef *options
}
}
/*
* 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)
int locate_option(int argc, char **argv, const OptionDef *options,
const char *optname)
{
const OptionDef *po;
int i;
@@ -420,10 +420,10 @@ void parse_loglevel(int argc, char **argv, const OptionDef *options)
#define FLAGS(o) ((o)->type == AV_OPT_TYPE_FLAGS) ? AV_DICT_APPEND : 0
int opt_default(const char *opt, const char *arg)
{
const AVOption *oc, *of, *os;
const AVOption *oc, *of, *os, *oswr = NULL;
char opt_stripped[128];
const char *p;
const AVClass *cc = avcodec_get_class(), *fc = avformat_get_class(), *sc;
const AVClass *cc = avcodec_get_class(), *fc = avformat_get_class(), *sc, *swr_class;
if (!(p = strchr(opt, ':')))
p = opt + strlen(opt);
@@ -449,8 +449,17 @@ int opt_default(const char *opt, const char *arg)
}
}
#endif
swr_class = swr_get_class();
if (!oc && !of && !os && (oswr = av_opt_find(&swr_class, opt, NULL, 0,
AV_OPT_SEARCH_CHILDREN | AV_OPT_SEARCH_FAKE_OBJ))) {
int ret = av_opt_set(swr_opts, opt, arg, 0);
if (ret < 0) {
av_log(NULL, AV_LOG_ERROR, "Error setting option %s.\n", opt);
return ret;
}
}
if (oc || of || os)
if (oc || of || os || oswr)
return 0;
av_log(NULL, AV_LOG_ERROR, "Unrecognized option '%s'\n", opt);
return AVERROR_OPTION_NOT_FOUND;
@@ -537,6 +546,18 @@ int opt_max_alloc(const char *opt, const char *arg)
return 0;
}
int opt_cpuflags(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_codec_debug(const char *opt, const char *arg)
{
av_log_set_level(AV_LOG_DEBUG);
@@ -578,7 +599,8 @@ static int warned_cfg = 0;
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, \
@@ -607,6 +629,7 @@ static void print_all_libs_info(int flags, int level)
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
@@ -804,9 +827,9 @@ int opt_codecs(const char *opt, const char *arg)
decode = encode = cap = 0;
}
if (p2 && strcmp(p->name, p2->name) == 0) {
if (p->decode)
if (av_codec_is_decoder(p))
decode = 1;
if (p->encode)
if (av_codec_is_encoder(p))
encode = 1;
cap |= p->capabilities;
}
@@ -852,20 +875,16 @@ int opt_bsfs(const char *opt, const char *arg)
int opt_protocols(const char *opt, const char *arg)
{
URLProtocol *up=NULL;
void *opaque = NULL;
const char *name;
printf("Supported file protocols:\n"
"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);
"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);
return 0;
}
@@ -1033,7 +1052,7 @@ FILE *get_preset_file(char *filename, size_t filename_size,
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");
}
@@ -1057,7 +1076,7 @@ int check_stream_specifier(AVFormatContext *s, AVStream *st, const char *spec)
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
default: av_assert0(0);
}
if (type != st->codec->codec_type)
return 0;
@@ -1090,6 +1109,12 @@ int check_stream_specifier(AVFormatContext *s, AVStream *st, const char *spec)
return 1;
}
return 0;
} else if (*spec == '#') {
int sid;
char *endptr;
sid = strtol(spec + 1, &endptr, 0);
if (!*endptr)
return st->id == sid;
} else if (!*spec) /* empty specifier, matches everything */
return 1;
+10 -1
View File
@@ -51,6 +51,7 @@ extern const int this_year;
extern AVCodecContext *avcodec_opts[AVMEDIA_TYPE_NB];
extern AVFormatContext *avformat_opts;
extern struct SwsContext *sws_opts;
extern struct SwrContext *swr_opts;
extern AVDictionary *format_opts, *codec_opts;
/**
@@ -85,6 +86,8 @@ int opt_report(const char *opt);
int opt_max_alloc(const char *opt, const char *arg);
int opt_cpuflags(const char *opt, const char *arg);
int opt_codec_debug(const char *opt, const char *arg);
/**
@@ -204,6 +207,12 @@ int parse_option(void *optctx, const char *opt, const char *arg,
*/
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.
*
@@ -349,7 +358,7 @@ int cmdutils_read_file(const char *filename, char **bufptr, size_t *size);
* 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.ffpreset in the above-mentioned directories.
* codec_name-preset_name.avpreset 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
+2
View File
@@ -14,5 +14,7 @@
{ "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" },
{ "fdebug", 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" },
{ "cpuflags", HAS_ARG | OPT_EXPERT, {(void*)opt_cpuflags}, "force specific cpu flags", "flags" },
+3 -3
View File
@@ -20,7 +20,7 @@ $(foreach VAR,$(SILENT),$(eval override $(VAR) = @$($(VAR))))
$(eval INSTALL = @$(call ECHO,INSTALL,$$(^:$(SRC_DIR)/%=%)); $(INSTALL))
endif
ALLFFLIBS = avcodec avdevice avfilter avformat avutil postproc swscale swresample
ALLFFLIBS = avcodec avdevice avfilter avformat avresample avutil postproc swscale swresample
# NASM requires -I path terminated with /
IFLAGS := -I. -I$(SRC_PATH)/
@@ -73,7 +73,7 @@ COMPILE_S = $(call COMPILE,AS)
$(OBJS):
endif
OBJS-$(HAVE_MMX) += $(MMX-OBJS-yes)
include $(SRC_PATH)/arch.mak
OBJS += $(OBJS-yes)
FFLIBS := $(FFLIBS-yes) $(FFLIBS)
@@ -115,6 +115,6 @@ OBJDIRS := $(OBJDIRS) $(dir $(OBJS) $(HOSTOBJS) $(TESTOBJS))
CLEANSUFFIXES = *.d *.o *~ *.ho *.map *.ver *.gcno *.gcda
DISTCLEANSUFFIXES = *.pc
LIBSUFFIXES = *.a *.lib *.so *.so.* *.dylib *.dll *.def *.dll.a *.exp
LIBSUFFIXES = *.a *.lib *.so *.so.* *.dylib *.dll *.def *.dll.a
-include $(wildcard $(OBJS:.o=.d) $(TESTOBJS:.o=.d))
Vendored
+246 -114
View File
@@ -59,8 +59,21 @@ cat <<EOF
Usage: configure [options]
Options: [defaults in brackets after descriptions]
Standard options:
Help options:
--help print this message
--list-decoders show all available decoders
--list-encoders show all available encoders
--list-hwaccels show all available hardware accelerators
--list-demuxers show all available demuxers
--list-muxers show all available muxers
--list-parsers show all available parsers
--list-protocols show all available protocols
--list-bsfs show all available bitstream filters
--list-indevs show all available input devices
--list-outdevs show all available output devices
--list-filters show all available filters
Standard options:
--logfile=FILE log tests and output to FILE [config.log]
--disable-logging do not log configure debug information
--prefix=PREFIX install in PREFIX [$prefix]
@@ -71,14 +84,22 @@ Standard options:
--incdir=DIR install includes in DIR [PREFIX/include]
--mandir=DIR install man page in DIR [PREFIX/share/man]
Configuration options:
--disable-static do not build static libraries [no]
--enable-shared build shared libraries [no]
Licensing options:
--enable-gpl allow use of GPL code, the resulting libs
and binaries will be under GPL [no]
--enable-version3 upgrade (L)GPL to version 3 [no]
--enable-nonfree allow use of nonfree code, the resulting libs
and binaries will be unredistributable [no]
Configuration options:
--disable-static do not build static libraries [no]
--enable-shared build shared libraries [no]
--enable-small optimize for size instead of speed
--enable-runtime-cpudetect detect cpu capabilities at runtime (bigger binary)
--enable-gray enable full grayscale support (slower color)
--disable-swscale-alpha disable alpha channel support in swscale
Component options:
--disable-doc do not build documentation
--disable-ffmpeg disable ffmpeg build
--disable-ffplay disable ffplay build
@@ -91,34 +112,22 @@ Configuration options:
--disable-swscale disable libswscale build
--disable-postproc disable libpostproc build
--disable-avfilter disable video filter support [no]
--disable-avresample disable libavresample build [no]
--disable-pthreads disable pthreads [auto]
--disable-w32threads disable Win32 threads [auto]
--disable-os2threads disable OS/2 threads [auto]
--enable-x11grab enable X11 grabbing [no]
--disable-network disable network support [no]
--enable-gray enable full grayscale support (slower color)
--disable-swscale-alpha disable alpha channel support in swscale
--disable-fastdiv disable table-based division
--enable-small optimize for size instead of speed
--disable-aandct disable AAN DCT code
--disable-dct disable DCT code
--disable-fft disable FFT code
--disable-golomb disable Golomb code
--disable-huffman disable Huffman code
--disable-lpc disable LPC code
--disable-mdct disable MDCT code
--disable-rdft disable RDFT code
--disable-fft disable FFT code
--enable-dxva2 enable DXVA2 code
--enable-vaapi enable VAAPI code [autodetect]
--enable-vda enable VDA code [autodetect]
--enable-vda enable VDA code [autodetect]
--enable-vdpau enable VDPAU code [autodetect]
--disable-dxva2 disable DXVA2 code
--disable-vda disable VDA code
--enable-runtime-cpudetect detect cpu capabilities at runtime (bigger binary)
--enable-hardcoded-tables use hardcoded tables instead of runtime generation
--disable-safe-bitstream-reader
disable buffer boundary checking in bitreaders
(faster, but may crash)
--enable-memalign-hack emulate memalign, interferes with memory debuggers
Individual component options:
--disable-everything disable all components listed below
--disable-encoder=NAME disable encoder NAME
--enable-encoder=NAME enable encoder NAME
@@ -144,33 +153,26 @@ Configuration options:
--enable-protocol=NAME enable protocol NAME
--disable-protocol=NAME disable protocol NAME
--disable-protocols disable all protocols
--enable-indev=NAME enable input device NAME
--disable-indev=NAME disable input device NAME
--disable-outdev=NAME disable output device NAME
--disable-indevs disable input devices
--enable-outdev=NAME enable output device NAME
--disable-outdev=NAME disable output device NAME
--disable-outdevs disable output devices
--disable-devices disable all devices
--enable-filter=NAME enable filter NAME
--disable-filter=NAME disable filter NAME
--disable-filters disable all filters
--list-decoders show all available decoders
--list-encoders show all available encoders
--list-hwaccels show all available hardware accelerators
--list-muxers show all available muxers
--list-demuxers show all available demuxers
--list-parsers show all available parsers
--list-protocols show all available protocols
--list-bsfs show all available bitstream filters
--list-indevs show all available input devices
--list-outdevs show all available output devices
--list-filters show all available filters
External library support:
--enable-avisynth enable reading of AVISynth script files [no]
--enable-bzlib enable bzlib [autodetect]
--enable-fontconfig enable fontconfig
--enable-frei0r enable frei0r video filtering
--enable-gnutls enable gnutls [no]
--enable-libaacplus enable AAC+ encoding via libaacplus [no]
--enable-libass enable libass subtitles rendering [no]
--enable-libbluray enable BluRay reading using libbluray [no]
--enable-libcelt enable CELT decoding via libcelt [no]
--enable-libopencore-amrnb enable AMR-NB de/encoding via libopencore-amrnb [no]
--enable-libopencore-amrwb enable AMR-WB decoding via libopencore-amrwb [no]
@@ -178,7 +180,6 @@ External library support:
--enable-libcdio enable audio CD grabbing with libcdio
--enable-libdc1394 enable IIDC-1394 grabbing using libdc1394
and libraw1394 [no]
--enable-libdirac enable Dirac support via libdirac [no]
--enable-libfaac enable FAAC support via libfaac [no]
--enable-libfreetype enable libfreetype [no]
--enable-libgsm enable GSM support via libgsm [no]
@@ -193,11 +194,11 @@ External library support:
--enable-libspeex enable Speex support via libspeex [no]
--enable-libstagefright-h264 enable H.264 decoding via libstagefright [no]
--enable-libtheora enable Theora encoding via libtheora [no]
--enable-libutvideo enable Ut Video decoding via libutvideo [no]
--enable-libutvideo enable Ut Video encoding and decoding via libutvideo [no]
--enable-libv4l2 enable libv4l2/v4l-utils [no]
--enable-libvo-aacenc enable AAC encoding via libvo-aacenc [no]
--enable-libvo-amrwbenc enable AMR-WB encoding via libvo-amrwbenc [no]
--enable-libvorbis enable Vorbis encoding via libvorbis,
--enable-libvorbis enable Vorbis en/decoding via libvorbis,
native implementation exists [no]
--enable-libvpx enable VP8 support via libvpx [no]
--enable-libx264 enable H.264 encoding via x264 [no]
@@ -205,7 +206,6 @@ External library support:
--enable-libxvid enable Xvid encoding via xvidcore,
native MPEG-4/Xvid encoder exists [no]
--enable-openal enable OpenAL 1.1 capture support [no]
--enable-mlib enable Sun medialib [no]
--enable-openssl enable openssl [no]
--enable-zlib enable zlib [autodetect]
@@ -233,11 +233,24 @@ Advanced options (experts only):
--extra-ldflags=ELDFLAGS add ELDFLAGS to LDFLAGS [$LDFLAGS]
--extra-libs=ELIBS add ELIBS [$ELIBS]
--extra-version=STRING version string suffix []
--optflags override optimization-related compiler flags
--build-suffix=SUFFIX library name suffix []
--malloc-prefix=PREFIX prefix malloc and related names with PREFIX
--progs-suffix=SUFFIX program name suffix []
--arch=ARCH select architecture [$arch]
--cpu=CPU select the minimum required CPU (affects
instruction selection, may crash on older CPUs)
--enable-pic build position-independent code
--enable-sram allow use of on-chip SRAM
--disable-symver disable symbol versioning
--disable-fastdiv disable table-based division
--enable-hardcoded-tables use hardcoded tables instead of runtime generation
--disable-safe-bitstream-reader
disable buffer boundary checking in bitreaders
(faster, but may crash)
--enable-memalign-hack emulate memalign, interferes with memory debuggers
Optimization options (experts only):
--disable-asm disable all assembler optimizations
--disable-altivec disable AltiVec optimizations
--disable-amd3dnow disable 3DNow! optimizations
@@ -251,16 +264,10 @@ Advanced options (experts only):
--disable-armv6 disable armv6 optimizations
--disable-armv6t2 disable armv6t2 optimizations
--disable-armvfp disable ARM VFP optimizations
--disable-iwmmxt disable iwmmxt optimizations
--disable-mmi disable MMI optimizations
--disable-neon disable NEON optimizations
--disable-vis disable VIS optimizations
--disable-yasm disable use of yasm assembler
--enable-pic build position-independent code
--malloc-prefix=PFX prefix malloc and related names with PFX
--enable-sram allow use of on-chip SRAM
--disable-symver disable symbol versioning
--optflags override optimization-related compiler flags
--postproc-version=V build libpostproc version V.
Where V can be '$ALT_PP_VER_MAJOR.$ALT_PP_VER_MINOR.$ALT_PP_VER_MICRO' or 'current'. [$postproc_version_default]
@@ -271,11 +278,15 @@ Developer options (useful when working on FFmpeg itself):
--disable-optimizations disable compiler optimizations
--enable-extra-warnings enable more compiler warnings
--disable-stripping disable stripping of executables and shared libraries
--assert-level=level 0(default), 1 or 2, amount of assertion testing,
2 causes a slowdown at runtime.
--valgrind=VALGRIND run "make fate" tests through valgrind to detect memory
leaks and errors, using the specified valgrind binary.
Cannot be combined with --target-exec
--samples=PATH location of test samples for FATE, if not set use
\$FATE_SAMPLES at make invocation time.
--enable-xmm-clobber-test check XMM registers for clobbering (Win64-only;
should be used only for debugging purposes)
NOTE: Object files are built at the place where configure is launched.
EOF
@@ -563,7 +574,8 @@ print_config_mak(){
}
print_config_asm(){
enabled $1 && echo "%define $2"
enabled $1 && v=1 || v=0
echo "%define $2 $v"
}
print_config(){
@@ -865,6 +877,7 @@ static void sighandler(int sig){
int func(void){
$code
}
int (*func_ptr)(void) = func;
int main(void){
signal(SIGILL, sighandler);
signal(SIGFPE, sighandler);
@@ -872,7 +885,7 @@ int main(void){
#ifdef SIGBUS
signal(SIGBUS, sighandler);
#endif
return func();
return func_ptr();
}
EOF
}
@@ -996,15 +1009,12 @@ PROGRAM_LIST="
CONFIG_LIST="
$COMPONENT_LIST
$PROGRAM_LIST
avplay
avprobe
avserver
aandct
ac3dsp
avcodec
avdevice
avfilter
avformat
avresample
avisynth
bzlib
crystalhd
@@ -1014,22 +1024,18 @@ CONFIG_LIST="
dxva2
fastdiv
fft
fontconfig
frei0r
gnutls
golomb
gpl
gray
h264chroma
h264dsp
h264pred
hardcoded_tables
huffman
libaacplus
libass
libbluray
libcdio
libcelt
libdc1394
libdirac
libfaac
libfreetype
libgsm
@@ -1055,11 +1061,9 @@ CONFIG_LIST="
libx264
libxavs
libxvid
lpc
lsp
mdct
memalign_hack
mlib
mpegaudiodsp
network
nonfree
@@ -1084,6 +1088,7 @@ CONFIG_LIST="
vda
vdpau
version3
xmm_clobber_test
x11grab
zlib
"
@@ -1127,7 +1132,6 @@ ARCH_EXT_LIST='
armv6t2
armvfp
avx
iwmmxt
mmi
mmx
mmx2
@@ -1157,6 +1161,7 @@ HAVE_LIST="
attribute_may_alias
attribute_packed
cbrtf
clock_gettime
closesocket
cmov
dcbzl
@@ -1183,6 +1188,7 @@ HAVE_LIST="
GetProcessMemoryInfo
GetProcessTimes
getrusage
glob
gnu_as
ibm_asm
inet_aton
@@ -1190,6 +1196,8 @@ HAVE_LIST="
isatty
kbhit
ldbrx
libdc1394_1
libdc1394_2
llrint
llrintf
local_aligned_16
@@ -1209,9 +1217,11 @@ HAVE_LIST="
memalign
mkstemp
mmap
netinet_sctp_h
PeekNamedPipe
poll_h
posix_memalign
pthread_cancel
round
roundf
sched_getaffinity
@@ -1256,9 +1266,17 @@ HAVE_LIST="
# options emitted with CONFIG_ prefix but not available on command line
CONFIG_EXTRA="
aandct
avutil
golomb
gplv3
h264chroma
h264dsp
h264pred
h264qpel
huffman
lgplv3
lpc
"
CMDLINE_SELECT="
@@ -1292,8 +1310,8 @@ CMDLINE_SET="
ar
arch
as
assert_level
build_suffix
progs_suffix
cc
cpu
cross_prefix
@@ -1312,6 +1330,8 @@ CMDLINE_SET="
nm
optflags
pkg_config
postproc_version
progs_suffix
samples
strip
sysinclude
@@ -1319,7 +1339,6 @@ CMDLINE_SET="
target_exec
target_os
target_path
postproc_version
valgrind
yasmexe
"
@@ -1337,7 +1356,6 @@ armv5te_deps="arm"
armv6_deps="arm"
armv6t2_deps="arm"
armvfp_deps="arm"
iwmmxt_deps="arm"
neon_deps="arm"
vfpv3_deps="armvfp"
@@ -1415,7 +1433,7 @@ h263_vaapi_hwaccel_select="vaapi h263_decoder"
h263i_decoder_select="h263_decoder"
h263p_encoder_select="h263_encoder"
h264_crystalhd_decoder_select="crystalhd h264_mp4toannexb_bsf h264_parser"
h264_decoder_select="golomb h264chroma h264dsp h264pred"
h264_decoder_select="golomb h264chroma h264dsp h264pred h264qpel"
h264_dxva2_hwaccel_deps="dxva2api_h"
h264_dxva2_hwaccel_select="dxva2 h264_decoder"
h264_vaapi_hwaccel_select="vaapi h264_decoder"
@@ -1472,12 +1490,13 @@ png_encoder_select="zlib"
qcelp_decoder_select="lsp"
qdm2_decoder_select="mdct rdft mpegaudiodsp"
ra_144_encoder_select="lpc"
ralf_decoder_select="golomb"
rv10_decoder_select="h263_decoder"
rv10_encoder_select="h263_encoder"
rv20_decoder_select="h263_decoder"
rv20_encoder_select="h263_encoder"
rv30_decoder_select="golomb h264chroma h264pred"
rv40_decoder_select="golomb h264chroma h264pred"
rv30_decoder_select="golomb h264chroma h264pred h264qpel"
rv40_decoder_select="golomb h264chroma h264pred h264qpel"
shorten_decoder_select="golomb"
sipr_decoder_select="lsp"
snow_decoder_select="dwt"
@@ -1486,7 +1505,7 @@ 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_select="golomb h264chroma h264dsp h264pred h264qpel"
svq3_decoder_suggest="zlib"
theora_decoder_select="vp3_decoder"
tiff_decoder_suggest="zlib"
@@ -1495,7 +1514,7 @@ truehd_decoder_select="mlp_decoder"
tscc_decoder_select="zlib"
twinvq_decoder_select="mdct lsp sinewin"
vc1_crystalhd_decoder_select="crystalhd"
vc1_decoder_select="h263_decoder h264chroma"
vc1_decoder_select="h263_decoder h264chroma h264qpel"
vc1_dxva2_hwaccel_deps="dxva2api_h"
vc1_dxva2_hwaccel_select="dxva2 vc1_decoder"
vc1_vaapi_hwaccel_select="vaapi vc1_decoder"
@@ -1506,7 +1525,7 @@ vorbis_encoder_select="mdct"
vp6_decoder_select="huffman"
vp6a_decoder_select="vp6_decoder"
vp6f_decoder_select="vp6_decoder"
vp8_decoder_select="h264pred"
vp8_decoder_select="h264pred h264qpel"
wmapro_decoder_select="mdct sinewin"
wmav1_decoder_select="mdct sinewin"
wmav1_encoder_select="mdct sinewin"
@@ -1523,6 +1542,7 @@ 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"
@@ -1534,13 +1554,11 @@ vda_deps="VideoDecodeAcceleration_VDADecoder_h pthreads"
vdpau_deps="vdpau_vdpau_h vdpau_vdpau_x11_h"
# parsers
h264_parser_select="golomb h264chroma h264dsp h264pred"
h264_parser_select="golomb 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"
libgsm_decoder_deps="libgsm"
libgsm_encoder_deps="libgsm"
@@ -1561,6 +1579,7 @@ libstagefright_h264_decoder_deps="libstagefright_h264"
libtheora_encoder_deps="libtheora"
libvo_aacenc_encoder_deps="libvo_aacenc"
libvo_amrwbenc_encoder_deps="libvo_amrwbenc"
libvorbis_decoder_deps="libvorbis"
libvorbis_encoder_deps="libvorbis"
libvpx_decoder_deps="libvpx"
libvpx_encoder_deps="libvpx"
@@ -1568,7 +1587,8 @@ libx264_encoder_deps="libx264"
libx264rgb_encoder_deps="libx264"
libxavs_encoder_deps="libxavs"
libxvid_encoder_deps="libxvid"
libutvideo_decoder_deps="libutvideo gpl"
libutvideo_decoder_deps="libutvideo"
libutvideo_encoder_deps="libutvideo"
# demuxers / muxers
ac3_demuxer_select="ac3_parser"
@@ -1626,58 +1646,74 @@ v4l2_indev_deps_any="linux_videodev2_h sys_videoio_h"
vfwcap_indev_deps="capCreateCaptureWindow vfwcap_defines"
vfwcap_indev_extralibs="-lavicap32"
x11_grab_device_indev_deps="x11grab XShmCreateImage"
x11_grab_device_indev_extralibs="-lX11 -lXext -lXfixes"
# protocols
bluray_protocol_deps="libbluray"
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"
librtmp_protocol_deps="librtmp"
librtmpe_protocol_deps="librtmp"
librtmps_protocol_deps="librtmp"
librtmpt_protocol_deps="librtmp"
librtmpte_protocol_deps="librtmp"
mmsh_protocol_select="http_protocol"
mmst_protocol_deps="network"
rtmp_protocol_deps="!librtmp_protocol"
rtmp_protocol_select="tcp_protocol"
rtp_protocol_select="udp_protocol"
sctp_protocol_deps="network netinet_sctp_h"
tcp_protocol_deps="network"
tls_protocol_deps_any="openssl gnutls"
tls_protocol_select="tcp_protocol"
udp_protocol_deps="network"
# filters
aconvert_filter_deps="swresample"
amovie_filter_deps="avcodec avformat"
aresample_filter_deps="swresample"
ass_filter_deps="libass"
blackframe_filter_deps="gpl"
boxblur_filter_deps="gpl"
colormatrix_filter_deps="gpl"
cropdetect_filter_deps="gpl"
delogo_filter_deps="gpl"
drawtext_filter_deps="libfreetype"
frei0r_filter_deps="frei0r dlopen"
frei0r_filter_extralibs='$ldl'
frei0r_src_filter_deps="frei0r dlopen"
frei0r_src_filter_extralibs='$ldl'
hqdn3d_filter_deps="gpl"
movie_filter_deps="avcodec avformat"
mp_filter_deps="gpl avcodec"
mp_filter_deps="gpl avcodec swscale postproc"
mptestsrc_filter_deps="gpl"
negate_filter_deps="lut_filter"
resample_filter_deps="avresample"
ocv_filter_deps="libopencv"
pan_filter_deps="swresample"
removelogo_filter_deps="avcodec avformat swscale"
scale_filter_deps="swscale"
super2xsai_filter_deps="gpl"
tinterlace_filter_deps="gpl"
yadif_filter_deps="gpl"
# libraries
avdevice_deps="avcodec avformat"
avfilter_deps="swscale"
avformat_deps="avcodec"
postproc_deps="gpl"
# programs
ffplay_deps="avcodec avformat swscale sdl"
ffplay_deps="avcodec avformat swscale swresample sdl"
ffplay_select="buffersink_filter rdft"
ffprobe_deps="avcodec avformat"
ffserver_deps="avformat ffm_muxer fork rtp_protocol rtsp_demuxer"
ffserver_extralibs='$ldl'
ffmpeg_deps="avcodec avformat swscale swresample"
ffmpeg_select="buffersink_filter"
ffmpeg_deps="avcodec avfilter avformat swscale swresample"
ffmpeg_select="buffersink_filter format_filter aformat_filter"
doc_deps="texi2html"
@@ -1761,11 +1797,11 @@ test_deps _muxer _demuxer \
gxf \
matroska=mkv \
mmf \
mov \
mov="mov ismv" \
pcm_mulaw=mulaw \
mxf="mxf mxf_d10" \
nut \
ogg \
ogg="ogg ogg_vp3" \
rawvideo=pixfmt \
rm \
swf \
@@ -1774,8 +1810,20 @@ test_deps _muxer _demuxer \
wav \
yuv4mpegpipe=yuv4mpeg \
ac3_fixed_test_deps="ac3_fixed_encoder ac3_decoder rm_muxer rm_demuxer"
ac3_fixed_test_deps="ac3_fixed_encoder ac3_decoder"
colormatrix1_test_deps="colormatrix_filter"
colormatrix2_test_deps="colormatrix_filter"
flashsv2_test_deps="zlib"
mpg_test_deps="mpeg1system_muxer mpegps_demuxer"
mpng_test_deps="zlib"
pp_test_deps="mp_filter"
pp2_test_deps="mp_filter"
pp3_test_deps="mp_filter"
pp4_test_deps="mp_filter"
pp5_test_deps="mp_filter"
pp6_test_deps="mp_filter"
zlib_test_deps="zlib"
zmbv_test_deps="zlib"
# default parameters
@@ -1830,6 +1878,7 @@ enable avcodec
enable avdevice
enable avfilter
enable avformat
enable avresample
enable avutil
enable postproc
enable stripping
@@ -1933,11 +1982,12 @@ find_tests(){
ACODEC_TESTS=$(find_tests acodec)
VCODEC_TESTS=$(find_tests vsynth1)
LAVF_FATE_TESTS=$(find_tests lavf-fate)
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"
ALL_TESTS="$ACODEC_TESTS $VCODEC_TESTS $LAVF_FATE_TESTS $LAVF_TESTS $LAVFI_TESTS $SEEK_TESTS"
pcm_test_deps=$(map 'echo ${v%_*}_decoder $v' $(filter pcm_* $ENCODER_LIST))
@@ -2300,6 +2350,24 @@ elif $cc -v 2>&1 | grep -q Open64; then
speed_cflags='-O2'
size_cflags='-Os'
filter_cflags='filter_out -Wdisabled-optimization|-Wtype-limits|-fno-signed-zeros'
elif $cc -V 2>&1 | grep -q Portland; then
cc_type=pgi
cc_version='AV_STRINGIFY(__PGIC__.__PGIC_MINOR__.__PGIC_PATCHLEVEL__)'
cc_ident="PGI $($cc -V 2>&1 | awk '/^pgcc/ { print $2; exit }')"
opt_common='-alias=ansi -Mlre -Mpre'
speed_cflags="-O3 -Mautoinline -Munroll=c:4 $opt_common"
size_cflags="-O2 -Munroll=c:1 $opt_common"
noopt_cflags="-O1"
filter_cflags=pgi_flags
pgi_flags(){
for flag; do
case $flag in
-fomit-frame-pointer) echo -Mnoframe ;;
-g) echo -gopt ;;
*) echo $flag ;;
esac
done
}
fi
test -n "$cc_type" && enable $cc_type ||
@@ -2419,9 +2487,12 @@ elif enabled ppc; then
74*|ppc74*|powerpc74*)
cpuflags="-mcpu=7400 -mpowerpc-gfxopt"
;;
g5|970|ppc970|powerpc970|power4*)
g5|970|ppc970|powerpc970)
cpuflags="-mcpu=970 -mpowerpc-gfxopt -mpowerpc64"
;;
power[3-7]*)
cpuflags="-mcpu=$cpu -mpowerpc-gfxopt -mpowerpc64"
;;
cell)
cpuflags="-mcpu=cell"
enable ldbrx
@@ -2593,7 +2664,7 @@ case $target_os in
SHFLAGS='-shared -Wl,-h,$$(@F)'
enabled x86 && SHFLAGS="-mimpure-text $SHFLAGS"
network_extralibs="-lsocket -lnsl"
add_cppflags -D__EXTENSIONS__
add_cppflags -D__EXTENSIONS__ -D_XOPEN_SOURCE=600
# When using suncc to build, the Solaris linker will mark
# an executable with each instruction set encountered by
# the Solaris assembler. As our libraries contain their own
@@ -2608,7 +2679,6 @@ case $target_os in
oss_outdev_extralibs="-lossaudio"
;;
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
@@ -2621,21 +2691,18 @@ case $target_os in
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),-current_version,$(LIBVERSION),-compatibility_version,$(LIBMAJOR)'
SHFLAGS='-dynamiclib -Wl,-single_module -Wl,-install_name,$(SHLIBDIR)/$(SLIBNAME_WITH_MAJOR),-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
@@ -2656,7 +2723,6 @@ case $target_os in
fi
LIBTARGET=i386
if enabled x86_64; then
enable malloc_aligned
LIBTARGET=x64
elif enabled arm; then
LIBTARGET=arm-wince
@@ -2761,7 +2827,11 @@ case $target_os in
;;
esac
echo "config:$arch:$subarch:$cpu:$target_os:$cc_ident:$FFMPEG_CONFIGURATION" >config.fate
esc(){
echo "$*" | sed 's/%/%25/g;s/:/%3a/g'
}
echo "config:$arch:$subarch:$cpu:$target_os:$(esc $cc_ident):$(esc $FFMPEG_CONFIGURATION)" >config.fate
check_cpp_condition stdlib.h "defined(__PIC__) || defined(__pic__) || defined(PIC)" && enable pic
@@ -2783,6 +2853,7 @@ die_license_disabled() {
}
die_license_disabled gpl libcdio
die_license_disabled gpl libutvideo
die_license_disabled gpl libx264
die_license_disabled gpl libxavs
die_license_disabled gpl libxvid
@@ -2866,7 +2937,6 @@ EOF
enabled armv6 && check_asm armv6 '"sadd16 r0, r0, r0"'
enabled armv6t2 && check_asm armv6t2 '"movt r0, #0"'
enabled armvfp && check_asm armvfp '"fadds s0, s0, s0"'
enabled iwmmxt && check_asm iwmmxt '"wunpckelub wr6, wr4"'
enabled neon && check_asm neon '"vadd.i16 q0, q0, q0"'
enabled vfpv3 && check_asm vfpv3 '"vmov.f32 s0, #1.0"'
@@ -2995,6 +3065,7 @@ if enabled network; then
check_type netinet/in.h "struct sockaddr_in6"
check_type "sys/types.h sys/socket.h" "struct sockaddr_storage"
check_struct "sys/types.h sys/socket.h" "struct sockaddr" sa_len
check_header netinet/sctp.h
# Prefer arpa/inet.h over winsock2
if check_header arpa/inet.h ; then
check_func closesocket
@@ -3017,6 +3088,7 @@ fi
# Solaris has nanosleep in -lrt, OpenSolaris no longer needs that
check_func nanosleep || { check_func nanosleep -lrt && add_extralibs -lrt; }
check_func clock_gettime || { check_func clock_gettime -lrt && add_extralibs -lrt; }
check_func fcntl
check_func fork
check_func getaddrinfo $network_extralibs
@@ -3045,6 +3117,7 @@ check_func_headers windows.h GetProcessAffinityMask
check_func_headers windows.h GetProcessTimes
check_func_headers windows.h MapViewOfFile
check_func_headers windows.h VirtualAlloc
check_func_headers glob.h glob
check_header dlfcn.h
check_header dxva2api.h -D_WIN32_WINNT=0x0600
@@ -3103,6 +3176,10 @@ for thread in $THREADS_LIST; do
fi
done
if enabled pthreads; then
check_func pthread_cancel
fi
check_lib math.h sin -lm && LIBM="-lm"
disabled crystalhd || check_lib libcrystalhd/libcrystalhd_if.h DtsCrystalHDVersion -lcrystalhd || disable crystalhd
enabled vaapi && require vaapi va/va.h vaInitialize -lva
@@ -3123,17 +3200,15 @@ check_mathfunc truncf
# these are off by default, so fail if requested and not available
enabled avisynth && require2 vfw32 "windows.h vfw.h" AVIFileInit -lavifil32
enabled fontconfig && require_pkg_config fontconfig "fontconfig/fontconfig.h" FcInit
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 libbluray && require libbluray libbluray/bluray.h bd_open -lbluray
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
@@ -3150,7 +3225,7 @@ enabled libschroedinger && require_pkg_config schroedinger-1.0 schroedinger/schr
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
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 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
@@ -3172,14 +3247,22 @@ enabled openal && { { for al_libs in "${OPENAL_LIBS}" "-lopenal" "-lOpenAL32
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"; }
# 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
SDL_CONFIG="${cross_prefix}sdl-config"
if check_pkg_config sdl SDL_version.h SDL_Linked_Version; then
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 &&
enable sdl &&
check_struct SDL.h SDL_VideoInfo current_w $sdl_cflags && enable sdl_video_size
@@ -3241,13 +3324,10 @@ enabled_any sndio_indev sndio_outdev && check_lib2 sndio.h sio_open -lsndio
enabled libcdio &&
check_lib2 "cdio/cdda.h cdio/paranoia.h" cdio_cddap_open "-lcdio_paranoia -lcdio_cdda -lcdio"
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
enabled x11grab &&
require X11 X11/Xlib.h XOpenDisplay -lX11 &&
require Xext X11/extensions/XShm.h XShmCreateImage -lXext &&
require Xfixes X11/extensions/Xfixes.h XFixesGetCursorImage -lXfixes
if ! disabled vaapi; then
check_lib va/va.h vaInitialize -lva && {
@@ -3277,7 +3357,6 @@ 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
@@ -3288,9 +3367,20 @@ enabled extra_warnings && check_cflags -Winline
# add some linker flags
check_ldflags -Wl,--warn-common
check_ldflags -Wl,-rpath-link=libpostproc:libswresample:libswscale:libavfilter:libavdevice:libavformat:libavcodec:libavutil
check_ldflags -Wl,-rpath-link=libpostproc:libswresample:libswscale:libavfilter:libavdevice:libavformat:libavcodec:libavutil:libavresample
test_ldflags -Wl,-Bsymbolic && append SHFLAGS -Wl,-Bsymbolic
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_subtitle \
-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'
@@ -3326,10 +3416,11 @@ if enabled icc; then
# -wd: Disable following warnings
# 144, 167, 556: -Wno-pointer-sign
# 1292: attribute "foo" ignored
# 1419: external declaration in primary source file
# 10006: ignoring unknown option -fno-signed-zeros
# 10148: ignoring unknown option -Wno-parentheses
# 10156: ignoring option '-W'; no argument required
check_cflags -wd144,167,556,1292,10006,10148,10156
check_cflags -wd144,167,556,1292,1419,10006,10148,10156
# 11030: Warning unknown option --as-needed
# 10156: ignoring option '-export'; no argument required
check_ldflags -wd10156,11030
@@ -3388,9 +3479,36 @@ if test $target_os = "haiku"; then
disable posix_memalign
fi
! enabled_any memalign posix_memalign malloc_aligned &&
! enabled_any memalign posix_memalign &&
enabled_any $need_memalign && 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
echo "install prefix $prefix"
echo "source path $source_path"
echo "C compiler $cc"
@@ -3425,7 +3543,6 @@ if enabled arm; then
echo "ARMv6 enabled ${armv6-no}"
echo "ARMv6T2 enabled ${armv6t2-no}"
echo "ARM VFP enabled ${armvfp-no}"
echo "IWMMXT enabled ${iwmmxt-no}"
echo "NEON enabled ${neon-no}"
fi
if enabled mips; then
@@ -3451,7 +3568,6 @@ echo "network support ${network-no}"
echo "threading support ${thread_type-no}"
echo "safe bitstream reader ${safe_bitstream_reader-no}"
echo "SDL support ${sdl-no}"
echo "Sun medialib support ${mlib-no}"
echo "libdxva2 enabled ${dxva2-no}"
echo "libva enabled ${vaapi-no}"
echo "libvdpau enabled ${vdpau-no}"
@@ -3463,7 +3579,6 @@ 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}"
@@ -3622,6 +3737,7 @@ 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 LIBAVRESAMPLE libavresample/version.h
get_version LIBAVUTIL libavutil/avutil.h
get_version LIBPOSTPROC libpostproc/postprocess.h
get_version LIBSWRESAMPLE libswresample/swresample.h
@@ -3643,6 +3759,9 @@ cat > $TMPH <<EOF
#define SLIBSUF "$SLIBSUF"
EOF
test -n "$assert_level" &&
echo "#define ASSERT_LEVEL $assert_level" >>$TMPH
test -n "$malloc_prefix" &&
echo "#define MALLOC_PREFIX $malloc_prefix" >>$TMPH
@@ -3669,6 +3788,7 @@ print_config CONFIG_ "$config_files" $CONFIG_LIST \
cat >>config.mak <<EOF
ACODEC_TESTS=$(print_enabled -n _test $ACODEC_TESTS)
VCODEC_TESTS=$(print_enabled -n _test $VCODEC_TESTS)
LAVF_FATE_TESTS=$(print_enabled -n _test $LAVF_FATE_TESTS)
LAVF_TESTS=$(print_enabled -n _test $LAVF_TESTS)
LAVFI_TESTS=$(print_enabled -n _test $LAVFI_TESTS)
SEEK_TESTS=$(print_enabled -n _test $SEEK_TESTS)
@@ -3746,11 +3866,23 @@ Cflags: -I\${includedir}
EOF
}
libavfilter_pc_deps=""
enabled libavfilter_deps_avcodec && prepend libavfilter_pc_deps "libavcodec = $LIBAVCODEC_VERSION,"
enabled libavfilter_deps_avformat && prepend libavfilter_pc_deps "libavformat = $LIBAVFORMAT_VERSION,"
enabled libavfilter_deps_swscale && prepend libavfilter_pc_deps "libswscale = $LIBSWSCALE_VERSION,"
enabled libavfilter_deps_swresample && prepend libavfilter_pc_deps "libswresample = $LIBSWRESAMPLE_VERSION,"
enabled libavfilter_deps_postproc && prepend libavfilter_pc_deps "libpostproc = $LIBPOSTPROC_VERSION,"
libavfilter_pc_deps=${libavfilter_pc_deps%, }
libavdevice_pc_deps="libavformat = $LIBAVFORMAT_VERSION"
enabled lavfi_indev && prepend libavdevice_pc_deps "libavfilter = $LIBAVFILTER_VERSION,"
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 libavdevice "FFmpeg device handling library" "$LIBAVDEVICE_VERSION" "$extralibs" "$libavdevice_pc_deps"
pkgconfig_generate libavfilter "FFmpeg video filtering library" "$LIBAVFILTER_VERSION" "$extralibs" "$libavfilter_pc_deps"
pkgconfig_generate libpostproc "FFmpeg postprocessing library" "$LIBPOSTPROC_VERSION" "" "libavutil = $LIBAVUTIL_VERSION"
pkgconfig_generate libavresample "Libav audio resampling library" "$LIBAVRESAMPLE_VERSION" "$extralibs"
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"
+302 -159
View File
@@ -2,20 +2,158 @@ Never assume the API of libav* to be stable unless at least 1 month has passed
since the last major version increase.
The last version increases were:
libavcodec: 2011-04-18
libavdevice: 2011-04-18
libavfilter: 2011-04-18
libavformat: 2011-04-18
libpostproc: 2011-04-18
libswscale: 2011-06-20
libavutil: 2011-04-18
libavcodec: 2012-01-27
libavdevice: 2011-04-18
libavfilter: 2011-04-18
libavformat: 2012-01-27
libavresample: 2012-04-24
libpostproc: 2011-04-18
libswresample: 2011-09-19
libswscale: 2011-06-20
libavutil: 2011-04-18
API changes, most recent first:
2012-01-24 - xxxxxxx - lavfi 2.60.100
2012-05-24 - xxxxxxx - lavu 51.54.100
Move AVPALETTE_SIZE and AVPALETTE_COUNT macros from
libavcodec/avcodec.h to libavutil/pixfmt.h.
2012-05-07 - xxxxxxx - lavf 54.5.100
Add av_guess_sample_aspect_ratio() function.
2012-04-20 - xxxxxxx - lavfi 2.70.100
Add avfilter_unref_bufferp() to avfilter.h.
2012-04-12 - xxxxxxx - lavfi 2.68.100
Install libavfilter/asrc_abuffer.h public header.
2012-03-26 - a67d9cf - lavfi 2.66.100
Add avfilter_fill_frame_from_{audio_,}buffer_ref() functions.
2012-05-15 - lavfi 2.17.0
Add support for audio filters
ac71230/a2cd9be - add video/audio buffer sink in a new installed
header buffersink.h
720c6b7 - add av_buffersrc_write_frame(), deprecate
av_vsrc_buffer_add_frame()
ab16504 - add avfilter_copy_buf_props()
9453c9e - add extended_data to AVFilterBuffer
1b8c927 - add avfilter_get_audio_buffer_ref_from_arrays()
2012-05-09 - lavu 51.30.0 - samplefmt.h
142e740 - add av_samples_copy()
6d7f617 - add av_samples_set_silence()
2012-05-09 - a5117a2 - lavc 54.13.1
For audio formats with fixed frame size, the last frame
no longer needs to be padded with silence, libavcodec
will handle this internally (effectively all encoders
behave as if they had CODEC_CAP_SMALL_LAST_FRAME set).
2012-05-07 - 828bd08 - lavc 54.13.0 - avcodec.h
Add sample_rate and channel_layout fields to AVFrame.
2012-05-01 - 4010d72 - lavr 0.0.1
Change AV_MIX_COEFF_TYPE_Q6 to AV_MIX_COEFF_TYPE_Q8.
2012-04-25 - 3527a73 - lavu 51.29.0 - cpu.h
Add av_parse_cpu_flags()
2012-04-24 - c8af852 - lavr 0.0.0
Add libavresample audio conversion library
2012-04-20 - 0c0d1bc - lavu 51.28.0 - audio_fifo.h
Add audio FIFO functions:
av_audio_fifo_free()
av_audio_fifo_alloc()
av_audio_fifo_realloc()
av_audio_fifo_write()
av_audio_fifo_read()
av_audio_fifo_drain()
av_audio_fifo_reset()
av_audio_fifo_size()
av_audio_fifo_space()
2012-04-14 - lavfi 2.16.0 - avfiltergraph.h
d7bcc71 Add avfilter_graph_parse2().
2012-04-08 - 4d693b0 - lavu 51.27.0 - samplefmt.h
Add av_get_packed_sample_fmt() and av_get_planar_sample_fmt()
2012-03-21 - b75c67d - lavu 51.43.100
Add bprint.h for bprint API.
2012-02-21 - 9cbf17e - lavc 54.4.100
Add av_get_pcm_codec() function.
2012-02-16 - 560b224 - libswr 0.7.100
Add swr_set_matrix() function.
2012-02-09 - c28e7af - lavu 51.39.100
Add a new installed header libavutil/timestamp.h with timestamp
utilities.
2012-02-06 - 70ffda3 - lavu 51.38.100
Add av_parse_ratio() function to parseutils.h.
2012-02-06 - 70ffda3 - lavu 51.38.100
Add AV_LOG_MAX_OFFSET macro to log.h.
2012-02-02 - 0eaa123 - lavu 51.37.100
Add public timecode helpers.
2012-01-24 - 0c3577b - lavfi 2.60.100
Add avfilter_graph_dump.
2012-03-05 - lavc 54.8.0
6699d07 Add av_get_exact_bits_per_sample()
9524cf7 Add av_get_audio_frame_duration()
2012-03-04 - 44fe77b - lavc 54.7.0 - avcodec.h
Add av_codec_is_encoder/decoder().
2012-03-01 - 442c132 - lavc 54.3.0 - avcodec.h
Add av_packet_shrink_side_data.
2012-02-29 - dd2a4bc - lavf 54.2.0 - avformat.h
Add AVStream.attached_pic and AV_DISPOSITION_ATTACHED_PIC,
used for dealing with attached pictures/cover art.
2012-02-25 - c9bca80 - lavu 51.24.0 - error.h
Add AVERROR_UNKNOWN
NOTE: this was backported to 0.8
2012-02-20 - e9cda85 - lavc 54.2.0
Add duration field to AVCodecParserContext
2012-02-20 - 0b42a93 - lavu 51.23.1 - mathematics.h
Add av_rescale_q_rnd()
2012-02-08 - 38d5533 - lavu 51.22.1 - pixdesc.h
Add PIX_FMT_PSEUDOPAL flag.
2012-02-08 - 52f82a1 - lavc 54.01.0
Add avcodec_encode_video2() and deprecate avcodec_encode_video().
2012-02-01 - 316fc74 - lavc 54.01.0
Add av_fast_padded_malloc() as alternative for av_realloc() when aligned
memory is required. The buffer will always have FF_INPUT_BUFFER_PADDING_SIZE
zero-padded bytes at the end.
2012-01-31 - dd6d3b0 - lavf 54.01.0
Add avformat_get_riff_video_tags() and avformat_get_riff_audio_tags().
NOTE: this was backported to 0.8
2012-01-31 - af08d9a - lavc 54.01.0
Add avcodec_is_open() function.
NOTE: this was backported to 0.8
2012-01-30 - 8b93312 - lavu 51.22.0 - intfloat.h
Add a new installed header libavutil/intfloat.h with int/float punning
functions.
NOTE: this was backported to 0.8
2012-01-25 - lavf 53.22.0
f1caf01 Allow doing av_write_frame(ctx, NULL) for flushing possible
buffered data within a muxer. Added AVFMT_ALLOW_FLUSH for
@@ -36,13 +174,13 @@ API changes, most recent first:
2011-12-08 - a502939 - lavfi 2.52.0
Add av_buffersink_poll_frame() to buffersink.h.
2011-12-08 - xxxxxxx - lavu 51.31.0
2011-12-08 - 26c6fec - lavu 51.31.0
Add av_log_format_line.
2011-12-03 - xxxxxxx - lavu 51.30.0
2011-12-03 - 976b095 - lavu 51.30.0
Add AVERROR_BUG.
2011-xx-xx - xxxxxxx - lavu 51.28.1
2011-11-24 - 573ffbb - lavu 51.28.1
Add av_get_alt_sample_fmt() to samplefmt.h.
2011-11-03 - 96949da - lavu 51.23.0
@@ -109,7 +247,7 @@ API changes, most recent first:
Add av_toupper()/av_tolower()
2011-11-05 - b6d08f4 - lavf 53.13.0
Add avformat_network_init()/avformat_network_uninit()
Add avformat_network_init()/avformat_network_deinit()
2011-10-27 - 512557b - lavc 53.15.0
Remove avcodec_parse_frame.
@@ -220,9 +358,14 @@ API changes, most recent first:
2011-07-10 - a67c061 - lavf 53.6.0
Add avformat_find_stream_info(), deprecate av_find_stream_info().
NOTE: this was backported to 0.7
2011-07-10 - 0b950fe - lavc 53.8.0
Add avcodec_open2(), deprecate avcodec_open().
NOTE: this was backported to 0.7
Add avcodec_alloc_context3. Deprecate avcodec_alloc_context() and
avcodec_alloc_context2().
2011-07-01 - b442ca6 - lavf 53.5.0 - avformat.h
Add function av_get_output_timestamp().
@@ -540,39 +683,39 @@ API changes, most recent first:
2011-01-31 - 910b5b8 - lavfi 1.75.0 - AVFilterLink sample_aspect_ratio
Add sample_aspect_ratio field to AVFilterLink.
2011-01-15 - r26374 - lavfi 1.74.0 - AVFilterBufferRefAudioProps
2011-01-15 - a242ac3 - lavfi 1.74.0 - AVFilterBufferRefAudioProps
Rename AVFilterBufferRefAudioProps.samples_nb to nb_samples.
2011-01-14 - r26330 - lavf 52.93.0 - av_metadata_copy()
2011-01-14 - 7f88a5b - lavf 52.93.0 - av_metadata_copy()
Add av_metadata_copy() in avformat.h.
2011-01-07 - r26262 - lavc 52.107.0 - deprecate reordered_opaque
2011-01-07 - 81c623f - lavc 52.107.0 - deprecate reordered_opaque
Deprecate reordered_opaque in favor of pkt_pts/dts.
2011-01-07 - r26261 - lavc 52.106.0 - pkt_dts
2011-01-07 - 1919fea - lavc 52.106.0 - pkt_dts
Add pkt_dts to AVFrame, this will in the future allow multithreading decoders
to not mess up dts.
2011-01-07 - r26260 - lavc 52.105.0 - pkt_pts
2011-01-07 - 393cbb9 - lavc 52.105.0 - pkt_pts
Add pkt_pts to AVFrame.
2011-01-07 - r26259 - lavc 52.104.0 - av_get_profile_name()
2011-01-07 - 060ec0a - lavc 52.104.0 - av_get_profile_name()
Add av_get_profile_name to libavcodec/avcodec.h.
2010-12-27 - r26108 - lavfi 1.71.0 - AV_PERM_NEG_LINESIZES
2010-12-27 - 0ccabee - lavfi 1.71.0 - AV_PERM_NEG_LINESIZES
Add AV_PERM_NEG_LINESIZES in avfilter.h.
2010-12-27 - r26104 - lavf 52.91.0 - av_find_best_stream()
2010-12-27 - 9128ae0 - lavf 52.91.0 - av_find_best_stream()
Add av_find_best_stream to libavformat/avformat.h.
2010-12-27 - r26103 - lavf 52.90.0
2010-12-27 - 107a7e3 - lavf 52.90.0
Add AVFMT_NOSTREAMS flag for formats with no streams,
like e.g. text metadata.
2010-12-22 - r26073 - lavu 50.36.0 - file.h
2010-12-22 - 0328b9e - lavu 50.36.0 - file.h
Add functions av_file_map() and av_file_unmap() in file.h.
2010-12-19 - r26056 - lavu 50.35.0 - error.h
2010-12-19 - 0bc55f5 - lavu 50.35.0 - error.h
Add "not found" error codes:
AVERROR_DEMUXER_NOT_FOUND
AVERROR_MUXER_NOT_FOUND
@@ -583,28 +726,28 @@ API changes, most recent first:
AVERROR_BSF_NOT_FOUND
AVERROR_STREAM_NOT_FOUND
2010-12-09 - r25923 - lavcore 0.16.0 - avcore.h
2010-12-09 - c61cdd0 - lavcore 0.16.0 - avcore.h
Move AV_NOPTS_VALUE, AV_TIME_BASE, AV_TIME_BASE_Q symbols from
avcodec.h to avcore.h.
2010-12-04 - r25886 - lavc 52.98.0 - CODEC_CAP_NEG_LINESIZES
2010-12-04 - 16cfc96 - lavc 52.98.0 - CODEC_CAP_NEG_LINESIZES
Add CODEC_CAP_NEG_LINESIZES codec capability flag in avcodec.h.
2010-12-04 - r25879 - lavu 50.34.0 - av_get_pix_fmt_string()
2010-12-04 - bb4afa1 - lavu 50.34.0 - av_get_pix_fmt_string()
Deprecate avcodec_pix_fmt_string() in favor of
pixdesc.h/av_get_pix_fmt_string().
2010-12-04 - r25878 - lavcore 0.15.0 - av_image_alloc()
2010-12-04 - 4da12e3 - lavcore 0.15.0 - av_image_alloc()
Add av_image_alloc() to libavcore/imgutils.h.
2010-12-02 - r25862 - lavfi 1.67.0 - avfilter_graph_create_filter()
2010-12-02 - 037be76 - lavfi 1.67.0 - avfilter_graph_create_filter()
Add function avfilter_graph_create_filter() in avfiltergraph.h.
2010-11-25 - r25826 - lavfi 1.65.0 - avfilter_get_video_buffer_ref_from_arrays()
2010-11-25 - 4723bc2 - lavfi 1.65.0 - avfilter_get_video_buffer_ref_from_arrays()
Add function avfilter_get_video_buffer_ref_from_arrays() in
avfilter.h.
2010-11-21 - r25787 - lavcore 0.14.0 - audioconvert.h
2010-11-21 - 176a615 - lavcore 0.14.0 - audioconvert.h
Add a public audio channel API in audioconvert.h, and deprecate the
corresponding functions in libavcodec:
avcodec_get_channel_name()
@@ -613,23 +756,23 @@ API changes, most recent first:
avcodec_channel_layout_num_channels()
and the CH_* macros defined in libavcodec/avcodec.h.
2010-11-21 - r25777 - lavf 52.85.0 - avformat.h
2010-11-21 - 6bfc268 - lavf 52.85.0 - avformat.h
Add av_append_packet().
2010-11-21 - r25776 - lavc 52.97.0 - avcodec.h
2010-11-21 - a08d918 - lavc 52.97.0 - avcodec.h
Add av_grow_packet().
2010-11-17 - r25761 - lavcore 0.13.0 - parseutils.h
2010-11-17 - 0985e1a - lavcore 0.13.0 - parseutils.h
Add av_parse_color() declared in libavcore/parseutils.h.
2010-11-13 - r25745 - lavc 52.95.0 - AVCodecContext
2010-11-13 - cb2c971 - lavc 52.95.0 - AVCodecContext
Add AVCodecContext.subtitle_header and AVCodecContext.subtitle_header_size
fields.
2010-11-13 - r25740 - lavfi 1.62.0 - avfiltergraph.h
2010-11-13 - 5aaea02 - lavfi 1.62.0 - avfiltergraph.h
Make avfiltergraph.h public.
2010-11-13 - r25737 - lavfi 1.61.0 - avfiltergraph.h
2010-11-13 - 4fcbb2a - lavfi 1.61.0 - avfiltergraph.h
Remove declarations from avfiltergraph.h for the functions:
avfilter_graph_check_validity()
avfilter_graph_config_links()
@@ -637,7 +780,7 @@ API changes, most recent first:
which are now internal.
Use avfilter_graph_config() instead.
2010-11-08 - r25708 - lavu 50.33.0 - eval.h
2010-11-08 - d2af720 - lavu 50.33.0 - eval.h
Deprecate functions:
av_parse_and_eval_expr(),
av_parse_expr(),
@@ -649,30 +792,30 @@ API changes, most recent first:
av_expr_eval(),
av_expr_free().
2010-11-08 - r25707 - lavfi 1.59.0 - avfilter_free()
2010-11-08 - 24de0ed - lavfi 1.59.0 - avfilter_free()
Rename avfilter_destroy() to avfilter_free().
This change breaks libavfilter API/ABI.
2010-11-07 - r25705 - lavfi 1.58.0 - avfiltergraph.h
2010-11-07 - 1e80a0e - lavfi 1.58.0 - avfiltergraph.h
Remove graphparser.h header, move AVFilterInOut and
avfilter_graph_parse() declarations to libavfilter/avfiltergraph.h.
2010-11-07 - r25700 - lavfi 1.57.0 - AVFilterInOut
2010-11-07 - 7313132 - lavfi 1.57.0 - AVFilterInOut
Rename field AVFilterInOut.filter to AVFilterInOut.filter_ctx.
This change breaks libavfilter API.
2010-11-04 - r25674 - lavfi 1.56.0 - avfilter_graph_free()
2010-11-04 - 97dd1e4 - lavfi 1.56.0 - avfilter_graph_free()
Rename avfilter_graph_destroy() to avfilter_graph_free().
This change breaks libavfilter API/ABI.
2010-11-04 - r25673 - lavfi 1.55.0 - avfilter_graph_alloc()
2010-11-04 - e15aeea - lavfi 1.55.0 - avfilter_graph_alloc()
Add avfilter_graph_alloc() to libavfilter/avfiltergraph.h.
2010-11-02 - r25654 - lavcore 0.12.0 - av_get_bits_per_sample_fmt()
2010-11-02 - 6f84cd1 - lavcore 0.12.0 - av_get_bits_per_sample_fmt()
Add av_get_bits_per_sample_fmt() to libavcore/samplefmt.h and
deprecate av_get_bits_per_sample_format().
2010-11-02 - r25653 - lavcore 0.11.0 - samplefmt.h
2010-11-02 - d63e456 - lavcore 0.11.0 - samplefmt.h
Add sample format functions in libavcore/samplefmt.h:
av_get_sample_fmt_name(),
av_get_sample_fmt(),
@@ -682,149 +825,149 @@ API changes, most recent first:
avcodec_get_sample_fmt(),
avcodec_sample_fmt_string().
2010-11-02 - r25652 - lavcore 0.10.0 - samplefmt.h
2010-11-02 - 262d1c5 - lavcore 0.10.0 - samplefmt.h
Define enum AVSampleFormat in libavcore/samplefmt.h, deprecate enum
SampleFormat.
2010-10-16 - r25502 - lavfi 1.52.0 - avfilter_graph_config()
2010-10-16 - 2a24df9 - lavfi 1.52.0 - avfilter_graph_config()
Add the function avfilter_graph_config() in avfiltergraph.h.
2010-10-15 - r25493 - lavf 52.83.0 - metadata API
2010-10-15 - 03700d3 - lavf 52.83.0 - metadata API
Change demuxers to export metadata in generic format and
muxers to accept generic format. Deprecate the public
conversion API.
2010-10-10 - r25441 - lavfi 1.49.0 - AVFilterLink.time_base
2010-10-10 - 867ae7a - lavfi 1.49.0 - AVFilterLink.time_base
Add time_base field to AVFilterLink.
2010-09-27 - r25236 - lavu 50.31.0 - av_set_options_string()
2010-09-27 - c85eef4 - lavu 50.31.0 - av_set_options_string()
Move av_set_options_string() from libavfilter/parseutils.h to
libavutil/opt.h.
2010-09-27 - r25227 - lavfi 1.47.0 - AVFilterLink
2010-09-27 - acc0490 - lavfi 1.47.0 - AVFilterLink
Make the AVFilterLink fields srcpad and dstpad store the pointers to
the source and destination pads, rather than their indexes.
2010-09-27 - r25225 - lavu 50.30.0 - av_get_token()
2010-09-27 - 372e288 - lavu 50.30.0 - av_get_token()
Move av_get_token() from libavfilter/parseutils.h to
libavutil/avstring.h.
2010-09-26 - r32368 - lsws 0.12.0 - swscale.h
2010-09-26 - 635d4ae - lsws 0.12.0 - swscale.h
Add the functions sws_alloc_context() and sws_init_context().
2010-09-26 - r25210 - lavu 50.29.0 - opt.h
2010-09-26 - 6ed0404 - lavu 50.29.0 - opt.h
Move libavcodec/opt.h to libavutil/opt.h.
2010-09-24 - r25174 - lavu 50.28.0 - av_log_set_flags()
2010-09-24 - 1c1c80f - lavu 50.28.0 - av_log_set_flags()
Default of av_log() changed due to many problems to the old no repeat
detection. Read the docs of AV_LOG_SKIP_REPEATED in log.h before
enabling it for your app!.
2010-09-24 - r25167 - lavc 52.90.0 - av_opt_show2()
2010-09-24 - f66eb58 - lavc 52.90.0 - av_opt_show2()
Deprecate av_opt_show() in favor or av_opt_show2().
2010-09-14 - r25120 - lavu 50.27.0 - av_popcount()
2010-09-14 - bc6f0af - lavu 50.27.0 - av_popcount()
Add av_popcount() to libavutil/common.h.
2010-09-08 - r25076 - lavu 50.26.0 - av_get_cpu_flags()
2010-09-08 - c6c98d0 - lavu 50.26.0 - av_get_cpu_flags()
Add av_get_cpu_flags().
2010-09-07 - r25067 - lavcore 0.9.0 - av_image_copy()
2010-09-07 - 34017fd - lavcore 0.9.0 - av_image_copy()
Add av_image_copy().
2010-09-07 - r25064 - lavcore 0.8.0 - av_image_copy_plane()
2010-09-07 - 9686abb - lavcore 0.8.0 - av_image_copy_plane()
Add av_image_copy_plane().
2010-09-07 - r25057 - lavcore 0.7.0 - imgutils.h
2010-09-07 - 9b7269e - lavcore 0.7.0 - imgutils.h
Adopt hierarchical scheme for the imgutils.h function names,
deprecate the old names.
2010-09-04 - r25040 - lavu 50.25.0 - AV_CPU_FLAG_*
2010-09-04 - 7160bb7 - lavu 50.25.0 - AV_CPU_FLAG_*
Deprecate the FF_MM_* flags defined in libavcodec/avcodec.h in favor
of the AV_CPU_FLAG_* flags defined in libavutil/cpu.h.
2010-08-26 - r24936 - lavc 52.87.0 - avcodec_get_channel_layout()
2010-08-26 - 5da19b5 - lavc 52.87.0 - avcodec_get_channel_layout()
Add avcodec_get_channel_layout() in audioconvert.h.
2010-08-20 - r24851 - lavcore 0.6.0 - av_fill_image_max_pixsteps()
2010-08-20 - e344336 - lavcore 0.6.0 - av_fill_image_max_pixsteps()
Rename av_fill_image_max_pixstep() to av_fill_image_max_pixsteps().
2010-08-18 - r24827 - lavcore 0.5.0 - av_fill_image_max_pixstep()
2010-08-18 - a6ddf8b - lavcore 0.5.0 - av_fill_image_max_pixstep()
Add av_fill_image_max_pixstep() in imgutils.h.
2010-08-17 - r24814 - lavu 50.24.0 - AV_NE()
2010-08-17 - 4f2d2e4 - lavu 50.24.0 - AV_NE()
Add the AV_NE macro.
2010-08-17 - r24811 - lavfi 1.36.0 - audio framework
2010-08-17 - ad2c950 - lavfi 1.36.0 - audio framework
Implement AVFilterBufferRefAudioProps struct for audio properties,
get_audio_buffer(), filter_samples() functions and related changes.
2010-08-12 - r24787 - lavcore 0.4.0 - av_get_image_linesize()
2010-08-12 - 81c1eca - lavcore 0.4.0 - av_get_image_linesize()
Add av_get_image_linesize() in imgutils.h.
2010-08-11 - r24773 - lavfi 1.34.0 - AVFilterBufferRef
2010-08-11 - c1db7bf - lavfi 1.34.0 - AVFilterBufferRef
Resize data and linesize arrays in AVFilterBufferRef to 8.
This change breaks libavfilter API/ABI.
2010-08-11 - r24768 - lavc 52.85.0 - av_picture_data_copy()
2010-08-11 - 9f08d80 - lavc 52.85.0 - av_picture_data_copy()
Add av_picture_data_copy in avcodec.h.
2010-08-11 - r24765 - lavfi 1.33.0 - avfilter_open()
2010-08-11 - 84c0386 - lavfi 1.33.0 - avfilter_open()
Change avfilter_open() signature:
AVFilterContext *avfilter_open(AVFilter *filter, const char *inst_name) ->
int avfilter_open(AVFilterContext **filter_ctx, AVFilter *filter, const char *inst_name);
This change breaks libavfilter API/ABI.
2010-08-11 - r24763 - lavfi 1.32.0 - AVFilterBufferRef
2010-08-11 - cc80caf - lavfi 1.32.0 - AVFilterBufferRef
Add a type field to AVFilterBufferRef, and move video specific
properties to AVFilterBufferRefVideoProps.
This change breaks libavfilter API/ABI.
2010-08-07 - r24732 - lavfi 1.31.0 - AVFilterLink
2010-08-07 - 5d4890d - lavfi 1.31.0 - AVFilterLink
Rename AVFilterLink fields:
AVFilterLink.srcpic -> AVFilterLink.src_buf
AVFilterLink.cur_pic -> AVFilterLink.cur_buf
AVFilterLink.outpic -> AVFilterLink.out_buf
2010-08-07 - r24731 - lavfi 1.30.0
2010-08-07 - 7fce481 - lavfi 1.30.0
Rename functions and fields:
avfilter_(un)ref_pic -> avfilter_(un)ref_buffer
avfilter_copy_picref_props -> avfilter_copy_buffer_ref_props
AVFilterBufferRef.pic -> AVFilterBufferRef.buffer
2010-08-07 - r24730 - lavfi 1.29.0 - AVFilterBufferRef
2010-08-07 - ecc8dad - lavfi 1.29.0 - AVFilterBufferRef
Rename AVFilterPicRef to AVFilterBufferRef.
2010-08-07 - r24728 - lavfi 1.28.0 - AVFilterBuffer
2010-08-07 - d54e094 - lavfi 1.28.0 - AVFilterBuffer
Move format field from AVFilterBuffer to AVFilterPicRef.
2010-08-06 - r24709 - lavcore 0.3.0 - av_check_image_size()
2010-08-06 - bf176f5 - lavcore 0.3.0 - av_check_image_size()
Deprecate avcodec_check_dimensions() in favor of the function
av_check_image_size() defined in libavcore/imgutils.h.
2010-07-30 - r24592 - lavfi 1.27.0 - AVFilterBuffer
2010-07-30 - 56b5e9d - lavfi 1.27.0 - AVFilterBuffer
Increase size of the arrays AVFilterBuffer.data and
AVFilterBuffer.linesize from 4 to 8.
This change breaks libavfilter ABI.
2010-07-29 - r24583 - lavcore 0.2.0 - imgutils.h
2010-07-29 - e7bd48a - lavcore 0.2.0 - imgutils.h
Add functions av_fill_image_linesizes() and
av_fill_image_pointers(), declared in libavcore/imgutils.h.
2010-07-27 - r24518 - lavcore 0.1.0 - parseutils.h
2010-07-27 - 126b638 - lavcore 0.1.0 - parseutils.h
Deprecate av_parse_video_frame_size() and av_parse_video_frame_rate()
defined in libavcodec in favor of the newly added functions
av_parse_video_size() and av_parse_video_rate() declared in
libavcore/parseutils.h.
2010-07-23 - r24439 - lavu 50.23.0 - mathematics.h
2010-07-23 - 4485247 - lavu 50.23.0 - mathematics.h
Add the M_PHI constant definition.
2010-07-22 - r24424 - lavfi 1.26.0 - media format generalization
2010-07-22 - bdab614 - lavfi 1.26.0 - media format generalization
Add a type field to AVFilterLink.
Change the field types:
@@ -844,235 +987,235 @@ API changes, most recent first:
This change breaks libavfilter API/ABI.
2010-07-21 - r24393 - lavcore 0.0.0
2010-07-21 - aac6ca6 - lavcore 0.0.0
Add libavcore.
2010-07-17 - r24291 - lavfi 1.25.0 - AVFilterBuffer
2010-07-17 - b5c582f - lavfi 1.25.0 - AVFilterBuffer
Remove w and h fields from AVFilterBuffer.
2010-07-17 - r24284 - lavfi 1.24.0 - AVFilterBuffer
2010-07-17 - f0d77b2 - lavfi 1.24.0 - AVFilterBuffer
Rename AVFilterPic to AVFilterBuffer.
2010-07-17 - r24278 - lavf 52.74.0 - url_fskip()
2010-07-17 - 57fe80f - lavf 52.74.0 - url_fskip()
Make url_fskip() return an int error code instead of void.
2010-07-11 - r24199 - lavc 52.83.0
2010-07-11 - 23940f1 - lavc 52.83.0
Add AVCodecContext.lpc_type and AVCodecContext.lpc_passes fields.
Add AVLPCType enum.
Deprecate AVCodecContext.use_lpc.
2010-07-11 - r24185 - lavc 52.82.0 - avsubtitle_free()
2010-07-11 - e1d7c88 - lavc 52.82.0 - avsubtitle_free()
Add a function for free the contents of a AVSubtitle generated by
avcodec_decode_subtitle.
2010-07-11 - r24174 - lavu 50.22.0 - bswap.h and intreadwrite.h
2010-07-11 - b91d08f - lavu 50.22.0 - bswap.h and intreadwrite.h
Make the bswap.h and intreadwrite.h API public.
2010-07-08 - r24101 - lavu 50.21.0 - pixdesc.h
2010-07-08 - ce1cd1c - lavu 50.21.0 - pixdesc.h
Rename read/write_line() to av_read/write_image_line().
2010-07-07 - r24091 - lavfi 1.21.0 - avfilter_copy_picref_props()
2010-07-07 - 4d508e4 - lavfi 1.21.0 - avfilter_copy_picref_props()
Add avfilter_copy_picref_props().
2010-07-03 - r24021 - lavc 52.79.0
2010-07-03 - 2d525ef - lavc 52.79.0
Add FF_COMPLIANCE_UNOFFICIAL and change all instances of
FF_COMPLIANCE_INOFFICIAL to use FF_COMPLIANCE_UNOFFICIAL.
2010-07-02 - r23985 - lavu 50.20.0 - lfg.h
2010-07-02 - 89eec74 - lavu 50.20.0 - lfg.h
Export av_lfg_init(), av_lfg_get(), av_mlfg_get(), and av_bmg_get() through
lfg.h.
2010-06-28 - r23835 - lavfi 1.20.1 - av_parse_color()
2010-06-28 - a52e2c3 - lavfi 1.20.1 - av_parse_color()
Extend av_parse_color() syntax, make it accept an alpha value specifier and
set the alpha value to 255 by default.
2010-06-22 - r23706 - lavf 52.71.0 - URLProtocol.priv_data_size, priv_data_class
2010-06-22 - 735cf6b - lavf 52.71.0 - URLProtocol.priv_data_size, priv_data_class
Add priv_data_size and priv_data_class to URLProtocol.
2010-06-22 - r23704 - lavf 52.70.0 - url_alloc(), url_connect()
2010-06-22 - ffbb289 - lavf 52.70.0 - url_alloc(), url_connect()
Add url_alloc() and url_connect().
2010-06-22 - r23702 - lavf 52.69.0 - av_register_protocol2()
2010-06-22 - 9b07a2d - lavf 52.69.0 - av_register_protocol2()
Add av_register_protocol2(), deprecating av_register_protocol().
2010-06-09 - r23551 - lavu 50.19.0 - av_compare_mod()
2010-06-09 - 65db058 - lavu 50.19.0 - av_compare_mod()
Add av_compare_mod() to libavutil/mathematics.h.
2010-06-05 - r23485 - lavu 50.18.0 - eval API
2010-06-05 - 0b99215 - lavu 50.18.0 - eval API
Make the eval API public.
2010-06-04 - r23461 - lavu 50.17.0 - AV_BASE64_SIZE
2010-06-04 - 31878fc - lavu 50.17.0 - AV_BASE64_SIZE
Add AV_BASE64_SIZE() macro.
2010-06-02 - r23421 - lavc 52.73.0 - av_get_codec_tag_string()
2010-06-02 - 7e566bb - lavc 52.73.0 - av_get_codec_tag_string()
Add av_get_codec_tag_string().
2010-06-01 - r31301 - lsws 0.11.0 - convertPalette API
2010-06-01 - 2b99142 - lsws 0.11.0 - convertPalette API
Add sws_convertPalette8ToPacked32() and sws_convertPalette8ToPacked24().
2010-05-26 - r23334 - lavc 52.72.0 - CODEC_CAP_EXPERIMENTAL
2010-05-26 - 93ebfee - lavc 52.72.0 - CODEC_CAP_EXPERIMENTAL
Add CODEC_CAP_EXPERIMENTAL flag.
NOTE: this was backported to 0.6
2010-05-23 - r23255 - lavu 50.16.0 - av_get_random_seed()
2010-05-23 - 9977863 - lavu 50.16.0 - av_get_random_seed()
Add av_get_random_seed().
2010-05-18 - r23161 - lavf 52.63.0 - AVFMT_FLAG_RTP_HINT
2010-05-18 - 796ac23 - lavf 52.63.0 - AVFMT_FLAG_RTP_HINT
Add AVFMT_FLAG_RTP_HINT as possible value for AVFormatContext.flags.
NOTE: this was backported to 0.6
2010-05-09 - r23066 - lavfi 1.20.0 - AVFilterPicRef
2010-05-09 - b6bc205 - lavfi 1.20.0 - AVFilterPicRef
Add interlaced and top_field_first fields to AVFilterPicRef.
------------------------------8<-------------------------------------
0.6 branch was cut here
----------------------------->8--------------------------------------
2010-05-01 - r23002 - lavf 52.62.0 - probe function
2010-05-01 - 8e2ee18 - lavf 52.62.0 - probe function
Add av_probe_input_format2 to API, it allows ignoring probe
results below given score and returns the actual probe score.
2010-04-01 - r22806 - lavf 52.61.0 - metadata API
2010-04-01 - 3dd6180 - lavf 52.61.0 - metadata API
Add a flag for av_metadata_set2() to disable overwriting of
existing tags.
2010-04-01 - r22753 - lavc 52.66.0
2010-04-01 - 0fb49b5 - lavc 52.66.0
Add avcodec_get_edge_width().
2010-03-31 - r22750 - lavc 52.65.0
2010-03-31 - d103218 - lavc 52.65.0
Add avcodec_copy_context().
2010-03-31 - r22748 - lavf 52.60.0 - av_match_ext()
2010-03-31 - 1a70d12 - lavf 52.60.0 - av_match_ext()
Make av_match_ext() public.
2010-03-31 - r22736 - lavu 50.14.0 - AVMediaType
2010-03-31 - 1149150 - lavu 50.14.0 - AVMediaType
Move AVMediaType enum from libavcodec to libavutil.
2010-03-31 - r22735 - lavc 52.64.0 - AVMediaType
2010-03-31 - 72415b2 - lavc 52.64.0 - AVMediaType
Define AVMediaType enum, and use it instead of enum CodecType, which
is deprecated and will be dropped at the next major bump.
2010-03-25 - r22684 - lavu 50.13.0 - av_strerror()
2010-03-25 - 8795823 - lavu 50.13.0 - av_strerror()
Implement av_strerror().
2010-03-23 - r22649 - lavc 52.60.0 - av_dct_init()
2010-03-23 - e1484eb - lavc 52.60.0 - av_dct_init()
Support DCT-I and DST-I.
2010-03-15 - r22540 - lavf 52.56.0 - AVFormatContext.start_time_realtime
2010-03-15 - b8819c8 - lavf 52.56.0 - AVFormatContext.start_time_realtime
Add AVFormatContext.start_time_realtime field.
2010-03-13 - r22506 - lavfi 1.18.0 - AVFilterPicRef.pos
2010-03-13 - 5bb5c1d - lavfi 1.18.0 - AVFilterPicRef.pos
Add AVFilterPicRef.pos field.
2010-03-13 - r22501 - lavu 50.12.0 - error.h
2010-03-13 - 60c144f - lavu 50.12.0 - error.h
Move error code definitions from libavcodec/avcodec.h to
the new public header libavutil/error.h.
2010-03-07 - r22291 - lavc 52.56.0 - avfft.h
2010-03-07 - c709483 - lavc 52.56.0 - avfft.h
Add public FFT interface.
2010-03-06 - r22251 - lavu 50.11.0 - av_stristr()
2010-03-06 - ac6ef86 - lavu 50.11.0 - av_stristr()
Add av_stristr().
2010-03-03 - r22174 - lavu 50.10.0 - av_tree_enumerate()
2010-03-03 - 4b83fc0 - lavu 50.10.0 - av_tree_enumerate()
Add av_tree_enumerate().
2010-02-07 - r21673 - lavu 50.9.0 - av_compare_ts()
2010-02-07 - b687c1a - lavu 50.9.0 - av_compare_ts()
Add av_compare_ts().
2010-02-05 - r30513 - lsws 0.10.0 - sws_getCoefficients()
2010-02-05 - 3f3dc76 - lsws 0.10.0 - sws_getCoefficients()
Add sws_getCoefficients().
2010-02-01 - r21587 - lavf 52.50.0 - metadata API
2010-02-01 - ca76a11 - lavf 52.50.0 - metadata API
Add a list of generic tag names, change 'author' -> 'artist',
'year' -> 'date'.
2010-01-30 - r21545 - lavu 50.8.0 - av_get_pix_fmt()
2010-01-30 - 80a07f6 - lavu 50.8.0 - av_get_pix_fmt()
Add av_get_pix_fmt().
2010-01-21 - r30381 - lsws 0.9.0 - sws_scale()
2010-01-21 - 01cc47d - lsws 0.9.0 - sws_scale()
Change constness attributes of sws_scale() parameters.
2010-01-10 - r21121 - lavfi 1.15.0 - avfilter_graph_config_links()
2010-01-10 - 3fb8e77 - lavfi 1.15.0 - avfilter_graph_config_links()
Add a log_ctx parameter to avfilter_graph_config_links().
2010-01-07 - r30236 - lsws 0.8.0 - sws_isSupported{In,Out}put()
2010-01-07 - 8e9767f - lsws 0.8.0 - sws_isSupported{In,Out}put()
Add sws_isSupportedInput() and sws_isSupportedOutput() functions.
2010-01-06 - r21035 - lavfi 1.14.0 - avfilter_add_colorspace()
2010-01-06 - c1d662f - lavfi 1.14.0 - avfilter_add_colorspace()
Change the avfilter_add_colorspace() signature, make it accept an
(AVFilterFormats **) rather than an (AVFilterFormats *) as before.
2010-01-03 - r21007 - lavfi 1.13.0 - avfilter_add_colorspace()
2010-01-03 - 4fd1f18 - lavfi 1.13.0 - avfilter_add_colorspace()
Add avfilter_add_colorspace().
2010-01-02 - r20998 - lavf 52.46.0 - av_match_ext()
2010-01-02 - 8eb631f - lavf 52.46.0 - av_match_ext()
Add av_match_ext(), it should be used in place of match_ext().
2010-01-01 - r20991 - lavf 52.45.0 - av_guess_format()
2010-01-01 - a1f547b - lavf 52.45.0 - av_guess_format()
Add av_guess_format(), it should be used in place of guess_format().
2009-12-13 - r20834 - lavf 52.43.0 - metadata API
2009-12-13 - a181981 - lavf 52.43.0 - metadata API
Add av_metadata_set2(), AV_METADATA_DONT_STRDUP_KEY and
AV_METADATA_DONT_STRDUP_VAL.
2009-12-13 - r20829 - lavu 50.7.0 - avstring.h API
2009-12-13 - 277c733 - lavu 50.7.0 - avstring.h API
Add av_d2str().
2009-12-13 - r20826 - lavc 52.42.0 - AVStream
2009-12-13 - 02b398e - lavc 52.42.0 - AVStream
Add avg_frame_rate.
2009-12-12 - r20808 - lavu 50.6.0 - av_bmg_next()
2009-12-12 - 3ba69a1 - lavu 50.6.0 - av_bmg_next()
Introduce the av_bmg_next() function.
2009-12-05 - r20734 - lavfi 1.12.0 - avfilter_draw_slice()
2009-12-05 - a13a543 - lavfi 1.12.0 - avfilter_draw_slice()
Add a slice_dir parameter to avfilter_draw_slice().
2009-11-26 - r20611 - lavfi 1.11.0 - AVFilter
2009-11-26 - 4cc3f6a - lavfi 1.11.0 - AVFilter
Remove the next field from AVFilter, this is not anymore required.
2009-11-25 - r20607 - lavfi 1.10.0 - avfilter_next()
2009-11-25 - 1433c4a - lavfi 1.10.0 - avfilter_next()
Introduce the avfilter_next() function.
2009-11-25 - r20605 - lavfi 1.9.0 - avfilter_register()
2009-11-25 - 86a60fa - lavfi 1.9.0 - avfilter_register()
Change the signature of avfilter_register() to make it return an
int. This is required since now the registration operation may fail.
2009-11-25 - r20603 - lavu 50.5.0 - pixdesc.h API
2009-11-25 - 74a0059 - lavu 50.5.0 - pixdesc.h API
Make the pixdesc.h API public.
2009-10-27 - r20385 - lavfi 1.5.0 - AVFilter.next
2009-10-27 - 243110f - lavfi 1.5.0 - AVFilter.next
Add a next field to AVFilter, this is used for simplifying the
registration and management of the registered filters.
2009-10-23 - r20356 - lavfi 1.4.1 - AVFilter.description
2009-10-23 - cccd292 - lavfi 1.4.1 - AVFilter.description
Add a description field to AVFilter.
2009-10-19 - r20302 - lavfi 1.3.0 - avfilter_make_format_list()
2009-10-19 - 6b5dc05 - lavfi 1.3.0 - avfilter_make_format_list()
Change the interface of avfilter_make_format_list() from
avfilter_make_format_list(int n, ...) to
avfilter_make_format_list(enum PixelFormat *pix_fmts).
2009-10-18 - r20272 - lavfi 1.0.0 - avfilter_get_video_buffer()
2009-10-18 - 0eb4ff9 - lavfi 1.0.0 - avfilter_get_video_buffer()
Make avfilter_get_video_buffer() recursive and add the w and h
parameters to it.
2009-10-07 - r20189 - lavfi 0.5.1 - AVFilterPic
2009-10-07 - 46c40e4 - lavfi 0.5.1 - AVFilterPic
Add w and h fields to AVFilterPic.
2009-06-22 - r19250 - lavf 52.34.1 - AVFormatContext.packet_size
2009-06-22 - 92400be - lavf 52.34.1 - AVFormatContext.packet_size
This is now an unsigned int instead of a signed int.
2009-06-19 - r19222 - lavc 52.32.0 - AVSubtitle.pts
2009-06-19 - a4276ba - lavc 52.32.0 - AVSubtitle.pts
Add a pts field to AVSubtitle which gives the subtitle packet pts
in AV_TIME_BASE. Some subtitle de-/encoders (e.g. XSUB) will
not work right without this.
2009-06-03 - r19078 - lavc 52.30.2 - AV_PKT_FLAG_KEY
2009-06-03 - 8f3f2e0 - lavc 52.30.2 - AV_PKT_FLAG_KEY
PKT_FLAG_KEY has been deprecated and will be dropped at the next
major version. Use AV_PKT_FLAG_KEY instead.
2009-06-01 - r19025 - lavc 52.30.0 - av_lockmgr_register()
2009-06-01 - f988ce6 - lavc 52.30.0 - av_lockmgr_register()
av_lockmgr_register() can be used to register a callback function
that lavc (and in the future, libraries that depend on lavc) can use
to implement mutexes. The application should provide a callback function
@@ -1080,27 +1223,27 @@ API changes, most recent first:
When the lock manager is registered, FFmpeg is guaranteed to behave
correctly in a multi-threaded application.
2009-04-30 - r18719 - lavc 52.28.0 - av_free_packet()
2009-04-30 - ce1d9c8 - lavc 52.28.0 - av_free_packet()
av_free_packet() is no longer an inline function. It is now exported.
2009-04-11 - r18431 - lavc 52.25.0 - deprecate av_destruct_packet_nofree()
2009-04-11 - 80d403f - lavc 52.25.0 - deprecate av_destruct_packet_nofree()
Please use NULL instead. This has been supported since r16506
(lavf > 52.23.1, lavc > 52.10.0).
2009-04-07 - r18351 - lavc 52.23.0 - avcodec_decode_video/audio/subtitle
2009-04-07 - 7a00bba - lavc 52.23.0 - avcodec_decode_video/audio/subtitle
The old decoding functions are deprecated, all new code should use the
new functions avcodec_decode_video2(), avcodec_decode_audio3() and
avcodec_decode_subtitle2(). These new functions take an AVPacket *pkt
argument instead of a const uint8_t *buf / int buf_size pair.
2009-04-03 - r18321 - lavu 50.3.0 - av_fifo_space()
2009-04-03 - 7b09db3 - lavu 50.3.0 - av_fifo_space()
Introduce the av_fifo_space() function.
2009-04-02 - r18317 - lavc 52.23.0 - AVPacket
2009-04-02 - fabd246 - lavc 52.23.0 - AVPacket
Move AVPacket declaration from libavformat/avformat.h to
libavcodec/avcodec.h.
2009-03-22 - r18163 - lavu 50.2.0 - RGB32 pixel formats
2009-03-22 - 6e08ca9 - lavu 50.2.0 - RGB32 pixel formats
Convert the pixel formats PIX_FMT_ARGB, PIX_FMT_RGBA, PIX_FMT_ABGR,
PIX_FMT_BGRA, which were defined as macros, into enum PixelFormat values.
Conversely PIX_FMT_RGB32, PIX_FMT_RGB32_1, PIX_FMT_BGR32 and
@@ -1109,17 +1252,17 @@ API changes, most recent first:
Re-sort the enum PixelFormat list accordingly.
This change breaks API/ABI backward compatibility.
2009-03-22 - r18133 - lavu 50.1.0 - PIX_FMT_RGB5X5 endian variants
2009-03-22 - f82674e - lavu 50.1.0 - PIX_FMT_RGB5X5 endian variants
Add the enum PixelFormat values:
PIX_FMT_RGB565BE, PIX_FMT_RGB565LE, PIX_FMT_RGB555BE, PIX_FMT_RGB555LE,
PIX_FMT_BGR565BE, PIX_FMT_BGR565LE, PIX_FMT_BGR555BE, PIX_FMT_BGR555LE.
2009-03-21 - r18116 - lavu 50.0.0 - av_random*
2009-03-21 - ee6624e - lavu 50.0.0 - av_random*
The Mersenne Twister PRNG implemented through the av_random* functions
was removed. Use the lagged Fibonacci PRNG through the av_lfg* functions
instead.
2009-03-08 - r17869 - lavu 50.0.0 - AVFifoBuffer
2009-03-08 - 41dd680 - lavu 50.0.0 - AVFifoBuffer
av_fifo_init, av_fifo_read, av_fifo_write and av_fifo_realloc were dropped
and replaced by av_fifo_alloc, av_fifo_generic_read, av_fifo_generic_write
and av_fifo_realloc2.
@@ -1128,7 +1271,7 @@ API changes, most recent first:
The AVFifoBuffer/struct AVFifoBuffer may only be used in an opaque way by
applications, they may not use sizeof() or directly access members.
2009-03-01 - r17682 - lavf 52.31.0 - Generic metadata API
2009-03-01 - ec26457 - lavf 52.31.0 - Generic metadata API
Introduce a new metadata API (see av_metadata_get() and friends).
The old API is now deprecated and should not be used anymore. This especially
includes the following structure fields:
+17 -8
View File
@@ -8,6 +8,7 @@ HTMLPAGES = $(PROGS-yes:%=doc/%.html) \
doc/git-howto.html \
doc/libavfilter.html \
doc/platform.html \
doc/syntax.html \
TXTPAGES = doc/fate.txt \
@@ -28,22 +29,30 @@ doc/%.txt: doc/%.texi
$(Q)$(TEXIDEP)
$(M)makeinfo --force --no-headers -o $@ $< 2>/dev/null
doc/print_options.o: libavformat/options_table.h libavcodec/options_table.h
GENTEXI = format codec
GENTEXI := $(GENTEXI:%=doc/avoptions_%.texi)
$(GENTEXI): TAG = GENTEXI
$(GENTEXI): doc/avoptions_%.texi: doc/print_options
$(M)doc/print_options $* > $@
doc/%.html: TAG = HTML
doc/%.html: doc/%.texi $(SRC_PATH)/doc/t2h.init
doc/%.html: doc/%.texi $(SRC_PATH)/doc/t2h.init $(GENTEXI)
$(Q)$(TEXIDEP)
$(M)texi2html -monolithic --init-file $(SRC_PATH)/doc/t2h.init --output $@ $<
$(M)texi2html -I doc -monolithic --init-file $(SRC_PATH)/doc/t2h.init --output $@ $<
doc/%.pod: TAG = POD
doc/%.pod: doc/%.texi
doc/%.pod: doc/%.texi $(GENTEXI)
$(Q)$(TEXIDEP)
$(M)$(SRC_PATH)/doc/texi2pod.pl $< $@
$(M)$(SRC_PATH)/doc/texi2pod.pl -Idoc $< $@
doc/%.1: TAG = MAN
doc/%.1: doc/%.pod
doc/%.1: doc/%.pod $(GENTEXI)
$(M)pod2man --section=1 --center=" " --release=" " $< > $@
$(DOCS): | doc
OBJDIRS += doc
$(DOCS): | doc/
install-progs-$(CONFIG_DOC): install-man
@@ -57,7 +66,7 @@ uninstall-man:
$(RM) $(addprefix "$(MANDIR)/man1/",$(ALLMANPAGES))
clean::
$(RM) $(TXTPAGES) doc/*.html doc/*.pod doc/*.1 $(CLEANSUFFIXES:%=doc/%)
$(RM) $(TXTPAGES) doc/*.html doc/*.pod doc/*.1 $(CLEANSUFFIXES:%=doc/%) doc/avoptions_*.texi
-include $(wildcard $(DOCS:%=%.d))
-33
View File
@@ -6,8 +6,6 @@ Release Notes
General notes
-------------
This release is binary compatible with 0.8 and 0.9.
See the Changelog file for a list of significant changes. Note, there
are many more new features and bugfixes than whats listed there.
@@ -16,34 +14,3 @@ accepted. If you are experiencing issues with any formally released version of
FFmpeg, please try git master to check if the issue still exists. If it does,
make your report against the development code following the usual bug reporting
guidelines.
API changes
-----------
A number of additional APIs have been introduced and some existing
functions have been deprecated and are scheduled for removal in the next
release. Significant API changes include:
* new audio decoding API which decodes from an AVPacket to an AVFrame and
is able to use AVCodecContext.get_buffer() in the similar way as video decoding.
* new audio encoding API which encodes from an AVFrame to an AVPacket, thus
allowing it to properly output timing information and side data.
Please see the git history and the file doc/APIchanges for details.
Other notable changes
---------------------
Libavcodec and libavformat built as shared libraries now hide non-public
symbols. This will break applications using those symbols. Possible solutions
are, in order of preference:
1) Try finding a way of accomplishing the same with public API.
2) If there is no corresponding public API, but you think there should be,
post a request on the developer mailing list or IRC channel.
3) Finally if your program needs access to FFmpeg / libavcodec / libavformat
internals for some special reason then the best solution is to link statically.
Please see the Changelog file and git history for a more detailed list of changes.
+14
View File
@@ -41,6 +41,8 @@ streams of this type.
@item p:@var{program_id}[:@var{stream_index}]
If @var{stream_index} is given, then matches stream number @var{stream_index} in
program with id @var{program_id}. Otherwise matches all streams in this program.
@item #@var{stream_id}
Matches the stream by format-specific ID.
@end table
@section Generic options
@@ -134,6 +136,15 @@ It also implies @code{-loglevel verbose}.
Note: setting the environment variable @code{FFREPORT} to any value has the
same effect.
@item -cpuflags flags (@emph{global})
Allows setting and clearing cpu flags. This option is intended
for testing. Do not use it unless you know what you're doing.
@example
ffmpeg -cpuflags -sse+mmx ...
ffmpeg -cpuflags mmx ...
ffmpeg -cpuflags 0 ...
@end example
@end table
@section AVOptions
@@ -166,3 +177,6 @@ use @option{-option 0}/@option{-option 1}.
Note2 old undocumented way of specifying per-stream AVOptions by prepending
v/a/s to the options name is now obsolete and will be removed soon.
@include avoptions_codec.texi
@include avoptions_format.texi
+1 -1
View File
@@ -71,7 +71,7 @@ stream (carrying the AVI1 header ID and lacking a DHT segment) to
produce fully qualified JPEG images.
@example
ffmpeg -i mjpeg-movie.avi -c:v copy -vbsf mjpeg2jpeg frame_%d.jpg
ffmpeg -i mjpeg-movie.avi -c:v copy -bsf:v mjpeg2jpeg frame_%d.jpg
exiftran -i -9 frame*.jpg
ffmpeg -i frame_%d.jpg -c:v copy rotated.avi
@end example
+16 -7
View File
@@ -14,12 +14,13 @@
@section API
@itemize @bullet
@item libavcodec is the library containing the codecs (both encoding and
decoding). Look at @file{libavcodec/apiexample.c} to see how to use it.
decoding). Look at @file{doc/examples/decoding_encoding.c} to see how to use
it.
@item libavformat is the library containing the file format handling (mux and
demux code for several formats). Look at @file{ffplay.c} to use it in a
player. See @file{libavformat/output-example.c} to use it to generate
audio or video streams.
player. See @file{doc/examples/muxing.c} to use it to generate audio or video
streams.
@end itemize
@@ -187,6 +188,8 @@ the following snippet into your @file{.vimrc}:
set expandtab
set shiftwidth=4
set softtabstop=4
set cindent
set cinoptions=(0
" allow tabs in Makefiles
autocmd FileType make set noexpandtab shiftwidth=8 softtabstop=8
" Trailing whitespace and tabs are forbidden, so highlight them.
@@ -198,10 +201,16 @@ autocmd InsertEnter * match ForbiddenWhitespace /\t\|\s\+\%#\@@<!$/
For Emacs, add these roughly equivalent lines to your @file{.emacs.d/init.el}:
@example
(setq c-default-style "k&r")
(setq-default c-basic-offset 4)
(setq-default indent-tabs-mode nil)
(setq-default show-trailing-whitespace t)
(c-add-style "ffmpeg"
'("k&r"
(c-basic-offset . 4)
(indent-tabs-mode nil)
(show-trailing-whitespace t)
(c-offsets-alist
(statement-cont . (c-lineup-assignments +)))
)
)
(setq c-default-style "ffmpeg")
@end example
@section Development Policy
+12
View File
@@ -106,6 +106,18 @@ the evaluation of @var{y}, return 0 otherwise.
@item ifnot(x, y)
Evaluate @var{x}, and if the result is zero return the result of the
evaluation of @var{y}, return 0 otherwise.
@item taylor(expr, x) taylor(expr, x, id)
Evaluate a taylor series at x.
expr represents the LD(id)-th derivates of f(x) at 0. If id is not specified
then 0 is assumed.
note, when you have the derivatives at y instead of 0
taylor(expr, x-y) can be used
When the series does not converge the results are undefined.
@item root(expr, max)
Finds x where f(x)=0 in the interval 0..max.
f() must be continuous or the result is undefined.
@end table
The following constants are available:
+21 -10
View File
@@ -1,17 +1,28 @@
# use pkg-config for getting CFLAGS abd LDFLAGS
FFMPEG_LIBS=libavdevice libavformat libavfilter libavcodec libswscale libavutil
CFLAGS+=$(shell pkg-config --cflags $(FFMPEG_LIBS))
LDFLAGS+=$(shell pkg-config --libs $(FFMPEG_LIBS))
# use pkg-config for getting CFLAGS and LDLIBS
FFMPEG_LIBS= libavdevice \
libavformat \
libavfilter \
libavcodec \
libavresample \
libswresample \
libswscale \
libavutil \
EXAMPLES=decoding_encoding filtering metadata muxing
CFLAGS += -Wall -O2 -g
CFLAGS += $(shell pkg-config --cflags $(FFMPEG_LIBS))
LDLIBS += $(shell pkg-config --libs $(FFMPEG_LIBS))
EXAMPLES= decoding_encoding \
filtering_video \
filtering_audio \
metadata \
muxing \
OBJS=$(addsuffix .o,$(EXAMPLES))
%: %.o
$(CC) $< $(LDFLAGS) -o $@
%.o: %.c
$(CC) $< $(CFLAGS) -c -o $@
# the following examples make explicit use of the math library
decoding_encoding: LDLIBS += -lm
muxing: LDLIBS += -lm
.phony: all clean
+21 -19
View File
@@ -29,11 +29,13 @@
* format handling
*/
#include "libavutil/imgutils.h"
#include "libavutil/opt.h"
#include "libavcodec/avcodec.h"
#include "libavutil/mathematics.h"
#include "libavutil/samplefmt.h"
#include <math.h>
#include <libavutil/imgutils.h>
#include <libavutil/opt.h>
#include <libavcodec/avcodec.h>
#include <libavutil/mathematics.h>
#include <libavutil/samplefmt.h>
#define INBUF_SIZE 4096
#define AUDIO_INBUF_SIZE 20480
@@ -52,7 +54,7 @@ static void audio_encode_example(const char *filename)
float t, tincr;
uint8_t *outbuf;
printf("Audio encoding\n");
printf("Encode audio file %s\n", filename);
/* find the MP2 encoder */
codec = avcodec_find_encoder(CODEC_ID_MP2);
@@ -70,7 +72,7 @@ static void audio_encode_example(const char *filename)
c->sample_fmt = AV_SAMPLE_FMT_S16;
/* open it */
if (avcodec_open(c, codec) < 0) {
if (avcodec_open2(c, codec, NULL) < 0) {
fprintf(stderr, "could not open codec\n");
exit(1);
}
@@ -123,7 +125,7 @@ static void audio_decode_example(const char *outfilename, const char *filename)
av_init_packet(&avpkt);
printf("Audio decoding\n");
printf("Decode audio file %s\n", filename);
/* find the mpeg audio decoder */
codec = avcodec_find_decoder(CODEC_ID_MP2);
@@ -135,7 +137,7 @@ static void audio_decode_example(const char *outfilename, const char *filename)
c = avcodec_alloc_context3(codec);
/* open it */
if (avcodec_open(c, codec) < 0) {
if (avcodec_open2(c, codec, NULL) < 0) {
fprintf(stderr, "could not open codec\n");
exit(1);
}
@@ -211,12 +213,13 @@ static void video_encode_example(const char *filename, int codec_id)
{
AVCodec *codec;
AVCodecContext *c= NULL;
int i, out_size, size, x, y, outbuf_size;
int i, out_size, x, y, outbuf_size;
FILE *f;
AVFrame *picture;
uint8_t *outbuf;
int had_output=0;
printf("Video encoding\n");
printf("Encode video file %s\n", filename);
/* find the mpeg1 video encoder */
codec = avcodec_find_encoder(codec_id);
@@ -243,7 +246,7 @@ static void video_encode_example(const char *filename, int codec_id)
av_opt_set(c->priv_data, "preset", "slow", 0);
/* open it */
if (avcodec_open(c, codec) < 0) {
if (avcodec_open2(c, codec, NULL) < 0) {
fprintf(stderr, "could not open codec\n");
exit(1);
}
@@ -255,7 +258,7 @@ static void video_encode_example(const char *filename, int codec_id)
}
/* alloc image and output buffer */
outbuf_size = 100000;
outbuf_size = 100000 + 12*c->width*c->height;
outbuf = malloc(outbuf_size);
/* the image can be allocated by any means and av_image_alloc() is
@@ -284,15 +287,17 @@ static void video_encode_example(const char *filename, int codec_id)
/* encode the image */
out_size = avcodec_encode_video(c, outbuf, outbuf_size, picture);
had_output |= out_size;
printf("encoding frame %3d (size=%5d)\n", i, out_size);
fwrite(outbuf, 1, out_size, f);
}
/* get the delayed frames */
for(; out_size; i++) {
for(; out_size || !had_output; i++) {
fflush(stdout);
out_size = avcodec_encode_video(c, outbuf, outbuf_size, NULL);
had_output |= out_size;
printf("write frame %3d (size=%5d)\n", i, out_size);
fwrite(outbuf, 1, out_size, f);
}
@@ -346,7 +351,7 @@ static void video_decode_example(const char *outfilename, const char *filename)
/* set end of buffer to 0 (this ensures that no overreading happens for damaged mpeg streams) */
memset(inbuf + INBUF_SIZE, 0, FF_INPUT_BUFFER_PADDING_SIZE);
printf("Video decoding\n");
printf("Decode video file %s\n", filename);
/* find the mpeg1 video decoder */
codec = avcodec_find_decoder(CODEC_ID_MPEG1VIDEO);
@@ -366,7 +371,7 @@ static void video_decode_example(const char *outfilename, const char *filename)
available in the bitstream. */
/* open it */
if (avcodec_open(c, codec) < 0) {
if (avcodec_open2(c, codec, NULL) < 0) {
fprintf(stderr, "could not open codec\n");
exit(1);
}
@@ -453,9 +458,6 @@ int main(int argc, char **argv)
{
const char *filename;
/* must be called before using avcodec lib */
avcodec_init();
/* register all the codecs */
avcodec_register_all();
+235
View File
@@ -0,0 +1,235 @@
/*
* Copyright (c) 2010 Nicolas George
* Copyright (c) 2011 Stefano Sabatini
* Copyright (c) 2012 Clément Bœsch
*
* 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.
*/
/**
* @file
* API example for audio decoding and filtering
*/
#include <unistd.h>
#include <libavcodec/avcodec.h>
#include <libavformat/avformat.h>
#include <libavfilter/avfiltergraph.h>
#include <libavfilter/avcodec.h>
#include <libavfilter/buffersink.h>
#include <libavfilter/buffersrc.h>
const char *filter_descr = "aresample=8000,aconvert=s16:mono";
const char *player = "ffplay -f s16le -ar 8000 -ac 1 -";
static AVFormatContext *fmt_ctx;
static AVCodecContext *dec_ctx;
AVFilterContext *buffersink_ctx;
AVFilterContext *buffersrc_ctx;
AVFilterGraph *filter_graph;
static int audio_stream_index = -1;
static int open_input_file(const char *filename)
{
int ret;
AVCodec *dec;
if ((ret = avformat_open_input(&fmt_ctx, filename, NULL, NULL)) < 0) {
av_log(NULL, AV_LOG_ERROR, "Cannot open input file\n");
return ret;
}
if ((ret = avformat_find_stream_info(fmt_ctx, NULL)) < 0) {
av_log(NULL, AV_LOG_ERROR, "Cannot find stream information\n");
return ret;
}
/* select the audio stream */
ret = av_find_best_stream(fmt_ctx, AVMEDIA_TYPE_AUDIO, -1, -1, &dec, 0);
if (ret < 0) {
av_log(NULL, AV_LOG_ERROR, "Cannot find a audio stream in the input file\n");
return ret;
}
audio_stream_index = ret;
dec_ctx = fmt_ctx->streams[audio_stream_index]->codec;
/* init the audio decoder */
if ((ret = avcodec_open2(dec_ctx, dec, NULL)) < 0) {
av_log(NULL, AV_LOG_ERROR, "Cannot open audio decoder\n");
return ret;
}
return 0;
}
static int init_filters(const char *filters_descr)
{
char args[512];
int ret;
AVFilter *abuffersrc = avfilter_get_by_name("abuffer");
AVFilter *abuffersink = avfilter_get_by_name("abuffersink");
AVFilterInOut *outputs = avfilter_inout_alloc();
AVFilterInOut *inputs = avfilter_inout_alloc();
const enum AVSampleFormat sample_fmts[] = { AV_SAMPLE_FMT_S16, -1 };
const int64_t *chlayouts = avfilter_all_channel_layouts;
AVABufferSinkParams *abuffersink_params;
const AVFilterLink *outlink;
filter_graph = avfilter_graph_alloc();
/* buffer audio source: the decoded frames from the decoder will be inserted here. */
if (!dec_ctx->channel_layout)
dec_ctx->channel_layout = av_get_default_channel_layout(dec_ctx->channels);
snprintf(args, sizeof(args), "%d:%d:0x%"PRIx64,
dec_ctx->sample_rate, dec_ctx->sample_fmt, dec_ctx->channel_layout);
ret = avfilter_graph_create_filter(&buffersrc_ctx, abuffersrc, "in",
args, NULL, filter_graph);
if (ret < 0) {
av_log(NULL, AV_LOG_ERROR, "Cannot create audio buffer source\n");
return ret;
}
/* buffer audio sink: to terminate the filter chain. */
abuffersink_params = av_abuffersink_params_alloc();
abuffersink_params->sample_fmts = sample_fmts;
abuffersink_params->channel_layouts = chlayouts;
ret = avfilter_graph_create_filter(&buffersink_ctx, abuffersink, "out",
NULL, abuffersink_params, filter_graph);
av_free(abuffersink_params);
if (ret < 0) {
av_log(NULL, AV_LOG_ERROR, "Cannot create audio buffer sink\n");
return ret;
}
/* Endpoints for the filter graph. */
outputs->name = av_strdup("in");
outputs->filter_ctx = buffersrc_ctx;
outputs->pad_idx = 0;
outputs->next = NULL;
inputs->name = av_strdup("out");
inputs->filter_ctx = buffersink_ctx;
inputs->pad_idx = 0;
inputs->next = NULL;
if ((ret = avfilter_graph_parse(filter_graph, filters_descr,
&inputs, &outputs, NULL)) < 0)
return ret;
if ((ret = avfilter_graph_config(filter_graph, NULL)) < 0)
return ret;
/* Print summary of the sink buffer
* Note: args buffer is reused to store channel layout string */
outlink = buffersink_ctx->inputs[0];
av_get_channel_layout_string(args, sizeof(args), -1, outlink->channel_layout);
av_log(NULL, AV_LOG_INFO, "Output: srate:%dHz fmt:%s chlayout:%s\n",
(int)outlink->sample_rate,
(char *)av_x_if_null(av_get_sample_fmt_name(outlink->format), "?"),
args);
return 0;
}
static void print_samplesref(AVFilterBufferRef *samplesref)
{
const AVFilterBufferRefAudioProps *props = samplesref->audio;
const int n = props->nb_samples * av_get_channel_layout_nb_channels(props->channel_layout);
const uint16_t *p = (uint16_t*)samplesref->data[0];
const uint16_t *p_end = p + n;
while (p < p_end) {
fputc(*p & 0xff, stdout);
fputc(*p>>8 & 0xff, stdout);
p++;
}
fflush(stdout);
}
int main(int argc, char **argv)
{
int ret;
AVPacket packet;
AVFrame frame;
int got_frame;
if (argc != 2) {
fprintf(stderr, "Usage: %s file | %s\n", argv[0], player);
exit(1);
}
avcodec_register_all();
av_register_all();
avfilter_register_all();
if ((ret = open_input_file(argv[1])) < 0)
goto end;
if ((ret = init_filters(filter_descr)) < 0)
goto end;
/* read all packets */
while (1) {
AVFilterBufferRef *samplesref;
if ((ret = av_read_frame(fmt_ctx, &packet)) < 0)
break;
if (packet.stream_index == audio_stream_index) {
avcodec_get_frame_defaults(&frame);
got_frame = 0;
ret = avcodec_decode_audio4(dec_ctx, &frame, &got_frame, &packet);
av_free_packet(&packet);
if (ret < 0) {
av_log(NULL, AV_LOG_ERROR, "Error decoding audio\n");
continue;
}
if (got_frame) {
/* push the audio data from decoded frame into the filtergraph */
if (av_buffersrc_add_frame(buffersrc_ctx, &frame, 0) < 0) {
av_log(NULL, AV_LOG_ERROR, "Error while feeding the audio filtergraph\n");
break;
}
/* pull filtered audio from the filtergraph */
while (avfilter_poll_frame(buffersink_ctx->inputs[0])) {
av_buffersink_get_buffer_ref(buffersink_ctx, &samplesref, 0);
if (samplesref) {
print_samplesref(samplesref);
avfilter_unref_buffer(samplesref);
}
}
}
}
}
end:
avfilter_graph_free(&filter_graph);
if (dec_ctx)
avcodec_close(dec_ctx);
avformat_close_input(&fmt_ctx);
if (ret < 0 && ret != AVERROR_EOF) {
char buf[1024];
av_strerror(ret, buf, sizeof(buf));
fprintf(stderr, "Error occurred: %s\n", buf);
exit(1);
}
exit(0);
}
@@ -27,11 +27,13 @@
*/
#define _XOPEN_SOURCE 600 /* for usleep */
#include <unistd.h>
#include <libavcodec/avcodec.h>
#include <libavformat/avformat.h>
#include <libavfilter/avfiltergraph.h>
#include <libavfilter/vsrc_buffer.h>
#include <libavfilter/avcodec.h>
#include <libavfilter/buffersink.h>
const char *filter_descr = "scale=78:24";
@@ -45,7 +47,7 @@ static int64_t last_pts = AV_NOPTS_VALUE;
static int open_input_file(const char *filename)
{
int ret, i;
int ret;
AVCodec *dec;
if ((ret = avformat_open_input(&fmt_ctx, filename, NULL, NULL)) < 0) {
@@ -53,7 +55,7 @@ static int open_input_file(const char *filename)
return ret;
}
if ((ret = av_find_stream_info(fmt_ctx)) < 0) {
if ((ret = avformat_find_stream_info(fmt_ctx, NULL)) < 0) {
av_log(NULL, AV_LOG_ERROR, "Cannot find stream information\n");
return ret;
}
@@ -68,7 +70,7 @@ static int open_input_file(const char *filename)
dec_ctx = fmt_ctx->streams[video_stream_index]->codec;
/* init the video decoder */
if ((ret = avcodec_open(dec_ctx, dec)) < 0) {
if ((ret = avcodec_open2(dec_ctx, dec, NULL)) < 0) {
av_log(NULL, AV_LOG_ERROR, "Cannot open video decoder\n");
return ret;
}
@@ -118,12 +120,13 @@ static int init_filters(const char *filters_descr)
inputs->pad_idx = 0;
inputs->next = NULL;
if ((ret = avfilter_graph_parse(filter_graph, filter_descr,
if ((ret = avfilter_graph_parse(filter_graph, filters_descr,
&inputs, &outputs, NULL)) < 0)
return ret;
if ((ret = avfilter_graph_config(filter_graph, NULL)) < 0)
return ret;
return 0;
}
static void display_picref(AVFilterBufferRef *picref, AVRational time_base)
@@ -195,15 +198,14 @@ int main(int argc, char **argv)
}
if (got_frame) {
if (frame.pts == AV_NOPTS_VALUE)
frame.pts = frame.pkt_dts == AV_NOPTS_VALUE ?
frame.pkt_dts : frame.pkt_pts;
frame.pts = av_frame_get_best_effort_timestamp(&frame);
/* push the decoded frame into the filtergraph */
av_vsrc_buffer_add_frame(buffersrc_ctx, &frame);
av_vsrc_buffer_add_frame(buffersrc_ctx, &frame, 0);
/* pull filtered pictures from the filtergraph */
while (avfilter_poll_frame(buffersink_ctx->inputs[0])) {
av_vsink_buffer_get_video_buffer_ref(buffersink_ctx, &picref, 0);
av_buffersink_get_buffer_ref(buffersink_ctx, &picref, 0);
if (picref) {
display_picref(picref, buffersink_ctx->inputs[0]->time_base);
avfilter_unref_buffer(picref);
@@ -216,7 +218,7 @@ end:
avfilter_graph_free(&filter_graph);
if (dec_ctx)
avcodec_close(dec_ctx);
av_close_input_file(fmt_ctx);
avformat_close_input(&fmt_ctx);
if (ret < 0 && ret != AVERROR_EOF) {
char buf[1024];
+1 -1
View File
@@ -50,6 +50,6 @@ int main (int argc, char **argv)
while ((tag = av_dict_get(fmt_ctx->metadata, "", tag, AV_DICT_IGNORE_SUFFIX)))
printf("%s=%s\n", tag->key, tag->value);
avformat_free_context(fmt_ctx);
avformat_close_input(&fmt_ctx);
return 0;
}
+132 -143
View File
@@ -33,9 +33,9 @@
#include <string.h>
#include <math.h>
#include "libavutil/mathematics.h"
#include "libavformat/avformat.h"
#include "libswscale/swscale.h"
#include <libavutil/mathematics.h>
#include <libavformat/avformat.h>
#include <libswscale/swscale.h>
#undef exit
@@ -43,7 +43,7 @@
#define STREAM_DURATION 200.0
#define STREAM_FRAME_RATE 25 /* 25 images/s */
#define STREAM_NB_FRAMES ((int)(STREAM_DURATION * STREAM_FRAME_RATE))
#define STREAM_PIX_FMT PIX_FMT_YUV420P /* default pix_fmt */
#define STREAM_PIX_FMT PIX_FMT_YUV420P /* default pix_fmt */
static int sws_flags = SWS_BICUBIC;
@@ -52,8 +52,6 @@ static int sws_flags = SWS_BICUBIC;
static float t, tincr, tincr2;
static int16_t *samples;
static uint8_t *audio_outbuf;
static int audio_outbuf_size;
static int audio_input_frame_size;
/*
@@ -63,8 +61,16 @@ static AVStream *add_audio_stream(AVFormatContext *oc, enum CodecID codec_id)
{
AVCodecContext *c;
AVStream *st;
AVCodec *codec;
st = avformat_new_stream(oc, NULL);
/* find the audio encoder */
codec = avcodec_find_encoder(codec_id);
if (!codec) {
fprintf(stderr, "codec not found\n");
exit(1);
}
st = avformat_new_stream(oc, codec);
if (!st) {
fprintf(stderr, "Could not alloc stream\n");
exit(1);
@@ -72,14 +78,12 @@ static AVStream *add_audio_stream(AVFormatContext *oc, enum CodecID codec_id)
st->id = 1;
c = st->codec;
c->codec_id = codec_id;
c->codec_type = AVMEDIA_TYPE_AUDIO;
/* put sample parameters */
c->sample_fmt = AV_SAMPLE_FMT_S16;
c->bit_rate = 64000;
c->sample_fmt = AV_SAMPLE_FMT_S16;
c->bit_rate = 64000;
c->sample_rate = 44100;
c->channels = 2;
c->channels = 2;
// some formats want stream headers to be separate
if (oc->oformat->flags & AVFMT_GLOBALHEADER)
@@ -91,54 +95,32 @@ static AVStream *add_audio_stream(AVFormatContext *oc, enum CodecID codec_id)
static void open_audio(AVFormatContext *oc, AVStream *st)
{
AVCodecContext *c;
AVCodec *codec;
c = st->codec;
/* find the audio encoder */
codec = avcodec_find_encoder(c->codec_id);
if (!codec) {
fprintf(stderr, "codec not found\n");
exit(1);
}
/* open it */
if (avcodec_open(c, codec) < 0) {
if (avcodec_open2(c, NULL, NULL) < 0) {
fprintf(stderr, "could not open codec\n");
exit(1);
}
/* init signal generator */
t = 0;
t = 0;
tincr = 2 * M_PI * 110.0 / c->sample_rate;
/* increment frequency by 110 Hz per second */
tincr2 = 2 * M_PI * 110.0 / c->sample_rate / c->sample_rate;
audio_outbuf_size = 10000;
audio_outbuf = av_malloc(audio_outbuf_size);
/* ugly hack for PCM codecs (will be removed ASAP with new PCM
support to compute the input frame size in samples */
if (c->frame_size <= 1) {
audio_input_frame_size = audio_outbuf_size / c->channels;
switch(st->codec->codec_id) {
case CODEC_ID_PCM_S16LE:
case CODEC_ID_PCM_S16BE:
case CODEC_ID_PCM_U16LE:
case CODEC_ID_PCM_U16BE:
audio_input_frame_size >>= 1;
break;
default:
break;
}
} else {
if (c->codec->capabilities & CODEC_CAP_VARIABLE_FRAME_SIZE)
audio_input_frame_size = 10000;
else
audio_input_frame_size = c->frame_size;
}
samples = av_malloc(audio_input_frame_size * 2 * c->channels);
samples = av_malloc(audio_input_frame_size *
av_get_bytes_per_sample(c->sample_fmt) *
c->channels);
}
/* prepare a 16 bit dummy audio frame of 'frame_size' samples and
'nb_channels' channels */
/* Prepare a 16 bit dummy audio frame of 'frame_size' samples and
* 'nb_channels' channels. */
static void get_audio_frame(int16_t *samples, int frame_size, int nb_channels)
{
int j, i, v;
@@ -147,9 +129,9 @@ static void get_audio_frame(int16_t *samples, int frame_size, int nb_channels)
q = samples;
for (j = 0; j < frame_size; j++) {
v = (int)(sin(t) * 10000);
for(i = 0; i < nb_channels; i++)
for (i = 0; i < nb_channels; i++)
*q++ = v;
t += tincr;
t += tincr;
tincr += tincr2;
}
}
@@ -157,22 +139,28 @@ static void get_audio_frame(int16_t *samples, int frame_size, int nb_channels)
static void write_audio_frame(AVFormatContext *oc, AVStream *st)
{
AVCodecContext *c;
AVPacket pkt;
av_init_packet(&pkt);
AVPacket pkt = { 0 }; // data and size must be 0;
AVFrame *frame = avcodec_alloc_frame();
int got_packet;
av_init_packet(&pkt);
c = st->codec;
get_audio_frame(samples, audio_input_frame_size, c->channels);
frame->nb_samples = audio_input_frame_size;
avcodec_fill_audio_frame(frame, c->channels, c->sample_fmt,
(uint8_t *)samples,
audio_input_frame_size *
av_get_bytes_per_sample(c->sample_fmt) *
c->channels, 1);
pkt.size = avcodec_encode_audio(c, audio_outbuf, audio_outbuf_size, samples);
avcodec_encode_audio2(c, &pkt, frame, &got_packet);
if (!got_packet)
return;
if (c->coded_frame && c->coded_frame->pts != AV_NOPTS_VALUE)
pkt.pts= av_rescale_q(c->coded_frame->pts, c->time_base, st->time_base);
pkt.flags |= AV_PKT_FLAG_KEY;
pkt.stream_index = st->index;
pkt.data = audio_outbuf;
/* write the compressed frame in the media file */
/* Write the compressed frame to the media file. */
if (av_interleaved_write_frame(oc, &pkt) != 0) {
fprintf(stderr, "Error while writing audio frame\n");
exit(1);
@@ -184,7 +172,6 @@ static void close_audio(AVFormatContext *oc, AVStream *st)
avcodec_close(st->codec);
av_free(samples);
av_free(audio_outbuf);
}
/**************************************************************/
@@ -194,14 +181,21 @@ static AVFrame *picture, *tmp_picture;
static uint8_t *video_outbuf;
static int frame_count, video_outbuf_size;
/* add a video output stream */
/* Add a video output stream. */
static AVStream *add_video_stream(AVFormatContext *oc, enum CodecID codec_id)
{
AVCodecContext *c;
AVStream *st;
AVCodec *codec;
st = avformat_new_stream(oc, NULL);
/* find the video encoder */
codec = avcodec_find_encoder(codec_id);
if (!codec) {
fprintf(stderr, "codec not found\n");
exit(1);
}
st = avformat_new_stream(oc, codec);
if (!st) {
fprintf(stderr, "Could not alloc stream\n");
exit(1);
@@ -219,30 +213,30 @@ static AVStream *add_video_stream(AVFormatContext *oc, enum CodecID codec_id)
c->codec_id = codec_id;
/* put sample parameters */
/* Put sample parameters. */
c->bit_rate = 400000;
/* resolution must be a multiple of two */
c->width = 352;
c->height = 288;
/* time base: this is the fundamental unit of time (in seconds) in terms
of which frame timestamps are represented. for fixed-fps content,
timebase should be 1/framerate and timestamp increments should be
identically 1. */
/* Resolution must be a multiple of two. */
c->width = 352;
c->height = 288;
/* timebase: This is the fundamental unit of time (in seconds) in terms
* of which frame timestamps are represented. For fixed-fps content,
* timebase should be 1/framerate and timestamp increments should be
* identical to 1. */
c->time_base.den = STREAM_FRAME_RATE;
c->time_base.num = 1;
c->gop_size = 12; /* emit one intra frame every twelve frames at most */
c->pix_fmt = STREAM_PIX_FMT;
c->gop_size = 12; /* emit one intra frame every twelve frames at most */
c->pix_fmt = STREAM_PIX_FMT;
if (c->codec_id == CODEC_ID_MPEG2VIDEO) {
/* just for testing, we also add B frames */
c->max_b_frames = 2;
}
if (c->codec_id == CODEC_ID_MPEG1VIDEO){
if (c->codec_id == CODEC_ID_MPEG1VIDEO) {
/* Needed to avoid using macroblocks in which some coeffs overflow.
This does not happen with normal video, it just happens here as
the motion of the chroma plane does not match the luma plane. */
c->mb_decision=2;
* This does not happen with normal video, it just happens here as
* the motion of the chroma plane does not match the luma plane. */
c->mb_decision = 2;
}
// some formats want stream headers to be separate
/* Some formats want stream headers to be separate. */
if (oc->oformat->flags & AVFMT_GLOBALHEADER)
c->flags |= CODEC_FLAG_GLOBAL_HEADER;
@@ -258,7 +252,7 @@ static AVFrame *alloc_picture(enum PixelFormat pix_fmt, int width, int height)
picture = avcodec_alloc_frame();
if (!picture)
return NULL;
size = avpicture_get_size(pix_fmt, width, height);
size = avpicture_get_size(pix_fmt, width, height);
picture_buf = av_malloc(size);
if (!picture_buf) {
av_free(picture);
@@ -271,46 +265,38 @@ static AVFrame *alloc_picture(enum PixelFormat pix_fmt, int width, int height)
static void open_video(AVFormatContext *oc, AVStream *st)
{
AVCodec *codec;
AVCodecContext *c;
c = st->codec;
/* find the video encoder */
codec = avcodec_find_encoder(c->codec_id);
if (!codec) {
fprintf(stderr, "codec not found\n");
exit(1);
}
/* open the codec */
if (avcodec_open(c, codec) < 0) {
if (avcodec_open2(c, NULL, NULL) < 0) {
fprintf(stderr, "could not open codec\n");
exit(1);
}
video_outbuf = NULL;
if (!(oc->oformat->flags & AVFMT_RAWPICTURE)) {
/* allocate output buffer */
/* XXX: API change will be done */
/* buffers passed into lav* can be allocated any way you prefer,
as long as they're aligned enough for the architecture, and
they're freed appropriately (such as using av_free for buffers
allocated with av_malloc) */
/* Allocate output buffer. */
/* XXX: API change will be done. */
/* Buffers passed into lav* can be allocated any way you prefer,
* as long as they're aligned enough for the architecture, and
* they're freed appropriately (such as using av_free for buffers
* allocated with av_malloc). */
video_outbuf_size = 200000;
video_outbuf = av_malloc(video_outbuf_size);
video_outbuf = av_malloc(video_outbuf_size);
}
/* allocate the encoded raw picture */
/* Allocate the encoded raw picture. */
picture = alloc_picture(c->pix_fmt, c->width, c->height);
if (!picture) {
fprintf(stderr, "Could not allocate picture\n");
exit(1);
}
/* if the output format is not YUV420P, then a temporary YUV420P
picture is needed too. It is then converted to the required
output format */
/* If the output format is not YUV420P, then a temporary YUV420P
* picture is needed too. It is then converted to the required
* output format. */
tmp_picture = NULL;
if (c->pix_fmt != PIX_FMT_YUV420P) {
tmp_picture = alloc_picture(PIX_FMT_YUV420P, c->width, c->height);
@@ -321,23 +307,22 @@ static void open_video(AVFormatContext *oc, AVStream *st)
}
}
/* prepare a dummy image */
static void fill_yuv_image(AVFrame *pict, int frame_index, int width, int height)
/* Prepare a dummy image. */
static void fill_yuv_image(AVFrame *pict, int frame_index,
int width, int height)
{
int x, y, i;
i = frame_index;
/* Y */
for (y = 0; y < height; y++) {
for (x = 0; x < width; x++) {
for (y = 0; y < height; y++)
for (x = 0; x < width; x++)
pict->data[0][y * pict->linesize[0] + x] = x + y + i * 3;
}
}
/* Cb and Cr */
for (y = 0; y < height/2; y++) {
for (x = 0; x < width/2; x++) {
for (y = 0; y < height / 2; y++) {
for (x = 0; x < width / 2; x++) {
pict->data[1][y * pict->linesize[1] + x] = 128 + y + i * 2;
pict->data[2][y * pict->linesize[2] + x] = 64 + x + i * 5;
}
@@ -353,13 +338,13 @@ static void write_video_frame(AVFormatContext *oc, AVStream *st)
c = st->codec;
if (frame_count >= STREAM_NB_FRAMES) {
/* no more frame to compress. The codec has a latency of a few
frames if using B frames, so we get the last frames by
passing the same picture again */
/* No more frames to compress. The codec has a latency of a few
* frames if using B-frames, so we get the last frames by
* passing the same picture again. */
} else {
if (c->pix_fmt != PIX_FMT_YUV420P) {
/* as we only generate a YUV420P picture, we must convert it
to the codec pixel format if needed */
* to the codec pixel format if needed */
if (img_convert_ctx == NULL) {
img_convert_ctx = sws_getContext(c->width, c->height,
PIX_FMT_YUV420P,
@@ -367,7 +352,8 @@ static void write_video_frame(AVFormatContext *oc, AVStream *st)
c->pix_fmt,
sws_flags, NULL, NULL, NULL);
if (img_convert_ctx == NULL) {
fprintf(stderr, "Cannot initialize the conversion context\n");
fprintf(stderr,
"Cannot initialize the conversion context\n");
exit(1);
}
}
@@ -379,36 +365,38 @@ static void write_video_frame(AVFormatContext *oc, AVStream *st)
}
}
if (oc->oformat->flags & AVFMT_RAWPICTURE) {
/* raw video case. The API will change slightly in the near
future for that. */
/* Raw video case - the API will change slightly in the near
* future for that. */
AVPacket pkt;
av_init_packet(&pkt);
pkt.flags |= AV_PKT_FLAG_KEY;
pkt.stream_index = st->index;
pkt.data = (uint8_t *)picture;
pkt.size = sizeof(AVPicture);
pkt.flags |= AV_PKT_FLAG_KEY;
pkt.stream_index = st->index;
pkt.data = (uint8_t *)picture;
pkt.size = sizeof(AVPicture);
ret = av_interleaved_write_frame(oc, &pkt);
} else {
/* encode the image */
out_size = avcodec_encode_video(c, video_outbuf, video_outbuf_size, picture);
/* if zero size, it means the image was buffered */
out_size = avcodec_encode_video(c, video_outbuf,
video_outbuf_size, picture);
/* If size is zero, it means the image was buffered. */
if (out_size > 0) {
AVPacket pkt;
av_init_packet(&pkt);
if (c->coded_frame->pts != AV_NOPTS_VALUE)
pkt.pts= av_rescale_q(c->coded_frame->pts, c->time_base, st->time_base);
if(c->coded_frame->key_frame)
pkt.pts = av_rescale_q(c->coded_frame->pts,
c->time_base, st->time_base);
if (c->coded_frame->key_frame)
pkt.flags |= AV_PKT_FLAG_KEY;
pkt.stream_index = st->index;
pkt.data = video_outbuf;
pkt.size = out_size;
/* write the compressed frame in the media file */
pkt.stream_index = st->index;
pkt.data = video_outbuf;
pkt.size = out_size;
/* Write the compressed frame to the media file. */
ret = av_interleaved_write_frame(oc, &pkt);
} else {
ret = 0;
@@ -445,7 +433,7 @@ int main(int argc, char **argv)
double audio_pts, video_pts;
int i;
/* initialize libavcodec, and register all codecs and formats */
/* Initialize libavcodec, and register all codecs and formats. */
av_register_all();
if (argc != 2) {
@@ -470,8 +458,8 @@ int main(int argc, char **argv)
}
fmt = oc->oformat;
/* add the audio and video streams using the default format codecs
and initialize the codecs */
/* Add the audio and video streams using the default format codecs
* and initialize the codecs. */
video_st = NULL;
audio_st = NULL;
if (fmt->video_codec != CODEC_ID_NONE) {
@@ -481,15 +469,15 @@ int main(int argc, char **argv)
audio_st = add_audio_stream(oc, fmt->audio_codec);
}
av_dump_format(oc, 0, filename, 1);
/* now that all the parameters are set, we can open the audio and
video codecs and allocate the necessary encode buffers */
/* Now that all the parameters are set, we can open the audio and
* video codecs and allocate the necessary encode buffers. */
if (video_st)
open_video(oc, video_st);
if (audio_st)
open_audio(oc, audio_st);
av_dump_format(oc, 0, filename, 1);
/* open the output file, if needed */
if (!(fmt->flags & AVFMT_NOFILE)) {
if (avio_open(&oc->pb, filename, AVIO_FLAG_WRITE) < 0) {
@@ -498,18 +486,20 @@ int main(int argc, char **argv)
}
}
/* write the stream header, if any */
av_write_header(oc);
/* Write the stream header, if any. */
avformat_write_header(oc, NULL);
picture->pts = 0;
for(;;) {
/* compute current audio and video time */
for (;;) {
/* Compute current audio and video time. */
if (audio_st)
audio_pts = (double)audio_st->pts.val * audio_st->time_base.num / audio_st->time_base.den;
else
audio_pts = 0.0;
if (video_st)
video_pts = (double)video_st->pts.val * video_st->time_base.num / video_st->time_base.den;
video_pts = (double)video_st->pts.val * video_st->time_base.num /
video_st->time_base.den;
else
video_pts = 0.0;
@@ -526,28 +516,27 @@ int main(int argc, char **argv)
}
}
/* write the trailer, if any. the trailer must be written
* before you close the CodecContexts open when you wrote the
* header; otherwise write_trailer may try to use memory that
* was freed on av_codec_close() */
/* Write the trailer, if any. The trailer must be written before you
* close the CodecContexts open when you wrote the header; otherwise
* av_write_trailer() may try to use memory that was freed on
* av_codec_close(). */
av_write_trailer(oc);
/* close each codec */
/* Close each codec. */
if (video_st)
close_video(oc, video_st);
if (audio_st)
close_audio(oc, audio_st);
/* free the streams */
for(i = 0; i < oc->nb_streams; i++) {
/* Free the streams. */
for (i = 0; i < oc->nb_streams; i++) {
av_freep(&oc->streams[i]->codec);
av_freep(&oc->streams[i]);
}
if (!(fmt->flags & AVFMT_NOFILE)) {
/* close the output file */
if (!(fmt->flags & AVFMT_NOFILE))
/* Close the output file. */
avio_close(oc->pb);
}
/* free the stream */
av_free(oc);
+3 -1
View File
@@ -166,9 +166,11 @@ the synchronisation of the samples directory.
@item THREADS
Specify how many threads to use while running regression tests, it is
quite useful to detect thread-related regressions.
@item CPUFLAGS
Specify CPU flags.
@end table
Example:
@example
make V=1 SAMPLES=/var/fate/samples THREADS=2 fate
make V=1 SAMPLES=/var/fate/samples THREADS=2 CPUFLAGS=mmx fate
@end example
File diff suppressed because it is too large Load Diff
+156 -307
View File
@@ -143,7 +143,7 @@ Stop writing the output after its duration reaches @var{duration}.
@var{duration} may be a number in seconds, or in @code{hh:mm:ss[.xxx]} form.
@item -fs @var{limit_size} (@emph{output})
Set the file size limit.
Set the file size limit, expressed in bytes.
@item -ss @var{position} (@emph{input/output})
When used as an input option (before @code{-i}), seeks in this input file to
@@ -164,7 +164,7 @@ streams are delayed by @var{offset} seconds.
Set the recording timestamp in the container.
The syntax for @var{time} is:
@example
now|([(YYYY-MM-DD|YYYYMMDD)[T|t| ]]((HH[:MM[:SS[.m...]]])|(HH[MM[SS[.m...]]]))[Z|z])
now|([(YYYY-MM-DD|YYYYMMDD)[T|t| ]]((HH:MM:SS[.m...])|(HHMMSS[.m...]))[Z|z])
@end example
If the value is "now" it takes the current time.
Time is local time unless 'Z' or 'z' is appended, in which case it is
@@ -224,12 +224,23 @@ codec-dependent.
@var{filter_graph} is a description of the filter graph to apply to
the stream. Use @code{-filters} to show all the available filters
(including also sources and sinks).
See also the @option{-filter_complex} option if you want to create filter graphs
with multiple inputs and/or outputs.
@item -pre[:@var{stream_specifier}] @var{preset_name} (@emph{output,per-stream})
Specify the preset for matching stream(s).
@item -stats (@emph{global})
Print encoding progress/statistics. On by default.
@item -debug_ts (@emph{global})
Print timestamp information. It is off by default. This option is
mostly useful for testing and debugging purposes, and the output
format may change from one version to another, so it should not be
employed by portable scripts.
See also the option @code{-fdebug ts}.
@item -attach @var{filename} (@emph{output})
Add an attachment to the output file. This is supported by a few formats
like Matroska for e.g. fonts used in rendering subtitles. Attachments
@@ -271,70 +282,10 @@ attachments.
@item -vframes @var{number} (@emph{output})
Set the number of video frames to record. This is an alias for @code{-frames:v}.
@item -r[:@var{stream_specifier}] @var{fps} (@emph{input/output,per-stream})
Set frame rate (Hz value, fraction or abbreviation), (default = 25).
Set frame rate (Hz value, fraction or abbreviation), (default = 25). For output
streams implies @code{-vsync cfr}.
@item -s[:@var{stream_specifier}] @var{size} (@emph{input/output,per-stream})
Set frame size. The format is @samp{wxh} (default - same as source).
The following abbreviations are recognized:
@table @samp
@item sqcif
128x96
@item qcif
176x144
@item cif
352x288
@item 4cif
704x576
@item 16cif
1408x1152
@item qqvga
160x120
@item qvga
320x240
@item vga
640x480
@item svga
800x600
@item xga
1024x768
@item uxga
1600x1200
@item qxga
2048x1536
@item sxga
1280x1024
@item qsxga
2560x2048
@item hsxga
5120x4096
@item wvga
852x480
@item wxga
1366x768
@item wsxga
1600x1024
@item wuxga
1920x1200
@item woxga
2560x1600
@item wqsxga
3200x2048
@item wquxga
3840x2400
@item whsxga
6400x4096
@item whuxga
7680x4800
@item cga
320x200
@item ega
640x350
@item hd480
852x480
@item hd720
1280x720
@item hd1080
1920x1080
@end table
@item -aspect[:@var{stream_specifier}] @var{aspect} (@emph{output,per-stream})
Set the video display aspect ratio specified by @var{aspect}.
@@ -361,25 +312,7 @@ pad=width:height:x:y:color instead.
@item -vn (@emph{output})
Disable video recording.
@item -bt @var{tolerance}
Set video bitrate tolerance (in bits, default 4000k).
Has a minimum value of: (target_bitrate/target_framerate).
In 1-pass mode, bitrate tolerance specifies how far ratecontrol is
willing to deviate from the target average bitrate value. This is
not related to min/max bitrate. Lowering tolerance too much has
an adverse effect on quality.
@item -maxrate @var{bitrate}
Set max video bitrate (in bit/s).
Requires -bufsize to be set.
@item -minrate @var{bitrate}
Set min video bitrate (in bit/s).
Most useful in setting up a CBR encode:
@example
ffmpeg -i myfile.avi -b:v 4000k -minrate 4000k -maxrate 4000k -bufsize 1835k out.m2v
@end example
It is of little use elsewise.
@item -bufsize @var{size}
Set video buffer verifier buffer size (in bits).
@item -vcodec @var{codec} (@emph{output})
Set the video codec. This is an alias for @code{-codec:v}.
@item -same_quant
@@ -424,202 +357,29 @@ also sources and sinks). This is an alias for @code{-filter:v}.
@item -pix_fmt[:@var{stream_specifier}] @var{format} (@emph{input/output,per-stream})
Set pixel format. Use @code{-pix_fmts} to show all the supported
pixel formats.
If the selected pixel format can not be selected, ffmpeg will print a
warning and select the best pixel format supported by the encoder.
If @var{pix_fmt} is prefixed by a @code{+}, ffmpeg will exit with an error
if the requested pixel format can not be selected, and automatic conversions
inside filter graphs are disabled.
If @var{pix_fmt} is a single @code{+}, ffmpeg selects the same pixel format
as the input (or graph output) and automatic conversions are disabled.
@item -sws_flags @var{flags} (@emph{input/output})
Set SwScaler flags.
@item -g @var{gop_size}
Set the group of pictures size.
@item -intra
deprecated, use -g 1
@item -vdt @var{n}
Discard threshold.
@item -qmin @var{q}
minimum video quantizer scale (VBR)
@item -qmax @var{q}
maximum video quantizer scale (VBR)
@item -qdiff @var{q}
maximum difference between the quantizer scales (VBR)
@item -qblur @var{blur}
video quantizer scale blur (VBR) (range 0.0 - 1.0)
@item -qcomp @var{compression}
video quantizer scale compression (VBR) (default 0.5).
Constant of ratecontrol equation. Recommended range for default rc_eq: 0.0-1.0
@item -lmin @var{lambda}
minimum video lagrange factor (VBR)
@item -lmax @var{lambda}
max video lagrange factor (VBR)
@item -mblmin @var{lambda}
minimum macroblock quantizer scale (VBR)
@item -mblmax @var{lambda}
maximum macroblock quantizer scale (VBR)
These four options (lmin, lmax, mblmin, mblmax) use 'lambda' units,
but you may use the QP2LAMBDA constant to easily convert from 'q' units:
@example
ffmpeg -i src.ext -lmax 21*QP2LAMBDA dst.ext
@end example
@item -rc_init_cplx @var{complexity}
initial complexity for single pass encoding
@item -b_qfactor @var{factor}
qp factor between P- and B-frames
@item -i_qfactor @var{factor}
qp factor between P- and I-frames
@item -b_qoffset @var{offset}
qp offset between P- and B-frames
@item -i_qoffset @var{offset}
qp offset between P- and I-frames
@item -rc_eq @var{equation}
Set rate control equation (see section "Expression Evaluation")
(default = @code{tex^qComp}).
When computing the rate control equation expression, besides the
standard functions defined in the section "Expression Evaluation", the
following functions are available:
@table @var
@item bits2qp(bits)
@item qp2bits(qp)
@end table
and the following constants are available:
@table @var
@item iTex
@item pTex
@item tex
@item mv
@item fCode
@item iCount
@item mcVar
@item var
@item isI
@item isP
@item isB
@item avgQP
@item qComp
@item avgIITex
@item avgPITex
@item avgPPTex
@item avgBPTex
@item avgTex
@end table
@item -rc_override[:@var{stream_specifier}] @var{override} (@emph{output,per-stream})
Rate control override for specific intervals, formatted as "int,int,int"
list separated with slashes. Two first values are the beginning and
end frame numbers, last one is quantizer to use if positive, or quality
factor if negative.
@item -me_method @var{method}
Set motion estimation method to @var{method}.
Available methods are (from lowest to best quality):
@table @samp
@item zero
Try just the (0, 0) vector.
@item phods
@item log
@item x1
@item hex
@item umh
@item epzs
(default method)
@item full
exhaustive search (slow and marginally better than epzs)
@end table
@item -dct_algo @var{algo}
Set DCT algorithm to @var{algo}. Available values are:
@table @samp
@item 0
FF_DCT_AUTO (default)
@item 1
FF_DCT_FASTINT
@item 2
FF_DCT_INT
@item 3
FF_DCT_MMX
@item 4
FF_DCT_MLIB
@item 5
FF_DCT_ALTIVEC
@end table
@item -idct_algo @var{algo}
Set IDCT algorithm to @var{algo}. Available values are:
@table @samp
@item 0
FF_IDCT_AUTO (default)
@item 1
FF_IDCT_INT
@item 2
FF_IDCT_SIMPLE
@item 3
FF_IDCT_SIMPLEMMX
@item 4
FF_IDCT_LIBMPEG2MMX
@item 5
FF_IDCT_PS2
@item 6
FF_IDCT_MLIB
@item 7
FF_IDCT_ARM
@item 8
FF_IDCT_ALTIVEC
@item 9
FF_IDCT_SH4
@item 10
FF_IDCT_SIMPLEARM
@end table
@item -er @var{n}
Set error resilience to @var{n}.
@table @samp
@item 1
FF_ER_CAREFUL (default)
@item 2
FF_ER_COMPLIANT
@item 3
FF_ER_AGGRESSIVE
@item 4
FF_ER_VERY_AGGRESSIVE
@end table
@item -ec @var{bit_mask}
Set error concealment to @var{bit_mask}. @var{bit_mask} is a bit mask of
the following values:
@table @samp
@item 1
FF_EC_GUESS_MVS (default = enabled)
@item 2
FF_EC_DEBLOCK (default = enabled)
@end table
@item -bf @var{frames}
Use 'frames' B-frames (supported for MPEG-1, MPEG-2 and MPEG-4).
@item -mbd @var{mode}
macroblock decision
@table @samp
@item 0
FF_MB_DECISION_SIMPLE: Use mb_cmp (cannot change it yet in ffmpeg).
@item 1
FF_MB_DECISION_BITS: Choose the one which needs the fewest bits.
@item 2
FF_MB_DECISION_RD: rate distortion
@end table
@item -4mv
Use four motion vector by macroblock (MPEG-4 only).
@item -part
Use data partitioning (MPEG-4 only).
@item -bug @var{param}
Work around encoder bugs that are not auto-detected.
@item -strict @var{strictness}
How strictly to follow the standards.
@item -aic
Enable Advanced intra coding (h263+).
@item -umv
Enable Unlimited Motion Vector (h263+)
@item -deinterlace
Deinterlace pictures.
This option is deprecated since the deinterlacing is very low quality.
Use the yadif filter with @code{-filter:v yadif}.
@item -ilme
Force interlacing support in encoder (MPEG-2 and MPEG-4 only).
Use this option if your input file is interlaced and you want
@@ -678,6 +438,11 @@ Set the audio codec. This is an alias for @code{-codec:a}.
@item -sample_fmt[:@var{stream_specifier}] @var{sample_fmt} (@emph{output,per-stream})
Set the audio sample format. Use @code{-sample_fmts} to get a list
of supported sample formats.
@item -af @var{filter_graph} (@emph{output})
@var{filter_graph} is a description of the filter graph to apply to
the input audio.
Use the option "-filters" to show all the available filters (including
also sources and sinks). This is an alias for @code{-filter:a}.
@end table
@section Advanced Audio options:
@@ -685,28 +450,6 @@ of supported sample formats.
@table @option
@item -atag @var{fourcc/tag} (@emph{output})
Force audio tag/fourcc. This is an alias for @code{-tag:a}.
@item -audio_service_type @var{type}
Set the type of service that the audio stream contains.
@table @option
@item ma
Main Audio Service (default)
@item ef
Effects
@item vi
Visually Impaired
@item hi
Hearing Impaired
@item di
Dialogue
@item co
Commentary
@item em
Emergency
@item vo
Voice Over
@item ka
Karaoke
@end table
@item -absf @var{bitstream_filter}
Deprecated, see -bsf
@end table
@@ -734,7 +477,7 @@ Synchronize read on input.
@section Advanced options
@table @option
@item -map [-]@var{input_file_id}[:@var{stream_specifier}][,@var{sync_file_id}[:@var{stream_specifier}]] (@emph{output})
@item -map [-]@var{input_file_id}[:@var{stream_specifier}][,@var{sync_file_id}[:@var{stream_specifier}]] | @var{[linklabel]} (@emph{output})
Designate one or more input streams as a source for the output file. Each input
stream is identified by the input file index @var{input_file_id} and
@@ -750,6 +493,10 @@ the source for output stream 1, etc.
A @code{-} character before the stream identifier creates a "negative" mapping.
It disables matching streams from already created mappings.
An alternative @var{[linklabel]} form will map outputs from complex filter
graphs (see the @option{-filter_complex} option) to the output file.
@var{linklabel} must correspond to a defined output link label in the graph.
For example, to map ALL streams from the first input file to output
@example
ffmpeg -i INPUT -map 0 output
@@ -787,7 +534,7 @@ Note that using this option disables the default mappings for this output file.
@item -map_channel [@var{input_file_id}.@var{stream_specifier}.@var{channel_id}|-1][:@var{output_file_id}.@var{stream_specifier}]
Map an audio channel from a given input to an output. If
@var{output_file_id}.@var{stream_specifier} are not set, the audio channel will
@var{output_file_id}.@var{stream_specifier} is not set, the audio channel will
be mapped on all the audio streams.
Using "-1" instead of
@@ -809,18 +556,18 @@ The order of the "-map_channel" option specifies the order of the channels in
the output stream. The output channel layout is guessed from the number of
channels mapped (mono if one "-map_channel", stereo if two, etc.). Using "-ac"
in combination of "-map_channel" makes the channel gain levels to be updated if
channel layouts don't match (for instance two "-map_channel" options and "-ac
6").
input and output channel layouts don't match (for instance two "-map_channel"
options and "-ac 6").
You can also extract each channel of an @var{INPUT} to specific outputs; the
following command extract each channel of the audio stream (file 0, stream 0)
to the respective @var{OUTPUT_CH0} and @var{OUTPUT_CH1}:
You can also extract each channel of an input to specific outputs; the following
command extracts two channels of the @var{INPUT} audio stream (file 0, stream 0)
to the respective @var{OUTPUT_CH0} and @var{OUTPUT_CH1} outputs:
@example
ffmpeg -i INPUT -map_channel 0.0.0 OUTPUT_CH0 -map_channel 0.0.1 OUTPUT_CH1
@end example
The following example split the channels of a stereo input into streams:
The following example splits the channels of a stereo input into two separate
streams, which are put into the same output file:
@example
ffmpeg -i stereo.wav -map 0:0 -map 0:0 -map_channel 0.0.0:0.0 -map_channel 0.0.1:0.1 -y out.ogg
@end example
@@ -830,9 +577,20 @@ input stream; you can't for example use "-map_channel" to pick multiple input
audio channels contained in different streams (from the same or different files)
and merge them into a single output stream. It is therefore not currently
possible, for example, to turn two separate mono streams into a single stereo
stream. However spliting a stereo stream into two single channel mono streams
stream. However splitting a stereo stream into two single channel mono streams
is possible.
If you need this feature, a possible workaround is to use the @emph{amerge}
filter. For example, if you need to merge a media (here @file{input.mkv}) with 2
mono audio streams into one single stereo channel audio stream (and keep the
video stream), you can use the following command:
@example
ffmpeg -i input.mkv -f lavfi -i "
amovie=input.mkv:si=1 [a1];
amovie=input.mkv:si=2 [a2];
[a1][a2] amerge" -c:a pcm_s16le -c:v copy output.mkv
@end example
@item -map_metadata[:@var{metadata_spec_out}] @var{infile}[:@var{metadata_spec_in}] (@emph{output,per-metadata})
Set metadata information of the next output file from @var{infile}. Note that
those are file indices (zero-based), not filenames.
@@ -917,14 +675,15 @@ Show benchmarking information at the end of an encode.
Shows CPU time used and maximum memory consumption.
Maximum memory consumption is not supported on all systems,
it will usually display as 0 if not supported.
@item -benchmark_all (@emph{global})
Show benchmarking information during the encode.
Shows CPU time used in various steps (audio/video encode/decode).
@item -timelimit @var{duration} (@emph{global})
Exit after ffmpeg has been running for @var{duration} seconds.
@item -dump (@emph{global})
Dump each input packet to stderr.
@item -hex (@emph{global})
When dumping packets, also dump the payload.
@item -ps @var{size}
Set RTP payload size in bytes.
@item -re (@emph{input})
Read input at native frame rate. Mainly used to simulate a grab device.
@item -loop_input
@@ -935,10 +694,10 @@ This option is deprecated, use -loop 1.
Repeatedly loop output for formats that support looping such as animated GIF
(0 will loop the output infinitely).
This option is deprecated, use -loop.
@item -threads @var{count}
Thread count.
@item -vsync @var{parameter}
Video sync method.
For compatibility reasons old values can be specified as numbers.
Newly added values will have to be specified as strings always.
@table @option
@item 0, passthrough
@@ -949,6 +708,9 @@ constant framerate.
@item 2, vfr
Frames are passed through with their timestamp or dropped so as to
prevent 2 frames from having the same timestamp.
@item drop
As passthrough but destroys all timestamps, making the muxer generate
fresh timestamps based on frame-rate.
@item -1, auto
Chooses between 1 and 2 depending on muxer capabilities. This is the
default method.
@@ -963,10 +725,33 @@ Audio sync method. "Stretches/squeezes" the audio stream to match the timestamps
the parameter is the maximum samples per second by which the audio is changed.
-async 1 is a special case where only the start of the audio stream is corrected
without any later correction.
This option has been deprecated. Use the @code{asyncts} audio filter instead.
@item -copyts
Copy timestamps from input to output.
@item -copytb
Copy input stream time base from input to output when stream copying.
@item -copytb @var{mode}
Specify how to set the encoder timebase when stream copying. @var{mode} is an
integer numeric value, and can assume one of the following values:
@table @option
@item 1
Use the demuxer timebase.
The time base is copied to the output encoder from the corresponding input
demuxer. This is sometimes required to avoid non monotonically increasing
timestamps when copying video streams with variable frame rate.
@item 0
Use the decoder timebase.
The time base is copied to the output encoder from the corresponding input
decoder.
@item -1
Try to make the choice automatically, in order to generate a sane output.
@end table
Default value is -1.
@item -shortest
Finish encoding when the shortest input stream ends.
@item -dts_delta_threshold
@@ -992,10 +777,10 @@ Set bitstream filters for matching streams. @var{bistream_filters} is
a comma-separated list of bitstream filters. Use the @code{-bsfs} option
to get the list of bitstream filters.
@example
ffmpeg -i h264.mp4 -c:v copy -vbsf h264_mp4toannexb -an out.h264
ffmpeg -i h264.mp4 -c:v copy -bsf:v h264_mp4toannexb -an out.h264
@end example
@example
ffmpeg -i file.mov -an -vn -sbsf mov2textsub -c:s copy -f rawvideo sub.txt
ffmpeg -i file.mov -an -vn -bsf:s mov2textsub -c:s copy -f rawvideo sub.txt
@end example
@item -tag[:@var{stream_specifier}] @var{codec_tag} (@emph{per-stream})
@@ -1007,6 +792,44 @@ Specify Timecode for writing. @var{SEP} is ':' for non drop timecode and ';'
@example
ffmpeg -i input.mpg -timecode 01:02:03.04 -r 30000/1001 -s ntsc output.mpg
@end example
@item -filter_complex @var{filtergraph} (@emph{global})
Define a complex filter graph, i.e. one with arbitrary number of inputs and/or
outputs. For simple graphs -- those with one input and one output of the same
type -- see the @option{-filter} options. @var{filtergraph} is a description of
the filter graph, as described in @ref{Filtergraph syntax}.
Input link labels must refer to input streams using the
@code{[file_index:stream_specifier]} syntax (i.e. the same as @option{-map}
uses). If @var{stream_specifier} matches multiple streams, the first one will be
used. An unlabeled input will be connected to the first unused input stream of
the matching type.
Output link labels are referred to with @option{-map}. Unlabeled outputs are
added to the first output file.
For example, to overlay an image over video
@example
ffmpeg -i video.mkv -i image.png -filter_complex '[0:v][1:v]overlay[out]' -map
'[out]' out.mkv
@end example
Here @code{[0:v]} refers to the first video stream in the first input file,
which is linked to the first (main) input of the overlay filter. Similarly the
first video stream in the second input is linked to the second (overlay) input
of overlay.
Assuming there is only one video stream in each input file, we can omit input
labels, so the above is equivalent to
@example
ffmpeg -i video.mkv -i image.png -filter_complex 'overlay[out]' -map
'[out]' out.mkv
@end example
Furthermore we can omit the output label and the single output from the filter
graph will be added to the output file automatically, so we can simply write
@example
ffmpeg -i video.mkv -i image.png -filter_complex 'overlay' out.mkv
@end example
@end table
@section Preset files
@@ -1068,7 +891,7 @@ frame rate or decrease the frame size.
@item
If your computer is not fast enough, you can speed up the
compression at the expense of the compression ratio. You can use
'-me zero' to speed up motion estimation, and '-intra' to disable
'-me zero' to speed up motion estimation, and '-g 0' to disable
motion estimation completely (you have only I-frames, which means it
is about as good as JPEG compression).
@@ -1257,6 +1080,18 @@ composed of three digits padded with zeroes to express the sequence
number. It is the same syntax supported by the C printf function, but
only formats accepting a normal integer are suitable.
When importing an image sequence, -i also supports expanding shell-like
wildcard patterns (globbing) internally. To lower the chance of interfering
with your actual file names and the shell's glob expansion, you are required
to activate glob meta characters by prefixing them with a single @code{%}
character, like in @code{foo-%*.jpeg}, @code{foo-%?%?%?.jpeg} or
@code{foo-00%[234%]%*.jpeg}.
If your filename actually contains a character sequence of a @code{%} character
followed by a glob character, you must double the @code{%} character to escape
it. Imagine your files begin with @code{%?-foo-}, then you could use a glob
pattern like @code{%%?-foo-%*.jpeg}. For input patterns that could be both a
printf or a glob pattern, ffmpeg will assume it is a glob pattern.
@item
You can put many streams of the same type in the output:
@@ -1267,9 +1102,23 @@ ffmpeg -i test1.avi -i test2.avi -map 0.3 -map 0.2 -map 0.1 -map 0.0 -c copy tes
The resulting output file @file{test12.avi} will contain first four streams from
the input file in reverse order.
@item
To force CBR video output:
@example
ffmpeg -i myfile.avi -b 4000k -minrate 4000k -maxrate 4000k -bufsize 1835k out.m2v
@end example
@item
The four options lmin, lmax, mblmin and mblmax use 'lambda' units,
but you may use the QP2LAMBDA constant to easily convert from 'q' units:
@example
ffmpeg -i src.ext -lmax 21*QP2LAMBDA dst.ext
@end example
@end itemize
@c man end EXAMPLES
@include syntax.texi
@include eval.texi
@include decoders.texi
@include encoders.texi
+1 -1
View File
@@ -29,7 +29,7 @@
\ / :
+======\======================/======+ ^ :
------> 0 | : source_index : st-:--- | : :
OuputFile output_files[] / +------------------------------------+ : :
OutputFile output_files[] / +------------------------------------+ : :
/ 1 | : : : | : :
^ +------+------------+-----+ / +------------------------------------+ : :
: | : ost_index -:-----:------/ 2 | : : : | : :
+1
View File
@@ -178,6 +178,7 @@ Seek to percentage in file corresponding to fraction of width.
@c man end
@include syntax.texi
@include eval.texi
@include decoders.texi
@include demuxers.texi
+43 -5
View File
@@ -106,6 +106,11 @@ stream.
All the container format information is printed within a section with
name "FORMAT".
@item -show_format_entry @var{name}
Like @option{-show_format}, but only prints the specified entry of the
container format information, rather than all. This option may be given more
than once, then all specified entries will be shown.
@item -show_packets
Show information about each packet contained in the input multimedia
stream.
@@ -127,6 +132,14 @@ multimedia stream.
Each media stream information is printed within a dedicated section
with name "STREAM".
@item -count_frames
Count the number of frames per stream and report it in the
corresponding stream section.
@item -count_packets
Count the number of packets per stream and report it in the
corresponding stream section.
@item -show_private_data, -private
Show private data, that is data depending on the format of the
particular shown element.
@@ -182,6 +195,22 @@ keyN=valN
Metadata tags are printed as a line in the corresponding FORMAT or
STREAM section, and are prefixed by the string "TAG:".
This writer accepts options as a list of @var{key}=@var{value} pairs,
separated by ":".
A description of the accepted options follows.
@table @option
@item nokey, nk
If set to 1 specify not to print the key of each field. Default value
is 0.
@item noprint_wrappers, nw
If set to 1 specify not to print the section header and footer.
Default value is 0.
@end table
@section compact
Compact format.
@@ -265,6 +294,10 @@ XML based format.
The XML output is described in the XML schema description file
@file{ffprobe.xsd} installed in the FFmpeg datadir.
An updated version of the schema can be retrieved at the url
@url{http://www.ffmpeg.org/schema/ffprobe.xsd}, which redirects to the
latest schema committed into the FFmpeg development source code tree.
Note that the output issued will be compliant to the
@file{ffprobe.xsd} schema only when no special global output options
(@option{unit}, @option{prefix}, @option{byte_binary_prefix},
@@ -291,26 +324,31 @@ This option automatically sets @option{fully_qualified} to 1.
For more information about the XML format, see
@url{http://www.w3.org/XML/}.
@c man end WRITERS
@chapter Timecode
@c man begin TIMECODE
@command{ffprobe} supports Timecode extraction:
@itemize
@item MPEG1/2 timecode is extracted from the GOP, and is available in the video
@item
MPEG1/2 timecode is extracted from the GOP, and is available in the video
stream details (@option{-show_streams}, see @var{timecode}).
@item MOV timecode is extracted from tmcd track, so is available in the tmcd
@item
MOV timecode is extracted from tmcd track, so is available in the tmcd
stream metadata (@option{-show_streams}, see @var{TAG:timecode}).
@item DV and GXF timecodes are available in format metadata
@item
DV and GXF timecodes are available in format metadata
(@option{-show_format}, see @var{TAG:timecode}).
@end itemize
@c man end TIMECODE
@c man end WRITERS
@include syntax.texi
@include decoders.texi
@include demuxers.texi
@include protocols.texi
+3
View File
@@ -110,7 +110,10 @@
<xsd:attribute name="time_base" type="xsd:string" use="required"/>
<xsd:attribute name="start_time" type="xsd:float"/>
<xsd:attribute name="duration" type="xsd:float"/>
<xsd:attribute name="bit_rate" type="xsd:int"/>
<xsd:attribute name="nb_frames" type="xsd:int"/>
<xsd:attribute name="nb_read_frames" type="xsd:int"/>
<xsd:attribute name="nb_read_packets" type="xsd:int"/>
</xsd:complexType>
<xsd:complexType name="formatType">
-2
View File
@@ -373,5 +373,3 @@ ACL allow 192.168.0.0 192.168.255.255
<Redirect index.html>
URL http://www.ffmpeg.org/
</Redirect>
+116
View File
@@ -0,0 +1,116 @@
Filter design
=============
This document explains guidelines that should be observed (or ignored with
good reason) when writing filters for libavfilter.
In this document, the word “frame” indicates either a video frame or a group
of audio samples, as stored in an AVFilterBuffer structure.
Format negotiation
==================
The query_formats method should set, for each input and each output links,
the list supported formats.
For video links, that means pixel format. For audio links, that means
channel layout, and sample format (the sample packing is implied by the
sample format).
The lists are not just lists, they are references to shared objects. When
the negotiation mechanism computes the intersection of the formats
supported at each ends of a link, all references to both lists are
replaced with a reference to the intersection. And when a single format is
eventually chosen for a link amongst the remaining list, again, all
references to the list are updated.
That means that if a filter requires that its input and output have the
same format amongst a supported list, all it have to do is use a reference
to the same list of formats.
Buffer references ownership and permissions
===========================================
TODO
Frame scheduling
================
The purpose of these rules is to ensure that frames flow in the filter
graph without getting stuck and accumulating somewhere.
Simple filters that output one frame for each input frame should not have
to worry about it.
start_frame / filter_samples
----------------------------
These methods are called when a frame is pushed to the filter's input.
They can be called at any time except in a reentrant way.
If the input frame is enough to produce output, then the filter should
push the output frames on the output link immediately.
As an exception to the previous rule, if the input frame is enough to
produce several output frames, then the filter needs output only at
least one per link. The additional frames can be left buffered in the
filter; these buffered frames must be flushed immediately if a new input
produces new output.
(Example: framerate-doubling filter: start_frame must (1) flush the
second copy of the previous frame, if it is still there, (2) push the
first copy of the incoming frame, (3) keep the second copy for later.)
If the input frame is not enough to produce output, the filter must not
call request_frame to get more. It must just process the frame or queue
it. The task of requesting more frames is left to the filter's
request_frame method or the application.
If a filter has several inputs, the filter must be ready for frames
arriving randomly on any input. Therefore, any filter with several input
will most likely require some kind of queuing mechanism. It is perfectly
acceptable to have a limited queue and to drop frames when the inputs
are too unbalanced.
request_frame
-------------
This method is called when a frame is wanted on an output.
For an input, it should directly call start_frame or filter_samples on
the corresponding output.
For a filter, if there are queued frames already ready, one of these
frames should be pushed. If not, the filter should request a frame on
one of its input, repeatedly until at least one frame has been pushed.
Return values:
if request_frame could produce a frame, it should return 0;
if it could not for temporary reasons, it should return AVERROR(EAGAIN);
if it could not because there are no more frames, it should return
AVERROR_EOF.
The typical implementation of request_frame for a filter with several
inputs will look like that:
if (frames_queued) {
push_one_frame();
return 0;
}
while (!frame_pushed) {
input = input_where_a_frame_is_most_needed();
ret = avfilter_request_frame(input);
if (ret == AVERROR_EOF) {
process_eof_on_input();
} else if (ret < 0) {
return ret;
}
}
return 0;
Note that, except for filters that can have queued frames, request_frame
does not push frames: it requests them to its input, and as a reaction,
the start_frame / filter_samples method will be called and do the work.
+583 -203
View File
File diff suppressed because it is too large Load Diff
+26 -7
View File
@@ -13,7 +13,8 @@
FFmpeg can be hooked up with a number of external libraries to add support
for more formats. None of them are used by default, their use has to be
explicitly requested by passing the appropriate flags to @file{./configure}.
explicitly requested by passing the appropriate flags to
@command{./configure}.
@section OpenJPEG
@@ -143,6 +144,8 @@ library:
@tab Multimedia format used by Delphine Software games.
@item CD+G @tab @tab X
@tab Video format used by CD+G karaoke disks
@item Commodore CDXL @tab @tab X
@tab Amiga CD video format
@item Core Audio Format @tab X @tab X
@tab Apple Core Audio Format
@item CRC testing format @tab X @tab
@@ -208,6 +211,7 @@ library:
@item MAXIS XA @tab @tab X
@tab Used in Sim City 3000; file extension .xa.
@item MD Studio @tab @tab X
@item Metal Gear Solid: The Twin Snakes @tab @tab X
@item Mobotix .mxg @tab @tab X
@item Monkey's Audio @tab @tab X
@item Motion Pixels MVI @tab @tab X
@@ -349,6 +353,7 @@ library:
@item eXtended BINary text (XBIN) @tab @tab X
@item YUV4MPEG pipe @tab X @tab X
@item Psygnosis YOP @tab @tab X
@item ZeroCodec Lossless Video @tab @tab X
@end multitable
@code{X} means that encoding (resp. decoding) is supported.
@@ -368,6 +373,8 @@ following image formats are supported:
@tab Microsoft BMP image
@item DPX @tab X @tab X
@tab Digital Picture Exchange
@item EXR @tab @tab X
@tab OpenEXR
@item JPEG @tab X @tab X
@tab Progressive JPEG is not supported.
@item JPEG 2000 @tab X @tab X
@@ -393,12 +400,14 @@ following image formats are supported:
@tab V.Flash PTX format
@item SGI @tab X @tab X
@tab SGI RGB image format
@item Sun Rasterfile @tab @tab X
@item Sun Rasterfile @tab X @tab X
@tab Sun RAS image format
@item TIFF @tab X @tab X
@tab YUV, JPEG and some extension is not supported yet.
@item Truevision Targa @tab X @tab X
@tab Targa (.TGA) image format
@item XBM @tab X @tab X
@tab X BitMap image format
@item XWD @tab X @tab X
@tab X Window Dump image format
@end multitable
@@ -444,6 +453,8 @@ following image formats are supported:
@tab fourcc: AVrp
@item AVS (Audio Video Standard) video @tab @tab X
@tab Video encoding used by the Creature Shock game.
@item AYUV @tab X @tab X
@tab Microsoft uncompressed packed 4:4:4:4
@item Beam Software VB @tab @tab X
@item Bethesda VID video @tab @tab X
@tab Used in some games from Bethesda Softworks.
@@ -458,6 +469,8 @@ following image formats are supported:
@tab fourcc: CSCD
@item CD+G @tab @tab X
@tab Video codec for CD+G karaoke disks
@item CDXL @tab @tab X
@tab Amiga CD video codec
@item Chinese AVS video @tab E @tab X
@tab AVS1-P2, JiZhun profile, encoding through external library libxavs
@item Delphine Software International CIN video @tab @tab X
@@ -470,7 +483,7 @@ following image formats are supported:
@item DFA @tab @tab X
@tab Codec used in Chronomaster game.
@item Dirac @tab E @tab X
@tab supported through external libdirac/libschroedinger libraries
@tab supported through external library libschroedinger
@item Deluxe Paint Animation @tab @tab X
@item DNxHD @tab X @tab X
@tab aka SMPTE VC3
@@ -491,12 +504,13 @@ following image formats are supported:
@item Escape 124 @tab @tab X
@item Escape 130 @tab @tab X
@item FFmpeg video codec #1 @tab X @tab X
@tab experimental lossless codec (fourcc: FFV1)
@tab lossless codec (fourcc: FFV1)
@item Flash Screen Video v1 @tab X @tab X
@tab fourcc: FSV1
@item Flash Screen Video v2 @tab X @tab X
@item Flash Video (FLV) @tab X @tab X
@tab Sorenson H.263 used in Flash
@item Forward Uncompressed @tab @tab X
@item Fraps @tab @tab X
@item H.261 @tab X @tab X
@item H.263 / H.263-1996 @tab X @tab X
@@ -612,6 +626,7 @@ following image formats are supported:
@item Ut Video @tab @tab X
@item v210 QuickTime uncompressed 4:2:2 10-bit @tab X @tab X
@item v308 QuickTime uncompressed 4:4:4 @tab X @tab X
@item v408 QuickTime uncompressed 4:4:4:4 @tab X @tab X
@item v410 QuickTime uncompressed 4:4:4 10-bit @tab X @tab X
@item VBLE Lossless Codec @tab @tab X
@item VMware Screen Codec / VMware Video @tab @tab X
@@ -781,6 +796,7 @@ following image formats are supported:
@tab Real 28800 bit/s codec
@item RealAudio 3.0 (dnet) @tab IX @tab X
@tab Real low bitrate AC-3 codec
@item RealAudio Lossless @tab @tab X
@item RealAudio SIPR / ACELP.NET @tab @tab X
@item Shorten @tab @tab X
@item Sierra VMD audio @tab @tab X
@@ -803,6 +819,7 @@ following image formats are supported:
@item Westwood Audio (SND1) @tab @tab X
@item Windows Media Audio 1 @tab X @tab X
@item Windows Media Audio 2 @tab X @tab X
@item Windows Media Audio Lossless @tab @tab X
@item Windows Media Audio Pro @tab @tab X
@item Windows Media Audio Voice @tab @tab X
@end multitable
@@ -821,7 +838,8 @@ performance on systems without hardware floating point support).
@item SSA/ASS @tab X @tab X @tab X @tab X
@item DVB @tab X @tab X @tab X @tab X
@item DVD @tab X @tab X @tab X @tab X
@item MicroDVD @tab X @tab X @tab @tab
@item JACOsub @tab X @tab X @tab @tab X
@item MicroDVD @tab X @tab X @tab @tab X
@item PGS @tab @tab @tab @tab X
@item SubRip (SRT) @tab X @tab X @tab X @tab X
@item XSUB @tab @tab @tab X @tab X
@@ -854,11 +872,12 @@ performance on systems without hardware floating point support).
@item ALSA @tab X @tab X
@item BKTR @tab X @tab
@item DV1394 @tab X @tab
@item Linux framebuffer @tab X @tab
@item JACK @tab X @tab
@item LIBCDIO @tab X
@item LIBDC1394 @tab X @tab
@item OSS @tab X @tab X
@item Pulseaudio @tab X @tab
@item Video4Linux @tab X @tab
@item Video4Linux2 @tab X @tab
@item VfW capture @tab X @tab
@item X11 grabbing @tab X @tab
@@ -874,7 +893,7 @@ performance on systems without hardware floating point support).
@item GXF @tab X @tab X
@item MOV @tab X @tab
@item MPEG1/2 @tab X @tab X
@item MXF @tab @tab X
@item MXF @tab X @tab X
@end multitable
@bye
+8
View File
@@ -65,6 +65,14 @@ git clone git@@source.ffmpeg.org:ffmpeg <target>
This will put the FFmpeg sources into the directory @var{<target>} and let
you push back your changes to the remote repository.
Make sure that you do not have Windows line endings in your checkouts,
otherwise you may experience spurious compilation failures. One way to
achieve this is to run
@example
git config --global core.autocrlf false
@end example
@section Updating the source tree to the latest revision
+17 -25
View File
@@ -59,7 +59,7 @@ BSD video input device.
Windows DirectShow input device.
DirectShow support is enabled when FFmpeg is built with mingw-w64.
DirectShow support is enabled when FFmpeg is built with the mingw-w64 project.
Currently only audio and video devices are supported.
Multiple devices may be opened as separate inputs, but they may also be
@@ -504,9 +504,9 @@ command:
ffmpeg -f sndio -i /dev/audio0 /tmp/oss.wav
@end example
@section video4linux and video4linux2
@section video4linux2
Video4Linux and Video4Linux2 input video devices.
Video4Linux2 input video device.
The name of the device to grab is a file device node, usually Linux
systems tend to automatically create such nodes when the device
@@ -514,36 +514,28 @@ systems tend to automatically create such nodes when the device
kind @file{/dev/video@var{N}}, where @var{N} is a number associated to
the device.
Video4Linux and Video4Linux2 devices only support a limited set of
Video4Linux2 devices usually support a limited set of
@var{width}x@var{height} sizes and framerates. You can check which are
supported for example with the command @command{dov4l} for Video4Linux
devices and using @command{-list_formats all} for Video4Linux2 devices.
supported using @command{-list_formats all} for Video4Linux2 devices.
If the size for the device is set to 0x0, the input device will
try to auto-detect the size to use.
Only for the video4linux2 device, if the frame rate is set to 0/0 the
input device will use the frame rate value already set in the driver.
Some usage examples of the video4linux2 devices with ffmpeg and ffplay:
Video4Linux support is deprecated since Linux 2.6.30, and will be
dropped in later versions.
The time base for the timestamps is 1 microsecond. Depending on the kernel
version and configuration, the timestamps may be derived from the real time
clock (origin at the Unix Epoch) or the monotonic clock (origin usually at
boot time, unaffected by NTP or manual changes to the clock). The
@option{-timestamps abs} or @option{-ts abs} option can be used to force
conversion into the real time clock.
Note that if FFmpeg is build with v4l-utils support ("--enable-libv4l2"
option), it will always be used.
Follow some usage examples of the video4linux devices with the ff*
tools.
@example
# Grab and show the input of a video4linux device, frame rate is set
# to the default of 25/1.
ffplay -s 320x240 -f video4linux /dev/video0
# Grab and show the input of a video4linux2 device.
ffplay -f video4linux2 -framerate 30 -video_size hd720 /dev/video0
# Grab and show the input of a video4linux2 device, auto-adjust size.
ffplay -f video4linux2 /dev/video0
# Grab and record the input of a video4linux2 device, auto-adjust size,
# frame rate value defaults to 0/0 so it is read from the video4linux2
# driver.
ffmpeg -f video4linux2 -i /dev/video0 out.mpeg
# Grab and record the input of a video4linux2 device, leave the
framerate and size as previously set.
ffmpeg -f video4linux2 -input_format mjpeg -i /dev/video0 out.mpeg
@end example
"v4l" and "v4l2" can be used as aliases for the respective "video4linux" and
+175 -14
View File
@@ -56,31 +56,37 @@ See also the @ref{framecrc} muxer.
@anchor{framecrc}
@section framecrc
Per-frame CRC (Cyclic Redundancy Check) testing format.
Per-packet CRC (Cyclic Redundancy Check) testing format.
This muxer computes and prints the Adler-32 CRC for each decoded audio
and video frame. By default audio frames are converted to signed
This muxer computes and prints the Adler-32 CRC for each audio
and video packet. By default audio frames are converted to signed
16-bit raw audio and video frames to raw video before computing the
CRC.
The output of the muxer consists of a line for each audio and video
frame of the form: @var{stream_index}, @var{frame_dts},
@var{frame_size}, 0x@var{CRC}, where @var{CRC} is a hexadecimal
number 0-padded to 8 digits containing the CRC of the decoded frame.
packet of the form:
@example
@var{stream_index}, @var{packet_dts}, @var{packet_pts}, @var{packet_duration}, @var{packet_size}, 0x@var{CRC}
@end example
For example to compute the CRC of each decoded frame in the input, and
store it in the file @file{out.crc}:
@var{CRC} is a hexadecimal number 0-padded to 8 digits containing the
CRC of the packet.
For example to compute the CRC of the audio and video frames in
@file{INPUT}, converted to raw audio and video packets, and store it
in the file @file{out.crc}:
@example
ffmpeg -i INPUT -f framecrc out.crc
@end example
You can print the CRC of each decoded frame to stdout with the command:
To print the information to stdout, use the command:
@example
ffmpeg -i INPUT -f framecrc -
@end example
You can select the output format of each frame with @command{ffmpeg} by
specifying the audio and video codec and format. For example, to
With @command{ffmpeg}, you can select the output format to which the
audio and video frames are encoded before computing the CRC for each
packet by specifying the audio and video codec. For example, to
compute the CRC of each decoded input audio frame converted to PCM
unsigned 8-bit and of each decoded input video frame converted to
MPEG-2 video, use the command:
@@ -90,6 +96,39 @@ ffmpeg -i INPUT -c:a pcm_u8 -c:v mpeg2video -f framecrc -
See also the @ref{crc} muxer.
@anchor{framemd5}
@section framemd5
Per-packet MD5 testing format.
This muxer computes and prints the MD5 hash for each audio
and video packet. By default audio frames are converted to signed
16-bit raw audio and video frames to raw video before computing the
hash.
The output of the muxer consists of a line for each audio and video
packet of the form:
@example
@var{stream_index}, @var{packet_dts}, @var{packet_pts}, @var{packet_duration}, @var{packet_size}, @var{MD5}
@end example
@var{MD5} is a hexadecimal number representing the computed MD5 hash
for the packet.
For example to compute the MD5 of the audio and video frames in
@file{INPUT}, converted to raw audio and video packets, and store it
in the file @file{out.md5}:
@example
ffmpeg -i INPUT -f framemd5 out.md5
@end example
To print the information to stdout, use the command:
@example
ffmpeg -i INPUT -f framemd5 -
@end example
See also the @ref{md5} muxer.
@anchor{image2}
@section image2
@@ -148,18 +187,104 @@ each of the YUV420P components. To read or write this image file format,
specify the name of the '.Y' file. The muxer will automatically open the
'.U' and '.V' files as required.
@section mov
@anchor{md5}
@section md5
MOV / MP4 muxer
MD5 testing format.
The muxer options are:
This muxer computes and prints the MD5 hash of all the input audio
and video frames. By default audio frames are converted to signed
16-bit raw audio and video frames to raw video before computing the
hash.
The output of the muxer consists of a single line of the form:
MD5=@var{MD5}, where @var{MD5} is a hexadecimal number representing
the computed MD5 hash.
For example to compute the MD5 hash of the input converted to raw
audio and video, and store it in the file @file{out.md5}:
@example
ffmpeg -i INPUT -f md5 out.md5
@end example
You can print the MD5 to stdout with the command:
@example
ffmpeg -i INPUT -f md5 -
@end example
See also the @ref{framemd5} muxer.
@section MOV/MP4/ISMV
The mov/mp4/ismv muxer supports fragmentation. Normally, a MOV/MP4
file has all the metadata about all packets stored in one location
(written at the end of the file, it can be moved to the start for
better playback using the @command{qt-faststart} tool). A fragmented
file consists of a number of fragments, where packets and metadata
about these packets are stored together. Writing a fragmented
file has the advantage that the file is decodable even if the
writing is interrupted (while a normal MOV/MP4 is undecodable if
it is not properly finished), and it requires less memory when writing
very long files (since writing normal MOV/MP4 files stores info about
every single packet in memory until the file is closed). The downside
is that it is less compatible with other applications.
Fragmentation is enabled by setting one of the AVOptions that define
how to cut the file into fragments:
@table @option
@item -moov_size @var{bytes}
Reserves space for the moov atom at the beginning of the file instead of placing the
moov atom at the end. If the space reserved is insufficient, muxing will fail.
@item -movflags frag_keyframe
Start a new fragment at each video keyframe.
@item -frag_duration @var{duration}
Create fragments that are @var{duration} microseconds long.
@item -frag_size @var{size}
Create fragments that contain up to @var{size} bytes of payload data.
@item -movflags frag_custom
Allow the caller to manually choose when to cut fragments, by
calling @code{av_write_frame(ctx, NULL)} to write a fragment with
the packets written so far. (This is only useful with other
applications integrating libavformat, not from @command{ffmpeg}.)
@item -min_frag_duration @var{duration}
Don't create fragments that are shorter than @var{duration} microseconds long.
@end table
If more than one condition is specified, fragments are cut when
one of the specified conditions is fulfilled. The exception to this is
@code{-min_frag_duration}, which has to be fulfilled for any of the other
conditions to apply.
Additionally, the way the output file is written can be adjusted
through a few other options:
@table @option
@item -movflags empty_moov
Write an initial moov atom directly at the start of the file, without
describing any samples in it. Generally, an mdat/moov pair is written
at the start of the file, as a normal MOV/MP4 file, containing only
a short portion of the file. With this option set, there is no initial
mdat atom, and the moov atom only describes the tracks but has
a zero duration.
Files written with this option set do not work in QuickTime.
This option is implicitly set when writing ismv (Smooth Streaming) files.
@item -movflags separate_moof
Write a separate moof (movie fragment) atom for each track. Normally,
packets for all tracks are written in a moof atom (which is slightly
more efficient), but with this option set, the muxer writes one moof/mdat
pair for each track, making it easier to separate tracks.
This option is implicitly set when writing ismv (Smooth Streaming) files.
@end table
Smooth Streaming content can be pushed in real time to a publishing
point on IIS with this muxer. Example:
@example
ffmpeg -re @var{<normal input/transcoding options>} -movflags isml+frag_keyframe -f ismv http://server/publishingpoint.isml/Streams(Encoder1)
@end example
@section mpegts
MPEG transport stream muxer.
@@ -310,11 +435,47 @@ Set segment duration to @var{t} seconds.
Generate also a listfile named @var{name}.
@item segment_list_size @var{size}
Overwrite the listfile once it reaches @var{size} entries.
@item segment_wrap @var{limit}
Wrap around segment index once it reaches @var{limit}.
@end table
@example
ffmpeg -i in.mkv -c copy -map 0 -f segment -list out.list out%03d.nut
@end example
@section mp3
The MP3 muxer writes a raw MP3 stream with an ID3v2 header at the beginning and
optionally an ID3v1 tag at the end. ID3v2.3 and ID3v2.4 are supported, the
@code{id3v2_version} option controls which one is used. The legacy ID3v1 tag is
not written by default, but may be enabled with the @code{write_id3v1} option.
For seekable output the muxer also writes a Xing frame at the beginning, which
contains the number of frames in the file. It is useful for computing duration
of VBR files.
The muxer supports writing ID3v2 attached pictures (APIC frames). The pictures
are supplied to the muxer in form of a video stream with a single packet. There
can be any number of those streams, each will correspond to a single APIC frame.
The stream metadata tags @var{title} and @var{comment} map to APIC
@var{description} and @var{picture type} respectively. See
@url{http://id3.org/id3v2.4.0-frames} for allowed picture types.
Note that the APIC frames must be written at the beginning, so the muxer will
buffer the audio frames until it gets all the pictures. It is therefore advised
to provide the pictures as soon as possible to avoid excessive buffering.
Examples:
Write an mp3 with an ID3v2.3 header and an ID3v1 footer:
@example
ffmpeg -i INPUT -id3v2_version 3 -write_id3v1 1 out.mp3
@end example
Attach a picture to an mp3:
@example
ffmpeg -i input.mp3 -i cover.png -c copy -metadata:s:v title="Album cover"
-metadata:s:v comment="Cover (Front)" out.mp3
@end example
@c man end MUXERS
+17 -27
View File
@@ -27,11 +27,11 @@ to configure.
@section BSD
BSD make will not build FFmpeg, you need to install and use GNU Make
(@file{gmake}).
(@command{gmake}).
@section (Open)Solaris
GNU Make is required to build FFmpeg, so you have to invoke (@file{gmake}),
GNU Make is required to build FFmpeg, so you have to invoke (@command{gmake}),
standard Solaris Make will not work. When building with a non-c99 front-end
(gcc, generic suncc) add either @code{--extra-libs=/usr/lib/values-xpg6.o}
or @code{--extra-libs=/usr/lib/64/values-xpg6.o} to the configure options
@@ -89,7 +89,7 @@ section and the FAQ.
FFmpeg does not build out-of-the-box with the packages the automated MinGW
installer provides. It also requires coreutils to be installed and many other
packages updated to the latest version. The minimum version for some packages
packages updated to the latest version. The minimum versions for some packages
are listed below:
@itemize
@@ -109,14 +109,11 @@ Notes:
@item Building natively using MSYS can be sped up by disabling implicit rules
in the Makefile by calling @code{make -r} instead of plain @code{make}. This
speed up is close to non-existent for normal one-off builds and is only
noticeable when running make for a second time (for example in
noticeable when running make for a second time (for example during
@code{make install}).
@item In order to compile FFplay, you must have the MinGW development library
of @uref{http://www.libsdl.org/, SDL}.
Edit the @file{bin/sdl-config} script so that it points to the correct prefix
where SDL was installed. Verify that @file{sdl-config} can be launched from
the MSYS command line.
of @uref{http://www.libsdl.org/, SDL} and @code{pkg-config} installed.
@item By using @code{./configure --enable-shared} when configuring FFmpeg,
you can build the FFmpeg libraries (e.g. libavutil, libavcodec,
@@ -140,7 +137,7 @@ you might have to modify the procedures slightly.
@subsection Using static libraries
Assuming you have just built and installed FFmpeg in @file{/usr/local}.
Assuming you have just built and installed FFmpeg in @file{/usr/local}:
@enumerate
@@ -275,7 +272,7 @@ To create import libraries that work with the @code{/OPT:REF} option
@enumerate
@item Open @file{Visual Studio 2005 Command Prompt}.
@item Open @emph{Visual Studio 2005 Command Prompt}.
Alternatively, in a normal command line prompt, call @file{vcvars32.bat}
which sets up the environment variables for the Visual C++ tools
@@ -285,17 +282,14 @@ which sets up the environment variables for the Visual C++ tools
@item Enter the @file{bin} directory where the created LIB and DLL files
are stored.
@item Generate new import libraries with @file{lib.exe}:
@item Generate new import libraries with @command{lib.exe}:
@example
lib /machine:i386 /def:..\lib\avcodec-53.def /out:avcodec.lib
lib /machine:i386 /def:..\lib\avdevice-53.def /out:avdevice.lib
lib /machine:i386 /def:..\lib\avfilter-2.def /out:avfilter.lib
lib /machine:i386 /def:..\lib\avformat-53.def /out:avformat.lib
lib /machine:i386 /def:..\lib\avutil-51.def /out:avutil.lib
lib /machine:i386 /def:..\lib\swscale-2.def /out:swscale.lib
lib /machine:i386 /def:..\lib\foo-version.def /out:foo.lib
@end example
Replace @code{foo-version} and @code{foo} with the respective library names.
@end enumerate
@anchor{Cross compilation for Windows with Linux}
@@ -337,8 +331,8 @@ Then run
to make a static build.
The current @code{gcc4-core} package is buggy and needs this flag to build
shared libraries:
To build shared libraries add a special compiler flag to work around current
@code{gcc4-core} package bugs in addition to the normal configure flags:
@example
./configure --enable-shared --disable-static --extra-cflags=-fno-reorder-functions
@@ -354,16 +348,12 @@ These library packages are only available from
@uref{http://sourceware.org/cygwinports/, Cygwin Ports}:
@example
yasm, libSDL-devel, libdirac-devel, libfaac-devel, libaacplus-devel, libgsm-devel,
libmp3lame-devel, libschroedinger1.0-devel, speex-devel, libtheora-devel,
libxvidcore-devel
yasm, libSDL-devel, libfaac-devel, libaacplus-devel, libgsm-devel, libmp3lame-devel,
libschroedinger1.0-devel, speex-devel, libtheora-devel, libxvidcore-devel
@end example
The recommendation for libnut and x264 is to build them from source by
yourself, as they evolve too quickly for Cygwin Ports to be up to date.
Cygwin 1.7.x has IPv6 support. You can add IPv6 to Cygwin 1.5.x by means
of the @code{libgetaddrinfo-devel} package, available at Cygwin Ports.
The recommendation for x264 is to build it from source, as it evolves too
quickly for Cygwin Ports to be up to date.
@section Crosscompilation for Windows under Cygwin
+125
View File
@@ -0,0 +1,125 @@
/*
* Copyright (c) 2012 Anton Khirnov
*
* This file is part of Libav.
*
* Libav 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.
*
* Libav 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 Libav; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
/*
* generate texinfo manpages for avoptions
*/
#include <stddef.h>
#include <string.h>
#include <float.h>
#include "libavformat/avformat.h"
#include "libavcodec/avcodec.h"
#include "libavutil/opt.h"
static void print_usage(void)
{
fprintf(stderr, "Usage: enum_options type\n"
"type: format codec\n");
exit(1);
}
static void print_option(const AVOption *opts, const AVOption *o, int per_stream)
{
printf("@item -%s%s @var{", o->name, per_stream ? "[:stream_specifier]" : "");
switch (o->type) {
case AV_OPT_TYPE_BINARY: printf("hexadecimal string"); break;
case AV_OPT_TYPE_STRING: printf("string"); break;
case AV_OPT_TYPE_INT:
case AV_OPT_TYPE_INT64: printf("integer"); break;
case AV_OPT_TYPE_FLOAT:
case AV_OPT_TYPE_DOUBLE: printf("float"); break;
case AV_OPT_TYPE_RATIONAL: printf("rational number"); break;
case AV_OPT_TYPE_FLAGS: printf("flags"); break;
default: printf("value"); break;
}
printf("} (@emph{");
if (o->flags & AV_OPT_FLAG_DECODING_PARAM) {
printf("input");
if (o->flags & AV_OPT_FLAG_ENCODING_PARAM)
printf("/");
}
if (o->flags & AV_OPT_FLAG_ENCODING_PARAM) printf("output");
if (o->flags & AV_OPT_FLAG_AUDIO_PARAM) printf(",audio");
if (o->flags & AV_OPT_FLAG_VIDEO_PARAM) printf(",video");
if (o->flags & AV_OPT_FLAG_SUBTITLE_PARAM) printf(",subtitles");
printf("})\n");
if (o->help)
printf("%s\n", o->help);
if (o->unit) {
const AVOption *u;
printf("\nPossible values:\n@table @samp\n");
for (u = opts; u->name; u++) {
if (u->type == AV_OPT_TYPE_CONST && u->unit && !strcmp(u->unit, o->unit))
printf("@item %s\n%s\n", u->name, u->help ? u->help : "");
}
printf("@end table\n");
}
}
static void show_opts(const AVOption *opts, int per_stream)
{
const AVOption *o;
printf("@table @option\n");
for (o = opts; o->name; o++) {
if (o->type != AV_OPT_TYPE_CONST)
print_option(opts, o, per_stream);
}
printf("@end table\n");
}
static void show_format_opts(void)
{
#include "libavformat/options_table.h"
printf("@section Format AVOptions\n");
show_opts(options, 0);
}
static void show_codec_opts(void)
{
#include "libavcodec/options_table.h"
printf("@section Codec AVOptions\n");
show_opts(options, 1);
}
int main(int argc, char **argv)
{
if (argc < 2)
print_usage();
printf("@c DO NOT EDIT THIS FILE!\n"
"@c It was generated by print_options.\n\n");
if (!strcmp(argv[1], "format"))
show_format_opts();
else if (!strcmp(argv[1], "codec"))
show_codec_opts();
else
print_usage();
return 0;
}
+48 -14
View File
@@ -19,20 +19,34 @@ supported protocols.
A description of the currently available protocols follows.
@section applehttp
@section bluray
Read Apple HTTP Live Streaming compliant segmented stream as
a uniform one. The M3U8 playlists describing the segments can be
remote HTTP resources or local files, accessed using the standard
file protocol.
HTTP is default, specific protocol can be declared by specifying
"+@var{proto}" after the applehttp URI scheme name, where @var{proto}
is either "file" or "http".
Read BluRay playlist.
The accepted options are:
@table @option
@item angle
BluRay angle
@item chapter
Start chapter (1...N)
@item playlist
Playlist to read (BDMV/PLAYLIST/?????.mpls)
@end table
Examples:
Read longest playlist from BluRay mounted to /mnt/bluray:
@example
applehttp://host/path/to/remote/resource.m3u8
applehttp+http://host/path/to/remote/resource.m3u8
applehttp+file://path/to/local/resource.m3u8
bluray:/mnt/bluray
@end example
Read angle 2 of playlist 4 from BluRay mounted to /mnt/bluray, start from chapter 2:
@example
-playlist 4 -angle 2 -chapter 2 bluray:/mnt/bluray
@end example
@section concat
@@ -81,6 +95,26 @@ specified with the name "FILE.mpeg" is interpreted as the URL
Gopher protocol.
@section hls
Read Apple HTTP Live Streaming compliant segmented stream as
a uniform one. The M3U8 playlists describing the segments can be
remote HTTP resources or local files, accessed using the standard
file protocol.
The nested protocol is declared by specifying
"+@var{proto}" after the hls URI scheme name, where @var{proto}
is either "file" or "http".
@example
hls+http://host/path/to/remote/resource.m3u8
hls+file://path/to/local/resource.m3u8
@end example
Using this protocol is discouraged - the hls demuxer should work
just as well (if not, please report the issues) and is more complete.
To use the hls demuxer instead, simply use the direct URLs to the
m3u8 files.
@section http
HTTP (Hyper Text Transfer Protocol).
@@ -284,9 +318,9 @@ Accept packets only from negotiated peer address and port.
@end table
When receiving data over UDP, the demuxer tries to reorder received packets
(since they may arrive out of order, or packets may get lost totally). In
order for this to be enabled, a maximum delay must be specified in the
@code{max_delay} field of AVFormatContext.
(since they may arrive out of order, or packets may get lost totally). This
can be disabled by setting the maximum demuxing delay to zero (via
the @code{max_delay} field of AVFormatContext).
When watching multi-bitrate Real-RTSP streams with @command{ffplay}, the
streams to display can be chosen with @code{-vst} @var{n} and
+1 -1
View File
@@ -32,7 +32,7 @@ Special Converter v
Output
Planar/Packed convertion is done when needed during sample format convertion
Every step can be skiped without memcpy when its not needed.
Every step can be skipped without memcpy when its not needed.
Either Resampling and Rematrixing can be performed first depending on which
way its faster.
The Buffers are needed for resampling due to resamplng being a process that
-1
View File
@@ -96,4 +96,3 @@ would benefit from it.
Also, as already hinted at, initFilter() accepts an optional convolutional
filter as input that can be used for contrast, saturation, blur, sharpening
shift, chroma vs. luma shift, ...
+158
View File
@@ -0,0 +1,158 @@
@chapter Syntax
@c man begin SYNTAX
When evaluating specific formats, FFmpeg uses internal library parsing
functions, shared by the tools. This section documents the syntax of
some of these formats.
@anchor{date syntax}
@section Date
The accepted syntax is:
@example
[(YYYY-MM-DD|YYYYMMDD)[T|t| ]]((HH:MM:SS[.m...]]])|(HHMMSS[.m...]]]))[Z]
now
@end example
If the value is "now" it takes the current time.
Time is local time unless Z is appended, in which case it is
interpreted as UTC.
If the year-month-day part is not specified it takes the current
year-month-day.
@anchor{time duration syntax}
@section Time duration
The accepted syntax is:
@example
[-]HH:MM:SS[.m...]
[-]S+[.m...]
@end example
@var{HH} expresses the number of hours, @var{MM} the number a of minutes
and @var{SS} the number of seconds.
@anchor{video size syntax}
@section Video size
Specify the size of the sourced video, it may be a string of the form
@var{width}x@var{height}, or the name of a size abbreviation.
The following abbreviations are recognized:
@table @samp
@item sqcif
128x96
@item qcif
176x144
@item cif
352x288
@item 4cif
704x576
@item 16cif
1408x1152
@item qqvga
160x120
@item qvga
320x240
@item vga
640x480
@item svga
800x600
@item xga
1024x768
@item uxga
1600x1200
@item qxga
2048x1536
@item sxga
1280x1024
@item qsxga
2560x2048
@item hsxga
5120x4096
@item wvga
852x480
@item wxga
1366x768
@item wsxga
1600x1024
@item wuxga
1920x1200
@item woxga
2560x1600
@item wqsxga
3200x2048
@item wquxga
3840x2400
@item whsxga
6400x4096
@item whuxga
7680x4800
@item cga
320x200
@item ega
640x350
@item hd480
852x480
@item hd720
1280x720
@item hd1080
1920x1080
@end table
@anchor{video rate syntax}
@section Video rate
Specify the frame rate of a video, expressed as the number of frames
generated per second. It has to be a string in the format
@var{frame_rate_num}/@var{frame_rate_den}, an integer number, a float
number or a valid video frame rate abbreviation.
The following abbreviations are recognized:
@table @samp
@item ntsc
30000/1001
@item pal
25/1
@item qntsc
30000/1
@item qpal
25/1
@item sntsc
30000/1
@item spal
25/1
@item film
24/1
@item ntsc-film
24000/1
@end table
@anchor{ratio syntax}
@section Ratio
A ratio can be expressed as an expression, or in the form
@var{numerator}:@var{denominator}.
Note that a ratio with infinite (1/0) or negative value is
considered valid, so you should check on the returned value if you
want to exclude those values.
The undefined value can be expressed using the "0:0" string.
@anchor{color syntax}
@section Color
It can be the name of a color (case insensitive match) or a
[0x|#]RRGGBB[AA] sequence, possibly followed by "@" and a string
representing the alpha component.
The alpha component may be a string composed by "0x" followed by an
hexadecimal number or a decimal number between 0.0 and 1.0, which
represents the opacity value (0x00/0.0 means completely transparent,
0xff/1.0 completely opaque).
If the alpha component is not specified then 0xff is assumed.
The string "random" will result in a random color.
@c man end SYNTAX
+11 -8
View File
@@ -36,7 +36,7 @@ $shift = "";
%defs = ();
$fnno = 1;
$inf = "";
$ibase = "";
@ibase = ();
while ($_ = shift) {
if (/^-D(.*)$/) {
@@ -52,6 +52,8 @@ while ($_ = shift) {
die "flags may only contain letters, digits, hyphens, dashes and underscores\n"
unless $flag =~ /^[a-zA-Z0-9_-]+$/;
$defs{$flag} = $value;
} elsif (/^-I(.*)$/) {
push @ibase, $1 ne "" ? $1 : shift;
} elsif (/^-/) {
usage();
} else {
@@ -61,10 +63,12 @@ while ($_ = shift) {
}
}
push @ibase, ".";
if (defined $in) {
$inf = gensym();
open($inf, "<$in") or die "opening \"$in\": $!\n";
$ibase = $1 if $in =~ m|^(.+)/[^/]+$|;
push @ibase, $1 if $in =~ m|^(.+)/[^/]+$|;
} else {
$inf = \*STDIN;
}
@@ -74,7 +78,7 @@ if (defined $out) {
}
while(defined $inf) {
while(<$inf>) {
INF: while(<$inf>) {
# Certain commands are discarded without further processing.
/^\@(?:
[a-z]+index # @*index: useful only in complete manual
@@ -104,11 +108,10 @@ while(<$inf>) {
push @instack, $inf;
$inf = gensym();
# Try cwd and $ibase.
open($inf, "<" . $1)
or open($inf, "<" . $ibase . "/" . $1)
or die "cannot open $1 or $ibase/$1: $!\n";
next;
for (@ibase) {
open($inf, "<" . $_ . "/" . $1) and next INF;
}
die "cannot open $1: $!\n";
};
# Look for blocks surrounded by @c man begin SECTION ... @c man end.
-1
View File
@@ -107,4 +107,3 @@ one with score 3)
Author: Michael niedermayer
Copyright LGPL
+2156 -1379
View File
File diff suppressed because it is too large Load Diff
+99 -71
View File
@@ -40,7 +40,6 @@
#include "libavformat/avformat.h"
#include "libavdevice/avdevice.h"
#include "libswscale/swscale.h"
#include "libavcodec/audioconvert.h"
#include "libavutil/opt.h"
#include "libavcodec/avfft.h"
#include "libswresample/swresample.h"
@@ -64,7 +63,6 @@ const char program_name[] = "ffplay";
const int program_birth_year = 2003;
#define MAX_QUEUE_SIZE (15 * 1024 * 1024)
#define MIN_AUDIOQ_SIZE (20 * 16 * 1024)
#define MIN_FRAMES 5
/* SDL audio buffer size, in samples. Should be small to have precise
@@ -106,6 +104,7 @@ typedef struct VideoPicture {
int skip;
SDL_Overlay *bmp;
int width, height; /* source height & width */
AVRational sample_aspect_ratio;
int allocated;
int reallocate;
enum PixelFormat pix_fmt;
@@ -133,6 +132,7 @@ typedef struct VideoState {
AVInputFormat *iformat;
int no_background;
int abort_request;
int force_refresh;
int paused;
int last_paused;
int seek_req;
@@ -234,6 +234,11 @@ typedef struct VideoState {
int refresh;
} VideoState;
typedef struct AllocEventProps {
VideoState *is;
AVFrame *frame;
} AllocEventProps;
static int opt_help(const char *opt, const char *arg);
/* options specified by the user */
@@ -667,21 +672,11 @@ static void video_image_display(VideoState *is)
vp = &is->pictq[is->pictq_rindex];
if (vp->bmp) {
#if CONFIG_AVFILTER
if (vp->picref->video->sample_aspect_ratio.num == 0)
aspect_ratio = 0;
else
aspect_ratio = av_q2d(vp->picref->video->sample_aspect_ratio);
#else
/* XXX: use variable in the frame */
if (is->video_st->sample_aspect_ratio.num)
aspect_ratio = av_q2d(is->video_st->sample_aspect_ratio);
else if (is->video_st->codec->sample_aspect_ratio.num)
aspect_ratio = av_q2d(is->video_st->codec->sample_aspect_ratio);
else
if (vp->sample_aspect_ratio.num == 0)
aspect_ratio = 0;
#endif
else
aspect_ratio = av_q2d(vp->sample_aspect_ratio);
if (aspect_ratio <= 0.0)
aspect_ratio = 1.0;
aspect_ratio *= (float)vp->width / (float)vp->height;
@@ -867,7 +862,8 @@ static void video_audio_display(VideoState *s)
}
}
SDL_UpdateRect(screen, s->xpos, s->ytop, 1, s->height);
s->xpos++;
if (!s->paused)
s->xpos++;
if (s->xpos >= s->width)
s->xpos= s->xleft;
}
@@ -934,6 +930,7 @@ static int video_open(VideoState *is, int force_set_video_mode)
{
int flags = SDL_HWSURFACE | SDL_ASYNCBLIT | SDL_HWACCEL;
int w,h;
VideoPicture *vp = &is->pictq[is->pictq_rindex];
if (is_full_screen) flags |= SDL_FULLSCREEN;
else flags |= SDL_RESIZABLE;
@@ -944,15 +941,9 @@ static int video_open(VideoState *is, int force_set_video_mode)
} else if (!is_full_screen && screen_width) {
w = screen_width;
h = screen_height;
#if CONFIG_AVFILTER
} else if (is->out_video_filter && is->out_video_filter->inputs[0]) {
w = is->out_video_filter->inputs[0]->w;
h = is->out_video_filter->inputs[0]->h;
#else
} else if (is->video_st && is->video_st->codec->width) {
w = is->video_st->codec->width;
h = is->video_st->codec->height;
#endif
} else if (vp->width) {
w = vp->width;
h = vp->height;
} else {
w = 640;
h = 480;
@@ -993,7 +984,7 @@ static int refresh_thread(void *opaque)
SDL_Event event;
event.type = FF_REFRESH_EVENT;
event.user.data1 = opaque;
if (!is->refresh) {
if (!is->refresh && (!is->paused || is->force_refresh)) {
is->refresh = 1;
SDL_PushEvent(&event);
}
@@ -1156,6 +1147,9 @@ retry:
goto retry;
}
if (is->paused)
goto display;
/* compute nominal last_duration */
last_duration = vp->pts - is->frame_last_pts;
if (last_duration > 0 && last_duration < 10.0) {
@@ -1234,11 +1228,13 @@ retry:
}
}
display:
/* display picture */
if (!display_disable)
video_display(is);
pictq_next_picture(is);
if (!is->paused)
pictq_next_picture(is);
}
} else if (is->audio_st) {
/* draw the next audio frame */
@@ -1250,6 +1246,7 @@ retry:
if (!display_disable)
video_display(is);
}
is->force_refresh = 0;
if (show_status) {
static int64_t last_time;
int64_t cur_time;
@@ -1287,9 +1284,10 @@ retry:
/* allocate a picture (needs to do that in main thread to avoid
potential locking problems */
static void alloc_picture(void *opaque)
static void alloc_picture(AllocEventProps *event_props)
{
VideoState *is = opaque;
VideoState *is = event_props->is;
AVFrame *frame = event_props->frame;
VideoPicture *vp;
vp = &is->pictq[is->pictq_windex];
@@ -1301,16 +1299,14 @@ static void alloc_picture(void *opaque)
if (vp->picref)
avfilter_unref_buffer(vp->picref);
vp->picref = NULL;
vp->width = is->out_video_filter->inputs[0]->w;
vp->height = is->out_video_filter->inputs[0]->h;
vp->pix_fmt = is->out_video_filter->inputs[0]->format;
#else
vp->width = is->video_st->codec->width;
vp->height = is->video_st->codec->height;
vp->pix_fmt = is->video_st->codec->pix_fmt;
#endif
vp->width = frame->width;
vp->height = frame->height;
vp->pix_fmt = frame->format;
video_open(event_props->is, 0);
vp->bmp = SDL_CreateYUVOverlay(vp->width, vp->height,
SDL_YV12_OVERLAY,
screen);
@@ -1372,22 +1368,22 @@ static int queue_picture(VideoState *is, AVFrame *src_frame, double pts1, int64_
/* alloc or resize hardware picture buffer */
if (!vp->bmp || vp->reallocate ||
#if CONFIG_AVFILTER
vp->width != is->out_video_filter->inputs[0]->w ||
vp->height != is->out_video_filter->inputs[0]->h) {
#else
vp->width != is->video_st->codec->width ||
vp->height != is->video_st->codec->height) {
#endif
vp->width != src_frame->width ||
vp->height != src_frame->height) {
SDL_Event event;
AllocEventProps event_props;
event_props.frame = src_frame;
event_props.is = is;
vp->allocated = 0;
vp->reallocate = 0;
/* the allocation must be done in the main thread to avoid
locking problems */
locking problems. We wait in this block for the event to complete,
so we can pass a pointer to event_props to it. */
event.type = FF_ALLOC_EVENT;
event.user.data1 = is;
event.user.data1 = &event_props;
SDL_PushEvent(&event);
/* wait until the picture is allocated */
@@ -1409,7 +1405,7 @@ static int queue_picture(VideoState *is, AVFrame *src_frame, double pts1, int64_
/* if the frame is not skipped, then display it */
if (vp->bmp) {
AVPicture pict;
AVPicture pict = { { 0 } };
#if CONFIG_AVFILTER
if (vp->picref)
avfilter_unref_buffer(vp->picref);
@@ -1419,7 +1415,6 @@ static int queue_picture(VideoState *is, AVFrame *src_frame, double pts1, int64_
/* get a pointer on the bitmap */
SDL_LockYUVOverlay (vp->bmp);
memset(&pict, 0, sizeof(AVPicture));
pict.data[0] = vp->bmp->pixels[0];
pict.data[1] = vp->bmp->pixels[2];
pict.data[2] = vp->bmp->pixels[1];
@@ -1432,6 +1427,7 @@ static int queue_picture(VideoState *is, AVFrame *src_frame, double pts1, int64_
// FIXME use direct rendering
av_picture_copy(&pict, (AVPicture *)src_frame,
vp->pix_fmt, vp->width, vp->height);
vp->sample_aspect_ratio = vp->picref->video->sample_aspect_ratio;
#else
sws_flags = av_get_int(sws_opts, "sws_flags", NULL);
is->img_convert_ctx = sws_getCachedContext(is->img_convert_ctx,
@@ -1443,6 +1439,7 @@ static int queue_picture(VideoState *is, AVFrame *src_frame, double pts1, int64_
}
sws_scale(is->img_convert_ctx, src_frame->data, src_frame->linesize,
0, vp->height, pict.data, pict.linesize);
vp->sample_aspect_ratio = av_guess_sample_aspect_ratio(is->ic, is->video_st, src_frame);
#endif
/* update the bitmap content */
SDL_UnlockYUVOverlay(vp->bmp);
@@ -1495,7 +1492,7 @@ static int get_video_frame(VideoState *is, AVFrame *frame, int64_t *pts, AVPacke
int ret = 1;
if (decoder_reorder_pts == -1) {
*pts = *(int64_t*)av_opt_ptr(avcodec_get_frame_class(), frame, "best_effort_timestamp");
*pts = av_frame_get_best_effort_timestamp(frame);
} else if (decoder_reorder_pts) {
*pts = frame->pkt_pts;
} else {
@@ -1545,7 +1542,7 @@ static int input_get_buffer(AVCodecContext *codec, AVFrame *pic)
AVFilterContext *ctx = codec->opaque;
AVFilterBufferRef *ref;
int perms = AV_PERM_WRITE;
int i, w, h, stride[4];
int i, w, h, stride[AV_NUM_DATA_POINTERS];
unsigned edge;
int pixel_size;
@@ -1564,7 +1561,7 @@ static int input_get_buffer(AVCodecContext *codec, AVFrame *pic)
w = codec->width;
h = codec->height;
if(av_image_check_size(w, h, 0, codec))
if(av_image_check_size(w, h, 0, codec) || codec->pix_fmt<0)
return -1;
avcodec_align_dimensions2(codec, &w, &h, stride);
@@ -1585,6 +1582,7 @@ static int input_get_buffer(AVCodecContext *codec, AVFrame *pic)
unsigned hshift = (i == 1 || i == 2) ? av_pix_fmt_descriptors[ref->format].log2_chroma_w : 0;
unsigned vshift = (i == 1 || i == 2) ? av_pix_fmt_descriptors[ref->format].log2_chroma_h : 0;
pic->base[i] = ref->data[i];
if (ref->data[i]) {
ref->data[i] += ((edge * pixel_size) >> hshift) + ((edge * ref->linesize[i]) >> vshift);
}
@@ -1594,6 +1592,10 @@ static int input_get_buffer(AVCodecContext *codec, AVFrame *pic)
pic->opaque = ref;
pic->type = FF_BUFFER_TYPE_USER;
pic->reordered_opaque = codec->reordered_opaque;
pic->width = codec->width;
pic->height = codec->height;
pic->format = codec->pix_fmt;
pic->sample_aspect_ratio = codec->sample_aspect_ratio;
if (codec->pkt) pic->pkt_pts = codec->pkt->pts;
else pic->pkt_pts = AV_NOPTS_VALUE;
return 0;
@@ -1671,18 +1673,19 @@ static int input_request_frame(AVFilterLink *link)
if (priv->use_dr1 && priv->frame->opaque) {
picref = avfilter_ref_buffer(priv->frame->opaque, ~0);
} else {
picref = avfilter_get_video_buffer(link, AV_PERM_WRITE, link->w, link->h);
picref = avfilter_get_video_buffer(link, AV_PERM_WRITE, priv->frame->width, priv->frame->height);
av_image_copy(picref->data, picref->linesize,
priv->frame->data, priv->frame->linesize,
picref->format, link->w, link->h);
(const uint8_t **)(void **)priv->frame->data, priv->frame->linesize,
picref->format, priv->frame->width, priv->frame->height);
}
av_free_packet(&pkt);
avfilter_copy_frame_props(picref, priv->frame);
picref->video->sample_aspect_ratio = av_guess_sample_aspect_ratio(priv->is->ic, priv->is->video_st, priv->frame);
picref->pts = pts;
avfilter_start_frame(link, picref);
avfilter_draw_slice(link, 0, link->h, 1);
avfilter_draw_slice(link, 0, picref->video->h, 1);
avfilter_end_frame(link);
return 0;
@@ -1734,11 +1737,11 @@ static AVFilter input_filter =
static int configure_video_filters(AVFilterGraph *graph, VideoState *is, const char *vfilters)
{
static const enum PixelFormat pix_fmts[] = { PIX_FMT_YUV420P, PIX_FMT_NONE };
char sws_flags_str[128];
int ret;
enum PixelFormat pix_fmts[] = { PIX_FMT_YUV420P, PIX_FMT_NONE };
AVBufferSinkParams *buffersink_params = av_buffersink_params_alloc();
AVFilterContext *filt_src = NULL, *filt_out = NULL;
AVFilterContext *filt_src = NULL, *filt_out = NULL, *filt_format;;
snprintf(sws_flags_str, sizeof(sws_flags_str), "flags=%d", sws_flags);
graph->scale_sws_opts = av_strdup(sws_flags_str);
@@ -1747,17 +1750,27 @@ static int configure_video_filters(AVFilterGraph *graph, VideoState *is, const c
return ret;
#if FF_API_OLD_VSINK_API
ret = avfilter_graph_create_filter(&filt_out, avfilter_get_by_name("buffersink"), "out",
NULL, pix_fmts, graph);
ret = avfilter_graph_create_filter(&filt_out,
avfilter_get_by_name("buffersink"),
"out", NULL, pix_fmts, graph);
#else
buffersink_params->pixel_fmts = pix_fmts;
ret = avfilter_graph_create_filter(&filt_out, avfilter_get_by_name("buffersink"), "out",
NULL, buffersink_params, graph);
ret = avfilter_graph_create_filter(&filt_out,
avfilter_get_by_name("buffersink"),
"out", NULL, buffersink_params, graph);
#endif
av_freep(&buffersink_params);
if (ret < 0)
return ret;
if ((ret = avfilter_graph_create_filter(&filt_format,
avfilter_get_by_name("format"),
"format", "yuv420p", NULL, graph)) < 0)
return ret;
if ((ret = avfilter_link(filt_format, 0, filt_out, 0)) < 0)
return ret;
if (vfilters) {
AVFilterInOut *outputs = avfilter_inout_alloc();
AVFilterInOut *inputs = avfilter_inout_alloc();
@@ -1768,14 +1781,14 @@ static int configure_video_filters(AVFilterGraph *graph, VideoState *is, const c
outputs->next = NULL;
inputs->name = av_strdup("out");
inputs->filter_ctx = filt_out;
inputs->filter_ctx = filt_format;
inputs->pad_idx = 0;
inputs->next = NULL;
if ((ret = avfilter_graph_parse(graph, vfilters, &inputs, &outputs, NULL)) < 0)
return ret;
} else {
if ((ret = avfilter_link(filt_src, 0, filt_out, 0)) < 0)
if ((ret = avfilter_link(filt_src, 0, filt_format, 0)) < 0)
return ret;
}
@@ -1834,11 +1847,14 @@ static int video_thread(void *arg)
if (picref) {
avfilter_fill_frame_from_video_buffer_ref(frame, picref);
pts_int = picref->pts;
tb = filt_out->inputs[0]->time_base;
pos = picref->pos;
frame->opaque = picref;
ret = 1;
}
if (av_cmp_q(tb, is->video_st->time_base)) {
if (ret >= 0 && av_cmp_q(tb, is->video_st->time_base)) {
av_unused int64_t pts1 = pts_int;
pts_int = av_rescale_q(pts_int, tb, is->video_st->time_base);
av_dlog(NULL, "video_thread(): "
@@ -1850,6 +1866,8 @@ static int video_thread(void *arg)
ret = get_video_frame(is, frame, &pts_int, &pkt);
pos = pkt.pos;
av_free_packet(&pkt);
if (ret == 0)
continue;
#endif
if (ret < 0)
@@ -1876,6 +1894,7 @@ static int video_thread(void *arg)
}
the_end:
#if CONFIG_AVFILTER
av_freep(&vfilters);
avfilter_graph_free(&graph);
#endif
av_free(frame);
@@ -2119,7 +2138,8 @@ static int audio_decode_frame(VideoState *is, double *pts_ptr)
/* if no pts, then compute it */
pts = is->audio_clock;
*pts_ptr = pts;
is->audio_clock += (double)data_size / (dec->channels * dec->sample_rate * av_get_bytes_per_sample(dec->sample_fmt));
is->audio_clock += (double)data_size /
(dec->channels * dec->sample_rate * av_get_bytes_per_sample(dec->sample_fmt));
#ifdef DEBUG
{
static double last_clock;
@@ -2145,8 +2165,10 @@ static int audio_decode_frame(VideoState *is, double *pts_ptr)
if ((new_packet = packet_queue_get(&is->audioq, pkt, 1)) < 0)
return -1;
if (pkt->data == flush_pkt.data)
if (pkt->data == flush_pkt.data) {
avcodec_flush_buffers(dec);
flush_complete = 0;
}
*pkt_temp = *pkt;
@@ -2244,6 +2266,7 @@ static int stream_component_open(VideoState *is, int stream_index)
avctx->flags |= CODEC_FLAG_EMU_EDGE;
if (avctx->codec_type == AVMEDIA_TYPE_AUDIO) {
memset(&is->audio_pkt_temp, 0, sizeof(is->audio_pkt_temp));
env = SDL_getenv("SDL_AUDIO_CHANNELS");
if (env)
wanted_channel_layout = av_get_default_channel_layout(SDL_atoi(env));
@@ -2359,9 +2382,9 @@ static void stream_component_close(VideoState *is, int stream_index)
SDL_CloseAudio();
packet_queue_end(&is->audioq);
av_free_packet(&is->audio_pkt);
if (is->swr_ctx)
swr_free(&is->swr_ctx);
av_free_packet(&is->audio_pkt);
av_freep(&is->audio_buf1);
is->audio_buf = NULL;
av_freep(&is->frame);
@@ -2602,7 +2625,7 @@ static int read_thread(void *arg)
/* if the queue are full, no need to read more */
if ( is->audioq.size + is->videoq.size + is->subtitleq.size > MAX_QUEUE_SIZE
|| ( (is->audioq .size > MIN_AUDIOQ_SIZE || is->audio_stream < 0)
|| ( (is->audioq .nb_packets > MIN_FRAMES || is->audio_stream < 0)
&& (is->videoq .nb_packets > MIN_FRAMES || is->video_stream < 0)
&& (is->subtitleq.nb_packets > MIN_FRAMES || is->subtitle_stream < 0))) {
/* wait 10 ms */
@@ -2827,6 +2850,7 @@ static void event_loop(VideoState *cur_stream)
break;
case SDLK_f:
toggle_full_screen(cur_stream);
cur_stream->force_refresh = 1;
break;
case SDLK_p:
case SDLK_SPACE:
@@ -2846,6 +2870,7 @@ static void event_loop(VideoState *cur_stream)
break;
case SDLK_w:
toggle_audio_display(cur_stream);
cur_stream->force_refresh = 1;
break;
case SDLK_PAGEUP:
incr = 600.0;
@@ -2888,6 +2913,9 @@ static void event_loop(VideoState *cur_stream)
break;
}
break;
case SDL_VIDEOEXPOSE:
cur_stream->force_refresh = 1;
break;
case SDL_MOUSEBUTTONDOWN:
if (exit_on_mousedown) {
do_exit(cur_stream);
@@ -2930,13 +2958,13 @@ static void event_loop(VideoState *cur_stream)
SDL_HWSURFACE|SDL_RESIZABLE|SDL_ASYNCBLIT|SDL_HWACCEL);
screen_width = cur_stream->width = event.resize.w;
screen_height = cur_stream->height = event.resize.h;
cur_stream->force_refresh = 1;
break;
case SDL_QUIT:
case FF_QUIT_EVENT:
do_exit(cur_stream);
break;
case FF_ALLOC_EVENT:
video_open(event.user.data1, 0);
alloc_picture(event.user.data1);
break;
case FF_REFRESH_EVENT:
@@ -3215,7 +3243,7 @@ int main(int argc, char **argv)
}
av_init_packet(&flush_pkt);
flush_pkt.data = "FLUSH";
flush_pkt.data = (char *)(intptr_t)"FLUSH";
is = stream_open(input_filename, file_iformat);
if (!is) {
-17
View File
@@ -1,17 +0,0 @@
vcodec=libvpx
g=120
rc_lookahead=16
quality=good
speed=0
profile=1
qmax=51
qmin=11
slices=4
vb=2M
#ignored unless using -pass 2
maxrate=24M
minrate=100k
arnr_max_frames=7
arnr_strength=5
arnr_type=3
-17
View File
@@ -1,17 +0,0 @@
vcodec=libvpx
g=120
rc_lookahead=25
quality=good
speed=0
profile=1
qmax=51
qmin=11
slices=4
vb=2M
#ignored unless using -pass 2
maxrate=24M
minrate=100k
arnr_max_frames=7
arnr_strength=5
arnr_type=3
-16
View File
@@ -1,16 +0,0 @@
vcodec=libvpx
g=120
rc_lookahead=16
quality=good
speed=0
profile=0
qmax=63
qmin=0
vb=768k
#ignored unless using -pass 2
maxrate=1.5M
minrate=40k
arnr_max_frames=7
arnr_strength=5
arnr_type=3
-17
View File
@@ -1,17 +0,0 @@
vcodec=libvpx
g=120
rc_lookahead=16
quality=good
speed=0
profile=0
qmax=51
qmin=11
slices=4
vb=2M
#ignored unless using -pass 2
maxrate=24M
minrate=100k
arnr_max_frames=7
arnr_strength=5
arnr_type=3
-17
View File
@@ -1,17 +0,0 @@
vcodec=libvpx
g=120
rc_lookahead=25
quality=good
speed=0
profile=0
qmax=51
qmin=11
slices=4
vb=2M
#ignored unless using -pass 2
maxrate=24M
minrate=100k
arnr_max_frames=7
arnr_strength=5
arnr_type=3
+275 -285
View File
@@ -29,9 +29,11 @@
#include "libavformat/avformat.h"
#include "libavcodec/avcodec.h"
#include "libavutil/avstring.h"
#include "libavutil/bprint.h"
#include "libavutil/opt.h"
#include "libavutil/pixdesc.h"
#include "libavutil/dict.h"
#include "libavutil/timecode.h"
#include "libavdevice/avdevice.h"
#include "libswscale/swscale.h"
#include "libswresample/swresample.h"
@@ -41,9 +43,14 @@
const char program_name[] = "ffprobe";
const int program_birth_year = 2007;
static int do_count_frames = 0;
static int do_count_packets = 0;
static int do_read_frames = 0;
static int do_read_packets = 0;
static int do_show_error = 0;
static int do_show_format = 0;
static int do_show_frames = 0;
static AVDictionary *fmt_entries_to_show = NULL;
static int do_show_packets = 0;
static int do_show_streams = 0;
static int do_show_program_version = 0;
@@ -63,16 +70,19 @@ static const OptionDef options[];
static const char *input_filename;
static AVInputFormat *iformat = NULL;
static const char *binary_unit_prefixes [] = { "", "Ki", "Mi", "Gi", "Ti", "Pi" };
static const char *decimal_unit_prefixes[] = { "", "K" , "M" , "G" , "T" , "P" };
static const char *const binary_unit_prefixes [] = { "", "Ki", "Mi", "Gi", "Ti", "Pi" };
static const char *const decimal_unit_prefixes[] = { "", "K" , "M" , "G" , "T" , "P" };
static const char *unit_second_str = "s" ;
static const char *unit_hertz_str = "Hz" ;
static const char *unit_byte_str = "byte" ;
static const char *unit_bit_per_second_str = "bit/s";
static const char unit_second_str[] = "s" ;
static const char unit_hertz_str[] = "Hz" ;
static const char unit_byte_str[] = "byte" ;
static const char unit_bit_per_second_str[] = "bit/s";
static uint64_t *nb_streams_packets;
static uint64_t *nb_streams_frames;
void av_noreturn exit_program(int ret)
{
av_dict_free(&fmt_entries_to_show);
exit(ret);
}
@@ -168,6 +178,8 @@ struct WriterContext {
unsigned int nb_item; ///< number of the item printed in the given section, starting at 0
unsigned int nb_section; ///< number of the section printed in the given section sequence, starting at 0
unsigned int nb_chapter; ///< number of the chapter, starting at 0
int is_fmt_chapter; ///< tells if the current chapter is "format", required by the print_format_entry option
};
static const char *writer_get_name(void *p)
@@ -242,6 +254,8 @@ static inline void writer_print_chapter_header(WriterContext *wctx,
if (wctx->writer->print_chapter_header)
wctx->writer->print_chapter_header(wctx, chapter);
wctx->nb_section = 0;
wctx->is_fmt_chapter = !strcmp(chapter, "format");
}
static inline void writer_print_chapter_footer(WriterContext *wctx,
@@ -271,8 +285,10 @@ static inline void writer_print_section_footer(WriterContext *wctx,
static inline void writer_print_integer(WriterContext *wctx,
const char *key, long long int val)
{
wctx->writer->print_integer(wctx, key, val);
wctx->nb_item++;
if (!wctx->is_fmt_chapter || !fmt_entries_to_show || av_dict_get(fmt_entries_to_show, key, NULL, 0)) {
wctx->writer->print_integer(wctx, key, val);
wctx->nb_item++;
}
}
static inline void writer_print_string(WriterContext *wctx,
@@ -280,8 +296,10 @@ static inline void writer_print_string(WriterContext *wctx,
{
if (opt && !(wctx->writer->flags & WRITER_FLAG_DISPLAY_OPTIONAL_FIELDS))
return;
wctx->writer->print_string(wctx, key, val);
wctx->nb_item++;
if (!wctx->is_fmt_chapter || !fmt_entries_to_show || av_dict_get(fmt_entries_to_show, key, NULL, 0)) {
wctx->writer->print_string(wctx, key, val);
wctx->nb_item++;
}
}
static void writer_print_time(WriterContext *wctx, const char *key,
@@ -289,12 +307,14 @@ static void writer_print_time(WriterContext *wctx, const char *key,
{
char buf[128];
if (ts == AV_NOPTS_VALUE) {
writer_print_string(wctx, key, "N/A", 1);
} else {
double d = ts * av_q2d(*time_base);
value_string(buf, sizeof(buf), (struct unit_value){.val.d=d, .unit=unit_second_str});
writer_print_string(wctx, key, buf, 0);
if (!wctx->is_fmt_chapter || !fmt_entries_to_show || av_dict_get(fmt_entries_to_show, key, NULL, 0)) {
if (ts == AV_NOPTS_VALUE) {
writer_print_string(wctx, key, "N/A", 1);
} else {
double d = ts * av_q2d(*time_base);
value_string(buf, sizeof(buf), (struct unit_value){.val.d=d, .unit=unit_second_str});
writer_print_string(wctx, key, buf, 0);
}
}
}
@@ -338,82 +358,68 @@ static const Writer *writer_get_by_name(const char *name)
return NULL;
}
/* Print helpers */
struct print_buf {
char *s;
int len;
};
static char *fast_asprintf(struct print_buf *pbuf, const char *fmt, ...)
{
va_list va;
int len;
va_start(va, fmt);
len = vsnprintf(NULL, 0, fmt, va);
va_end(va);
if (len < 0)
goto fail;
if (pbuf->len < len) {
char *p = av_realloc(pbuf->s, len + 1);
if (!p)
goto fail;
pbuf->s = p;
pbuf->len = len;
}
va_start(va, fmt);
len = vsnprintf(pbuf->s, len + 1, fmt, va);
va_end(va);
if (len < 0)
goto fail;
return pbuf->s;
fail:
av_freep(&pbuf->s);
pbuf->len = 0;
return NULL;
}
#define ESCAPE_INIT_BUF_SIZE 256
#define ESCAPE_CHECK_SIZE(src, size, max_size) \
if (size > max_size) { \
char buf[64]; \
snprintf(buf, sizeof(buf), "%s", src); \
av_log(log_ctx, AV_LOG_WARNING, \
"String '%s...' with is too big\n", buf); \
return "FFPROBE_TOO_BIG_STRING"; \
}
#define ESCAPE_REALLOC_BUF(dst_size_p, dst_p, src, size) \
if (*dst_size_p < size) { \
char *q = av_realloc(*dst_p, size); \
if (!q) { \
char buf[64]; \
snprintf(buf, sizeof(buf), "%s", src); \
av_log(log_ctx, AV_LOG_WARNING, \
"String '%s...' could not be escaped\n", buf); \
return "FFPROBE_THIS_STRING_COULD_NOT_BE_ESCAPED"; \
} \
*dst_size_p = size; \
*dst = q; \
}
/* WRITERS */
/* Default output */
typedef struct DefaultContext {
const AVClass *class;
int nokey;
int noprint_wrappers;
} DefaultContext;
#define OFFSET(x) offsetof(DefaultContext, x)
static const AVOption default_options[] = {
{ "noprint_wrappers", "do not print headers and footers", OFFSET(noprint_wrappers), AV_OPT_TYPE_INT, {.dbl=0}, 0, 1 },
{ "nw", "do not print headers and footers", OFFSET(noprint_wrappers), AV_OPT_TYPE_INT, {.dbl=0}, 0, 1 },
{ "nokey", "force no key printing", OFFSET(nokey), AV_OPT_TYPE_INT, {.dbl=0}, 0, 1 },
{ "nk", "force no key printing", OFFSET(nokey), AV_OPT_TYPE_INT, {.dbl=0}, 0, 1 },
{NULL},
};
static const char *default_get_name(void *ctx)
{
return "default";
}
static const AVClass default_class = {
"DefaultContext",
default_get_name,
default_options
};
static av_cold int default_init(WriterContext *wctx, const char *args, void *opaque)
{
DefaultContext *def = wctx->priv;
int err;
def->class = &default_class;
av_opt_set_defaults(def);
if (args &&
(err = (av_set_options_string(def, args, "=", ":"))) < 0) {
av_log(wctx, AV_LOG_ERROR, "Error parsing options string: '%s'\n", args);
return err;
}
return 0;
}
static void default_print_footer(WriterContext *wctx)
{
printf("\n");
DefaultContext *def = wctx->priv;
if (!def->noprint_wrappers)
printf("\n");
}
static void default_print_chapter_header(WriterContext *wctx, const char *chapter)
{
if (wctx->nb_chapter)
DefaultContext *def = wctx->priv;
if (!def->noprint_wrappers && wctx->nb_chapter)
printf("\n");
}
@@ -429,41 +435,55 @@ static inline char *upcase_string(char *dst, size_t dst_size, const char *src)
static void default_print_section_header(WriterContext *wctx, const char *section)
{
DefaultContext *def = wctx->priv;
char buf[32];
if (wctx->nb_section)
printf("\n");
printf("[%s]\n", upcase_string(buf, sizeof(buf), section));
if (!def->noprint_wrappers)
printf("[%s]\n", upcase_string(buf, sizeof(buf), section));
}
static void default_print_section_footer(WriterContext *wctx, const char *section)
{
DefaultContext *def = wctx->priv;
char buf[32];
printf("[/%s]", upcase_string(buf, sizeof(buf), section));
if (!def->noprint_wrappers)
printf("[/%s]", upcase_string(buf, sizeof(buf), section));
}
static void default_print_str(WriterContext *wctx, const char *key, const char *value)
{
printf("%s=%s\n", key, value);
DefaultContext *def = wctx->priv;
if (!def->nokey)
printf("%s=", key);
printf("%s\n", value);
}
static void default_print_int(WriterContext *wctx, const char *key, long long int value)
{
printf("%s=%lld\n", key, value);
DefaultContext *def = wctx->priv;
if (!def->nokey)
printf("%s=", key);
printf("%lld\n", value);
}
static void default_show_tags(WriterContext *wctx, AVDictionary *dict)
{
AVDictionaryEntry *tag = NULL;
while ((tag = av_dict_get(dict, "", tag, AV_DICT_IGNORE_SUFFIX))) {
printf("TAG:");
if (!fmt_entries_to_show || (tag->key && av_dict_get(fmt_entries_to_show, tag->key, NULL, 0)))
printf("TAG:");
writer_print_string(wctx, tag->key, tag->value, 0);
}
}
static const Writer default_writer = {
.name = "default",
.priv_size = sizeof(DefaultContext),
.init = default_init,
.print_footer = default_print_footer,
.print_chapter_header = default_print_chapter_header,
.print_section_header = default_print_section_header,
@@ -480,81 +500,51 @@ static const Writer default_writer = {
* Escape \n, \r, \\ and sep characters contained in s, and print the
* resulting string.
*/
static const char *c_escape_str(char **dst, size_t *dst_size,
const char *src, const char sep, void *log_ctx)
static const char *c_escape_str(AVBPrint *dst, const char *src, const char sep, void *log_ctx)
{
const char *p;
char *q;
size_t size = 1;
/* precompute size */
for (p = src; *p; p++, size++) {
ESCAPE_CHECK_SIZE(src, size, SIZE_MAX-2);
if (*p == '\n' || *p == '\r' || *p == '\\')
size++;
}
ESCAPE_REALLOC_BUF(dst_size, dst, src, size);
q = *dst;
for (p = src; *p; p++) {
switch (*src) {
case '\n': *q++ = '\\'; *q++ = 'n'; break;
case '\r': *q++ = '\\'; *q++ = 'r'; break;
case '\\': *q++ = '\\'; *q++ = '\\'; break;
case '\n': av_bprintf(dst, "%s", "\\n"); break;
case '\r': av_bprintf(dst, "%s", "\\r"); break;
case '\\': av_bprintf(dst, "%s", "\\\\"); break;
default:
if (*p == sep)
*q++ = '\\';
*q++ = *p;
av_bprint_chars(dst, '\\', 1);
av_bprint_chars(dst, *p, 1);
}
}
*q = 0;
return *dst;
return dst->str;
}
/**
* Quote fields containing special characters, check RFC4180.
*/
static const char *csv_escape_str(char **dst, size_t *dst_size,
const char *src, const char sep, void *log_ctx)
static const char *csv_escape_str(AVBPrint *dst, const char *src, const char sep, void *log_ctx)
{
const char *p;
char *q;
size_t size = 1;
int quote = 0;
/* precompute size */
for (p = src; *p; p++, size++) {
ESCAPE_CHECK_SIZE(src, size, SIZE_MAX-4);
/* check if input needs quoting */
for (p = src; *p; p++)
if (*p == '"' || *p == sep || *p == '\n' || *p == '\r')
if (!quote) {
quote = 1;
size += 2;
}
if (*p == '"')
size++;
}
quote = 1;
ESCAPE_REALLOC_BUF(dst_size, dst, src, size);
q = *dst;
p = src;
if (quote)
*q++ = '\"';
while (*p) {
av_bprint_chars(dst, '\"', 1);
for (p = src; *p; p++) {
if (*p == '"')
*q++ = '\"';
*q++ = *p++;
av_bprint_chars(dst, '\"', 1);
av_bprint_chars(dst, *p, 1);
}
if (quote)
*q++ = '\"';
*q = 0;
return *dst;
av_bprint_chars(dst, '\"', 1);
return dst->str;
}
static const char *none_escape_str(char **dst, size_t *dst_size,
const char *src, const char sep, void *log_ctx)
static const char *none_escape_str(AVBPrint *dst, const char *src, const char sep, void *log_ctx)
{
return src;
}
@@ -564,13 +554,11 @@ typedef struct CompactContext {
char *item_sep_str;
char item_sep;
int nokey;
char *buf;
size_t buf_size;
char *escape_mode_str;
const char * (*escape_str)(char **dst, size_t *dst_size,
const char *src, const char sep, void *log_ctx);
const char * (*escape_str)(AVBPrint *dst, const char *src, const char sep, void *log_ctx);
} CompactContext;
#undef OFFSET
#define OFFSET(x) offsetof(CompactContext, x)
static const AVOption compact_options[]= {
@@ -614,10 +602,6 @@ static av_cold int compact_init(WriterContext *wctx, const char *args, void *opa
}
compact->item_sep = compact->item_sep_str[0];
compact->buf_size = ESCAPE_INIT_BUF_SIZE;
if (!(compact->buf = av_malloc(compact->buf_size)))
return AVERROR(ENOMEM);
if (!strcmp(compact->escape_mode_str, "none")) compact->escape_str = none_escape_str;
else if (!strcmp(compact->escape_mode_str, "c" )) compact->escape_str = c_escape_str;
else if (!strcmp(compact->escape_mode_str, "csv" )) compact->escape_str = csv_escape_str;
@@ -634,7 +618,6 @@ static av_cold void compact_uninit(WriterContext *wctx)
CompactContext *compact = wctx->priv;
av_freep(&compact->item_sep_str);
av_freep(&compact->buf);
av_freep(&compact->escape_mode_str);
}
@@ -653,12 +636,14 @@ static void compact_print_section_footer(WriterContext *wctx, const char *sectio
static void compact_print_str(WriterContext *wctx, const char *key, const char *value)
{
CompactContext *compact = wctx->priv;
AVBPrint buf;
if (wctx->nb_item) printf("%c", compact->item_sep);
if (!compact->nokey)
printf("%s=", key);
printf("%s", compact->escape_str(&compact->buf, &compact->buf_size,
value, compact->item_sep, wctx));
av_bprint_init(&buf, 1, AV_BPRINT_SIZE_UNLIMITED);
printf("%s", compact->escape_str(&buf, value, compact->item_sep, wctx));
av_bprint_finalize(&buf, NULL);
}
static void compact_print_int(WriterContext *wctx, const char *key, long long int value)
@@ -675,14 +660,20 @@ static void compact_show_tags(WriterContext *wctx, AVDictionary *dict)
{
CompactContext *compact = wctx->priv;
AVDictionaryEntry *tag = NULL;
AVBPrint buf;
while ((tag = av_dict_get(dict, "", tag, AV_DICT_IGNORE_SUFFIX))) {
if (wctx->nb_item) printf("%c", compact->item_sep);
if (!compact->nokey)
printf("tag:%s=", compact->escape_str(&compact->buf, &compact->buf_size,
tag->key, compact->item_sep, wctx));
printf("%s", compact->escape_str(&compact->buf, &compact->buf_size,
tag->value, compact->item_sep, wctx));
if (!compact->nokey) {
av_bprint_init(&buf, 1, AV_BPRINT_SIZE_UNLIMITED);
printf("tag:%s=", compact->escape_str(&buf, tag->key, compact->item_sep, wctx));
av_bprint_finalize(&buf, NULL);
}
av_bprint_init(&buf, 1, AV_BPRINT_SIZE_UNLIMITED);
printf("%s", compact->escape_str(&buf, tag->value, compact->item_sep, wctx));
av_bprint_finalize(&buf, NULL);
}
}
@@ -724,8 +715,6 @@ static const Writer csv_writer = {
typedef struct {
const AVClass *class;
int multiple_entries; ///< tells if the given chapter requires multiple entries
char *buf;
size_t buf_size;
int print_packets_and_frames;
int indent_level;
int compact;
@@ -769,52 +758,27 @@ static av_cold int json_init(WriterContext *wctx, const char *args, void *opaque
json->item_sep = json->compact ? ", " : ",\n";
json->item_start_end = json->compact ? " " : "\n";
json->buf_size = ESCAPE_INIT_BUF_SIZE;
if (!(json->buf = av_malloc(json->buf_size)))
return AVERROR(ENOMEM);
return 0;
}
static av_cold void json_uninit(WriterContext *wctx)
{
JSONContext *json = wctx->priv;
av_freep(&json->buf);
}
static const char *json_escape_str(char **dst, size_t *dst_size, const char *src,
void *log_ctx)
static const char *json_escape_str(AVBPrint *dst, const char *src, void *log_ctx)
{
static const char json_escape[] = {'"', '\\', '\b', '\f', '\n', '\r', '\t', 0};
static const char json_subst[] = {'"', '\\', 'b', 'f', 'n', 'r', 't', 0};
const char *p;
char *q;
size_t size = 1;
// compute the length of the escaped string
for (p = src; *p; p++) {
ESCAPE_CHECK_SIZE(src, size, SIZE_MAX-6);
if (strchr(json_escape, *p)) size += 2; // simple escape
else if ((unsigned char)*p < 32) size += 6; // handle non-printable chars
else size += 1; // char copy
}
ESCAPE_REALLOC_BUF(dst_size, dst, src, size);
q = *dst;
for (p = src; *p; p++) {
char *s = strchr(json_escape, *p);
if (s) {
*q++ = '\\';
*q++ = json_subst[s - json_escape];
av_bprint_chars(dst, '\\', 1);
av_bprint_chars(dst, json_subst[s - json_escape], 1);
} else if ((unsigned char)*p < 32) {
snprintf(q, 7, "\\u00%02x", *p & 0xff);
q += 6;
av_bprintf(dst, "\\u00%02x", *p & 0xff);
} else {
*q++ = *p;
av_bprint_chars(dst, *p, 1);
}
}
*q = 0;
return *dst;
return dst->str;
}
static void json_print_header(WriterContext *wctx)
@@ -836,6 +800,7 @@ static void json_print_footer(WriterContext *wctx)
static void json_print_chapter_header(WriterContext *wctx, const char *chapter)
{
JSONContext *json = wctx->priv;
AVBPrint buf;
if (wctx->nb_chapter)
printf(",");
@@ -845,7 +810,9 @@ static void json_print_chapter_header(WriterContext *wctx, const char *chapter)
!strcmp(chapter, "streams") || !strcmp(chapter, "library_versions");
if (json->multiple_entries) {
JSON_INDENT();
printf("\"%s\": [\n", json_escape_str(&json->buf, &json->buf_size, chapter, wctx));
av_bprint_init(&buf, 1, AV_BPRINT_SIZE_UNLIMITED);
printf("\"%s\": [\n", json_escape_str(&buf, chapter, wctx));
av_bprint_finalize(&buf, NULL);
json->print_packets_and_frames = !strcmp(chapter, "packets_and_frames");
json->indent_level++;
}
@@ -896,10 +863,15 @@ static void json_print_section_footer(WriterContext *wctx, const char *section)
static inline void json_print_item_str(WriterContext *wctx,
const char *key, const char *value)
{
JSONContext *json = wctx->priv;
AVBPrint buf;
printf("\"%s\":", json_escape_str(&json->buf, &json->buf_size, key, wctx));
printf(" \"%s\"", json_escape_str(&json->buf, &json->buf_size, value, wctx));
av_bprint_init(&buf, 1, AV_BPRINT_SIZE_UNLIMITED);
printf("\"%s\":", json_escape_str(&buf, key, wctx));
av_bprint_finalize(&buf, NULL);
av_bprint_init(&buf, 1, AV_BPRINT_SIZE_UNLIMITED);
printf(" \"%s\"", json_escape_str(&buf, value, wctx));
av_bprint_finalize(&buf, NULL);
}
static void json_print_str(WriterContext *wctx, const char *key, const char *value)
@@ -915,12 +887,15 @@ static void json_print_str(WriterContext *wctx, const char *key, const char *val
static void json_print_int(WriterContext *wctx, const char *key, long long int value)
{
JSONContext *json = wctx->priv;
AVBPrint buf;
if (wctx->nb_item) printf("%s", json->item_sep);
if (!json->compact)
JSON_INDENT();
printf("\"%s\": %lld",
json_escape_str(&json->buf, &json->buf_size, key, wctx), value);
av_bprint_init(&buf, 1, AV_BPRINT_SIZE_UNLIMITED);
printf("\"%s\": %lld", json_escape_str(&buf, key, wctx), value);
av_bprint_finalize(&buf, NULL);
}
static void json_show_tags(WriterContext *wctx, AVDictionary *dict)
@@ -953,7 +928,6 @@ static const Writer json_writer = {
.name = "json",
.priv_size = sizeof(JSONContext),
.init = json_init,
.uninit = json_uninit,
.print_header = json_print_header,
.print_footer = json_print_footer,
.print_chapter_header = json_print_chapter_header,
@@ -975,8 +949,6 @@ typedef struct {
int indent_level;
int fully_qualified;
int xsd_strict;
char *buf;
size_t buf_size;
} XMLContext;
#undef OFFSET
@@ -1036,61 +1008,25 @@ static av_cold int xml_init(WriterContext *wctx, const char *args, void *opaque)
}
}
xml->buf_size = ESCAPE_INIT_BUF_SIZE;
if (!(xml->buf = av_malloc(xml->buf_size)))
return AVERROR(ENOMEM);
return 0;
}
static av_cold void xml_uninit(WriterContext *wctx)
{
XMLContext *xml = wctx->priv;
av_freep(&xml->buf);
}
static const char *xml_escape_str(char **dst, size_t *dst_size, const char *src,
void *log_ctx)
static const char *xml_escape_str(AVBPrint *dst, const char *src, void *log_ctx)
{
const char *p;
char *q;
size_t size = 1;
/* precompute size */
for (p = src; *p; p++, size++) {
ESCAPE_CHECK_SIZE(src, size, SIZE_MAX-10);
for (p = src; *p; p++) {
switch (*p) {
case '&' : size += strlen("&amp;"); break;
case '<' : size += strlen("&lt;"); break;
case '>' : size += strlen("&gt;"); break;
case '\"': size += strlen("&quot;"); break;
case '\'': size += strlen("&apos;"); break;
default: size++;
case '&' : av_bprintf(dst, "%s", "&amp;"); break;
case '<' : av_bprintf(dst, "%s", "&lt;"); break;
case '>' : av_bprintf(dst, "%s", "&gt;"); break;
case '\"': av_bprintf(dst, "%s", "&quot;"); break;
case '\'': av_bprintf(dst, "%s", "&apos;"); break;
default: av_bprint_chars(dst, *p, 1);
}
}
ESCAPE_REALLOC_BUF(dst_size, dst, src, size);
#define COPY_STR(str) { \
const char *s = str; \
while (*s) \
*q++ = *s++; \
}
p = src;
q = *dst;
while (*p) {
switch (*p) {
case '&' : COPY_STR("&amp;"); break;
case '<' : COPY_STR("&lt;"); break;
case '>' : COPY_STR("&gt;"); break;
case '\"': COPY_STR("&quot;"); break;
case '\'': COPY_STR("&apos;"); break;
default: *q++ = *p;
}
p++;
}
*q = 0;
return *dst;
return dst->str;
}
static void xml_print_header(WriterContext *wctx)
@@ -1165,11 +1101,13 @@ static void xml_print_section_footer(WriterContext *wctx, const char *section)
static void xml_print_str(WriterContext *wctx, const char *key, const char *value)
{
XMLContext *xml = wctx->priv;
AVBPrint buf;
if (wctx->nb_item)
printf(" ");
printf("%s=\"%s\"", key, xml_escape_str(&xml->buf, &xml->buf_size, value, wctx));
av_bprint_init(&buf, 1, AV_BPRINT_SIZE_UNLIMITED);
printf("%s=\"%s\"", key, xml_escape_str(&buf, value, wctx));
av_bprint_finalize(&buf, NULL);
}
static void xml_print_int(WriterContext *wctx, const char *key, long long int value)
@@ -1184,6 +1122,7 @@ static void xml_show_tags(WriterContext *wctx, AVDictionary *dict)
XMLContext *xml = wctx->priv;
AVDictionaryEntry *tag = NULL;
int is_first = 1;
AVBPrint buf;
xml->indent_level++;
while ((tag = av_dict_get(dict, "", tag, AV_DICT_IGNORE_SUFFIX))) {
@@ -1194,10 +1133,14 @@ static void xml_show_tags(WriterContext *wctx, AVDictionary *dict)
is_first = 0;
}
XML_INDENT();
printf("<tag key=\"%s\"",
xml_escape_str(&xml->buf, &xml->buf_size, tag->key, wctx));
printf(" value=\"%s\"/>\n",
xml_escape_str(&xml->buf, &xml->buf_size, tag->value, wctx));
av_bprint_init(&buf, 1, AV_BPRINT_SIZE_UNLIMITED);
printf("<tag key=\"%s\"", xml_escape_str(&buf, tag->key, wctx));
av_bprint_finalize(&buf, NULL);
av_bprint_init(&buf, 1, AV_BPRINT_SIZE_UNLIMITED);
printf(" value=\"%s\"/>\n", xml_escape_str(&buf, tag->value, wctx));
av_bprint_finalize(&buf, NULL);
}
xml->indent_level--;
}
@@ -1206,7 +1149,6 @@ static Writer xml_writer = {
.name = "xml",
.priv_size = sizeof(XMLContext),
.init = xml_init,
.uninit = xml_uninit,
.print_header = xml_print_header,
.print_footer = xml_print_footer,
.print_chapter_header = xml_print_chapter_header,
@@ -1235,13 +1177,9 @@ static void writer_register_all(void)
}
#define print_fmt(k, f, ...) do { \
if (fast_asprintf(&pbuf, f, __VA_ARGS__)) \
writer_print_string(w, k, pbuf.s, 0); \
} while (0)
#define print_fmt_opt(k, f, ...) do { \
if (fast_asprintf(&pbuf, f, __VA_ARGS__)) \
writer_print_string(w, k, pbuf.s, 1); \
av_bprint_clear(&pbuf); \
av_bprintf(&pbuf, f, __VA_ARGS__); \
writer_print_string(w, k, pbuf.str, 0); \
} while (0)
#define print_int(k, v) writer_print_integer(w, k, v)
@@ -1259,9 +1197,11 @@ static void show_packet(WriterContext *w, AVFormatContext *fmt_ctx, AVPacket *pk
{
char val_str[128];
AVStream *st = fmt_ctx->streams[pkt->stream_index];
struct print_buf pbuf = {.s = NULL};
AVBPrint pbuf;
const char *s;
av_bprint_init(&pbuf, 1, AV_BPRINT_SIZE_UNLIMITED);
print_section_header("packet");
s = av_get_media_type_string(st->codec->codec_type);
if (s) print_str ("codec_type", s);
@@ -1279,15 +1219,17 @@ static void show_packet(WriterContext *w, AVFormatContext *fmt_ctx, AVPacket *pk
print_fmt("flags", "%c", pkt->flags & AV_PKT_FLAG_KEY ? 'K' : '_');
print_section_footer("packet");
av_free(pbuf.s);
av_bprint_finalize(&pbuf, NULL);
fflush(stdout);
}
static void show_frame(WriterContext *w, AVFrame *frame, AVStream *stream)
{
struct print_buf pbuf = {.s = NULL};
AVBPrint pbuf;
const char *s;
av_bprint_init(&pbuf, 1, AV_BPRINT_SIZE_UNLIMITED);
print_section_header("frame");
s = av_get_media_type_string(stream->codec->codec_type);
@@ -1334,7 +1276,7 @@ static void show_frame(WriterContext *w, AVFrame *frame, AVStream *stream)
print_section_footer("frame");
av_free(pbuf.s);
av_bprint_finalize(&pbuf, NULL);
fflush(stdout);
}
@@ -1359,7 +1301,7 @@ static av_always_inline int get_decoded_frame(AVFormatContext *fmt_ctx,
return ret;
}
static void show_packets(WriterContext *w, AVFormatContext *fmt_ctx)
static void read_packets(WriterContext *w, AVFormatContext *fmt_ctx)
{
AVPacket pkt, pkt1;
AVFrame frame;
@@ -1368,18 +1310,23 @@ static void show_packets(WriterContext *w, AVFormatContext *fmt_ctx)
av_init_packet(&pkt);
while (!av_read_frame(fmt_ctx, &pkt)) {
if (do_show_packets)
show_packet(w, fmt_ctx, &pkt, i++);
if (do_show_frames) {
if (do_read_packets) {
if (do_show_packets)
show_packet(w, fmt_ctx, &pkt, i++);
nb_streams_packets[pkt.stream_index]++;
}
if (do_read_frames) {
pkt1 = pkt;
while (1) {
while (pkt1.size) {
avcodec_get_frame_defaults(&frame);
ret = get_decoded_frame(fmt_ctx, &frame, &got_frame, &pkt1);
if (ret < 0 || !got_frame)
break;
show_frame(w, &frame, fmt_ctx->streams[pkt.stream_index]);
if (do_show_frames)
show_frame(w, &frame, fmt_ctx->streams[pkt.stream_index]);
pkt1.data += ret;
pkt1.size -= ret;
nb_streams_frames[pkt.stream_index]++;
}
}
av_free_packet(&pkt);
@@ -1390,8 +1337,13 @@ static void show_packets(WriterContext *w, AVFormatContext *fmt_ctx)
//Flush remaining frames that are cached in the decoder
for (i = 0; i < fmt_ctx->nb_streams; i++) {
pkt.stream_index = i;
while (get_decoded_frame(fmt_ctx, &frame, &got_frame, &pkt) >= 0 && got_frame)
show_frame(w, &frame, fmt_ctx->streams[pkt.stream_index]);
while (get_decoded_frame(fmt_ctx, &frame, &got_frame, &pkt) >= 0 && got_frame) {
if (do_read_frames) {
if (do_show_frames)
show_frame(w, &frame, fmt_ctx->streams[pkt.stream_index]);
nb_streams_frames[pkt.stream_index]++;
}
}
}
}
@@ -1403,7 +1355,9 @@ static void show_stream(WriterContext *w, AVFormatContext *fmt_ctx, int stream_i
char val_str[128];
const char *s;
AVRational display_aspect_ratio;
struct print_buf pbuf = {.s = NULL};
AVBPrint pbuf;
av_bprint_init(&pbuf, 1, AV_BPRINT_SIZE_UNLIMITED);
print_section_header("stream");
@@ -1453,13 +1407,9 @@ static void show_stream(WriterContext *w, AVFormatContext *fmt_ctx, int stream_i
else print_str_opt("pix_fmt", "unknown");
print_int("level", dec_ctx->level);
if (dec_ctx->timecode_frame_start >= 0) {
uint32_t tc = dec_ctx->timecode_frame_start;
print_fmt("timecode", "%02d:%02d:%02d%c%02d",
tc>>19 & 0x1f, // hours
tc>>13 & 0x3f, // minutes
tc>>6 & 0x3f, // seconds
tc & 1<<24 ? ';' : ':', // drop
tc & 0x3f); // frames
char tcbuf[AV_TIMECODE_STR_SIZE];
av_timecode_make_mpeg_tc_string(tcbuf, dec_ctx->timecode_frame_start);
print_str("timecode", tcbuf);
} else {
print_str_opt("timecode", "N/A");
}
@@ -1496,12 +1446,18 @@ static void show_stream(WriterContext *w, AVFormatContext *fmt_ctx, int stream_i
print_fmt("time_base", "%d/%d", stream->time_base.num, stream->time_base.den);
print_time("start_time", stream->start_time, &stream->time_base);
print_time("duration", stream->duration, &stream->time_base);
if (dec_ctx->bit_rate > 0) print_val ("bit_rate", dec_ctx->bit_rate, unit_bit_per_second_str);
else print_str_opt("bit_rate", "N/A");
if (stream->nb_frames) print_fmt ("nb_frames", "%"PRId64, stream->nb_frames);
else print_str_opt("nb_frames", "N/A");
if (nb_streams_frames[stream_idx]) print_fmt ("nb_read_frames", "%"PRIu64, nb_streams_frames[stream_idx]);
else print_str_opt("nb_read_frames", "N/A");
if (nb_streams_packets[stream_idx]) print_fmt ("nb_read_packets", "%"PRIu64, nb_streams_packets[stream_idx]);
else print_str_opt("nb_read_packets", "N/A");
show_tags(stream->metadata);
print_section_footer("stream");
av_free(pbuf.s);
av_bprint_finalize(&pbuf, NULL);
fflush(stdout);
}
@@ -1593,6 +1549,19 @@ static int open_input_file(AVFormatContext **fmt_ctx_ptr, const char *filename)
return 0;
}
static void close_input_file(AVFormatContext **ctx_ptr)
{
int i;
AVFormatContext *fmt_ctx = *ctx_ptr;
/* close decoder for each stream */
for (i = 0; i < fmt_ctx->nb_streams; i++)
if (fmt_ctx->streams[i]->codec->codec_id != CODEC_ID_NONE)
avcodec_close(fmt_ctx->streams[i]->codec);
avformat_close_input(ctx_ptr);
}
#define PRINT_CHAPTER(name) do { \
if (do_show_ ## name) { \
writer_print_chapter_header(wctx, #name); \
@@ -1604,11 +1573,16 @@ static int open_input_file(AVFormatContext **fmt_ctx_ptr, const char *filename)
static int probe_file(WriterContext *wctx, const char *filename)
{
AVFormatContext *fmt_ctx;
int ret, i;
int ret;
do_read_frames = do_show_frames || do_count_frames;
do_read_packets = do_show_packets || do_count_packets;
ret = open_input_file(&fmt_ctx, filename);
if (ret >= 0) {
if (do_show_packets || do_show_frames) {
nb_streams_frames = av_calloc(fmt_ctx->nb_streams, sizeof(*nb_streams_frames));
nb_streams_packets = av_calloc(fmt_ctx->nb_streams, sizeof(*nb_streams_packets));
if (do_read_frames || do_read_packets) {
const char *chapter;
if (do_show_frames && do_show_packets &&
wctx->writer->flags & WRITER_FLAG_PUT_PACKETS_AND_FRAMES_IN_SAME_CHAPTER)
@@ -1617,18 +1591,18 @@ static int probe_file(WriterContext *wctx, const char *filename)
chapter = "packets";
else // (!do_show_packets && do_show_frames)
chapter = "frames";
writer_print_chapter_header(wctx, chapter);
show_packets(wctx, fmt_ctx);
writer_print_chapter_footer(wctx, chapter);
if (do_show_frames || do_show_packets)
writer_print_chapter_header(wctx, chapter);
read_packets(wctx, fmt_ctx);
if (do_show_frames || do_show_packets)
writer_print_chapter_footer(wctx, chapter);
}
PRINT_CHAPTER(streams);
PRINT_CHAPTER(format);
for (i = 0; i < fmt_ctx->nb_streams; i++)
if (fmt_ctx->streams[i]->codec->codec_id != CODEC_ID_NONE)
avcodec_close(fmt_ctx->streams[i]->codec);
avformat_close_input(&fmt_ctx);
close_input_file(&fmt_ctx);
av_freep(&nb_streams_frames);
av_freep(&nb_streams_packets);
}
return ret;
}
@@ -1641,7 +1615,8 @@ static void show_usage(void)
static void ffprobe_show_program_version(WriterContext *w)
{
struct print_buf pbuf = {.s = NULL};
AVBPrint pbuf;
av_bprint_init(&pbuf, 1, AV_BPRINT_SIZE_UNLIMITED);
writer_print_chapter_header(w, "program_version");
print_section_header("program_version");
@@ -1656,7 +1631,7 @@ static void ffprobe_show_program_version(WriterContext *w)
print_section_footer("program_version");
writer_print_chapter_footer(w, "program_version");
av_free(pbuf.s);
av_bprint_finalize(&pbuf, NULL);
}
#define SHOW_LIB_VERSION(libname, LIBNAME) \
@@ -1697,6 +1672,13 @@ static int opt_format(const char *opt, const char *arg)
return 0;
}
static int opt_show_format_entry(const char *opt, const char *arg)
{
do_show_format = 1;
av_dict_set(&fmt_entries_to_show, arg, "", 0);
return 0;
}
static void opt_input_file(void *optctx, const char *arg)
{
if (input_filename) {
@@ -1754,8 +1736,12 @@ static const OptionDef options[] = {
{ "show_error", OPT_BOOL, {(void*)&do_show_error} , "show probing error" },
{ "show_format", OPT_BOOL, {(void*)&do_show_format} , "show format/container info" },
{ "show_frames", OPT_BOOL, {(void*)&do_show_frames} , "show frames info" },
{ "show_format_entry", HAS_ARG, {(void*)opt_show_format_entry},
"show a particular entry from the format/container info", "entry" },
{ "show_packets", OPT_BOOL, {(void*)&do_show_packets}, "show packets info" },
{ "show_streams", OPT_BOOL, {(void*)&do_show_streams}, "show streams info" },
{ "count_frames", OPT_BOOL, {(void*)&do_count_frames}, "count the number of frames per stream" },
{ "count_packets", OPT_BOOL, {(void*)&do_count_packets}, "count the number of packets per stream" },
{ "show_program_version", OPT_BOOL, {(void*)&do_show_program_version}, "show ffprobe version" },
{ "show_library_versions", OPT_BOOL, {(void*)&do_show_library_versions}, "show library versions" },
{ "show_versions", 0, {(void*)&opt_show_versions}, "show program and library versions" },
@@ -1827,6 +1813,10 @@ int main(int argc, char **argv)
end:
av_freep(&print_format);
uninit_opts();
av_dict_free(&fmt_entries_to_show);
avformat_network_deinit();
return ret;
+20 -12
View File
@@ -30,7 +30,7 @@
#include <string.h>
#include <stdlib.h>
#include "libavformat/avformat.h"
// FIXME those are internal headers, avserver _really_ shouldn't use them
// FIXME those are internal headers, ffserver _really_ shouldn't use them
#include "libavformat/ffm.h"
#include "libavformat/network.h"
#include "libavformat/os_support.h"
@@ -339,8 +339,7 @@ static int resolve_host(struct in_addr *sin_addr, const char *hostname)
if (!ff_inet_aton(hostname, sin_addr)) {
#if HAVE_GETADDRINFO
struct addrinfo *ai, *cur;
struct addrinfo hints;
memset(&hints, 0, sizeof(hints));
struct addrinfo hints = { 0 };
hints.ai_family = AF_INET;
if (getaddrinfo(hostname, NULL, &hints, &ai))
return -1;
@@ -1872,7 +1871,7 @@ static int http_parse_request(HTTPContext *c)
static void fmt_bytecount(AVIOContext *pb, int64_t count)
{
static const char *suffix = " kMGTP";
static const char suffix[] = " kMGTP";
const char *s;
for (s = suffix; count >= 100000 && s[1]; count /= 1000, s++);
@@ -2127,12 +2126,13 @@ static int open_input_stream(HTTPContext *c, const char *info)
char buf[128];
char input_filename[1024];
AVFormatContext *s = NULL;
int i, ret;
int buf_size, i, ret;
int64_t stream_pos;
/* find file name */
if (c->stream->feed) {
strcpy(input_filename, c->stream->feed->feed_filename);
buf_size = FFM_PACKET_SIZE;
/* compute position (absolute time) */
if (av_find_info_tag(buf, sizeof(buf), "date", info)) {
if ((ret = av_parse_time(&stream_pos, buf, 0)) < 0)
@@ -2144,6 +2144,7 @@ static int open_input_stream(HTTPContext *c, const char *info)
stream_pos = av_gettime() - c->stream->prebuffer * (int64_t)1000;
} else {
strcpy(input_filename, c->stream->feed_filename);
buf_size = 0;
/* compute position (relative time) */
if (av_find_info_tag(buf, sizeof(buf), "date", info)) {
if ((ret = av_parse_time(&stream_pos, buf, 1)) < 0)
@@ -2159,6 +2160,10 @@ static int open_input_stream(HTTPContext *c, const char *info)
http_log("could not open %s: %d\n", input_filename, ret);
return -1;
}
/* set buffer size */
if (buf_size > 0) ffio_set_buf_size(s->pb, buf_size);
s->flags |= AVFMT_FLAG_GENPTS;
c->fmt_in = s;
if (strcmp(s->iformat->name, "ffm") && avformat_find_stream_info(c->fmt_in, NULL) < 0) {
@@ -2580,8 +2585,11 @@ static int http_start_receive_data(HTTPContext *c)
if (c->stream->truncate) {
/* truncate feed file */
ffm_write_write_index(c->feed_fd, FFM_PACKET_SIZE);
ftruncate(c->feed_fd, FFM_PACKET_SIZE);
http_log("Truncating feed file '%s'\n", c->stream->feed_filename);
if (ftruncate(c->feed_fd, FFM_PACKET_SIZE) < 0) {
http_log("Error truncating feed file: %s\n", strerror(errno));
return -1;
}
} else {
if ((c->stream->feed_write_index = ffm_read_write_index(fd)) < 0) {
http_log("Error reading write index from feed file: %s\n", strerror(errno));
@@ -2829,7 +2837,7 @@ static int rtsp_parse_request(HTTPContext *c)
char protocol[32];
char line[1024];
int len;
RTSPMessageHeader header1, *header = &header1;
RTSPMessageHeader header1 = { 0 }, *header = &header1;
c->buffer_ptr[0] = '\0';
p = c->buffer;
@@ -2855,7 +2863,6 @@ static int rtsp_parse_request(HTTPContext *c)
}
/* parse each header line */
memset(header, 0, sizeof(*header));
/* skip to next line */
while (*p != '\n' && *p != '\0')
p++;
@@ -3662,6 +3669,8 @@ static void build_feed_streams(void)
int matches = 0;
if (avformat_open_input(&s, feed->feed_filename, NULL, NULL) >= 0) {
/* set buffer size */
ffio_set_buf_size(s->pb, FFM_PACKET_SIZE);
/* Now see if it matches */
if (s->nb_streams == feed->nb_streams) {
matches = 1;
@@ -4221,8 +4230,8 @@ static int parse_ffconfig(const char *filename)
}
stream->fmt = ffserver_guess_format(NULL, stream->filename, NULL);
avcodec_get_context_defaults2(&video_enc, AVMEDIA_TYPE_VIDEO);
avcodec_get_context_defaults2(&audio_enc, AVMEDIA_TYPE_AUDIO);
avcodec_get_context_defaults3(&video_enc, NULL);
avcodec_get_context_defaults3(&audio_enc, NULL);
audio_id = CODEC_ID_NONE;
video_id = CODEC_ID_NONE;
@@ -4656,7 +4665,7 @@ static const OptionDef options[] = {
int main(int argc, char **argv)
{
struct sigaction sigact;
struct sigaction sigact = { { 0 } };
parse_loglevel(argc, argv, options);
av_register_all();
@@ -4674,7 +4683,6 @@ int main(int argc, char **argv)
av_lfg_init(&random_state, av_get_random_seed());
memset(&sigact, 0, sizeof(sigact));
sigact.sa_handler = handle_child_exit;
sigact.sa_flags = SA_NOCLDSTOP | SA_RESTART;
sigaction(SIGCHLD, &sigact, 0);
+478 -424
View File
File diff suppressed because it is too large Load Diff
+119 -116
View File
@@ -38,20 +38,20 @@
#include "avcodec.h"
static const enum PixelFormat pixfmt_rgb24[] = {PIX_FMT_BGR24, PIX_FMT_RGB32, PIX_FMT_NONE};
static const enum PixelFormat pixfmt_rgb24[] = {
PIX_FMT_BGR24, PIX_FMT_RGB32, PIX_FMT_NONE };
/*
* Decoder context
*/
typedef struct EightBpsContext {
AVCodecContext *avctx;
AVFrame pic;
AVCodecContext *avctx;
AVFrame pic;
unsigned char planes;
unsigned char planemap[4];
unsigned char planes;
unsigned char planemap[4];
uint32_t pal[256];
uint32_t pal[256];
} EightBpsContext;
@@ -60,87 +60,90 @@ typedef struct EightBpsContext {
* Decode a frame
*
*/
static int decode_frame(AVCodecContext *avctx, void *data, int *data_size, AVPacket *avpkt)
static int decode_frame(AVCodecContext *avctx, void *data,
int *data_size, AVPacket *avpkt)
{
const uint8_t *buf = avpkt->data;
int buf_size = avpkt->size;
EightBpsContext * const c = avctx->priv_data;
const unsigned char *encoded = buf;
unsigned char *pixptr, *pixptr_end;
unsigned int height = avctx->height; // Real image height
unsigned int dlen, p, row;
const unsigned char *lp, *dp;
unsigned char count;
unsigned int planes = c->planes;
unsigned char *planemap = c->planemap;
const uint8_t *buf = avpkt->data;
int buf_size = avpkt->size;
EightBpsContext * const c = avctx->priv_data;
const unsigned char *encoded = buf;
unsigned char *pixptr, *pixptr_end;
unsigned int height = avctx->height; // Real image height
unsigned int dlen, p, row;
const unsigned char *lp, *dp;
unsigned char count;
unsigned int planes = c->planes;
unsigned char *planemap = c->planemap;
if(c->pic.data[0])
avctx->release_buffer(avctx, &c->pic);
if (c->pic.data[0])
avctx->release_buffer(avctx, &c->pic);
c->pic.reference = 0;
c->pic.buffer_hints = FF_BUFFER_HINTS_VALID;
if(avctx->get_buffer(avctx, &c->pic) < 0){
av_log(avctx, AV_LOG_ERROR, "get_buffer() failed\n");
return -1;
}
c->pic.reference = 0;
c->pic.buffer_hints = FF_BUFFER_HINTS_VALID;
if (avctx->get_buffer(avctx, &c->pic) < 0){
av_log(avctx, AV_LOG_ERROR, "get_buffer() failed\n");
return -1;
}
/* Set data pointer after line lengths */
dp = encoded + planes * (height << 1);
/* Set data pointer after line lengths */
dp = encoded + planes * (height << 1);
for (p = 0; p < planes; p++) {
/* Lines length pointer for this plane */
lp = encoded + p * (height << 1);
for (p = 0; p < planes; p++) {
/* Lines length pointer for this plane */
lp = encoded + p * (height << 1);
/* Decode a plane */
for(row = 0; row < height; row++) {
pixptr = c->pic.data[0] + row * c->pic.linesize[0] + planemap[p];
pixptr_end = pixptr + c->pic.linesize[0];
dlen = av_be2ne16(*(const unsigned short *)(lp+row*2));
/* Decode a row of this plane */
while(dlen > 0) {
if(dp + 1 >= buf+buf_size) return -1;
if ((count = *dp++) <= 127) {
count++;
dlen -= count + 1;
if (pixptr + count * planes > pixptr_end)
break;
if(dp + count > buf+buf_size) return -1;
while(count--) {
*pixptr = *dp++;
pixptr += planes;
}
} else {
count = 257 - count;
if (pixptr + count * planes > pixptr_end)
break;
while(count--) {
*pixptr = *dp;
pixptr += planes;
}
dp++;
dlen -= 2;
}
}
/* Decode a plane */
for (row = 0; row < height; row++) {
pixptr = c->pic.data[0] + row * c->pic.linesize[0] + planemap[p];
pixptr_end = pixptr + c->pic.linesize[0];
dlen = av_be2ne16(*(const unsigned short *)(lp + row * 2));
/* Decode a row of this plane */
while (dlen > 0) {
if (dp + 1 >= buf + buf_size)
return -1;
if ((count = *dp++) <= 127) {
count++;
dlen -= count + 1;
if (pixptr + count * planes > pixptr_end)
break;
if (dp + count > buf + buf_size)
return -1;
while (count--) {
*pixptr = *dp++;
pixptr += planes;
}
} else {
count = 257 - count;
if (pixptr + count * planes > pixptr_end)
break;
while (count--) {
*pixptr = *dp;
pixptr += planes;
}
dp++;
dlen -= 2;
}
}
}
}
if (avctx->bits_per_coded_sample <= 8) {
const uint8_t *pal = av_packet_get_side_data(avpkt,
AV_PKT_DATA_PALETTE,
NULL);
if (pal) {
c->pic.palette_has_changed = 1;
memcpy(c->pal, pal, AVPALETTE_SIZE);
}
if (avctx->bits_per_coded_sample <= 8) {
const uint8_t *pal = av_packet_get_side_data(avpkt,
AV_PKT_DATA_PALETTE,
NULL);
if (pal) {
c->pic.palette_has_changed = 1;
memcpy(c->pal, pal, AVPALETTE_SIZE);
}
memcpy (c->pic.data[1], c->pal, AVPALETTE_SIZE);
}
memcpy (c->pic.data[1], c->pal, AVPALETTE_SIZE);
}
*data_size = sizeof(AVFrame);
*(AVFrame*)data = c->pic;
*data_size = sizeof(AVFrame);
*(AVFrame*)data = c->pic;
/* always report that the buffer was completely consumed */
return buf_size;
/* always report that the buffer was completely consumed */
return buf_size;
}
@@ -151,47 +154,47 @@ static int decode_frame(AVCodecContext *avctx, void *data, int *data_size, AVPac
*/
static av_cold int decode_init(AVCodecContext *avctx)
{
EightBpsContext * const c = avctx->priv_data;
EightBpsContext * const c = avctx->priv_data;
c->avctx = avctx;
c->avctx = avctx;
c->pic.data[0] = NULL;
avcodec_get_frame_defaults(&c->pic);
c->pic.data[0] = NULL;
switch (avctx->bits_per_coded_sample) {
case 8:
avctx->pix_fmt = PIX_FMT_PAL8;
c->planes = 1;
c->planemap[0] = 0; // 1st plane is palette indexes
break;
case 24:
avctx->pix_fmt = avctx->get_format(avctx, pixfmt_rgb24);
c->planes = 3;
c->planemap[0] = 2; // 1st plane is red
c->planemap[1] = 1; // 2nd plane is green
c->planemap[2] = 0; // 3rd plane is blue
break;
case 32:
avctx->pix_fmt = PIX_FMT_RGB32;
c->planes = 4;
avcodec_get_frame_defaults(&c->pic);
switch (avctx->bits_per_coded_sample) {
case 8:
avctx->pix_fmt = PIX_FMT_PAL8;
c->planes = 1;
c->planemap[0] = 0; // 1st plane is palette indexes
break;
case 24:
avctx->pix_fmt = avctx->get_format(avctx, pixfmt_rgb24);
c->planes = 3;
c->planemap[0] = 2; // 1st plane is red
c->planemap[1] = 1; // 2nd plane is green
c->planemap[2] = 0; // 3rd plane is blue
break;
case 32:
avctx->pix_fmt = PIX_FMT_RGB32;
c->planes = 4;
#if HAVE_BIGENDIAN
c->planemap[0] = 1; // 1st plane is red
c->planemap[1] = 2; // 2nd plane is green
c->planemap[2] = 3; // 3rd plane is blue
c->planemap[3] = 0; // 4th plane is alpha
c->planemap[0] = 1; // 1st plane is red
c->planemap[1] = 2; // 2nd plane is green
c->planemap[2] = 3; // 3rd plane is blue
c->planemap[3] = 0; // 4th plane is alpha
#else
c->planemap[0] = 2; // 1st plane is red
c->planemap[1] = 1; // 2nd plane is green
c->planemap[2] = 0; // 3rd plane is blue
c->planemap[3] = 3; // 4th plane is alpha
c->planemap[0] = 2; // 1st plane is red
c->planemap[1] = 1; // 2nd plane is green
c->planemap[2] = 0; // 3rd plane is blue
c->planemap[3] = 3; // 4th plane is alpha
#endif
break;
default:
av_log(avctx, AV_LOG_ERROR, "Error: Unsupported color depth: %u.\n", avctx->bits_per_coded_sample);
return -1;
}
break;
default:
av_log(avctx, AV_LOG_ERROR, "Error: Unsupported color depth: %u.\n",
avctx->bits_per_coded_sample);
return -1;
}
return 0;
return 0;
}
@@ -204,12 +207,12 @@ static av_cold int decode_init(AVCodecContext *avctx)
*/
static av_cold int decode_end(AVCodecContext *avctx)
{
EightBpsContext * const c = avctx->priv_data;
EightBpsContext * const c = avctx->priv_data;
if (c->pic.data[0])
avctx->release_buffer(avctx, &c->pic);
if (c->pic.data[0])
avctx->release_buffer(avctx, &c->pic);
return 0;
return 0;
}
+112 -59
View File
@@ -3,7 +3,14 @@ include $(SUBDIR)../config.mak
NAME = avcodec
FFLIBS = avutil
HEADERS = avcodec.h avfft.h dxva2.h opt.h vaapi.h vda.h vdpau.h version.h xvmc.h
HEADERS = avcodec.h \
avfft.h \
dxva2.h \
vaapi.h \
vda.h \
vdpau.h \
version.h \
xvmc.h \
OBJS = allcodecs.o \
audioconvert.o \
@@ -39,6 +46,7 @@ OBJS-$(CONFIG_GOLOMB) += golomb.o
OBJS-$(CONFIG_H264DSP) += h264dsp.o h264idct.o
OBJS-$(CONFIG_H264PRED) += h264pred.o
OBJS-$(CONFIG_HUFFMAN) += huffman.o
OBJS-$(CONFIG_LIBXVID) += libxvid_rc.o
OBJS-$(CONFIG_LPC) += lpc.o
OBJS-$(CONFIG_LSP) += lsp.o
OBJS-$(CONFIG_MDCT) += mdct_fixed.o mdct_float.o
@@ -56,11 +64,13 @@ OBJS-$(CONFIG_VDPAU) += vdpau.o
OBJS-$(CONFIG_A64MULTI_ENCODER) += a64multienc.o elbg.o
OBJS-$(CONFIG_A64MULTI5_ENCODER) += a64multienc.o elbg.o
OBJS-$(CONFIG_AAC_DECODER) += aacdec.o aactab.o aacsbr.o aacps.o \
aacadtsdec.o mpeg4audio.o kbdwin.o
aacadtsdec.o mpeg4audio.o kbdwin.o \
sbrdsp.o aacpsdsp.o
OBJS-$(CONFIG_AAC_ENCODER) += aacenc.o aaccoder.o \
aacpsy.o aactab.o \
psymodel.o iirfilter.o \
mpeg4audio.o kbdwin.o
mpeg4audio.o kbdwin.o \
audio_frame_queue.o
OBJS-$(CONFIG_AASC_DECODER) += aasc.o msrledec.o
OBJS-$(CONFIG_AC3_DECODER) += ac3dec.o ac3dec_data.o ac3.o kbdwin.o
OBJS-$(CONFIG_AC3_ENCODER) += ac3enc_float.o ac3enc.o ac3tab.o \
@@ -94,11 +104,15 @@ OBJS-$(CONFIG_AURA2_DECODER) += aura.o
OBJS-$(CONFIG_AVRP_DECODER) += r210dec.o
OBJS-$(CONFIG_AVRP_ENCODER) += r210enc.o
OBJS-$(CONFIG_AVS_DECODER) += avs.o
OBJS-$(CONFIG_AVUI_DECODER) += avuidec.o
OBJS-$(CONFIG_AVUI_ENCODER) += avuienc.o
OBJS-$(CONFIG_AYUV_DECODER) += v408dec.o
OBJS-$(CONFIG_AYUV_ENCODER) += v408enc.o
OBJS-$(CONFIG_BETHSOFTVID_DECODER) += bethsoftvideo.o
OBJS-$(CONFIG_BFI_DECODER) += bfi.o
OBJS-$(CONFIG_BINK_DECODER) += bink.o binkdsp.o
OBJS-$(CONFIG_BINKAUDIO_DCT_DECODER) += binkaudio.o wma.o
OBJS-$(CONFIG_BINKAUDIO_RDFT_DECODER) += binkaudio.o wma.o
OBJS-$(CONFIG_BINKAUDIO_DCT_DECODER) += binkaudio.o wma.o wma_common.o
OBJS-$(CONFIG_BINKAUDIO_RDFT_DECODER) += binkaudio.o wma.o wma_common.o
OBJS-$(CONFIG_BINTEXT_DECODER) += bintext.o cga_data.o
OBJS-$(CONFIG_BMP_DECODER) += bmp.o msrledec.o
OBJS-$(CONFIG_BMP_ENCODER) += bmpenc.o
@@ -108,13 +122,15 @@ OBJS-$(CONFIG_C93_DECODER) += c93.o
OBJS-$(CONFIG_CAVS_DECODER) += cavs.o cavsdec.o cavsdsp.o \
mpeg12data.o mpegvideo.o
OBJS-$(CONFIG_CDGRAPHICS_DECODER) += cdgraphics.o
OBJS-$(CONFIG_CDXL_DECODER) += cdxl.o
OBJS-$(CONFIG_CINEPAK_DECODER) += cinepak.o
OBJS-$(CONFIG_CLJR_DECODER) += cljr.o
OBJS-$(CONFIG_CLJR_ENCODER) += cljr.o
OBJS-$(CONFIG_COOK_DECODER) += cook.o
OBJS-$(CONFIG_CSCD_DECODER) += cscd.o
OBJS-$(CONFIG_CYUV_DECODER) += cyuv.o
OBJS-$(CONFIG_DCA_DECODER) += dca.o synth_filter.o dcadsp.o
OBJS-$(CONFIG_DCA_DECODER) += dca.o synth_filter.o dcadsp.o \
dca_parser.o
OBJS-$(CONFIG_DCA_ENCODER) += dcaenc.o
OBJS-$(CONFIG_DIRAC_DECODER) += diracdec.o dirac.o diracdsp.o \
dirac_arith.o mpeg12data.o dwt.o
@@ -132,8 +148,8 @@ OBJS-$(CONFIG_DVBSUB_DECODER) += dvbsubdec.o
OBJS-$(CONFIG_DVBSUB_ENCODER) += dvbsub.o
OBJS-$(CONFIG_DVDSUB_DECODER) += dvdsubdec.o
OBJS-$(CONFIG_DVDSUB_ENCODER) += dvdsubenc.o
OBJS-$(CONFIG_DVVIDEO_DECODER) += dv.o dvdata.o
OBJS-$(CONFIG_DVVIDEO_ENCODER) += dv.o dvdata.o
OBJS-$(CONFIG_DVVIDEO_DECODER) += dvdec.o dv.o dvdata.o dv_profile.o
OBJS-$(CONFIG_DVVIDEO_ENCODER) += dv.o dvdata.o dv_profile.o
OBJS-$(CONFIG_DXA_DECODER) += dxa.o
OBJS-$(CONFIG_DXTORY_DECODER) += dxtory.o
OBJS-$(CONFIG_EAC3_DECODER) += eac3dec.o eac3_data.o
@@ -154,12 +170,13 @@ OBJS-$(CONFIG_EIGHTSVX_FIB_DECODER) += 8svx.o
OBJS-$(CONFIG_EIGHTSVX_RAW_DECODER) += 8svx.o
OBJS-$(CONFIG_ESCAPE124_DECODER) += escape124.o
OBJS-$(CONFIG_ESCAPE130_DECODER) += escape130.o
OBJS-$(CONFIG_EXR_DECODER) += exr.o
OBJS-$(CONFIG_FFV1_DECODER) += ffv1.o rangecoder.o
OBJS-$(CONFIG_FFV1_ENCODER) += ffv1.o rangecoder.o
OBJS-$(CONFIG_FFVHUFF_DECODER) += huffyuv.o
OBJS-$(CONFIG_FFVHUFF_ENCODER) += huffyuv.o
OBJS-$(CONFIG_FFWAVESYNTH_DECODER) += ffwavesynth.o
OBJS-$(CONFIG_FLAC_DECODER) += flacdec.o flacdata.o flac.o vorbis_data.o
OBJS-$(CONFIG_FLAC_DECODER) += flacdec.o flacdata.o flac.o
OBJS-$(CONFIG_FLAC_ENCODER) += flacenc.o flacdata.o flac.o vorbis_data.o
OBJS-$(CONFIG_FLASHSV_DECODER) += flashsv.o
OBJS-$(CONFIG_FLASHSV_ENCODER) += flashsvenc.o
@@ -177,9 +194,9 @@ OBJS-$(CONFIG_GIF_DECODER) += gifdec.o lzw.o
OBJS-$(CONFIG_GIF_ENCODER) += gif.o lzwenc.o
OBJS-$(CONFIG_GSM_DECODER) += gsmdec.o gsmdec_data.o msgsmdec.o
OBJS-$(CONFIG_GSM_MS_DECODER) += gsmdec.o gsmdec_data.o msgsmdec.o
OBJS-$(CONFIG_H261_DECODER) += h261dec.o h261.o \
OBJS-$(CONFIG_H261_DECODER) += h261dec.o h261.o h261data.o \
mpegvideo.o error_resilience.o
OBJS-$(CONFIG_H261_ENCODER) += h261enc.o h261.o \
OBJS-$(CONFIG_H261_ENCODER) += h261enc.o h261.o h261data.o \
mpegvideo_enc.o motion_est.o \
ratecontrol.o mpeg12data.o \
mpegvideo.o
@@ -214,6 +231,7 @@ OBJS-$(CONFIG_INDEO4_DECODER) += indeo4.o ivi_common.o ivi_dsp.o
OBJS-$(CONFIG_INDEO5_DECODER) += indeo5.o ivi_common.o ivi_dsp.o
OBJS-$(CONFIG_INTERPLAY_DPCM_DECODER) += dpcm.o
OBJS-$(CONFIG_INTERPLAY_VIDEO_DECODER) += interplayvideo.o
OBJS-$(CONFIG_JACOSUB_DECODER) += jacosubdec.o ass.o
OBJS-$(CONFIG_JPEG2000_DECODER) += j2kdec.o mqcdec.o mqc.o j2k.o j2k_dwt.o
OBJS-$(CONFIG_JPEG2000_ENCODER) += j2kenc.o mqcenc.o mqc.o j2k.o j2k_dwt.o
OBJS-$(CONFIG_JPEGLS_DECODER) += jpeglsdec.o jpegls.o \
@@ -232,6 +250,7 @@ OBJS-$(CONFIG_MACE3_DECODER) += mace.o
OBJS-$(CONFIG_MACE6_DECODER) += mace.o
OBJS-$(CONFIG_MDEC_DECODER) += mdec.o mpeg12.o mpeg12data.o \
mpegvideo.o error_resilience.o
OBJS-$(CONFIG_MICRODVD_DECODER) += microdvddec.o ass.o
OBJS-$(CONFIG_MIMIC_DECODER) += mimic.o
OBJS-$(CONFIG_MJPEG_DECODER) += mjpegdec.o mjpeg.o
OBJS-$(CONFIG_MJPEG_ENCODER) += mjpegenc.o mjpeg.o \
@@ -295,19 +314,22 @@ OBJS-$(CONFIG_MPEG4_VAAPI_HWACCEL) += vaapi_mpeg4.o
OBJS-$(CONFIG_MSMPEG4V1_DECODER) += msmpeg4.o msmpeg4data.o
OBJS-$(CONFIG_MSMPEG4V2_DECODER) += msmpeg4.o msmpeg4data.o h263dec.o \
h263.o ituh263dec.o mpeg4videodec.o
OBJS-$(CONFIG_MSMPEG4V2_ENCODER) += msmpeg4.o msmpeg4data.o h263dec.o \
h263.o ituh263dec.o mpeg4videodec.o
OBJS-$(CONFIG_MSMPEG4V2_ENCODER) += msmpeg4.o msmpeg4enc.o msmpeg4data.o \
h263dec.o h263.o ituh263dec.o \
mpeg4videodec.o
OBJS-$(CONFIG_MSMPEG4V3_DECODER) += msmpeg4.o msmpeg4data.o h263dec.o \
h263.o ituh263dec.o mpeg4videodec.o
OBJS-$(CONFIG_MSMPEG4V3_ENCODER) += msmpeg4.o msmpeg4data.o h263dec.o \
h263.o ituh263dec.o mpeg4videodec.o
OBJS-$(CONFIG_MSMPEG4V3_ENCODER) += msmpeg4.o msmpeg4enc.o msmpeg4data.o \
h263dec.o h263.o ituh263dec.o \
mpeg4videodec.o
OBJS-$(CONFIG_MSRLE_DECODER) += msrle.o msrledec.o
OBJS-$(CONFIG_MSVIDEO1_DECODER) += msvideo1.o
OBJS-$(CONFIG_MSVIDEO1_ENCODER) += msvideo1enc.o elbg.o
OBJS-$(CONFIG_MSZH_DECODER) += lcldec.o
OBJS-$(CONFIG_MXPEG_DECODER) += mxpegdec.o mjpegdec.o mjpeg.o
OBJS-$(CONFIG_NELLYMOSER_DECODER) += nellymoserdec.o nellymoser.o
OBJS-$(CONFIG_NELLYMOSER_ENCODER) += nellymoserenc.o nellymoser.o
OBJS-$(CONFIG_NELLYMOSER_ENCODER) += nellymoserenc.o nellymoser.o \
audio_frame_queue.o
OBJS-$(CONFIG_NUV_DECODER) += nuv.o rtjpeg.o
OBJS-$(CONFIG_PAM_DECODER) += pnmdec.o pnm.o
OBJS-$(CONFIG_PAM_ENCODER) += pamenc.o pnm.o
@@ -321,13 +343,15 @@ OBJS-$(CONFIG_PGMYUV_DECODER) += pnmdec.o pnm.o
OBJS-$(CONFIG_PGMYUV_ENCODER) += pnmenc.o pnm.o
OBJS-$(CONFIG_PGSSUB_DECODER) += pgssubdec.o
OBJS-$(CONFIG_PICTOR_DECODER) += pictordec.o cga_data.o
OBJS-$(CONFIG_PNG_DECODER) += png.o pngdec.o
OBJS-$(CONFIG_PNG_DECODER) += png.o pngdec.o pngdsp.o
OBJS-$(CONFIG_PNG_ENCODER) += png.o pngenc.o
OBJS-$(CONFIG_PPM_DECODER) += pnmdec.o pnm.o
OBJS-$(CONFIG_PPM_ENCODER) += pnmenc.o pnm.o
OBJS-$(CONFIG_PRORES_DECODER) += proresdec2.o
OBJS-$(CONFIG_PRORES_LGPL_DECODER) += proresdec_lgpl.o proresdsp.o
OBJS-$(CONFIG_PRORES_ENCODER) += proresenc.o
OBJS-$(CONFIG_PRORES_LGPL_DECODER) += proresdec_lgpl.o proresdsp.o proresdata.o
OBJS-$(CONFIG_PRORES_ENCODER) += proresenc_anatoliy.o
OBJS-$(CONFIG_PRORES_ANATOLIY_ENCODER) += proresenc_anatoliy.o
OBJS-$(CONFIG_PRORES_KOSTYA_ENCODER) += proresenc_kostya.o proresdata.o proresdsp.o
OBJS-$(CONFIG_PTX_DECODER) += ptx.o
OBJS-$(CONFIG_QCELP_DECODER) += qcelpdec.o celp_math.o \
celp_filters.o acelp_vectors.o \
@@ -344,8 +368,10 @@ OBJS-$(CONFIG_R10K_ENCODER) += r210enc.o
OBJS-$(CONFIG_R210_DECODER) += r210dec.o
OBJS-$(CONFIG_R210_ENCODER) += r210enc.o
OBJS-$(CONFIG_RA_144_DECODER) += ra144dec.o ra144.o celp_filters.o
OBJS-$(CONFIG_RA_144_ENCODER) += ra144enc.o ra144.o celp_filters.o
OBJS-$(CONFIG_RA_144_ENCODER) += ra144enc.o ra144.o celp_filters.o \
audio_frame_queue.o
OBJS-$(CONFIG_RA_288_DECODER) += ra288.o celp_math.o celp_filters.o
OBJS-$(CONFIG_RALF_DECODER) += ralf.o
OBJS-$(CONFIG_RAWVIDEO_DECODER) += rawdec.o
OBJS-$(CONFIG_RAWVIDEO_ENCODER) += rawenc.o
OBJS-$(CONFIG_RL2_DECODER) += rl2.o
@@ -387,6 +413,7 @@ OBJS-$(CONFIG_SP5X_DECODER) += sp5xdec.o mjpegdec.o mjpeg.o
OBJS-$(CONFIG_SRT_DECODER) += srtdec.o ass.o
OBJS-$(CONFIG_SRT_ENCODER) += srtenc.o ass_split.o
OBJS-$(CONFIG_SUNRAST_DECODER) += sunrast.o
OBJS-$(CONFIG_SUNRAST_ENCODER) += sunrastenc.o
OBJS-$(CONFIG_SVQ1_DECODER) += svq1dec.o svq1.o h263.o \
mpegvideo.o error_resilience.o
OBJS-$(CONFIG_SVQ1_ENCODER) += svq1enc.o svq1.o \
@@ -421,6 +448,8 @@ OBJS-$(CONFIG_V210_DECODER) += v210dec.o
OBJS-$(CONFIG_V210_ENCODER) += v210enc.o
OBJS-$(CONFIG_V308_DECODER) += v308dec.o
OBJS-$(CONFIG_V308_ENCODER) += v308enc.o
OBJS-$(CONFIG_V408_DECODER) += v408dec.o
OBJS-$(CONFIG_V408_ENCODER) += v408enc.o
OBJS-$(CONFIG_V410_DECODER) += v410dec.o
OBJS-$(CONFIG_V410_ENCODER) += v410enc.o
OBJS-$(CONFIG_V210X_DECODER) += v210x.o
@@ -448,12 +477,12 @@ OBJS-$(CONFIG_VP6_DECODER) += vp6.o vp56.o vp56data.o vp56dsp.o \
OBJS-$(CONFIG_VP8_DECODER) += vp8.o vp8dsp.o vp56rac.o
OBJS-$(CONFIG_VQA_DECODER) += vqavideo.o
OBJS-$(CONFIG_WAVPACK_DECODER) += wavpack.o
OBJS-$(CONFIG_WMALOSSLESS_DECODER) += wmalosslessdec.o wma.o
OBJS-$(CONFIG_WMAPRO_DECODER) += wmaprodec.o wma.o
OBJS-$(CONFIG_WMAV1_DECODER) += wmadec.o wma.o aactab.o
OBJS-$(CONFIG_WMAV1_ENCODER) += wmaenc.o wma.o aactab.o
OBJS-$(CONFIG_WMAV2_DECODER) += wmadec.o wma.o aactab.o
OBJS-$(CONFIG_WMAV2_ENCODER) += wmaenc.o wma.o aactab.o
OBJS-$(CONFIG_WMALOSSLESS_DECODER) += wmalosslessdec.o wma_common.o
OBJS-$(CONFIG_WMAPRO_DECODER) += wmaprodec.o wma.o wma_common.o
OBJS-$(CONFIG_WMAV1_DECODER) += wmadec.o wma.o wma_common.o aactab.o
OBJS-$(CONFIG_WMAV1_ENCODER) += wmaenc.o wma.o wma_common.o aactab.o
OBJS-$(CONFIG_WMAV2_DECODER) += wmadec.o wma.o wma_common.o aactab.o
OBJS-$(CONFIG_WMAV2_ENCODER) += wmaenc.o wma.o wma_common.o aactab.o
OBJS-$(CONFIG_WMAVOICE_DECODER) += wmavoice.o \
celp_math.o celp_filters.o \
acelp_vectors.o acelp_filters.o
@@ -462,7 +491,7 @@ OBJS-$(CONFIG_WMV2_DECODER) += wmv2dec.o wmv2.o \
msmpeg4.o msmpeg4data.o \
intrax8.o intrax8dsp.o
OBJS-$(CONFIG_WMV2_ENCODER) += wmv2enc.o wmv2.o \
msmpeg4.o msmpeg4data.o \
msmpeg4.o msmpeg4enc.o msmpeg4data.o \
mpeg4videodec.o ituh263dec.o h263dec.o
OBJS-$(CONFIG_WNV1_DECODER) += wnv1.o
OBJS-$(CONFIG_WS_SND1_DECODER) += ws-snd1.o
@@ -470,6 +499,8 @@ OBJS-$(CONFIG_XAN_DPCM_DECODER) += dpcm.o
OBJS-$(CONFIG_XAN_WC3_DECODER) += xan.o
OBJS-$(CONFIG_XAN_WC4_DECODER) += xxan.o
OBJS-$(CONFIG_XBIN_DECODER) += bintext.o cga_data.o
OBJS-$(CONFIG_XBM_DECODER) += xbmdec.o
OBJS-$(CONFIG_XBM_ENCODER) += xbmenc.o
OBJS-$(CONFIG_XL_DECODER) += xl.o
OBJS-$(CONFIG_XSUB_DECODER) += xsubdec.o
OBJS-$(CONFIG_XSUB_ENCODER) += xsubenc.o
@@ -480,6 +511,7 @@ OBJS-$(CONFIG_Y41P_ENCODER) += y41penc.o
OBJS-$(CONFIG_YOP_DECODER) += yop.o
OBJS-$(CONFIG_YUV4_DECODER) += yuv4dec.o
OBJS-$(CONFIG_YUV4_ENCODER) += yuv4enc.o
OBJS-$(CONFIG_ZEROCODEC_DECODER) += zerocodec.o
OBJS-$(CONFIG_ZLIB_DECODER) += lcldec.o
OBJS-$(CONFIG_ZLIB_ENCODER) += lclenc.o
OBJS-$(CONFIG_ZMBV_DECODER) += zmbv.o
@@ -579,9 +611,10 @@ OBJS-$(CONFIG_ADPCM_YAMAHA_ENCODER) += adpcmenc.o adpcm_data.o
OBJS-$(CONFIG_ADTS_MUXER) += mpeg4audio.o
OBJS-$(CONFIG_ADX_DEMUXER) += adx.o
OBJS-$(CONFIG_CAF_DEMUXER) += mpeg4audio.o mpegaudiodata.o
OBJS-$(CONFIG_DV_DEMUXER) += dvdata.o
OBJS-$(CONFIG_DV_MUXER) += dvdata.o timecode.o
OBJS-$(CONFIG_FLAC_DEMUXER) += flacdec.o flacdata.o flac.o vorbis_data.o
OBJS-$(CONFIG_DV_DEMUXER) += dv_profile.o
OBJS-$(CONFIG_DV_MUXER) += dv_profile.o timecode.o
OBJS-$(CONFIG_FLAC_DEMUXER) += flacdec.o flacdata.o flac.o vorbis_data.o \
vorbis_parser.o xiph.o
OBJS-$(CONFIG_FLAC_MUXER) += flacdec.o flacdata.o flac.o vorbis_data.o
OBJS-$(CONFIG_FLV_DEMUXER) += mpeg4audio.o
OBJS-$(CONFIG_GXF_DEMUXER) += mpeg12data.o
@@ -594,14 +627,15 @@ OBJS-$(CONFIG_MATROSKA_MUXER) += xiph.o mpeg4audio.o \
flacdec.o flacdata.o flac.o \
mpegaudiodata.o vorbis_data.o
OBJS-$(CONFIG_MP3_MUXER) += mpegaudiodata.o mpegaudiodecheader.o
OBJS-$(CONFIG_MOV_DEMUXER) += mpeg4audio.o mpegaudiodata.o timecode.o
OBJS-$(CONFIG_MOV_DEMUXER) += mpeg4audio.o mpegaudiodata.o ac3tab.o timecode.o
OBJS-$(CONFIG_MOV_MUXER) += mpeg4audio.o mpegaudiodata.o
OBJS-$(CONFIG_MPEGTS_MUXER) += mpegvideo.o mpeg4audio.o
OBJS-$(CONFIG_MPEGTS_DEMUXER) += mpeg4audio.o mpegaudiodata.o
OBJS-$(CONFIG_MXF_MUXER) += timecode.o
OBJS-$(CONFIG_NUT_MUXER) += mpegaudiodata.o
OBJS-$(CONFIG_OGG_DEMUXER) += flacdec.o flacdata.o flac.o \
dirac.o mpeg12data.o vorbis_data.o
dirac.o mpeg12data.o vorbis_parser.o \
xiph.o vorbis_data.o
OBJS-$(CONFIG_OGG_MUXER) += xiph.o flacdec.o flacdata.o flac.o \
vorbis_data.o
OBJS-$(CONFIG_RTP_MUXER) += mpeg4audio.o mpegvideo.o xiph.o
@@ -614,38 +648,40 @@ OBJS-$(CONFIG_WTV_DEMUXER) += mpeg4audio.o mpegaudiodata.o
# external codec libraries
OBJS-$(CONFIG_LIBAACPLUS_ENCODER) += libaacplus.o
OBJS-$(CONFIG_LIBCELT_DECODER) += libcelt_dec.o
OBJS-$(CONFIG_LIBDIRAC_DECODER) += libdiracdec.o
OBJS-$(CONFIG_LIBDIRAC_ENCODER) += libdiracenc.o libdirac_libschro.o
OBJS-$(CONFIG_LIBFAAC_ENCODER) += libfaac.o
OBJS-$(CONFIG_LIBFAAC_ENCODER) += libfaac.o audio_frame_queue.o
OBJS-$(CONFIG_LIBGSM_DECODER) += libgsm.o
OBJS-$(CONFIG_LIBGSM_ENCODER) += libgsm.o
OBJS-$(CONFIG_LIBGSM_MS_DECODER) += libgsm.o
OBJS-$(CONFIG_LIBGSM_MS_ENCODER) += libgsm.o
OBJS-$(CONFIG_LIBMP3LAME_ENCODER) += libmp3lame.o
OBJS-$(CONFIG_LIBOPENCORE_AMRNB_DECODER) += libopencore-amr.o
OBJS-$(CONFIG_LIBOPENCORE_AMRNB_ENCODER) += libopencore-amr.o
OBJS-$(CONFIG_LIBMP3LAME_ENCODER) += libmp3lame.o mpegaudiodecheader.o \
audio_frame_queue.o
OBJS-$(CONFIG_LIBOPENCORE_AMRNB_DECODER) += libopencore-amr.o \
audio_frame_queue.o
OBJS-$(CONFIG_LIBOPENCORE_AMRNB_ENCODER) += libopencore-amr.o \
audio_frame_queue.o
OBJS-$(CONFIG_LIBOPENCORE_AMRWB_DECODER) += libopencore-amr.o
OBJS-$(CONFIG_LIBOPENJPEG_DECODER) += libopenjpegdec.o
OBJS-$(CONFIG_LIBOPENJPEG_ENCODER) += libopenjpegenc.o
OBJS-$(CONFIG_LIBSCHROEDINGER_DECODER) += libschroedingerdec.o \
libschroedinger.o \
libdirac_libschro.o
libschroedinger.o
OBJS-$(CONFIG_LIBSCHROEDINGER_ENCODER) += libschroedingerenc.o \
libschroedinger.o \
libdirac_libschro.o
libschroedinger.o
OBJS-$(CONFIG_LIBSPEEX_DECODER) += libspeexdec.o
OBJS-$(CONFIG_LIBSPEEX_ENCODER) += libspeexenc.o
OBJS-$(CONFIG_LIBSPEEX_ENCODER) += libspeexenc.o audio_frame_queue.o
OBJS-$(CONFIG_LIBSTAGEFRIGHT_H264_DECODER)+= libstagefright.o
OBJS-$(CONFIG_LIBTHEORA_ENCODER) += libtheoraenc.o
OBJS-$(CONFIG_LIBUTVIDEO_DECODER) += libutvideo.o
OBJS-$(CONFIG_LIBVO_AACENC_ENCODER) += libvo-aacenc.o mpeg4audio.o
OBJS-$(CONFIG_LIBUTVIDEO_DECODER) += libutvideodec.o
OBJS-$(CONFIG_LIBUTVIDEO_ENCODER) += libutvideoenc.o
OBJS-$(CONFIG_LIBVO_AACENC_ENCODER) += libvo-aacenc.o mpeg4audio.o \
audio_frame_queue.o
OBJS-$(CONFIG_LIBVO_AMRWBENC_ENCODER) += libvo-amrwbenc.o
OBJS-$(CONFIG_LIBVORBIS_ENCODER) += libvorbis.o vorbis_data.o
OBJS-$(CONFIG_LIBVORBIS_ENCODER) += libvorbis.o audio_frame_queue.o \
vorbis_data.o vorbis_parser.o
OBJS-$(CONFIG_LIBVPX_DECODER) += libvpxdec.o
OBJS-$(CONFIG_LIBVPX_ENCODER) += libvpxenc.o
OBJS-$(CONFIG_LIBX264_ENCODER) += libx264.o
OBJS-$(CONFIG_LIBXAVS_ENCODER) += libxavs.o
OBJS-$(CONFIG_LIBXVID) += libxvidff.o libxvid_rc.o
OBJS-$(CONFIG_LIBXVID_ENCODER) += libxvid.o
# parsers
OBJS-$(CONFIG_AAC_PARSER) += aac_parser.o aac_ac3_parser.o \
@@ -654,6 +690,7 @@ OBJS-$(CONFIG_AC3_PARSER) += ac3_parser.o ac3tab.o \
aac_ac3_parser.o
OBJS-$(CONFIG_ADX_PARSER) += adx_parser.o adx.o
OBJS-$(CONFIG_CAVSVIDEO_PARSER) += cavs_parser.o
OBJS-$(CONFIG_COOK_PARSER) += cook_parser.o
OBJS-$(CONFIG_DCA_PARSER) += dca_parser.o
OBJS-$(CONFIG_DIRAC_PARSER) += dirac_parser.o
OBJS-$(CONFIG_DNXHD_PARSER) += dnxhd_parser.o
@@ -677,6 +714,7 @@ OBJS-$(CONFIG_MPEG4VIDEO_PARSER) += mpeg4video_parser.o h263.o \
mpegvideo.o error_resilience.o \
mpeg4videodec.o mpeg4video.o \
ituh263dec.o h263dec.o
OBJS-$(CONFIG_PNG_PARSER) += png_parser.o
OBJS-$(CONFIG_MPEGAUDIO_PARSER) += mpegaudio_parser.o \
mpegaudiodecheader.o mpegaudiodata.o
OBJS-$(CONFIG_MPEGVIDEO_PARSER) += mpegvideo_parser.o \
@@ -688,6 +726,7 @@ OBJS-$(CONFIG_RV40_PARSER) += rv34_parser.o
OBJS-$(CONFIG_VC1_PARSER) += vc1_parser.o vc1.o vc1data.o \
msmpeg4.o msmpeg4data.o mpeg4video.o \
h263.o mpegvideo.o error_resilience.o
OBJS-$(CONFIG_VORBIS_PARSER) += vorbis_parser.o xiph.o
OBJS-$(CONFIG_VP3_PARSER) += vp3_parser.o
OBJS-$(CONFIG_VP8_PARSER) += vp8_parser.o
@@ -713,8 +752,6 @@ OBJS-$(HAVE_PTHREADS) += pthread.o
OBJS-$(HAVE_W32THREADS) += pthread.o
OBJS-$(HAVE_OS2THREADS) += pthread.o
OBJS-$(CONFIG_MLIB) += mlib/dsputil_mlib.o \
# inverse.o contains the ff_inverse table definition, which is used by
# the FASTDIV macro (from libavutil); since referencing the external
# table has a negative effect on performance, copy it in libavcodec as
@@ -724,27 +761,43 @@ OBJS-$(!CONFIG_SMALL) += inverse.o
SKIPHEADERS += %_tablegen.h \
%_tables.h \
aac_tablegen_decl.h \
codec_names.h \
fft-internal.h \
tableprint.h \
$(ARCH)/vp56_arith.h
$(ARCH)/vp56_arith.h \
SKIPHEADERS-$(CONFIG_DXVA2) += dxva2.h dxva2_internal.h
SKIPHEADERS-$(CONFIG_LIBDIRAC) += libdirac.h
SKIPHEADERS-$(CONFIG_LIBSCHROEDINGER) += libschroedinger.h
SKIPHEADERS-$(CONFIG_LIBUTVIDEO) += libutvideo.h
SKIPHEADERS-$(CONFIG_MPEG_XVMC_DECODER) += xvmc.h
SKIPHEADERS-$(CONFIG_VAAPI) += vaapi_internal.h
SKIPHEADERS-$(CONFIG_VDA) += vda_internal.h
SKIPHEADERS-$(CONFIG_VDA) += vda.h vda_internal.h
SKIPHEADERS-$(CONFIG_VDPAU) += vdpau.h
SKIPHEADERS-$(CONFIG_XVMC) += xvmc.h
SKIPHEADERS-$(HAVE_OS2THREADS) += os2threads.h
SKIPHEADERS-$(HAVE_W32THREADS) += w32pthreads.h
TESTPROGS = cabac dct fft fft-fixed h264 iirfilter rangecoder snowenc
TESTPROGS = cabac \
dct \
fft \
fft-fixed \
golomb \
iirfilter \
rangecoder \
snowenc \
TESTPROGS-$(HAVE_MMX) += motion
TESTOBJS = dctref.o
HOSTPROGS = aac_tablegen aacps_tablegen cbrt_tablegen cos_tablegen \
dv_tablegen motionpixels_tablegen mpegaudio_tablegen \
pcm_tablegen qdm2_tablegen sinewin_tablegen
DIRS = alpha arm bfin mlib ppc ps2 sh4 sparc x86
HOSTPROGS = aac_tablegen \
aacps_tablegen \
cbrt_tablegen \
cos_tablegen \
dv_tablegen \
motionpixels_tablegen \
mpegaudio_tablegen \
pcm_tablegen \
qdm2_tablegen \
sinewin_tablegen \
CLEANFILES = *_tables.c *_tables.h *_tablegen$(HOSTEXESUF)
+3
View File
@@ -50,6 +50,9 @@ typedef struct A64Context {
uint8_t *mc_colram;
uint8_t *mc_palette;
int mc_pal_size;
/* pts of the next packet that will be output */
int64_t next_pts;
} A64Context;
#endif /* AVCODEC_A64ENC_H */
+25 -17
View File
@@ -28,6 +28,7 @@
#include "a64colors.h"
#include "a64tables.h"
#include "elbg.h"
#include "internal.h"
#include "libavutil/intreadwrite.h"
#define DITHERSTEPS 8
@@ -221,6 +222,8 @@ static av_cold int a64multi_init_encoder(AVCodecContext *avctx)
if (!avctx->codec_tag)
avctx->codec_tag = AV_RL32("a64m");
c->next_pts = AV_NOPTS_VALUE;
return 0;
}
@@ -239,19 +242,19 @@ static void a64_compress_colram(unsigned char *buf, int *charmap, uint8_t *colra
}
}
static int a64multi_encode_frame(AVCodecContext *avctx, unsigned char *buf,
int buf_size, void *data)
static int a64multi_encode_frame(AVCodecContext *avctx, AVPacket *pkt,
const AVFrame *pict, int *got_packet)
{
A64Context *c = avctx->priv_data;
AVFrame *pict = data;
AVFrame *const p = (AVFrame *) & c->picture;
AVFrame *const p = &c->picture;
int frame;
int x, y;
int b_height;
int b_width;
int req_size;
int req_size, ret;
uint8_t *buf = NULL;
int *charmap = c->mc_charmap;
uint8_t *colram = c->mc_colram;
@@ -274,7 +277,7 @@ static int a64multi_encode_frame(AVCodecContext *avctx, unsigned char *buf,
}
/* no data, means end encoding asap */
if (!data) {
if (!pict) {
/* all done, end encoding */
if (!c->mc_lifetime) return 0;
/* no more frames in queue, prepare to flush remaining frames */
@@ -292,6 +295,8 @@ static int a64multi_encode_frame(AVCodecContext *avctx, unsigned char *buf,
p->key_frame = 1;
to_meta_with_crop(avctx, p, meta + 32000 * c->mc_frame_counter);
c->mc_frame_counter++;
if (c->next_pts == AV_NOPTS_VALUE)
c->next_pts = pict->pts;
/* lifetime is not reached so wait for next frame first */
return 0;
}
@@ -302,6 +307,11 @@ static int a64multi_encode_frame(AVCodecContext *avctx, unsigned char *buf,
req_size = 0;
/* any frames to encode? */
if (c->mc_lifetime) {
req_size = charset_size + c->mc_lifetime*(screen_size + colram_size);
if ((ret = ff_alloc_packet2(avctx, pkt, req_size)) < 0)
return ret;
buf = pkt->data;
/* calc optimal new charset + charmaps */
ff_init_elbg(meta, 32, 1000 * c->mc_lifetime, best_cb, CHARSET_CHARS, 50, charmap, &c->randctx);
ff_do_elbg (meta, 32, 1000 * c->mc_lifetime, best_cb, CHARSET_CHARS, 50, charmap, &c->randctx);
@@ -310,15 +320,12 @@ static int a64multi_encode_frame(AVCodecContext *avctx, unsigned char *buf,
render_charset(avctx, charset, colram);
/* copy charset to buf */
memcpy(buf,charset, charset_size);
memcpy(buf, charset, charset_size);
/* advance pointers */
buf += charset_size;
charset += charset_size;
req_size += charset_size;
}
/* no charset so clean buf */
else memset(buf, 0, charset_size);
/* write x frames to buf */
for (frame = 0; frame < c->mc_lifetime; frame++) {
@@ -351,11 +358,12 @@ static int a64multi_encode_frame(AVCodecContext *avctx, unsigned char *buf,
/* reset counter */
c->mc_frame_counter = 0;
if (req_size > buf_size) {
av_log(avctx, AV_LOG_ERROR, "buf size too small (need %d, got %d)\n", req_size, buf_size);
return -1;
}
return req_size;
pkt->pts = pkt->dts = c->next_pts;
c->next_pts = AV_NOPTS_VALUE;
pkt->size = req_size;
pkt->flags |= AV_PKT_FLAG_KEY;
*got_packet = !!req_size;
}
return 0;
}
@@ -366,7 +374,7 @@ AVCodec ff_a64multi_encoder = {
.id = CODEC_ID_A64_MULTI,
.priv_data_size = sizeof(A64Context),
.init = a64multi_init_encoder,
.encode = a64multi_encode_frame,
.encode2 = a64multi_encode_frame,
.close = a64multi_close_encoder,
.pix_fmts = (const enum PixelFormat[]) {PIX_FMT_GRAY8, PIX_FMT_NONE},
.long_name = NULL_IF_CONFIG_SMALL("Multicolor charset for Commodore 64"),
@@ -379,7 +387,7 @@ AVCodec ff_a64multi5_encoder = {
.id = CODEC_ID_A64_MULTI5,
.priv_data_size = sizeof(A64Context),
.init = a64multi_init_encoder,
.encode = a64multi_encode_frame,
.encode2 = a64multi_encode_frame,
.close = a64multi_close_encoder,
.pix_fmts = (const enum PixelFormat[]) {PIX_FMT_GRAY8, PIX_FMT_NONE},
.long_name = NULL_IF_CONFIG_SMALL("Multicolor charset for Commodore 64, extended with 5th color (colram)"),
+10 -6
View File
@@ -112,6 +112,15 @@ enum OCStatus {
OC_LOCKED, ///< Output configuration locked in place
};
typedef struct {
MPEG4AudioConfig m4ac;
uint8_t layout_map[MAX_ELEM_ID*4][3];
int layout_map_tags;
int channels;
uint64_t channel_layout;
enum OCStatus status;
} OutputConfiguration;
/**
* Predictor State
*/
@@ -254,8 +263,6 @@ typedef struct {
AVCodecContext *avctx;
AVFrame frame;
MPEG4AudioConfig m4ac;
int is_saved; ///< Set if elements have stored overlap from previous frame.
DynamicRangeControl che_drc;
@@ -263,9 +270,6 @@ typedef struct {
* @name Channel element related data
* @{
*/
enum ChannelPosition che_pos[4][MAX_ELEM_ID]; /**< channel element channel mapping with the
* first index as the first 4 raw data block types
*/
ChannelElement *che[4][MAX_ELEM_ID];
ChannelElement *tag_che_map[4][MAX_ELEM_ID];
int tags_mapped;
@@ -300,7 +304,7 @@ typedef struct {
DECLARE_ALIGNED(32, float, temp)[128];
enum OCStatus output_configured;
OutputConfiguration oc[2];
int warned_num_aac_frames;
} AACContext;
+1 -1
View File
@@ -93,7 +93,7 @@ get_next:
avctx->channels = s->channels;
avctx->channel_layout = s->channel_layout;
}
avctx->frame_size = s->samples;
s1->duration = s->samples;
avctx->audio_service_type = s->service_type;
}
+4 -2
View File
@@ -714,15 +714,17 @@ static void search_for_quantizers_twoloop(AVCodecContext *avctx,
{
int start = 0, i, w, w2, g;
int destbits = avctx->bit_rate * 1024.0 / avctx->sample_rate / avctx->channels;
float dists[128], uplims[128];
float dists[128] = { 0 }, uplims[128];
float maxvals[128];
int fflag, minscaler;
int its = 0;
int allz = 0;
float minthr = INFINITY;
// for values above this the decoder might end up in an endless loop
// due to always having more bits than what can be encoded.
destbits = FFMIN(destbits, 5800);
//XXX: some heuristic to determine initial quantizers will reduce search time
memset(dists, 0, sizeof(dists));
//determine zero bands and upper limits
for (w = 0; w < sce->ics.num_windows; w += sce->ics.group_len[w]) {
for (g = 0; g < sce->ics.num_swb; g++) {
+578 -321
View File
File diff suppressed because it is too large Load Diff
+9 -9
View File
@@ -80,14 +80,14 @@ static const float * const tns_tmp2_map[4] = {
static const int8_t tags_per_config[16] = { 0, 1, 1, 2, 3, 3, 4, 5, 0, 0, 0, 0, 0, 0, 0, 0 };
static const uint8_t aac_channel_layout_map[7][5][2] = {
{ { TYPE_SCE, 0 }, },
{ { TYPE_CPE, 0 }, },
{ { TYPE_CPE, 0 }, { TYPE_SCE, 0 }, },
{ { TYPE_CPE, 0 }, { TYPE_SCE, 0 }, { TYPE_SCE, 1 }, },
{ { TYPE_CPE, 0 }, { TYPE_SCE, 0 }, { TYPE_CPE, 1 }, },
{ { TYPE_CPE, 0 }, { TYPE_SCE, 0 }, { TYPE_LFE, 0 }, { TYPE_CPE, 1 }, },
{ { TYPE_CPE, 0 }, { TYPE_SCE, 0 }, { TYPE_LFE, 0 }, { TYPE_CPE, 2 }, { TYPE_CPE, 1 }, },
static const uint8_t aac_channel_layout_map[7][5][3] = {
{ { TYPE_SCE, 0, AAC_CHANNEL_FRONT }, },
{ { TYPE_CPE, 0, AAC_CHANNEL_FRONT }, },
{ { TYPE_SCE, 0, AAC_CHANNEL_FRONT }, { TYPE_CPE, 0, AAC_CHANNEL_FRONT }, },
{ { TYPE_SCE, 0, AAC_CHANNEL_FRONT }, { TYPE_CPE, 0, AAC_CHANNEL_FRONT }, { TYPE_SCE, 1, AAC_CHANNEL_BACK }, },
{ { TYPE_SCE, 0, AAC_CHANNEL_FRONT }, { TYPE_CPE, 0, AAC_CHANNEL_FRONT }, { TYPE_CPE, 1, AAC_CHANNEL_BACK }, },
{ { TYPE_SCE, 0, AAC_CHANNEL_FRONT }, { TYPE_CPE, 0, AAC_CHANNEL_FRONT }, { TYPE_CPE, 1, AAC_CHANNEL_BACK }, { TYPE_LFE, 0, AAC_CHANNEL_LFE }, },
{ { TYPE_SCE, 0, AAC_CHANNEL_FRONT }, { TYPE_CPE, 0, AAC_CHANNEL_FRONT }, { TYPE_CPE, 1, AAC_CHANNEL_FRONT }, { TYPE_CPE, 2, AAC_CHANNEL_BACK }, { TYPE_LFE, 0, AAC_CHANNEL_LFE }, },
};
static const uint64_t aac_channel_layout[8] = {
@@ -97,7 +97,7 @@ static const uint64_t aac_channel_layout[8] = {
AV_CH_LAYOUT_4POINT0,
AV_CH_LAYOUT_5POINT0_BACK,
AV_CH_LAYOUT_5POINT1_BACK,
AV_CH_LAYOUT_7POINT1_WIDE,
AV_CH_LAYOUT_7POINT1_WIDE_BACK,
0,
};
+69 -33
View File
@@ -34,6 +34,7 @@
#include "avcodec.h"
#include "put_bits.h"
#include "dsputil.h"
#include "internal.h"
#include "mpeg4audio.h"
#include "kbdwin.h"
#include "sinewin.h"
@@ -144,7 +145,7 @@ static const uint8_t aac_chan_configs[6][5] = {
};
/**
* Table to remap channels from Libav's default order to AAC order.
* Table to remap channels from libavcodec's default order to AAC order.
*/
static const uint8_t aac_chan_maps[AAC_MAX_CHANNELS][AAC_MAX_CHANNELS] = {
{ 0 },
@@ -200,8 +201,8 @@ WINDOW_FUNC(long_start)
float *out = sce->ret;
dsp->vector_fmul(out, audio, lwindow, 1024);
memcpy(out + 1024, audio, sizeof(out[0]) * 448);
dsp->vector_fmul_reverse(out + 1024 + 448, audio, swindow, 128);
memcpy(out + 1024, audio + 1024, sizeof(out[0]) * 448);
dsp->vector_fmul_reverse(out + 1024 + 448, audio + 1024 + 448, swindow, 128);
memset(out + 1024 + 576, 0, sizeof(out[0]) * 448);
}
@@ -223,8 +224,9 @@ WINDOW_FUNC(eight_short)
const float *pwindow = sce->ics.use_kb_window[1] ? ff_aac_kbd_short_128 : ff_sine_128;
const float *in = audio + 448;
float *out = sce->ret;
int w;
for (int w = 0; w < 8; w++) {
for (w = 0; w < 8; w++) {
dsp->vector_fmul (out, in, w ? pwindow : swindow, 128);
out += 128;
in += 128;
@@ -473,10 +475,9 @@ static void put_bitstream_info(AVCodecContext *avctx, AACEncContext *s,
/*
* Deinterleave input samples.
* Channels are reordered from Libav's default order to AAC order.
* Channels are reordered from libavcodec's default order to AAC order.
*/
static void deinterleave_input_samples(AACEncContext *s,
const float *samples)
static void deinterleave_input_samples(AACEncContext *s, const AVFrame *frame)
{
int ch, i;
const int sinc = s->channels;
@@ -484,38 +485,46 @@ static void deinterleave_input_samples(AACEncContext *s,
/* deinterleave and remap input samples */
for (ch = 0; ch < sinc; ch++) {
const float *sptr = samples + channel_map[ch];
/* copy last 1024 samples of previous frame to the start of the current frame */
memcpy(&s->planar_samples[ch][0], &s->planar_samples[ch][1024], 1024 * sizeof(s->planar_samples[0][0]));
memcpy(&s->planar_samples[ch][1024], &s->planar_samples[ch][2048], 1024 * sizeof(s->planar_samples[0][0]));
/* deinterleave */
for (i = 1024; i < 1024 * 2; i++) {
s->planar_samples[ch][i] = *sptr;
sptr += sinc;
i = 2048;
if (frame) {
const float *sptr = ((const float *)frame->data[0]) + channel_map[ch];
for (; i < 2048 + frame->nb_samples; i++) {
s->planar_samples[ch][i] = *sptr;
sptr += sinc;
}
}
memset(&s->planar_samples[ch][i], 0,
(3072 - i) * sizeof(s->planar_samples[0][0]));
}
}
static int aac_encode_frame(AVCodecContext *avctx,
uint8_t *frame, int buf_size, void *data)
static int aac_encode_frame(AVCodecContext *avctx, AVPacket *avpkt,
const AVFrame *frame, int *got_packet_ptr)
{
AACEncContext *s = avctx->priv_data;
float **samples = s->planar_samples, *samples2, *la, *overlap;
ChannelElement *cpe;
int i, ch, w, g, chans, tag, start_ch;
int i, ch, w, g, chans, tag, start_ch, ret;
int chan_el_counter[4];
FFPsyWindowInfo windows[AAC_MAX_CHANNELS];
if (s->last_frame)
if (s->last_frame == 2)
return 0;
if (data) {
deinterleave_input_samples(s, data);
if (s->psypp)
ff_psy_preprocess(s->psypp, s->planar_samples, s->channels);
/* add current frame to queue */
if (frame) {
if ((ret = ff_af_queue_add(&s->afq, frame) < 0))
return ret;
}
deinterleave_input_samples(s, frame);
if (s->psypp)
ff_psy_preprocess(s->psypp, s->planar_samples, s->channels);
if (!avctx->frame_number)
return 0;
@@ -531,7 +540,7 @@ static int aac_encode_frame(AVCodecContext *avctx,
overlap = &samples[cur_channel][0];
samples2 = overlap + 1024;
la = samples2 + (448+64);
if (!data)
if (!frame)
la = NULL;
if (tag == TYPE_LFE) {
wi[ch].window_type[0] = ONLY_LONG_SEQUENCE;
@@ -562,9 +571,15 @@ static int aac_encode_frame(AVCodecContext *avctx,
}
start_ch += chans;
}
if ((ret = ff_alloc_packet2(avctx, avpkt, 768 * s->channels))) {
av_log(avctx, AV_LOG_ERROR, "Error getting output packet\n");
return ret;
}
do {
int frame_bits;
init_put_bits(&s->pb, frame, buf_size*8);
init_put_bits(&s->pb, avpkt->data, avpkt->size);
if ((avctx->frame_number & 0xFF)==1 && !(avctx->flags & CODEC_FLAG_BITEXACT))
put_bitstream_info(avctx, s, LIBAVCODEC_IDENT);
start_ch = 0;
@@ -644,10 +659,15 @@ static int aac_encode_frame(AVCodecContext *avctx,
s->lambda = FFMIN(s->lambda, 65536.f);
}
if (!data)
s->last_frame = 1;
if (!frame)
s->last_frame++;
return put_bits_count(&s->pb)>>3;
ff_af_queue_remove(&s->afq, avctx->frame_size, &avpkt->pts,
&avpkt->duration);
avpkt->size = put_bits_count(&s->pb) >> 3;
*got_packet_ptr = 1;
return 0;
}
static av_cold int aac_encode_end(AVCodecContext *avctx)
@@ -661,6 +681,10 @@ static av_cold int aac_encode_end(AVCodecContext *avctx)
ff_psy_preprocess_end(s->psypp);
av_freep(&s->buffer.samples);
av_freep(&s->cpe);
ff_af_queue_close(&s->afq);
#if FF_API_OLD_ENCODE_AUDIO
av_freep(&avctx->coded_frame);
#endif
return 0;
}
@@ -668,7 +692,7 @@ static av_cold int dsp_init(AVCodecContext *avctx, AACEncContext *s)
{
int ret = 0;
dsputil_init(&s->dsp, avctx);
ff_dsputil_init(&s->dsp, avctx);
// window init
ff_kbd_window_init(ff_aac_kbd_long_1024, 4.0, 1024);
@@ -686,13 +710,19 @@ static av_cold int dsp_init(AVCodecContext *avctx, AACEncContext *s)
static av_cold int alloc_buffers(AVCodecContext *avctx, AACEncContext *s)
{
int ch;
FF_ALLOCZ_OR_GOTO(avctx, s->buffer.samples, 3 * 1024 * s->channels * sizeof(s->buffer.samples[0]), alloc_fail);
FF_ALLOCZ_OR_GOTO(avctx, s->cpe, sizeof(ChannelElement) * s->chan_map[0], alloc_fail);
FF_ALLOCZ_OR_GOTO(avctx, avctx->extradata, 5 + FF_INPUT_BUFFER_PADDING_SIZE, alloc_fail);
for(int ch = 0; ch < s->channels; ch++)
for(ch = 0; ch < s->channels; ch++)
s->planar_samples[ch] = s->buffer.samples + 3 * 1024 * ch;
#if FF_API_OLD_ENCODE_AUDIO
if (!(avctx->coded_frame = avcodec_alloc_frame()))
goto alloc_fail;
#endif
return 0;
alloc_fail:
return AVERROR(ENOMEM);
@@ -754,6 +784,9 @@ static av_cold int aac_encode_init(AVCodecContext *avctx)
for (i = 0; i < 428; i++)
ff_aac_pow34sf_tab[i] = sqrt(ff_aac_pow2sf_tab[i] * sqrt(ff_aac_pow2sf_tab[i]));
avctx->delay = 1024;
ff_af_queue_init(avctx, &s->afq);
return 0;
fail:
aac_encode_end(avctx);
@@ -783,10 +816,13 @@ AVCodec ff_aac_encoder = {
.id = CODEC_ID_AAC,
.priv_data_size = sizeof(AACEncContext),
.init = aac_encode_init,
.encode = aac_encode_frame,
.encode2 = aac_encode_frame,
.close = aac_encode_end,
.capabilities = CODEC_CAP_SMALL_LAST_FRAME | CODEC_CAP_DELAY | CODEC_CAP_EXPERIMENTAL,
.sample_fmts = (const enum AVSampleFormat[]){AV_SAMPLE_FMT_FLT,AV_SAMPLE_FMT_NONE},
.long_name = NULL_IF_CONFIG_SMALL("Advanced Audio Coding"),
.priv_class = &aacenc_class,
.supported_samplerates = avpriv_mpeg4audio_sample_rates,
.capabilities = CODEC_CAP_SMALL_LAST_FRAME | CODEC_CAP_DELAY |
CODEC_CAP_EXPERIMENTAL,
.sample_fmts = (const enum AVSampleFormat[]){ AV_SAMPLE_FMT_FLT,
AV_SAMPLE_FMT_NONE },
.long_name = NULL_IF_CONFIG_SMALL("Advanced Audio Coding"),
.priv_class = &aacenc_class,
};
+2 -1
View File
@@ -27,7 +27,7 @@
#include "dsputil.h"
#include "aac.h"
#include "audio_frame_queue.h"
#include "psymodel.h"
#define AAC_CODER_NB 4
@@ -74,6 +74,7 @@ typedef struct AACEncContext {
int cur_channel;
int last_frame;
float lambda;
AudioFrameQueue afq;
DECLARE_ALIGNED(16, int, qcoefs)[96]; ///< quantized coefficients
DECLARE_ALIGNED(32, float, scoefs)[1024]; ///< scaled coefficients
+78 -166
View File
@@ -27,6 +27,7 @@
#include "aacps.h"
#include "aacps_tablegen.h"
#include "aacpsdata.c"
#include "dsputil.h"
#define PS_BASELINE 0 ///< Operate in Baseline PS mode
///< Baseline implies 10 or 20 stereo bands,
@@ -275,12 +276,16 @@ int ff_ps_read_data(AVCodecContext *avctx, GetBitContext *gb_host, PSContext *ps
err:
ps->start = 0;
skip_bits_long(gb_host, bits_left);
memset(ps->iid_par, 0, sizeof(ps->iid_par));
memset(ps->icc_par, 0, sizeof(ps->icc_par));
memset(ps->ipd_par, 0, sizeof(ps->ipd_par));
memset(ps->opd_par, 0, sizeof(ps->opd_par));
return bits_left;
}
/** Split one subband into 2 subsubbands with a symmetric real filter.
* The filter must have its non-center even coefficients equal to zero. */
static void hybrid2_re(float (*in)[2], float (*out)[32][2], const float filter[7], int len, int reverse)
static void hybrid2_re(float (*in)[2], float (*out)[32][2], const float filter[8], int len, int reverse)
{
int i, j;
for (i = 0; i < len; i++, in++) {
@@ -300,26 +305,14 @@ static void hybrid2_re(float (*in)[2], float (*out)[32][2], const float filter[7
}
/** Split one subband into 6 subsubbands with a complex filter */
static void hybrid6_cx(float (*in)[2], float (*out)[32][2], const float (*filter)[7][2], int len)
static void hybrid6_cx(PSDSPContext *dsp, float (*in)[2], float (*out)[32][2], const float (*filter)[8][2], int len)
{
int i, j, ssb;
int i;
int N = 8;
float temp[8][2];
LOCAL_ALIGNED_16(float, temp, [8], [2]);
for (i = 0; i < len; i++, in++) {
for (ssb = 0; ssb < N; ssb++) {
float sum_re = filter[ssb][6][0] * in[6][0], sum_im = filter[ssb][6][0] * in[6][1];
for (j = 0; j < 6; j++) {
float in0_re = in[j][0];
float in0_im = in[j][1];
float in1_re = in[12-j][0];
float in1_im = in[12-j][1];
sum_re += filter[ssb][j][0] * (in0_re + in1_re) - filter[ssb][j][1] * (in0_im - in1_im);
sum_im += filter[ssb][j][0] * (in0_im + in1_im) + filter[ssb][j][1] * (in0_re - in1_re);
}
temp[ssb][0] = sum_re;
temp[ssb][1] = sum_im;
}
dsp->hybrid_analysis(temp, in, filter, 1, N);
out[0][i][0] = temp[6][0];
out[0][i][1] = temp[6][1];
out[1][i][0] = temp[7][0];
@@ -335,28 +328,18 @@ static void hybrid6_cx(float (*in)[2], float (*out)[32][2], const float (*filter
}
}
static void hybrid4_8_12_cx(float (*in)[2], float (*out)[32][2], const float (*filter)[7][2], int N, int len)
static void hybrid4_8_12_cx(PSDSPContext *dsp, float (*in)[2], float (*out)[32][2], const float (*filter)[8][2], int N, int len)
{
int i, j, ssb;
int i;
for (i = 0; i < len; i++, in++) {
for (ssb = 0; ssb < N; ssb++) {
float sum_re = filter[ssb][6][0] * in[6][0], sum_im = filter[ssb][6][0] * in[6][1];
for (j = 0; j < 6; j++) {
float in0_re = in[j][0];
float in0_im = in[j][1];
float in1_re = in[12-j][0];
float in1_im = in[12-j][1];
sum_re += filter[ssb][j][0] * (in0_re + in1_re) - filter[ssb][j][1] * (in0_im - in1_im);
sum_im += filter[ssb][j][0] * (in0_im + in1_im) + filter[ssb][j][1] * (in0_re - in1_re);
}
out[ssb][i][0] = sum_re;
out[ssb][i][1] = sum_im;
}
dsp->hybrid_analysis(out[0] + i, in, filter, 32, N);
}
}
static void hybrid_analysis(float out[91][32][2], float in[5][44][2], float L[2][38][64], int is34, int len)
static void hybrid_analysis(PSDSPContext *dsp, float out[91][32][2],
float in[5][44][2], float L[2][38][64],
int is34, int len)
{
int i, j;
for (i = 0; i < 5; i++) {
@@ -366,27 +349,17 @@ static void hybrid_analysis(float out[91][32][2], float in[5][44][2], float L[2]
}
}
if (is34) {
hybrid4_8_12_cx(in[0], out, f34_0_12, 12, len);
hybrid4_8_12_cx(in[1], out+12, f34_1_8, 8, len);
hybrid4_8_12_cx(in[2], out+20, f34_2_4, 4, len);
hybrid4_8_12_cx(in[3], out+24, f34_2_4, 4, len);
hybrid4_8_12_cx(in[4], out+28, f34_2_4, 4, len);
for (i = 0; i < 59; i++) {
for (j = 0; j < len; j++) {
out[i+32][j][0] = L[0][j][i+5];
out[i+32][j][1] = L[1][j][i+5];
}
}
hybrid4_8_12_cx(dsp, in[0], out, f34_0_12, 12, len);
hybrid4_8_12_cx(dsp, in[1], out+12, f34_1_8, 8, len);
hybrid4_8_12_cx(dsp, in[2], out+20, f34_2_4, 4, len);
hybrid4_8_12_cx(dsp, in[3], out+24, f34_2_4, 4, len);
hybrid4_8_12_cx(dsp, in[4], out+28, f34_2_4, 4, len);
dsp->hybrid_analysis_ileave(out + 27, L, 5, len);
} else {
hybrid6_cx(in[0], out, f20_0_8, len);
hybrid6_cx(dsp, in[0], out, f20_0_8, len);
hybrid2_re(in[1], out+6, g1_Q2, len, 1);
hybrid2_re(in[2], out+8, g1_Q2, len, 0);
for (i = 0; i < 61; i++) {
for (j = 0; j < len; j++) {
out[i+10][j][0] = L[0][j][i+3];
out[i+10][j][1] = L[1][j][i+3];
}
}
dsp->hybrid_analysis_ileave(out + 7, L, 3, len);
}
//update in_buf
for (i = 0; i < 5; i++) {
@@ -394,7 +367,8 @@ static void hybrid_analysis(float out[91][32][2], float in[5][44][2], float L[2]
}
}
static void hybrid_synthesis(float out[2][38][64], float in[91][32][2], int is34, int len)
static void hybrid_synthesis(PSDSPContext *dsp, float out[2][38][64],
float in[91][32][2], int is34, int len)
{
int i, n;
if (is34) {
@@ -418,12 +392,7 @@ static void hybrid_synthesis(float out[2][38][64], float in[91][32][2], int is34
out[1][n][4] += in[28+i][n][1];
}
}
for (i = 0; i < 59; i++) {
for (n = 0; n < len; n++) {
out[0][n][i+5] = in[i+32][n][0];
out[1][n][i+5] = in[i+32][n][1];
}
}
dsp->hybrid_synthesis_deint(out, in + 27, 5, len);
} else {
for (n = 0; n < len; n++) {
out[0][n][0] = in[0][n][0] + in[1][n][0] + in[2][n][0] +
@@ -435,12 +404,7 @@ static void hybrid_synthesis(float out[2][38][64], float in[91][32][2], int is34
out[0][n][2] = in[8][n][0] + in[9][n][0];
out[1][n][2] = in[8][n][1] + in[9][n][1];
}
for (i = 0; i < 61; i++) {
for (n = 0; n < len; n++) {
out[0][n][i+3] = in[i+10][n][0];
out[1][n][i+3] = in[i+10][n][1];
}
}
dsp->hybrid_synthesis_deint(out, in + 7, 3, len);
}
}
@@ -644,8 +608,8 @@ static void map_val_20_to_34(float par[PS_MAX_NR_IIDICC])
static void decorrelation(PSContext *ps, float (*out)[32][2], const float (*s)[32][2], int is34)
{
float power[34][PS_QMF_TIME_SLOTS] = {{0}};
float transient_gain[34][PS_QMF_TIME_SLOTS];
LOCAL_ALIGNED_16(float, power, [34], [PS_QMF_TIME_SLOTS]);
LOCAL_ALIGNED_16(float, transient_gain, [34], [PS_QMF_TIME_SLOTS]);
float *peak_decay_nrg = ps->peak_decay_nrg;
float *power_smooth = ps->power_smooth;
float *peak_decay_diff_smooth = ps->peak_decay_diff_smooth;
@@ -657,10 +621,8 @@ static void decorrelation(PSContext *ps, float (*out)[32][2], const float (*s)[3
const float a_smooth = 0.25f; ///< Smoothing coefficient
int i, k, m, n;
int n0 = 0, nL = 32;
static const int link_delay[] = { 3, 4, 5 };
static const float a[] = { 0.65143905753106f,
0.56471812200776f,
0.48954165955695f };
memset(power, 0, 34 * sizeof(*power));
if (is34 != ps->is34bands_old) {
memset(ps->peak_decay_nrg, 0, sizeof(ps->peak_decay_nrg));
@@ -670,11 +632,9 @@ static void decorrelation(PSContext *ps, float (*out)[32][2], const float (*s)[3
memset(ps->ap_delay, 0, sizeof(ps->ap_delay));
}
for (n = n0; n < nL; n++) {
for (k = 0; k < NR_BANDS[is34]; k++) {
int i = k_to_i[k];
power[i][n] += s[k][n][0] * s[k][n][0] + s[k][n][1] * s[k][n][1];
}
for (k = 0; k < NR_BANDS[is34]; k++) {
int i = k_to_i[k];
ps->dsp.add_squares(power[i], s[k], nL - n0);
}
//Transient detection
@@ -702,54 +662,31 @@ static void decorrelation(PSContext *ps, float (*out)[32][2], const float (*s)[3
for (k = 0; k < NR_ALLPASS_BANDS[is34]; k++) {
int b = k_to_i[k];
float g_decay_slope = 1.f - DECAY_SLOPE * (k - DECAY_CUTOFF[is34]);
float ag[PS_AP_LINKS];
g_decay_slope = av_clipf(g_decay_slope, 0.f, 1.f);
memcpy(delay[k], delay[k]+nL, PS_MAX_DELAY*sizeof(delay[k][0]));
memcpy(delay[k]+PS_MAX_DELAY, s[k], numQMFSlots*sizeof(delay[k][0]));
for (m = 0; m < PS_AP_LINKS; m++) {
memcpy(ap_delay[k][m], ap_delay[k][m]+numQMFSlots, 5*sizeof(ap_delay[k][m][0]));
ag[m] = a[m] * g_decay_slope;
}
for (n = n0; n < nL; n++) {
float in_re = delay[k][n+PS_MAX_DELAY-2][0] * phi_fract[is34][k][0] -
delay[k][n+PS_MAX_DELAY-2][1] * phi_fract[is34][k][1];
float in_im = delay[k][n+PS_MAX_DELAY-2][0] * phi_fract[is34][k][1] +
delay[k][n+PS_MAX_DELAY-2][1] * phi_fract[is34][k][0];
for (m = 0; m < PS_AP_LINKS; m++) {
float a_re = ag[m] * in_re;
float a_im = ag[m] * in_im;
float link_delay_re = ap_delay[k][m][n+5-link_delay[m]][0];
float link_delay_im = ap_delay[k][m][n+5-link_delay[m]][1];
float fractional_delay_re = Q_fract_allpass[is34][k][m][0];
float fractional_delay_im = Q_fract_allpass[is34][k][m][1];
ap_delay[k][m][n+5][0] = in_re;
ap_delay[k][m][n+5][1] = in_im;
in_re = link_delay_re * fractional_delay_re - link_delay_im * fractional_delay_im - a_re;
in_im = link_delay_re * fractional_delay_im + link_delay_im * fractional_delay_re - a_im;
ap_delay[k][m][n+5][0] += ag[m] * in_re;
ap_delay[k][m][n+5][1] += ag[m] * in_im;
}
out[k][n][0] = transient_gain[b][n] * in_re;
out[k][n][1] = transient_gain[b][n] * in_im;
}
ps->dsp.decorrelate(out[k], delay[k] + PS_MAX_DELAY - 2, ap_delay[k],
phi_fract[is34][k], Q_fract_allpass[is34][k],
transient_gain[b], g_decay_slope, nL - n0);
}
for (; k < SHORT_DELAY_BAND[is34]; k++) {
int i = k_to_i[k];
memcpy(delay[k], delay[k]+nL, PS_MAX_DELAY*sizeof(delay[k][0]));
memcpy(delay[k]+PS_MAX_DELAY, s[k], numQMFSlots*sizeof(delay[k][0]));
for (n = n0; n < nL; n++) {
//H = delay 14
out[k][n][0] = transient_gain[k_to_i[k]][n] * delay[k][n+PS_MAX_DELAY-14][0];
out[k][n][1] = transient_gain[k_to_i[k]][n] * delay[k][n+PS_MAX_DELAY-14][1];
}
//H = delay 14
ps->dsp.mul_pair_single(out[k], delay[k] + PS_MAX_DELAY - 14,
transient_gain[i], nL - n0);
}
for (; k < NR_BANDS[is34]; k++) {
int i = k_to_i[k];
memcpy(delay[k], delay[k]+nL, PS_MAX_DELAY*sizeof(delay[k][0]));
memcpy(delay[k]+PS_MAX_DELAY, s[k], numQMFSlots*sizeof(delay[k][0]));
for (n = n0; n < nL; n++) {
//H = delay 1
out[k][n][0] = transient_gain[k_to_i[k]][n] * delay[k][n+PS_MAX_DELAY-1][0];
out[k][n][1] = transient_gain[k_to_i[k]][n] * delay[k][n+PS_MAX_DELAY-1][1];
}
//H = delay 1
ps->dsp.mul_pair_single(out[k], delay[k] + PS_MAX_DELAY - 1,
transient_gain[i], nL - n0);
}
}
@@ -793,7 +730,7 @@ static void remap20(int8_t (**p_par_mapped)[PS_MAX_NR_IIDICC],
static void stereo_processing(PSContext *ps, float (*l)[32][2], float (*r)[32][2], int is34)
{
int e, b, k, n;
int e, b, k;
float (*H11)[PS_MAX_NUM_ENV+1][PS_MAX_NR_IIDICC] = ps->H11;
float (*H12)[PS_MAX_NUM_ENV+1][PS_MAX_NR_IIDICC] = ps->H12;
@@ -905,78 +842,52 @@ static void stereo_processing(PSContext *ps, float (*l)[32][2], float (*r)[32][2
H22[0][e+1][b] = h22;
}
for (k = 0; k < NR_BANDS[is34]; k++) {
float h11r, h12r, h21r, h22r;
float h11i, h12i, h21i, h22i;
float h11r_step, h12r_step, h21r_step, h22r_step;
float h11i_step, h12i_step, h21i_step, h22i_step;
float h[2][4];
float h_step[2][4];
int start = ps->border_position[e];
int stop = ps->border_position[e+1];
float width = 1.f / (stop - start);
b = k_to_i[k];
h11r = H11[0][e][b];
h12r = H12[0][e][b];
h21r = H21[0][e][b];
h22r = H22[0][e][b];
h[0][0] = H11[0][e][b];
h[0][1] = H12[0][e][b];
h[0][2] = H21[0][e][b];
h[0][3] = H22[0][e][b];
if (!PS_BASELINE && ps->enable_ipdopd) {
//Is this necessary? ps_04_new seems unchanged
if ((is34 && k <= 13 && k >= 9) || (!is34 && k <= 1)) {
h11i = -H11[1][e][b];
h12i = -H12[1][e][b];
h21i = -H21[1][e][b];
h22i = -H22[1][e][b];
h[1][0] = -H11[1][e][b];
h[1][1] = -H12[1][e][b];
h[1][2] = -H21[1][e][b];
h[1][3] = -H22[1][e][b];
} else {
h11i = H11[1][e][b];
h12i = H12[1][e][b];
h21i = H21[1][e][b];
h22i = H22[1][e][b];
h[1][0] = H11[1][e][b];
h[1][1] = H12[1][e][b];
h[1][2] = H21[1][e][b];
h[1][3] = H22[1][e][b];
}
}
//Interpolation
h11r_step = (H11[0][e+1][b] - h11r) * width;
h12r_step = (H12[0][e+1][b] - h12r) * width;
h21r_step = (H21[0][e+1][b] - h21r) * width;
h22r_step = (H22[0][e+1][b] - h22r) * width;
h_step[0][0] = (H11[0][e+1][b] - h[0][0]) * width;
h_step[0][1] = (H12[0][e+1][b] - h[0][1]) * width;
h_step[0][2] = (H21[0][e+1][b] - h[0][2]) * width;
h_step[0][3] = (H22[0][e+1][b] - h[0][3]) * width;
if (!PS_BASELINE && ps->enable_ipdopd) {
h11i_step = (H11[1][e+1][b] - h11i) * width;
h12i_step = (H12[1][e+1][b] - h12i) * width;
h21i_step = (H21[1][e+1][b] - h21i) * width;
h22i_step = (H22[1][e+1][b] - h22i) * width;
}
for (n = start + 1; n <= stop; n++) {
//l is s, r is d
float l_re = l[k][n][0];
float l_im = l[k][n][1];
float r_re = r[k][n][0];
float r_im = r[k][n][1];
h11r += h11r_step;
h12r += h12r_step;
h21r += h21r_step;
h22r += h22r_step;
if (!PS_BASELINE && ps->enable_ipdopd) {
h11i += h11i_step;
h12i += h12i_step;
h21i += h21i_step;
h22i += h22i_step;
l[k][n][0] = h11r*l_re + h21r*r_re - h11i*l_im - h21i*r_im;
l[k][n][1] = h11r*l_im + h21r*r_im + h11i*l_re + h21i*r_re;
r[k][n][0] = h12r*l_re + h22r*r_re - h12i*l_im - h22i*r_im;
r[k][n][1] = h12r*l_im + h22r*r_im + h12i*l_re + h22i*r_re;
} else {
l[k][n][0] = h11r*l_re + h21r*r_re;
l[k][n][1] = h11r*l_im + h21r*r_im;
r[k][n][0] = h12r*l_re + h22r*r_re;
r[k][n][1] = h12r*l_im + h22r*r_im;
}
h_step[1][0] = (H11[1][e+1][b] - h[1][0]) * width;
h_step[1][1] = (H12[1][e+1][b] - h[1][1]) * width;
h_step[1][2] = (H21[1][e+1][b] - h[1][2]) * width;
h_step[1][3] = (H22[1][e+1][b] - h[1][3]) * width;
}
ps->dsp.stereo_interpolate[!PS_BASELINE && ps->enable_ipdopd](
l[k] + start + 1, r[k] + start + 1,
h, h_step, stop - start);
}
}
}
int ff_ps_apply(AVCodecContext *avctx, PSContext *ps, float L[2][38][64], float R[2][38][64], int top)
{
float Lbuf[91][32][2];
float Rbuf[91][32][2];
LOCAL_ALIGNED_16(float, Lbuf, [91], [32][2]);
LOCAL_ALIGNED_16(float, Rbuf, [91], [32][2]);
const int len = 32;
int is34 = ps->is34bands;
@@ -985,11 +896,11 @@ int ff_ps_apply(AVCodecContext *avctx, PSContext *ps, float L[2][38][64], float
if (top < NR_ALLPASS_BANDS[is34])
memset(ps->ap_delay + top, 0, (NR_ALLPASS_BANDS[is34] - top)*sizeof(ps->ap_delay[0]));
hybrid_analysis(Lbuf, ps->in_buf, L, is34, len);
hybrid_analysis(&ps->dsp, Lbuf, ps->in_buf, L, is34, len);
decorrelation(ps, Rbuf, Lbuf, is34);
stereo_processing(ps, Lbuf, Rbuf, is34);
hybrid_synthesis(L, Lbuf, is34, len);
hybrid_synthesis(R, Rbuf, is34, len);
hybrid_synthesis(&ps->dsp, L, Lbuf, is34, len);
hybrid_synthesis(&ps->dsp, R, Rbuf, is34, len);
return 0;
}
@@ -1037,4 +948,5 @@ av_cold void ff_ps_init(void) {
av_cold void ff_ps_ctx_init(PSContext *ps)
{
ff_psdsp_init(&ps->dsp);
}
+12 -10
View File
@@ -24,6 +24,7 @@
#include <stdint.h>
#include "aacpsdsp.h"
#include "avcodec.h"
#include "get_bits.h"
@@ -60,18 +61,19 @@ typedef struct {
int is34bands;
int is34bands_old;
float in_buf[5][44][2];
float delay[PS_MAX_SSB][PS_QMF_TIME_SLOTS + PS_MAX_DELAY][2];
float ap_delay[PS_MAX_AP_BANDS][PS_AP_LINKS][PS_QMF_TIME_SLOTS + PS_MAX_AP_DELAY][2];
float peak_decay_nrg[34];
float power_smooth[34];
float peak_decay_diff_smooth[34];
float H11[2][PS_MAX_NUM_ENV+1][PS_MAX_NR_IIDICC];
float H12[2][PS_MAX_NUM_ENV+1][PS_MAX_NR_IIDICC];
float H21[2][PS_MAX_NUM_ENV+1][PS_MAX_NR_IIDICC];
float H22[2][PS_MAX_NUM_ENV+1][PS_MAX_NR_IIDICC];
DECLARE_ALIGNED(16, float, in_buf)[5][44][2];
DECLARE_ALIGNED(16, float, delay)[PS_MAX_SSB][PS_QMF_TIME_SLOTS + PS_MAX_DELAY][2];
DECLARE_ALIGNED(16, float, ap_delay)[PS_MAX_AP_BANDS][PS_AP_LINKS][PS_QMF_TIME_SLOTS + PS_MAX_AP_DELAY][2];
DECLARE_ALIGNED(16, float, peak_decay_nrg)[34];
DECLARE_ALIGNED(16, float, power_smooth)[34];
DECLARE_ALIGNED(16, float, peak_decay_diff_smooth)[34];
DECLARE_ALIGNED(16, float, H11)[2][PS_MAX_NUM_ENV+1][PS_MAX_NR_IIDICC];
DECLARE_ALIGNED(16, float, H12)[2][PS_MAX_NUM_ENV+1][PS_MAX_NR_IIDICC];
DECLARE_ALIGNED(16, float, H21)[2][PS_MAX_NUM_ENV+1][PS_MAX_NR_IIDICC];
DECLARE_ALIGNED(16, float, H22)[2][PS_MAX_NUM_ENV+1][PS_MAX_NR_IIDICC];
int8_t opd_hist[PS_MAX_NR_IIDICC];
int8_t ipd_hist[PS_MAX_NR_IIDICC];
PSDSPContext dsp;
} PSContext;
void ff_ps_init(void);
+10 -10
View File
@@ -69,23 +69,23 @@ int main(void)
write_float_3d_array(HB, 46, 8, 4);
printf("};\n");
printf("static const float f20_0_8[8][7][2] = {\n");
write_float_3d_array(f20_0_8, 8, 7, 2);
printf("static const DECLARE_ALIGNED(16, float, f20_0_8)[8][8][2] = {\n");
write_float_3d_array(f20_0_8, 8, 8, 2);
printf("};\n");
printf("static const float f34_0_12[12][7][2] = {\n");
write_float_3d_array(f34_0_12, 12, 7, 2);
printf("static const DECLARE_ALIGNED(16, float, f34_0_12)[12][8][2] = {\n");
write_float_3d_array(f34_0_12, 12, 8, 2);
printf("};\n");
printf("static const float f34_1_8[8][7][2] = {\n");
write_float_3d_array(f34_1_8, 8, 7, 2);
printf("static const DECLARE_ALIGNED(16, float, f34_1_8)[8][8][2] = {\n");
write_float_3d_array(f34_1_8, 8, 8, 2);
printf("};\n");
printf("static const float f34_2_4[4][7][2] = {\n");
write_float_3d_array(f34_2_4, 4, 7, 2);
printf("static const DECLARE_ALIGNED(16, float, f34_2_4)[4][8][2] = {\n");
write_float_3d_array(f34_2_4, 4, 8, 2);
printf("};\n");
printf("static const float Q_fract_allpass[2][50][3][2] = {\n");
printf("static const DECLARE_ALIGNED(16, float, Q_fract_allpass)[2][50][3][2] = {\n");
write_float_4d_array(Q_fract_allpass, 2, 50, 3, 2);
printf("};\n");
printf("static const float phi_fract[2][50][2] = {\n");
printf("static const DECLARE_ALIGNED(16, float, phi_fract)[2][50][2] = {\n");
write_float_3d_array(phi_fract, 2, 50, 2);
printf("};\n");
+8 -7
View File
@@ -31,6 +31,7 @@
#else
#include "libavutil/common.h"
#include "libavutil/mathematics.h"
#include "libavutil/mem.h"
#define NR_ALLPASS_BANDS20 30
#define NR_ALLPASS_BANDS34 50
#define PS_AP_LINKS 3
@@ -38,12 +39,12 @@ static float pd_re_smooth[8*8*8];
static float pd_im_smooth[8*8*8];
static float HA[46][8][4];
static float HB[46][8][4];
static float f20_0_8 [ 8][7][2];
static float f34_0_12[12][7][2];
static float f34_1_8 [ 8][7][2];
static float f34_2_4 [ 4][7][2];
static float Q_fract_allpass[2][50][3][2];
static float phi_fract[2][50][2];
static DECLARE_ALIGNED(16, float, f20_0_8) [ 8][8][2];
static DECLARE_ALIGNED(16, float, f34_0_12)[12][8][2];
static DECLARE_ALIGNED(16, float, f34_1_8) [ 8][8][2];
static DECLARE_ALIGNED(16, float, f34_2_4) [ 4][8][2];
static DECLARE_ALIGNED(16, float, Q_fract_allpass)[2][50][3][2];
static DECLARE_ALIGNED(16, float, phi_fract)[2][50][2];
static const float g0_Q8[] = {
0.00746082949812f, 0.02270420949825f, 0.04546865930473f, 0.07266113929591f,
@@ -65,7 +66,7 @@ static const float g2_Q4[] = {
0.16486303567403f, 0.23279856662996f, 0.25f
};
static void make_filters_from_proto(float (*filter)[7][2], const float *proto, int bands)
static void make_filters_from_proto(float (*filter)[8][2], const float *proto, int bands)
{
int q, n;
for (q = 0; q < bands; q++) {
+214
View File
@@ -0,0 +1,214 @@
/*
* Copyright (c) 2010 Alex Converse <alex.converse@gmail.com>
*
* This file is part of Libav.
*
* Libav 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.
*
* Libav 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 Libav; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
#include "config.h"
#include "libavutil/attributes.h"
#include "aacpsdsp.h"
static void ps_add_squares_c(float *dst, const float (*src)[2], int n)
{
int i;
for (i = 0; i < n; i++)
dst[i] += src[i][0] * src[i][0] + src[i][1] * src[i][1];
}
static void ps_mul_pair_single_c(float (*dst)[2], float (*src0)[2], float *src1,
int n)
{
int i;
for (i = 0; i < n; i++) {
dst[i][0] = src0[i][0] * src1[i];
dst[i][1] = src0[i][1] * src1[i];
}
}
static void ps_hybrid_analysis_c(float (*out)[2], float (*in)[2],
const float (*filter)[8][2],
int stride, int n)
{
int i, j;
for (i = 0; i < n; i++) {
float sum_re = filter[i][6][0] * in[6][0];
float sum_im = filter[i][6][0] * in[6][1];
for (j = 0; j < 6; j++) {
float in0_re = in[j][0];
float in0_im = in[j][1];
float in1_re = in[12-j][0];
float in1_im = in[12-j][1];
sum_re += filter[i][j][0] * (in0_re + in1_re) -
filter[i][j][1] * (in0_im - in1_im);
sum_im += filter[i][j][0] * (in0_im + in1_im) +
filter[i][j][1] * (in0_re - in1_re);
}
out[i * stride][0] = sum_re;
out[i * stride][1] = sum_im;
}
}
static void ps_hybrid_analysis_ileave_c(float (*out)[32][2], float L[2][38][64],
int i, int len)
{
int j;
for (; i < 64; i++) {
for (j = 0; j < len; j++) {
out[i][j][0] = L[0][j][i];
out[i][j][1] = L[1][j][i];
}
}
}
static void ps_hybrid_synthesis_deint_c(float out[2][38][64],
float (*in)[32][2],
int i, int len)
{
int n;
for (; i < 64; i++) {
for (n = 0; n < len; n++) {
out[0][n][i] = in[i][n][0];
out[1][n][i] = in[i][n][1];
}
}
}
static void ps_decorrelate_c(float (*out)[2], float (*delay)[2],
float (*ap_delay)[PS_QMF_TIME_SLOTS + PS_MAX_AP_DELAY][2],
const float phi_fract[2], float (*Q_fract)[2],
const float *transient_gain,
float g_decay_slope,
int len)
{
static const float a[] = { 0.65143905753106f,
0.56471812200776f,
0.48954165955695f };
float ag[PS_AP_LINKS];
int m, n;
for (m = 0; m < PS_AP_LINKS; m++)
ag[m] = a[m] * g_decay_slope;
for (n = 0; n < len; n++) {
float in_re = delay[n][0] * phi_fract[0] - delay[n][1] * phi_fract[1];
float in_im = delay[n][0] * phi_fract[1] + delay[n][1] * phi_fract[0];
for (m = 0; m < PS_AP_LINKS; m++) {
float a_re = ag[m] * in_re;
float a_im = ag[m] * in_im;
float link_delay_re = ap_delay[m][n+2-m][0];
float link_delay_im = ap_delay[m][n+2-m][1];
float fractional_delay_re = Q_fract[m][0];
float fractional_delay_im = Q_fract[m][1];
float apd_re = in_re;
float apd_im = in_im;
in_re = link_delay_re * fractional_delay_re -
link_delay_im * fractional_delay_im - a_re;
in_im = link_delay_re * fractional_delay_im +
link_delay_im * fractional_delay_re - a_im;
ap_delay[m][n+5][0] = apd_re + ag[m] * in_re;
ap_delay[m][n+5][1] = apd_im + ag[m] * in_im;
}
out[n][0] = transient_gain[n] * in_re;
out[n][1] = transient_gain[n] * in_im;
}
}
static void ps_stereo_interpolate_c(float (*l)[2], float (*r)[2],
float h[2][4], float h_step[2][4],
int len)
{
float h0 = h[0][0];
float h1 = h[0][1];
float h2 = h[0][2];
float h3 = h[0][3];
float hs0 = h_step[0][0];
float hs1 = h_step[0][1];
float hs2 = h_step[0][2];
float hs3 = h_step[0][3];
int n;
for (n = 0; n < len; n++) {
//l is s, r is d
float l_re = l[n][0];
float l_im = l[n][1];
float r_re = r[n][0];
float r_im = r[n][1];
h0 += hs0;
h1 += hs1;
h2 += hs2;
h3 += hs3;
l[n][0] = h0 * l_re + h2 * r_re;
l[n][1] = h0 * l_im + h2 * r_im;
r[n][0] = h1 * l_re + h3 * r_re;
r[n][1] = h1 * l_im + h3 * r_im;
}
}
static void ps_stereo_interpolate_ipdopd_c(float (*l)[2], float (*r)[2],
float h[2][4], float h_step[2][4],
int len)
{
float h00 = h[0][0], h10 = h[1][0];
float h01 = h[0][1], h11 = h[1][1];
float h02 = h[0][2], h12 = h[1][2];
float h03 = h[0][3], h13 = h[1][3];
float hs00 = h_step[0][0], hs10 = h_step[1][0];
float hs01 = h_step[0][1], hs11 = h_step[1][1];
float hs02 = h_step[0][2], hs12 = h_step[1][2];
float hs03 = h_step[0][3], hs13 = h_step[1][3];
int n;
for (n = 0; n < len; n++) {
//l is s, r is d
float l_re = l[n][0];
float l_im = l[n][1];
float r_re = r[n][0];
float r_im = r[n][1];
h00 += hs00;
h01 += hs01;
h02 += hs02;
h03 += hs03;
h10 += hs10;
h11 += hs11;
h12 += hs12;
h13 += hs13;
l[n][0] = h00 * l_re + h02 * r_re - h10 * l_im - h12 * r_im;
l[n][1] = h00 * l_im + h02 * r_im + h10 * l_re + h12 * r_re;
r[n][0] = h01 * l_re + h03 * r_re - h11 * l_im - h13 * r_im;
r[n][1] = h01 * l_im + h03 * r_im + h11 * l_re + h13 * r_re;
}
}
av_cold void ff_psdsp_init(PSDSPContext *s)
{
s->add_squares = ps_add_squares_c;
s->mul_pair_single = ps_mul_pair_single_c;
s->hybrid_analysis = ps_hybrid_analysis_c;
s->hybrid_analysis_ileave = ps_hybrid_analysis_ileave_c;
s->hybrid_synthesis_deint = ps_hybrid_synthesis_deint_c;
s->decorrelate = ps_decorrelate_c;
s->stereo_interpolate[0] = ps_stereo_interpolate_c;
s->stereo_interpolate[1] = ps_stereo_interpolate_ipdopd_c;
if (ARCH_ARM)
ff_psdsp_init_arm(s);
}
+53
View File
@@ -0,0 +1,53 @@
/*
* Copyright (c) 2012 Mans Rullgard
*
* This file is part of Libav.
*
* Libav 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.
*
* Libav 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 Libav; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
#ifndef LIBAVCODEC_AACPSDSP_H
#define LIBAVCODEC_AACPSDSP_H
#define PS_QMF_TIME_SLOTS 32
#define PS_AP_LINKS 3
#define PS_MAX_AP_DELAY 5
typedef struct PSDSPContext {
void (*add_squares)(float *dst, const float (*src)[2], int n);
void (*mul_pair_single)(float (*dst)[2], float (*src0)[2], float *src1,
int n);
void (*hybrid_analysis)(float (*out)[2], float (*in)[2],
const float (*filter)[8][2],
int stride, int n);
void (*hybrid_analysis_ileave)(float (*out)[32][2], float L[2][38][64],
int i, int len);
void (*hybrid_synthesis_deint)(float out[2][38][64], float (*in)[32][2],
int i, int len);
void (*decorrelate)(float (*out)[2], float (*delay)[2],
float (*ap_delay)[PS_QMF_TIME_SLOTS+PS_MAX_AP_DELAY][2],
const float phi_fract[2], float (*Q_fract)[2],
const float *transient_gain,
float g_decay_slope,
int len);
void (*stereo_interpolate[2])(float (*l)[2], float (*r)[2],
float h[2][4], float h_step[2][4],
int len);
} PSDSPContext;
void ff_psdsp_init(PSDSPContext *s);
void ff_psdsp_init_arm(PSDSPContext *s);
#endif /* LIBAVCODEC_AACPSDSP_H */
+2 -4
View File
@@ -389,9 +389,8 @@ static av_unused FFPsyWindowInfo psy_3gpp_window(FFPsyContext *ctx,
AacPsyChannel *pch = &pctx->ch[channel];
uint8_t grouping = 0;
int next_type = pch->next_window_seq;
FFPsyWindowInfo wi;
FFPsyWindowInfo wi = { { 0 } };
memset(&wi, 0, sizeof(wi));
if (la) {
float s[8], v;
int switch_to_eight = 0;
@@ -785,9 +784,8 @@ static FFPsyWindowInfo psy_lame_window(FFPsyContext *ctx, const float *audio,
int uselongblock = 1;
int attacks[AAC_NUM_BLOCKS_SHORT + 1] = { 0 };
int i;
FFPsyWindowInfo wi;
FFPsyWindowInfo wi = { { 0 } };
memset(&wi, 0, sizeof(wi));
if (la) {
float hpfsmpl[AAC_BLOCK_SIZE_LONG];
float const *pf = hpfsmpl;
+117 -167
View File
@@ -32,6 +32,7 @@
#include "aacsbrdata.h"
#include "fft.h"
#include "aacps.h"
#include "sbrdsp.h"
#include "libavutil/libm.h"
#include "libavutil/avassert.h"
@@ -128,13 +129,24 @@ av_cold void ff_aac_sbr_init(void)
ff_ps_init();
}
/** Places SBR in pure upsampling mode. */
static void sbr_turnoff(SpectralBandReplication *sbr) {
sbr->start = 0;
// Init defults used in pure upsampling mode
sbr->kx[1] = 32; //Typo in spec, kx' inits to 32
sbr->m[1] = 0;
// Reset values for first SBR header
sbr->data[0].e_a[1] = sbr->data[1].e_a[1] = -1;
memset(&sbr->spectrum_params, -1, sizeof(SpectrumParameters));
}
av_cold void ff_aac_sbr_ctx_init(AACContext *ac, SpectralBandReplication *sbr)
{
float mdct_scale;
if(sbr->mdct.mdct_bits)
return;
sbr->kx[0] = sbr->kx[1] = 32; //Typo in spec, kx' inits to 32
sbr->data[0].e_a[1] = sbr->data[1].e_a[1] = -1;
sbr->kx[0] = sbr->kx[1];
sbr_turnoff(sbr);
sbr->data[0].synthesis_filterbank_samples_offset = SBR_SYNTHESIS_BUF_SIZE - (1280 - 128);
sbr->data[1].synthesis_filterbank_samples_offset = SBR_SYNTHESIS_BUF_SIZE - (1280 - 128);
/* SBR requires samples to be scaled to +/-32768.0 to work correctly.
@@ -144,6 +156,7 @@ av_cold void ff_aac_sbr_ctx_init(AACContext *ac, SpectralBandReplication *sbr)
ff_mdct_init(&sbr->mdct, 7, 1, 1.0 / (64 * mdct_scale));
ff_mdct_init(&sbr->mdct_ana, 7, 1, -2.0 * mdct_scale);
ff_ps_ctx_init(&sbr->ps);
ff_sbrdsp_init(&sbr->dsp);
}
av_cold void ff_aac_sbr_ctx_close(SpectralBandReplication *sbr)
@@ -905,7 +918,7 @@ static void read_sbr_extension(AACContext *ac, SpectralBandReplication *sbr,
{
switch (bs_extension_id) {
case EXTENSION_ID_PS:
if (!ac->m4ac.ps) {
if (!ac->oc[1].m4ac.ps) {
av_log(ac->avctx, AV_LOG_ERROR, "Parametric Stereo signaled to be not-present but was found in the bitstream.\n");
skip_bits_long(gb, *num_bits_left); // bs_fill_bits
*num_bits_left = 0;
@@ -920,7 +933,9 @@ static void read_sbr_extension(AACContext *ac, SpectralBandReplication *sbr,
}
break;
default:
av_log_missing_feature(ac->avctx, "Reserved SBR extensions are", 1);
// some files contain 0-padding
if (bs_extension_id || *num_bits_left > 16 || show_bits(gb, *num_bits_left))
av_log_missing_feature(ac->avctx, "Reserved SBR extensions are", 1);
skip_bits_long(gb, *num_bits_left); // bs_fill_bits
*num_bits_left = 0;
break;
@@ -996,18 +1011,18 @@ static unsigned int read_sbr_data(AACContext *ac, SpectralBandReplication *sbr,
if (id_aac == TYPE_SCE || id_aac == TYPE_CCE) {
if (read_sbr_single_channel_element(ac, sbr, gb)) {
sbr->start = 0;
sbr_turnoff(sbr);
return get_bits_count(gb) - cnt;
}
} else if (id_aac == TYPE_CPE) {
if (read_sbr_channel_pair_element(ac, sbr, gb)) {
sbr->start = 0;
sbr_turnoff(sbr);
return get_bits_count(gb) - cnt;
}
} else {
av_log(ac->avctx, AV_LOG_ERROR,
"Invalid bitstream - cannot apply SBR to element type %d\n", id_aac);
sbr->start = 0;
sbr_turnoff(sbr);
return get_bits_count(gb) - cnt;
}
if (get_bits1(gb)) { // bs_extended_data
@@ -1039,7 +1054,7 @@ static void sbr_reset(AACContext *ac, SpectralBandReplication *sbr)
if (err < 0) {
av_log(ac->avctx, AV_LOG_ERROR,
"SBR reset failed. Switching SBR to pure upsampling mode.\n");
sbr->start = 0;
sbr_turnoff(sbr);
}
}
@@ -1062,9 +1077,9 @@ int ff_decode_sbr_extension(AACContext *ac, SpectralBandReplication *sbr,
sbr->reset = 0;
if (!sbr->sample_rate)
sbr->sample_rate = 2 * ac->m4ac.sample_rate; //TODO use the nominal sample rate for arbitrary sample rate support
if (!ac->m4ac.ext_sample_rate)
ac->m4ac.ext_sample_rate = 2 * ac->m4ac.sample_rate;
sbr->sample_rate = 2 * ac->oc[1].m4ac.sample_rate; //TODO use the nominal sample rate for arbitrary sample rate support
if (!ac->oc[1].m4ac.ext_sample_rate)
ac->oc[1].m4ac.ext_sample_rate = 2 * ac->oc[1].m4ac.sample_rate;
if (crc) {
skip_bits(gb, 10); // bs_sbr_crc_bits; TODO - implement CRC check
@@ -1074,6 +1089,7 @@ int ff_decode_sbr_extension(AACContext *ac, SpectralBandReplication *sbr,
//Save some state from the previous frame.
sbr->kx[0] = sbr->kx[1];
sbr->m[0] = sbr->m[1];
sbr->kx_and_m_pushed = 1;
num_sbr_bits++;
if (get_bits1(gb)) // bs_header_flag
@@ -1143,33 +1159,21 @@ static void sbr_dequant(SpectralBandReplication *sbr, int id_aac)
* @param x pointer to the beginning of the first sample window
* @param W array of complex-valued samples split into subbands
*/
static void sbr_qmf_analysis(DSPContext *dsp, FFTContext *mdct, const float *in, float *x,
static void sbr_qmf_analysis(DSPContext *dsp, FFTContext *mdct,
SBRDSPContext *sbrdsp, const float *in, float *x,
float z[320], float W[2][32][32][2])
{
int i, k;
int i;
memcpy(W[0], W[1], sizeof(W[0]));
memcpy(x , x+1024, (320-32)*sizeof(x[0]));
memcpy(x+288, in, 1024*sizeof(x[0]));
for (i = 0; i < 32; i++) { // numTimeSlots*RATE = 16*2 as 960 sample frames
// are not supported
dsp->vector_fmul_reverse(z, sbr_qmf_window_ds, x, 320);
for (k = 0; k < 64; k++) {
float f = z[k] + z[k + 64] + z[k + 128] + z[k + 192] + z[k + 256];
z[k] = f;
}
//Shuffle to IMDCT
z[64] = z[0];
for (k = 1; k < 32; k++) {
z[64+2*k-1] = z[ k];
z[64+2*k ] = -z[64-k];
}
z[64+63] = z[32];
sbrdsp->sum64x5(z);
sbrdsp->qmf_pre_shuffle(z);
mdct->imdct_half(mdct, z, z+64);
for (k = 0; k < 32; k++) {
W[1][i][k][0] = -z[63-k];
W[1][i][k][1] = z[k];
}
sbrdsp->qmf_post_shuffle(W[1][i], z);
x += 32;
}
}
@@ -1179,6 +1183,7 @@ static void sbr_qmf_analysis(DSPContext *dsp, FFTContext *mdct, const float *in,
* (14496-3 sp04 p206)
*/
static void sbr_qmf_synthesis(DSPContext *dsp, FFTContext *mdct,
SBRDSPContext *sbrdsp,
float *out, float X[2][38][64],
float mdct_buf[2][64],
float *v0, int *v_off, const unsigned int div)
@@ -1202,20 +1207,12 @@ static void sbr_qmf_synthesis(DSPContext *dsp, FFTContext *mdct,
X[0][i][32+n] = X[1][i][31-n];
}
mdct->imdct_half(mdct, mdct_buf[0], X[0][i]);
for (n = 0; n < 32; n++) {
v[ n] = mdct_buf[0][63 - 2*n];
v[63 - n] = -mdct_buf[0][62 - 2*n];
}
sbrdsp->qmf_deint_neg(v, mdct_buf[0]);
} else {
for (n = 1; n < 64; n+=2) {
X[1][i][n] = -X[1][i][n];
}
sbrdsp->neg_odd_64(X[1][i]);
mdct->imdct_half(mdct, mdct_buf[0], X[0][i]);
mdct->imdct_half(mdct, mdct_buf[1], X[1][i]);
for (n = 0; n < 64; n++) {
v[ n] = -mdct_buf[0][63 - n] + mdct_buf[1][ n ];
v[127 - n] = mdct_buf[0][63 - n] + mdct_buf[1][ n ];
}
sbrdsp->qmf_deint_bfly(v, mdct_buf[1], mdct_buf[0]);
}
dsp->vector_fmul_add(out, v , sbr_qmf_window , zero64, 64 >> div);
dsp->vector_fmul_add(out, v + ( 192 >> div), sbr_qmf_window + ( 64 >> div), out , 64 >> div);
@@ -1231,45 +1228,20 @@ static void sbr_qmf_synthesis(DSPContext *dsp, FFTContext *mdct,
}
}
static void autocorrelate(const float x[40][2], float phi[3][2][2], int lag)
{
int i;
float real_sum = 0.0f;
float imag_sum = 0.0f;
if (lag) {
for (i = 1; i < 38; i++) {
real_sum += x[i][0] * x[i+lag][0] + x[i][1] * x[i+lag][1];
imag_sum += x[i][0] * x[i+lag][1] - x[i][1] * x[i+lag][0];
}
phi[2-lag][1][0] = real_sum + x[ 0][0] * x[lag][0] + x[ 0][1] * x[lag][1];
phi[2-lag][1][1] = imag_sum + x[ 0][0] * x[lag][1] - x[ 0][1] * x[lag][0];
if (lag == 1) {
phi[0][0][0] = real_sum + x[38][0] * x[39][0] + x[38][1] * x[39][1];
phi[0][0][1] = imag_sum + x[38][0] * x[39][1] - x[38][1] * x[39][0];
}
} else {
for (i = 1; i < 38; i++) {
real_sum += x[i][0] * x[i][0] + x[i][1] * x[i][1];
}
phi[2][1][0] = real_sum + x[ 0][0] * x[ 0][0] + x[ 0][1] * x[ 0][1];
phi[1][0][0] = real_sum + x[38][0] * x[38][0] + x[38][1] * x[38][1];
}
}
/** High Frequency Generation (14496-3 sp04 p214+) and Inverse Filtering
* (14496-3 sp04 p214)
* Warning: This routine does not seem numerically stable.
*/
static void sbr_hf_inverse_filter(float (*alpha0)[2], float (*alpha1)[2],
static void sbr_hf_inverse_filter(SBRDSPContext *dsp,
float (*alpha0)[2], float (*alpha1)[2],
const float X_low[32][40][2], int k0)
{
int k;
for (k = 0; k < k0; k++) {
float phi[3][2][2], dk;
LOCAL_ALIGNED_16(float, phi, [3], [2][2]);
float dk;
autocorrelate(X_low[k], phi, 0);
autocorrelate(X_low[k], phi, 1);
autocorrelate(X_low[k], phi, 2);
dsp->autocorrelate(X_low[k], phi);
dk = phi[2][1][0] * phi[1][0][0] -
(phi[1][1][0] * phi[1][1][0] + phi[1][1][1] * phi[1][1][1]) / 1.000001f;
@@ -1365,12 +1337,11 @@ static int sbr_hf_gen(AACContext *ac, SpectralBandReplication *sbr,
const float bw_array[5], const uint8_t *t_env,
int bs_num_env)
{
int i, j, x;
int j, x;
int g = 0;
int k = sbr->kx[1];
for (j = 0; j < sbr->num_patches; j++) {
for (x = 0; x < sbr->patch_num_subbands[j]; x++, k++) {
float alpha[4];
const int p = sbr->patch_start_subband[j] + x;
while (g <= sbr->n_q && k >= sbr->f_tablenoise[g])
g++;
@@ -1382,26 +1353,10 @@ static int sbr_hf_gen(AACContext *ac, SpectralBandReplication *sbr,
return -1;
}
alpha[0] = alpha1[p][0] * bw_array[g] * bw_array[g];
alpha[1] = alpha1[p][1] * bw_array[g] * bw_array[g];
alpha[2] = alpha0[p][0] * bw_array[g];
alpha[3] = alpha0[p][1] * bw_array[g];
for (i = 2 * t_env[0]; i < 2 * t_env[bs_num_env]; i++) {
const int idx = i + ENVELOPE_ADJUSTMENT_OFFSET;
X_high[k][idx][0] =
X_low[p][idx - 2][0] * alpha[0] -
X_low[p][idx - 2][1] * alpha[1] +
X_low[p][idx - 1][0] * alpha[2] -
X_low[p][idx - 1][1] * alpha[3] +
X_low[p][idx][0];
X_high[k][idx][1] =
X_low[p][idx - 2][1] * alpha[0] +
X_low[p][idx - 2][0] * alpha[1] +
X_low[p][idx - 1][1] * alpha[2] +
X_low[p][idx - 1][0] * alpha[3] +
X_low[p][idx][1];
}
sbr->dsp.hf_gen(X_high[k] + ENVELOPE_ADJUSTMENT_OFFSET,
X_low[p] + ENVELOPE_ADJUSTMENT_OFFSET,
alpha0[p], alpha1[p], bw_array[g],
2 * t_env[0], 2 * t_env[bs_num_env]);
}
}
if (k < sbr->m[1] + sbr->kx[1])
@@ -1412,8 +1367,8 @@ static int sbr_hf_gen(AACContext *ac, SpectralBandReplication *sbr,
/// Generate the subband filtered lowband
static int sbr_x_gen(SpectralBandReplication *sbr, float X[2][38][64],
const float X_low[32][40][2], const float Y[2][38][64][2],
int ch)
const float Y0[38][64][2], const float Y1[38][64][2],
const float X_low[32][40][2], int ch)
{
int k, i;
const int i_f = 32;
@@ -1427,8 +1382,8 @@ static int sbr_x_gen(SpectralBandReplication *sbr, float X[2][38][64],
}
for (; k < sbr->kx[0] + sbr->m[0]; k++) {
for (i = 0; i < i_Temp; i++) {
X[0][i][k] = Y[0][i + i_f][k][0];
X[1][i][k] = Y[0][i + i_f][k][1];
X[0][i][k] = Y0[i + i_f][k][0];
X[1][i][k] = Y0[i + i_f][k][1];
}
}
@@ -1440,8 +1395,8 @@ static int sbr_x_gen(SpectralBandReplication *sbr, float X[2][38][64],
}
for (; k < sbr->kx[1] + sbr->m[1]; k++) {
for (i = i_Temp; i < i_f; i++) {
X[0][i][k] = Y[1][i][k][0];
X[1][i][k] = Y[1][i][k][1];
X[0][i][k] = Y1[i][k][0];
X[1][i][k] = Y1[i][k][1];
}
}
return 0;
@@ -1450,7 +1405,7 @@ static int sbr_x_gen(SpectralBandReplication *sbr, float X[2][38][64],
/** High Frequency Adjustment (14496-3 sp04 p217) and Mapping
* (14496-3 sp04 p217)
*/
static void sbr_mapping(AACContext *ac, SpectralBandReplication *sbr,
static int sbr_mapping(AACContext *ac, SpectralBandReplication *sbr,
SBRData *ch_data, int e_a[2])
{
int e, i, m;
@@ -1461,7 +1416,12 @@ static void sbr_mapping(AACContext *ac, SpectralBandReplication *sbr,
uint16_t *table = ch_data->bs_freq_res[e + 1] ? sbr->f_tablehigh : sbr->f_tablelow;
int k;
av_assert0(sbr->kx[1] <= table[0]);
if (sbr->kx[1] != table[0]) {
av_log(ac->avctx, AV_LOG_ERROR, "kx != f_table{high,low}[0]. "
"Derived frequency tables were not regenerated.\n");
sbr_turnoff(sbr);
return AVERROR_BUG;
}
for (i = 0; i < ilim; i++)
for (m = table[i]; m < table[i + 1]; m++)
sbr->e_origmapped[e][m - sbr->kx[1]] = ch_data->env_facs[e+1][i];
@@ -1496,13 +1456,15 @@ static void sbr_mapping(AACContext *ac, SpectralBandReplication *sbr,
}
memcpy(ch_data->s_indexmapped[0], ch_data->s_indexmapped[ch_data->bs_num_env], sizeof(ch_data->s_indexmapped[0]));
return 0;
}
/// Estimation of current envelope (14496-3 sp04 p218)
static void sbr_env_estimate(float (*e_curr)[48], float X_high[64][40][2],
SpectralBandReplication *sbr, SBRData *ch_data)
{
int e, i, m;
int e, m;
int kx1 = sbr->kx[1];
if (sbr->bs_interpol_freq) {
for (e = 0; e < ch_data->bs_num_env; e++) {
@@ -1511,12 +1473,7 @@ static void sbr_env_estimate(float (*e_curr)[48], float X_high[64][40][2],
int iub = ch_data->t_env[e + 1] * 2 + ENVELOPE_ADJUSTMENT_OFFSET;
for (m = 0; m < sbr->m[1]; m++) {
float sum = 0.0f;
for (i = ilb; i < iub; i++) {
sum += X_high[m + sbr->kx[1]][i][0] * X_high[m + sbr->kx[1]][i][0] +
X_high[m + sbr->kx[1]][i][1] * X_high[m + sbr->kx[1]][i][1];
}
float sum = sbr->dsp.sum_square(X_high[m+kx1] + ilb, iub - ilb);
e_curr[e][m] = sum * recip_env_size;
}
}
@@ -1534,14 +1491,11 @@ static void sbr_env_estimate(float (*e_curr)[48], float X_high[64][40][2],
const int den = env_size * (table[p + 1] - table[p]);
for (k = table[p]; k < table[p + 1]; k++) {
for (i = ilb; i < iub; i++) {
sum += X_high[k][i][0] * X_high[k][i][0] +
X_high[k][i][1] * X_high[k][i][1];
}
sum += sbr->dsp.sum_square(X_high[k] + ilb, iub - ilb);
}
sum /= den;
for (k = table[p]; k < table[p + 1]; k++) {
e_curr[e][k - sbr->kx[1]] = sum;
e_curr[e][k - kx1] = sum;
}
}
}
@@ -1608,7 +1562,8 @@ static void sbr_gain_calc(AACContext *ac, SpectralBandReplication *sbr,
}
/// Assembling HF Signals (14496-3 sp04 p220)
static void sbr_hf_assemble(float Y[2][38][64][2], const float X_high[64][40][2],
static void sbr_hf_assemble(float Y1[38][64][2],
const float X_high[64][40][2],
SpectralBandReplication *sbr, SBRData *ch_data,
const int e_a[2])
{
@@ -1630,7 +1585,6 @@ static void sbr_hf_assemble(float Y[2][38][64][2], const float X_high[64][40][2]
float (*g_temp)[48] = ch_data->g_temp, (*q_temp)[48] = ch_data->q_temp;
int indexnoise = ch_data->f_indexnoise;
int indexsine = ch_data->f_indexsine;
memcpy(Y[0], Y[1], sizeof(Y[0]));
if (sbr->reset) {
for (i = 0; i < h_SL; i++) {
@@ -1652,63 +1606,44 @@ static void sbr_hf_assemble(float Y[2][38][64][2], const float X_high[64][40][2]
for (e = 0; e < ch_data->bs_num_env; e++) {
for (i = 2 * ch_data->t_env[e]; i < 2 * ch_data->t_env[e + 1]; i++) {
int phi_sign = (1 - 2*(kx & 1));
LOCAL_ALIGNED_16(float, g_filt_tab, [48]);
LOCAL_ALIGNED_16(float, q_filt_tab, [48]);
float *g_filt, *q_filt;
if (h_SL && e != e_a[0] && e != e_a[1]) {
g_filt = g_filt_tab;
q_filt = q_filt_tab;
for (m = 0; m < m_max; m++) {
const int idx1 = i + h_SL;
float g_filt = 0.0f;
for (j = 0; j <= h_SL; j++)
g_filt += g_temp[idx1 - j][m] * h_smooth[j];
Y[1][i][m + kx][0] =
X_high[m + kx][i + ENVELOPE_ADJUSTMENT_OFFSET][0] * g_filt;
Y[1][i][m + kx][1] =
X_high[m + kx][i + ENVELOPE_ADJUSTMENT_OFFSET][1] * g_filt;
g_filt[m] = 0.0f;
q_filt[m] = 0.0f;
for (j = 0; j <= h_SL; j++) {
g_filt[m] += g_temp[idx1 - j][m] * h_smooth[j];
q_filt[m] += q_temp[idx1 - j][m] * h_smooth[j];
}
}
} else {
for (m = 0; m < m_max; m++) {
const float g_filt = g_temp[i + h_SL][m];
Y[1][i][m + kx][0] =
X_high[m + kx][i + ENVELOPE_ADJUSTMENT_OFFSET][0] * g_filt;
Y[1][i][m + kx][1] =
X_high[m + kx][i + ENVELOPE_ADJUSTMENT_OFFSET][1] * g_filt;
}
g_filt = g_temp[i + h_SL];
q_filt = q_temp[i];
}
sbr->dsp.hf_g_filt(Y1[i] + kx, X_high + kx, g_filt, m_max,
i + ENVELOPE_ADJUSTMENT_OFFSET);
if (e != e_a[0] && e != e_a[1]) {
for (m = 0; m < m_max; m++) {
indexnoise = (indexnoise + 1) & 0x1ff;
if (sbr->s_m[e][m]) {
Y[1][i][m + kx][0] +=
sbr->s_m[e][m] * phi[0][indexsine];
Y[1][i][m + kx][1] +=
sbr->s_m[e][m] * (phi[1][indexsine] * phi_sign);
} else {
float q_filt;
if (h_SL) {
const int idx1 = i + h_SL;
q_filt = 0.0f;
for (j = 0; j <= h_SL; j++)
q_filt += q_temp[idx1 - j][m] * h_smooth[j];
} else {
q_filt = q_temp[i][m];
}
Y[1][i][m + kx][0] +=
q_filt * sbr_noise_table[indexnoise][0];
Y[1][i][m + kx][1] +=
q_filt * sbr_noise_table[indexnoise][1];
}
phi_sign = -phi_sign;
}
sbr->dsp.hf_apply_noise[indexsine](Y1[i] + kx, sbr->s_m[e],
q_filt, indexnoise,
kx, m_max);
} else {
indexnoise = (indexnoise + m_max) & 0x1ff;
for (m = 0; m < m_max; m++) {
Y[1][i][m + kx][0] +=
Y1[i][m + kx][0] +=
sbr->s_m[e][m] * phi[0][indexsine];
Y[1][i][m + kx][1] +=
Y1[i][m + kx][1] +=
sbr->s_m[e][m] * (phi[1][indexsine] * phi_sign);
phi_sign = -phi_sign;
}
}
indexnoise = (indexnoise + m_max) & 0x1ff;
indexsine = (indexsine + 1) & 3;
}
}
@@ -1719,39 +1654,54 @@ static void sbr_hf_assemble(float Y[2][38][64][2], const float X_high[64][40][2]
void ff_sbr_apply(AACContext *ac, SpectralBandReplication *sbr, int id_aac,
float* L, float* R)
{
int downsampled = ac->m4ac.ext_sample_rate < sbr->sample_rate;
int downsampled = ac->oc[1].m4ac.ext_sample_rate < sbr->sample_rate;
int ch;
int nch = (id_aac == TYPE_CPE) ? 2 : 1;
int err;
if (!sbr->kx_and_m_pushed) {
sbr->kx[0] = sbr->kx[1];
sbr->m[0] = sbr->m[1];
} else {
sbr->kx_and_m_pushed = 0;
}
if (sbr->start) {
sbr_dequant(sbr, id_aac);
}
for (ch = 0; ch < nch; ch++) {
/* decode channel */
sbr_qmf_analysis(&ac->dsp, &sbr->mdct_ana, ch ? R : L, sbr->data[ch].analysis_filterbank_samples,
sbr_qmf_analysis(&ac->dsp, &sbr->mdct_ana, &sbr->dsp, ch ? R : L, sbr->data[ch].analysis_filterbank_samples,
(float*)sbr->qmf_filter_scratch,
sbr->data[ch].W);
sbr_lf_gen(ac, sbr, sbr->X_low, sbr->data[ch].W);
sbr->data[ch].Ypos ^= 1;
if (sbr->start) {
sbr_hf_inverse_filter(sbr->alpha0, sbr->alpha1, sbr->X_low, sbr->k[0]);
sbr_hf_inverse_filter(&sbr->dsp, sbr->alpha0, sbr->alpha1, sbr->X_low, sbr->k[0]);
sbr_chirp(sbr, &sbr->data[ch]);
sbr_hf_gen(ac, sbr, sbr->X_high, sbr->X_low, sbr->alpha0, sbr->alpha1,
sbr->data[ch].bw_array, sbr->data[ch].t_env,
sbr->data[ch].bs_num_env);
// hf_adj
sbr_mapping(ac, sbr, &sbr->data[ch], sbr->data[ch].e_a);
sbr_env_estimate(sbr->e_curr, sbr->X_high, sbr, &sbr->data[ch]);
sbr_gain_calc(ac, sbr, &sbr->data[ch], sbr->data[ch].e_a);
sbr_hf_assemble(sbr->data[ch].Y, sbr->X_high, sbr, &sbr->data[ch],
sbr->data[ch].e_a);
err = sbr_mapping(ac, sbr, &sbr->data[ch], sbr->data[ch].e_a);
if (!err) {
sbr_env_estimate(sbr->e_curr, sbr->X_high, sbr, &sbr->data[ch]);
sbr_gain_calc(ac, sbr, &sbr->data[ch], sbr->data[ch].e_a);
sbr_hf_assemble(sbr->data[ch].Y[sbr->data[ch].Ypos],
sbr->X_high, sbr, &sbr->data[ch],
sbr->data[ch].e_a);
}
}
/* synthesis */
sbr_x_gen(sbr, sbr->X[ch], sbr->X_low, sbr->data[ch].Y, ch);
sbr_x_gen(sbr, sbr->X[ch],
sbr->data[ch].Y[1-sbr->data[ch].Ypos],
sbr->data[ch].Y[ sbr->data[ch].Ypos],
sbr->X_low, ch);
}
if (ac->m4ac.ps == 1) {
if (ac->oc[1].m4ac.ps == 1) {
if (sbr->ps.start) {
ff_ps_apply(ac->avctx, &sbr->ps, sbr->X[0], sbr->X[1], sbr->kx[1] + sbr->m[1]);
} else {
@@ -1760,12 +1710,12 @@ void ff_sbr_apply(AACContext *ac, SpectralBandReplication *sbr, int id_aac,
nch = 2;
}
sbr_qmf_synthesis(&ac->dsp, &sbr->mdct, L, sbr->X[0], sbr->qmf_filter_scratch,
sbr_qmf_synthesis(&ac->dsp, &sbr->mdct, &sbr->dsp, L, sbr->X[0], sbr->qmf_filter_scratch,
sbr->data[0].synthesis_filterbank_samples,
&sbr->data[0].synthesis_filterbank_samples_offset,
downsampled);
if (nch == 2)
sbr_qmf_synthesis(&ac->dsp, &sbr->mdct, R, sbr->X[1], sbr->qmf_filter_scratch,
sbr_qmf_synthesis(&ac->dsp, &sbr->mdct, &sbr->dsp, R, sbr->X[1], sbr->qmf_filter_scratch,
sbr->data[1].synthesis_filterbank_samples,
&sbr->data[1].synthesis_filterbank_samples_offset,
downsampled);
+5 -3
View File
@@ -267,8 +267,8 @@ static const int8_t sbr_offset[6][16] = {
};
///< window coefficients for analysis/synthesis QMF banks
static DECLARE_ALIGNED(16, float, sbr_qmf_window_ds)[320];
static DECLARE_ALIGNED(16, float, sbr_qmf_window_us)[640] = {
static DECLARE_ALIGNED(32, float, sbr_qmf_window_ds)[320];
static DECLARE_ALIGNED(32, float, sbr_qmf_window_us)[640] = {
0.0000000000, -0.0005525286, -0.0005617692, -0.0004947518,
-0.0004875227, -0.0004893791, -0.0005040714, -0.0005226564,
-0.0005466565, -0.0005677802, -0.0005870930, -0.0006132747,
@@ -352,7 +352,8 @@ static DECLARE_ALIGNED(16, float, sbr_qmf_window_us)[640] = {
0.8537385600,
};
static const float sbr_noise_table[512][2] = {
/* First two entries repeated at end to simplify SIMD implementations. */
const DECLARE_ALIGNED(16, float, ff_sbr_noise_table)[][2] = {
{-0.99948153278296, -0.59483417516607}, { 0.97113454393991, -0.67528515225647},
{ 0.14130051758487, -0.95090983575689}, {-0.47005496701697, -0.37340549728647},
{ 0.80705063769351, 0.29653668284408}, {-0.38981478896926, 0.89572605717087},
@@ -609,6 +610,7 @@ static const float sbr_noise_table[512][2] = {
{-0.93412041758744, 0.41374052024363}, { 0.96063943315511, 0.93116709541280},
{ 0.97534253457837, 0.86150930812689}, { 0.99642466504163, 0.70190043427512},
{-0.94705089665984, -0.29580042814306}, { 0.91599807087376, -0.98147830385781},
{-0.99948153278296, -0.59483417516607}, { 0.97113454393991, -0.67528515225647},
};
#endif /* AVCODEC_AACSBRDATA_H */
+2 -2
View File
@@ -33,8 +33,8 @@
#include <stdint.h>
DECLARE_ALIGNED(16, float, ff_aac_kbd_long_1024)[1024];
DECLARE_ALIGNED(16, float, ff_aac_kbd_short_128)[128];
DECLARE_ALIGNED(32, float, ff_aac_kbd_long_1024)[1024];
DECLARE_ALIGNED(32, float, ff_aac_kbd_short_128)[128];
const uint8_t ff_aac_num_swb_1024[] = {
41, 41, 47, 49, 49, 51, 47, 47, 43, 43, 43, 40, 40
+2 -2
View File
@@ -44,8 +44,8 @@
/* @name window coefficients
* @{
*/
DECLARE_ALIGNED(16, extern float, ff_aac_kbd_long_1024)[1024];
DECLARE_ALIGNED(16, extern float, ff_aac_kbd_short_128)[128];
DECLARE_ALIGNED(32, extern float, ff_aac_kbd_long_1024)[1024];
DECLARE_ALIGNED(32, extern float, ff_aac_kbd_short_128)[128];
// @}
/* @name number of scalefactor window bands for long and short transform windows respectively
+26 -11
View File
@@ -34,23 +34,26 @@
typedef struct AascContext {
AVCodecContext *avctx;
GetByteContext gb;
AVFrame frame;
} AascContext;
#define FETCH_NEXT_STREAM_BYTE() \
if (stream_ptr >= buf_size) \
{ \
av_log(s->avctx, AV_LOG_ERROR, " AASC: stream ptr just went out of bounds (fetch)\n"); \
break; \
} \
stream_byte = buf[stream_ptr++];
static av_cold int aasc_decode_init(AVCodecContext *avctx)
{
AascContext *s = avctx->priv_data;
s->avctx = avctx;
avctx->pix_fmt = PIX_FMT_BGR24;
switch (avctx->bits_per_coded_sample) {
case 16:
avctx->pix_fmt = PIX_FMT_RGB555;
break;
case 24:
avctx->pix_fmt = PIX_FMT_BGR24;
break;
default:
av_log(avctx, AV_LOG_ERROR, "Unsupported bit depth: %d\n", avctx->bits_per_coded_sample);
return -1;
}
avcodec_get_frame_defaults(&s->frame);
return 0;
@@ -75,6 +78,12 @@ static int aasc_decode_frame(AVCodecContext *avctx,
compr = AV_RL32(buf);
buf += 4;
buf_size -= 4;
switch (avctx->codec_tag) {
case MKTAG('A', 'A', 'S', '4'):
bytestream2_init(&s->gb, buf - 4, buf_size + 4);
ff_msrle_decode(avctx, (AVPicture*)&s->frame, 8, &s->gb);
break;
case MKTAG('A', 'A', 'S', 'C'):
switch(compr){
case 0:
stride = (avctx->width * 3 + 3) & ~3;
@@ -89,12 +98,18 @@ static int aasc_decode_frame(AVCodecContext *avctx,
}
break;
case 1:
ff_msrle_decode(avctx, (AVPicture*)&s->frame, 8, buf - 4, buf_size + 4);
bytestream2_init(&s->gb, buf, buf_size);
ff_msrle_decode(avctx, (AVPicture*)&s->frame, 8, &s->gb);
break;
default:
av_log(avctx, AV_LOG_ERROR, "Unknown compression type %d\n", compr);
return -1;
}
break;
default:
av_log(avctx, AV_LOG_ERROR, "Unknown FourCC: %X\n", avctx->codec_tag);
return -1;
}
*data_size = sizeof(AVFrame);
*(AVFrame*)data = s->frame;
@@ -123,5 +138,5 @@ AVCodec ff_aasc_decoder = {
.close = aasc_decode_end,
.decode = aasc_decode_frame,
.capabilities = CODEC_CAP_DR1,
.long_name = NULL_IF_CONFIG_SMALL("Autodesk RLE"),
.long_name = NULL_IF_CONFIG_SMALL("Autodesk RLE"),
};
+1 -1
View File
@@ -134,7 +134,7 @@ int avpriv_ac3_parse_header(GetBitContext *gbc, AC3HeaderInfo *hdr)
(hdr->num_blocks * 256.0));
hdr->channels = ff_ac3_channels_tab[hdr->channel_mode] + hdr->lfe_on;
}
hdr->channel_layout = ff_ac3_channel_layout_tab[hdr->channel_mode];
hdr->channel_layout = avpriv_ac3_channel_layout_tab[hdr->channel_mode];
if (hdr->lfe_on)
hdr->channel_layout |= AV_CH_LOW_FREQUENCY;
+7 -10
View File
@@ -162,17 +162,12 @@ static av_cold int ac3_decode_init(AVCodecContext *avctx)
AC3DecodeContext *s = avctx->priv_data;
s->avctx = avctx;
#if FF_API_DRC_SCALE
if (avctx->drc_scale)
s->drc_scale = avctx->drc_scale;
#endif
ff_ac3_common_init();
ac3_tables_init();
ff_mdct_init(&s->imdct_256, 8, 1, 1.0);
ff_mdct_init(&s->imdct_512, 9, 1, 1.0);
ff_kbd_window_init(s->window, 5.0, 256);
dsputil_init(&s->dsp, avctx);
ff_dsputil_init(&s->dsp, avctx);
ff_ac3dsp_init(&s->ac3dsp, avctx->flags & CODEC_FLAG_BITEXACT);
ff_fmt_convert_init(&s->fmt_conv, avctx);
av_lfg_init(&s->dith_state, 0);
@@ -758,9 +753,7 @@ static int decode_audio_block(AC3DecodeContext *s, int blk)
int downmix_output;
int cpl_in_use;
GetBitContext *gbc = &s->gbc;
uint8_t bit_alloc_stages[AC3_MAX_CHANNELS];
memset(bit_alloc_stages, 0, AC3_MAX_CHANNELS);
uint8_t bit_alloc_stages[AC3_MAX_CHANNELS] = { 0 };
/* block switch flags */
different_transforms = 0;
@@ -1383,7 +1376,7 @@ static int ac3_decode_frame(AVCodecContext * avctx, void *data,
avctx->request_channels < s->channels) {
s->out_channels = avctx->request_channels;
s->output_mode = avctx->request_channels == 1 ? AC3_CHMODE_MONO : AC3_CHMODE_STEREO;
s->channel_layout = ff_ac3_channel_layout_tab[s->output_mode];
s->channel_layout = avpriv_ac3_channel_layout_tab[s->output_mode];
}
avctx->channels = s->out_channels;
avctx->channel_layout = s->channel_layout;
@@ -1402,6 +1395,10 @@ static int ac3_decode_frame(AVCodecContext * avctx, void *data,
if (s->out_channels < s->channels)
s->output_mode = s->out_channels == 1 ? AC3_CHMODE_MONO : AC3_CHMODE_STEREO;
}
if (avctx->channels != s->out_channels) {
av_log(avctx, AV_LOG_ERROR, "channel number mismatching on damaged frame\n");
return AVERROR_INVALIDDATA;
}
/* set audio service type based on bitstream mode for AC-3 */
avctx->audio_service_type = s->bitstream_mode;
if (s->bitstream_mode == 0x7 && s->channels > 1)
+5 -3
View File
@@ -109,7 +109,7 @@ static void ac3_bit_alloc_calc_bap_c(int16_t *mask, int16_t *psd,
int snr_offset, int floor,
const uint8_t *bap_tab, uint8_t *bap)
{
int bin, band;
int bin, band, band_end;
/* special case, if snr offset is -960, set all bap's to zero */
if (snr_offset == -960) {
@@ -121,12 +121,14 @@ static void ac3_bit_alloc_calc_bap_c(int16_t *mask, int16_t *psd,
band = ff_ac3_bin_to_band_tab[start];
do {
int m = (FFMAX(mask[band] - snr_offset - floor, 0) & 0x1FE0) + floor;
int band_end = FFMIN(ff_ac3_band_start_tab[band+1], end);
band_end = ff_ac3_band_start_tab[++band];
band_end = FFMIN(band_end, end);
for (; bin < band_end; bin++) {
int address = av_clip((psd[bin] - m) >> 5, 0, 63);
bap[bin] = bap_tab[address];
}
} while (end > ff_ac3_band_start_tab[band++]);
} while (end > band_end);
}
static void ac3_update_bap_counts_c(uint16_t mant_cnt[16], uint8_t *bap,
+35 -12
View File
@@ -1383,8 +1383,7 @@ static void ac3_output_frame_header(AC3EncodeContext *s)
*/
static void output_audio_block(AC3EncodeContext *s, int blk)
{
int ch, i, baie, bnd, got_cpl;
int av_uninit(ch0);
int ch, i, baie, bnd, got_cpl, ch0;
AC3Block *block = &s->blocks[blk];
/* block switching */
@@ -2051,7 +2050,9 @@ av_cold int ff_ac3_encode_close(AVCodecContext *avctx)
s->mdct_end(s);
#if FF_API_OLD_ENCODE_AUDIO
av_freep(&avctx->coded_frame);
#endif
return 0;
}
@@ -2070,7 +2071,7 @@ static av_cold int set_channel_info(AC3EncodeContext *s, int channels,
return AVERROR(EINVAL);
ch_layout = *channel_layout;
if (!ch_layout)
ch_layout = avcodec_guess_channel_layout(channels, CODEC_ID_AC3, NULL);
ch_layout = av_get_default_channel_layout(channels);
s->lfe_on = !!(ch_layout & AV_CH_LOW_FREQUENCY);
s->channels = channels;
@@ -2139,6 +2140,17 @@ static av_cold int validate_options(AC3EncodeContext *s)
s->bit_alloc.sr_code = i % 3;
s->bitstream_id = s->eac3 ? 16 : 8 + s->bit_alloc.sr_shift;
/* select a default bit rate if not set by the user */
if (!avctx->bit_rate) {
switch (s->fbw_channels) {
case 1: avctx->bit_rate = 96000; break;
case 2: avctx->bit_rate = 192000; break;
case 3: avctx->bit_rate = 320000; break;
case 4: avctx->bit_rate = 384000; break;
case 5: avctx->bit_rate = 448000; break;
}
}
/* validate bit rate */
if (s->eac3) {
int max_br, min_br, wpf, min_br_dist, min_br_code;
@@ -2187,15 +2199,20 @@ static av_cold int validate_options(AC3EncodeContext *s)
wpf--;
s->frame_size_min = 2 * wpf;
} else {
int best_br = 0, best_code = 0, best_diff = INT_MAX;
for (i = 0; i < 19; i++) {
if ((ff_ac3_bitrate_tab[i] >> s->bit_alloc.sr_shift)*1000 == avctx->bit_rate)
int br = (ff_ac3_bitrate_tab[i] >> s->bit_alloc.sr_shift) * 1000;
int diff = abs(br - avctx->bit_rate);
if (diff < best_diff) {
best_br = br;
best_code = i;
best_diff = diff;
}
if (!best_diff)
break;
}
if (i == 19) {
av_log(avctx, AV_LOG_ERROR, "invalid bit rate\n");
return AVERROR(EINVAL);
}
s->frame_size_code = i << 1;
avctx->bit_rate = best_br;
s->frame_size_code = best_code << 1;
s->frame_size_min = 2 * ff_ac3_frame_size_tab[s->frame_size_code][s->bit_alloc.sr_code];
s->num_blks_code = 0x3;
s->num_blocks = 6;
@@ -2233,8 +2250,7 @@ static av_cold int validate_options(AC3EncodeContext *s)
*/
static av_cold void set_bandwidth(AC3EncodeContext *s)
{
int blk, ch;
int av_uninit(cpl_start);
int blk, ch, cpl_start;
if (s->cutoff) {
/* calculate bandwidth based on user-specified cutoff frequency */
@@ -2420,6 +2436,7 @@ av_cold int ff_ac3_encode_init(AVCodecContext *avctx)
return ret;
avctx->frame_size = AC3_BLOCK_SIZE * s->num_blocks;
avctx->delay = AC3_BLOCK_SIZE;
s->bitstream_mode = avctx->audio_service_type;
if (s->bitstream_mode == AV_AUDIO_SERVICE_TYPE_KARAOKE)
@@ -2465,9 +2482,15 @@ av_cold int ff_ac3_encode_init(AVCodecContext *avctx)
if (ret)
goto init_fail;
#if FF_API_OLD_ENCODE_AUDIO
avctx->coded_frame= avcodec_alloc_frame();
if (!avctx->coded_frame) {
ret = AVERROR(ENOMEM);
goto init_fail;
}
#endif
dsputil_init(&s->dsp, avctx);
ff_dsputil_init(&s->dsp, avctx);
ff_ac3dsp_init(&s->ac3dsp, avctx->flags & CODEC_FLAG_BITEXACT);
dprint_options(s);
+4 -4
View File
@@ -297,9 +297,9 @@ int ff_ac3_float_mdct_init(AC3EncodeContext *s);
int ff_ac3_fixed_allocate_sample_buffers(AC3EncodeContext *s);
int ff_ac3_float_allocate_sample_buffers(AC3EncodeContext *s);
int ff_ac3_fixed_encode_frame(AVCodecContext *avctx, unsigned char *frame,
int buf_size, void *data);
int ff_ac3_float_encode_frame(AVCodecContext *avctx, unsigned char *frame,
int buf_size, void *data);
int ff_ac3_fixed_encode_frame(AVCodecContext *avctx, AVPacket *avpkt,
const AVFrame *frame, int *got_packet_ptr);
int ff_ac3_float_encode_frame(AVCodecContext *avctx, AVPacket *avpkt,
const AVFrame *frame, int *got_packet_ptr);
#endif /* AVCODEC_AC3ENC_H */
+13 -10
View File
@@ -28,6 +28,7 @@
#define CONFIG_FFT_FLOAT 0
#undef CONFIG_AC3ENC_FLOAT
#include "internal.h"
#include "ac3enc.h"
#include "eac3enc.h"
@@ -146,15 +147,17 @@ static av_cold int ac3_fixed_encode_init(AVCodecContext *avctx)
AVCodec ff_ac3_fixed_encoder = {
.name = "ac3_fixed",
.type = AVMEDIA_TYPE_AUDIO,
.id = CODEC_ID_AC3,
.priv_data_size = sizeof(AC3EncodeContext),
.init = ac3_fixed_encode_init,
.encode = ff_ac3_fixed_encode_frame,
.close = ff_ac3_encode_close,
.sample_fmts = (const enum AVSampleFormat[]){AV_SAMPLE_FMT_S16,AV_SAMPLE_FMT_NONE},
.long_name = NULL_IF_CONFIG_SMALL("ATSC A/52A (AC-3)"),
.priv_class = &ac3enc_class,
.name = "ac3_fixed",
.type = AVMEDIA_TYPE_AUDIO,
.id = CODEC_ID_AC3,
.priv_data_size = sizeof(AC3EncodeContext),
.init = ac3_fixed_encode_init,
.encode2 = ff_ac3_fixed_encode_frame,
.close = ff_ac3_encode_close,
.sample_fmts = (const enum AVSampleFormat[]){ AV_SAMPLE_FMT_S16,
AV_SAMPLE_FMT_NONE },
.long_name = NULL_IF_CONFIG_SMALL("ATSC A/52A (AC-3)"),
.priv_class = &ac3enc_class,
.channel_layouts = ff_ac3_channel_layouts,
.defaults = ac3_defaults,
};
+13 -10
View File
@@ -27,6 +27,7 @@
*/
#define CONFIG_AC3ENC_FLOAT 1
#include "internal.h"
#include "ac3enc.h"
#include "eac3enc.h"
#include "kbdwin.h"
@@ -144,16 +145,18 @@ static CoefType calc_cpl_coord(CoefSumType energy_ch, CoefSumType energy_cpl)
#if CONFIG_AC3_ENCODER
AVCodec ff_ac3_encoder = {
.name = "ac3",
.type = AVMEDIA_TYPE_AUDIO,
.id = CODEC_ID_AC3,
.priv_data_size = sizeof(AC3EncodeContext),
.init = ff_ac3_encode_init,
.encode = ff_ac3_float_encode_frame,
.close = ff_ac3_encode_close,
.sample_fmts = (const enum AVSampleFormat[]){AV_SAMPLE_FMT_FLT,AV_SAMPLE_FMT_NONE},
.long_name = NULL_IF_CONFIG_SMALL("ATSC A/52A (AC-3)"),
.priv_class = &ac3enc_class,
.name = "ac3",
.type = AVMEDIA_TYPE_AUDIO,
.id = CODEC_ID_AC3,
.priv_data_size = sizeof(AC3EncodeContext),
.init = ff_ac3_encode_init,
.encode2 = ff_ac3_float_encode_frame,
.close = ff_ac3_encode_close,
.sample_fmts = (const enum AVSampleFormat[]){ AV_SAMPLE_FMT_FLT,
AV_SAMPLE_FMT_NONE },
.long_name = NULL_IF_CONFIG_SMALL("ATSC A/52A (AC-3)"),
.priv_class = &ac3enc_class,
.channel_layouts = ff_ac3_channel_layouts,
.defaults = ac3_defaults,
};
#endif
+6
View File
@@ -20,6 +20,7 @@
*/
#include "libavutil/opt.h"
#include "internal.h"
#include "ac3.h"
#if AC3ENC_TYPE == AC3ENC_TYPE_AC3_FIXED
@@ -78,3 +79,8 @@ static const AVOption eac3_options[] = {
{"auto", "Selected by the Encoder", 0, AV_OPT_TYPE_CONST, {.dbl = AC3ENC_OPT_AUTO }, INT_MIN, INT_MAX, AC3ENC_PARAM, "cpl_start_band"},
{NULL}
};
static const AVCodecDefault ac3_defaults[] = {
{ "b", "0" },
{ NULL }
};
+12 -6
View File
@@ -338,7 +338,7 @@ static void compute_rematrixing_strategy(AC3EncodeContext *s)
{
int nb_coefs;
int blk, bnd;
AC3Block *block, *av_uninit(block0);
AC3Block *block, *block0;
if (s->channel_mode != AC3_CHMODE_STEREO)
return;
@@ -386,11 +386,11 @@ static void compute_rematrixing_strategy(AC3EncodeContext *s)
}
int AC3_NAME(encode_frame)(AVCodecContext *avctx, unsigned char *frame,
int buf_size, void *data)
int AC3_NAME(encode_frame)(AVCodecContext *avctx, AVPacket *avpkt,
const AVFrame *frame, int *got_packet_ptr)
{
AC3EncodeContext *s = avctx->priv_data;
const SampleType *samples = data;
const SampleType *samples = (const SampleType *)frame->data[0];
int ret;
if (s->options.allow_per_frame_metadata) {
@@ -437,7 +437,13 @@ int AC3_NAME(encode_frame)(AVCodecContext *avctx, unsigned char *frame,
ff_ac3_quantize_mantissas(s);
ff_ac3_output_frame(s, frame);
if ((ret = ff_alloc_packet2(avctx, avpkt, s->frame_size)))
return ret;
ff_ac3_output_frame(s, avpkt->data);
return s->frame_size;
if (frame->pts != AV_NOPTS_VALUE)
avpkt->pts = frame->pts - ff_samples_to_time_base(avctx, avctx->delay);
*got_packet_ptr = 1;
return 0;
}
+1 -1
View File
@@ -84,7 +84,7 @@ const uint8_t ff_ac3_channels_tab[8] = {
/**
* Map audio coding mode (acmod) to channel layout mask.
*/
const uint16_t ff_ac3_channel_layout_tab[8] = {
const uint16_t avpriv_ac3_channel_layout_tab[8] = {
AV_CH_LAYOUT_STEREO,
AV_CH_LAYOUT_MONO,
AV_CH_LAYOUT_STEREO,
+1 -1
View File
@@ -33,7 +33,7 @@
extern const uint16_t ff_ac3_frame_size_tab[38][3];
extern const uint8_t ff_ac3_channels_tab[8];
extern const uint16_t ff_ac3_channel_layout_tab[8];
extern const uint16_t avpriv_ac3_channel_layout_tab[8];
extern const uint8_t ff_ac3_enc_channel_map[8][2][6];
extern const uint8_t ff_ac3_dec_channel_map[8][2][6];
extern const uint16_t ff_ac3_sample_rate_tab[3];
-1
View File
@@ -142,4 +142,3 @@ void ff_tilt_compensation(float *mem, float tilt, float *samples, int size)
samples[0] -= tilt * *mem;
*mem = new_tilt_mem;
}
+1 -1
View File
@@ -116,7 +116,7 @@ int16_t ff_acelp_decode_gain_code(
);
#else
mr_energy = gain_corr_factor * exp(M_LN10 / (20 << 23) * mr_energy) /
sqrt(dsp->scalarproduct_int16(fc_v, fc_v, subframe_size, 0));
sqrt(dsp->scalarproduct_int16(fc_v, fc_v, subframe_size));
return mr_energy >> 12;
#endif
}
+357 -322
View File
File diff suppressed because it is too large Load Diff
+5 -3
View File
@@ -26,18 +26,20 @@
#ifndef AVCODEC_ADPCM_H
#define AVCODEC_ADPCM_H
#include <stdint.h>
#define BLKSIZE 1024
typedef struct ADPCMChannelStatus {
int predictor;
short int step_index;
int16_t step_index;
int step;
/* for encoding */
int prev_sample;
/* MS version */
short sample1;
short sample2;
int16_t sample1;
int16_t sample2;
int coeff1;
int coeff2;
int idelta;
+74 -55
View File
@@ -24,6 +24,7 @@
#include "bytestream.h"
#include "adpcm.h"
#include "adpcm_data.h"
#include "internal.h"
/**
* @file
@@ -58,17 +59,23 @@ typedef struct ADPCMEncodeContext {
#define FREEZE_INTERVAL 128
static av_cold int adpcm_encode_close(AVCodecContext *avctx);
static av_cold int adpcm_encode_init(AVCodecContext *avctx)
{
ADPCMEncodeContext *s = avctx->priv_data;
uint8_t *extradata;
int i;
if (avctx->channels > 2)
return -1; /* only stereo or mono =) */
int ret = AVERROR(ENOMEM);
if (avctx->channels > 2) {
av_log(avctx, AV_LOG_ERROR, "only stereo or mono is supported\n");
return AVERROR(EINVAL);
}
if (avctx->trellis && (unsigned)avctx->trellis > 16U) {
av_log(avctx, AV_LOG_ERROR, "invalid trellis size\n");
return -1;
return AVERROR(EINVAL);
}
if (avctx->trellis) {
@@ -105,12 +112,12 @@ static av_cold int adpcm_encode_init(AVCodecContext *avctx)
/* each 16 bits sample gives one nibble
and we have 7 bytes per channel overhead */
avctx->frame_size = (BLKSIZE - 7 * avctx->channels) * 2 / avctx->channels + 2;
avctx->block_align = BLKSIZE;
avctx->bits_per_coded_sample = 4;
avctx->block_align = BLKSIZE;
if (!(avctx->extradata = av_malloc(32 + FF_INPUT_BUFFER_PADDING_SIZE)))
goto error;
avctx->extradata_size = 32;
extradata = avctx->extradata = av_malloc(avctx->extradata_size);
if (!extradata)
return AVERROR(ENOMEM);
extradata = avctx->extradata;
bytestream_put_le16(&extradata, avctx->frame_size);
bytestream_put_le16(&extradata, 7); /* wNumCoef */
for (i = 0; i < 7; i++) {
@@ -119,7 +126,7 @@ static av_cold int adpcm_encode_init(AVCodecContext *avctx)
}
break;
case CODEC_ID_ADPCM_YAMAHA:
avctx->frame_size = BLKSIZE * avctx->channels;
avctx->frame_size = BLKSIZE * 2 / avctx->channels;
avctx->block_align = BLKSIZE;
break;
case CODEC_ID_ADPCM_SWF:
@@ -128,30 +135,33 @@ static av_cold int adpcm_encode_init(AVCodecContext *avctx)
avctx->sample_rate != 44100) {
av_log(avctx, AV_LOG_ERROR, "Sample rate must be 11025, "
"22050 or 44100\n");
ret = AVERROR(EINVAL);
goto error;
}
avctx->frame_size = 512 * (avctx->sample_rate / 11025);
break;
default:
ret = AVERROR(EINVAL);
goto error;
}
avctx->coded_frame = avcodec_alloc_frame();
avctx->coded_frame->key_frame= 1;
#if FF_API_OLD_ENCODE_AUDIO
if (!(avctx->coded_frame = avcodec_alloc_frame()))
goto error;
#endif
return 0;
error:
av_freep(&s->paths);
av_freep(&s->node_buf);
av_freep(&s->nodep_buf);
av_freep(&s->trellis_hash);
return -1;
adpcm_encode_close(avctx);
return ret;
}
static av_cold int adpcm_encode_close(AVCodecContext *avctx)
{
ADPCMEncodeContext *s = avctx->priv_data;
#if FF_API_OLD_ENCODE_AUDIO
av_freep(&avctx->coded_frame);
#endif
av_freep(&s->paths);
av_freep(&s->node_buf);
av_freep(&s->nodep_buf);
@@ -161,8 +171,8 @@ static av_cold int adpcm_encode_close(AVCodecContext *avctx)
}
static inline unsigned char adpcm_ima_compress_sample(ADPCMChannelStatus *c,
short sample)
static inline uint8_t adpcm_ima_compress_sample(ADPCMChannelStatus *c,
int16_t sample)
{
int delta = sample - c->prev_sample;
int nibble = FFMIN(7, abs(delta) * 4 /
@@ -174,8 +184,8 @@ static inline unsigned char adpcm_ima_compress_sample(ADPCMChannelStatus *c,
return nibble;
}
static inline unsigned char adpcm_ima_qt_compress_sample(ADPCMChannelStatus *c,
short sample)
static inline uint8_t adpcm_ima_qt_compress_sample(ADPCMChannelStatus *c,
int16_t sample)
{
int delta = sample - c->prev_sample;
int diff, step = ff_adpcm_step_table[c->step_index];
@@ -211,8 +221,8 @@ static inline unsigned char adpcm_ima_qt_compress_sample(ADPCMChannelStatus *c,
return nibble;
}
static inline unsigned char adpcm_ms_compress_sample(ADPCMChannelStatus *c,
short sample)
static inline uint8_t adpcm_ms_compress_sample(ADPCMChannelStatus *c,
int16_t sample)
{
int predictor, nibble, bias;
@@ -228,20 +238,20 @@ static inline unsigned char adpcm_ms_compress_sample(ADPCMChannelStatus *c,
nibble = (nibble + bias) / c->idelta;
nibble = av_clip(nibble, -8, 7) & 0x0F;
predictor += (signed)((nibble & 0x08) ? (nibble - 0x10) : nibble) * c->idelta;
predictor += ((nibble & 0x08) ? (nibble - 0x10) : nibble) * c->idelta;
c->sample2 = c->sample1;
c->sample1 = av_clip_int16(predictor);
c->idelta = (ff_adpcm_AdaptationTable[(int)nibble] * c->idelta) >> 8;
c->idelta = (ff_adpcm_AdaptationTable[nibble] * c->idelta) >> 8;
if (c->idelta < 16)
c->idelta = 16;
return nibble;
}
static inline unsigned char adpcm_yamaha_compress_sample(ADPCMChannelStatus *c,
short sample)
static inline uint8_t adpcm_yamaha_compress_sample(ADPCMChannelStatus *c,
int16_t sample)
{
int nibble, delta;
@@ -262,8 +272,9 @@ static inline unsigned char adpcm_yamaha_compress_sample(ADPCMChannelStatus *c,
return nibble;
}
static void adpcm_compress_trellis(AVCodecContext *avctx, const short *samples,
uint8_t *dst, ADPCMChannelStatus *c, int n)
static void adpcm_compress_trellis(AVCodecContext *avctx,
const int16_t *samples, uint8_t *dst,
ADPCMChannelStatus *c, int n)
{
//FIXME 6% faster if frontier is a compile-time constant
ADPCMEncodeContext *s = avctx->priv_data;
@@ -467,35 +478,41 @@ static void adpcm_compress_trellis(AVCodecContext *avctx, const short *samples,
c->idelta = nodes[0]->step;
}
static int adpcm_encode_frame(AVCodecContext *avctx,
unsigned char *frame, int buf_size, void *data)
static int adpcm_encode_frame(AVCodecContext *avctx, AVPacket *avpkt,
const AVFrame *frame, int *got_packet_ptr)
{
int n, i, st;
short *samples;
unsigned char *dst;
int n, i, st, pkt_size, ret;
const int16_t *samples;
uint8_t *dst;
ADPCMEncodeContext *c = avctx->priv_data;
uint8_t *buf;
dst = frame;
samples = (short *)data;
samples = (const int16_t *)frame->data[0];
st = avctx->channels == 2;
/* n = (BLKSIZE - 4 * avctx->channels) / (2 * 8 * avctx->channels); */
if (avctx->codec_id == CODEC_ID_ADPCM_SWF)
pkt_size = (2 + avctx->channels * (22 + 4 * (frame->nb_samples - 1)) + 7) / 8;
else
pkt_size = avctx->block_align;
if ((ret = ff_alloc_packet2(avctx, avpkt, pkt_size)))
return ret;
dst = avpkt->data;
switch(avctx->codec->id) {
case CODEC_ID_ADPCM_IMA_WAV:
n = avctx->frame_size / 8;
c->status[0].prev_sample = (signed short)samples[0]; /* XXX */
n = frame->nb_samples / 8;
c->status[0].prev_sample = samples[0];
/* c->status[0].step_index = 0;
XXX: not sure how to init the state machine */
bytestream_put_le16(&dst, c->status[0].prev_sample);
*dst++ = (unsigned char)c->status[0].step_index;
*dst++ = c->status[0].step_index;
*dst++ = 0; /* unknown */
samples++;
if (avctx->channels == 2) {
c->status[1].prev_sample = (signed short)samples[0];
c->status[1].prev_sample = samples[0];
/* c->status[1].step_index = 0; */
bytestream_put_le16(&dst, c->status[1].prev_sample);
*dst++ = (unsigned char)c->status[1].step_index;
*dst++ = c->status[1].step_index;
*dst++ = 0;
samples++;
}
@@ -551,10 +568,10 @@ static int adpcm_encode_frame(AVCodecContext *avctx,
{
int ch, i;
PutBitContext pb;
init_put_bits(&pb, dst, buf_size * 8);
init_put_bits(&pb, dst, pkt_size * 8);
for (ch = 0; ch < avctx->channels; ch++) {
put_bits(&pb, 9, (c->status[ch].prev_sample + 0x10000) >> 7);
put_bits(&pb, 9, (c->status[ch].prev_sample & 0xFFFF) >> 7);
put_bits(&pb, 7, c->status[ch].step_index);
if (avctx->trellis > 0) {
uint8_t buf[64];
@@ -575,16 +592,15 @@ static int adpcm_encode_frame(AVCodecContext *avctx,
}
flush_put_bits(&pb);
dst += put_bits_count(&pb) >> 3;
break;
}
case CODEC_ID_ADPCM_SWF:
{
int i;
PutBitContext pb;
init_put_bits(&pb, dst, buf_size * 8);
init_put_bits(&pb, dst, pkt_size * 8);
n = avctx->frame_size - 1;
n = frame->nb_samples - 1;
// store AdpcmCodeSize
put_bits(&pb, 2, 2); // set 4-bit flash adpcm format
@@ -595,7 +611,7 @@ static int adpcm_encode_frame(AVCodecContext *avctx,
c->status[i].step_index = av_clip(c->status[i].step_index, 0, 63);
put_sbits(&pb, 16, samples[i]);
put_bits(&pb, 6, c->status[i].step_index);
c->status[i].prev_sample = (signed short)samples[i];
c->status[i].prev_sample = samples[i];
}
if (avctx->trellis > 0) {
@@ -611,7 +627,7 @@ static int adpcm_encode_frame(AVCodecContext *avctx,
}
av_free(buf);
} else {
for (i = 1; i < avctx->frame_size; i++) {
for (i = 1; i < frame->nb_samples; i++) {
put_bits(&pb, 4, adpcm_ima_compress_sample(&c->status[0],
samples[avctx->channels * i]));
if (avctx->channels == 2)
@@ -620,7 +636,6 @@ static int adpcm_encode_frame(AVCodecContext *avctx,
}
}
flush_put_bits(&pb);
dst += put_bits_count(&pb) >> 3;
break;
}
case CODEC_ID_ADPCM_MS:
@@ -668,7 +683,7 @@ static int adpcm_encode_frame(AVCodecContext *avctx,
}
break;
case CODEC_ID_ADPCM_YAMAHA:
n = avctx->frame_size / 2;
n = frame->nb_samples / 2;
if (avctx->trellis > 0) {
FF_ALLOC_OR_GOTO(avctx, buf, 2 * n * 2, error);
n *= 2;
@@ -692,10 +707,14 @@ static int adpcm_encode_frame(AVCodecContext *avctx,
}
break;
default:
error:
return -1;
return AVERROR(EINVAL);
}
return dst - frame;
avpkt->size = pkt_size;
*got_packet_ptr = 1;
return 0;
error:
return AVERROR(ENOMEM);
}
@@ -706,10 +725,10 @@ AVCodec ff_ ## name_ ## _encoder = { \
.id = id_, \
.priv_data_size = sizeof(ADPCMEncodeContext), \
.init = adpcm_encode_init, \
.encode = adpcm_encode_frame, \
.encode2 = adpcm_encode_frame, \
.close = adpcm_encode_close, \
.sample_fmts = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_S16, \
AV_SAMPLE_FMT_NONE}, \
.sample_fmts = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_S16, \
AV_SAMPLE_FMT_NONE }, \
.long_name = NULL_IF_CONFIG_SMALL(long_name_), \
}
+3
View File
@@ -80,6 +80,9 @@ static int adx_parse(AVCodecParserContext *s1,
*poutbuf_size = 0;
return buf_size;
}
s1->duration = BLOCK_SAMPLES;
*poutbuf = buf;
*poutbuf_size = buf_size;
return next;
+2 -1
View File
@@ -100,6 +100,7 @@ static int adx_decode_frame(AVCodecContext *avctx, void *data,
ADXContext *c = avctx->priv_data;
int16_t *samples;
const uint8_t *buf = avpkt->data;
const uint8_t *buf_end = buf + avpkt->size;
int num_blocks, ch, ret;
if (c->eof) {
@@ -148,7 +149,7 @@ static int adx_decode_frame(AVCodecContext *avctx, void *data,
while (num_blocks--) {
for (ch = 0; ch < c->channels; ch++) {
if (adx_decode(c, samples + ch, buf, ch)) {
if (buf_end - buf < BLOCK_SIZE || adx_decode(c, samples + ch, buf, ch)) {
c->eof = 1;
buf = avpkt->data + avpkt->size;
break;

Some files were not shown because too many files have changed in this diff Show More