Opened 12 years ago

Last modified 11 years ago

#1043 open enhancement

add support for Predefined SLConfigDescriptor

Reported by: Mark 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 (4)

ffmpeg.zip (1.6 KB ) - added by Mark 12 years ago.
Batch File and Mediainfo foe 0000.ts
SLConfigDesciptor.ts (2.4 MB ) - added by Carl Eugen Hoyos 12 years ago.
mpegts.c.TXT (1.3 KB ) - added by Mark 12 years ago.
2_pass_run_log.txt (18.6 KB ) - added by Mark 12 years ago.

Change History (12)

by Mark, 12 years ago

Attachment: ffmpeg.zip added

Batch File and Mediainfo foe 0000.ts

comment:1 by Mark, 12 years ago

send email for 0000.ts file is 4224kB

comment:2 by Carl Eugen Hoyos, 12 years ago

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 by Mark, 12 years ago

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

http://www.datafilehost.com/download-4bd11e99.html

Download: http://www.datafilehost.com/get.php?file=4bd11e99

by Carl Eugen Hoyos, 12 years ago

Attachment: SLConfigDesciptor.ts added

comment:4 by Carl Eugen Hoyos, 12 years ago

Status: newopen
Summary: Dropped or Changed Predefined SLConfigDescriptorPredefined SLConfigDescriptor
Version: unspecifiedgit-master

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%

by Mark, 12 years ago

Attachment: mpegts.c.TXT added

comment:5 by Mark, 12 years ago

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;

}

by Mark, 12 years ago

Attachment: 2_pass_run_log.txt added

comment:6 by Mark, 12 years ago

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;

}

comment:7 by Michael Niedermayer, 12 years ago

Summary: Predefined SLConfigDescriptoradd support for Predefined SLConfigDescriptor
Type: defectenhancement

comment:8 by Carl Eugen Hoyos, 11 years ago

Component: undeterminedavformat
Keywords: mpegts added
Priority: normalwish
Note: See TracTickets for help on using tickets.