Ticket #428: patchavisynth.diff

File patchavisynth.diff, 1.3 KB (added by chinshou, 5 years ago)
  • libavformat/avisynth.c

    diff --git a/libavformat/avisynth.c b/libavformat/avisynth.c
    index e41e1c0..18e40f0 100644
    a b static int avisynth_read_header(AVFormatContext *s, AVFormatParameters *ap) 
    122122                  st->codec->bit_rate = (uint64_t)stream->info.dwSampleSize * (uint64_t)stream->info.dwRate * 8 / (uint64_t)stream->info.dwScale; 
    123123                  st->codec->codec_tag = imgfmt.bmiHeader.biCompression; 
    124124                  st->codec->codec_id = ff_codec_get_id(ff_codec_bmp_tags, imgfmt.bmiHeader.biCompression); 
     125                                  if (st->codec->codec_id == CODEC_ID_RAWVIDEO && imgfmt.bmiHeader.biCompression== BI_RGB) { 
     126                                    st->codec->extradata = av_malloc(9 + FF_INPUT_BUFFER_PADDING_SIZE); 
     127                                    if (st->codec->extradata) { 
     128                                        st->codec->extradata_size = 9; 
     129                                        memcpy(st->codec->extradata, "BottomUp", 9); 
     130                                    } 
     131                                  } 
     132 
    125133 
    126134                  st->duration = stream->info.dwLength; 
    127135                } 
    static int avisynth_read_packet(AVFormatContext *s, AVPacket *pkt) 
    165173 
    166174  res = AVIStreamRead(stream->handle, stream->read, stream->chunck_samples, pkt->data, stream->chunck_size, &read_size, NULL); 
    167175 
    168   pkt->pts = stream->read; 
     176  //pkt->pts = stream->read; 
    169177  pkt->size = read_size; 
    170178 
    171179  stream->read += stream->chunck_samples;