av_freep SIGSEGV в ffmpeg - PullRequest
       18

av_freep SIGSEGV в ffmpeg

0 голосов
/ 13 марта 2020

В ffmpeg есть функция для освобождения ресурсов:

void av_freep(void *arg)
{
    void *val;

    memcpy(&val, arg, sizeof(val));
    memcpy(arg, &(void *){ NULL }, sizeof(val));
    av_free(val);
}

Теперь я получаю SIGSEGV в первой строке memcpy.

arg кажется правильным указателем (в по крайней мере, это не NULL).

Я называю это как av_freep(&mOutputFormatCtx->pb);

Этот pb был создан avio_alloc_context, однако я вызываю av_freep после источника потока RTSP стал недействительным (камера выключена).

Как я могу избежать этого SIGSEGV? Хотя адрес arg кажется хорошим, отладчик говорит мне: «Не удается получить доступ к памяти по адресу 0xabcdef», если я пытаюсь посмотреть mOutputFormatCtx->pb.

...