summaryrefslogtreecommitdiff
path: root/command/audio.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'command/audio.cpp')
-rw-r--r--command/audio.cpp67
1 files changed, 13 insertions, 54 deletions
diff --git a/command/audio.cpp b/command/audio.cpp
index 082010f..1b8ca5c 100644
--- a/command/audio.cpp
+++ b/command/audio.cpp
@@ -16,63 +16,37 @@
cMarkAdAudio::cMarkAdAudio(MarkAdContext *maContext)
{
macontext=maContext;
- mark.Comment=NULL;
mark.Position=0;
mark.Type=0;
- result.CommentBefore=NULL;
- result.CommentAfter=NULL;
Clear();
}
cMarkAdAudio::~cMarkAdAudio()
{
- ResetMark();
+ resetmark();
Clear();
}
void cMarkAdAudio::Clear()
{
channels=0;
- if (result.CommentBefore) free(result.CommentBefore);
- if (result.CommentAfter) free(result.CommentAfter);
- memset(&result,0,sizeof(result));
}
-void cMarkAdAudio::ResetMark()
+void cMarkAdAudio::resetmark()
{
if (!mark.Type) return;
- if (mark.Comment) free(mark.Comment);
- mark.Comment=NULL;
- mark.Position=0;
- mark.Type=0;
+ memset(&mark,0,sizeof(mark));
}
-bool cMarkAdAudio::AddMark(int Type, int Position, const char *Comment)
+void cMarkAdAudio::setmark(int type, int position, int channelsbefore, int channelsafter)
{
- if (!Comment) return false;
- if (mark.Comment)
- {
- int oldlen=strlen(mark.Comment);
- mark.Comment=(char *) realloc(mark.Comment,oldlen+10+strlen(Comment));
- if (!mark.Comment)
- {
- mark.Position=0;
- return false;
- }
- strcat(mark.Comment," [");
- strcat(mark.Comment,Comment);
- strcat(mark.Comment,"]");
- }
- else
- {
- mark.Comment=strdup(Comment);
- }
- mark.Position=Position;
- mark.Type=Type;
- return true;
+ mark.ChannelsBefore=channelsbefore;
+ mark.ChannelsAfter=channelsafter;
+ mark.Position=position;
+ mark.Type=type;
}
-bool cMarkAdAudio::ChannelChange(int a, int b)
+bool cMarkAdAudio::channelchange(int a, int b)
{
if ((a==0) || (b==0)) return false;
if (a!=b) return true;
@@ -82,33 +56,18 @@ bool cMarkAdAudio::ChannelChange(int a, int b)
MarkAdMark *cMarkAdAudio::Process(int FrameNumber, int FrameNumberNext)
{
if ((!FrameNumber) || (!FrameNumberNext)) return NULL;
- ResetMark();
+ resetmark();
- if (ChannelChange(macontext->Audio.Info.Channels,channels))
+ if (channelchange(macontext->Audio.Info.Channels,channels))
{
- char *buf=(char *) calloc(1,256);
- if (!buf) return NULL;
-
- snprintf(buf,255,"audio channel change from %i to %i (", channels,
- macontext->Audio.Info.Channels);
-
if (macontext->Audio.Info.Channels>2)
{
- char nbuf[20];
- snprintf(nbuf,sizeof(nbuf),"%i)*",FrameNumberNext);
- nbuf[19]=0;
- strcat(buf,nbuf);
- AddMark(MT_CHANNELSTART,FrameNumberNext,buf);
+ setmark(MT_CHANNELSTART,FrameNumberNext,macontext->Audio.Info.Channels,channels);
}
else
{
- char nbuf[20];
- snprintf(nbuf,sizeof(nbuf),"%i)",framelast);
- nbuf[19]=0;
- strcat(buf,nbuf);
- AddMark(MT_CHANNELSTOP,framelast,buf);
+ setmark(MT_CHANNELSTOP,framelast,macontext->Audio.Info.Channels,channels);
}
- free(buf);
}
channels=macontext->Audio.Info.Channels;