kimjinchoul / ossbuild

Automatically exported from code.google.com/p/ossbuild
0 stars 0 forks source link

gst_element_query_duration always returns false. #29

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
OSSBuild, updated from trunk, svn rev. 545
"Rebuild all" in MSVS 2008 SP1.
All previous versions of the GStreamer are removed, the environment variables 
are cleared 
before install.

gst_element_query_duration always returns false in my app.

I tested it on avi, mpg, mp4, mp3 and ogg files.

Original issue reported on code.google.com by wl2776@gmail.com on 19 Mar 2010 at 9:24

GoogleCodeExporter commented 9 years ago
Sorry, forgot to mention. I create an instance of playbin2.

Original comment by wl2776@gmail.com on 19 Mar 2010 at 9:24

GoogleCodeExporter commented 9 years ago
Since the _query_duration function is a simple wrapper, I've copied it in my 
code and have seen that its call

   gst_element_query (element, query) 

returns with the debug message

playbin2: gstplaybin2.c:2064:gst_play_bin_query:<playbin0> Taking cached 
duration because of pending 
group switch: 0

Original comment by wl2776@gmail.com on 19 Mar 2010 at 10:15

GoogleCodeExporter commented 9 years ago
[deleted comment]
GoogleCodeExporter commented 9 years ago
[deleted comment]
GoogleCodeExporter commented 9 years ago
Addition. 
To research, I've added a button to my app's form, and can query duration 
manually.

The query for duration is successful, but much later, after the file is loaded, 
and pipeline's state is set to playing and then once more - to paused.

The problems is that the duration query is unsuccessful when 
GST_MESSAGE_DURATION appears on bus, 
so my bus watch or bus sync handler cannot properly process this message. And 
there are no other 
DURATION messages on the bus.

The duration was queried successfully in the previous GStreamer (0.10.5) during 
processing of  
GST_MESSAGE_DURATION. 

Original comment by wl2776@gmail.com on 19 Mar 2010 at 2:24

GoogleCodeExporter commented 9 years ago
Have you reported this to the gst devs? It seems more like an issue on their 
side.

Original comment by david.g.hoyt on 19 Mar 2010 at 4:59

GoogleCodeExporter commented 9 years ago
No. Will do it on Monday.

Original comment by wl2776@gmail.com on 20 Mar 2010 at 3:46

GoogleCodeExporter commented 9 years ago
https://bugzilla.gnome.org/show_bug.cgi?id=613567

Original comment by wl2776@gmail.com on 22 Mar 2010 at 8:21

GoogleCodeExporter commented 9 years ago
They've closed it with the verdict "Not a bug".
Ok, I've developed a workaround...

Original comment by wl2776@gmail.com on 22 Mar 2010 at 4:18

GoogleCodeExporter commented 9 years ago
Thanks. I read their comments and they seem correct.

Original comment by david.g.hoyt on 22 Mar 2010 at 4:59

GoogleCodeExporter commented 9 years ago
I'm also running into the same issue with longomatch. Whilst with the previous 
build I 
was able to query the stream's duration, I'm not able to that anymore and it 
always 
report 0. So this is definitively a bug and a blocker for the release.

Original comment by ylatuya on 23 Mar 2010 at 9:27

GoogleCodeExporter commented 9 years ago
Well, I'm sure if it's really a bug or an API breakage in playbin2, but my 
player is 
based on totem and has been working since the last release. So I need to 
investigate a 
little bit more first.

Original comment by ylatuya on 23 Mar 2010 at 9:43

GoogleCodeExporter commented 9 years ago
s/I'm sure /I'm not sure

Original comment by ylatuya on 23 Mar 2010 at 9:44

GoogleCodeExporter commented 9 years ago
s/since the last/until the last

I need to re-read my message better ;)

Original comment by ylatuya on 23 Mar 2010 at 9:45

GoogleCodeExporter commented 9 years ago
Seems like people were relying on unsupported behavior. IOW, it just happened 
to work
and when the gst devs changed some things, application code that relied on that
behavior ceased to function properly. So it doesn't seem like a bug or 
something that
should hold up the release. Unless, of course, the old behavior was supposed to 
be
officially supported and now it's broken.

Original comment by david.g.hoyt on 23 Mar 2010 at 10:19

GoogleCodeExporter commented 9 years ago
Well, totem is maintained by the GStreamer devs and it still relies on that 
behavior: 
http://git.gnome.org/browse/totem/tree/src/backend/bacon-video-widget-gst-
0.10.c#n2165

My player is based on totem and the duration query was wrong, so it's either a 
windows specific issue or they didn't test totem with the last release :)

Anyway, this commit fixed my issue if someone is interested in: 
http://git.gnome.org/browse/longomatch/commit/?
id=04d2eaaa9132cc64e5d0ed77508a0a7d1d2bd29d

Since there is workaround, we should continue with the release, but I leave 
this 
issue opened until I get a confirmation from the GStreamer folks

Original comment by ylatuya on 23 Mar 2010 at 10:31

GoogleCodeExporter commented 9 years ago

Original comment by ylatuya on 25 Mar 2010 at 10:12