summaryrefslogtreecommitdiff
path: root/games/alephone/r5037.diff
diff options
context:
space:
mode:
Diffstat (limited to 'games/alephone/r5037.diff')
-rw-r--r--games/alephone/r5037.diff193
1 files changed, 0 insertions, 193 deletions
diff --git a/games/alephone/r5037.diff b/games/alephone/r5037.diff
deleted file mode 100644
index 852d75245e..0000000000
--- a/games/alephone/r5037.diff
+++ /dev/null
@@ -1,193 +0,0 @@
-Index: Source_Files/FFmpeg/Movie.cpp
-===================================================================
---- Source_Files/FFmpeg/Movie.cpp (revision 5036)
-+++ Source_Files/FFmpeg/Movie.cpp (revision 5037)
-@@ -138,6 +138,9 @@
- AVFormatContext *fmt_ctx;
- int video_stream_idx;
- int audio_stream_idx;
-+
-+ size_t video_counter;
-+ size_t audio_counter;
- };
- typedef struct libav_vars libav_vars_t;
-
-@@ -495,6 +498,7 @@
- audio_stream->codec->codec_id = audio_codec->id;
- audio_stream->codec->codec_type = AVMEDIA_TYPE_AUDIO;
- audio_stream->codec->sample_rate = mx->obtained.freq;
-+ audio_stream->codec->time_base = (AVRational){1, mx->obtained.freq};
- audio_stream->codec->channels = 2;
-
- if (av->fmt_ctx->oformat->flags & AVFMT_GLOBALHEADER)
-@@ -507,19 +511,8 @@
- audio_stream->codec->global_quality = FF_QP2LAMBDA * (aq / 10);
- audio_stream->codec->flags |= CODEC_FLAG_QSCALE;
-
-- // find correct sample format
-- audio_stream->codec->sample_fmt = AV_SAMPLE_FMT_S16;
-+ audio_stream->codec->sample_fmt = AV_SAMPLE_FMT_FLTP;
- success = (0 <= avcodec_open2(audio_stream->codec, audio_codec, NULL));
-- if (!success)
-- {
-- audio_stream->codec->sample_fmt = AV_SAMPLE_FMT_FLT;
-- success = (0 <= avcodec_open2(audio_stream->codec, audio_codec, NULL));
-- }
-- if (!success)
-- {
-- audio_stream->codec->sample_fmt = AV_SAMPLE_FMT_FLTP;
-- success = (0 <= avcodec_open2(audio_stream->codec, audio_codec, NULL));
-- }
- if (!success) err_msg = "Could not open audio codec";
- }
- if (success)
-@@ -568,6 +561,7 @@
- if (success)
- {
- video_stream->time_base = (AVRational){1, TICKS_PER_SECOND};
-+ audio_stream->time_base = (AVRational){1, mx->obtained.freq};
- avformat_write_header(av->fmt_ctx, NULL);
- }
-
-@@ -625,7 +619,7 @@
-
- sws_scale(av->sws_ctx, pdata, pitch, 0, temp_surface->h,
- av->video_frame->data, av->video_frame->linesize);
-- av->video_frame->pts = vcodec->frame_number;
-+ av->video_frame->pts = av->video_counter++;
- frame = av->video_frame;
- }
-
-@@ -638,33 +632,22 @@
- pkt.data = av->video_buf;
- pkt.size = av->video_bufsize;
-
--#if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(54,0,0)
-- int vsize = avcodec_encode_video(vcodec, av->video_buf, av->video_bufsize, frame);
-- if (vsize > 0)
-- {
-- if (vcodec->coded_frame->pts != AV_NOPTS_VALUE)
-- {
-- pkt.pts = av_rescale_q(vcodec->coded_frame->pts,
-- vcodec->time_base,
-- vstream->time_base);
-- }
-- if (vcodec->coded_frame->key_frame)
-- pkt.flags |= AV_PKT_FLAG_KEY;
-- pkt.size = vsize;
-- }
--
--#else
- int got_packet = 0;
- int vsize = avcodec_encode_video2(vcodec, &pkt, frame, &got_packet);
--#endif
-- if (vsize > 0)
-+ if (vsize == 0 && got_packet)
- {
-+ if (pkt.pts != AV_NOPTS_VALUE && pkt.pts < pkt.dts)
-+ pkt.pts = pkt.dts;
-+ if (pkt.pts != AV_NOPTS_VALUE)
-+ pkt.pts = av_rescale_q(pkt.pts, vcodec->time_base, vstream->time_base);
-+ if (pkt.dts != AV_NOPTS_VALUE)
-+ pkt.dts = av_rescale_q(pkt.dts, vcodec->time_base, vstream->time_base);
-+ pkt.duration = av_rescale_q(pkt.duration, vcodec->time_base, vstream->time_base);
- pkt.stream_index = vstream->index;
- av_interleaved_write_frame(av->fmt_ctx, &pkt);
-+ av_free_packet(&pkt);
- }
-- av_free_packet(&pkt);
--
-- if (!last || vsize <= 0)
-+ if (!last || vsize < 0 || !got_packet)
- done = true;
- }
- }
-@@ -712,6 +695,10 @@
- av_frame_unref(av->audio_frame);
- #endif
- av->audio_frame->nb_samples = write_samples;
-+ av->audio_frame->pts = av_rescale_q(av->audio_counter,
-+ (AVRational){1, acodec->sample_rate},
-+ acodec->time_base);
-+ av->audio_counter += write_samples;
- int asize = avcodec_fill_audio_frame(av->audio_frame, acodec->channels,
- acodec->sample_fmt,
- av->audio_data_conv,
-@@ -726,24 +713,57 @@
- if (0 == avcodec_encode_audio2(acodec, &pkt, av->audio_frame, &got_pkt)
- && got_pkt)
- {
-- if (acodec->coded_frame && acodec->coded_frame->pts != AV_NOPTS_VALUE)
-- {
-- pkt.pts = av_rescale_q(acodec->coded_frame->pts,
-- acodec->time_base,
-- astream->time_base);
-- }
-+ if (pkt.pts != AV_NOPTS_VALUE && pkt.pts < pkt.dts)
-+ pkt.pts = pkt.dts;
-+ if (pkt.pts != AV_NOPTS_VALUE)
-+ pkt.pts = av_rescale_q(pkt.pts, acodec->time_base, astream->time_base);
-+ if (pkt.dts != AV_NOPTS_VALUE)
-+ pkt.dts = av_rescale_q(pkt.dts, acodec->time_base, astream->time_base);
-+ pkt.duration = av_rescale_q(pkt.duration, acodec->time_base, astream->time_base);
- pkt.stream_index = astream->index;
-- pkt.flags |= AV_PKT_FLAG_KEY;
- av_interleaved_write_frame(av->fmt_ctx, &pkt);
- av_free_packet(&pkt);
- }
- }
- }
-+ if (last)
-+ {
-+ bool done = false;
-+ while (!done)
-+ {
-+ AVPacket pkt;
-+ memset(&pkt, 0, sizeof(AVPacket));
-+ av_init_packet(&pkt);
-+
-+ int got_pkt = 0;
-+ if (0 == avcodec_encode_audio2(acodec, &pkt, NULL, &got_pkt)
-+ && got_pkt)
-+ {
-+ if (pkt.pts != AV_NOPTS_VALUE && pkt.pts < pkt.dts)
-+ pkt.pts = pkt.dts;
-+ if (pkt.pts != AV_NOPTS_VALUE)
-+ pkt.pts = av_rescale_q(pkt.pts, acodec->time_base, astream->time_base);
-+ if (pkt.dts != AV_NOPTS_VALUE)
-+ pkt.dts = av_rescale_q(pkt.dts, acodec->time_base, astream->time_base);
-+ pkt.duration = av_rescale_q(pkt.duration, acodec->time_base, astream->time_base);
-+ pkt.stream_index = astream->index;
-+ av_interleaved_write_frame(av->fmt_ctx, &pkt);
-+ av_free_packet(&pkt);
-+ }
-+ else
-+ {
-+ done = true;
-+ }
-+ }
-+
-+ }
-
- }
-
- void Movie::EncodeThread()
- {
-+ av->video_counter = 0;
-+ av->audio_counter = 0;
- while (true)
- {
- SDL_SemWait(encodeReady);
-Index: configure.ac
-===================================================================
---- configure.ac (revision 5036)
-+++ configure.ac (revision 5037)
-@@ -191,7 +191,7 @@
- [SDL_image.h], [SDL_image], [IMG_Load])
-
- AX_CHECK_FEATURE_PKG([ffmpeg], [FFMPEG],
-- [FFMPEG], [libavcodec >= 53.61.100 libavformat >= 53.32.100 libavutil >= 51.35.100 libswscale >= 2.1.1])
-+ [FFMPEG], [libavcodec >= 54.35.0 libavformat >= 54.20.0 libavutil >= 52.3.0 libswscale >= 2.1.1])
-
- AX_CHECK_FEATURE_LIB([mad], [MAD],
- [mad.h], [mad], [mad_stream_init])