Addition of a fifo to isolate the libburn writer thread from libisofs
burn_source.
This commit is contained in:
parent
5598861309
commit
e0333e1e33
@ -228,7 +228,7 @@ static
|
|||||||
int isoburn_prepare_disc_aux(struct burn_drive *d, struct burn_disc **disc,
|
int isoburn_prepare_disc_aux(struct burn_drive *d, struct burn_disc **disc,
|
||||||
struct isoburn_source_opts *opts, int new_img)
|
struct isoburn_source_opts *opts, int new_img)
|
||||||
{
|
{
|
||||||
struct burn_source *wsrc;
|
struct burn_source *wsrc, fifo_src;
|
||||||
struct burn_session *session;
|
struct burn_session *session;
|
||||||
struct burn_track *track;
|
struct burn_track *track;
|
||||||
struct isoburn *o;
|
struct isoburn *o;
|
||||||
@ -283,14 +283,21 @@ int isoburn_prepare_disc_aux(struct burn_drive *d, struct burn_disc **disc,
|
|||||||
wopts.src = o->src;
|
wopts.src = o->src;
|
||||||
wopts.overwrite = (new_img ? NULL : o->target_iso_head);
|
wopts.overwrite = (new_img ? NULL : o->target_iso_head);
|
||||||
wsrc = iso_source_new_ecma119(o->target_volset, &wopts);
|
wsrc = iso_source_new_ecma119(o->target_volset, &wopts);
|
||||||
|
if (wsrc == NULL)
|
||||||
|
return -1;
|
||||||
|
|
||||||
// TODO check return values for failure. propertly clean-up on error
|
// TODO check return values for failure. propertly clean-up on error
|
||||||
|
|
||||||
|
fifo_src = burn_fifo_source_new(wsrc, 2048, 2000, 0);
|
||||||
|
if (fifo_src == NULL) {
|
||||||
|
fprintf(stderr, "Cannot attach fifo\n");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
*disc = burn_disc_create();
|
*disc = burn_disc_create();
|
||||||
session = burn_session_create();
|
session = burn_session_create();
|
||||||
burn_disc_add_session(*disc, session, BURN_POS_END);
|
burn_disc_add_session(*disc, session, BURN_POS_END);
|
||||||
track = burn_track_create();
|
track = burn_track_create();
|
||||||
burn_track_set_source(track, wsrc);
|
burn_track_set_source(track, fifo_src);
|
||||||
burn_session_add_track(session, track, BURN_POS_END);
|
burn_session_add_track(session, track, BURN_POS_END);
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
|
Loading…
Reference in New Issue
Block a user