зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1035059 - Fix releasing of libav frames; r=edwin
This commit is contained in:
Родитель
a832d97bc8
Коммит
9cfc85031c
|
@ -85,7 +85,7 @@ FFmpegDataDecoder<LIBAV_VER>::Init()
|
||||||
mCodecContext.get_format = ChoosePixelFormat;
|
mCodecContext.get_format = ChoosePixelFormat;
|
||||||
|
|
||||||
mCodecContext.thread_count = PR_GetNumberOfProcessors();
|
mCodecContext.thread_count = PR_GetNumberOfProcessors();
|
||||||
mCodecContext.thread_type = FF_THREAD_FRAME;
|
mCodecContext.thread_type = FF_THREAD_SLICE | FF_THREAD_FRAME;
|
||||||
mCodecContext.thread_safe_callbacks = false;
|
mCodecContext.thread_safe_callbacks = false;
|
||||||
|
|
||||||
mCodecContext.extradata = mExtraData.begin();
|
mCodecContext.extradata = mExtraData.begin();
|
||||||
|
|
|
@ -137,7 +137,11 @@ FFmpegH264Decoder<LIBAV_VER>::AllocateBufferCb(AVCodecContext* aCodecContext,
|
||||||
FFmpegH264Decoder<LIBAV_VER>::ReleaseBufferCb(AVCodecContext* aCodecContext,
|
FFmpegH264Decoder<LIBAV_VER>::ReleaseBufferCb(AVCodecContext* aCodecContext,
|
||||||
AVFrame* aFrame)
|
AVFrame* aFrame)
|
||||||
{
|
{
|
||||||
reinterpret_cast<Image*>(aFrame->opaque)->Release();
|
Image* image = reinterpret_cast<Image*>(aFrame->opaque);
|
||||||
|
avcodec_default_release_buffer(aCodecContext, aFrame);
|
||||||
|
if (image) {
|
||||||
|
image->Release();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
|
|
Загрузка…
Ссылка в новой задаче