{
m_video->stop();
m_video=0;
+ m_video_event_conn=0;
}
if (m_changed & changePCR)
{
{
eDebug("STOP");
m_video->stop();
+ m_video = 0;
+ m_video_event_conn = 0;
}
- m_video = 0;
if ((m_vpid >= 0) && (m_vpid < 0x1FFF))
{
eDebug("new video");
{
fseek(f, 0, SEEK_END);
int length = ftell(f);
- unsigned char *buffer = new unsigned char[length*3+9];
+ unsigned char *buffer = new unsigned char[length*2+9];
if (ioctl(vfd, VIDEO_FAST_FORWARD, 1) < 0)
eDebug("VIDEO_FAST_FORWARD failed (%m)");
if (ioctl(vfd, VIDEO_SELECT_SOURCE, VIDEO_SOURCE_MEMORY) < 0)
eDebug("VIDEO_PLAY failed (%m)");
int cnt=0;
int pos=0;
- while(cnt<3)
+ while(cnt<2)
{
int rd;
fseek(f, 0, SEEK_SET);
+ if (!cnt)
+ {
+ buffer[pos++]=0;
+ buffer[pos++]=0;
+ buffer[pos++]=1;
+ buffer[pos++]=0xE0;
+ buffer[pos++]=(length*2)>>8;
+ buffer[pos++]=(length*2)&0xFF;
+ buffer[pos++]=0x80;
+ buffer[pos++]=0;
+ buffer[pos++]=0;
+ }
while(1)
{
- if (!cnt)
- {
- buffer[pos++]=0;
- buffer[pos++]=0;
- buffer[pos++]=1;
- buffer[pos++]=0xE0;
- buffer[pos++]=(length*3)>>8;
- buffer[pos++]=(length*3)&0xFF;
- buffer[pos++]=0x80;
- buffer[pos++]=0;
- buffer[pos++]=0;
- }
rd = fread(buffer+pos, 1, length, f);
if (rd > 0)
pos += rd;