diff options
author | Jochen Dolze <vdr@dolze.de> | 2010-10-21 00:44:14 +0200 |
---|---|---|
committer | Jochen Dolze <vdr@dolze.de> | 2010-10-21 00:44:14 +0200 |
commit | 8cf0800ad613a165c07424b84fd84b60b586c6f8 (patch) | |
tree | 5adb123ac54e2405f225ba13d4df85ade52b1a36 /command/audio.cpp | |
parent | 0acaba790948b737a35293e5a9ac91be5de563b0 (diff) | |
download | vdr-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.cpp | 43 |
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; |