The comment does not need to be exhaustive, but should strive to give enough information to start the discussion. Image posts: Image posts must be accompanied by a comment with impressions or details that add value to the post.Ask troubleshooting and setup questions in the Shopping and Setup Help Desk Requests for troubleshooting and setup help must be made in the dedicated Shopping and Setup Help Desk instead of a new post.Ask purchase and shopping questions in the Shopping and Setup Help Desk: Requests for product opinions, comparisons, and general purchase advice must be made in the dedicated Shopping and Setup Help Desk instead of a new post.Be most excellent towards your fellow redditors: And by "be most excellent" we mean no personal attacks, threats, bullying, trolling, baiting, flaming, hate speech, racism, sexism, gatekeeping, or other behavior that makes humanity look like scum.Our primary goal is insightful discussion of equipment, sources, music, and audio concepts. R/audiophile is a subreddit for the pursuit of quality audio reproduction of all forms, budgets, and sizes of speakers. phile: a person with love for, affinity towards or obsession with high-quality playback of sound and music.Then some heuristics are possible, for eg: 1/fps*poc will give the pts with in an idr period. Find out the POC based on h264 spec section 8.2.1 (this is bit lengthy). In my understanding, If there are buffering_period and picture_timing SEI messages in the stream, we can utilize the cpb_removal_delay and dpb_output_delay values to find out the dts/pts. > have to add latency ? Also, how do we know the pts-dts shift from that ? > kind enough to document it? It's all a bit new to me.
#Dts decoder foo code
> Do you know if there is an OSS code somewhere that implement this, or someone > give you the exact display order for each frame (This is bit complicated if you > It is possible to find out the POC value based on h264 specification which will It is possible to find out the POC value based on h264 specification which will give you the exact display order for each frame (This is bit complicated if you follow the spec as it is). Anyone knowns special details, trick for this ? We also need to report our latency accordingly, as it won't be > presence of B-Frames or not, I think there some buffer depth value that can > start, hence the required initial shift. > decoded order) are moved after the following B-Frames. > Basic rules for H264 is that for B-Frames, pts = dts. > will keep them and avoid the extra latency required to do the derivation. > if something is detected wrong ? Obviously if both timestamp are present, we > That reminds me the last question I have about this, shall be fix the timestamp > having to ship the PTS format, in order to prevent the DTS from being negative It show the presence of this pts-dts shift that exist, in order Here's an interesting diagram that may help > able to figure-out the PTS (and vis-versa). By figure-out out the needed reordering, you should be > increment with the desired frame duration (from framerate). > the easiest way to generate timestamp, is to set first DTS to 0, and then > If you have a raw h264 stream, it is expected to be store in decoding order, so > case where in DTS will be present for a frame but not PTS > Can someone explain why should the PTS be set based on DTS? I can't think of a Gstbaseparse.c(2738): gst_base_parse_loop (): /GstPipeline:pipeline0/GstH264Parse:h264parse0:īluecherry_test.raw - video/x-h264, stream-format=(string)byte-stream # GST_DEBUG=*:2 gst-launch filesrc location=bluecherry_test.raw ! h264parse ! mp4mux ! filesink location=test.mp4Ġ:00:00.020372638 31723 0x250b600 WARN codecparsers_h264 gsth264parser.c:1697:gst_h264_parser_parse_slice_hdr: couldn't find associated picture parameter set with id: 0Ġ:00:00.020507003 31723 0x250b600 WARN qtmux gstqtmux.c:3217:gst_qt_mux_video_sink_set_caps: pad video_00 refused caps video/x-h264, parsed=(boolean)true, stream-format=(string)avc, alignment=(string)auĠ:00:00.020542600 31723 0x250b600 WARN baseparse gstbaseparse.c:2738:gst_base_parse_loop: error: streaming stopped, reason not-negotiatedĮRROR: from element /GstPipeline:pipeline0/GstH264Parse:h264parse0: GStreamer encountered a general stream error.