mirror of
https://github.com/mpv-player/mpv
synced 2025-03-22 11:18:32 +00:00
Allow user to disable writing of ODML index
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@12364 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
parent
4058e90588
commit
feaead4393
@ -3974,6 +3974,10 @@ Do not automatically insert the expand filter into the MEncoder filter chain.
|
||||
Useful to control at which point of the filter chain subtitles are rendered
|
||||
when hardcoding subtitles onto a movie.
|
||||
.TP
|
||||
.B \-noodml
|
||||
Do not write OpenDML index for files >1GB.
|
||||
Applies to \-of avi only.
|
||||
.TP
|
||||
.B \-noskip
|
||||
Do not skip frames.
|
||||
.TP
|
||||
|
@ -161,6 +161,7 @@ m_option_t of_conf[]={
|
||||
};
|
||||
|
||||
extern float avi_aspect_override; /* defined in libmpdemux/muxer_avi.c */
|
||||
extern int write_odml; /* defined in libmpdemux/muxer_avi.c */
|
||||
|
||||
m_option_t mencoder_opts[]={
|
||||
/* name, pointer, type, flags, min, max */
|
||||
@ -210,6 +211,9 @@ m_option_t mencoder_opts[]={
|
||||
{"encodedups", &encode_duplicates, CONF_TYPE_FLAG, 0, 0, 1, NULL},
|
||||
{"noencodedups", &encode_duplicates, CONF_TYPE_FLAG, 0, 1, 0, NULL},
|
||||
|
||||
{"odml", &write_odml, CONF_TYPE_FLAG, 0, 0, 1, NULL},
|
||||
{"noodml", &write_odml, CONF_TYPE_FLAG, 0, 1, 0, NULL},
|
||||
|
||||
// info header strings
|
||||
{"info", info_conf, CONF_TYPE_SUBCONFIG, 0, 0, 0, NULL},
|
||||
|
||||
|
@ -33,6 +33,7 @@ extern char *info_comment;
|
||||
#define MOVIALIGN 0x00001000
|
||||
|
||||
float avi_aspect_override = -1.0;
|
||||
int write_odml = 1;
|
||||
|
||||
struct avi_odmlidx_entry {
|
||||
uint64_t ofs;
|
||||
@ -159,7 +160,7 @@ if(len>0){
|
||||
}
|
||||
|
||||
static void write_avi_list(FILE *f,unsigned int id,int len);
|
||||
static void avifile_write_index(muxer_t *muxer);
|
||||
static void avifile_write_standard_index(muxer_t *muxer);
|
||||
|
||||
static void avifile_odml_new_riff(muxer_t *muxer)
|
||||
{
|
||||
@ -198,9 +199,9 @@ static void avifile_write_chunk(muxer_stream_t *s,size_t len,unsigned int flags)
|
||||
if (vsi->riffofspos == 0) {
|
||||
rifflen += 8+muxer->idx_pos*sizeof(AVIINDEXENTRY);
|
||||
}
|
||||
if (rifflen + paddedlen > ODML_CHUNKLEN) {
|
||||
if (rifflen + paddedlen > ODML_CHUNKLEN && write_odml == 1) {
|
||||
if (vsi->riffofspos == 0) {
|
||||
avifile_write_index(muxer);
|
||||
avifile_write_standard_index(muxer);
|
||||
}
|
||||
avifile_odml_new_riff(muxer);
|
||||
}
|
||||
@ -624,13 +625,7 @@ static void avifile_odml_write_index(muxer_t *muxer){
|
||||
muxer->file_end=ftello(muxer->file);
|
||||
}
|
||||
|
||||
static void avifile_write_index(muxer_t *muxer){
|
||||
|
||||
if(muxer->file_end > ODML_CHUNKLEN &&
|
||||
muxer->idx && muxer->idx_pos>0) {
|
||||
avifile_odml_write_index(muxer);
|
||||
return;
|
||||
}
|
||||
static void avifile_write_standard_index(muxer_t *muxer){
|
||||
|
||||
muxer->movi_end=ftello(muxer->file);
|
||||
if(muxer->idx && muxer->idx_pos>0){
|
||||
@ -646,6 +641,16 @@ static void avifile_write_index(muxer_t *muxer){
|
||||
muxer->file_end=ftello(muxer->file);
|
||||
}
|
||||
|
||||
static void avifile_write_index(muxer_t *muxer){
|
||||
struct avi_stream_info *vsi = muxer->def_v->priv;
|
||||
|
||||
if (vsi->riffofspos > 0){
|
||||
avifile_odml_write_index(muxer);
|
||||
} else {
|
||||
avifile_write_standard_index(muxer);
|
||||
}
|
||||
}
|
||||
|
||||
void muxer_init_muxer_avi(muxer_t *muxer){
|
||||
muxer->cont_new_stream = &avifile_new_stream;
|
||||
muxer->cont_write_chunk = &avifile_write_chunk;
|
||||
|
Loading…
Reference in New Issue
Block a user