mirror of
https://projects.vdr-developer.org/git/vdr-plugin-softhddevice.git
synced 2023-10-10 19:16:51 +02:00
Workaround for ffmpeg 1.1.2 bug.
This commit is contained in:
parent
936566c642
commit
746746d5b7
18
codec.c
18
codec.c
@ -131,11 +131,25 @@ static enum PixelFormat Codec_get_format(AVCodecContext * video_ctx,
|
|||||||
{
|
{
|
||||||
VideoDecoder *decoder;
|
VideoDecoder *decoder;
|
||||||
|
|
||||||
|
decoder = video_ctx->opaque;
|
||||||
|
#if LIBAVCODEC_VERSION_INT == AV_VERSION_INT(54,86,100)
|
||||||
|
// this begins to stink, 1.1.2 calls get_format for each frame
|
||||||
|
// 1.1.3 has the same version, but works again
|
||||||
|
if (decoder->GetFormatDone) {
|
||||||
|
if (decoder->GetFormatDone < 10) {
|
||||||
|
++decoder->GetFormatDone;
|
||||||
|
Error
|
||||||
|
("codec/video: ffmpeg/libav buggy: get_format called again\n");
|
||||||
|
}
|
||||||
|
return *fmt; // FIXME: this is hack
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// bug in ffmpeg 1.1.1, called with zero width or height
|
||||||
if (!video_ctx->width || !video_ctx->height) {
|
if (!video_ctx->width || !video_ctx->height) {
|
||||||
Error("codec/video: ffmpeg/libav buggy\n");
|
Error("codec/video: ffmpeg/libav buggy: width or height zero\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
decoder = video_ctx->opaque;
|
|
||||||
decoder->GetFormatDone = 1;
|
decoder->GetFormatDone = 1;
|
||||||
return Video_get_format(decoder->HwDecoder, video_ctx, fmt);
|
return Video_get_format(decoder->HwDecoder, video_ctx, fmt);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user