Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- diff --git a/libavformat/oggparseflac.c b/libavformat/oggparseflac.c
- index c34499c..dee13a4 100644
- --- a/libavformat/oggparseflac.c
- +++ b/libavformat/oggparseflac.c
- @@ -61,16 +61,9 @@ flac_header (AVFormatContext * s, int idx)
- st->codecpar->codec_id = AV_CODEC_ID_FLAC;
- st->need_parsing = AVSTREAM_PARSE_HEADERS;
- -<<<<<<< HEAD
- - if (ff_alloc_extradata(st->codec, FLAC_STREAMINFO_SIZE) < 0)
- + if (ff_alloc_extradata(st->codecpar, FLAC_STREAMINFO_SIZE) < 0)
- return AVERROR(ENOMEM);
- - memcpy(st->codec->extradata, streaminfo_start, st->codec->extradata_size);
- -=======
- - st->codecpar->extradata =
- - av_malloc(FLAC_STREAMINFO_SIZE + AV_INPUT_BUFFER_PADDING_SIZE);
- - memcpy(st->codecpar->extradata, streaminfo_start, FLAC_STREAMINFO_SIZE);
- - st->codecpar->extradata_size = FLAC_STREAMINFO_SIZE;
- ->>>>>>> 9200514ad8717c63f82101dc394f4378854325bf
- + memcpy(st->codecpar->extradata, streaminfo_start, st->codecpar->extradata_size);
- samplerate = AV_RB24(st->codecpar->extradata + 10) >> 4;
- if (!samplerate)
- @@ -89,35 +82,37 @@ old_flac_header (AVFormatContext * s, int idx)
- {
- struct ogg *ogg = s->priv_data;
- AVStream *st = s->streams[idx];
- -<<<<<<< HEAD
- struct ogg_stream *os = ogg->streams + idx;
- AVCodecParserContext *parser = av_parser_init(AV_CODEC_ID_FLAC);
- - int size;
- + AVCodecContext *dummyctx;
- + int size, ret = 1;
- uint8_t *data;
- if (!parser)
- return -1;
- - st->codec->codec_type = AVMEDIA_TYPE_AUDIO;
- - st->codec->codec_id = AV_CODEC_ID_FLAC;
- -=======
- + dummyctx = avcodec_alloc_context3(NULL);
- + if (!dummyctx)
- + return -1;
- +
- st->codecpar->codec_type = AVMEDIA_TYPE_AUDIO;
- st->codecpar->codec_id = AV_CODEC_ID_FLAC;
- ->>>>>>> 9200514ad8717c63f82101dc394f4378854325bf
- parser->flags = PARSER_FLAG_COMPLETE_FRAMES;
- - av_parser_parse2(parser, st->codec,
- + av_parser_parse2(parser, dummyctx,
- &data, &size, os->buf + os->pstart, os->psize,
- AV_NOPTS_VALUE, AV_NOPTS_VALUE, -1);
- av_parser_close(parser);
- - if (st->codec->sample_rate) {
- - avpriv_set_pts_info(st, 64, 1, st->codec->sample_rate);
- - return 0;
- + if (dummyctx->sample_rate) {
- + st->codecpar->sample_rate = dummyctx->sample_rate;
- + avpriv_set_pts_info(st, 64, 1, st->codecpar->sample_rate);
- + ret = 0;
- }
- - return 1;
- + avcodec_free_context(&dummyctx);
- + return ret;
- }
- const struct ogg_codec ff_flac_codec = {
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement