Diego Biurrun [Mon, 8 Oct 2012 17:08:03 +0000 (19:08 +0200)]
Restructure av_log_missing_feature message
Some invocations include a verb in the log message, others do not. Yet
av_log_missing_feature expects callers to provide a verb. Change the
function to include a verb instead and update the callers accordingly.
The result is a more natural function API and correct English in the
function invocations.
Mans Rullgard [Mon, 8 Oct 2012 22:01:02 +0000 (23:01 +0100)]
ppc: fix Altivec build with old compilers
The vec_splat() intrinsic requires a constant argument for the
element number, and the code relies on the compiler unrolling
the loop to provide this. Manually unrolling the loop avoids
this reliance and works with all compilers.
Mans Rullgard [Fri, 5 Oct 2012 00:30:28 +0000 (01:30 +0100)]
build: add -Mdse to PGI optimisation flags
Enable dead store elimination. The last few releases work no worse
with this flag than without. Older versions failed to build some
source files when using this flag.
Mans Rullgard [Sat, 6 Oct 2012 09:21:22 +0000 (10:21 +0100)]
parseutils: fix parsing of invalid alpha values
An alpha specifier outside the valid range results in a conversion from
double to long with undefined result. Range-checking the double and
only converting it after it passes avoids this.
Martin Storsjö [Fri, 5 Oct 2012 23:33:32 +0000 (02:33 +0300)]
smoothstreamingenc: Ignore the return value from mkdir
We don't need to return an error if the directory already existed.
We make sure that the directory actually is properly writeable later
within ism_write_header by writing a manifest anyway.
Mans Rullgard [Thu, 4 Oct 2012 16:30:34 +0000 (17:30 +0100)]
ppc: swscale: rework yuv2planeX_altivec()
This gets rid of the variable-length scratch buffer by filtering 16
pixels at a time and writing directly to the destination. The extra
loads this requires to load the source values are compensated by not
doing a round-trip to memory before shifting.
Mans Rullgard [Wed, 3 Oct 2012 21:53:00 +0000 (22:53 +0100)]
x86: dsputil: kill VLA in gmc_mmx()
Instead of using an evil VLA, fall back to C version when edge
emulation is needed. MPEG4 GMC is a rarely used fringe feature
so the speed loss is an acceptable cost for safer code.
Diego Biurrun [Wed, 5 Sep 2012 18:49:28 +0000 (20:49 +0200)]
x86: get_cpu_flags: add necessary ifdefs around function body
ff_get_cpu_flags_x86() requires cpuid(), which is conditionally defined
elsewhere in the file. Surrounding the function body with ifdefs allows
building even when cpuid is not defined. An empty cpuflags mask is
returned in this case.
Diego Biurrun [Wed, 3 Oct 2012 15:57:53 +0000 (17:57 +0200)]
x86: Drop CPU detection intrinsics
Now that there is CPU detection in YASM, there will always be one of
inline or external assembly enabled, which obviates the need to fall
back on CPU detection through compiler intrinsics.
Martin Storsjö [Tue, 2 Oct 2012 21:51:46 +0000 (23:51 +0200)]
segment: Set the resend_headers flag for each segment
This makes sure new inline headers are emitted when the next
packet is written. This allows segmenting mpegts without calling
write_header/write_trailer (nor freeing/reiniting the muxer)
for each segment.
Martin Storsjö [Tue, 2 Oct 2012 21:49:46 +0000 (23:49 +0200)]
segment: Add an option for disabling writing of a header/trailer to each segment
Some segmented formats (such as fragmented mp4) are "bare", as in,
the segment files do not have the same headers/trailers as full normal
files of that format have.
Martin Storsjö [Wed, 3 Oct 2012 21:15:35 +0000 (00:15 +0300)]
segment: Free and reinit the muxer before calling avformat_write_header
This makes sure the muxers are set up in the way they expect
with no data left around from the previous run (which could
cause various issues including memory leaks, depending on the chaine
muxer).
This fixes memory leaks with the mpegts and flv muxers. It also
makes the usage of chained muxers correct.
Martin Storsjö [Sat, 25 Feb 2012 23:31:14 +0000 (01:31 +0200)]
segment: Use the public av_write_header/av_write_trailer functions
With this change, the segmenter muxer doesn't rely on anything
not available/supported to libavformat external users, making
the segmenter muxer do things just like a normal segmenter
application using libavformat would do.
Martin Storsjö [Sat, 25 Feb 2012 23:39:32 +0000 (01:39 +0200)]
segment: Properly create new AVStreams for the chained muxer
Before, the chained muxer reused the AVStreams array from
the outer muxer, which made it impossible to use the proper
public functions (such as av_write_frame) when calling the
chained muxer.
Janne Grunau [Wed, 3 Oct 2012 19:41:52 +0000 (21:41 +0200)]
mpegvideo: set extended_data in ff_update_duplicate_context()
AVFrame.extended_data has to reset to the AVFrame.data of the current
thread context after copying the frame contents.
Fixes crashes with frame-threading after 2bc0de38584.
Mans Rullgard [Sun, 9 Sep 2012 13:07:20 +0000 (14:07 +0100)]
Allow use of strncpy()
There are cases where strncpy() does exactly what is required.
A blanket ban forces more convoluted solutions to be used in those
cases and has been a cause of bugs.