summaryrefslogtreecommitdiffstats
path: root/libhb/encfaac.c
diff options
context:
space:
mode:
authorvan <[email protected]>2008-07-30 22:27:33 +0000
committervan <[email protected]>2008-07-30 22:27:33 +0000
commitbec5dee00e2b3f3c1cd0c9797e281eabeb19a4d7 (patch)
tree48c9d6273dce15f3af53737c4461e831834fff03 /libhb/encfaac.c
parentdff2e8c7a540f22a5a1157199c7aef26c4a4ffa2 (diff)
Fix two problems that would cause HB to hang in the muxer whenever the input content's video finished before audio:
- sync has to keep processing until all its input fifos report eof otherwise it won't send an eof on all its output fifos. - do_job has to wait for muxer to finish. Waiting for anything earlier in the pipeline (we were waiting for the video encoder) can cause other parts of the pipeline to get terminated early which will result in lost data & no eofs. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@1597 b64f7644-9d1e-0410-96f1-a4d463321fa5
Diffstat (limited to 'libhb/encfaac.c')
-rw-r--r--libhb/encfaac.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/libhb/encfaac.c b/libhb/encfaac.c
index 645628a8e..ae2e54b36 100644
--- a/libhb/encfaac.c
+++ b/libhb/encfaac.c
@@ -206,7 +206,10 @@ static hb_buffer_t *Flush( hb_work_object_t *w, hb_buffer_t *bufin )
}
}
// add the eof marker to the end of our buf chain
- buf->next = bufin;
+ if ( buf )
+ buf->next = bufin;
+ else
+ bufout = bufin;
return bufout;
}