X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavformat%2Fcdg.c;h=75f1fb24c9179bf7bcfa76a520f7ca4361a3d837;hb=60fcc19bff49e0b1972eae014afc087afd94a415;hp=b547bbeebe1026c31e1227ee6f4c78d3c2eae4fd;hpb=23a287e9cc4bfebd98190f2442367f7c0c94099f;p=ffmpeg diff --git a/libavformat/cdg.c b/libavformat/cdg.c index b547bbeebe1..75f1fb24c91 100644 --- a/libavformat/cdg.c +++ b/libavformat/cdg.c @@ -28,7 +28,7 @@ static int read_header(AVFormatContext *s, AVFormatParameters *ap) AVStream *vst; int ret; - vst = av_new_stream(s, 0); + vst = avformat_new_stream(s, NULL); if (!vst) return AVERROR(ENOMEM); @@ -52,6 +52,11 @@ static int read_packet(AVFormatContext *s, AVPacket *pkt) ret = av_get_packet(s->pb, pkt, CDG_PACKET_SIZE); pkt->stream_index = 0; + pkt->dts=pkt->pts= s->streams[0]->cur_dts; + + if(ret>5 && (pkt->data[0]&0x3F) == 9 && (pkt->data[1]&0x3F)==1 && !(pkt->data[2+2+1] & 0x0F)){ + pkt->flags = AV_PKT_FLAG_KEY; + } return ret; } @@ -60,5 +65,6 @@ AVInputFormat ff_cdg_demuxer = { .long_name = NULL_IF_CONFIG_SMALL("CD Graphics Format"), .read_header = read_header, .read_packet = read_packet, + .flags= AVFMT_GENERIC_INDEX, .extensions = "cdg" };