mirror of
https://github.com/xenia-project/FFmpeg.git
synced 2025-01-30 08:33:25 +00:00
cdg: set the keyframe flag on the first packet
Bug-Id: 55
This commit is contained in:
parent
18fb38fb9e
commit
abda15a990
@ -26,6 +26,10 @@
|
|||||||
#define CDG_COMMAND 0x09
|
#define CDG_COMMAND 0x09
|
||||||
#define CDG_MASK 0x3F
|
#define CDG_MASK 0x3F
|
||||||
|
|
||||||
|
typedef struct CDGContext {
|
||||||
|
int got_first_packet;
|
||||||
|
} CDGContext;
|
||||||
|
|
||||||
static int read_header(AVFormatContext *s)
|
static int read_header(AVFormatContext *s)
|
||||||
{
|
{
|
||||||
AVStream *vst;
|
AVStream *vst;
|
||||||
@ -50,6 +54,7 @@ static int read_header(AVFormatContext *s)
|
|||||||
|
|
||||||
static int read_packet(AVFormatContext *s, AVPacket *pkt)
|
static int read_packet(AVFormatContext *s, AVPacket *pkt)
|
||||||
{
|
{
|
||||||
|
CDGContext *priv = s->priv_data;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
while (1) {
|
while (1) {
|
||||||
@ -59,6 +64,11 @@ static int read_packet(AVFormatContext *s, AVPacket *pkt)
|
|||||||
av_free_packet(pkt);
|
av_free_packet(pkt);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!priv->got_first_packet) {
|
||||||
|
pkt->flags |= AV_PKT_FLAG_KEY;
|
||||||
|
priv->got_first_packet = 1;
|
||||||
|
}
|
||||||
|
|
||||||
pkt->stream_index = 0;
|
pkt->stream_index = 0;
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
@ -66,6 +76,7 @@ static int read_packet(AVFormatContext *s, AVPacket *pkt)
|
|||||||
AVInputFormat ff_cdg_demuxer = {
|
AVInputFormat ff_cdg_demuxer = {
|
||||||
.name = "cdg",
|
.name = "cdg",
|
||||||
.long_name = NULL_IF_CONFIG_SMALL("CD Graphics"),
|
.long_name = NULL_IF_CONFIG_SMALL("CD Graphics"),
|
||||||
|
.priv_data_size = sizeof(CDGContext),
|
||||||
.read_header = read_header,
|
.read_header = read_header,
|
||||||
.read_packet = read_packet,
|
.read_packet = read_packet,
|
||||||
.extensions = "cdg",
|
.extensions = "cdg",
|
||||||
|
Loading…
x
Reference in New Issue
Block a user