GNOME Bugzilla – Bug 562163
theoraenc likely ignoring segments
Last modified: 2011-06-29 04:01:59 UTC
Please describe the problem: (10:38:07 AM) justin}: well, it seems the rtp payloader is getting timestamps that only increase (10:38:29 AM) justin}: so after the loop, they fall out of range and gst_segment_to_running_time() starts returning -1 (10:38:38 AM) wtay: theoraenc is likely ignoreing the segments (10:39:15 AM) justin}: wtay: is that a bug? (10:39:22 AM) wtay: yeps (10:39:38 AM) wtay: file it and I'll fix it tomorrow Steps to reproduce: Actual results: Expected results: Does this happen every time? Other information:
* ext/theora/gsttheoraenc.h: * ext/theora/theoraenc.c: (gst_theora_enc_init), (theora_buffer_from_packet), (theora_push_packet), (theora_enc_sink_event), (theora_enc_is_discontinuous), (theora_enc_chain): Parse segment events. Pass incomming buffer timestamps to outgoing buffers. Use the running_time to construct the granulepos. Fixes #562163.
Yesterday, I tested looping video using the following pipeline: filesrc ! oggdemux ! theoradec ! theoraenc ! theoradec ! ffmpegcolorspace ! ximagesink An 8-second video clip was used as input. A frame about 2 seconds into the clip is immediately shown and playback is frozen on that frame for about 2 seconds. Then, the clip plays normally from that point on for the next 6 seconds or so. Finally, a segment-done event is received, but requests to loop the video seem to be ignored. No new frames are ever displayed. Once the first segment-done event has been received, further segment-done events are repeatedly received (about one event every second). Removing the redundant theoraenc/dec from the pipeline causes the playback and looping to work perfectly.
Is this still a problem? Could you attach a sample application to reproduce the behaviour?
Closing this bug report as no further information has been provided. Please feel free to reopen this bug if you can provide the information asked for. Thanks!