mirror of
https://github.com/yann64/haikuports.git
synced 2026-04-23 20:20:06 +02:00
added ffmpeg 0.10 patch for gcc2
This commit is contained in:
211
media-video/ffmpeg/patches/ffmpeg-0.10-gcc2.patch
Normal file
211
media-video/ffmpeg/patches/ffmpeg-0.10-gcc2.patch
Normal file
@@ -0,0 +1,211 @@
|
||||
diff --git a/cmdutils.c b/cmdutils.c
|
||||
index 386db3d..f918600 100644
|
||||
--- ffmpeg-0.10/cmdutils.c
|
||||
+++ ffmpeg-0.10/cmdutils.c
|
||||
@@ -89,7 +89,7 @@ static void log_callback_report(void *ptr, int level, const char *fmt, va_list v
|
||||
char line[1024];
|
||||
static int print_prefix = 1;
|
||||
|
||||
- va_copy(vl2, vl);
|
||||
+ __va_copy(vl2, vl);
|
||||
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/ffmpeg.c b/ffmpeg.c
|
||||
index 463e1f4..245e8b5 100644
|
||||
--- ffmpeg-0.10/ffmpeg.c
|
||||
+++ ffmpeg-0.10/ffmpeg.c
|
||||
@@ -1247,9 +1247,11 @@ need_realloc:
|
||||
av_fifo_size(ost->fifo) / (enc->channels * osize); // FIXME wrong
|
||||
|
||||
if (ost->audio_resample) {
|
||||
+ uint8_t *buftmp2[] = { buftmp };
|
||||
+ const uint8_t *buf2[] = { buf };
|
||||
buftmp = audio_buf;
|
||||
- size_out = swr_convert(ost->swr, ( uint8_t*[]){buftmp}, audio_buf_size / (enc->channels * osize),
|
||||
- (const uint8_t*[]){buf }, size / (dec->channels * isize));
|
||||
+ size_out = swr_convert(ost->swr, buftmp2, audio_buf_size / (enc->channels * osize),
|
||||
+ buf2, size / (dec->channels * isize));
|
||||
size_out = size_out * enc->channels * osize;
|
||||
} else {
|
||||
buftmp = buf;
|
||||
diff --git a/ffprobe.c b/ffprobe.c
|
||||
index ca6133e..43f9d39 100644
|
||||
--- ffmpeg-0.10/ffprobe.c
|
||||
+++ ffmpeg-0.10/ffprobe.c
|
||||
@@ -293,7 +293,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);
|
||||
}
|
||||
}
|
||||
@@ -1249,8 +1251,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)
|
||||
-#define print_val(k, v, u) writer_print_string(w, k, \
|
||||
- value_string(val_str, sizeof(val_str), (struct unit_value){.val.i = v, .unit=u}), 0)
|
||||
+#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);
|
||||
#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
|
||||
AVStream *st = fmt_ctx->streams[pkt->stream_index];
|
||||
struct print_buf pbuf = {.s = NULL};
|
||||
const char *s;
|
||||
+ struct unit_value value2;
|
||||
|
||||
print_section_header("packet");
|
||||
s = av_get_media_type_string(st->codec->codec_type);
|
||||
@@ -1404,6 +1407,7 @@ static void show_stream(WriterContext *w, AVFormatContext *fmt_ctx, int stream_i
|
||||
const char *s;
|
||||
AVRational display_aspect_ratio;
|
||||
struct print_buf pbuf = {.s = NULL};
|
||||
+ struct unit_value value2;
|
||||
|
||||
print_section_header("stream");
|
||||
|
||||
@@ -1516,6 +1520,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;
|
||||
+ struct unit_value value2;
|
||||
|
||||
print_section_header("format");
|
||||
print_str("filename", fmt_ctx->filename);
|
||||
@@ -1524,9 +1529,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);
|
||||
- if (size >= 0) print_val ("size", size, unit_byte_str);
|
||||
+ if (size >= 0) { print_val ("size", size, unit_byte_str); }
|
||||
else print_str_opt("size", "N/A");
|
||||
- if (fmt_ctx->bit_rate > 0) print_val ("bit_rate", fmt_ctx->bit_rate, unit_bit_per_second_str);
|
||||
+ if (fmt_ctx->bit_rate > 0) { print_val ("bit_rate", fmt_ctx->bit_rate, unit_bit_per_second_str); }
|
||||
else print_str_opt("bit_rate", "N/A");
|
||||
show_tags(fmt_ctx->metadata);
|
||||
print_section_footer("format");
|
||||
diff --git a/libavcodec/aacenc.c b/libavcodec/aacenc.c
|
||||
index 55f0286..35d5f1a 100644
|
||||
--- ffmpeg-0.10/libavcodec/aacenc.c
|
||||
+++ ffmpeg-0.10/libavcodec/aacenc.c
|
||||
@@ -223,8 +223,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;
|
||||
@@ -686,11 +687,12 @@ 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;
|
||||
|
||||
return 0;
|
||||
diff --git a/libavutil/pixdesc.c b/libavutil/pixdesc.c
|
||||
index e73fbfe..3cde56c 100644
|
||||
--- ffmpeg-0.10/libavutil/pixdesc.c
|
||||
+++ ffmpeg-0.10/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,
|
||||
@@ -1110,16 +1104,6 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[PIX_FMT_NB] = {
|
||||
{ 0, 1, 2, 0, 7 }, /* A */
|
||||
},
|
||||
},
|
||||
- [PIX_FMT_GBR24P] = {
|
||||
- .name = "gbr24p",
|
||||
- .nb_components= 3,
|
||||
- .comp = {
|
||||
- { 1, 0, 1, 0, 7 }, /* B */
|
||||
- { 0, 0, 1, 0, 7 }, /* G */
|
||||
- { 2, 0, 1, 0, 7 }, /* R */
|
||||
- },
|
||||
- .flags = PIX_FMT_PLANAR | PIX_FMT_RGB,
|
||||
- },
|
||||
[PIX_FMT_GBRP] = {
|
||||
.name = "gbrp",
|
||||
.nb_components = 3,
|
||||
diff --git a/libswscale/swscale_unscaled.c b/libswscale/swscale_unscaled.c
|
||||
index e1ba799..3820056 100644
|
||||
--- ffmpeg-0.10/libswscale/swscale_unscaled.c
|
||||
+++ ffmpeg-0.10/libswscale/swscale_unscaled.c
|
||||
@@ -370,30 +370,38 @@ static int planarRgbToRgbWrapper(SwsContext *c, const uint8_t* src[], int srcStr
|
||||
}
|
||||
|
||||
switch (c->dstFormat) {
|
||||
- case PIX_FMT_BGR24:
|
||||
- gbr24ptopacked24((const uint8_t* []) {src[1], src[0], src[2]}, (int []) {srcStride[1], srcStride[0], srcStride[2]},
|
||||
+ 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], 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]},
|
||||
+ }
|
||||
+ 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);
|
||||
break;
|
||||
-
|
||||
+ }
|
||||
case PIX_FMT_ARGB:
|
||||
alpha_first = 1;
|
||||
- case PIX_FMT_RGBA:
|
||||
- gbr24ptopacked32((const uint8_t* []) {src[2], src[0], src[1]}, (int []) {srcStride[2], srcStride[0], srcStride[1]},
|
||||
+ 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;
|
||||
-
|
||||
+ }
|
||||
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]},
|
||||
+ 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;
|
||||
-
|
||||
+ }
|
||||
default:
|
||||
av_log(c, AV_LOG_ERROR, "unsupported planar RGB conversion %s -> %s\n",
|
||||
av_get_pix_fmt_name(c->srcFormat), av_get_pix_fmt_name(c->dstFormat));
|
||||
Reference in New Issue
Block a user