bugGnash - The GNU Flash player - Bugs: bug #24540, Late Audio/Video frames in...

 
 

bug #24540: Late Audio/Video frames in external media files ignored

Submitted by:  Rino <ordeal>
Submitted on:  Sun 12 Oct 2008 07:51:26 PM UTC  
 
Category: videoSeverity: 5 - Blocker
Release: trunkStatus: Fixed
Privacy: PublicAssigned to: Sandro Santilli <strk>
Open/Closed: Closed

Add a New Comment(Rich Markup)
   

You are not logged in

Please log in, so followups can be emailed to you.

 

(Jump to the original submission Jump to the original submission)

Tue 28 Oct 2008 05:13:26 PM UTC, comment #16:

Thanks for testing

Sandro Santilli <strk>
Project MemberIn charge of this item.
Tue 28 Oct 2008 05:10:41 PM UTC, comment #15:

Sandro, ok then, the current bug is fixed.

Rino <ordeal>
Tue 28 Oct 2008 04:52:56 PM UTC, comment #14:

Rino, for this bug just tell us if the bug you were experiencing was fixed.

As for the ERROR lines, yes, you may file another bug
about scary ERROR messages when everything works fine :)

I guess we shouldn't ERROR if it's not an ERROR.

In this case, one is a true false error, the others
are malformed format errors, which should probably
use a specialized channel and not be printed unless
user opted-in for them.

Sandro Santilli <strk>
Project MemberIn charge of this item.
Tue 28 Oct 2008 04:42:14 PM UTC, comment #13:

I can't find the old ERROR lines related to unexpected data inside the stream,the only ERROR messages in gnash-dbg.log i find are:

9598:805620416] 17:43:36: ERROR: No Video info in video definition
9598:805620416] 17:43:36: ERROR: SharedObject::readSOL: file ends before data segment
9598:826680416] 17:43:37: ERROR: Corrupt FLV: Meta tag unterminated!
9598:826680416] 17:43:37: ERROR: Corrupt FLV: previous tag size record (0) unexpected (actual size: 22007)
9598:805620416] 17:43:38: ERROR: AMF0 read: premature end of input reading String type
9598:805620416] 17:43:38: ERROR: Could not convert FLV metatag to as_value, but will try passing it anyway. It's an [object(gnash::Array_as):0x106a3d50]

Tell me whether i'm supposed to open another discussion about them.

Rino <ordeal>
Fri 24 Oct 2008 10:35:44 PM UTC, comment #12:

Rino, please test again, we don't probe anymore in the constructor, don't change flags found in header and this
should result in no errors about audio/video frames.

Sandro Santilli <strk>
Project MemberIn charge of this item.
Fri 24 Oct 2008 07:33:49 PM UTC, comment #11:

You're right the messages are a bit dumb.

Basically what happens is that the probing code, not finding
any video or audio frame in the probe buffer, change expectance of finding any, and the later finder thinks they were unexpected :)

The errors will be fixed as soon as I drop probing completely.

Sandro Santilli <strk>
Project MemberIn charge of this item.
Fri 24 Oct 2008 07:31:15 PM UTC, comment #10:

Stream is correctly rendered now, nevertheless i get the some unexpected data error messages in log file even for a working video:

23496:805619168] 21:23:08: ERROR: Corrupt FLV: Meta tag unterminated!
23496:805619168] 21:23:08: ERROR: Corrupt FLV: previous tag size record (0) unexpected (actual size: 21539)
23496:805619168] 21:23:08: ERROR: Couldn't find any video frame in the first 8192 bytes of FLV advertising video in header
23496:805619168] 21:23:08: ERROR: Couldn't find any audio frame in the first 8192 bytes of FLV advertising audio in header
23496:827323488] 21:23:08: ERROR: Unexpected audio tag found at offset 21552 FLV stream advertising no audio in header. We'll warn only once for each FLV, expecting any further audio tag.
23496:827323488] 21:23:08: ERROR: Unexpected video tag found at offset 21594 of FLV stream advertising no video in header. We'll warn only once per FLV, expecting any further video tag.

Rino <ordeal>
Fri 24 Oct 2008 01:33:57 PM UTC, comment #9:

Committed revision 10075.

Late A/V frames should be used now.

Sandro Santilli <strk>
Project MemberIn charge of this item.
Thu 23 Oct 2008 04:21:12 PM UTC, comment #8:

The attached patch adds support for late A/V frames.
It's all in NetStream, and doesn't really touch the PlayHead.
This means the whole concept of "consumers" is broken, but surprisingly (sorry to say, since I added that concept) everything seems to work.

I'd like to think more about why the 'consumers' concept was needed
and try to trigger some regression about it before committing this.
Anyway, you may want to try the patch, also completely dropping
any initial probing in MediaParser (that part not implemented in the patch)

(file #16723)

Sandro Santilli <strk>
Project MemberIn charge of this item.
Thu 23 Oct 2008 03:12:16 PM UTC, comment #7:

I'm working on it. Marking is blocker as I think we want 0.8.5 to have this fixed.

Sandro Santilli <strk>
Project MemberIn charge of this item.
Mon 13 Oct 2008 10:12:51 AM UTC, comment #6:

Jason: yes, of course :) Want to give it a try ?
Here's the recipe:

- Improve the PlayHead class interface which is in libcore/asobj/NetStream.h so it allows "plugging" new consumers (it currently takes that information trough an 'init' method instead).
- Have NetStream class query the MediaParser for wheter audio and video are present in case they weren't last time it checked
- Have NetStream "plug" the new consumer in the PlayHead

That's the overall process. Details might kill you later,
but, well, hopefully not, and if they do we'll do more cleanups
about that.

Sandro Santilli <strk>
Project MemberIn charge of this item.
Mon 13 Oct 2008 09:34:54 AM UTC, comment #5:

The original flv stream is at http://www.youtube.com/get_video?video_id=zcu7BVG7JE4&t=OEgsToPDskK1agCxmCe_b3aEUEO5Lqm7 , i stored a copy of it at http://www.mediafire.com/?zdmmnzgmyui

Rino <ordeal>
Mon 13 Oct 2008 06:38:58 AM UTC, comment #4:

We've really gotta change the way we handle streaming media.

I don't know much about how AS is supposed to work, or how FFMPEG works, but it seems to me if we start finding audio data in a stream that we thought was video-only we should play that sound.

ditto for streams that we thought were audio-only.

Scanning a certain number of bytes at the top doesn't seem to work, at least not as currently implemented, and blocking gnash while this many bytes is downloaded is lame.

I think we really need to change the code so it can start playing, even without knowing for sure what streams (audio and or video) will be found.

Seems the current code can detect when there is audio/video data we aren't expecting. I think gnash needs to react to this by playing that unexpected data.

Jason Woofenden <jasonwoof>
Mon 13 Oct 2008 12:17:23 AM UTC, comment #3:

Ok, this is interesting:

ERROR: Couldn't find any video frame in the first 8192 bytes of FLV advertising video in header
ERROR: Couldn't find any audio frame in the first 8192 bytes of FLV advertising audio in header
ERROR: Unexpected audio tag found at offset 22020 FLV stream advertising no audio in header. We'll warn only once for each FLV, expecting any further audio tag.
ERROR: Unexpected video tag found at offset 22244 of FLV stream advertising no video in header. We'll warn only once per FLV, expecting any further video tag.

Now, we'd be interested in the actual FLV file.
You should find it somewhere in the logfile, tagged with a SECURITY label. Should be an URL containing a 'get_video?' string.

Best is if you can actually wget the FLV, if you can't
send us the url and we'll try (those urls expire...)

Sandro Santilli <strk>
Project MemberIn charge of this item.
Sun 12 Oct 2008 10:38:38 PM UTC, comment #2:

ERROR lines are:
9392:805618176] 00:40:19: ERROR: No Video info in video definition
9392:805618176] 00:40:19: ERROR: SharedObject::readSOL: file ends before data segment
9392:805618176] 00:40:19: ERROR: Couldn't read SOL /tmp////restore.sol, will create on flush/exit
9392:805618176] 00:40:19: ERROR: Couldn't read SOL /tmp////videostats.sol, will create on flush/exit
9392:805618176] 00:40:20: ERROR: Couldn't find any video frame in the first 8192 bytes of FLV advertising video in header
9392:805618176] 00:40:20: ERROR: Couldn't find any audio frame in the first 8192 bytes of FLV advertising audio in header
9392:825627744] 00:40:20: ERROR: Unexpected audio tag found at offset 22020 FLV stream advertising no audio in header. We'll warn only once for each FLV, expecting any further audio tag.
9392:825627744] 00:40:20: ERROR: Unexpected video tag found at offset 22244 of FLV stream advertising no video in header. We'll warn only once per FLV, expecting any further video tag.
9392:805618176] 00:40:20: ERROR: AMF0 read: premature end of input reading String type
9392:805618176] 00:40:20: ERROR: Could not convert FLV metatag to as_value, but will try passing it anyway. It's an [object(gnash::Array_as):0x107858c8]

Rino <ordeal>
Sun 12 Oct 2008 09:38:11 PM UTC, comment #1:

With edit->preferences (right-click menu) you can set verbosity level to 2 and have logs written to a file.
Look in that file (a reload of the page would force re-reading of the modified configuration) for ERROR lines.
If you get no ERROR line please attach the log file.

Sandro Santilli <strk>
Project MemberIn charge of this item.
Sun 12 Oct 2008 07:51:26 PM UTC, original submission:

architecture: ppc
compiled both with gst and ffmpeg

On most of youtube videos, like the one on the attached screenshot, the progress bar advances downloading the video, but it doesn't appear on the window.

Rino <ordeal>

 

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach File(s):
   
   
Comment:
   

Attached Files
file #16723:  LateAVFrames.patch added by strk (5KiB - text/x-patch)
file #16660:  Immagine.png added by ordeal (7KiB - image/png)

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -unavailable- added by jasonwoof
  • -unavailable- added by jasonwoof (Posted a comment)
  • -unavailable- added by strk (Posted a comment)
  • -unavailable- added by ordeal (Submitted the item)
  •  

    Do you think this task is very important?
    If so, you can click here to add your encouragement to it.
    This task has 0 encouragements so far.

    Only logged-in users can vote.

     

    Please enter the title of George Orwell's famous dystopian book (it's a date):

     

     

    Follow 12 latest changes.

    Date Changed By Updated Field Previous Value => Replaced By
    Tue 28 Oct 2008 05:13:26 PM UTCstrkStatusReady For Test=>Fixed
      Open/ClosedOpen=>Closed
    Fri 24 Oct 2008 01:33:57 PM UTCstrkStatusIn Progress=>Ready For Test
    Thu 23 Oct 2008 04:21:11 PM UTCstrkAttached File-=>Added LateAVFrames.patch, #16723
    Thu 23 Oct 2008 03:12:16 PM UTCstrkSeverity3 - Normal=>5 - Blocker
      StatusConfirmed=>In Progress
      Assigned toNone=>strk
    Mon 13 Oct 2008 10:12:51 AM UTCstrkStatusNeed Info=>Confirmed
      SummaryYoutube not playing while download goes on=>Late Audio/Video frames in external media files ignored
    Mon 13 Oct 2008 06:38:59 AM UTCjasonwoofCarbon-Copy-=>Added jasonwoof
    Sun 12 Oct 2008 09:38:11 PM UTCstrkStatusNone=>Need Info
    Sun 12 Oct 2008 07:51:26 PM UTCordealAttached File-=>Added Immagine.png, #16660

    Back to the top


    Powered by Savane 3.1-cleanup1