#include <ctype.h>
#include <errno.h>
+#include <fcntl.h>
#include <stdlib.h>
#include <string.h>
#include <sys/stat.h>
int FileList::open_file(int rd, int wr)
{
- int result = 0;
+ int result = 1;
// skip header for write
if(file->wr)
{
+ int fd = open(asset->path, O_CREAT+O_TRUNC+O_RDWR, 0777);
+ if( fd >= 0 ) {
+ close(fd);
+ result = 0;
// Frame files are created in write_frame and list index is created when
// file is closed.
// Look for the starting number in the path but ignore the starting character
// and total digits since these are used by the header.
- Render::get_starting_number(asset->path,
- first_number,
- number_start,
- number_digits);
- path_list.remove_all_objects();
- writer = new FrameWriter(this,
+ Render::get_starting_number(asset->path,
+ first_number, number_start, number_digits);
+ path_list.remove_all_objects();
+ writer = new FrameWriter(this,
asset->format == list_type ? file->cpus : 1);
+ }
+ else
+ eprintf(_("Error while opening \"%s\" for writing. \n%m\n"), asset->path);
}
else
if(file->rd)
asset->frame_rate = 1;
asset->video_length = -1;
}
+ result = 0;
}
+ else
+ eprintf(_("Error while opening \"%s\" for reading. \n%m\n"), asset->path);
}
else
{
Render::get_starting_number(asset->path,
- first_number,
- number_start,
- number_digits,
- 6);
+ first_number, number_start, number_digits, 6);
+ result = 0;
}
}
int FileList::write_list_header()
{
FILE *stream = fopen(asset->path, "w");
+ if( !stream ) return 1;
// Use sprintf instead of fprintf for VFS.
char string[BCTEXTLEN];
sprintf(string, "%s\n", list_prefix);
if(!temp) return result;
-// printf("FileList::read_frame frame=%d temp=%d\n",
-// frame->get_color_model(),
-// temp->get_color_model());
- if(frame->get_color_model() == temp->get_color_model())
- {
- frame->copy_from(temp);
- }
- else
- {
-// Never happens
- BC_CModels::transfer(frame->get_rows(), /* Leave NULL if non existent */
- temp->get_rows(),
- frame->get_y(), /* Leave NULL if non existent */
- frame->get_u(),
- frame->get_v(),
- temp->get_y(), /* Leave NULL if non existent */
- temp->get_u(),
- temp->get_v(),
- 0, /* Dimensions to capture from input frame */
- 0,
- asset->width,
- asset->height,
- 0, /* Dimensions to project on output frame */
- 0,
- asset->width,
- asset->height,
- temp->get_color_model(),
- frame->get_color_model(),
- 0, /* When transfering BC_RGBA8888 to non-alpha this is the background color in 0xRRGGBB hex */
- temp->get_w(), /* For planar use the luma rowspan */
- frame->get_w());
- }
+//printf("FileList::read_frame frame=%d temp=%d\n",
+// frame->get_color_model(), // temp->get_color_model());
+ frame->transfer_from(temp);
}