int frametype;
int scr_sequence;
int new_chap;
+ int discard;
} packet_info_t;
typedef struct reordered_data_s reordered_data_t;
pv->packet_info.scr_sequence = in->s.scr_sequence;
pv->packet_info.new_chap = in->s.new_chap;
pv->packet_info.frametype = in->s.frametype;
+ pv->packet_info.discard = !!(in->s.flags & HB_FLAG_DISCARD);
}
for (pos = 0; pos < in->size; pos += len)
{
// decodeAudio that is now finished. The next packet is associated
// with the input buffer, so set it's chapter and scr info.
pv->packet_info.scr_sequence = in->s.scr_sequence;
+ pv->packet_info.discard = !!(in->s.flags & HB_FLAG_DISCARD);
pv->unfinished = 0;
}
if (len > 0 && pout_len <= 0)
{
avp.flags |= AV_PKT_FLAG_KEY;
}
+ avp.flags |= packet_info->discard * AV_PKT_FLAG_DISCARD;
}
else
{
pv->packet_info.scr_sequence = in->s.scr_sequence;
pv->packet_info.new_chap = in->s.new_chap;
pv->packet_info.frametype = in->s.frametype;
+ pv->packet_info.discard = !!(in->s.flags & HB_FLAG_DISCARD);
}
for (pos = 0; pos < in->size; pos += len)
{
pv->packet_info.scr_sequence = in->s.scr_sequence;
pv->packet_info.new_chap = in->s.new_chap;
pv->packet_info.frametype = in->s.frametype;
+ pv->packet_info.discard = !!(in->s.flags & HB_FLAG_DISCARD);
pv->unfinished = 0;
}
if (len > 0 && pout_len <= 0)
avp.size = packet_info->size;
avp.pts = packet_info->pts;
avp.dts = AV_NOPTS_VALUE;
+ avp.flags |= packet_info->discard * AV_PKT_FLAG_DISCARD;
}
else
{
memcpy( buf->palette->data, palette, size );
}
}
+ if (stream->ffmpeg_pkt.flags & AV_PKT_FLAG_DISCARD)
+ {
+ buf->s.flags |= HB_FLAG_DISCARD;
+ }
buf->s.id = stream->ffmpeg_pkt.stream_index;
// compute a conversion factor to go from the ffmpeg
*/
if (stream->ffmpeg_pkt.flags & AV_PKT_FLAG_KEY)
{
- buf->s.flags = HB_FLAG_FRAMETYPE_KEY;
+ buf->s.flags |= HB_FLAG_FRAMETYPE_KEY;
buf->s.frametype = HB_FRAME_I;
}
break;