mirror of
https://github.com/VDR4Arch/vdr.git
synced 2023-10-10 13:36:52 +02:00
Modified handling of audio packets for radio channels in remux.c
This commit is contained in:
parent
449ffebcac
commit
0201f7cbf8
@ -977,6 +977,7 @@ Reinhard Nissl <rnissl@gmx.de>
|
|||||||
immediately with softdevices
|
immediately with softdevices
|
||||||
for fixing cDvbSpuBitmap::putPixel()
|
for fixing cDvbSpuBitmap::putPixel()
|
||||||
for implementing cAudioRepacker in remux.c
|
for implementing cAudioRepacker in remux.c
|
||||||
|
for modifying handling of audio packets for radio channels in remux.c
|
||||||
|
|
||||||
Richard Robson <richard_robson@beeb.net>
|
Richard Robson <richard_robson@beeb.net>
|
||||||
for reporting freezing replay if a timer starts while in Transfer Mode from the
|
for reporting freezing replay if a timer starts while in Transfer Mode from the
|
||||||
|
3
HISTORY
3
HISTORY
@ -3724,4 +3724,5 @@ Video Disk Recorder Revision History
|
|||||||
dynamically detects the number of slots a CI provides.
|
dynamically detects the number of slots a CI provides.
|
||||||
- Implemented cAudioRepacker for better handling of audio PES packets (thanks to
|
- Implemented cAudioRepacker for better handling of audio PES packets (thanks to
|
||||||
Reinhard Nissl).
|
Reinhard Nissl).
|
||||||
|
- Modified handling of audio packets for radio channels in remux.c (thanks to
|
||||||
|
Reinhard Nissl).
|
||||||
|
27
remux.c
27
remux.c
@ -11,7 +11,7 @@
|
|||||||
* The cDolbyRepacker code was originally written by Reinhard Nissl <rnissl@gmx.de>,
|
* The cDolbyRepacker code was originally written by Reinhard Nissl <rnissl@gmx.de>,
|
||||||
* and adapted to the VDR coding style by Klaus.Schmidinger@cadsoft.de.
|
* and adapted to the VDR coding style by Klaus.Schmidinger@cadsoft.de.
|
||||||
*
|
*
|
||||||
* $Id: remux.c 1.38 2005/08/26 13:34:07 kls Exp $
|
* $Id: remux.c 1.39 2005/08/26 13:35:53 kls Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "remux.h"
|
#include "remux.h"
|
||||||
@ -1817,19 +1817,6 @@ uchar *cRemux::Get(int &Count, uchar *PictureType)
|
|||||||
return resultBuffer->Get(Count);
|
return resultBuffer->Get(Count);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Special VPID case to enable recording radio channels:
|
|
||||||
|
|
||||||
if (isRadio) {
|
|
||||||
// XXX actually '0' should be enough, but '1' must be used with encrypted channels (driver bug?)
|
|
||||||
// XXX also allowing 0x1FFF to not break Michael Paar's original patch,
|
|
||||||
// XXX but it would probably be best to only use '0'
|
|
||||||
// Force syncing of radio channels to avoid "no useful data" error
|
|
||||||
synced = true;
|
|
||||||
if (PictureType)
|
|
||||||
*PictureType = I_FRAME;
|
|
||||||
return resultBuffer->Get(Count);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Check for frame borders:
|
// Check for frame borders:
|
||||||
|
|
||||||
if (PictureType)
|
if (PictureType)
|
||||||
@ -1874,6 +1861,18 @@ uchar *cRemux::Get(int &Count, uchar *PictureType)
|
|||||||
l = GetPacketLength(data, resultCount, i);
|
l = GetPacketLength(data, resultCount, i);
|
||||||
if (l < 0)
|
if (l < 0)
|
||||||
return resultData;
|
return resultData;
|
||||||
|
if (isRadio) {
|
||||||
|
if (!synced) {
|
||||||
|
if (PictureType)
|
||||||
|
*PictureType = I_FRAME;
|
||||||
|
resultSkipped = i; // will drop everything before this position
|
||||||
|
synced = true;
|
||||||
|
}
|
||||||
|
else if (Count)
|
||||||
|
return resultData;
|
||||||
|
else if (PictureType)
|
||||||
|
*PictureType = I_FRAME;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (synced) {
|
if (synced) {
|
||||||
if (!Count)
|
if (!Count)
|
||||||
|
Loading…
Reference in New Issue
Block a user