FFmpeg 0.11.1: work on GCC2.

This commit is contained in:
Augustin Cavalier
2014-07-21 16:31:58 -04:00
parent 8138874f18
commit 4cb82bab81
3 changed files with 238 additions and 206 deletions

View File

@@ -1,8 +1,7 @@
SUMMARY="Audio and video recording, conversion, and streaming library"
DESCRIPTION="
FFmpeg is a complete, cross-platform solution to record, convert and stream \
audio and video. It includes libavcodec - the leading audio/video codec library.
"
DESCRIPTION="FFmpeg is a complete, cross-platform solution to record, convert \
and stream audio and video. It includes libavcodec - the leading audio/video \
codec library."
HOMEPAGE="http://www.ffmpeg.org"
LICENSE="
GNU LGPL v2.1
@@ -14,12 +13,13 @@ COPYRIGHT="
"
SRC_URI="http://www.ffmpeg.org/releases/ffmpeg-0.11.1.tar.bz2"
CHECKSUM_SHA256="b01ddfb6352c84810879988f43172c5f7be555697edb929625845c7bb953fa96"
REVISION="1"
ARCHITECTURES="x86"
if [ $effectiveTargetArchitecture != x86_gcc2 ]; then
ARCHITECTURES="$ARCHITECTURES x86_gcc2"
REVISION="2"
ARCHITECTURES="x86_gcc2 x86 x86_64"
SECONDARY_ARCHITECTURES="x86_gcc2 x86"
if [ $effectiveTargetArchitecture == x86_gcc2 ]; then
PATCHES="ffmpeg-0.11.1-gcc2.patch"
fi
SECONDARY_ARCHITECTURES="x86"
PROVIDES="
ffmpeg$secondaryArchSuffix = $portVersion compat >= 0.11
@@ -31,12 +31,16 @@ PROVIDES="
lib:libswresample$secondaryArchSuffix = 0.6.100 compat >= 0
lib:libswscale$secondaryArchSuffix = 2.1.100 compat >= 2
"
if [ -z "$secondaryArchSuffix" ]; then
# on x86_gcc2hybrid, the tools should be placed in $prefix/bin but
# compiled with GCC4, as the GCC2 version of FFmpeg cannot use SSE and
# other acceleration features even if the user's machine has them.
if [ -z "$secondaryArchSuffix" ] && [ "$effectiveTargetArchitecture" != "x86_gcc2" ]; then
PROVIDES="$PROVIDES
cmd:ffmpeg = $portVersion compat >= 0.11
cmd:ffprobe = $portVersion compat >= 0.11
cmd:ffserver = $portVersion compat >= 0.11
"
"
fi
REQUIRES="
@@ -51,6 +55,7 @@ REQUIRES="
lib:libvpx$secondaryArchSuffix
lib:libz$secondaryArchSuffix
"
BUILD_REQUIRES="
devel:libbz2$secondaryArchSuffix
devel:libogg$secondaryArchSuffix
@@ -60,6 +65,7 @@ BUILD_REQUIRES="
devel:libvpx$secondaryArchSuffix
devel:libz$secondaryArchSuffix
"
BUILD_PREREQUIRES="
haiku${secondaryArchSuffix}_devel >= $haikuVersion
cmd:gcc$secondaryArchSuffix
@@ -67,7 +73,7 @@ BUILD_PREREQUIRES="
cmd:awk
cmd:make
cmd:perl
cmd:pkg_config
cmd:pkg_config$secondaryArchSuffix
cmd:texi2html
cmd:yasm
"
@@ -94,7 +100,7 @@ BUILD()
# not an auto tools configure
./configure \
--prefix=$prefix \
--bindir=$binDir \
--bindir=$prefix/bin \
--datadir=$dataDir/$portName \
--incdir=$includeDir \
--libdir=$libDir \
@@ -112,8 +118,11 @@ BUILD()
INSTALL()
{
make install
rm $binDir/ffprobe
if [ "$effectiveTargetArchitecture" == "x86_gcc2" ]; then
rm -rf $prefix/bin
fi
rm -f $prefix/bin/ffprobe
# TODO: Determine and fix what is wrong with ffprobe! The executable
# seems to be broken. The NEEDED entries in the dynamic section look
# weird and the runtime loader fails relocating with "Operation not

View File

@@ -1,8 +1,25 @@
From b4b9893b617c28e8572a8bb3e3ce0a1a32a7fd14 Mon Sep 17 00:00:00 2001
From: Augustin Cavalier <waddlesplash@gmail.com>
Date: Mon, 21 Jul 2014 16:10:54 -0400
Subject: [PATCH] Fix build on GCC2.
---
cmdutils.c | 2 +-
configure | 12 +++------
ffprobe.c | 18 +++++++++-----
ffserver.c | 4 +--
libavcodec/pngenc.c | 3 ++-
libavfilter/af_aresample.c | 9 ++++---
libavutil/pixdesc.c | 6 -----
libswresample/x86/swresample_x86.c | 2 +-
libswscale/swscale_unscaled.c | 51 ++++++++++++++++++++------------------
9 files changed, 54 insertions(+), 53 deletions(-)
diff --git a/cmdutils.c b/cmdutils.c
index 386db3d..f918600 100644
--- ffmpeg-0.11.1/cmdutils.c
+++ ffmpeg-0.11.1/cmdutils.c
@@ -89,7 +89,7 @@ static void log_callback_report(void *ptr, int level, const char *fmt, va_list v
index 2c84394..8375c82 100644
--- a/cmdutils.c
+++ b/cmdutils.c
@@ -94,7 +94,7 @@ static void log_callback_report(void *ptr, int level, const char *fmt, va_list v
char line[1024];
static int print_prefix = 1;
@@ -11,11 +28,80 @@ index 386db3d..f918600 100644
av_log_default_callback(ptr, level, fmt, vl);
av_log_format_line(ptr, level, fmt, vl2, line, sizeof(line), &print_prefix);
va_end(vl2);
diff --git a/configure b/configure
index 4e1a611..16f6032 100755
--- a/configure
+++ b/configure
@@ -1377,7 +1377,6 @@ avx_deps="ssse3"
aligned_stack_if_any="ppc x86"
fast_64bit_if_any="alpha ia64 mips64 parisc64 ppc64 sparc64 x86_64"
-fast_clz_if_any="alpha armv5te avr32 mips ppc x86"
fast_unaligned_if_any="armv6 ppc x86"
inline_asm_deps="!tms470"
@@ -1916,7 +1915,7 @@ AS_O='-o $@'
CC_O='-o $@'
CXX_O='-o $@'
-host_cflags='-D_ISOC99_SOURCE -O3 -g'
+host_cflags='-D_ISOC99_SOURCE -O2 -g'
host_libs='-lm'
target_path='$(CURDIR)'
@@ -1999,6 +1998,7 @@ for n in $COMPONENT_LIST; do
done
enable $ARCH_EXT_LIST $ALL_TESTS
+disable sse
die_unknown(){
echo "Unknown option \"$1\"."
@@ -2181,7 +2181,7 @@ if $cc -v 2>&1 | grep -q '^gcc.*LLVM'; then
cc_ident="llvm-gcc $($cc -dumpversion) $gcc_extra_ver"
CC_DEPFLAGS='-MMD -MF $(@:.o=.d) -MT $@'
AS_DEPFLAGS='-MMD -MF $(@:.o=.d) -MT $@'
- speed_cflags='-O3'
+ speed_cflags='-O2'
size_cflags='-Os'
elif $cc -v 2>&1 | grep -qi ^gcc; then
cc_type=gcc
@@ -2907,10 +2907,6 @@ check_cc <<EOF && enable attribute_packed
struct { int x; } __attribute__((packed)) x;
EOF
-check_cc <<EOF && enable attribute_may_alias
-union { int x; } __attribute__((may_alias)) x;
-EOF
-
check_cc <<EOF || die "endian test failed"
unsigned int endian = 'B' << 24 | 'I' << 16 | 'G' << 8 | 'E';
EOF
@@ -3190,8 +3186,6 @@ disabled crystalhd || check_lib libcrystalhd/libcrystalhd_if.h DtsCrystalHDVersi
enabled vaapi && require vaapi va/va.h vaInitialize -lva
check_mathfunc cbrtf
-check_mathfunc exp2
-check_mathfunc exp2f
check_mathfunc llrint
check_mathfunc llrintf
check_mathfunc log2
diff --git a/ffprobe.c b/ffprobe.c
index ca6133e..43f9d39 100644
--- ffmpeg-0.11.1/ffprobe.c
+++ ffmpeg-0.11.1/ffprobe.c
@@ -1249,8 +1251,8 @@ static void writer_register_all(void)
index d53ec11..41c5cec 100644
--- a/ffprobe.c
+++ b/ffprobe.c
@@ -312,7 +312,9 @@ static void writer_print_time(WriterContext *wctx, const char *key,
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});
+ struct unit_value value2 = {.unit=unit_second_str};
+ value2.val.d = d;
+ value_string(buf, sizeof(buf), value2);
writer_print_string(wctx, key, buf, 0);
}
}
@@ -1187,8 +1189,8 @@ static void writer_register_all(void)
#define print_str_opt(k, v) writer_print_string(w, k, v, 1)
#define print_time(k, v, tb) writer_print_time(w, k, v, tb)
#define print_ts(k, v) writer_print_ts(w, k, v)
@@ -26,15 +112,40 @@ index ca6133e..43f9d39 100644
#define print_section_header(s) writer_print_section_header(w, s)
#define print_section_footer(s) writer_print_section_footer(w, s)
#define show_tags(metadata) writer_show_tags(w, metadata)
@@ -1261,6 +1263,7 @@ static void show_packet(WriterContext *w, AVFormatContext *fmt_ctx, AVPacket *pk
@@ -1199,6 +1201,7 @@ static void show_packet(WriterContext *w, AVFormatContext *fmt_ctx, AVPacket *pk
AVStream *st = fmt_ctx->streams[pkt->stream_index];
struct print_buf pbuf = {.s = NULL};
AVBPrint pbuf;
const char *s;
+ struct unit_value value2;
print_section_header("packet");
s = av_get_media_type_string(st->codec->codec_type);
@@ -1516,6 +1520,7 @@ static void show_format(WriterContext *w, AVFormatContext *fmt_ctx)
av_bprint_init(&pbuf, 1, AV_BPRINT_SIZE_UNLIMITED);
@@ -1227,6 +1230,7 @@ static void show_frame(WriterContext *w, AVFrame *frame, AVStream *stream)
{
AVBPrint pbuf;
const char *s;
+ struct unit_value value2;
av_bprint_init(&pbuf, 1, AV_BPRINT_SIZE_UNLIMITED);
@@ -1356,6 +1360,7 @@ static void show_stream(WriterContext *w, AVFormatContext *fmt_ctx, int stream_i
const char *s;
AVRational display_aspect_ratio;
AVBPrint pbuf;
+ struct unit_value value2;
av_bprint_init(&pbuf, 1, AV_BPRINT_SIZE_UNLIMITED);
@@ -1446,7 +1451,7 @@ 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);
+ 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");
@@ -1472,6 +1477,7 @@ static void show_format(WriterContext *w, AVFormatContext *fmt_ctx)
{
char val_str[128];
int64_t size = fmt_ctx->pb ? avio_size(fmt_ctx->pb) : -1;
@@ -42,7 +153,7 @@ index ca6133e..43f9d39 100644
print_section_header("format");
print_str("filename", fmt_ctx->filename);
@@ -1524,9 +1529,9 @@ static void show_format(WriterContext *w, AVFormatContext *fmt_ctx)
@@ -1480,9 +1486,9 @@ static void show_format(WriterContext *w, AVFormatContext *fmt_ctx)
print_str("format_long_name", fmt_ctx->iformat->long_name);
print_time("start_time", fmt_ctx->start_time, &AV_TIME_BASE_Q);
print_time("duration", fmt_ctx->duration, &AV_TIME_BASE_Q);
@@ -54,91 +165,54 @@ index ca6133e..43f9d39 100644
else print_str_opt("bit_rate", "N/A");
show_tags(fmt_ctx->metadata);
print_section_footer("format");
diff --git a/libavutil/pixdesc.c b/libavutil/pixdesc.c
index e73fbfe..3cde56c 100644
--- ffmpeg-0.11.1/libavutil/pixdesc.c
+++ ffmpeg-0.11.1/libavutil/pixdesc.c
@@ -1096,12 +1096,6 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[PIX_FMT_NB] = {
.log2_chroma_h = 1,
.flags = PIX_FMT_HWACCEL,
},
- [PIX_FMT_VDA_VLD] = {
- .name = "vda_vld",
- .log2_chroma_w = 1,
- .log2_chroma_h = 1,
- .flags = PIX_FMT_HWACCEL,
- },
[PIX_FMT_GRAY8A] = {
.name = "gray8a",
.nb_components = 2,
diff --git a/configure b/configure
--- ffmpeg-0.11.1/configure 2012-01-26 22:15:59.047710208 +0000
+++ ffmpeg-0.10-haiku/configure 2012-03-28 22:30:34.330563584 +0000
@@ -1359,7 +1359,6 @@
diff --git a/ffserver.c b/ffserver.c
index a0efa54..0d1684a 100644
--- a/ffserver.c
+++ b/ffserver.c
@@ -305,7 +305,7 @@ static int rtp_new_av_stream(HTTPContext *c,
static const char *my_program_name;
static const char *my_program_dir;
aligned_stack_if_any="ppc x86"
fast_64bit_if_any="alpha ia64 mips64 parisc64 ppc64 sparc64 x86_64"
-fast_clz_if_any="alpha armv5te avr32 mips ppc x86"
fast_unaligned_if_any="armv6 ppc x86"
-static const char *config_filename = "/etc/ffserver.conf";
+static const char *config_filename = "/packages/ffmpeg-0.11.1-2/.settings/ffserver.conf";
inline_asm_deps="!tms470"
@@ -1866,7 +1865,7 @@
CC_O='-o $@'
CXX_O='-o $@'
static int ffserver_debug;
static int ffserver_daemon;
@@ -4659,7 +4659,7 @@ static const OptionDef options[] = {
#include "cmdutils_common_opts.h"
{ "n", OPT_BOOL, {(void *)&no_launch }, "enable no-launch mode" },
{ "d", 0, {(void*)opt_debug}, "enable debug mode" },
- { "f", HAS_ARG | OPT_STRING, {(void*)&config_filename }, "use configfile instead of /etc/ffserver.conf", "configfile" },
+ { "f", HAS_ARG | OPT_STRING, {(void*)&config_filename }, "use configfile instead of /packages/ffmpeg-0.11.1-2/.settings/ffserver.conf", "configfile" },
{ NULL },
};
-host_cflags='-D_ISOC99_SOURCE -O3 -g'
+host_cflags='-D_ISOC99_SOURCE -O2 -g'
host_libs='-lm'
diff --git a/libavcodec/pngenc.c b/libavcodec/pngenc.c
index c29435b..1f73bc4 100644
--- a/libavcodec/pngenc.c
+++ b/libavcodec/pngenc.c
@@ -55,8 +55,9 @@ static void png_get_interlaced_row(uint8_t *dst, int row_size,
int x, mask, dst_x, j, b, bpp;
uint8_t *d;
const uint8_t *s;
+ int mask_tmp[] = {0x80, 0x08, 0x88, 0x22, 0xaa, 0x55, 0xff};
target_path='$(CURDIR)'
@@ -1948,6 +1947,7 @@
done
enable $ARCH_EXT_LIST $ALL_TESTS
+disable sse
die_unknown(){
echo "Unknown option \"$1\"."
@@ -2144,7 +2144,7 @@
CC_DEPFLAGS='-MMD -MF $(@:.o=.d) -MT $@'
AS_DEPFLAGS='-MMD -MF $(@:.o=.d) -MT $@'
fi
- speed_cflags='-O3'
+ speed_cflags='-O2'
size_cflags='-Os'
elif $cc --version 2>/dev/null | grep -q Intel; then
cc_type=icc
@@ -2831,10 +2831,6 @@
struct { int x; } __attribute__((packed)) x;
EOF
-check_cc <<EOF && enable attribute_may_alias
-union { int x; } __attribute__((may_alias)) x;
-EOF
-
check_cc <<EOF || die "endian test failed"
unsigned int endian = 'B' << 24 | 'I' << 16 | 'G' << 8 | 'E';
EOF
@@ -3108,8 +3104,6 @@
enabled vaapi && require vaapi va/va.h vaInitialize -lva
check_mathfunc cbrtf
-check_mathfunc exp2
-check_mathfunc exp2f
check_mathfunc llrint
check_mathfunc llrintf
check_mathfunc log2
diff a/libavfilter/af_aresample.c b/libavfilter/af_aresample.c
--- ffmpeg-0.11.1/libavfilter/af_aresample.c 2012-08-06 22:49:06.681836544 +0000
+++ ffmpeg-0.11.1/libavfilter/af_aresample.c 2012-08-06 22:52:24.251658240 +0000
@@ -103,20 +103,23 @@
- mask = (int[]){0x80, 0x08, 0x88, 0x22, 0xaa, 0x55, 0xff}[pass];
+ mask = mask_tmp[pass];
switch(bits_per_pixel) {
case 1:
memset(dst, 0, row_size);
diff --git a/libavfilter/af_aresample.c b/libavfilter/af_aresample.c
index 8ead314..e0b76e5 100644
--- a/libavfilter/af_aresample.c
+++ b/libavfilter/af_aresample.c
@@ -103,20 +103,23 @@ static int query_formats(AVFilterContext *ctx)
ff_channel_layouts_ref(in_layouts, &inlink->out_channel_layouts);
if(out_rate > 0) {
- out_samplerates = avfilter_make_format_list((int[]){ out_rate, -1 });
+ int rate_tmp[] = { out_rate, -1 };
+ out_samplerates = avfilter_make_format_list(rate_tmp);
+ int samplerate_tmp[] = { out_rate, -1 };
+ out_samplerates = avfilter_make_format_list(samplerate_tmp);
} else {
out_samplerates = ff_all_samplerates();
}
@@ -154,14 +228,32 @@ diff a/libavfilter/af_aresample.c b/libavfilter/af_aresample.c
if(out_layout) {
- out_layouts = avfilter_make_format64_list((int64_t[]){ out_layout, -1 });
+ int64_t layout_tmp[] = { out_layout, -1 };
+ int64_t layout_tmp[] = { out_layout, -1 };
+ out_layouts = avfilter_make_format64_list(layout_tmp);
} else
out_layouts = ff_all_channel_layouts();
ff_channel_layouts_ref(out_layouts, &outlink->in_channel_layouts);
diff a/libswresample/x86/swresample_x86.c b/libswresample/x86/swresample_x86.c
--- ffmpeg-0.11.1/libswresample/x86/swresample_x86.c 2012-08-06 22:49:12.765984768 +0000
+++ ffmpeg-0.11.1/libswresample/x86/swresample_x86.c 2012-08-06 22:57:04.826015744 +0000
diff --git a/libavutil/pixdesc.c b/libavutil/pixdesc.c
index e73cf8d..0bff2d6 100644
--- a/libavutil/pixdesc.c
+++ b/libavutil/pixdesc.c
@@ -1117,12 +1117,6 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[PIX_FMT_NB] = {
.log2_chroma_h = 1,
.flags = PIX_FMT_HWACCEL,
},
- [PIX_FMT_VDA_VLD] = {
- .name = "vda_vld",
- .log2_chroma_w = 1,
- .log2_chroma_h = 1,
- .flags = PIX_FMT_HWACCEL,
- },
[PIX_FMT_GRAY8A] = {
.name = "gray8a",
.nb_components = 2,
diff --git a/libswresample/x86/swresample_x86.c b/libswresample/x86/swresample_x86.c
index 6cd6073..5436bc3 100644
--- a/libswresample/x86/swresample_x86.c
+++ b/libswresample/x86/swresample_x86.c
@@ -25,7 +25,7 @@
#define PROTO2(pre, out, cap) PROTO(pre, int16, out, cap) PROTO(pre, int32, out, cap) PROTO(pre, float, out, cap)
#define PROTO3(pre, cap) PROTO2(pre, int16, cap) PROTO2(pre, int32, cap) PROTO2(pre, float, cap)
@@ -171,24 +263,11 @@ diff a/libswresample/x86/swresample_x86.c b/libswresample/x86/swresample_x86.c
PROTO4(_pack_2ch)
PROTO4(_pack_6ch)
PROTO4(_unpack_2ch)
diff -u a/libavcodec/pngenc.c b/libavcodec/pngenc.c
--- ffmpeg-0.11.1/libavcodec/pngenc.c 2012-08-06 22:49:04.337117184 +0000
+++ ffmpeg-0.11.1/libavcodec/pngenc.c 2012-08-06 23:04:38.048758784 +0000
@@ -55,8 +55,9 @@
int x, mask, dst_x, j, b, bpp;
uint8_t *d;
const uint8_t *s;
+ int mask_tmp[] = {0x80, 0x08, 0x88, 0x22, 0xaa, 0x55, 0xff};
- mask = (int[]){0x80, 0x08, 0x88, 0x22, 0xaa, 0x55, 0xff}[pass];
+ mask = mask_tmp[pass];
switch(bits_per_pixel) {
case 1:
memset(dst, 0, row_size);
diff -u a/libswscale/swscale_unscaled.c b/libswscale/swscale_unscaled.c
--- ffmpeg-0.11.1/libswscale/swscale_unscaled.c 2012-08-06 22:49:12.936902656 +0000
+++ ffmpeg-0.11.1/libswscale/swscale_unscaled.c 2012-08-06 23:18:25.574095360 +0000
@@ -472,38 +472,40 @@
diff --git a/libswscale/swscale_unscaled.c b/libswscale/swscale_unscaled.c
index 754edaf..c35f1b7 100644
--- a/libswscale/swscale_unscaled.c
+++ b/libswscale/swscale_unscaled.c
@@ -472,38 +472,41 @@ static int planarRgbToRgbWrapper(SwsContext *c, const uint8_t *src[],
}
switch (c->dstFormat) {
@@ -199,20 +278,21 @@ diff -u a/libswscale/swscale_unscaled.c b/libswscale/swscale_unscaled.c
+ case PIX_FMT_BGR24: {
+ const uint8_t* src2[] = {src[1], src[0], src[2]};
+ int srcStride2[] = {srcStride[1], srcStride[0], srcStride[2]};
+ gbr24ptopacked24(src2, srcStride2, dst[0] + srcSliceY * dstStride[0], dstStride[0],
+ gbr24ptopacked24(src2, srcStride2, dst[0] + srcSliceY * dstStride[0], dstStride[0],
srcSliceH, c->srcW);
break;
-
- case PIX_FMT_RGB24:
- gbr24ptopacked24((const uint8_t *[]) { src[2], src[0], src[1] },
- (int []) { srcStride[2], srcStride[0], srcStride[1] },
- dst[0] + srcSliceY * dstStride[0], dstStride[0],
- srcSliceH, c->srcW);
+ }
+ case PIX_FMT_RGB24: {
+ const uint8_t* src2[] = {src[2], src[0], src[1]};
+ int srcStride2[] = {srcStride[2], srcStride[0], srcStride[1]};
+ gbr24ptopacked24(src2, srcStride2, dst[0] + srcSliceY * dstStride[0], dstStride[0],
srcSliceH, c->srcW);
+ gbr24ptopacked24(src2, srcStride2, dst[0] + srcSliceY * dstStride[0], dstStride[0],
+ srcSliceH, c->srcW);
break;
-
+ }
@@ -221,69 +301,38 @@ diff -u a/libswscale/swscale_unscaled.c b/libswscale/swscale_unscaled.c
- case PIX_FMT_RGBA:
- gbr24ptopacked32((const uint8_t *[]) { src[2], src[0], src[1] },
- (int []) { srcStride[2], srcStride[0], srcStride[1] },
- dst[0] + srcSliceY * dstStride[0], dstStride[0],
- srcSliceH, alpha_first, c->srcW);
- break;
-
+ case PIX_FMT_RGBA: {
+ const uint8_t* src2[] = {src[2], src[0], src[1]};
+ int srcStride2[] = {srcStride[2], srcStride[0], srcStride[1]};
+ gbr24ptopacked32(src2, srcStride2,
dst[0] + srcSliceY * dstStride[0], dstStride[0],
srcSliceH, alpha_first, c->srcW);
break;
-
+ dst[0] + srcSliceY * dstStride[0], dstStride[0],
+ srcSliceH, alpha_first, c->srcW);
+ break;
+ }
case PIX_FMT_ABGR:
alpha_first = 1;
- case PIX_FMT_BGRA:
- gbr24ptopacked32((const uint8_t *[]) { src[1], src[0], src[2] },
- (int []) { srcStride[1], srcStride[0], srcStride[2] },
- dst[0] + srcSliceY * dstStride[0], dstStride[0],
- srcSliceH, alpha_first, c->srcW);
- break;
-
+ case PIX_FMT_BGRA: {
+ const uint8_t* src2[] = {src[1], src[0], src[2]};
+ int srcStride2[] = {srcStride[1], srcStride[0], srcStride[2]};
+ gbr24ptopacked32(src2, srcStride2,
dst[0] + srcSliceY * dstStride[0], dstStride[0],
srcSliceH, alpha_first, c->srcW);
break;
-
+ dst[0] + srcSliceY * dstStride[0], dstStride[0],
+ srcSliceH, alpha_first, c->srcW);
+ break;
+ }
default:
av_log(c, AV_LOG_ERROR,
"unsupported planar RGB conversion %s -> %s\n",
diff -u a/ffprobe.c b/ffprobe.c
--- ffmpeg-0.11.1/ffprobe.c 2012-08-06 22:49:00.930873344 +0000
+++ ffmpeg-0.11.1/ffprobe.c 2012-08-06 23:26:28.951844864 +0000
@@ -312,7 +312,9 @@
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});
+ struct unit_value value2 = {.unit=unit_second_str};
+ value2.val.d = d;
+ value_string(buf, sizeof(buf), value2);
writer_print_string(wctx, key, buf, 0);
}
}
@@ -1188,7 +1190,7 @@
#define print_time(k, v, tb) writer_print_time(w, k, v, tb)
#define print_ts(k, v) writer_print_ts(w, k, v)
#define print_val(k, v, u) value2.val.i = v; value2.unit=u; writer_print_string(w, k, \
- value_string(val_str, sizeof(val_str), value2), 0);
+ value_string(val_str, sizeof(val_str), value2), 0);
#define print_section_header(s) writer_print_section_header(w, s)
#define print_section_footer(s) writer_print_section_footer(w, s)
#define show_tags(metadata) writer_show_tags(w, metadata)
@@ -1357,6 +1359,7 @@
const char *s;
AVRational display_aspect_ratio;
AVBPrint pbuf;
+ struct unit_value value2;
av_bprint_init(&pbuf, 1, AV_BPRINT_SIZE_UNLIMITED);
@@ -1447,7 +1450,7 @@
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);
+ 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");
--
1.8.3.4

View File

@@ -1,26 +0,0 @@
Index: configure
===================================================================
--- configure (revision 17861)
+++ configure (working copy)
@@ -1512,7 +1512,7 @@
# OS specific
case $target_os in
- beos|haiku|zeta)
+ beos|zeta)
prefix_default="$HOME/config"
# helps building libavcodec
add_cflags -DPIC -fomit-frame-pointer
@@ -1538,6 +1538,13 @@
enable beos_netserver
network_extralibs="-lnet"
fi ;;
+ haiku)
+ prefix_default="/boot/common"
+ disable audio_beos
+ enable beosthreads
+ network_extralibs="-lnetwork"
+ ;;
sunos)
FFSERVERLDFLAGS=""
SHFLAGS='-shared -Wl,-h,$$(@F)'