summaryrefslogtreecommitdiffstats
path: root/libmpcodecs
diff options
context:
space:
mode:
authoriive <iive@b3059339-0415-0410-9bf9-f77b7e298cf2>2004-10-17 17:59:38 +0000
committeriive <iive@b3059339-0415-0410-9bf9-f77b7e298cf2>2004-10-17 17:59:38 +0000
commit7306f6e2c1384fc018db33a7cfee1cd986cb79bc (patch)
tree6cf998c074fde65eece1f8c66547825038810f39 /libmpcodecs
parentb74c9285300ae813ab7ad65bc2686e0014fe5e32 (diff)
downloadmpv-7306f6e2c1384fc018db33a7cfee1cd986cb79bc.tar.bz2
mpv-7306f6e2c1384fc018db33a7cfee1cd986cb79bc.tar.xz
Mark I-frames as seekable only if we encode with one reference frame, IDR are always seekable
patch send by Loren Merritt git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@13659 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libmpcodecs')
-rw-r--r--libmpcodecs/ve_x264.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/libmpcodecs/ve_x264.c b/libmpcodecs/ve_x264.c
index 7b3584cf00..ab1f5147c6 100644
--- a/libmpcodecs/ve_x264.c
+++ b/libmpcodecs/ve_x264.c
@@ -304,7 +304,9 @@ static int put_image(struct vf_instance_s *vf, mp_image_t *mpi)
i_size += x264_nal_encode(mod->mux->buffer + i_size, &i_data, 1, &nal[i]);
}
if(i_size>0) {
- muxer_write_chunk(mod->mux, i_size, (mod->pic.i_type == X264_TYPE_I)?0x10:0);
+ int keyframe = (mod->pic.i_type == X264_TYPE_IDR) ||
+ (mod->pic.i_type == X264_TYPE_I && frame_ref == 1);
+ muxer_write_chunk(mod->mux, i_size, keyframe?0x10:0);
}
return 1;
}