Add compile time selectable h264 trickspeed workaround.

This commit is contained in:
Johns 2013-07-24 20:06:05 +02:00
parent c646007db1
commit 93357fb1cd
4 changed files with 6 additions and 3 deletions

View File

@ -1,6 +1,7 @@
User johns User johns
Date: Date:
Add compile time selectable h264 trickspeed workaround.
Use ffmpeg new names AVCodecID, AV_CODEC_... . Use ffmpeg new names AVCodecID, AV_CODEC_... .
Fix bug: video lagging behind after recording stop. Fix bug: video lagging behind after recording stop.
Reduce PES error messages. Reduce PES error messages.

View File

@ -35,6 +35,7 @@ CONFIG += -DUSE_PIP # PIP support
#CONFIG += -DNO_TS_AUDIO # disable ts audio parser #CONFIG += -DNO_TS_AUDIO # disable ts audio parser
#CONFIG += -DUSE_TS_VIDEO # build new ts video parser #CONFIG += -DUSE_TS_VIDEO # build new ts video parser
#CONFIG += -DUSE_MPEG_COMPLETE # support only complete mpeg packets #CONFIG += -DUSE_MPEG_COMPLETE # support only complete mpeg packets
#CONFIG += -DH264_EOS_TRICKSPEED # insert seq end packets for trickspeed
CONFIG += -DUSE_VDR_SPU # use VDR SPU decoder. CONFIG += -DUSE_VDR_SPU # use VDR SPU decoder.
#CONFIG += -DUSE_SOFTLIMIT # (tobe removed) limit the buffer fill #CONFIG += -DUSE_SOFTLIMIT # (tobe removed) limit the buffer fill

1
Todo
View File

@ -44,6 +44,7 @@ video:
crash with ffmpeg without vaapi and vdpau. crash with ffmpeg without vaapi and vdpau.
still-picture of PES recordings should use VideoMpegEnqueue. still-picture of PES recordings should use VideoMpegEnqueue.
convert PIX_FMT_... PixelFormat to new names AV_PIX_FMT_..., AVPixelFormat. convert PIX_FMT_... PixelFormat to new names AV_PIX_FMT_..., AVPixelFormat.
atmo service support 3D grab
vdpau: vdpau:
software deinterlace path not working. software deinterlace path not working.

View File

@ -2224,7 +2224,7 @@ int PlayVideo3(VideoStream * stream, const uint8_t * data, int size)
&& check[1] == 0x09 && !check[3] && !check[4]) { && check[1] == 0x09 && !check[3] && !check[4]) {
// old PES HDTV recording z == 2 -> stronger check! // old PES HDTV recording z == 2 -> stronger check!
if (stream->CodecID == AV_CODEC_ID_H264) { if (stream->CodecID == AV_CODEC_ID_H264) {
#if 0 #ifdef H264_EOS_TRICKSPEED
// this should improve ffwd+frew, but produce crash in ffmpeg // this should improve ffwd+frew, but produce crash in ffmpeg
// with some streams // with some streams
if (stream->TrickSpeed && pts != (int64_t) AV_NOPTS_VALUE) { if (stream->TrickSpeed && pts != (int64_t) AV_NOPTS_VALUE) {
@ -2235,8 +2235,8 @@ int PlayVideo3(VideoStream * stream, const uint8_t * data, int size)
// 1-5=SLICE 6=SEI 7=SPS 8=PPS // 1-5=SLICE 6=SEI 7=SPS 8=PPS
// NAL SPS sequence parameter set // NAL SPS sequence parameter set
if ((check[7] & 0x1F) == 0x07) { if ((check[7] & 0x1F) == 0x07) {
VideoNextPacket(AV_CODEC_ID_H264); VideoNextPacket(stream, AV_CODEC_ID_H264);
VideoEnqueue(AV_NOPTS_VALUE, seq_end_h264, VideoEnqueue(stream, AV_NOPTS_VALUE, seq_end_h264,
sizeof(seq_end_h264)); sizeof(seq_end_h264));
} }
} }