[gst-devel] new plugin: fakefilter (id3demux seek problem)

Jason Toffaletti jason at subterrific.net
Mon Oct 25 15:43:01 CEST 2004


I am now not so sure I can use identity and I might need the more
powerful approach I was going after in fakefilter. Here is my current
problem:

I've got a pipeline filesrc ! identity ! id3demux and I want my identity
hand-off to hash the buffers passing through it to create an md5sum of
the file. The problem is that the entire file does not serially pass
through identity because of the way id3demux seeks. Here is some example
output:

playing pipeline...
buf size: 4096 offset: 0 timestamp: -1 flags: 0x0
timestamp in seconds: 18446744073
buf size: 4096 offset: 4096 timestamp: -1 flags: 0x0
timestamp in seconds: 18446744073
buf size: 4096 offset: 8192 timestamp: -1 flags: 0x0
timestamp in seconds: 18446744073
buf size: 4096 offset: 12288 timestamp: -1 flags: 0x0
timestamp in seconds: 18446744073
buf size: 4096 offset: 16384 timestamp: -1 flags: 0x0
timestamp in seconds: 18446744073
buf size: 4096 offset: 20480 timestamp: -1 flags: 0x0
timestamp in seconds: 18446744073
buf size: 4096 offset: 24576 timestamp: -1 flags: 0x0
timestamp in seconds: 18446744073
buf size: 4096 offset: 28672 timestamp: -1 flags: 0x0
timestamp in seconds: 18446744073
buf size: 4096 offset: 32768 timestamp: -1 flags: 0x0
timestamp in seconds: 18446744073
buf size: 4096 offset: 36864 timestamp: -1 flags: 0x0
timestamp in seconds: 18446744073
buf size: 4096 offset: 40960 timestamp: -1 flags: 0x0
timestamp in seconds: 18446744073
buf size: 128 offset: 5015424 timestamp: -1 flags: 0x0
timestamp in seconds: 18446744073
buf size: 4096 offset: 564 timestamp: -1 flags: 0x0
timestamp in seconds: 18446744073
found tags
title
artist
album
track-count
track-number
comment
genre
buf size: 4096 offset: 4660 timestamp: -1 flags: 0x0
timestamp in seconds: 18446744073
buf size: 4096 offset: 8756 timestamp: -1 flags: 0x0
timestamp in seconds: 18446744073
buf size: 4096 offset: 12852 timestamp: -1 flags: 0x0
timestamp in seconds: 18446744073
buf size: 4096 offset: 16948 timestamp: -1 flags: 0x0
timestamp in seconds: 18446744073
buf size: 4096 offset: 21044 timestamp: -1 flags: 0x0
timestamp in seconds: 18446744073
buf size: 4096 offset: 25140 timestamp: -1 flags: 0x0
timestamp in seconds: 18446744073
buf size: 4096 offset: 29236 timestamp: -1 flags: 0x0
timestamp in seconds: 18446744073
buf size: 4096 offset: 33332 timestamp: -1 flags: 0x0
timestamp in seconds: 18446744073
buf size: 4096 offset: 37428 timestamp: -1 flags: 0x0
timestamp in seconds: 18446744073
buf size: 4096 offset: 41524 timestamp: -1 flags: 0x0

Notice that it starts at offset 0, then sometime later it seeks to the
end of the file, then it seeks back to the beginning but starts reading
after the id3 tags instead of at the beginning of the file. This makes
it very difficult to generate an md5sum for the entire file using these
buffers. I suspect I will need to issue my own commands to fetch
buffers? I need to learn more about Gstreamer.

- Jason T.

On Wed, 2004-10-20 at 23:10 +0200, Ronald S. Bultje wrote:
> Hi Jason,
> 
> On Wed, 2004-10-20 at 22:23, Jason Toffaletti wrote:
> > identity doesn't emit a signal inside change-state, and I had planned on
> > giving fakefilter the option of modifying the data. I wasn't aware of
> > identity before, is there some documentation on plugins besides
> > gst-inspect?
> 
> Actually, no. I guess we need that.
> 
> Identity emits the 'state-changed' signal after a successful state
> change. There is indeed no in-plugin signal during state changing.
> 
> Ronald




More information about the gstreamer-devel mailing list