problem with cslg_shift in qtdemux

classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

problem with cslg_shift in qtdemux

Thornton, Keith

Hi,

I have a recording pipeline which contains an encoder which makes use of intel’s quicksync under windows to produce an H264 stream which is muxed using mp4mux as part of splitmuxsink.

This recorder normalizes the DTS and PTS so that DTS starts with 0. The produced videos can be played back using VLC and windows media player, repositioning and pause and resume are also possible.

My gstreamer playback pipeline which uses splitmuxsrc and qtdemux can also playback the videos but has problems with pause, resume and re-positioning.

I have traced the problems to the part of the demuxer where the cslg_shift correction takes place. cslg_shift contains the value 702356852. QTSTREAM_TO_GSTTIME(stream, stream->cslg_shift) returns 140471370400000 which leads to a ridiculous correction of the segment start and stop values.

Has anyone any idea what my encoder is not doing which could explain what is happening here. I am using gstreamer 1.8.1

regards


_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

AW: problem with cslg_shift in qtdemux

Thornton, Keith

I forgot to mention I am recording at 50Hz and the value of timescale in qtdemux is 5000.

 

Von: gstreamer-devel [mailto:[hidden email]] Im Auftrag von Thornton, Keith
Gesendet: Dienstag, 24. Mai 2016 08:50
An: Discussion of the development of and with GStreamer
Betreff: problem with cslg_shift in qtdemux

 

Hi,

I have a recording pipeline which contains an encoder which makes use of intel’s quicksync under windows to produce an H264 stream which is muxed using mp4mux as part of splitmuxsink.

This recorder normalizes the DTS and PTS so that DTS starts with 0. The produced videos can be played back using VLC and windows media player, repositioning and pause and resume are also possible.

My gstreamer playback pipeline which uses splitmuxsrc and qtdemux can also playback the videos but has problems with pause, resume and re-positioning.

I have traced the problems to the part of the demuxer where the cslg_shift correction takes place. cslg_shift contains the value 702356852. QTSTREAM_TO_GSTTIME(stream, stream->cslg_shift) returns 140471370400000 which leads to a ridiculous correction of the segment start and stop values.

Has anyone any idea what my encoder is not doing which could explain what is happening here. I am using gstreamer 1.8.1

regards


_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: AW: problem with cslg_shift in qtdemux

Nicolas Dufresne-4
Please, file a bug, and share a file to reproduce.


regards,
Nicolas

Le mardi 24 mai 2016 à 07:32 +0000, Thornton, Keith a écrit :

I forgot to mention I am recording at 50Hz and the value of timescale in qtdemux is 5000.

 

Von: gstreamer-devel [mailto:[hidden email]] Im Auftrag von Thornton, Keith
Gesendet: Dienstag, 24. Mai 2016 08:50
An: Discussion of the development of and with GStreamer
Betreff: problem with cslg_shift in qtdemux

 

Hi,

I have a recording pipeline which contains an encoder which makes use of intel’s quicksync under windows to produce an H264 stream which is muxed using mp4mux as part of splitmuxsink.

This recorder normalizes the DTS and PTS so that DTS starts with 0. The produced videos can be played back using VLC and windows media player, repositioning and pause and resume are also possible.

My gstreamer playback pipeline which uses splitmuxsrc and qtdemux can also playback the videos but has problems with pause, resume and re-positioning.

I have traced the problems to the part of the demuxer where the cslg_shift correction takes place. cslg_shift contains the value 702356852. QTSTREAM_TO_GSTTIME(stream, stream->cslg_shift) returns 140471370400000 which leads to a ridiculous correction of the segment start and stop values.

Has anyone any idea what my encoder is not doing which could explain what is happening here. I am using gstreamer 1.8.1

regards

_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel

_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel

signature.asc (188 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

AW: AW: problem with cslg_shift in qtdemux

Thornton, Keith

Hi, Nicolas,

That wouldn’t have helped because I was sure that the problem lay in my encoder. Providing a file would presumably only have confirmed that the file is not OK. And filing a bug when the bug lies in my code wouldn’t have helped either. I believe I have found the bug in my code. The timestamps weren’t being set properly on the last buffers remaining in the encoder and so the cslg_shift was being calculated as a negative number and so the new segment event was getting ridiculous start and stop values.

Thanks.

 

Von: gstreamer-devel [mailto:[hidden email]] Im Auftrag von Nicolas Dufresne
Gesendet: Dienstag, 24. Mai 2016 13:52
An: Discussion of the development of and with GStreamer
Betreff: Re: AW: problem with cslg_shift in qtdemux

 

Please, file a bug, and share a file to reproduce.

 

 

regards,

Nicolas

 

Le mardi 24 mai 2016 à 07:32 +0000, Thornton, Keith a écrit :

I forgot to mention I am recording at 50Hz and the value of timescale in qtdemux is 5000.

 

Von: gstreamer-devel [[hidden email]] Im Auftrag von Thornton, Keith
Gesendet: Dienstag, 24. Mai 2016 08:50
An: Discussion of the development of and with GStreamer
Betreff: problem with cslg_shift in qtdemux

 

Hi,

I have a recording pipeline which contains an encoder which makes use of intel’s quicksync under windows to produce an H264 stream which is muxed using mp4mux as part of splitmuxsink.

This recorder normalizes the DTS and PTS so that DTS starts with 0. The produced videos can be played back using VLC and windows media player, repositioning and pause and resume are also possible.

My gstreamer playback pipeline which uses splitmuxsrc and qtdemux can also playback the videos but has problems with pause, resume and re-positioning.

I have traced the problems to the part of the demuxer where the cslg_shift correction takes place. cslg_shift contains the value 702356852. QTSTREAM_TO_GSTTIME(stream, stream->cslg_shift) returns 140471370400000 which leads to a ridiculous correction of the segment start and stop values.

Has anyone any idea what my encoder is not doing which could explain what is happening here. I am using gstreamer 1.8.1

regards

_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel

_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: AW: AW: problem with cslg_shift in qtdemux

Nicolas Dufresne-5
Le mardi 24 mai 2016 à 13:03 +0000, Thornton, Keith a écrit :
> That wouldn’t have helped because I was sure that the problem lay in
> my encoder. Providing a file would presumably only have confirmed
> that the file is not OK. And filing a bug when the bug lies in my
> code wouldn’t have helped either. I believe I have found the bug in
> my code. The timestamps weren’t being set properly on the last
> buffers remaining in the encoder and so the cslg_shift was being
> calculated as a negative number and so the new segment event was
> getting ridiculous start and stop values.
> Thanks.

Still, if we overflow in such calculation, I'd like GStreamer to warn.
Can you point where that overflow happens, would be nice to warn, and
possible make this delta 0 instead of a big number (assuming it's
unsigned in the spec).

Nicolas
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel

signature.asc (188 bytes) Download Attachment