Commit 0393cf15 authored by Michael Niedermayer's avatar Michael Niedermayer

Revert "Acquire lock when initializing parsers."

This reverts commit 7feef7db.

This commit causes assertion failures due to use of parser_init from multiple
threads, for example indirectly by ffmpeg.c and more directly from the
packet read functions.

I dont know how to fix this quickly, and fixing ffmpeg.c leaves
the possibility of other applications being affected.
Crashing the applications until this is resolved is clearly no good
thus this revert, so we have time to think about the problem.

Crashes can be reproduced by using multiple input files in ffmpeg.
parent eed86554
......@@ -23,7 +23,6 @@
#include <string.h>
#include "parser.h"
#include "internal.h"
#include "libavutil/mem.h"
static AVCodecParser *av_first_parser = NULL;
......@@ -68,10 +67,7 @@ AVCodecParserContext *av_parser_init(int codec_id)
s->fetch_timestamp=1;
s->pict_type = AV_PICTURE_TYPE_I;
if (parser->parser_init) {
if (ff_lock_avcodec(NULL) < 0)
goto err_out;
ret = parser->parser_init(s);
ff_unlock_avcodec();
if (ret != 0)
goto err_out;
}
......@@ -206,11 +202,8 @@ int av_parser_change(AVCodecParserContext *s,
void av_parser_close(AVCodecParserContext *s)
{
if(s){
if (s->parser->parser_close) {
ff_lock_avcodec(NULL);
if (s->parser->parser_close)
s->parser->parser_close(s);
ff_unlock_avcodec();
}
av_free(s->priv_data);
av_free(s);
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment