Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Pvrparse #1464

Merged
merged 2 commits into from Oct 1, 2012
Merged

Pvrparse #1464

merged 2 commits into from Oct 1, 2012

Conversation

elupus
Copy link
Contributor

@elupus elupus commented Sep 22, 2012

This will continuously parse input streams from PVR manager for changes in codec parameters. This
should reduce the burden on addons to provide data we need to init codecs.

This suffers same behaviour as the extradata parsing. On startup we will attempt to open a stream, without full knowledge of it's internals. This mean we will potentially re-open it again after first packet.

@ghost ghost assigned elupus Sep 22, 2012
@elupus
Copy link
Contributor Author

elupus commented Sep 22, 2012

I have one concern about this. I'm not sure how the ffmpeg parsers will behave on bad quality streams. there is a risk it will sucessfullly parse invalid data, leading to codec info changes that should not have occured. But i suspect only way to find out is to test it.

@elupus
Copy link
Contributor Author

elupus commented Sep 22, 2012

@opdenkamp @FernetMenta you might be interested in testing this stuff out. You have more experience with pvr stuff than me.

@da-anda
Copy link
Member

da-anda commented Sep 22, 2012

If I understand this correctly, this should ease handling of SD <-> HD switches in streams, so that addons dont have to report those switches. Will this also work on buffers like timeshift (backend side for now, like the 4tr and MP support) and especially when seeking in mixed ones?

----- Reply message -----
Von: "Joakim Plate" notifications@github.com
An: "xbmc/xbmc" xbmc@noreply.github.com
Betreff: [xbmc] Pvrparse (#1464)
Datum: Sa., Sep. 22, 2012 21:29
This will continuously parse input streams from PVR manager for changes in codec parameters. This

should reduce the burden on addons to provide data we need to init codecs.

This suffers same behaviour as the extradata parsing. On startup we will attempt to open a stream, without full knowledge of it's internals. This mean we will potentially re-open it again after first packet.

You can merge this Pull Request by running:
git pull https://github.com/elupus/xbmc pvrparse
Or view, comment on, or merge it at:
#1464

Commit Summary

dvdplayer: make level available for audio as well
dvdplayer: parse pvr streams for stream changes

File Changes

M xbmc/cores/dvdplayer/DVDDemuxers/DVDDemux.h (8)
M xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp (4)
M xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxPVRClient.cpp (81)
M xbmc/cores/dvdplayer/DVDStreamInfo.cpp (4)

Patch Links

https://github.com/xbmc/xbmc/pull/1464.patch
https://github.com/xbmc/xbmc/pull/1464.diff

Reply to this email directly or view it on GitHub.

@FernetMenta
Copy link
Contributor

Will test this as soon as I have a chance. From what I can see so far is that either for tvheadend or vdr an immediate re-open will happen. tvheadend reports a height of 1088 on hd channels whereas vnsi reports the cropped height 1080.

@opdenkamp
Copy link
Member

ditto, will test asap

Op 23-09-12 09:25, Rainer Hochecker schreef:

Will test this as soon as I have a chance. From what I can see so far
is that either for tvheadend or vdr an immediate re-open will happen.
tvheadend reports a height of 1088 on hd channels whereas vnsi reports
the cropped height 1080.


Reply to this email directly or view it on GitHub
#1464 (comment).

@davilla
Copy link
Contributor

davilla commented Sep 23, 2012

Anyway we can get frame_mbs_only_flag from sps ? That way we know that it 'might' be interlaced and can vector to a decoder that can handled h264 interlaced ? Right now for VDA/VTB, we parse extradata and only accept if frame_mbs_only_flag is 1 (signaling progressive), if 0, then it's either interlaced, paff or mbaff and we can only tell progressive vs interlaced frame usage by looking at individual frames.

Currently we try VDA/VTB and bail on such content, it would be nicer to use this info in codec factory to pick a suitable codec and skip the whole try/fail/try/fail path.

@elupus
Copy link
Contributor Author

elupus commented Sep 23, 2012

Imho try fail is the right approach. Codec factory shouldn't need to know
internal requirements. Should only setup a priority order imho.

@davilla
Copy link
Contributor

davilla commented Sep 23, 2012

Factory codec already qualifies the codec type (mpeg2, h264, etc) and software/hardware flag. I don't see why qualifying the type of h264 is any different. Try/fail/try/fail is very inefficient, it sucks resources loading/unload things and delays the time it takes to spin up video playback.

#define CHECK_UPDATE(st, trg, src, invalid) do { \
if(src != invalid \
&& src != st->trg) { \
st->trg = src; \

This comment was marked as spam.

@FernetMenta
Copy link
Contributor

I have tested this for 2 evenings on my living room box (vnsi). Apart from the log mentioned above no negatives. Although PVR streams don't have profile and level set, the increase of the change counter does not harm when done on the first packet.

I like this idea of parsing the streams very much. Maybe in a next step only validated streams can be accepted.

@da-anda
Copy link
Member

da-anda commented Sep 30, 2012

bump - something for Frodo? @cptspiff

@elupus
Copy link
Contributor Author

elupus commented Sep 30, 2012

Yes probably, have not heard of any major issues with it. It puts less
burden on pvr addons / backends to parse data.

@opdenkamp
Copy link
Member

+1

@elupus elupus merged commit 72e64a3 into xbmc:master Oct 1, 2012
tru added a commit to plexinc/plex-home-theater-public that referenced this pull request Dec 23, 2014
1) make sure that we increase the timeout for loading things with
checkFiles=1 to 60 seconds instead of 10.
2) don’t send X-Plex-Container options to the metadata endpoints so we
can cache it properly
3) increase the default read-timeout to 30 instead of 10 seconds.

Related to xbmc#1464
LongChair added a commit to RasPlex/plex-home-theatre that referenced this pull request Jan 8, 2015
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants