// format = FILE_MOV;
// Has to be unknown for file probing to succeed
format = FILE_UNKNOWN;
+ fformat[0] = 0;
bits = 0;
byte_order = 0;
signed_ = 0;
strcpy(vcodec, QUICKTIME_YUV2);
strcpy(acodec, QUICKTIME_TWOS);
+
+ ff_audio_options[0] = 0;
+ ff_video_options[0] = 0;
+ ff_audio_bitrate = 0;
+ ff_video_bitrate = 0;
+ ff_video_quality = 0;
+
jpeg_quality = 100;
aspect_ratio = -1;
id = EDL::next_id();
- pipe[0] = 0;
- use_pipe = 0;
-
- reset_timecode();
-
return 0;
}
index_state->reset();
}
-int Asset::reset_timecode()
-{
- strcpy(reel_name, "cin0000");
- reel_number = 0;
- tcstart = 0;
- tcend = 0;
- tcformat = 0;
-
- return 0;
-}
-
void Asset::copy_from(Asset *asset, int do_index)
{
copy_location(asset);
audio_data = asset->audio_data;
format = asset->format;
+ strcpy(fformat, asset->fformat);
channels = asset->channels;
sample_rate = asset->sample_rate;
bits = asset->bits;
strcpy(vcodec, asset->vcodec);
strcpy(acodec, asset->acodec);
+ strcpy(ff_audio_options, asset->ff_audio_options);
+ strcpy(ff_video_options, asset->ff_video_options);
+ ff_audio_bitrate = asset->ff_audio_bitrate;
+ ff_video_bitrate = asset->ff_video_bitrate;
+ ff_video_quality = asset->ff_video_quality;
+
this->audio_length = asset->audio_length;
this->video_length = asset->video_length;
int result = (!strcmp(asset.path, path) &&
format == asset.format);
+ if(result && format == FILE_FFMPEG)
+ result = !strcmp(fformat, asset.fformat);
+
if(test_audio && result)
{
result = (channels == asset.channels &&
header == asset.header &&
dither == asset.dither &&
!strcmp(acodec, asset.acodec));
+ if(result && format == FILE_FFMPEG)
+ result = !strcmp(ff_audio_options, asset.ff_audio_options) &&
+ ff_audio_bitrate == asset.ff_audio_bitrate;
+
}
width == asset.width &&
height == asset.height &&
!strcmp(vcodec, asset.vcodec));
+ if(result && format == FILE_FFMPEG)
+ result = !strcmp(ff_video_options, asset.ff_video_options) &&
+ ff_video_bitrate == asset.ff_video_bitrate &&
+ ff_video_quality == asset.ff_video_quality;
}
return result;
format = File::strtoformat(string);
use_header =
file->tag.get_property("USE_HEADER", use_header);
+ file->tag.get_property("FFORMAT", fformat);
}
else
if(file->tag.title_is("FOLDER"))
audio_length = file->tag.get_property("AUDIO_LENGTH", (int64_t)0);
acodec[0] = 0;
file->tag.get_property("ACODEC", acodec);
-
-
-
return 0;
}
file->tag.set_property("TYPE",
File::formattostr(format));
file->tag.set_property("USE_HEADER", use_header);
+ file->tag.set_property("FFORMAT", fformat);
file->append_tag();
file->append_newline();
{
format = GET_DEFAULT("FORMAT", format);
use_header = GET_DEFAULT("USE_HEADER", use_header);
+ GET_DEFAULT("FFORMAT", fformat);
}
if(do_data_types)
theora_quality = GET_DEFAULT("THEORA_QUALITY", theora_quality);
theora_sharpness = GET_DEFAULT("THEORA_SHARPNESS", theora_sharpness);
theora_keyframe_frequency = GET_DEFAULT("THEORA_KEYFRAME_FREQUENCY", theora_keyframe_frequency);
- theora_keyframe_force_frequency = GET_DEFAULT("THEORA_FORCE_KEYFRAME_FEQUENCY", theora_keyframe_force_frequency);
-
+ theora_keyframe_force_frequency = GET_DEFAULT("THEORA_FORCE_KEYFRAME_FREQUENCY", theora_keyframe_force_frequency);
+ GET_DEFAULT("FF_AUDIO_OPTIONS", ff_audio_options);
+ ff_audio_bitrate = GET_DEFAULT("FF_AUDIO_BITRATE", ff_audio_bitrate);
+ GET_DEFAULT("FF_VIDEO_OPTIONS", ff_video_options);
+ ff_video_bitrate = GET_DEFAULT("FF_VIDEO_BITRATE", ff_video_bitrate);
+ ff_video_quality = GET_DEFAULT("FF_VIDEO_QUALITY", ff_video_quality);
mp3_bitrate = GET_DEFAULT("MP3_BITRATE", mp3_bitrate);
mp4a_bitrate = GET_DEFAULT("MP4A_BITRATE", mp4a_bitrate);
{
UPDATE_DEFAULT("FORMAT", format);
UPDATE_DEFAULT("USE_HEADER", use_header);
+ UPDATE_DEFAULT("FFORMAT", fformat);
}
if(do_data_types)
UPDATE_DEFAULT("VORBIS_BITRATE", vorbis_bitrate);
UPDATE_DEFAULT("VORBIS_MAX_BITRATE", vorbis_max_bitrate);
+ UPDATE_DEFAULT("FF_AUDIO_OPTIONS", ff_audio_options);
+ UPDATE_DEFAULT("FF_AUDIO_BITRATE", ff_audio_bitrate);
+ UPDATE_DEFAULT("FF_VIDEO_OPTIONS", ff_video_options);
+ UPDATE_DEFAULT("FF_VIDEO_BITRATE", ff_video_bitrate);
+ UPDATE_DEFAULT("FF_VIDEO_QUALITY", ff_video_quality);
UPDATE_DEFAULT("THEORA_FIX_BITRATE", theora_fix_bitrate);
UPDATE_DEFAULT("THEORA_BITRATE", theora_bitrate);
UPDATE_DEFAULT("THEORA_QUALITY", theora_quality);
UPDATE_DEFAULT("THEORA_SHARPNESS", theora_sharpness);
UPDATE_DEFAULT("THEORA_KEYFRAME_FREQUENCY", theora_keyframe_frequency);
- UPDATE_DEFAULT("THEORA_FORCE_KEYFRAME_FEQUENCY", theora_keyframe_force_frequency);
+ UPDATE_DEFAULT("THEORA_FORCE_KEYFRAME_FREQUENCY", theora_keyframe_force_frequency);
fprintf(fp," this=%p path=%s\n", this, path);
fprintf(fp," index_status %d\n", index_state->index_status);
fprintf(fp," format %d\n", format);
+ fprintf(fp," fformat=\"%s\"\n", fformat);
+ fprintf(fp," ff_audio_options=\"%s\"\n", ff_audio_options);
+ fprintf(fp," ff_audio_bitrate=%d\n", ff_audio_bitrate);
+ fprintf(fp," ff_video_options=\"%s\"\n", ff_video_options);
+ fprintf(fp," ff_video_bitrate=%d\n", ff_video_bitrate);
+ fprintf(fp," ff_video_quality=%d\n", ff_video_quality);
fprintf(fp," audio_data %d channels %d samplerate %d bits %d"
" byte_order %d signed %d header %d dither %d acodec %c%c%c%c\n",
audio_data, channels, sample_rate, bits, byte_order, signed_,