Mercurial > libavcodec.hg
changeset 10679:c1328f04458a libavcodec
libtheoraenc.c: mark keyframes
author | conrad |
---|---|
date | Sat, 12 Dec 2009 20:18:46 +0000 |
parents | fe3cdc16514b |
children | d569841bd1b7 |
files | libtheoraenc.c |
diffstat | 1 files changed, 3 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/libtheoraenc.c Sat Dec 12 19:44:01 2009 +0000 +++ b/libtheoraenc.c Sat Dec 12 20:18:46 2009 +0000 @@ -46,6 +46,7 @@ int stats_offset; int uv_hshift; int uv_vshift; + int keyframe_mask; } TheoraContext; /*! @@ -218,6 +219,7 @@ return -1; } + h->keyframe_mask = (1 << t_info.keyframe_granule_shift) - 1; /* Clear up theora_info struct */ th_info_clear(&t_info); @@ -336,6 +338,7 @@ // HACK: does not take codec delay into account (neither does the decoder though) avc_context->coded_frame->pts = frame->pts; + avc_context->coded_frame->key_frame = !(o_packet.granulepos & h->keyframe_mask); return o_packet.bytes; }