diff options
author | jstebbins <[email protected]> | 2011-03-11 22:40:30 +0000 |
---|---|---|
committer | jstebbins <[email protected]> | 2011-03-11 22:40:30 +0000 |
commit | d68cb8a25201663f832307990b2a98cc60d8ab14 (patch) | |
tree | 936279196cd07e6d68b19b6a79de61ec1e6acfbe /libhb/muxmkv.c | |
parent | 4aaed20c697c1a7e8fe7e039cf1949a320758286 (diff) |
Add parameter parsing and b-frame support to ffmpeg mpeg-4 encoder
The cli will now accept ':' separated parameters using the '-x' option
for ffmpeg mpeg-4. The linux gui has an entry box on the advanced tab
to add options. The option keys and values are the same as what the
ffmpeg command line allows.
Calculation of DTS timestamps was added to encavcodec.c in order to allow
out of order b-frames. The algorithm is similar to what x264 uses.
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@3839 b64f7644-9d1e-0410-96f1-a4d463321fa5
Diffstat (limited to 'libhb/muxmkv.c')
-rw-r--r-- | libhb/muxmkv.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/libhb/muxmkv.c b/libhb/muxmkv.c index f169e3de1..63f3e94cd 100644 --- a/libhb/muxmkv.c +++ b/libhb/muxmkv.c @@ -107,6 +107,8 @@ static int MKVInit( hb_mux_object_t * m ) track->codecID = MK_VCODEC_MP4ASP; track->codecPrivate = job->config.mpeg4.bytes; track->codecPrivateSize = job->config.mpeg4.length; + if (job->areBframes) + track->minCache = 1; break; case HB_VCODEC_THEORA: { @@ -448,7 +450,8 @@ static int MKVMux( hb_mux_object_t * m, hb_mux_data_t * mux_data, } mk_addFrameData(m->file, mux_data->track, buf->data, buf->size); mk_setFrameFlags(m->file, mux_data->track, timecode, - ((job->vcodec == HB_VCODEC_X264 && + (((job->vcodec == HB_VCODEC_X264 || + job->vcodec == HB_VCODEC_FFMPEG) && mux_data == job->mux_data) ? (buf->frametype == HB_FRAME_IDR) : ((buf->frametype & HB_FRAME_KEY) != 0)), 0 ); |