Commit Graph

43595 Commits

Author SHA1 Message Date
Michael Niedermayer
f0896a6bd9 sp5xdec: fix off by 1 error causing a crash
Fixes Ticket1633

Found-by: Piotr Bandurski <ami_stuff@o2.pl>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-16 03:15:14 +02:00
Michael Niedermayer
747774ece9 av_get_audio_frame_duration: fix ra144
Fixes Ticket1612

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-16 02:57:11 +02:00
Michael Niedermayer
6ecf1eb0dd snowdec: add 2 av_asserts to check run validity
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-16 01:35:10 +02:00
Michael Niedermayer
4a596d19ff snowdec: check log in get_symbol2()
Fixes Ticket1635

Found-by: Piotr Bandurski <ami_stuff@o2.pl>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-16 01:31:19 +02:00
Michael Niedermayer
0114c571d4 mpegvideo: dont call draw edges on lowres
this crashes otherwise, and can happen from try_decode_frame() in the case of decoding errors
Fixes Ticket1602

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-15 22:42:30 +02:00
Michael Niedermayer
e8c4022018 h263penc: fix multitheraded encoding
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-15 22:14:24 +02:00
Michael Niedermayer
e2c54d4d72 mpegvideo_enc: reset mb_x/y before writing the headers
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-15 22:09:56 +02:00
Michael Niedermayer
717a1876d8 motion_est: switch some asserts to av_assert
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-15 21:39:53 +02:00
Michael Niedermayer
9e89bc37ed Merge remote-tracking branch 'qatar/master'
* qatar/master:
  rtmp: Add support for SWFVerification
  api-example: use new video encoding API.
  x86: avcodec: Appropriately name files containing only init functions
  mpegvideo_mmx_template: drop some commented-out cruft
  libavresample: add mix level normalization option
  w32pthreads: Add missing #includes to make header compile standalone
  rtmp: Gracefully ignore _checkbw errors by tracking them
  rtmp: Do not send _checkbw calls as notifications
  prores: interlaced ProRes encoding

Conflicts:
	doc/examples/decoding_encoding.c
	libavcodec/proresenc_kostya.c
	libavcodec/w32pthreads.h
	libavcodec/x86/Makefile
	libavformat/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-15 15:55:24 +02:00
Samuel Pitoiset
635ac8e1be rtmp: Add support for SWFVerification
Specifies how the server verifies client SWF files before allowing the
files to connect to an application. Verifying SWF files is a security
measure that prevents someone from creating their own SWF files that can
attempt to stream your resources.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-08-15 10:37:34 +03:00
Anton Khirnov
661454aa28 api-example: use new video encoding API. 2012-08-15 08:45:27 +02:00
Michael Niedermayer
aee7b88cc0 msmpeg4v2: initialize mb_type array
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-15 05:29:28 +02:00
Michael Niedermayer
fafd844311 mpegvideo: fix MB/MV vissualization on videos that are not mod 16 == 0
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-15 05:03:37 +02:00
Diego Biurrun
29cfdd3767 x86: avcodec: Appropriately name files containing only init functions 2012-08-15 03:24:08 +02:00
Diego Biurrun
be12958937 mpegvideo_mmx_template: drop some commented-out cruft 2012-08-15 03:24:07 +02:00
Michael Niedermayer
6093960ae3 movdec: Try to recover from overreading atoms
Fixes Ticket1596

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-15 03:21:19 +02:00
Michael Niedermayer
f952ae1400 pafdec: fix wrong check for input buffer size.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-15 02:04:38 +02:00
Michael Niedermayer
456f0c6477 pafdec: fix wrong palette index check.
Fixes Ticket1641

Found-by: Piotr Bandurski <ami_stuff@o2.pl>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-15 01:57:45 +02:00
John Stebbins
4cf4028331 libavresample: add mix level normalization option
Provides an option to disable mix level normalization

Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-08-14 23:36:56 +02:00
Diego Biurrun
11928d24fe w32pthreads: Add missing #includes to make header compile standalone 2012-08-14 23:36:56 +02:00
Samuel Pitoiset
fb7e78089b rtmp: Gracefully ignore _checkbw errors by tracking them
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-08-14 22:36:35 +03:00
Samuel Pitoiset
8b6a5a7923 rtmp: Do not send _checkbw calls as notifications
The _checkbw calls were changed to use transactionId 0 in commit
82613564 so that servers would not return _result/_error about it.
While this is the strict interpretation of the spec, there are
servers that return _error about it, even if transactionId was 0.

The latest version of EvoStream Media Server (the commercial version
of crtmpserver) behaves properly as described, i.e. returning an
_error normally but not returning anything when using transactionId
0. The latest version of crtmpserver (right now at least) doesn't
behave like this though, it returns an error even if transactionId
was 0.

There are also other servers that return errors even if transactionId
is set to 0. Therefore set a proper transaction id so that the invoke
can be tracked and the error properly ignored instead.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-08-14 22:31:53 +03:00
Sebastien Zwickert
02f12de1c2 vda: better frame allocation. 2012-08-14 21:22:20 +02:00
Maksalov Boris
c0f4cf7798 prores: interlaced ProRes encoding
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2012-08-14 19:28:50 +02:00
Michael Niedermayer
70f0ffa1ed bmv_videodec: fix out of array read
Fixes Ticket1373

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-14 18:58:49 +02:00
upsuper
068c8ce19c remove duplicated code
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-14 18:39:55 +02:00
Boris Maksalov
c8e186fa7b prores_kostya: implement interlaced encoding.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-14 16:57:46 +02:00
Boris Maksalov
f0cbab2ac7 prores_kostya: fix incorrect picture_size field.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-14 16:57:39 +02:00
Michael Bradshaw
a22c996a85 Add ICO muxer
Signed-off-by: Michael Bradshaw <mbradshaw@sorensonmedia.com>
Reviewed-by: Peter Ross <pross@xvid.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-14 16:54:25 +02:00
Andrey Utkin
aec9390a9d Check for avio fail in avformat_write_header, av_write_frame
With minor changes by michael
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-14 16:25:53 +02:00
Michael Niedermayer
7427d1ca4a Merge remote-tracking branch 'qatar/master'
* qatar/master:
  g723.1: simplify scale_vector()
  g723.1: simplify normalize_bits()
  vda: cosmetics: fix Doxygen comment formatting
  vda: better frame allocation
  vda: Merge implementation into one file
  vda: support synchronous decoding
  vda: Reuse the bitstream buffer and reallocate it only if needed
  build: Factor out mpegvideo encoding dependencies to CONFIG_MPEGVIDEOENC
  avprobe: Include libm.h for the log2 fallback
  proresenc: use the edge emulation buffer
  rtmp: handle bytes read reports
  configure: Fix typo in mpeg2video/svq1 decoder dependency declaration
  Use log2(x) instead of log(x) / log(2)
  x86: swscale: fix fragile memory accesses
  x86: swscale: remove disabled code
  x86: yadif: fix asm with suncc
  x86: cabac: allow building with suncc
  x86: mlpdsp: avoid taking address of void
  ARM: intmath: use native-size return types for clipping functions

Conflicts:
	configure
	ffprobe.c
	libavcodec/Makefile
	libavcodec/g723_1.c
	libavcodec/v210dec.h
	libavcodec/vda.h
	libavcodec/vda_h264.c
	libavcodec/x86/cabac.h
	libavfilter/x86/yadif_template.c
	libswscale/x86/rgb2rgb_template.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-14 15:34:39 +02:00
Sebastien Zwickert
0e05908c95 vda: fix make checkheaders.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-14 14:16:14 +02:00
Andrey Utkin
a32fa21d17 lavfi/asetnsamples: push as many frames as ready
Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
2012-08-14 13:19:52 +02:00
Mans Rullgard
0d230e9312 g723.1: simplify scale_vector()
It is impossible for bits to be 15 here so the special case is
not needed.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-08-14 12:08:30 +01:00
Mans Rullgard
a4b8fc3a8a g723.1: simplify normalize_bits()
This function is always called with a non-negative argument, so
those special cases are not needed.  In the places the argument
might be zero, the return value for a zero argument does not matter
since it would then be used to scale an array full of zeros.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-08-14 12:08:29 +01:00
Sebastien Zwickert
063910f54d vda: cosmetics: fix Doxygen comment formatting
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-08-14 12:48:52 +02:00
Sebastien Zwickert
694be29f13 vda: better frame allocation
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-08-14 12:48:46 +02:00
Sebastien Zwickert
dc87ac55ab vda: Merge implementation into one file
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-08-14 12:48:08 +02:00
Sebastien Zwickert
3c37970637 vda: support synchronous decoding
Note that the symbols used to run the hardware decoder in asynchronous mode
have been marked deprecated and will be dropped at a future version bump.

Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-08-14 12:47:27 +02:00
Sebastien Zwickert
cfc680ab39 vda: Reuse the bitstream buffer and reallocate it only if needed
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-08-14 12:47:15 +02:00
Nicolas George
082b745d33 filter_design: document ownership and permissions. 2012-08-14 12:12:20 +02:00
Nicolas George
271ddb116c lavfi: use min_perms and rej_perms for out pads.
There are several reasons for doing that:

1. It documents the code for the reader and helps find
   inconsistencies and bugs.

2. For rej_perms, it guarantees the change will be done
   even if the output reference can be created by several
   code paths.

3. It can be used to predict cases where a copy will,
   or will not happen and optimize buffer allocation
   (for example not request a rare direct-rendering buffer
   from a device sink if it will be copied anyway).

Note that a filter is still allowed to manage the permissions
on its own without using these fields.
2012-08-14 12:00:35 +02:00
Nicolas George
67a804b9ac dvdsubenc: reindent after recent commit. 2012-08-14 11:58:32 +02:00
Nicolas George
2d3acbfe8c lavc: add const to AVCodecContext.codec_descriptor. 2012-08-14 11:35:30 +02:00
Nicolas George
9bb936a80e lavc: reimplement avcodec_get_name with descriptors. 2012-08-14 11:35:30 +02:00
Nicolas George
690ef618b1 ffmpeg: copy subtitles frame dimensions.
The sub-movtextenc ref file changes because the dimensions
(400×60) are stored by the format.
2012-08-14 11:17:45 +02:00
Nicolas George
e4f4d99df8 ffmpeg: make -s work for subtitles too.
Some codecs allow to encode the frame size and some players use it.
2012-08-14 11:17:45 +02:00
Nicolas George
17e40236cb dvdsubenc: set frame size in extradata. 2012-08-14 11:17:45 +02:00
Nicolas George
b1511e00f6 lavf: probe PGS subtitles definition.
The resolution is in the packets, so decoding must happen.
Since most other formats do not set the dimension, make it
a special case for PGS. If other codecs were to have the
same requirement, using a CODEC_CAP would be preferred.
2012-08-14 11:17:45 +02:00
Nicolas George
2dedd8f496 dvdsubenc: make it usable for transcoding.
DVD subtitles packets can only encode a single rectangle:
if there are several, copy them into a big transparent one.

DVD subtitles rely on an external 16-colors palette:
use a reasonable default one, stored in the private context,
and encode it into the extradata, as specified by Matroska.
TODO: allow to change the palette with an option.

Each packet can use four colors out of the global palette.
The old logic was to map transparent colors to the color 0
and all other colors to 3, 2, 1, cyclically in descending
frequency order, completely disregarding the original color.

Select the "best" four colors from the global palette, according
to heuristics based on frequency, opacity and brightness, and
arrange them in standard DVD order: background, foreground,
outline, other.
TODO: select the alpha value more finely; see if CHG_COLCON can
allow more than 4 colors per packet.

Reference:
http://dvd.sourceforge.net/dvdinfo/spu.html

With these changes, dvdsubenc can be used to transcode DVB subtitles
and get a very decent result.
2012-08-14 11:17:45 +02:00