Ticket #1043 (open enhancement)
add support for Predefined SLConfigDescriptor
| Reported by: | puck | Owned by: | |
|---|---|---|---|
| Priority: | wish | Component: | avformat |
| Version: | git-master | Keywords: | mpegts |
| Cc: | Blocked By: | ||
| Blocking: | Reproduced by developer: | no | |
| Analyzed by developer: | no |
Description
Hi all,
I got the following output from the latest win32 static build from Zeranoes ffmpeg-git-a4c22e3-win32-static.7z (dated 2012-02-27) (upgrading from ffmpeg version git-N-30698-g39dbe9b, built on Jun 10 2011 22:10:00 with gcc 4.5.3), and also from my win32 build of FFmpeg (using the latest git version).
A search backward from this point (not extensive) revealed the problem is NOT in ffmpeg-0.7.1-win32-static, ffmpeg-0.8-win32-static, ffmpeg-git-9c2651a-win32-static, ffmpeg-git-276f43b-win32-static, ffmpeg-git-cbf914c-win32-static or ffmpeg\ffmpeg-git-e403a97-win32-static.
[mpegts @ 02ACBA60] Predefined SLConfigDescriptor not implemented. Update your FFmpeg version to the newest one from Git. If the problem still occurs, it means that your file has a feature which has not been implemented.
FFmpeg is used to convert AVC + AAC in a ts container to MPG for editing priot to using FFmpeg to convert the edited MPG to MP4.
Attached A V Input to MPG.bat, 0000.ts
Attachments
Change History
Changed 15 months ago by puck
-
attachment
ffmpeg.zip
added
comment:2 Changed 15 months ago by cehoyos
- Keywords mpegts @ 02ACBA60 removed
Please either upload the sample to http://www.datafilehost.com/ or read http://ffmpeg.org/bugreports.html to learn about incoming.
Mediainfo output and scripts are nearly always unneeded, FFmpeg command line and complete, uncut console output is always absolutely needed.
comment:3 Changed 15 months ago by puck
The requested files, Sample Video file 0000.ts and #1043 Dropped or Changed Predefined SLConfigDescriptor batch file and run results.txt have been uploaded to http://www.datafilehost.com/
All runs are in the sequence shown in the batch file.
Ignore lines beginning with “rem good set” or “rem bad set” as they were runs done yesterday and no results are provided.
Note runs 3, 4 and 7 crashed, ffmpeg could not handle my file. These cases could be cause for another ticket.
A quick question, when will Audio Codec “aac” be moved to mainstream and loose the “-strict experimental”?
set ACodec=-acodec aac -strict experimental
set AParams=-ab 320k -ar 48000 -ac 2 -vol 307
comment:4 Changed 15 months ago by cehoyos
- Status changed from new to open
- Version changed from unspecified to git-master
- Summary changed from Dropped or Changed Predefined SLConfigDescriptor to Predefined SLConfigDescriptor
I don't know if there is an unimplemented feature or a message that should be less verbose.
$ ffmpeg -i SLConfigDesciptor.ts -t 6 -f null -
ffmpeg version N-38624-gc088b7f Copyright (c) 2000-2012 the FFmpeg developers
built on Mar 7 2012 18:50:15 with gcc 4.3.2
configuration: --cc=/usr/local/gcc-4.3.2/bin/gcc --enable-gpl
libavutil 51. 42.100 / 51. 42.100
libavcodec 54. 10.100 / 54. 10.100
libavformat 54. 2.100 / 54. 2.100
libavdevice 53. 4.100 / 53. 4.100
libavfilter 2. 63.100 / 2. 63.100
libswscale 2. 1.100 / 2. 1.100
libswresample 0. 7.100 / 0. 7.100
libpostproc 52. 0.100 / 52. 0.100
[mpegts @ 0x8eb4aa0] Predefined SLConfigDescriptor
not implemented. Update your FFmpeg version to the newest one from Git. If the problem still occurs, it means that your file has a feature which has not been implemented.
[h264 @ 0x8eb8740] non-existing PPS referenced
[h264 @ 0x8eb8740] non-existing PPS 0 referenced
[h264 @ 0x8eb8740] decode_slice_header error
[h264 @ 0x8eb8740] no frame!
[h264 @ 0x8eb8740] non-existing PPS referenced
[h264 @ 0x8eb8740] non-existing PPS 0 referenced
[h264 @ 0x8eb8740] decode_slice_header error
[h264 @ 0x8eb8740] no frame!
[h264 @ 0x8eb8740] non-existing PPS referenced
[h264 @ 0x8eb8740] non-existing PPS 0 referenced
[h264 @ 0x8eb8740] decode_slice_header error
[h264 @ 0x8eb8740] no frame!
[h264 @ 0x8eb8740] non-existing PPS referenced
[h264 @ 0x8eb8740] non-existing PPS 0 referenced
[h264 @ 0x8eb8740] decode_slice_header error
[h264 @ 0x8eb8740] no frame!
[mpegts @ 0x8eb4aa0] Predefined SLConfigDescriptor
not implemented. Update your FFmpeg version to the newest one from Git. If the problem still occurs, it means that your file has a feature which has not been implemented.
[h264 @ 0x8eb8740] non-existing PPS referenced [h264 @ 0x8eb8740] non-existing PPS 0 referenced [h264 @ 0x8eb8740] decode_slice_header error [h264 @ 0x8eb8740] no frame! [h264 @ 0x8eb8740] non-existing PPS referenced [h264 @ 0x8eb8740] non-existing PPS 0 referenced [h264 @ 0x8eb8740] decode_slice_header error [h264 @ 0x8eb8740] no frame! [h264 @ 0x8eb8740] Increasing reorder buffer to 1
[mpegts @ 0x8eb4aa0] Predefined SLConfigDescriptor
not implemented. Update your FFmpeg version to the newest one from Git. If the problem still occurs, it means that your file has a feature which has not been implemented.
Last message repeated 3 times
[mpegts @ 0x8eb4aa0] max_analyze_duration 5000000 reached at 5013333
[mpegts @ 0x8eb4aa0] Predefined SLConfigDescriptor
not implemented. Update your FFmpeg version to the newest one from Git. If the problem still occurs, it means that your file has a feature which has not been implemented.
Input #0, mpegts, from 'SLConfigDesciptor.ts':
Duration: 00:00:06.55, start: 71.918456, bitrate: 3126 kb/s
Program 1
Stream #0:0[0x44](eng): Video: h264 (Main) ([27][0][0][0] / 0x001B), yuv420p, 720x576 [SAR 1:1 DAR 5:4], 26.07 fps, 25 tbr, 90k tbn, 50 tbc
Stream #0:1[0x45](eng): Audio: aac ([15][0][0][0] / 0x000F), 48000 Hz, stereo, s16, 98 kb/s
[buffer @ 0x8eb9f80] w:720 h:576 pixfmt:yuv420p tb:1/1000000 sar:1/1 sws_param:
Output #0, null, to 'pipe:':
Metadata:
encoder : Lavf54.2.100
Stream #0:0(eng): Video: rawvideo (I420 / 0x30323449), yuv420p, 720x576 [SAR 1:1 DAR 5:4], q=2-31, 200 kb/s, 90k tbn, 25 tbc
Stream #0:1(eng): Audio: pcm_s16le, 48000 Hz, stereo, s16, 1536 kb/s
Stream mapping:
Stream #0:0 -> #0:0 (h264 -> rawvideo)
Stream #0:1 -> #0:1 (aac -> pcm_s16le)
Press [q] to stop, [?] for help
[h264 @ 0x8eb8740] Missing reference picture
[h264 @ 0x8eb8740] decode_slice_header error
[h264 @ 0x8eb8740] concealing 1620 DC, 1620 AC, 1620 MV errors
[h264 @ 0x8eb8740] Missing reference picture
Last message repeated 3 times
[mpegts @ 0x8eb4aa0] Predefined SLConfigDescriptor
not implemented. Update your FFmpeg version to the newest one from Git. If the problem still occurs, it means that your file has a feature which has not been implemented.
Last message repeated 2 times
frame= 56 fps= 0 q=0.0 size= 0kB time=00:00:02.24 bitrate= 0.0kbits/s dup=4 drop=0
[mpegts @ 0x8eb4aa0] Predefined SLConfigDescriptor
not implemented. Update your FFmpeg version to the newest one from Git. If the problem still occurs, it means that your file has a feature which has not been implemented.
[mpegts @ 0x8eb4aa0] Predefined SLConfigDescriptor
not implemented. Update your FFmpeg version to the newest one from Git. If the problem still occurs, it means that your file has a feature which has not been implemented.
frame= 105 fps=105 q=0.0 size= 0kB time=00:00:04.20 bitrate= 0.0kbits/s dup=4 drop=0
[mpegts @ 0x8eb4aa0] Predefined SLConfigDescriptor
not implemented. Update your FFmpeg version to the newest one from Git. If the problem still occurs, it means that your file has a feature which has not been implemented.
[mpegts @ 0x8eb4aa0] Predefined SLConfigDescriptor
not implemented. Update your FFmpeg version to the newest one from Git. If the problem still occurs, it means that your file has a feature which has not been implemented.
frame= 151 fps=108 q=0.0 Lsize= 0kB time=00:00:05.99 bitrate= 0.0kbits/s dup=4 drop=0
video:0kB audio:1124kB global headers:0kB muxing overhead -100.000000%
comment:5 Changed 14 months ago by puck
Hi All,
It would appear that the "ERROR" is reported via the following piece of code in mpegts.c!
That is the only place "Windows Grep" could find it
Searched in the following source code libs with the results as noted .....
ffmpeg-0.5.tar.bz2 .... not found
ffmpeg-0.6.2.tar.bz2 .... not found
ffmpeg-0.6.5.tar.gz .... not found
ffmpeg-0.7.1.tar.bz2 .... not found
ffmpeg-0.9.1.tar.bz2 .... not found
ffmpeg-0.10.2.tar.bz2 .... FOUND
static int parse_MP4SLDescrTag(MP4DescrParseContext *d, int64_t off, int len)
{
Mp4Descr *descr = d->active_descr;
int predefined;
if (!descr)
return -1;
predefined = avio_r8(&d->pb);
if (!predefined) {
int lengths;
int flags = avio_r8(&d->pb);
descr->sl.use_au_start = !!(flags & 0x80);
descr->sl.use_au_end = !!(flags & 0x40);
descr->sl.use_rand_acc_pt = !!(flags & 0x20);
descr->sl.use_padding = !!(flags & 0x08);
descr->sl.use_timestamps = !!(flags & 0x04);
descr->sl.use_idle = !!(flags & 0x02);
descr->sl.timestamp_res = avio_rb32(&d->pb);
avio_rb32(&d->pb);
descr->sl.timestamp_len = avio_r8(&d->pb);
descr->sl.ocr_len = avio_r8(&d->pb);
descr->sl.au_len = avio_r8(&d->pb);
descr->sl.inst_bitrate_len = avio_r8(&d->pb);
lengths = avio_rb16(&d->pb);
descr->sl.degr_prior_len = lengths >> 12;
descr->sl.au_seq_num_len = (lengths >> 7) & 0x1f;
descr->sl.packet_seq_num_len = (lengths >> 2) & 0x1f;
} else {
av_log_missing_feature(d->s, "Predefined SLConfigDescriptor\n", 0);
}
return 0;
}
comment:6 Changed 14 months ago by puck
Hi All,
It is a simple FIX, just comment the ELSE Statement or REMOVE it.
EG /* av_log_missing_feature(d->s, "Predefined SLConfigDescriptor\n", 0); */
I like the comment as it allows an audit trail.
I obtained the latest ffmpeg from git and amended mpegts.c as below, and recompiled ffmpeg
which ran to completion without the error messages. See attached 2 pass run log.
static int parse_MP4SLDescrTag(MP4DescrParseContext *d, int64_t off, int len)
{
Mp4Descr *descr = d->active_descr;
int predefined;
if (!descr)
return -1;
predefined = avio_r8(&d->pb);
if (!predefined) {
int lengths;
int flags = avio_r8(&d->pb);
descr->sl.use_au_start = !!(flags & 0x80);
descr->sl.use_au_end = !!(flags & 0x40);
descr->sl.use_rand_acc_pt = !!(flags & 0x20);
descr->sl.use_padding = !!(flags & 0x08);
descr->sl.use_timestamps = !!(flags & 0x04);
descr->sl.use_idle = !!(flags & 0x02);
descr->sl.timestamp_res = avio_rb32(&d->pb);
avio_rb32(&d->pb);
descr->sl.timestamp_len = avio_r8(&d->pb);
descr->sl.ocr_len = avio_r8(&d->pb);
descr->sl.au_len = avio_r8(&d->pb);
descr->sl.inst_bitrate_len = avio_r8(&d->pb);
lengths = avio_rb16(&d->pb);
descr->sl.degr_prior_len = lengths >> 12;
descr->sl.au_seq_num_len = (lengths >> 7) & 0x1f;
descr->sl.packet_seq_num_len = (lengths >> 2) & 0x1f;
} else {
/* av_log_missing_feature(d->s, "Predefined SLConfigDescriptor\n", 0); */
}
return 0;
}



Batch File and Mediainfo foe 0000.ts