mirror of
https://github.com/VDR4Arch/vdr.git
synced 2023-10-10 13:36:52 +02:00
Improved AC3 decoding when replaying DVDs
This commit is contained in:
parent
89bf34e362
commit
4ea2daeebe
@ -119,3 +119,6 @@ Wolfgang Henselmann-Weiss <Wolfgang_Henselmann@betaresearch.de>
|
|||||||
|
|
||||||
Uwe Scheffler <UweScheffler@t-online.de>
|
Uwe Scheffler <UweScheffler@t-online.de>
|
||||||
for his help in keeping 'channels.conf.cable' up to date
|
for his help in keeping 'channels.conf.cable' up to date
|
||||||
|
|
||||||
|
Matjaz Thaler <matjaz.thaler@guest.arnes.si>
|
||||||
|
for improving AC3 decoding when replaying DVDs
|
||||||
|
3
HISTORY
3
HISTORY
@ -622,9 +622,10 @@ Video Disk Recorder Revision History
|
|||||||
- Fixed calculating the timeout value in cFile::FileReady() (thanks to
|
- Fixed calculating the timeout value in cFile::FileReady() (thanks to
|
||||||
Wolfgang Henselmann-Weiss).
|
Wolfgang Henselmann-Weiss).
|
||||||
|
|
||||||
2001-08-08: Version 0.91
|
2001-08-10: Version 0.91
|
||||||
|
|
||||||
- Fixed displaying colored button texts that are too long.
|
- Fixed displaying colored button texts that are too long.
|
||||||
- Suppressing replay progress display when replaying a DVD.
|
- Suppressing replay progress display when replaying a DVD.
|
||||||
- Updated channels.conf.cable (thanks to Uwe Scheffler).
|
- Updated channels.conf.cable (thanks to Uwe Scheffler).
|
||||||
- Updated French OSD texts (thanks to Jean-Claude Repetto).
|
- Updated French OSD texts (thanks to Jean-Claude Repetto).
|
||||||
|
- Improved AC3 decoding when replaying DVDs (thanks to Matjaz Thaler).
|
||||||
|
4
config.h
4
config.h
@ -4,7 +4,7 @@
|
|||||||
* See the main source file 'vdr.c' for copyright information and
|
* See the main source file 'vdr.c' for copyright information and
|
||||||
* how to reach the author.
|
* how to reach the author.
|
||||||
*
|
*
|
||||||
* $Id: config.h 1.57 2001/08/05 15:50:00 kls Exp $
|
* $Id: config.h 1.58 2001/08/10 12:40:43 kls Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef __CONFIG_H
|
#ifndef __CONFIG_H
|
||||||
@ -19,7 +19,7 @@
|
|||||||
#include "eit.h"
|
#include "eit.h"
|
||||||
#include "tools.h"
|
#include "tools.h"
|
||||||
|
|
||||||
#define VDRVERSION "0.90"
|
#define VDRVERSION "0.91"
|
||||||
|
|
||||||
#define MaxBuffer 10000
|
#define MaxBuffer 10000
|
||||||
|
|
||||||
|
13
dvbapi.c
13
dvbapi.c
@ -7,7 +7,7 @@
|
|||||||
* DVD support initially written by Andreas Schultz <aschultz@warp10.net>
|
* DVD support initially written by Andreas Schultz <aschultz@warp10.net>
|
||||||
* based on dvdplayer-0.5 by Matjaz Thaler <matjaz.thaler@guest.arnes.si>
|
* based on dvdplayer-0.5 by Matjaz Thaler <matjaz.thaler@guest.arnes.si>
|
||||||
*
|
*
|
||||||
* $Id: dvbapi.c 1.101 2001/08/06 16:24:13 kls Exp $
|
* $Id: dvbapi.c 1.102 2001/08/10 12:37:03 kls Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
//#define DVDDEBUG 1
|
//#define DVDDEBUG 1
|
||||||
@ -53,7 +53,6 @@ extern "C" {
|
|||||||
// The size of the array used to buffer video data:
|
// The size of the array used to buffer video data:
|
||||||
// (must be larger than MINVIDEODATA - see remux.h)
|
// (must be larger than MINVIDEODATA - see remux.h)
|
||||||
#define VIDEOBUFSIZE (1024*1024)
|
#define VIDEOBUFSIZE (1024*1024)
|
||||||
#define AC3_BUFFER_SIZE (6*1024*16)
|
|
||||||
|
|
||||||
// The maximum size of a single frame:
|
// The maximum size of a single frame:
|
||||||
#define MAXFRAMESIZE (192*1024)
|
#define MAXFRAMESIZE (192*1024)
|
||||||
@ -1172,7 +1171,6 @@ private:
|
|||||||
int logAudioTrack;
|
int logAudioTrack;
|
||||||
int maxAudioTrack;
|
int maxAudioTrack;
|
||||||
|
|
||||||
ac3_config_t ac3_config;
|
|
||||||
enum { AC3_STOP, AC3_START, AC3_PLAY } ac3stat;
|
enum { AC3_STOP, AC3_START, AC3_PLAY } ac3stat;
|
||||||
uchar *ac3data;
|
uchar *ac3data;
|
||||||
int ac3inp;
|
int ac3inp;
|
||||||
@ -1231,10 +1229,7 @@ cDVDplayBuffer::cDVDplayBuffer(cDvbApi *DvbApi, int VideoDev, int AudioDev, cDVD
|
|||||||
skipCnt = 0;
|
skipCnt = 0;
|
||||||
logAudioTrack = 0;
|
logAudioTrack = 0;
|
||||||
canToggleAudioTrack = true;//XXX determine from cDVD!
|
canToggleAudioTrack = true;//XXX determine from cDVD!
|
||||||
ac3_config.num_output_ch = 2;
|
ac3dec_init();
|
||||||
// ac3_config.flags = /* mm_accel() | */ MM_ACCEL_MLIB;
|
|
||||||
ac3_config.flags = 0;
|
|
||||||
ac3_init(&ac3_config);
|
|
||||||
data = new uchar[1024 * DVD_VIDEO_LB_LEN];
|
data = new uchar[1024 * DVD_VIDEO_LB_LEN];
|
||||||
ac3data = new uchar[AC3_BUFFER_SIZE];
|
ac3data = new uchar[AC3_BUFFER_SIZE];
|
||||||
ac3inp = ac3outp = 0;
|
ac3inp = ac3outp = 0;
|
||||||
@ -1823,9 +1818,9 @@ void cDVDplayBuffer::handleAC3(unsigned char *sector, int length)
|
|||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if (ac3stat == AC3_PLAY)
|
if (ac3stat == AC3_PLAY)
|
||||||
ac3_decode_data(sector, sector+length, 0, &ac3inp, &ac3outp, (char *)ac3data);
|
ac3dec_decode_data(sector, sector + length, 0, &ac3inp, &ac3outp, (char *)ac3data);
|
||||||
else if (ac3stat == AC3_START) {
|
else if (ac3stat == AC3_START) {
|
||||||
ac3_decode_data(sector, sector+length, 1, &ac3inp, &ac3outp, (char *)ac3data);
|
ac3dec_decode_data(sector, sector + length, 1, &ac3inp, &ac3outp, (char *)ac3data);
|
||||||
ac3stat = AC3_PLAY;
|
ac3stat = AC3_PLAY;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user