Advertisement
Guest User

Untitled

a guest
Mar 4th, 2016
39
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Diff 2.58 KB | None | 0 0
  1. diff --git a/libavformat/oggparseflac.c b/libavformat/oggparseflac.c
  2. index c34499c..dee13a4 100644
  3. --- a/libavformat/oggparseflac.c
  4. +++ b/libavformat/oggparseflac.c
  5. @@ -61,16 +61,9 @@ flac_header (AVFormatContext * s, int idx)
  6.          st->codecpar->codec_id = AV_CODEC_ID_FLAC;
  7.          st->need_parsing = AVSTREAM_PARSE_HEADERS;
  8.  
  9. -<<<<<<< HEAD
  10. -        if (ff_alloc_extradata(st->codec, FLAC_STREAMINFO_SIZE) < 0)
  11. +        if (ff_alloc_extradata(st->codecpar, FLAC_STREAMINFO_SIZE) < 0)
  12.              return AVERROR(ENOMEM);
  13. -        memcpy(st->codec->extradata, streaminfo_start, st->codec->extradata_size);
  14. -=======
  15. -        st->codecpar->extradata =
  16. -            av_malloc(FLAC_STREAMINFO_SIZE + AV_INPUT_BUFFER_PADDING_SIZE);
  17. -        memcpy(st->codecpar->extradata, streaminfo_start, FLAC_STREAMINFO_SIZE);
  18. -        st->codecpar->extradata_size = FLAC_STREAMINFO_SIZE;
  19. ->>>>>>> 9200514ad8717c63f82101dc394f4378854325bf
  20. +        memcpy(st->codecpar->extradata, streaminfo_start, st->codecpar->extradata_size);
  21.  
  22.          samplerate = AV_RB24(st->codecpar->extradata + 10) >> 4;
  23.          if (!samplerate)
  24. @@ -89,35 +82,37 @@ old_flac_header (AVFormatContext * s, int idx)
  25.  {
  26.      struct ogg *ogg = s->priv_data;
  27.      AVStream *st = s->streams[idx];
  28. -<<<<<<< HEAD
  29.      struct ogg_stream *os = ogg->streams + idx;
  30.      AVCodecParserContext *parser = av_parser_init(AV_CODEC_ID_FLAC);
  31. -    int size;
  32. +    AVCodecContext *dummyctx;
  33. +    int size, ret = 1;
  34.      uint8_t *data;
  35.  
  36.      if (!parser)
  37.          return -1;
  38.  
  39. -    st->codec->codec_type = AVMEDIA_TYPE_AUDIO;
  40. -    st->codec->codec_id = AV_CODEC_ID_FLAC;
  41. -=======
  42. +    dummyctx = avcodec_alloc_context3(NULL);
  43. +    if (!dummyctx)
  44. +        return -1;
  45. +
  46.      st->codecpar->codec_type = AVMEDIA_TYPE_AUDIO;
  47.      st->codecpar->codec_id = AV_CODEC_ID_FLAC;
  48. ->>>>>>> 9200514ad8717c63f82101dc394f4378854325bf
  49.  
  50.      parser->flags = PARSER_FLAG_COMPLETE_FRAMES;
  51. -    av_parser_parse2(parser, st->codec,
  52. +    av_parser_parse2(parser, dummyctx,
  53.                       &data, &size, os->buf + os->pstart, os->psize,
  54.                       AV_NOPTS_VALUE, AV_NOPTS_VALUE, -1);
  55.  
  56.      av_parser_close(parser);
  57.  
  58. -    if (st->codec->sample_rate) {
  59. -        avpriv_set_pts_info(st, 64, 1, st->codec->sample_rate);
  60. -        return 0;
  61. +    if (dummyctx->sample_rate) {
  62. +        st->codecpar->sample_rate = dummyctx->sample_rate;
  63. +        avpriv_set_pts_info(st, 64, 1, st->codecpar->sample_rate);
  64. +        ret = 0;
  65.      }
  66.  
  67. -    return 1;
  68. +    avcodec_free_context(&dummyctx);
  69. +    return ret;
  70.  }
  71.  
  72.  const struct ogg_codec ff_flac_codec = {
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement