+ # Remove background line:
+ ${SED} -i -e /label:${bg_layer_name},.*/d ${layers}
+
+ # Create background frame:
+ convert -size ${size} xc:none ${dest}/background.png
+
+ nf=""
+ max_nf="0"
+ oldnf=""
+ files=""
+ group="default"
+
+ while read l; do
+ scene=$(get_scene_id "${l}")
+ label=$(get_label "${l}")
+ p=$(get_pos "${l}")
+
+ nf=$(get_frame_id "${label}")
+ ng=$(get_group_id "${label}")
+ dup_from=$(get_dup_from "${label}")
+ dup_to=$(get_dup_to "${label}")
+
+ # Also indicate a new frame, but to be copied from..to:
+ if [ x"${dup_from}" != x"" ]; then
+ nf=${dup_from}
+ fi
+
+ log_dbg "Layer ${scene}"
+ log_dbg " nom: ${label}"
+ log_dbg " pos: ${p}"
+
+ group_ref=$(get_group_ref "${group}")
+ log_dbg " group_ref: ${group_ref}"
+
+ # Only change group if ng is set...
+ if [ x"${ng}" != x"" ]; then
+ if [ x"${group_ref}" != x"ref" ]; then
+ generate_video
+ fi
+
+ group="${ng}"
+ log_info "New group: ${ng}"
+
+ nf=""
+ oldnf=""
+ files=""
+
+ # Skip image from group ID...
+ continue
+ fi
+
+ if [ x"${group_ref}" != x"" ]; then
+ # Ignore all images in groupe-ref:
+ log_dbg " ignore (groupe-ref)"
+ continue
+ fi
+
+ files="${files} -page ${p} ${src}[${scene}]"
+
+ if [ x"${nf}" != x"" ]; then
+ # Only check expected frame if oldnf is set...
+ if [ x"${oldnf}" != x"" ]; then
+ expected_nf=$((${oldnf} + 1))
+
+ if [ ${expected_nf} -ne ${nf} ]; then
+ log_warn "Warning: non-sequential frame sequence: ${nf}"
+ log_warn " previous: ${oldnf}"
+ log_warn " expected: ${expected_nf}"
+ insert_empty_frames ${expected_nf} $((${nf} -1))
+ fi
+ fi
+
+ log_dbg "New frame ID: ${nf}"
+ record_max_nf
+
+ fname=$(get_frame_name ${nf})
+
+ if [ ${dry_run} -eq 1 ]; then
+ touch ${fname}
+ else
+ convert -colorspace sRGB -page +0+0 ${dest}/background.png \
+ ${files} -background none -layers merge \
+ PNG32:${fname}
+ fi
+
+ if [ x"${dup_from}" != x"" ]; then
+ log_dbg " dup from: ${dup_from}"
+ log_dbg " dup to: ${dup_to}"
+
+ dup_start=$((${dup_from} + 1))
+ for w in $(seq ${dup_start} ${dup_to}); do
+ log_dbg "New frame ID: ${w} (duplicate)"
+
+ wfname=$(get_frame_name ${w})
+
+ # Use symlink???
+ cp ${fname} ${wfname}
+
+ nf=${w}
+ done
+ fi
+
+ files=""
+ oldnf="${nf}"
+ fi
+ done <${layers}