summaryrefslogtreecommitdiffstats
path: root/libhb/muxmkv.c
diff options
context:
space:
mode:
authorjstebbins <[email protected]>2011-03-11 22:40:30 +0000
committerjstebbins <[email protected]>2011-03-11 22:40:30 +0000
commitd68cb8a25201663f832307990b2a98cc60d8ab14 (patch)
tree936279196cd07e6d68b19b6a79de61ec1e6acfbe /libhb/muxmkv.c
parent4aaed20c697c1a7e8fe7e039cf1949a320758286 (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.c5
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 );