summaryrefslogtreecommitdiff
path: root/command/audio.cpp
diff options
context:
space:
mode:
authorJochen Dolze <vdr@dolze.de>2010-10-21 00:44:14 +0200
committerJochen Dolze <vdr@dolze.de>2010-10-21 00:44:14 +0200
commit8cf0800ad613a165c07424b84fd84b60b586c6f8 (patch)
tree5adb123ac54e2405f225ba13d4df85ade52b1a36 /command/audio.cpp
parent0acaba790948b737a35293e5a9ac91be5de563b0 (diff)
downloadvdr-plugin-markad-8cf0800ad613a165c07424b84fd84b60b586c6f8.tar.gz
vdr-plugin-markad-8cf0800ad613a165c07424b84fd84b60b586c6f8.tar.bz2
Added letterbox detection
Improved audiochannel-/aspect-/borderchange detection
Diffstat (limited to 'command/audio.cpp')
-rw-r--r--command/audio.cpp43
1 files changed, 25 insertions, 18 deletions
diff --git a/command/audio.cpp b/command/audio.cpp
index bb1b63f..fe96594 100644
--- a/command/audio.cpp
+++ b/command/audio.cpp
@@ -149,34 +149,41 @@ MarkAdMark *cMarkAdAudio::Process(int FrameNumber, int FrameNumberNext)
if (ChannelChange(macontext->Audio.Info.Channels,channels))
{
- bool start=false;
- if (macontext->Audio.Info.DolbyDigital51)
- {
- if (macontext->Audio.Info.Channels>2) start=true;
- else start=false;
- }
- else
- {
- if (macontext->Audio.Info.Channels>2) start=false;
- else start=true;
- }
+ char *buf=(char *) calloc(1,256);
+ if (!buf) return NULL;
- char *buf=NULL;
- if (asprintf(&buf,"audio channel change from %i to %i (%i)%s", channels,
- macontext->Audio.Info.Channels,
- start ? FrameNumberNext :
- framelast, start ? "*" : "")!=-1)
+ snprintf(buf,255,"audio channel change from %i to %i (", channels,
+ macontext->Audio.Info.Channels);
+
+ if (macontext->Info.Channels)
{
- if (start)
+ if (macontext->Info.Channels==macontext->Audio.Info.Channels)
{
+ char nbuf[20];
+ snprintf(nbuf,sizeof(nbuf),"%i)*",FrameNumberNext);
+ nbuf[19]=0;
+ strcat(buf,nbuf);
AddMark(MT_CHANNELSTART,FrameNumberNext,buf);
+
}
else
{
+ char nbuf[20];
+ snprintf(nbuf,sizeof(nbuf),"%i)",framelast);
+ nbuf[19]=0;
+ strcat(buf,nbuf);
AddMark(MT_CHANNELSTOP,framelast,buf);
}
- free(buf);
}
+ else
+ {
+ char nbuf[20];
+ snprintf(nbuf,sizeof(nbuf),"%i)?",FrameNumber);
+ nbuf[19]=0;
+ strcat(buf,nbuf);
+ AddMark(MT_CHANNELCHANGE,FrameNumber,buf);
+ }
+ free(buf);
}
channels=macontext->Audio.Info.Channels;